mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2025-02-13 00:41:20 +01:00
Fixed Brewing Stands not showing the correct Time
Changed some whitespaces Less String comparisons again
This commit is contained in:
parent
086f5b5c9e
commit
d29b8defd4
@ -10,7 +10,6 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.material.Cauldron;
|
|
||||||
|
|
||||||
public class BCauldron {
|
public class BCauldron {
|
||||||
public static CopyOnWriteArrayList<BCauldron> bcauldrons = new CopyOnWriteArrayList<>();
|
public static CopyOnWriteArrayList<BCauldron> bcauldrons = new CopyOnWriteArrayList<>();
|
||||||
|
@ -15,6 +15,8 @@ import org.bukkit.material.Wood;
|
|||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("JavaReflectionMemberAccess")
|
@SuppressWarnings("JavaReflectionMemberAccess")
|
||||||
public class LegacyUtil {
|
public class LegacyUtil {
|
||||||
@ -32,6 +34,22 @@ public class LegacyUtil {
|
|||||||
SET_DATA = Class.forName(Bukkit.getServer().getClass().getPackage().getName() + ".block.CraftBlock").getDeclaredMethod("setData", byte.class);
|
SET_DATA = Class.forName(Bukkit.getServer().getClass().getPackage().getName() + ".block.CraftBlock").getDeclaredMethod("setData", byte.class);
|
||||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException ignored) {
|
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException ignored) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<Material> planks = new ArrayList<>(6);
|
||||||
|
for (Material m : Material.values()) {
|
||||||
|
if (m.name().endsWith("PLANKS")) {
|
||||||
|
planks.add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PLANKS = planks;
|
||||||
|
|
||||||
|
List<Material> fences = new ArrayList<>(7);
|
||||||
|
for (Material m : Material.values()) {
|
||||||
|
if (m.name().endsWith("FENCE")) {
|
||||||
|
fences.add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FENCES = fences;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Material CLOCK = get("CLOCK", "WATCH");
|
public static final Material CLOCK = get("CLOCK", "WATCH");
|
||||||
@ -41,6 +59,8 @@ public class LegacyUtil {
|
|||||||
public static final Material JUNGLE_STAIRS = get("JUNGLE_STAIRS", "JUNGLE_WOOD_STAIRS");
|
public static final Material JUNGLE_STAIRS = get("JUNGLE_STAIRS", "JUNGLE_WOOD_STAIRS");
|
||||||
public static final Material ACACIA_STAIRS = get("ACACIA_STAIRS");
|
public static final Material ACACIA_STAIRS = get("ACACIA_STAIRS");
|
||||||
public static final Material DARK_OAK_STAIRS = get("DARK_OAK_STAIRS");
|
public static final Material DARK_OAK_STAIRS = get("DARK_OAK_STAIRS");
|
||||||
|
public static final List<Material> PLANKS;
|
||||||
|
public static final List<Material> FENCES;
|
||||||
|
|
||||||
// Materials removed in 1.13
|
// Materials removed in 1.13
|
||||||
public static final Material STATIONARY_LAVA = get("STATIONARY_LAVA");
|
public static final Material STATIONARY_LAVA = get("STATIONARY_LAVA");
|
||||||
@ -64,7 +84,7 @@ public class LegacyUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isWoodPlanks(Material type) {
|
public static boolean isWoodPlanks(Material type) {
|
||||||
return type.name().endsWith("PLANKS") || (WOOD != null && type == WOOD);
|
return (WOOD != null && type == WOOD) || PLANKS.contains(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isWoodStairs(Material type) {
|
public static boolean isWoodStairs(Material type) {
|
||||||
@ -73,7 +93,7 @@ public class LegacyUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isFence(Material type) {
|
public static boolean isFence(Material type) {
|
||||||
return type.name().endsWith("FENCE");
|
return FENCES.contains(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isSign(Material type) {
|
public static boolean isSign(Material type) {
|
||||||
@ -176,7 +196,7 @@ public class LegacyUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* only used in a very rare case to convert a very old Datafile from a very old version
|
* only used to convert a very old Datafile or config from a very old version
|
||||||
*/
|
*/
|
||||||
public static Material getMaterial(int id) {
|
public static Material getMaterial(int id) {
|
||||||
try {
|
try {
|
||||||
|
@ -1,119 +1,119 @@
|
|||||||
package com.dre.brewery.integration;
|
package com.dre.brewery.integration;
|
||||||
|
|
||||||
import com.dre.brewery.LegacyUtil;
|
import com.dre.brewery.LegacyUtil;
|
||||||
import com.dre.brewery.P;
|
import com.dre.brewery.P;
|
||||||
import de.diddiz.LogBlock.Actor;
|
import de.diddiz.LogBlock.Actor;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import de.diddiz.LogBlock.Consumer;
|
import de.diddiz.LogBlock.Consumer;
|
||||||
import de.diddiz.LogBlock.LogBlock;
|
import de.diddiz.LogBlock.LogBlock;
|
||||||
import de.diddiz.LogBlock.Logging;
|
import de.diddiz.LogBlock.Logging;
|
||||||
import static de.diddiz.LogBlock.config.Config.isLogging;
|
import static de.diddiz.LogBlock.config.Config.isLogging;
|
||||||
import de.diddiz.util.BukkitUtils;
|
import de.diddiz.util.BukkitUtils;
|
||||||
import static de.diddiz.util.BukkitUtils.compareInventories;
|
import static de.diddiz.util.BukkitUtils.compareInventories;
|
||||||
import static de.diddiz.util.BukkitUtils.compressInventory;
|
import static de.diddiz.util.BukkitUtils.compressInventory;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
public class LogBlockBarrel {
|
public class LogBlockBarrel {
|
||||||
private static final List<LogBlockBarrel> opened = new ArrayList<>();
|
private static final List<LogBlockBarrel> opened = new ArrayList<>();
|
||||||
public static Consumer consumer = LogBlock.getInstance().getConsumer();
|
public static Consumer consumer = LogBlock.getInstance().getConsumer();
|
||||||
private static Method rawData;
|
private static Method rawData;
|
||||||
private static Method queueChestAccess;
|
private static Method queueChestAccess;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
if (!P.use1_13) {
|
if (!P.use1_13) {
|
||||||
try {
|
try {
|
||||||
rawData = BukkitUtils.class.getDeclaredMethod("rawData", ItemStack.class);
|
rawData = BukkitUtils.class.getDeclaredMethod("rawData", ItemStack.class);
|
||||||
queueChestAccess = Consumer.class.getDeclaredMethod("queueChestAccess", String.class, Location.class, int.class, short.class, short.class, short.class);
|
queueChestAccess = Consumer.class.getDeclaredMethod("queueChestAccess", String.class, Location.class, int.class, short.class, short.class, short.class);
|
||||||
} catch (NoSuchMethodException e) {
|
} catch (NoSuchMethodException e) {
|
||||||
P.p.errorLog("Failed to hook into LogBlock to log barrels. Logging barrel contents is not going to work.");
|
P.p.errorLog("Failed to hook into LogBlock to log barrels. Logging barrel contents is not going to work.");
|
||||||
P.p.errorLog("Brewery was tested with version 1.12 to 1.13.1 of LogBlock.");
|
P.p.errorLog("Brewery was tested with version 1.12 to 1.13.1 of LogBlock.");
|
||||||
P.p.errorLog("Disable LogBlock support in the configuration file and type /brew reload.");
|
P.p.errorLog("Disable LogBlock support in the configuration file and type /brew reload.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private HumanEntity player;
|
private HumanEntity player;
|
||||||
private ItemStack[] items;
|
private ItemStack[] items;
|
||||||
private Location loc;
|
private Location loc;
|
||||||
|
|
||||||
public LogBlockBarrel(HumanEntity player, ItemStack[] items, Location spigotLoc) {
|
public LogBlockBarrel(HumanEntity player, ItemStack[] items, Location spigotLoc) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.items = items;
|
this.items = items;
|
||||||
this.loc = spigotLoc;
|
this.loc = spigotLoc;
|
||||||
opened.add(this);
|
opened.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void compareInv(final ItemStack[] after) {
|
private void compareInv(final ItemStack[] after) {
|
||||||
if (consumer == null) {
|
if (consumer == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final ItemStack[] diff = compareInventories(items, after);
|
final ItemStack[] diff = compareInventories(items, after);
|
||||||
for (final ItemStack item : diff) {
|
for (final ItemStack item : diff) {
|
||||||
if (!P.use1_13) {
|
if (!P.use1_13) {
|
||||||
try {
|
try {
|
||||||
queueChestAccess.invoke(consumer, player.getName(), loc, LegacyUtil.getBlockTypeIdAt(loc), (short) item.getType().getId(), (short) item.getAmount(), (short) rawData.invoke(null, item));
|
queueChestAccess.invoke(consumer, player.getName(), loc, LegacyUtil.getBlockTypeIdAt(loc), (short) item.getType().getId(), (short) item.getAmount(), (short) rawData.invoke(null, item));
|
||||||
} catch(IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
} catch(IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
consumer.queueChestAccess(Actor.actorFromEntity(player), loc, loc.getBlock().getBlockData(), item, false);
|
consumer.queueChestAccess(Actor.actorFromEntity(player), loc, loc.getBlock().getBlockData(), item, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LogBlockBarrel get(HumanEntity player) {
|
public static LogBlockBarrel get(HumanEntity player) {
|
||||||
for (LogBlockBarrel open : opened) {
|
for (LogBlockBarrel open : opened) {
|
||||||
if (open.player.equals(player)) {
|
if (open.player.equals(player)) {
|
||||||
return open;
|
return open;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openBarrel(HumanEntity player, Inventory inv, Location spigotLoc) {
|
public static void openBarrel(HumanEntity player, Inventory inv, Location spigotLoc) {
|
||||||
if (!isLogging(player.getWorld(), Logging.CHESTACCESS)) return;
|
if (!isLogging(player.getWorld(), Logging.CHESTACCESS)) return;
|
||||||
new LogBlockBarrel(player, compressInventory(inv.getContents()), spigotLoc);
|
new LogBlockBarrel(player, compressInventory(inv.getContents()), spigotLoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void closeBarrel(HumanEntity player, Inventory inv) {
|
public static void closeBarrel(HumanEntity player, Inventory inv) {
|
||||||
if (!isLogging(player.getWorld(), Logging.CHESTACCESS)) return;
|
if (!isLogging(player.getWorld(), Logging.CHESTACCESS)) return;
|
||||||
LogBlockBarrel open = get(player);
|
LogBlockBarrel open = get(player);
|
||||||
if (open != null) {
|
if (open != null) {
|
||||||
open.compareInv(compressInventory(inv.getContents()));
|
open.compareInv(compressInventory(inv.getContents()));
|
||||||
opened.remove(open);
|
opened.remove(open);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void breakBarrel(String playerName, ItemStack[] contents, Location spigotLoc) {
|
public static void breakBarrel(String playerName, ItemStack[] contents, Location spigotLoc) {
|
||||||
if (consumer == null) {
|
if (consumer == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!isLogging(spigotLoc.getWorld(), Logging.CHESTACCESS)) return;
|
if (!isLogging(spigotLoc.getWorld(), Logging.CHESTACCESS)) return;
|
||||||
final ItemStack[] items = compressInventory(contents);
|
final ItemStack[] items = compressInventory(contents);
|
||||||
for (final ItemStack item : items) {
|
for (final ItemStack item : items) {
|
||||||
if (!P.use1_13) {
|
if (!P.use1_13) {
|
||||||
try {
|
try {
|
||||||
queueChestAccess.invoke(consumer, playerName, spigotLoc, LegacyUtil.getBlockTypeIdAt(spigotLoc), (short) item.getType().getId(), (short) (item.getAmount() * -1), rawData.invoke(null, item));
|
queueChestAccess.invoke(consumer, playerName, spigotLoc, LegacyUtil.getBlockTypeIdAt(spigotLoc), (short) item.getType().getId(), (short) (item.getAmount() * -1), rawData.invoke(null, item));
|
||||||
} catch(IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
} catch(IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
consumer.queueChestAccess(Actor.actorFromString(playerName), spigotLoc, spigotLoc.getBlock().getBlockData(), item, false);
|
consumer.queueChestAccess(Actor.actorFromString(playerName), spigotLoc, spigotLoc.getBlock().getBlockData(), item, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void clear() {
|
public static void clear() {
|
||||||
opened.clear();
|
opened.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ public class InventoryListener implements Listener {
|
|||||||
if (!P.use1_9) return;
|
if (!P.use1_9) return;
|
||||||
HumanEntity player = event.getPlayer();
|
HumanEntity player = event.getPlayer();
|
||||||
Inventory inv = event.getInventory();
|
Inventory inv = event.getInventory();
|
||||||
if (player == null || inv == null || !(inv instanceof BrewerInventory)) return;
|
if (player == null || !(inv instanceof BrewerInventory)) return;
|
||||||
|
|
||||||
P.p.debugLog("Starting brew inventory tracking");
|
P.p.debugLog("Starting brew inventory tracking");
|
||||||
trackedBrewmen.add(player.getUniqueId());
|
trackedBrewmen.add(player.getUniqueId());
|
||||||
@ -63,7 +63,7 @@ public class InventoryListener implements Listener {
|
|||||||
if (!P.use1_9) return;
|
if (!P.use1_9) return;
|
||||||
HumanEntity player = event.getPlayer();
|
HumanEntity player = event.getPlayer();
|
||||||
Inventory inv = event.getInventory();
|
Inventory inv = event.getInventory();
|
||||||
if (player == null || inv == null || !(inv instanceof BrewerInventory)) return;
|
if (player == null || !(inv instanceof BrewerInventory)) return;
|
||||||
|
|
||||||
P.p.debugLog("Stopping brew inventory tracking");
|
P.p.debugLog("Stopping brew inventory tracking");
|
||||||
trackedBrewmen.remove(player.getUniqueId());
|
trackedBrewmen.remove(player.getUniqueId());
|
||||||
@ -90,7 +90,7 @@ public class InventoryListener implements Listener {
|
|||||||
if (!P.use1_9) return;
|
if (!P.use1_9) return;
|
||||||
HumanEntity player = event.getWhoClicked();
|
HumanEntity player = event.getWhoClicked();
|
||||||
Inventory inv = event.getInventory();
|
Inventory inv = event.getInventory();
|
||||||
if (player == null || inv == null || !(inv instanceof BrewerInventory)) return;
|
if (player == null || !(inv instanceof BrewerInventory)) return;
|
||||||
|
|
||||||
UUID puid = player.getUniqueId();
|
UUID puid = player.getUniqueId();
|
||||||
if (!trackedBrewmen.contains(puid)) return;
|
if (!trackedBrewmen.contains(puid)) return;
|
||||||
@ -106,6 +106,7 @@ public class InventoryListener implements Listener {
|
|||||||
if (curTask != null) {
|
if (curTask != null) {
|
||||||
Bukkit.getScheduler().cancelTask(curTask); // cancel prior
|
Bukkit.getScheduler().cancelTask(curTask); // cancel prior
|
||||||
brewer.getHolder().setBrewingTime(0); // Fixes brewing continuing without fuel for normal potions
|
brewer.getHolder().setBrewingTime(0); // Fixes brewing continuing without fuel for normal potions
|
||||||
|
brewer.getHolder().update();
|
||||||
}
|
}
|
||||||
final int fuel = brewer.getHolder().getFuelLevel();
|
final int fuel = brewer.getHolder().getFuelLevel();
|
||||||
|
|
||||||
@ -159,6 +160,7 @@ public class InventoryListener implements Listener {
|
|||||||
P.p.debugLog("Can distill more! Continuing.");
|
P.p.debugLog("Can distill more! Continuing.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
stand.update();
|
||||||
} else {
|
} else {
|
||||||
this.cancel();
|
this.cancel();
|
||||||
trackedBrewers.remove(brewery);
|
trackedBrewers.remove(brewery);
|
||||||
|
Loading…
Reference in New Issue
Block a user