mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2024-11-22 11:35:16 +01:00
Added and Fixed lots of JavaDocs
This commit is contained in:
parent
c287b6350f
commit
16c03f9da1
@ -62,8 +62,8 @@ public class BIngredients {
|
||||
}
|
||||
|
||||
/**
|
||||
* Force add an ingredient to this
|
||||
* Will not check if item is acceptable
|
||||
* Force add an ingredient to this.
|
||||
* <p>Will not check if item is acceptable
|
||||
*
|
||||
* @param ingredient the item to add
|
||||
*/
|
||||
@ -98,7 +98,9 @@ public class BIngredients {
|
||||
ingredients.add(ingredientItem);
|
||||
}
|
||||
|
||||
// returns an Potion item with cooked ingredients
|
||||
/**
|
||||
* returns an Potion item with cooked ingredients
|
||||
*/
|
||||
public ItemStack cook(int state) {
|
||||
|
||||
ItemStack potion = new ItemStack(Material.POTION);
|
||||
@ -178,7 +180,9 @@ public class BIngredients {
|
||||
return potion;
|
||||
}
|
||||
|
||||
// returns amount of ingredients
|
||||
/**
|
||||
* returns amount of ingredients
|
||||
*/
|
||||
public int getIngredientsCount() {
|
||||
int count = 0;
|
||||
for (Ingredient ing : ingredients) {
|
||||
@ -195,8 +199,9 @@ public class BIngredients {
|
||||
return cookedTime;
|
||||
}
|
||||
|
||||
// best recipe for current state of potion, STILL not always returns the
|
||||
// correct one...
|
||||
/**
|
||||
* best recipe for current state of potion, STILL not always returns the correct one...
|
||||
*/
|
||||
public BRecipe getBestRecipe(float wood, float time, boolean distilled) {
|
||||
float quality = 0;
|
||||
int ingredientQuality;
|
||||
@ -237,8 +242,9 @@ public class BIngredients {
|
||||
return bestRecipe;
|
||||
}
|
||||
|
||||
// returns recipe that is cooking only and matches the ingredients and
|
||||
// cooking time
|
||||
/**
|
||||
* returns recipe that is cooking only and matches the ingredients and cooking time
|
||||
*/
|
||||
public BRecipe getCookRecipe() {
|
||||
BRecipe bestRecipe = getBestRecipe(0, 0, false);
|
||||
|
||||
@ -272,7 +278,9 @@ public class BIngredients {
|
||||
return best;
|
||||
}
|
||||
|
||||
// returns the currently best matching recipe for distilling for the ingredients and cooking time
|
||||
/**
|
||||
* returns the currently best matching recipe for distilling for the ingredients and cooking time
|
||||
*/
|
||||
public BRecipe getDistillRecipe(float wood, float time) {
|
||||
BRecipe bestRecipe = getBestRecipe(wood, time, true);
|
||||
|
||||
@ -285,7 +293,9 @@ public class BIngredients {
|
||||
return null;
|
||||
}
|
||||
|
||||
// returns currently best matching recipe for ingredients, cooking- and ageingtime
|
||||
/**
|
||||
* returns currently best matching recipe for ingredients, cooking- and ageingtime
|
||||
*/
|
||||
public BRecipe getAgeRecipe(float wood, float time, boolean distilled) {
|
||||
BRecipe bestRecipe = getBestRecipe(wood, time, distilled);
|
||||
|
||||
@ -297,7 +307,9 @@ public class BIngredients {
|
||||
return null;
|
||||
}
|
||||
|
||||
// returns the quality of the ingredients conditioning given recipe, -1 if no recipe is near them
|
||||
/**
|
||||
* returns the quality of the ingredients conditioning given recipe, -1 if no recipe is near them
|
||||
*/
|
||||
public int getIngredientQuality(BRecipe recipe) {
|
||||
float quality = 10;
|
||||
int count;
|
||||
@ -335,7 +347,9 @@ public class BIngredients {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// returns the quality regarding the cooking-time conditioning given Recipe
|
||||
/**
|
||||
* returns the quality regarding the cooking-time conditioning given Recipe
|
||||
*/
|
||||
public int getCookingQuality(BRecipe recipe, boolean distilled) {
|
||||
if (!recipe.needsDistilling() == distilled) {
|
||||
return -1;
|
||||
@ -351,7 +365,9 @@ public class BIngredients {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// returns pseudo quality of distilling. 0 if doesnt match the need of the recipes distilling
|
||||
/**
|
||||
* returns pseudo quality of distilling. 0 if doesnt match the need of the recipes distilling
|
||||
*/
|
||||
public int getDistillQuality(BRecipe recipe, byte distillRuns) {
|
||||
if (recipe.needsDistilling() != distillRuns > 0) {
|
||||
return 0;
|
||||
@ -359,7 +375,9 @@ public class BIngredients {
|
||||
return 10 - Math.abs(recipe.getDistillRuns() - distillRuns);
|
||||
}
|
||||
|
||||
// returns the quality regarding the barrel wood conditioning given Recipe
|
||||
/**
|
||||
* returns the quality regarding the barrel wood conditioning given Recipe
|
||||
*/
|
||||
public int getWoodQuality(BRecipe recipe, float wood) {
|
||||
if (recipe.getWood() == 0) {
|
||||
// type of wood doesnt matter
|
||||
@ -370,7 +388,9 @@ public class BIngredients {
|
||||
return Math.max(quality, 0);
|
||||
}
|
||||
|
||||
// returns the quality regarding the ageing time conditioning given Recipe
|
||||
/**
|
||||
* returns the quality regarding the ageing time conditioning given Recipe
|
||||
*/
|
||||
public int getAgeQuality(BRecipe recipe, float time) {
|
||||
int quality = 10 - Math.round(Math.abs(time - recipe.getAge()) * ((float) recipe.getDifficulty() / 2));
|
||||
|
||||
|
@ -31,6 +31,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A Multi Block Barrel with Inventory
|
||||
*/
|
||||
public class Barrel implements InventoryHolder {
|
||||
|
||||
public static List<Barrel> barrels = new ArrayList<>();
|
||||
@ -52,7 +55,9 @@ public class Barrel implements InventoryHolder {
|
||||
body = new BarrelBody(this, signoffset);
|
||||
}
|
||||
|
||||
// load from file
|
||||
/**
|
||||
* load from file
|
||||
*/
|
||||
public Barrel(Block spigot, byte sign, BoundingBox bounds, Map<String, Object> items, float time) {
|
||||
this.spigot = spigot;
|
||||
if (isLarge()) {
|
||||
@ -113,7 +118,9 @@ public class Barrel implements InventoryHolder {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Ask for permission to destroy barrel
|
||||
/**
|
||||
* Ask for permission to destroy barrel
|
||||
*/
|
||||
public boolean hasPermsDestroy(Player player, Block block, BarrelDestroyEvent.Reason reason) {
|
||||
// Listened to by LWCBarrel (IntegrationListener)
|
||||
BarrelDestroyEvent destroyEvent = new BarrelDestroyEvent(this, block, reason, player);
|
||||
@ -121,7 +128,9 @@ public class Barrel implements InventoryHolder {
|
||||
return !destroyEvent.isCancelled();
|
||||
}
|
||||
|
||||
// player opens the barrel
|
||||
/**
|
||||
* player opens the barrel
|
||||
*/
|
||||
public void open(Player player) {
|
||||
if (inventory == null) {
|
||||
if (isLarge()) {
|
||||
@ -212,13 +221,15 @@ public class Barrel implements InventoryHolder {
|
||||
return time;
|
||||
}
|
||||
|
||||
// Returns true if this Block is part of this Barrel
|
||||
/**
|
||||
* Returns true if this Block is part of this Barrel
|
||||
*/
|
||||
public boolean hasBlock(Block block) {
|
||||
return body.hasBlock(block);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated, just use hasBlock
|
||||
* @deprecated just use hasBlock
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasWoodBlock(Block block) {
|
||||
@ -226,14 +237,16 @@ public class Barrel implements InventoryHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Deprecated, just use hasBlock
|
||||
* @deprecated just use hasBlock
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean hasStairsBlock(Block block) {
|
||||
return body.hasBlock(block);
|
||||
}
|
||||
|
||||
// Get the Barrel by Block, null if that block is not part of a barrel
|
||||
/**
|
||||
* Get the Barrel by Block, null if that block is not part of a barrel
|
||||
*/
|
||||
@Nullable
|
||||
public static Barrel get(Block block) {
|
||||
if (block == null) {
|
||||
@ -247,7 +260,9 @@ public class Barrel implements InventoryHolder {
|
||||
}
|
||||
}
|
||||
|
||||
// Get the Barrel by Sign or Spigot (Fastest)
|
||||
/**
|
||||
* Get the Barrel by Sign or Spigot (Fastest)
|
||||
*/
|
||||
@Nullable
|
||||
public static Barrel getBySpigot(Block sign) {
|
||||
// convert spigot if neccessary
|
||||
@ -272,7 +287,9 @@ public class Barrel implements InventoryHolder {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Get the barrel by its corpus (Wood Planks, Stairs)
|
||||
/**
|
||||
* Get the barrel by its corpus (Wood Planks, Stairs)
|
||||
*/
|
||||
@Nullable
|
||||
public static Barrel getByWood(Block wood) {
|
||||
if (LegacyUtil.isWoodPlanks(wood.getType()) || LegacyUtil.isWoodStairs(wood.getType())) {
|
||||
@ -285,7 +302,9 @@ public class Barrel implements InventoryHolder {
|
||||
return null;
|
||||
}
|
||||
|
||||
// creates a new Barrel out of a sign
|
||||
/**
|
||||
* creates a new Barrel out of a sign
|
||||
*/
|
||||
public static boolean create(Block sign, Player player) {
|
||||
Block spigot = BarrelBody.getSpigotOfSign(sign);
|
||||
|
||||
@ -383,39 +402,54 @@ public class Barrel implements InventoryHolder {
|
||||
barrels.remove(this);
|
||||
}
|
||||
|
||||
// is this a Large barrel?
|
||||
/**
|
||||
* is this a Large barrel?
|
||||
*/
|
||||
public boolean isLarge() {
|
||||
return !isSmall();
|
||||
}
|
||||
|
||||
// is this a Small barrel?
|
||||
/**
|
||||
* is this a Small barrel?
|
||||
*/
|
||||
public boolean isSmall() {
|
||||
return LegacyUtil.isSign(spigot.getType());
|
||||
}
|
||||
|
||||
// returns the Sign of a large barrel, the spigot if there is none
|
||||
/**
|
||||
* returns the Sign of a large barrel, the spigot if there is none
|
||||
*/
|
||||
public Block getSignOfSpigot() {
|
||||
return body.getSignOfSpigot();
|
||||
}
|
||||
|
||||
// returns the fence above/below a block, itself if there is none
|
||||
/**
|
||||
* returns the fence above/below a block, itself if there is none
|
||||
*/
|
||||
public static Block getSpigotOfSign(Block block) {
|
||||
return BarrelBody.getSpigotOfSign(block);
|
||||
}
|
||||
|
||||
// returns null if Barrel is correctly placed; the block that is missing when not
|
||||
// the barrel needs to be formed correctly
|
||||
// flag force to also check if chunk is not loaded
|
||||
/**
|
||||
* returns null if Barrel is correctly placed; the block that is missing when not.
|
||||
* <p>The barrel needs to be formed correctly
|
||||
*
|
||||
* @param force to also check even if chunk is not loaded
|
||||
*/
|
||||
public Block getBrokenBlock(boolean force) {
|
||||
return body.getBrokenBlock(force);
|
||||
}
|
||||
|
||||
//unloads barrels that are in a unloading world
|
||||
/**
|
||||
* unloads barrels that are in a unloading world
|
||||
*/
|
||||
public static void onUnload(String name) {
|
||||
barrels.removeIf(barrel -> barrel.spigot.getWorld().getName().equals(name));
|
||||
}
|
||||
|
||||
// Saves all data
|
||||
/**
|
||||
* Saves all data
|
||||
*/
|
||||
public static void save(ConfigurationSection config, ConfigurationSection oldData) {
|
||||
BUtil.createWorldSections(config);
|
||||
|
||||
|
@ -10,7 +10,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
// The Blocks that make up a Barrel in the World
|
||||
/**
|
||||
* The Blocks that make up a Barrel in the World
|
||||
*/
|
||||
public class BarrelBody {
|
||||
|
||||
private final Barrel barrel;
|
||||
@ -25,7 +27,9 @@ public class BarrelBody {
|
||||
this.bounds = new BoundingBox(0, 0, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
// Loading from file
|
||||
/**
|
||||
* Loading from file
|
||||
*/
|
||||
public BarrelBody(Barrel barrel, byte signoffset, BoundingBox bounds) {
|
||||
this(barrel, signoffset);
|
||||
|
||||
@ -67,12 +71,16 @@ public class BarrelBody {
|
||||
this.signoffset = signoffset;
|
||||
}
|
||||
|
||||
// If the Sign of a Large Barrel gets destroyed, set signOffset to 0
|
||||
/**
|
||||
* If the Sign of a Large Barrel gets destroyed, set signOffset to 0
|
||||
*/
|
||||
public void destroySign() {
|
||||
signoffset = 0;
|
||||
}
|
||||
|
||||
// direction of the barrel from the spigot
|
||||
/**
|
||||
* direction of the barrel from the spigot
|
||||
*/
|
||||
public static int getDirection(Block spigot) {
|
||||
int direction = 0;// 1=x+ 2=x- 3=z+ 4=z-
|
||||
Material type = spigot.getRelative(0, 0, 1).getType();
|
||||
@ -106,17 +114,23 @@ public class BarrelBody {
|
||||
return direction;
|
||||
}
|
||||
|
||||
// is this a Large barrel?
|
||||
/**
|
||||
* is this a Large barrel?
|
||||
*/
|
||||
public boolean isLarge() {
|
||||
return barrel.isLarge();
|
||||
}
|
||||
|
||||
// is this a Small barrel?
|
||||
/**
|
||||
* is this a Small barrel?
|
||||
*/
|
||||
public boolean isSmall() {
|
||||
return barrel.isSmall();
|
||||
}
|
||||
|
||||
// woodtype of the block the spigot is attached to
|
||||
/**
|
||||
* woodtype of the block the spigot is attached to
|
||||
*/
|
||||
public byte getWood() {
|
||||
Block wood;
|
||||
switch (getDirection(spigot)) { // 1=x+ 2=x- 3=z+ 4=z-
|
||||
@ -160,13 +174,17 @@ public class BarrelBody {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns true if the Offset of the clicked Sign matches the Barrel.
|
||||
// This prevents adding another sign to the barrel and clicking that.
|
||||
/**
|
||||
* Returns true if the Offset of the clicked Sign matches the Barrel.
|
||||
* <p>This prevents adding another sign to the barrel and clicking that.
|
||||
*/
|
||||
public boolean isSignOfBarrel(byte offset) {
|
||||
return offset == 0 || signoffset == 0 || signoffset == offset;
|
||||
}
|
||||
|
||||
// returns the Sign of a large barrel, the spigot if there is none
|
||||
/**
|
||||
* returns the Sign of a large barrel, the spigot if there is none
|
||||
*/
|
||||
public Block getSignOfSpigot() {
|
||||
if (signoffset != 0) {
|
||||
if (LegacyUtil.isSign(spigot.getType())) {
|
||||
@ -182,7 +200,9 @@ public class BarrelBody {
|
||||
return spigot;
|
||||
}
|
||||
|
||||
// returns the fence above/below a block, itself if there is none
|
||||
/**
|
||||
* returns the fence above/below a block, itself if there is none
|
||||
*/
|
||||
public static Block getSpigotOfSign(Block block) {
|
||||
|
||||
int y = -2;
|
||||
@ -197,9 +217,12 @@ public class BarrelBody {
|
||||
return block;
|
||||
}
|
||||
|
||||
// returns null if Barrel is correctly placed; the block that is missing when not
|
||||
// the barrel needs to be formed correctly
|
||||
// flag force to also check if chunk is not loaded
|
||||
/**
|
||||
* returns null if Barrel is correctly placed; the block that is missing when not.
|
||||
* <p>the barrel needs to be formed correctly
|
||||
*
|
||||
* @param force to also check even if chunk is not loaded
|
||||
*/
|
||||
public Block getBrokenBlock(boolean force) {
|
||||
if (force || BUtil.isChunkLoaded(spigot)) {
|
||||
//spigot = getSpigotOfSign(spigot);
|
||||
|
@ -173,8 +173,11 @@ public class Brew implements Cloneable {
|
||||
return null;
|
||||
}
|
||||
|
||||
// returns a Brew by its UID
|
||||
// Does not work anymore with new save system
|
||||
/**
|
||||
* returns a Brew by its UID
|
||||
*
|
||||
* @deprecated Does not work anymore with new save system
|
||||
*/
|
||||
@Deprecated
|
||||
public static Brew get(int uid) {
|
||||
if (uid < -1) {
|
||||
@ -188,8 +191,11 @@ public class Brew implements Cloneable {
|
||||
return legacyPotions.get(uid);
|
||||
}
|
||||
|
||||
// returns UID of custom Potion item
|
||||
// Does not work anymore with new save system
|
||||
/**
|
||||
* returns UID of custom Potion item
|
||||
*
|
||||
* @deprecated Does not work anymore with new save system
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getUID(ItemStack item) {
|
||||
return getUID((PotionMeta) item.getItemMeta());
|
||||
@ -197,6 +203,12 @@ public class Brew implements Cloneable {
|
||||
|
||||
// returns UID of custom Potion meta
|
||||
// Does not work anymore with new save system
|
||||
|
||||
/**
|
||||
* returns UID of custom Potion meta
|
||||
*
|
||||
* @deprecated Does not work anymore with new save system
|
||||
*/
|
||||
@Deprecated
|
||||
public static int getUID(PotionMeta potionMeta) {
|
||||
if (potionMeta.hasCustomEffect(PotionEffectType.REGENERATION)) {
|
||||
@ -395,7 +407,9 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
}
|
||||
|
||||
// return special effect
|
||||
/**
|
||||
* Get Special Drink Effects
|
||||
*/
|
||||
public List<BEffect> getEffects() {
|
||||
if (currentRecipe != null && quality > 0) {
|
||||
return currentRecipe.getEffects();
|
||||
@ -427,7 +441,8 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Do some regular updates
|
||||
* Do some regular updates.
|
||||
* <p>Not really used, apart from legacy potion timed purge
|
||||
*/
|
||||
public void touch() {
|
||||
lastUpdate = (int) ((double) (System.currentTimeMillis() - installTime) / 3600000D);
|
||||
@ -734,8 +749,8 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Performant way of checking if this item is a Brew
|
||||
* Does not give any guarantees that get() will return notnull for this item, i.e. if it is a brew but the data is corrupt
|
||||
* Performant way of checking if this item is a Brew.
|
||||
* <p>Does not give any guarantees that get() will return notnull for this item, i.e. if it is a brew but the data is corrupt
|
||||
*
|
||||
* @param item The Item to check
|
||||
* @return True if the item is a brew
|
||||
@ -854,8 +869,8 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Save brew data into meta: lore/nbt
|
||||
* Should be called after any changes made to the brew
|
||||
* Save brew data into meta: lore/nbt.
|
||||
* <p>Should be called after any changes made to the brew
|
||||
*/
|
||||
public void save(ItemMeta meta) {
|
||||
OutputStream itemSaveStream;
|
||||
@ -881,8 +896,8 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Save brew data into the meta/lore of the specified item
|
||||
* The meta on the item changes, so to make further changes to the meta, item.getItemMeta() has to be called again after this
|
||||
* Save brew data into the meta/lore of the specified item.
|
||||
* <p>The meta on the item changes, so to make further changes to the meta, item.getItemMeta() has to be called again after this
|
||||
*
|
||||
* @param item The item to save this brew into
|
||||
*/
|
||||
@ -1027,8 +1042,8 @@ public class Brew implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves all data
|
||||
* Legacy method to save to data file
|
||||
* Saves all data,
|
||||
* Legacy method to save to data file.
|
||||
*/
|
||||
public static void saveLegacy(ConfigurationSection config) {
|
||||
for (Map.Entry<Integer, Brew> entry : legacyPotions.entrySet()) {
|
||||
|
@ -18,15 +18,22 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Convenience methods to get common objects or do common things
|
||||
* Convenience methods to get common objects or do common things.
|
||||
* <p>Contains shortcuts and collects of some of the main functions of this Plugin
|
||||
*
|
||||
* <p>Next to this there are lots of public Methods in many Objects
|
||||
* like Brew, Barrel, BCauldron, BRecipe, etc
|
||||
* <p>In the api package, you can also find custom Events.
|
||||
*/
|
||||
public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Remove any data that this Plugin may associate with the given Block
|
||||
* Currently Cauldrons and Barrels (Cauldron, Wood, Woodstairs, Fence, Sign)
|
||||
* Does not remove any actual Blocks
|
||||
* Returns true if anything was removed
|
||||
* Remove any data that this Plugin may associate with the given Block.
|
||||
* <p>Currently Cauldrons and Barrels (Cauldron, Wood, Woodstairs, Fence, Sign)
|
||||
* <p>Does not remove any actual Blocks
|
||||
* <p>Returns true if anything was removed
|
||||
*
|
||||
* @return true if anything was removed
|
||||
*/
|
||||
public static boolean removeAny(Block block) {
|
||||
if (removeCauldron(block)) return true;
|
||||
@ -34,8 +41,8 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Like removeAny() but removes data as if the given player broke the Block
|
||||
* Currently only makes a difference for Logging
|
||||
* <p>Like removeAny() but removes data as if the given player broke the Block.
|
||||
* <p>Currently only makes a difference for Logging
|
||||
*/
|
||||
public static boolean removeAnyByPlayer(Block block, Player player) {
|
||||
if (removeCauldron(block)) return true;
|
||||
@ -47,17 +54,20 @@ public class BreweryApi {
|
||||
// # # # # # Player # # # # #
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get the BPlayer for the given Player, containing drunkeness and hangover data.
|
||||
*/
|
||||
public static BPlayer getBPlayer(Player player) {
|
||||
return BPlayer.get(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Players drunkeness state
|
||||
* Set the Players drunkeness state.
|
||||
*
|
||||
* @param player The Player to set the drunkeness on
|
||||
* @param drunkeness The amount of drunkeness 0-100 to apply to the player
|
||||
* @param quality The Quality 1-10 the drunkeness of the player should have
|
||||
* zero Quality keeps the players current quality
|
||||
* @param quality The Quality 1-10 the drunkeness of the player should have.
|
||||
* <br>zero Quality keeps the players current quality
|
||||
*/
|
||||
public static void setPlayerDrunk(Player player, int drunkeness, int quality) {
|
||||
if (drunkeness < 0) {
|
||||
@ -100,10 +110,10 @@ public class BreweryApi {
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get a Brew from an ItemStack
|
||||
* Reads the Brew data from the saved data on the item
|
||||
* Checks if item is actually a Brew
|
||||
* Returns null if item is not a Brew
|
||||
* Get a Brew from an ItemStack.
|
||||
* <p>Reads the Brew data from the saved data on the item
|
||||
* <p>Checks if item is actually a Brew
|
||||
* <p>Returns null if item is not a Brew
|
||||
*/
|
||||
@Nullable
|
||||
public static Brew getBrew(ItemStack item) {
|
||||
@ -111,10 +121,10 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Brew from an ItemMeta
|
||||
* Reads the Brew data from the saved data in the Meta
|
||||
* Checks if meta has a Brew saved
|
||||
* Returns null if meta is not a Brew
|
||||
* Get a Brew from an ItemMeta.
|
||||
* <p>Reads the Brew data from the saved data in the Meta
|
||||
* <p>Checks if meta has a Brew saved
|
||||
* <p>Returns null if meta is not a Brew
|
||||
*/
|
||||
@Nullable
|
||||
public static Brew getBrew(ItemMeta meta) {
|
||||
@ -123,14 +133,14 @@ public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Performant way to check if an item is a brew.
|
||||
* Does not give any guarantees that getBrew() will return notnull for this item, i.e. if it is a brew but couldn't be loaded
|
||||
* <p>Does not give any guarantees that getBrew() will return notnull for this item, i.e. if it is a brew but couldn't be loaded
|
||||
*/
|
||||
public static boolean isBrew(ItemStack item) {
|
||||
return Brew.isBrew(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Brew from the given Recipe
|
||||
* Create a Brew from the given Recipe.
|
||||
*
|
||||
* @param recipe The Recipe to create a brew from
|
||||
* @return The Brew that was created. Can use brew.createItem() to get an ItemStack
|
||||
@ -145,9 +155,9 @@ public class BreweryApi {
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get a Barrel from a Block
|
||||
* May be any Wood, Fence, Sign that is part of a Barrel
|
||||
* Returns null if block is not part of a Barrel
|
||||
* Get a Barrel from a Block.
|
||||
* <p>May be any Wood, Fence, Sign that is part of a Barrel
|
||||
* <p>Returns null if block is not part of a Barrel
|
||||
*/
|
||||
@Nullable
|
||||
public static Barrel getBarrel(Block block) {
|
||||
@ -155,9 +165,9 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Inventory of a Block part of a Barrel
|
||||
* May be any Wood, Fence or Sign that is part of a Barrel
|
||||
* Returns null if block is not part of a Barrel
|
||||
* Get the Inventory of a Block part of a Barrel.
|
||||
* <p>May be any Wood, Fence or Sign that is part of a Barrel
|
||||
* <p>Returns null if block is not part of a Barrel
|
||||
*/
|
||||
@Nullable
|
||||
public static Inventory getBarrelInventory(Block block) {
|
||||
@ -169,7 +179,7 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove any Barrel that this Block may be Part of
|
||||
* Remove any Barrel that this Block may be Part of.
|
||||
* Does not remove any actual Block
|
||||
*
|
||||
* @param block The Block thats part of the barrel, potions will drop there
|
||||
@ -181,7 +191,7 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove any Barrel that this Block may be Part of, as if broken by the Player
|
||||
* Remove any Barrel that this Block may be Part of, as if broken by the Player.
|
||||
* Does not remove any actual Block from the World
|
||||
*
|
||||
* @param block The Block thats part of the barrel, potions will drop there
|
||||
@ -203,8 +213,8 @@ public class BreweryApi {
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get a BCauldron from a Block
|
||||
* Returns null if block is not a BCauldron
|
||||
* Get a BCauldron from a Block.
|
||||
* <p>Returns null if block is not a BCauldron
|
||||
*/
|
||||
@Nullable
|
||||
public static BCauldron getCauldron(Block block) {
|
||||
@ -212,9 +222,9 @@ public class BreweryApi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove any data associated with a Cauldron at that given Block
|
||||
* Returns true if a Cauldron was removed
|
||||
* Does not remove the Block from the World
|
||||
* Remove any data associated with a Cauldron at that given Block.
|
||||
* <p>Returns true if a Cauldron was removed
|
||||
* <p>Does not remove the Block from the World
|
||||
*/
|
||||
public static boolean removeCauldron(Block block) {
|
||||
return BCauldron.remove(block);
|
||||
@ -226,9 +236,9 @@ public class BreweryApi {
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get a BRecipe by its name
|
||||
* The name is the middle one of the three if three are set in the config
|
||||
* Returns null if recipe with that name does not exist
|
||||
* Get a BRecipe by its name.
|
||||
* <p>The name is the middle one of the three if three are set in the config
|
||||
* <p>Returns null if recipe with that name does not exist
|
||||
*/
|
||||
@Nullable
|
||||
public static BRecipe getRecipe(String name) {
|
||||
@ -237,15 +247,15 @@ public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Add a New Recipe.
|
||||
* Brews can be made out of this Recipe.
|
||||
* The recipe can be changed or removed later.
|
||||
* <p>Brews can be made out of this Recipe.
|
||||
* <p>The recipe can be changed or removed later.
|
||||
*
|
||||
* @param recipe The Recipe to add
|
||||
* @param saveForever Not Implemented yet
|
||||
* If the recipe should be saved forever, even after the Server restarts
|
||||
* If True: Recipe will be saved until removed manually
|
||||
* If False: Recipe will be removed when the Server restarts, existing potions using
|
||||
* this Recipe will become bad after continued aging, if the recipe is not added again.
|
||||
* @param saveForever Not Implemented yet.
|
||||
* <br>If the recipe should be saved forever, even after the Server restarts
|
||||
* <br>If True: Recipe will be saved until removed manually
|
||||
* <br>If False: Recipe will be removed when the Server restarts, existing potions using
|
||||
* <br>this Recipe will become bad after continued aging, if the recipe is not added again.
|
||||
*/
|
||||
public static void addRecipe(BRecipe recipe, boolean saveForever) {
|
||||
//recipe.setSaveInData(saveForever);
|
||||
@ -258,7 +268,7 @@ public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Removes a Recipe from the List of all Recipes.
|
||||
* This can also remove Recipes that were loaded from config, though these will be readded when reloading the config
|
||||
* <p>This can also remove Recipes that were loaded from config, though these will be readded when reloading the config
|
||||
*
|
||||
* @param name The name of the recipe to remove
|
||||
* @return The Recipe that was removed, null if none was removed
|
||||
@ -296,8 +306,8 @@ public class BreweryApi {
|
||||
// # # # # # # # # # # # #
|
||||
|
||||
/**
|
||||
* Get A BCauldronRecipe by its name
|
||||
* Returns null if recipe with that name does not exist
|
||||
* Get A BCauldronRecipe by its name.
|
||||
* <p>Returns null if recipe with that name does not exist
|
||||
*/
|
||||
@Nullable
|
||||
public static BCauldronRecipe getCauldronRecipe(String name) {
|
||||
@ -306,14 +316,14 @@ public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Add a New Cauldron Recipe.
|
||||
* Base Brews coming out of the Cauldron can be made from this recipe
|
||||
* The recipe can be changed or removed later.
|
||||
* <p>Base Brews coming out of the Cauldron can be made from this recipe
|
||||
* <p>The recipe can be changed or removed later.
|
||||
*
|
||||
* @param recipe The Cauldron Recipe to add
|
||||
* @param saveForever Not Implemented yet
|
||||
* If the recipe should be saved forever, even after the Server restarts
|
||||
* If True: Recipe will be saved until removed manually
|
||||
* If False: Recipe will be removed when the Server restarts
|
||||
* @param saveForever Not Implemented yet.
|
||||
* <br>If the recipe should be saved forever, even after the Server restarts
|
||||
* <br>If True: Recipe will be saved until removed manually
|
||||
* <br>If False: Recipe will be removed when the Server restarts
|
||||
*/
|
||||
public static void addCauldronRecipe(BCauldronRecipe recipe, boolean saveForever) {
|
||||
//recipe.setSaveInData(saveForever);
|
||||
@ -326,7 +336,8 @@ public class BreweryApi {
|
||||
|
||||
/**
|
||||
* Removes a Cauldron Recipe from the List of all Cauldron Recipes.
|
||||
* This can also remove Cauldron Recipes that were loaded from config, though these will be readded when reloading the config
|
||||
* <p>This can also remove Cauldron Recipes that were loaded from config,
|
||||
* though these will be readded when reloading the config
|
||||
*
|
||||
* @param name The name of the cauldron recipe to remove
|
||||
* @return The Cauldron Recipe that was removed, null if none was removed
|
||||
|
@ -7,17 +7,15 @@ import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The Brewery Config was reloaded
|
||||
* The Brewery Config was reloaded.
|
||||
*/
|
||||
public class ConfigLoadEvent extends Event {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
/**
|
||||
* One of the things one might need to do after reloading
|
||||
* Removes a Recipe, can also remove config recipes
|
||||
* Removes a Recipe, can also remove config recipes.
|
||||
* One of the things one might need to do after reloading.
|
||||
*
|
||||
* @param name Name of the Recipe to remove
|
||||
* @return The Recipe that was removed, null if none was removed
|
||||
@ -27,8 +25,8 @@ public class ConfigLoadEvent extends Event {
|
||||
}
|
||||
|
||||
/**
|
||||
* One of the things one might need to do after reloading
|
||||
* Removes a Cauldron Recipe, can also remove config recipes
|
||||
* Removes a Cauldron Recipe, can also remove config recipes.
|
||||
* One of the things one might need to do after reloading.
|
||||
*
|
||||
* @param name Name of the Cauldron Recipe to remove
|
||||
* @return The Cauldron Recipe that was removed, null if none was removed
|
||||
|
@ -15,9 +15,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Player adding an ingredient to a cauldron
|
||||
* Always one item added at a time
|
||||
* If needed use the caudrons add method to manually add more Items
|
||||
* Player adding an ingredient to a cauldron.
|
||||
* <p>Always one item added at a time.
|
||||
* <p>If needed use the caudrons add method to manually add more Items
|
||||
*/
|
||||
public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -46,17 +46,17 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
|
||||
/**
|
||||
* The Recipe item that matches the ingredient.
|
||||
* This might not be the only recipe item that will match the ingredient
|
||||
* Will be recalculated if the Ingredient is changed with the setIngredient Method
|
||||
* <p>This might not be the only recipe item that will match the ingredient
|
||||
* <p>Will be recalculated if the Ingredient is changed with the setIngredient Method
|
||||
*/
|
||||
public RecipeItem getRecipeItem() {
|
||||
return rItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the item currently being added to the cauldron by the player
|
||||
* Can be changed directly (mutable) or with the setter Method
|
||||
* The amount is ignored and always one added
|
||||
* Get the item currently being added to the cauldron by the player.
|
||||
* <p>Can be changed directly (mutable) or with the setter Method
|
||||
* <p>The amount is ignored and always one added
|
||||
*
|
||||
* @return The item being added
|
||||
*/
|
||||
@ -65,10 +65,10 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ingredient added to the cauldron to something else
|
||||
* Will always be accepted, even when not in a recipe or the cooked lis
|
||||
* The amount is ignored and always one added
|
||||
* This also recalculates the recipeItem!
|
||||
* Set the ingredient added to the cauldron to something else.
|
||||
* <p>Will always be accepted, even when not in a recipe or the cooked lis
|
||||
* <p>The amount is ignored and always one added
|
||||
* <p>This also recalculates the recipeItem!
|
||||
*
|
||||
* @param ingredient The item to add instead
|
||||
*/
|
||||
@ -79,15 +79,15 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* If the amount of the item in the players hand should be decreased
|
||||
* Default true
|
||||
* If the amount of the item in the players hand should be decreased.
|
||||
* (Default true)
|
||||
*/
|
||||
public boolean willTakeItem() {
|
||||
return takeItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if the amount of the item in the players hand should be decreased
|
||||
* Set if the amount of the item in the players hand should be decreased.
|
||||
*
|
||||
* @param takeItem if the item amount in the hand should be decreased
|
||||
*/
|
||||
@ -96,8 +96,8 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the BlockData of the Cauldron
|
||||
* May be null if the Cauldron does not exist anymore
|
||||
* Get the BlockData of the Cauldron.
|
||||
* <p>May be null if the Cauldron does not exist anymore
|
||||
*
|
||||
* @return The BlockData of the cauldron
|
||||
*/
|
||||
@ -111,9 +111,9 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the water fill level of the Cauldron
|
||||
* 0 = empty, 1 = something in, 2 = full
|
||||
* Can use BCauldron.EMPTY, BCauldron.SOME, BCauldron.FULL
|
||||
* Get the water fill level of the Cauldron.
|
||||
* <p>0 = empty, 1 = something in, 2 = full
|
||||
* <p>Can use BCauldron.EMPTY, BCauldron.SOME, BCauldron.FULL
|
||||
*
|
||||
* @return The fill level as a byte 0-2
|
||||
*/
|
||||
@ -127,7 +127,7 @@ public class IngedientAddEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* If the event is cancelled, no item will be added or taken from the player
|
||||
* If the event is cancelled, no item will be added or taken from the player.
|
||||
*/
|
||||
@Override
|
||||
public void setCancelled(boolean cancelled) {
|
||||
|
@ -13,7 +13,7 @@ import java.util.Objects;
|
||||
/**
|
||||
* The Player writes something in Chat or on a Sign and his words are distorted.
|
||||
*
|
||||
* This Event may be Async if the Chat Event is Async!
|
||||
* <p>This Event may be Async if the Chat Event is Async!
|
||||
*/
|
||||
public class PlayerChatDistortEvent extends Event implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
@ -11,8 +11,9 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* A List of effects is applied to the player.
|
||||
* This happens for various reasons like Alcohol level, Brew quality, Brew effects, etc.
|
||||
* Can be changed or cancelled
|
||||
* <p>This happens for various reasons like Alcohol level, Brew quality, Brew effects, etc.
|
||||
*
|
||||
* <p>Can be changed or cancelled
|
||||
*/
|
||||
public class PlayerEffectEvent extends PlayerEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -38,7 +39,7 @@ public class PlayerEffectEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return What type of effects are applied, sie EffectType
|
||||
* @return What type of effects are applied, see EffectType
|
||||
*/
|
||||
public EffectType getEffectType() {
|
||||
return effectType;
|
||||
@ -66,27 +67,30 @@ public class PlayerEffectEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The Type of Effect, or why an effect is being added to the player.
|
||||
*/
|
||||
public enum EffectType {
|
||||
/**
|
||||
* The Alcohol level demands its toll.
|
||||
* Regularly applied depending on the players alcohol level
|
||||
* By default it is just one Confusion effect
|
||||
* <p>Regularly applied depending on the players alcohol level
|
||||
* <p>By default it is just one Confusion effect
|
||||
*/
|
||||
ALCOHOL,
|
||||
|
||||
/**
|
||||
* Effects of a Brew are applied to the player (drinking the Brew)
|
||||
* These depend on alcohol and quality of the brew
|
||||
* Effects of a Brew are applied to the player (drinking the Brew).
|
||||
* <p>These depend on alcohol and quality of the brew
|
||||
*/
|
||||
DRINK,
|
||||
|
||||
/**
|
||||
* When drinking a Brew with low Quality, these effects are applied
|
||||
* When drinking a Brew with low Quality, these effects are applied.
|
||||
*/
|
||||
QUALITY,
|
||||
|
||||
/**
|
||||
* When logging in after drinking, Hangover Effects are applied
|
||||
* When logging in after drinking, Hangover Effects are applied.
|
||||
*/
|
||||
HANGOVER
|
||||
|
||||
|
@ -8,9 +8,9 @@ import org.bukkit.event.player.PlayerEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* The player pukes (throws puke items to the ground)
|
||||
* Those items can never be picked up and despawn after the time set in the config
|
||||
* Number of items to drop can be changed with count
|
||||
* The player pukes (throws puke items to the ground).
|
||||
* <p>Those items can never be picked up and despawn after the time set in the config
|
||||
* <p>Number of items to drop can be changed with count
|
||||
*/
|
||||
public class PlayerPukeEvent extends PlayerEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -25,14 +25,14 @@ public class PlayerPukeEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The Amount of items being dropped this time
|
||||
* Get the Amount of items being dropped this time
|
||||
*/
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param count Set the amount of items being dropped this time
|
||||
* Set the amount of items being dropped this time
|
||||
*/
|
||||
public void setCount(int count) {
|
||||
this.count = count;
|
||||
|
@ -9,9 +9,9 @@ import org.bukkit.util.Vector;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* The Players movement is hindered because of drunkeness
|
||||
* Called each time before pushing the Player with the Vector push 10 times
|
||||
* The Push Vector can be changed or multiplied
|
||||
* The Players movement is hindered because of drunkeness.
|
||||
* <p>Called each time before pushing the Player with the Vector push 10 times
|
||||
* <p>The Push Vector can be changed or multiplied
|
||||
*/
|
||||
public class PlayerPushEvent extends PlayerEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -29,12 +29,9 @@ public class PlayerPushEvent extends PlayerEvent implements Cancellable {
|
||||
return bPlayer;
|
||||
}
|
||||
|
||||
// The Vector in which direction and magnitude the player is Pushed
|
||||
// Can be changed directly or through setPush
|
||||
|
||||
/**
|
||||
* Get the Vector in which direction and magnitude the player is pushed
|
||||
* Can be changed directly or through setPush
|
||||
* Get the Vector in which direction and magnitude the player is pushed.
|
||||
* <p>Can be changed directly or through setPush
|
||||
*
|
||||
* @return The current push vector
|
||||
*/
|
||||
@ -43,7 +40,7 @@ public class PlayerPushEvent extends PlayerEvent implements Cancellable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Push vector
|
||||
* Set the Push vector.
|
||||
*
|
||||
* @param push The new push vector, not null
|
||||
*/
|
||||
|
@ -8,9 +8,9 @@ import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A Player opens a Barrel by rightclicking it
|
||||
* The PlayerInteractEvent on the Barrel may be cancelled. In that case this never gets called
|
||||
* Can be cancelled to silently deny opening the Barrel
|
||||
* A Player opens a Barrel by rightclicking it.
|
||||
* <p>The PlayerInteractEvent on the Barrel may be cancelled. In that case this never gets called
|
||||
* <p>Can be cancelled to silently deny opening the Barrel
|
||||
*/
|
||||
public class BarrelAccessEvent extends BarrelEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -26,7 +26,7 @@ public class BarrelAccessEvent extends BarrelEvent implements Cancellable {
|
||||
|
||||
/**
|
||||
* Gets the Block that was actually clicked.
|
||||
* For access Permissions getSpigot() should be used
|
||||
* <p>For access Permissions getSpigot() should be used
|
||||
*/
|
||||
public Block getClickedBlock() {
|
||||
return clickedBlock;
|
||||
|
@ -7,8 +7,8 @@ import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Called when a Barrel is created by a Player by placing a Sign
|
||||
* Cancelling this will silently fail the Barrel creation
|
||||
* Called when a Barrel is created by a Player by placing a Sign.
|
||||
* <p>Cancelling this will silently fail the Barrel creation
|
||||
*/
|
||||
public class BarrelCreateEvent extends BarrelEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
@ -9,10 +9,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* A Barrel is being destroyed by something, may not be by a Player
|
||||
* A BarrelRemoveEvent will be called after this, if this is not cancelled
|
||||
* Use the BarrelRemoveEvent to monitor any and all barrels being removed in a non cancellable way
|
||||
* Cancelling the Event will stop the barrel from being destroyed
|
||||
* A Barrel is being destroyed by something, may not be by a Player.
|
||||
* <p>A BarrelRemoveEvent will be called after this, if this is not cancelled
|
||||
* <p>Use the BarrelRemoveEvent to monitor any and all barrels being removed in a non cancellable way
|
||||
* <p>Cancelling the Event will stop the barrel from being destroyed
|
||||
*/
|
||||
public class BarrelDestroyEvent extends BarrelEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -82,6 +82,9 @@ public class BarrelDestroyEvent extends BarrelEvent implements Cancellable {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Reason why the Barrel is being destroyed.
|
||||
*/
|
||||
public enum Reason {
|
||||
/**
|
||||
* A Player Broke the Barrel
|
||||
|
@ -5,7 +5,8 @@ import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A Barrel is being removed. There may have been a BarrelDestroyEvent before this
|
||||
* A Barrel is being removed.
|
||||
* <p>There may have been a BarrelDestroyEvent before this.
|
||||
* If not, Worldedit, other Plugins etc may be the cause for unexpected removal
|
||||
*/
|
||||
public class BarrelRemoveEvent extends BarrelEvent {
|
||||
|
@ -9,9 +9,9 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A Player Drinks a Brew
|
||||
* The amount of alcohol and quality that will be added to the player can be get/set here
|
||||
* If cancelled the drinking will fail silently
|
||||
* A Player Drinks a Brew.
|
||||
* <p>The amount of alcohol and quality that will be added to the player can be get/set here
|
||||
* <p>If cancelled the drinking will fail silently
|
||||
*/
|
||||
public class BrewDrinkEvent extends BrewEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
@ -19,6 +19,9 @@ public abstract class BrewEvent extends Event {
|
||||
return brew;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Meta of the Item this Brew is attached to
|
||||
*/
|
||||
@NotNull
|
||||
public ItemMeta getItemMeta() {
|
||||
return meta;
|
||||
|
@ -9,10 +9,10 @@ import org.bukkit.inventory.meta.PotionMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A Brew has been created or modified
|
||||
* Usually happens on Filling from cauldron, distilling and aging.
|
||||
* Modifications to the Brew or the PotionMeta can be done now
|
||||
* Cancelling reverts the Brew to the state it was before the modification
|
||||
* A Brew has been created or modified.
|
||||
* <p>Usually happens on filling from cauldron, distilling and aging.
|
||||
* <p>Modifications to the Brew or the PotionMeta can be done now
|
||||
* <p>Cancelling reverts the Brew to the state it was before the modification
|
||||
*/
|
||||
public class BrewModifyEvent extends BrewEvent implements Cancellable {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
@ -25,11 +25,17 @@ public class BrewModifyEvent extends BrewEvent implements Cancellable {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Type of modification being applied to the Brew.
|
||||
*/
|
||||
@NotNull
|
||||
public Type getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the BrewLore to modify lore on the Brew
|
||||
*/
|
||||
@NotNull
|
||||
public BrewLore getLore() {
|
||||
return new BrewLore(getBrew(), (PotionMeta) getItemMeta());
|
||||
@ -42,7 +48,7 @@ public class BrewModifyEvent extends BrewEvent implements Cancellable {
|
||||
|
||||
/**
|
||||
* Setting the Event cancelled cancels all modificatons to the brew.
|
||||
* Modifications to the Brew or ItemMeta will not be applied
|
||||
* <p>Modifications to the Brew or ItemMeta will not be applied
|
||||
*/
|
||||
@Override
|
||||
public void setCancelled(boolean cancelled) {
|
||||
@ -60,13 +66,44 @@ public class BrewModifyEvent extends BrewEvent implements Cancellable {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
/**
|
||||
* The Type of Modification being applied to the Brew.
|
||||
*/
|
||||
public enum Type {
|
||||
CREATE, // A new Brew is created with arbitrary ways, like the create command
|
||||
FILL, // Filled from a Cauldron into a new Brew
|
||||
DISTILL, // Distilled in the Brewing stand
|
||||
AGE, // Aged in a Barrel
|
||||
UNLABEL, // Unlabeling Brew with command
|
||||
STATIC, // Making Brew static with command
|
||||
UNKNOWN // Unknown modification, unused
|
||||
/**
|
||||
* A new Brew is created with arbitrary ways, like the create command.
|
||||
* <p>Cancelling this will disallow the creation
|
||||
*/
|
||||
CREATE,
|
||||
|
||||
/**
|
||||
* Filled from a Cauldron into a new Brew.
|
||||
*/
|
||||
FILL,
|
||||
|
||||
/**
|
||||
* Distilled in the Brewing stand.
|
||||
*/
|
||||
DISTILL,
|
||||
|
||||
/**
|
||||
* Aged in a Barrel.
|
||||
*/
|
||||
AGE,
|
||||
|
||||
/**
|
||||
* Unlabeling Brew with command.
|
||||
*/
|
||||
UNLABEL,
|
||||
|
||||
/**
|
||||
* Making Brew static with command.
|
||||
*/
|
||||
STATIC,
|
||||
|
||||
/**
|
||||
* Unknown modification, unused.
|
||||
*/
|
||||
UNKNOWN
|
||||
}
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ public class InventoryListener implements Listener {
|
||||
|
||||
/**
|
||||
* Clicking can either start or stop the new brew distillation tracking.
|
||||
* Note that server restart will halt any ongoing brewing processes and
|
||||
* <p>Note that server restart will halt any ongoing brewing processes and
|
||||
* they will _not_ restart until a new click event.
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
|
@ -15,6 +15,10 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Represents the Lore on a Brew under Modification.
|
||||
* <p>Can efficiently replace certain lines of lore, to update brew information on an item.
|
||||
*/
|
||||
public class BrewLore {
|
||||
private Brew brew;
|
||||
private PotionMeta meta;
|
||||
@ -32,8 +36,8 @@ public class BrewLore {
|
||||
}
|
||||
|
||||
/**
|
||||
* Write the new lore into the Meta
|
||||
* Should be called at the end of operation on this Brew Lore
|
||||
* Write the new lore into the Meta.
|
||||
* <p>Should be called at the end of operation on this Brew Lore
|
||||
*/
|
||||
public PotionMeta write() {
|
||||
if (lineAddedOrRem) {
|
||||
@ -286,7 +290,7 @@ public class BrewLore {
|
||||
|
||||
/**
|
||||
* Adds or replaces a line of Lore.
|
||||
* Searches for type and if not found for Substring lore and replaces it
|
||||
* <p>Searches for type and if not found for Substring lore and replaces it
|
||||
*
|
||||
* @param type The Type of BrewLore to replace
|
||||
* @param prefix The Prefix to add to the line of lore
|
||||
@ -473,6 +477,9 @@ public class BrewLore {
|
||||
return P.p.color(color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Type of Lore Line
|
||||
*/
|
||||
public enum Type {
|
||||
STARS("§s"),
|
||||
CUSTOM("§t"),
|
||||
|
@ -7,8 +7,8 @@ import java.util.Random;
|
||||
|
||||
/**
|
||||
* A Scramble Stream that uses XOR operations to scramble an outputstream.
|
||||
* a byte generator feeded with the seed is used as xor source
|
||||
* The resulting data can be unscrambled by the XORUnscrambleStream
|
||||
* <p>a byte generator feeded with the seed is used as xor source
|
||||
* <p>The resulting data can be unscrambled by the XORUnscrambleStream
|
||||
*/
|
||||
public class XORScrambleStream extends FilterOutputStream {
|
||||
|
||||
@ -29,8 +29,8 @@ public class XORScrambleStream extends FilterOutputStream {
|
||||
|
||||
/**
|
||||
* To start the scrambling process this has to be called before writing any data to this stream.
|
||||
* Before starting the scrambler, any data will just be passed through unscrambled to the underlying stream.
|
||||
* The Scrambling can be started and stopped arbitrarily at any point, allowing for parts of unscrambled data in the stream.
|
||||
* <br>Before starting the scrambler, any data will just be passed through unscrambled to the underlying stream.
|
||||
* <br>The Scrambling can be started and stopped arbitrarily at any point, allowing for parts of unscrambled data in the stream.
|
||||
*
|
||||
* @throws IOException IOException
|
||||
*/
|
||||
@ -50,15 +50,15 @@ public class XORScrambleStream extends FilterOutputStream {
|
||||
|
||||
/**
|
||||
* Stop the scrambling, any following data will be passed through unscrambled.
|
||||
* The scrambling can be started again at any point after calling this
|
||||
* <br>The scrambling can be started again at any point after calling this
|
||||
*/
|
||||
public void stop() {
|
||||
running = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark the stream as unscrambled, any effort of unscrambing the data later will automatically read the already unscrambled data
|
||||
* Useful if a stream may be scrambled or unscrambled, the unscrambler will automatically identify either way.
|
||||
* Mark the stream as unscrambled, any effort of unscrambing the data later will automatically read the already unscrambled data.
|
||||
* <p>Useful if a stream may be scrambled or unscrambled, the unscrambler will automatically identify either way.
|
||||
*
|
||||
* @throws IOException IOException
|
||||
* @throws IllegalStateException If the Scrambler was started in normal scrambling mode before
|
||||
|
@ -11,8 +11,8 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* A Scramble Stream that uses XOR operations to unscramble an inputstream.
|
||||
* a byte generator feeded with the seed is used as xor source
|
||||
* Used to unscramble data generated by the XORScrambleStream
|
||||
* <p>a byte generator feeded with the seed is used as xor source
|
||||
* <p>Used to unscramble data generated by the XORScrambleStream
|
||||
*/
|
||||
public class XORUnscrambleStream extends FilterInputStream {
|
||||
|
||||
@ -26,7 +26,7 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
private SuccessType successType = SuccessType.NONE;
|
||||
|
||||
/**
|
||||
* Create a new instance of an XORUnscrambler, unscrambling the given inputstream
|
||||
* Create a new instance of an XORUnscrambler, unscrambling the given inputstream.
|
||||
*
|
||||
* @param in The Inputstream to be unscrambled
|
||||
* @param seed The seed used for unscrambling
|
||||
@ -38,11 +38,12 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new instance of an XORUnscrambler, unscrambling the given inputstream
|
||||
* If given a List of previous Seeds, the unscrambler will try all of them for unscrambling the stream in case the seed fails.
|
||||
* Create a new instance of an XORUnscrambler, unscrambling the given inputstream.
|
||||
* <p>If given a List of previous Seeds, the unscrambler will try all of them for unscrambling the stream in case the seed fails.
|
||||
*
|
||||
* @param in The Inputstream to be unscrambled
|
||||
* @param seed The seed used for unscrambling
|
||||
* @param prevSeeds List of previously used seeds
|
||||
*/
|
||||
public XORUnscrambleStream(InputStream in, long seed, List<Long> prevSeeds) {
|
||||
super(in);
|
||||
@ -52,8 +53,8 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
|
||||
/**
|
||||
* Before unscrambling, this has to be called to tell the unscrambler that scrambled data will follow.
|
||||
* Before starting the unscrambler, any data will just be passed through unmodified to the underlying stream.
|
||||
* The Unscrambling can be started and stopped arbitrarily at any point, allowing for parts of already unscrambled data in the stream.
|
||||
* <br>Before starting the unscrambler, any data will just be passed through unmodified to the underlying stream.
|
||||
* <br>The Unscrambling can be started and stopped arbitrarily at any point, allowing for parts of already unscrambled data in the stream.
|
||||
*
|
||||
* @throws IOException IOException
|
||||
* @throws InvalidKeyException If the scrambled data could not be read, very likely caused by a wrong seed. Thrown after checking all previous seeds.
|
||||
@ -99,7 +100,7 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
|
||||
/**
|
||||
* Stop the unscrambling, any following data will be passed through unmodified.
|
||||
* The unscrambling can be started again at any point after calling this
|
||||
* <p>The unscrambling can be started again at any point after calling this
|
||||
*/
|
||||
public void stop() {
|
||||
running = false;
|
||||
@ -126,7 +127,7 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
}
|
||||
|
||||
/**
|
||||
* What was used to unscramble the stream, it was already unscrambled, Main Seed, Prev Seed
|
||||
* What was used to unscramble the stream: it was already unscrambled | Main Seed | Prev Seed
|
||||
*
|
||||
* @return The Type of Seed used to unscramble this, if any
|
||||
*/
|
||||
@ -180,10 +181,28 @@ public class XORUnscrambleStream extends FilterInputStream {
|
||||
markRunning = running;
|
||||
}
|
||||
|
||||
/**
|
||||
* What succeeded in unscrambling the Stream.
|
||||
*/
|
||||
public static enum SuccessType {
|
||||
/**
|
||||
* The Stream was already unscrambled.
|
||||
*/
|
||||
UNSCRAMBLED,
|
||||
|
||||
/**
|
||||
* The Main Seed was used to unscramble the Stream.
|
||||
*/
|
||||
MAIN_SEED,
|
||||
|
||||
/**
|
||||
* One of the Previous Seeds was used to unscramble the Stream.
|
||||
*/
|
||||
PREV_SEED,
|
||||
|
||||
/**
|
||||
* It was not successful.
|
||||
*/
|
||||
NONE;
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,9 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* A Recipe for the Base Potion coming out of the Cauldron.
|
||||
*/
|
||||
public class BCauldronRecipe {
|
||||
public static List<BCauldronRecipe> recipes = new ArrayList<>();
|
||||
public static int numConfigRecipes;
|
||||
@ -32,8 +35,8 @@ public class BCauldronRecipe {
|
||||
|
||||
|
||||
/**
|
||||
* A New Cauldron Recipe with the given name
|
||||
* Use new BCauldronRecipe.Builder() for easier Cauldron Recipe Creation
|
||||
* A New Cauldron Recipe with the given name.
|
||||
* <p>Use new BCauldronRecipe.Builder() for easier Cauldron Recipe Creation
|
||||
*
|
||||
* @param name Name of the Cauldron Recipe
|
||||
*/
|
||||
@ -134,9 +137,9 @@ public class BCauldronRecipe {
|
||||
|
||||
/**
|
||||
* Find how much these ingredients match the given ones from 0-10.
|
||||
* If any ingredient is missing, returns 0
|
||||
* If all Ingredients and their amounts are equal, returns 10
|
||||
* Returns something between 0 and 10 if all ingredients present, but differing amounts, depending on how much the amount differs.
|
||||
* <p>If any ingredient is missing, returns 0
|
||||
* <br>If all Ingredients and their amounts are equal, returns 10
|
||||
* <br>Returns something between 0 and 10 if all ingredients present, but differing amounts, depending on how much the amount differs.
|
||||
*/
|
||||
public float getIngredientMatch(List<Ingredient> items) {
|
||||
if (items.size() < ingredients.size()) {
|
||||
@ -210,27 +213,27 @@ public class BCauldronRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a Modifiable Sublist of the CauldronRecipes that are loaded by config
|
||||
* Changes are directly reflected by the main list of all recipes
|
||||
* Changes to the main List of all CauldronRecipes will make the reference to this sublist invalid
|
||||
* Gets a Modifiable Sublist of the CauldronRecipes that are loaded by config.
|
||||
* <p>Changes are directly reflected by the main list of all recipes
|
||||
* <br>Changes to the main List of all CauldronRecipes will make the reference to this sublist invalid
|
||||
*
|
||||
* After adding or removing elements, CauldronRecipes.numConfigRecipes MUST be updated!
|
||||
* <p>After adding or removing elements, CauldronRecipes.numConfigRecipes MUST be updated!
|
||||
*/
|
||||
public static List<BCauldronRecipe> getConfigRecipes() {
|
||||
return recipes.subList(0, numConfigRecipes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a Modifiable Sublist of the CauldronRecipes that are added by plugins
|
||||
* Changes are directly reflected by the main list of all recipes
|
||||
* Changes to the main List of all CauldronRecipes will make the reference to this sublist invalid
|
||||
* Gets a Modifiable Sublist of the CauldronRecipes that are added by plugins.
|
||||
* <p>Changes are directly reflected by the main list of all recipes
|
||||
* <br>Changes to the main List of all CauldronRecipes will make the reference to this sublist invalid
|
||||
*/
|
||||
public static List<BCauldronRecipe> getAddedRecipes() {
|
||||
return recipes.subList(numConfigRecipes, recipes.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the main List of all CauldronRecipes
|
||||
* Gets the main List of all CauldronRecipes.
|
||||
*/
|
||||
public static List<BCauldronRecipe> getAllRecipes() {
|
||||
return recipes;
|
||||
@ -272,6 +275,9 @@ public class BCauldronRecipe {
|
||||
return null;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Builder to easily create BCauldron recipes.
|
||||
*/
|
||||
public static class Builder {
|
||||
private BCauldronRecipe recipe;
|
||||
|
||||
|
@ -20,6 +20,9 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
|
||||
/**
|
||||
* A Recipe used to Brew a Brewery Potion.
|
||||
*/
|
||||
public class BRecipe {
|
||||
|
||||
private static List<BRecipe> recipes = new ArrayList<>();
|
||||
@ -54,8 +57,8 @@ public class BRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* New BRecipe with Name
|
||||
* Use new BRecipe.Builder() for easier Recipe Creation
|
||||
* New BRecipe with Name.
|
||||
* <p>Use new BRecipe.Builder() for easier Recipe Creation
|
||||
*
|
||||
* @param name The name for all qualities
|
||||
*/
|
||||
@ -66,8 +69,8 @@ public class BRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* New BRecipe with Names
|
||||
* Use new BRecipe.Builder() for easier Recipe Creation
|
||||
* New BRecipe with Names.
|
||||
* <p>Use new BRecipe.Builder() for easier Recipe Creation
|
||||
*
|
||||
* @param names {name bad, name normal, name good}
|
||||
*/
|
||||
@ -311,7 +314,9 @@ public class BRecipe {
|
||||
return null;
|
||||
}
|
||||
|
||||
// check every part of the recipe for validity
|
||||
/**
|
||||
* check every part of the recipe for validity.
|
||||
*/
|
||||
public boolean isValid() {
|
||||
if (ingredients == null || ingredients.isEmpty()) {
|
||||
P.p.errorLog("No ingredients could be loaded for Recipe: " + getRecipeName());
|
||||
@ -348,7 +353,9 @@ public class BRecipe {
|
||||
return true;
|
||||
}
|
||||
|
||||
// allowed deviation to the recipes count of ingredients at the given difficulty
|
||||
/**
|
||||
* allowed deviation to the recipes count of ingredients at the given difficulty
|
||||
*/
|
||||
public int allowedCountDiff(int count) {
|
||||
if (count < 8) {
|
||||
count = 8;
|
||||
@ -361,7 +368,9 @@ public class BRecipe {
|
||||
return allowedCountDiff;
|
||||
}
|
||||
|
||||
// allowed deviation to the recipes cooking-time at the given difficulty
|
||||
/**
|
||||
* allowed deviation to the recipes cooking-time at the given difficulty
|
||||
*/
|
||||
public int allowedTimeDiff(int time) {
|
||||
if (time < 8) {
|
||||
time = 8;
|
||||
@ -374,7 +383,9 @@ public class BRecipe {
|
||||
return allowedTimeDiff;
|
||||
}
|
||||
|
||||
// difference between given and recipe-wanted woodtype
|
||||
/**
|
||||
* difference between given and recipe-wanted woodtype
|
||||
*/
|
||||
public float getWoodDiff(float wood) {
|
||||
return Math.abs(wood - this.wood);
|
||||
}
|
||||
@ -391,7 +402,9 @@ public class BRecipe {
|
||||
return age != 0;
|
||||
}
|
||||
|
||||
// true if given list misses an ingredient
|
||||
/**
|
||||
* true if given list misses an ingredient
|
||||
*/
|
||||
public boolean isMissingIngredients(List<Ingredient> list) {
|
||||
if (list.size() < ingredients.size()) {
|
||||
return true;
|
||||
@ -431,7 +444,8 @@ public class BRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Potion from this Recipe with best values. Quality can be set, but will reset to 10 if put in a barrel
|
||||
* Create a Potion from this Recipe with best values.
|
||||
* Quality can be set, but will reset to 10 if unset immutable and put in a barrel
|
||||
*
|
||||
* @param quality The Quality of the Brew
|
||||
* @return The Created Item
|
||||
@ -441,7 +455,8 @@ public class BRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Brew from this Recipe with best values. Quality can be set, but will reset to 10 if unset immutable and put in a barrel
|
||||
* Create a Brew from this Recipe with best values.
|
||||
* Quality can be set, but will reset to 10 if unset immutable and put in a barrel
|
||||
*
|
||||
* @param quality The Quality of the Brew
|
||||
* @return The created Brew
|
||||
@ -478,7 +493,9 @@ public class BRecipe {
|
||||
|
||||
// Getter
|
||||
|
||||
// how many of a specific ingredient in the recipe
|
||||
/**
|
||||
* how many of a specific ingredient in the recipe
|
||||
*/
|
||||
public int amountOf(Ingredient ing) {
|
||||
for (RecipeItem rItem : ingredients) {
|
||||
if (rItem.matches(ing)) {
|
||||
@ -488,7 +505,9 @@ public class BRecipe {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// how many of a specific ingredient in the recipe
|
||||
/**
|
||||
* how many of a specific ingredient in the recipe
|
||||
*/
|
||||
public int amountOf(ItemStack item) {
|
||||
for (RecipeItem rItem : ingredients) {
|
||||
if (rItem.matches(item)) {
|
||||
@ -498,12 +517,16 @@ public class BRecipe {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Same as getName(5)
|
||||
/**
|
||||
* Same as getName(5)
|
||||
*/
|
||||
public String getRecipeName() {
|
||||
return getName(5);
|
||||
}
|
||||
|
||||
// name that fits the quality
|
||||
/**
|
||||
* name that fits the quality
|
||||
*/
|
||||
public String getName(int quality) {
|
||||
if (name.length > 2) {
|
||||
if (quality <= 3) {
|
||||
@ -518,7 +541,9 @@ public class BRecipe {
|
||||
}
|
||||
}
|
||||
|
||||
// If one of the quality names equalIgnoreCase given name
|
||||
/**
|
||||
* If one of the quality names equalIgnoreCase given name
|
||||
*/
|
||||
public boolean hasName(String name) {
|
||||
for (String test : this.name) {
|
||||
if (test.equalsIgnoreCase(name)) {
|
||||
@ -549,7 +574,9 @@ public class BRecipe {
|
||||
return color;
|
||||
}
|
||||
|
||||
// get the woodtype
|
||||
/**
|
||||
* get the woodtype
|
||||
*/
|
||||
public byte getWood() {
|
||||
return wood;
|
||||
}
|
||||
@ -680,27 +707,27 @@ public class BRecipe {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a Modifiable Sublist of the Recipes that are loaded by config
|
||||
* Changes are directly reflected by the main list of all recipes
|
||||
* Changes to the main List of all recipes will make the reference to this sublist invalid
|
||||
* Gets a Modifiable Sublist of the Recipes that are loaded by config.
|
||||
* <p>Changes are directly reflected by the main list of all recipes
|
||||
* <br>Changes to the main List of all recipes will make the reference to this sublist invalid
|
||||
*
|
||||
* After adding or removing elements, BRecipe.numConfigRecipes MUST be updated!
|
||||
* <p>After adding or removing elements, BRecipe.numConfigRecipes MUST be updated!
|
||||
*/
|
||||
public static List<BRecipe> getConfigRecipes() {
|
||||
return recipes.subList(0, numConfigRecipes);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a Modifiable Sublist of the Recipes that are added by plugins
|
||||
* Changes are directly reflected by the main list of all recipes
|
||||
* Changes to the main List of all recipes will make the reference to this sublist invalid
|
||||
* Gets a Modifiable Sublist of the Recipes that are added by plugins.
|
||||
* <p>Changes are directly reflected by the main list of all recipes
|
||||
* <br>Changes to the main List of all recipes will make the reference to this sublist invalid
|
||||
*/
|
||||
public static List<BRecipe> getAddedRecipes() {
|
||||
return recipes.subList(numConfigRecipes, recipes.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the main List of all recipes
|
||||
* Gets the main List of all recipes.
|
||||
*/
|
||||
public static List<BRecipe> getAllRecipes() {
|
||||
return recipes;
|
||||
@ -725,6 +752,9 @@ public class BRecipe {
|
||||
}*/
|
||||
|
||||
|
||||
/**
|
||||
* Builder to easily create Recipes
|
||||
*/
|
||||
public static class Builder {
|
||||
private BRecipe recipe;
|
||||
|
||||
|
@ -16,7 +16,7 @@ import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Minecraft Item with custon name and lore.
|
||||
* Mostly used for Custom Items of the Config, but also for general custom items
|
||||
* <p>Mostly used for Custom Items of the Config, but also for general custom items
|
||||
*/
|
||||
public class CustomItem extends RecipeItem implements Ingredient {
|
||||
|
||||
@ -167,7 +167,7 @@ public class CustomItem extends RecipeItem implements Ingredient {
|
||||
|
||||
/**
|
||||
* If this item has lore that matches the given lore.
|
||||
* It matches if our lore is contained in the given lore consecutively, ignoring color of the given lore.
|
||||
* <p>It matches if our lore is contained in the given lore consecutively, ignoring color of the given lore.
|
||||
*
|
||||
* @param usedLore The given lore to match
|
||||
* @return True if the given lore contains our lore consecutively
|
||||
|
@ -13,7 +13,7 @@ import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Custom Item that matches any one of the given info.
|
||||
* Does not implement Ingredient, as it can not directly be added to an ingredient
|
||||
* <p>Does not implement Ingredient, as it can not directly be added to an ingredient
|
||||
*/
|
||||
public class CustomMatchAnyItem extends RecipeItem {
|
||||
|
||||
|
@ -9,11 +9,11 @@ import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* Item used in a BIngredients, inside BCauldron or Brew.
|
||||
* Represents the Items used as ingredients in the Brewing process
|
||||
* Can be a copy of a recipe item
|
||||
* Will be saved and loaded with a DataStream
|
||||
* Each implementing class needs to register a static function as Item Loader
|
||||
* Item used in a BIngredients, inside BCauldron or Brew,
|
||||
* Represents the Items used as ingredients in the Brewing process.
|
||||
* <p>Can be a copy of a recipe item
|
||||
* <p>Will be saved and loaded with a DataStream
|
||||
* <p>Each implementing class needs to register a static function as Item Loader
|
||||
*/
|
||||
public interface Ingredient {
|
||||
|
||||
@ -21,7 +21,7 @@ public interface Ingredient {
|
||||
|
||||
/**
|
||||
* Register a Static function as function that takes an ItemLoader, containing a DataInputStream.
|
||||
* Using the Stream it constructs a corresponding Ingredient for the chosen SaveID
|
||||
* <p>Using the Stream it constructs a corresponding Ingredient for the chosen SaveID
|
||||
*
|
||||
* @param saveID The SaveID should be a small identifier like "AB"
|
||||
* @param loadFct The Static Function that loads the Item, i.e.
|
||||
@ -43,10 +43,10 @@ public interface Ingredient {
|
||||
|
||||
/**
|
||||
* Saves this Ingredient to the DataOutputStream.
|
||||
* The first data HAS to be storing the SaveID like:
|
||||
* <p>The first data HAS to be storing the SaveID like:
|
||||
* out.writeUTF("AB");
|
||||
* Amount will be saved automatically and does not have to be saved here.
|
||||
* Saving is done to Brew or for BCauldron into data.yml
|
||||
* <p>Amount will be saved automatically and does not have to be saved here.
|
||||
* <p>Saving is done to Brew or for BCauldron into data.yml
|
||||
*
|
||||
* @param out The outputstream to write to
|
||||
* @throws IOException Any IOException
|
||||
@ -67,9 +67,8 @@ public interface Ingredient {
|
||||
|
||||
/*
|
||||
* Does this Item match the given RecipeItem.
|
||||
* An IngredientItem matches a RecipeItem if all required info of the RecipeItem are fulfilled on this IngredientItem
|
||||
* This does not imply that the same holds the other way round, as this item might have more info than needed
|
||||
*
|
||||
* <p>An IngredientItem matches a RecipeItem if all required info of the RecipeItem are fulfilled on this IngredientItem
|
||||
* <p>This does not imply that the same holds the other way round, as this item might have more info than needed
|
||||
*
|
||||
* @param recipeItem The recipeItem whose requirements need to be fulfilled
|
||||
* @return True if this matches the required info of the recipeItem
|
||||
@ -77,7 +76,7 @@ public interface Ingredient {
|
||||
//boolean matches(RecipeItem recipeItem);
|
||||
|
||||
/**
|
||||
* The other Ingredient is Similar if it is equal except amount
|
||||
* The other Ingredient is Similar if it is equal except amount.
|
||||
*
|
||||
* @param item The item to check similarity with
|
||||
* @return True if this is equal to item except for amount
|
||||
|
@ -16,8 +16,8 @@ import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* An Item of a Recipe or as Ingredient in a Brew that corresponds to an item from another plugin.
|
||||
* See /integration/item for examples on how to extend this class.
|
||||
* This class stores items as name of the plugin and item id
|
||||
* <p>See /integration/item for examples on how to extend this class.
|
||||
* <p>This class stores items as name of the plugin and item id
|
||||
*/
|
||||
public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
|
||||
@ -72,14 +72,14 @@ public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
|
||||
/**
|
||||
* Called after Loading this Plugin Item from Config, or (by default) from Ingredients.
|
||||
* Allows Override to define custom actions after an Item was constructed
|
||||
* <p>Allows Override to define custom actions after an Item was constructed
|
||||
*/
|
||||
protected void onConstruct() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Does this PluginItem Match the other Ingredient.
|
||||
* By default it matches exactly when they are similar, i.e. also a PluginItem with same parameters
|
||||
* <p>By default it matches exactly when they are similar, i.e. also a PluginItem with same parameters
|
||||
*
|
||||
* @param ingredient The ingredient that needs to fulfill the requirements
|
||||
* @return True if the ingredient matches the required info of this
|
||||
@ -132,8 +132,8 @@ public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when loading this Plugin Item from Ingredients (of a Brew)
|
||||
* The default loading is the same as loading from Config
|
||||
* Called when loading this Plugin Item from Ingredients (of a Brew).
|
||||
* <p>The default loading is the same as loading from Config
|
||||
*
|
||||
* @param loader The ItemLoader from which to load the data, use loader.getInputStream()
|
||||
* @return The constructed PluginItem
|
||||
@ -161,8 +161,8 @@ public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
}
|
||||
|
||||
/**
|
||||
* Needs to be called at Server start
|
||||
* Registers the chosen SaveID and the loading Method for loading from Brew or BCauldron
|
||||
* Registers the chosen SaveID and the loading Method for loading from Brew or BCauldron.
|
||||
* <p>Needs to be called at Server start.
|
||||
*/
|
||||
public static void registerItemLoader() {
|
||||
Ingredient.registerForItemLoader("PI", PluginItem::loadFrom);
|
||||
@ -170,8 +170,8 @@ public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
|
||||
|
||||
/**
|
||||
* Called when loading trying to find a config defined Plugin Item, or by default also when loading from ingredients
|
||||
* Will call a registered constructor matching the given plugin identifier
|
||||
* Called when loading trying to find a config defined Plugin Item. By default also when loading from ingredients
|
||||
* <p>Will call a registered constructor matching the given plugin identifier
|
||||
*
|
||||
* @param plugin The Identifier of the Plugin used in the config
|
||||
* @param itemId The Identifier of the Item belonging to this Plugin used in the config
|
||||
@ -193,11 +193,11 @@ public abstract class PluginItem extends RecipeItem implements Ingredient {
|
||||
|
||||
/**
|
||||
* This needs to be called at Server Start before Brewery loads its data.
|
||||
* When implementing this, put Brewery as softdepend in your plugin.yml!
|
||||
* Registers a Constructor that returns a new or cloned instance of a PluginItem
|
||||
* This Constructor will be called when loading a Plugin Item from Config or by default from ingredients
|
||||
* After the Constructor is called, the plugin and itemid will be set on the new instance
|
||||
* Finally the onConstruct is called.
|
||||
* <p>When implementing this, put Brewery as softdepend in your plugin.yml!
|
||||
* <p>Registers a Constructor that returns a new or cloned instance of a PluginItem
|
||||
* <br>This Constructor will be called when loading a Plugin Item from Config or by default from ingredients
|
||||
* <br>After the Constructor is called, the plugin and itemid will be set on the new instance
|
||||
* <p>Finally the onConstruct is called.
|
||||
*
|
||||
* @param pluginId The ID to use in the config
|
||||
* @param constructor The constructor i.e. YourPluginItem::new
|
||||
|
@ -17,8 +17,8 @@ import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Item that can be used in a Recipe.
|
||||
* They are not necessarily only loaded from config
|
||||
* They are immutable if used in a recipe. If one implements Ingredient,
|
||||
* <p>They are not necessarily only loaded from config
|
||||
* <p>They are immutable if used in a recipe. If one implements Ingredient,
|
||||
* it can be used as mutable copy directly in a
|
||||
* BIngredients. Otherwise it needs to be converted to an Ingredient
|
||||
*/
|
||||
@ -31,7 +31,7 @@ public abstract class RecipeItem implements Cloneable {
|
||||
|
||||
/**
|
||||
* Does this RecipeItem match the given ItemStack?
|
||||
* Used to determine if the given item corresponds to this recipeitem
|
||||
* <p>Used to determine if the given item corresponds to this recipeitem
|
||||
*
|
||||
* @param item The ItemStack for comparison
|
||||
* @return True if the given item matches this recipeItem
|
||||
@ -39,9 +39,9 @@ public abstract class RecipeItem implements Cloneable {
|
||||
public abstract boolean matches(ItemStack item);
|
||||
|
||||
/**
|
||||
* Does this Item match the given Ingredient.
|
||||
* A RecipeItem matches an Ingredient if all required info of the RecipeItem are fulfilled on the Ingredient
|
||||
* This does not imply that the same holds the other way round, as the ingredient item might have more info than needed
|
||||
* Does this Item match the given Ingredient?
|
||||
* <p>A RecipeItem matches an Ingredient if all required info of the RecipeItem are fulfilled on the Ingredient
|
||||
* <br>This does not imply that the same holds the other way round, as the ingredient item might have more info than needed
|
||||
*
|
||||
*
|
||||
* @param ingredient The ingredient that needs to fulfill the requirements
|
||||
@ -51,7 +51,7 @@ public abstract class RecipeItem implements Cloneable {
|
||||
|
||||
/**
|
||||
* Get the Corresponding Ingredient Item. For Items implementing Ingredient, just getMutableCopy()
|
||||
* This is called when this recipe item is added to a BIngredients
|
||||
* <p>This is called when this recipe item is added to a BIngredients
|
||||
*
|
||||
* @param forItem The ItemStack that has previously matched this RecipeItem. Used if the resulting Ingredient needs more info from the ItemStack
|
||||
* @return The IngredientItem corresponding to this RecipeItem
|
||||
@ -92,9 +92,9 @@ public abstract class RecipeItem implements Cloneable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Amount of this Item in a Recipe
|
||||
* The amount can not be set on an existing item in a recipe or existing custom item.
|
||||
* To change amount you need to use getMutableCopy() and change the amount on the copy
|
||||
* Set the Amount of this Item in a Recipe.
|
||||
* <p>The amount can not be set on an existing item in a recipe or existing custom item.
|
||||
* <br>To change amount you need to use getMutableCopy() and change the amount on the copy
|
||||
*
|
||||
* @param amount The new amount
|
||||
*/
|
||||
@ -128,12 +128,12 @@ public abstract class RecipeItem implements Cloneable {
|
||||
|
||||
/**
|
||||
* Tries to find a matching RecipeItem for this item. It checks custom items and if it has found a unique custom item
|
||||
* it will return that. If there are multiple matching custom items, a new CustomItem with all item info is returned
|
||||
* If there is no matching CustomItem, it will return a SimpleItem with the items type
|
||||
* it will return that. If there are multiple matching custom items, a new CustomItem with all item info is returned.
|
||||
* <br>If there is no matching CustomItem, it will return a SimpleItem with the items type
|
||||
*
|
||||
* @param item The Item for which to find a matching RecipeItem
|
||||
* @param acceptAll If true it will accept any item and return a SimpleItem even if not on the accepted list
|
||||
* If false it will return null if the item is not acceptable by the Cauldron
|
||||
* <br>If false it will return null if the item is not acceptable by the Cauldron
|
||||
* @return The Matched CustomItem, new CustomItem with all item info or SimpleItem
|
||||
*/
|
||||
@Nullable
|
||||
|
@ -59,7 +59,9 @@ public class BUtil {
|
||||
}
|
||||
}
|
||||
|
||||
// returns the Player if online
|
||||
/**
|
||||
* returns the Player if online
|
||||
*/
|
||||
public static Player getPlayerfromString(String name) {
|
||||
if (P.useUUID) {
|
||||
try {
|
||||
@ -97,7 +99,7 @@ public class BUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* Load A List of Strings from config. If found a single String, will convert to List
|
||||
* Load A List of Strings from config, if found a single String, will convert to List
|
||||
*/
|
||||
@Nullable
|
||||
public static List<String> loadCfgStringList(ConfigurationSection cfg, String path) {
|
||||
@ -112,7 +114,7 @@ public class BUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a String from config. If found a List, will return the first String
|
||||
* Load a String from config, if found a List, will return the first String
|
||||
*/
|
||||
@Nullable
|
||||
public static String loadCfgString(ConfigurationSection cfg, String path) {
|
||||
|
@ -191,7 +191,11 @@ public class LegacyUtil {
|
||||
}
|
||||
}
|
||||
|
||||
// 0 = empty, 1 = something in, 2 = full
|
||||
/**
|
||||
* Get The Fill Level of a Cauldron Block, 0 = empty, 1 = something in, 2 = full
|
||||
*
|
||||
* @return 0 = empty, 1 = something in, 2 = full
|
||||
*/
|
||||
public static byte getFillLevel(Block block) {
|
||||
if (block.getType() != Material.CAULDRON) {
|
||||
return EMPTY;
|
||||
@ -219,7 +223,7 @@ public class LegacyUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* only used to convert a very old Datafile or config from a very old version
|
||||
*/
|
||||
public static Material getMaterial(int id) {
|
||||
|
@ -46,8 +46,6 @@ public class Tuple<A, B> {
|
||||
|
||||
/**
|
||||
* Gets the first value in the tuple
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public A first() {
|
||||
return a;
|
||||
@ -55,8 +53,6 @@ public class Tuple<A, B> {
|
||||
|
||||
/**
|
||||
* Gets the second value in the tuple
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public B second() {
|
||||
return b;
|
||||
@ -64,8 +60,6 @@ public class Tuple<A, B> {
|
||||
|
||||
/**
|
||||
* Gets the first value in the tuple, Synonym for first()
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public A a() {
|
||||
return a;
|
||||
@ -73,8 +67,6 @@ public class Tuple<A, B> {
|
||||
|
||||
/**
|
||||
* Gets the second value in the tuple, Synonym for second()
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public B b() {
|
||||
return b;
|
||||
|
Loading…
Reference in New Issue
Block a user