Add recipeBrewTime

This commit is contained in:
Tamion 2024-09-20 17:39:22 +02:00
parent 4cd3060ff8
commit 7b11ab058b
3 changed files with 101 additions and 1 deletions

View File

@ -22,6 +22,29 @@ public interface BrewingStand extends Container {
*/ */
void setBrewingTime(int brewTime); void setBrewingTime(int brewTime);
// Paper start - Add recipeBrewTime
/**
* Sets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTime()}.
*
* @param recipeBrewTime recipe brew time (in ticks)
* @throws IllegalArgumentException if the recipe brew time is non-positive
*/
@org.jetbrains.annotations.ApiStatus.Experimental
void setRecipeBrewTime(@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int recipeBrewTime);
/**
* Gets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTime()}.
*
* @return recipe brew time (in ticks)
*/
@org.jetbrains.annotations.ApiStatus.Experimental
@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int getRecipeBrewTime();
// Paper end - Add recipeBrewTime
/** /**
* Get the level of current fuel for brewing. * Get the level of current fuel for brewing.
* *

View File

@ -13,7 +13,9 @@ public class BrewingStartEvent extends InventoryBlockStartEvent {
// Paper - remove HandlerList // Paper - remove HandlerList
private int brewingTime; private int brewingTime;
private int recipeBrewTime = 400; // Paper - Add recipeBrewTime
@org.jetbrains.annotations.ApiStatus.Internal // Paper
public BrewingStartEvent(@NotNull final Block furnace, @NotNull ItemStack source, int brewingTime) { public BrewingStartEvent(@NotNull final Block furnace, @NotNull ItemStack source, int brewingTime) {
super(furnace, source); super(furnace, source);
this.brewingTime = brewingTime; this.brewingTime = brewingTime;
@ -23,7 +25,9 @@ public class BrewingStartEvent extends InventoryBlockStartEvent {
* Gets the total brew time associated with this event. * Gets the total brew time associated with this event.
* *
* @return the total brew time * @return the total brew time
* @deprecated use {@link #getBrewingTime()} instead
*/ */
@Deprecated(since = "1.21", forRemoval = true) // Paper
public int getTotalBrewTime() { public int getTotalBrewTime() {
return brewingTime; return brewingTime;
} }
@ -32,10 +36,60 @@ public class BrewingStartEvent extends InventoryBlockStartEvent {
* Sets the total brew time for this event. * Sets the total brew time for this event.
* *
* @param brewTime the new total brew time * @param brewTime the new total brew time
* @deprecated use {@link #setBrewingTime(int)} instead
*/ */
@Deprecated(since = "1.21", forRemoval = true) // Paper
public void setTotalBrewTime(int brewTime) { public void setTotalBrewTime(int brewTime) {
this.brewingTime = brewTime; this.setBrewingTime(brewTime); // Paper - delegate to new method
} }
// Paper - remove HandlerList // Paper - remove HandlerList
// Paper start - add recipeBrewTime
/**
* Gets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTime()}.
*
* @return recipe brew time (in ticks)
*/
@org.jetbrains.annotations.ApiStatus.Experimental
public @org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int getRecipeBrewTime() {
return this.recipeBrewTime;
}
/**
* Sets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTime()}.
*
* @param recipeBrewTime recipe brew time (in ticks)
* @throws IllegalArgumentException if the recipe brew time is non-positive
*/
@org.jetbrains.annotations.ApiStatus.Experimental
public void setRecipeBrewTime(@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int recipeBrewTime) {
com.google.common.base.Preconditions.checkArgument(recipeBrewTime > 0, "recipeBrewTime must be positive");
this.recipeBrewTime = recipeBrewTime;
}
/**
* Gets the amount of brewing ticks left.
*
* @return The amount of ticks left for the brewing task
*/
public @org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int getBrewingTime() {
return this.brewingTime;
}
/**
* Sets the brewing ticks left.
*
* @param brewTime the ticks left, which is no less than 0
* @throws IllegalArgumentException if the ticks are less than 0
*/
public void setBrewingTime(@org.jetbrains.annotations.Range(from = 0, to = Integer.MAX_VALUE) int brewTime) {
com.google.common.base.Preconditions.checkArgument(brewTime >= 0, "brewTime must be non-negative");
this.brewingTime = brewTime;
}
// Paper end - add recipeBrewTime
} }

View File

@ -45,4 +45,27 @@ public interface BrewingStandView extends InventoryView {
* @throws IllegalArgumentException if the ticks are less than 0 * @throws IllegalArgumentException if the ticks are less than 0
*/ */
void setBrewingTicks(final int ticks) throws IllegalArgumentException; void setBrewingTicks(final int ticks) throws IllegalArgumentException;
// Paper start - Add recipeBrewTime
/**
* Sets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTicks()}.
*
* @param recipeBrewTime recipe brew time (in ticks)
* @throws IllegalArgumentException if the recipe brew time is non-positive
*/
@org.jetbrains.annotations.ApiStatus.Experimental
void setRecipeBrewTime(@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int recipeBrewTime);
/**
* Gets the recipe time for the brewing process which is
* used to compute the progress of the brewing process with
* {@link #getBrewingTicks()}.
*
* @return recipe brew time (in ticks)
*/
@org.jetbrains.annotations.ApiStatus.Experimental
@org.jetbrains.annotations.Range(from = 1, to = Integer.MAX_VALUE) int getRecipeBrewTime();
// Paper end - Add recipeBrewTime
} }