mirror of
https://github.com/exituser/Brewery.git
synced 2026-09-17 07:49:03 +00:00
Handle Hoppers for Distillers and MCBarrels
Removed most mentions of Persistent
This commit is contained in:
@@ -67,6 +67,10 @@ public class BDistiller {
|
||||
distiller.start();
|
||||
}
|
||||
|
||||
public static boolean isTrackingDistiller(Block block) {
|
||||
return trackedDistillers.containsKey(block);
|
||||
}
|
||||
|
||||
// Returns a Brew or null for every Slot in the BrewerInventory
|
||||
public static Brew[] getDistillContents(BrewerInventory inv) {
|
||||
ItemStack item;
|
||||
|
||||
@@ -463,27 +463,6 @@ public class Brew implements Cloneable {
|
||||
return currentRecipe;
|
||||
}
|
||||
|
||||
// Not needed anymore
|
||||
// TODO remove
|
||||
@Deprecated
|
||||
public boolean isPersistent() {
|
||||
return persistent;
|
||||
}
|
||||
|
||||
// Make a potion persistent to not delete it when drinking it
|
||||
// Not needed anymore
|
||||
@Deprecated
|
||||
public void makePersistent() {
|
||||
persistent = true;
|
||||
}
|
||||
|
||||
// Remove the Persistence Flag from a brew, so it will be normally deleted when drinking it
|
||||
// Not needed anymore
|
||||
@Deprecated
|
||||
public void removePersistence() {
|
||||
persistent = false;
|
||||
}
|
||||
|
||||
public boolean isStatic() {
|
||||
return immutable;
|
||||
}
|
||||
@@ -866,7 +845,6 @@ public class Brew implements Cloneable {
|
||||
recipe = in.readUTF();
|
||||
}
|
||||
unlabeled = (bools & 16) != 0;
|
||||
//persistent = (bools & 32) != 0;
|
||||
immutable = (bools & 32) != 0;
|
||||
ingredients = BIngredients.load(in, dataVersion);
|
||||
setRecipeFromString(recipe);
|
||||
|
||||
@@ -80,8 +80,7 @@ public class MCBarrel {
|
||||
// This is the last viewer
|
||||
for (ItemStack item : inv.getContents()) {
|
||||
if (item != null) {
|
||||
Brew brew = Brew.get(item);
|
||||
if (brew != null) { // TODO replace this and others with isBrew
|
||||
if (Brew.isBrew(item)) {
|
||||
// We found a brew, so set time on this Barrel
|
||||
if (inv.getHolder() instanceof org.bukkit.block.Barrel) {
|
||||
Barrel barrel = (Barrel) inv.getHolder();
|
||||
@@ -101,8 +100,7 @@ public class MCBarrel {
|
||||
brews = 0;
|
||||
for (ItemStack item : inv.getContents()) {
|
||||
if (item != null) {
|
||||
Brew brew = Brew.get(item);
|
||||
if (brew != null) {
|
||||
if (Brew.isBrew(item)) {
|
||||
brews++;
|
||||
}
|
||||
}
|
||||
@@ -113,6 +111,7 @@ public class MCBarrel {
|
||||
return inv;
|
||||
}
|
||||
|
||||
|
||||
public static void onUpdate() {
|
||||
mcBarrelTime++;
|
||||
}
|
||||
@@ -133,11 +132,9 @@ public class MCBarrel {
|
||||
case SWAP_WITH_CURSOR:
|
||||
// Placing Brew in MC Barrel
|
||||
if (event.getCursor() != null && event.getClickedInventory() != null && event.getClickedInventory().getType() == InventoryType.BARREL && event.getCursor().getType() == Material.POTION) {
|
||||
Brew b = Brew.get(event.getCursor());
|
||||
if (b != null) {
|
||||
if (Brew.isBrew(event.getCursor())) {
|
||||
if (event.getAction() == InventoryAction.SWAP_WITH_CURSOR && event.getCurrentItem() != null && event.getCurrentItem().getType() == Material.POTION) {
|
||||
Brew bb = Brew.get(event.getCurrentItem());
|
||||
if (bb != null) {
|
||||
if (Brew.isBrew(event.getCurrentItem())) {
|
||||
// The item we are swapping with is also a brew, dont change the count and allow
|
||||
break;
|
||||
}
|
||||
@@ -150,8 +147,7 @@ public class MCBarrel {
|
||||
if (event.getCurrentItem() != null && event.getCurrentItem().getType() == Material.POTION && event.getClickedInventory() != null) {
|
||||
if (event.getClickedInventory().getType() == InventoryType.BARREL) {
|
||||
// Moving Brew out of MC Barrel
|
||||
Brew b = Brew.get(event.getCurrentItem());
|
||||
if (b != null) {
|
||||
if (Brew.isBrew(event.getCurrentItem())) {
|
||||
if (brews == -1) {
|
||||
countBrews();
|
||||
}
|
||||
@@ -160,8 +156,7 @@ public class MCBarrel {
|
||||
break;
|
||||
} else if (event.getClickedInventory().getType() == InventoryType.PLAYER) {
|
||||
// Moving Brew into MC Barrel
|
||||
Brew b = Brew.get(event.getCurrentItem());
|
||||
if (b != null) {
|
||||
if (Brew.isBrew(event.getCurrentItem())) {
|
||||
adding = true;
|
||||
}
|
||||
}
|
||||
@@ -175,8 +170,7 @@ public class MCBarrel {
|
||||
case COLLECT_TO_CURSOR:
|
||||
// Pickup Brew from MC Barrel
|
||||
if (event.getCurrentItem() != null && event.getClickedInventory() != null && event.getClickedInventory().getType() == InventoryType.BARREL && event.getCurrentItem().getType() == Material.POTION) {
|
||||
Brew b = Brew.get(event.getCurrentItem());
|
||||
if (b != null) {
|
||||
if (Brew.isBrew(event.getCurrentItem())) {
|
||||
if (brews == -1) {
|
||||
countBrews();
|
||||
}
|
||||
|
||||
@@ -92,11 +92,7 @@ public class LanguageReader {
|
||||
defaults.add(new Tuple<>("CMD_Info_NotDrunk", "&v1 is not drunk"));
|
||||
defaults.add(new Tuple<>("CMD_Info_Drunk", "&v1 is &6&v2% &fdrunk, with a quality of &6&v3"));
|
||||
defaults.add(new Tuple<>("CMD_UnLabel", "&aLabel removed!"));
|
||||
defaults.add(new Tuple<>("CMD_Persistent", "&aPotion is now Persistent and Static and may now be copied like any other item. You can remove the persistence with the same command."));
|
||||
defaults.add(new Tuple<>("CMD_PersistRemove", "&cPersistent Brews cannot be removed from the Database. It would render any copies of them useless!"));
|
||||
defaults.add(new Tuple<>("CMD_UnPersist", "&aPersistence and static Removed. &eEvery Potential copy NOT made with '/brew copy' could become useless now!"));
|
||||
defaults.add(new Tuple<>("CMD_Copy_Error", "&6&v1 &cPotions did not fit into your inventory"));
|
||||
defaults.add(new Tuple<>("CMD_CopyNotPersistent", "&eThese copies of this Brew will not be persistent or static!"));
|
||||
defaults.add(new Tuple<>("CMD_Static", "&aPotion is now static and will not change in barrels or brewing stands."));
|
||||
defaults.add(new Tuple<>("CMD_NonStatic", "&ePotion is not static anymore and will normally age in barrels."));
|
||||
|
||||
@@ -108,7 +104,6 @@ public class LanguageReader {
|
||||
defaults.add(new Tuple<>("Error_NoBrewName", "&cNo Recipe with Name: '&v1&c' found!"));
|
||||
defaults.add(new Tuple<>("Error_Recipeload", "&cNot all recipes could be restored: More information in the server log!"));
|
||||
defaults.add(new Tuple<>("Error_ConfigUpdate", "Unknown Brewery config version: v&v1, config was not updated!"));
|
||||
defaults.add(new Tuple<>("Error_PersistStatic", "&cPersistent potions are always static!"));
|
||||
|
||||
/* Permissions */
|
||||
defaults.add(new Tuple<>("Error_NoPermissions", "&cYou don't have permissions to do this!"));
|
||||
@@ -135,7 +130,6 @@ public class LanguageReader {
|
||||
defaults.add(new Tuple<>("Help_WakeupRemove", "&6/brew wakeup remove <id> &9Removes the wakeup point with <id>"));
|
||||
defaults.add(new Tuple<>("Help_Reload", "&6/brew reload &9Reload config"));
|
||||
defaults.add(new Tuple<>("Help_Configname", "&6/brew ItemName &9Display name of item in hand for the config"));
|
||||
defaults.add(new Tuple<>("Help_Persist", "&6/brew persist &9Make Brew persistent -> copyable by any plugin and technique"));
|
||||
defaults.add(new Tuple<>("Help_Static", "&6/brew static &9Make Brew static -> No further ageing or distilling"));
|
||||
defaults.add(new Tuple<>("Help_Create", "&6/brew create <Recipe> [Quality] [Player] &9Create a Brew with optional quality (1-10)"));
|
||||
|
||||
|
||||
@@ -101,14 +101,6 @@ public class CommandListener implements CommandExecutor {
|
||||
p.msg(sender, p.languageReader.get("Error_NoPermissions"));
|
||||
}
|
||||
|
||||
} else if (cmd.equalsIgnoreCase("persist") || cmd.equalsIgnoreCase("persistent")) {
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.persist")) {
|
||||
cmdPersist(sender);
|
||||
} else {
|
||||
p.msg(sender, p.languageReader.get("Error_NoPermissions"));
|
||||
}
|
||||
|
||||
} else if (cmd.equalsIgnoreCase("static")) {
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.static")) {
|
||||
@@ -186,18 +178,19 @@ public class CommandListener implements CommandExecutor {
|
||||
cmds.add (p.languageReader.get("Help_UnLabel"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.copy")) {
|
||||
cmds.add (p.languageReader.get("Help_Copy"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.delete")) {
|
||||
cmds.add (p.languageReader.get("Help_Delete"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.infoOther")) {
|
||||
cmds.add (p.languageReader.get("Help_InfoOther"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.create")) {
|
||||
cmds.add(p.languageReader.get("Help_Create"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.reload")) {
|
||||
cmds.add(p.languageReader.get("Help_Configname"));
|
||||
cmds.add(p.languageReader.get("Help_Reload"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.wakeup")) {
|
||||
cmds.add(p.languageReader.get("Help_Wakeup"));
|
||||
cmds.add(p.languageReader.get("Help_WakeupList"));
|
||||
@@ -207,21 +200,16 @@ public class CommandListener implements CommandExecutor {
|
||||
cmds.add(p.languageReader.get("Help_WakeupRemove"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.reload")) {
|
||||
cmds.add(p.languageReader.get("Help_Configname"));
|
||||
cmds.add(p.languageReader.get("Help_Reload"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.persist")) {
|
||||
cmds.add(p.languageReader.get("Help_Persist"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.static")) {
|
||||
cmds.add(p.languageReader.get("Help_Static"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.create")) {
|
||||
cmds.add(p.languageReader.get("Help_Create"));
|
||||
if (sender.hasPermission("brewery.cmd.copy")) {
|
||||
cmds.add (p.languageReader.get("Help_Copy"));
|
||||
}
|
||||
|
||||
if (sender.hasPermission("brewery.cmd.delete")) {
|
||||
cmds.add (p.languageReader.get("Help_Delete"));
|
||||
}
|
||||
|
||||
return cmds;
|
||||
@@ -393,8 +381,7 @@ public class CommandListener implements CommandExecutor {
|
||||
Player player = (Player) sender;
|
||||
ItemStack hand = player.getItemInHand();
|
||||
if (hand != null) {
|
||||
Brew brew = Brew.get(hand);
|
||||
if (brew != null) {
|
||||
if (Brew.isBrew(hand)) {
|
||||
while (count > 0) {
|
||||
ItemStack item = hand.clone();
|
||||
if (!(player.getInventory().addItem(item)).isEmpty()) {
|
||||
@@ -403,9 +390,6 @@ public class CommandListener implements CommandExecutor {
|
||||
}
|
||||
count--;
|
||||
}
|
||||
if (brew.isPersistent()) {
|
||||
p.msg(sender, p.languageReader.get("CMD_CopyNotPersistent"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -424,44 +408,8 @@ public class CommandListener implements CommandExecutor {
|
||||
Player player = (Player) sender;
|
||||
ItemStack hand = player.getItemInHand();
|
||||
if (hand != null) {
|
||||
Brew brew = Brew.get(hand);
|
||||
if (brew != null) {
|
||||
if (brew.isPersistent()) {
|
||||
p.msg(sender, p.languageReader.get("CMD_PersistRemove"));
|
||||
} else {
|
||||
//brew.remove(hand);
|
||||
player.setItemInHand(new ItemStack(Material.AIR));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
p.msg(sender, p.languageReader.get("Error_ItemNotPotion"));
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void cmdPersist(CommandSender sender) {
|
||||
|
||||
if (!(sender instanceof Player)) {
|
||||
p.msg(sender, p.languageReader.get("Error_PlayerCommand"));
|
||||
return;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
ItemStack hand = player.getItemInHand();
|
||||
if (hand != null) {
|
||||
Brew brew = Brew.get(hand);
|
||||
if (brew != null) {
|
||||
if (brew.isPersistent()) {
|
||||
brew.removePersistence();
|
||||
brew.setStatic(false, hand);
|
||||
p.msg(sender, p.languageReader.get("CMD_UnPersist"));
|
||||
} else {
|
||||
brew.makePersistent();
|
||||
brew.setStatic(true, hand);
|
||||
p.msg(sender, p.languageReader.get("CMD_Persistent"));
|
||||
}
|
||||
brew.touch();
|
||||
brew.save(hand);
|
||||
if (Brew.isBrew(hand)) {
|
||||
player.setItemInHand(new ItemStack(Material.AIR));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -482,12 +430,8 @@ public class CommandListener implements CommandExecutor {
|
||||
Brew brew = Brew.get(hand);
|
||||
if (brew != null) {
|
||||
if (brew.isStatic()) {
|
||||
if (!brew.isPersistent()) {
|
||||
brew.setStatic(false, hand);
|
||||
p.msg(sender, p.languageReader.get("CMD_NonStatic"));
|
||||
} else {
|
||||
p.msg(sender, p.languageReader.get("Error_PersistStatic"));
|
||||
}
|
||||
brew.setStatic(false, hand);
|
||||
p.msg(sender, p.languageReader.get("CMD_NonStatic"));
|
||||
} else {
|
||||
brew.setStatic(true, hand);
|
||||
p.msg(sender, p.languageReader.get("CMD_Static"));
|
||||
|
||||
@@ -31,7 +31,6 @@ public class InventoryListener implements Listener {
|
||||
|
||||
/**
|
||||
* Start tracking distillation for a person when they open the brewer window.
|
||||
* @param event
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onBrewerOpen(InventoryOpenEvent event) {
|
||||
@@ -46,7 +45,6 @@ public class InventoryListener implements Listener {
|
||||
|
||||
/**
|
||||
* Stop tracking distillation for a person when they close the brewer window.
|
||||
* @param event
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onBrewerClose(InventoryCloseEvent event) {
|
||||
@@ -72,8 +70,6 @@ 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
|
||||
* they will _not_ restart until a new click event.
|
||||
*
|
||||
* @param event the Click event.
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onBrewerClick(InventoryClickEvent event) {
|
||||
@@ -306,12 +302,44 @@ public class InventoryListener implements Listener {
|
||||
|
||||
// block the pickup of items where getPickupDelay is > 1000 (puke)
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onInventoryPickupItem(InventoryPickupItemEvent event){
|
||||
public void onHopperPickupPuke(InventoryPickupItemEvent event){
|
||||
if (event.getItem().getPickupDelay() > 1000 && event.getItem().getItemStack().getType() == BConfig.pukeItem) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
// Block taking out items from running distillers,
|
||||
// Convert Color Lore from MC Barrels back into normal color on taking out
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
|
||||
public void onHopperMove(InventoryMoveItemEvent event){
|
||||
if (event.getSource() instanceof BrewerInventory) {
|
||||
if (BDistiller.isTrackingDistiller(((BrewerInventory) event.getSource()).getHolder().getBlock())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!P.use1_14) return;
|
||||
|
||||
if (event.getSource().getType() == InventoryType.BARREL) {
|
||||
ItemStack item = event.getItem();
|
||||
if (item.getType() == Material.POTION && Brew.isBrew(item)) {
|
||||
PotionMeta meta = (PotionMeta) item.getItemMeta();
|
||||
if (BrewLore.hasColorLore(meta)) {
|
||||
// has color lore, convert lore back to normal
|
||||
Brew brew = Brew.get(meta);
|
||||
if (brew != null) {
|
||||
BrewLore lore = new BrewLore(brew, meta);
|
||||
lore.convertLore(false);
|
||||
lore.write();
|
||||
item.setItemMeta(meta);
|
||||
event.setItem(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClose(InventoryCloseEvent event) {
|
||||
if (!P.use1_14) return;
|
||||
|
||||
Reference in New Issue
Block a user