From 75b72eb630370c612efc7834ca644124e9eda36a Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 6 Jan 2021 16:26:40 +0100 Subject: [PATCH] Removed deprecated stuff --- CHANGELOG.md | 1 + .../networks/cargo/AbstractItemNetwork.java | 45 +------------------ .../implementation/SlimefunPlugin.java | 17 ++++--- .../slimefun4/utils/NumberUtils.java | 1 + .../Slimefun/api/inventory/BlockMenu.java | 1 + .../api/inventory/BlockMenuPreset.java | 17 +------ .../api/inventory/DirtyChestMenu.java | 38 ++++------------ .../api/inventory/ItemManipulationEvent.java | 17 ------- .../api/inventory/MenuSavingHandler.java | 30 ------------- .../api/inventory/UniversalBlockMenu.java | 1 + 10 files changed, 27 insertions(+), 141 deletions(-) delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.java delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/api/inventory/MenuSavingHandler.java diff --git a/CHANGELOG.md b/CHANGELOG.md index e7bf77400..e7a3466b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ * Performance optimizations for Cargo networks * Removed an old version of bStats * CraftBukkit is officially no longer supported, Slimefun will now be disabled on old builds of CraftBukkit +* Removed the deprecated ItemManipulationAPI for BlockMenus #### Fixes * Fixed a couple of compatibility issues with ItemsAdder diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/AbstractItemNetwork.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/AbstractItemNetwork.java index a7abb9eae..cb40d63f1 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/AbstractItemNetwork.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/networks/cargo/AbstractItemNetwork.java @@ -12,7 +12,6 @@ import java.util.Map; import java.util.Optional; import java.util.Queue; import java.util.Set; -import java.util.logging.Level; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -38,10 +37,8 @@ import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils; import io.papermc.lib.PaperLib; -import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.BlockStorage; -import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu; import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu; @@ -426,12 +423,7 @@ abstract class AbstractItemNetwork extends Network { } } else if (BlockStorage.hasInventory(target)) { BlockMenu blockMenu = BlockStorage.getInventory(target); - - if (blockMenu.getPreset().getID().startsWith("BARREL_")) { - gatherItemsFromBarrel(l, blockMenu, items); - } else { - handleWithdraw(blockMenu, items, l); - } + handleWithdraw(blockMenu, items, l); } else if (CargoUtils.hasInventory(target)) { BlockState state = PaperLib.getBlockState(target, false).getState(); @@ -445,41 +437,6 @@ abstract class AbstractItemNetwork extends Network { } } - @ParametersAreNonnullByDefault - private void gatherItemsFromBarrel(Location l, BlockMenu blockMenu, List items) { - try { - Config cfg = BlockStorage.getLocationInfo(blockMenu.getLocation()); - String data = cfg.getString("storedItems"); - - if (data == null) { - return; - } - - int stored = Integer.parseInt(data); - - for (int slot : blockMenu.getPreset().getSlotsAccessedByItemTransport((DirtyChestMenu) blockMenu, ItemTransportFlow.WITHDRAW, null)) { - ItemStack stack = blockMenu.getItemInSlot(slot); - - if (stack != null && CargoUtils.matchesFilter(this, l.getBlock(), stack)) { - boolean add = true; - - for (ItemStackAndInteger item : items) { - if (SlimefunUtils.isItemSimilar(stack, item.getItemStackWrapper(), true, false)) { - add = false; - item.add(stack.getAmount() + stored); - } - } - - if (add) { - items.add(new ItemStackAndInteger(stack, stack.getAmount() + stored)); - } - } - } - } catch (Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Exception occurred while trying to read data from a Barrel", x); - } - } - @ParametersAreNonnullByDefault private void handleWithdraw(DirtyChestMenu menu, List items, Location l) { for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunPlugin.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunPlugin.java index b645e3cf0..35f3c4d0c 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunPlugin.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunPlugin.java @@ -27,7 +27,6 @@ import org.bukkit.plugin.java.JavaPluginLoader; import org.bukkit.scheduler.BukkitTask; import io.github.thebusybiscuit.cscorelib2.config.Config; -import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler; import io.github.thebusybiscuit.cscorelib2.protection.ProtectionManager; import io.github.thebusybiscuit.cscorelib2.reflection.ReflectionUtils; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; @@ -113,6 +112,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.tasks.ArmorTask; import io.github.thebusybiscuit.slimefun4.implementation.tasks.SlimefunStartupTask; import io.github.thebusybiscuit.slimefun4.implementation.tasks.TickerTask; import io.github.thebusybiscuit.slimefun4.integrations.IntegrationsManager; +import io.github.thebusybiscuit.slimefun4.utils.NumberUtils; import io.github.thebusybiscuit.slimefun4.utils.tags.SlimefunTag; import io.papermc.lib.PaperLib; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; @@ -347,7 +347,6 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon { getLogger().log(Level.INFO, "Loading Third-Party plugin integrations..."); integrations.start(); - gitHubService.start(this); // Hooray! @@ -434,9 +433,9 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon { long ms = (System.nanoTime() - timestamp) / 1000000; if (ms > 1000) { - return DoubleHandler.fixDouble(ms / 1000.0) + "s"; + return NumberUtils.roundDecimalNumber(ms / 1000.0) + "s"; } else { - return DoubleHandler.fixDouble(ms) + "ms"; + return NumberUtils.roundDecimalNumber(ms) + "ms"; } } @@ -817,7 +816,15 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon { */ @Nonnull public static Set getInstalledAddons() { - return Arrays.stream(instance.getServer().getPluginManager().getPlugins()).filter(plugin -> plugin.getDescription().getDepend().contains(instance.getName()) || plugin.getDescription().getSoftDepend().contains(instance.getName())).collect(Collectors.toSet()); + String pluginName = instance.getName(); + + // @formatter:off + return Arrays.stream(instance.getServer().getPluginManager().getPlugins()) + .filter(plugin -> { + PluginDescriptionFile description = plugin.getDescription(); + return description.getDepend().contains(pluginName) || description.getSoftDepend().contains(pluginName); + }).collect(Collectors.toSet()); + // @formatter:on } /** diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java index e4e23bfc2..90887bfef 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/NumberUtils.java @@ -223,6 +223,7 @@ public final class NumberUtils { } } + @Nonnull public static String roundDecimalNumber(double number) { return DECIMAL_FORMAT.format(number); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java index fd11bc506..d850d28e7 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java @@ -12,6 +12,7 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.config.Config; import me.mrCookieSlime.Slimefun.api.Slimefun; +// This class will be deprecated, relocated and rewritten in a future version. public class BlockMenu extends DirtyChestMenu { private Location location; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java index 3239d8f19..f2b451f18 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BlockMenuPreset.java @@ -20,6 +20,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow; +// This class will be deprecated, relocated and rewritten in a future version. public abstract class BlockMenuPreset extends ChestMenu { private final Set occupiedSlots = new HashSet<>(); @@ -32,8 +33,6 @@ public abstract class BlockMenuPreset extends ChestMenu { private final boolean universal; private boolean locked; - private ItemManipulationEvent event; - public BlockMenuPreset(@Nonnull String id, @Nonnull String title) { this(id, title, false); } @@ -75,19 +74,6 @@ public abstract class BlockMenuPreset extends ChestMenu { public abstract int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow); - /** - * This method is deprecated. - * - * @deprecated Override {@link #onItemStackChange(DirtyChestMenu, int, ItemStack, ItemStack)} instead - * - * @param event - * The event - */ - @Deprecated - public void registerEvent(ItemManipulationEvent event) { - this.event = event; - } - /** * This method is called whenever an {@link ItemStack} changes. * You can override this as necessary if you need to listen to these events @@ -259,7 +245,6 @@ public abstract class BlockMenuPreset extends ChestMenu { menu.addMenuOpeningHandler(getMenuOpeningHandler()); menu.addMenuCloseHandler(getMenuCloseHandler()); - menu.registerEvent(event); } public void newInstance(@Nonnull BlockMenu menu, @Nonnull Location l) { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java index e6d31b065..5155fe76d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/DirtyChestMenu.java @@ -18,10 +18,10 @@ import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.slimefun4.utils.itemstack.ItemStackWrapper; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; +// This class will be deprecated, relocated and rewritten in a future version. public class DirtyChestMenu extends ChestMenu { protected final BlockMenuPreset preset; - protected ItemManipulationEvent event; protected int changes = 1; public DirtyChestMenu(@Nonnull BlockMenuPreset preset) { @@ -61,35 +61,20 @@ public class DirtyChestMenu extends ChestMenu { return preset.canOpen(b, p); } + @Override + public void open(Player... players) { + super.open(players); + + // The Inventory will likely be modified soon + markDirty(); + } + public void close() { for (HumanEntity human : new ArrayList<>(toInventory().getViewers())) { human.closeInventory(); } } - /** - * This method has been deprecated. - * - * @deprecated The {@link ItemManipulationEvent} has been deprecated. - * - * @param event - * deprecated class - */ - @Deprecated - public void registerEvent(ItemManipulationEvent event) { - this.event = event; - } - - @Override - public ChestMenu addMenuOpeningHandler(MenuOpeningHandler handler) { - if (handler instanceof MenuSavingHandler) { - MenuOpeningHandler openingHandler = ((MenuSavingHandler) handler).getOpeningHandler(); - return super.addMenuOpeningHandler(new MenuSavingHandler(this, openingHandler)); - } else { - return super.addMenuOpeningHandler(new MenuSavingHandler(this, handler)); - } - } - public boolean fits(@Nonnull ItemStack item, int... slots) { for (int slot : slots) { // A small optimization for empty slots @@ -161,11 +146,6 @@ public class DirtyChestMenu extends ChestMenu { public void replaceExistingItem(int slot, ItemStack item, boolean event) { if (event) { ItemStack previous = getItemInSlot(slot); - - if (this.event != null) { - item = this.event.onEvent(slot, previous, item); - } - item = preset.onItemStackChange(this, slot, previous, item); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.java deleted file mode 100644 index ce6591b0a..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/ItemManipulationEvent.java +++ /dev/null @@ -1,17 +0,0 @@ -package me.mrCookieSlime.Slimefun.api.inventory; - -import org.bukkit.inventory.ItemStack; - -/** - * @deprecated Please use {@link BlockMenuPreset#onItemStackChange(DirtyChestMenu, int, ItemStack, ItemStack)} instead. - * - * @author TheBusyBiscuit - * - */ -@Deprecated -@FunctionalInterface -public interface ItemManipulationEvent { - - ItemStack onEvent(int slot, ItemStack previous, ItemStack next); - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/MenuSavingHandler.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/MenuSavingHandler.java deleted file mode 100644 index 74d556f0f..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/MenuSavingHandler.java +++ /dev/null @@ -1,30 +0,0 @@ -package me.mrCookieSlime.Slimefun.api.inventory; - -import javax.annotation.ParametersAreNonnullByDefault; - -import org.bukkit.entity.Player; - -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuOpeningHandler; - -public class MenuSavingHandler implements MenuOpeningHandler { - - private final DirtyChestMenu menu; - private final MenuOpeningHandler handler; - - @ParametersAreNonnullByDefault - public MenuSavingHandler(DirtyChestMenu menu, MenuOpeningHandler handler) { - this.menu = menu; - this.handler = handler; - } - - @Override - public void onOpen(Player p) { - handler.onOpen(p); - menu.markDirty(); - } - - public MenuOpeningHandler getOpeningHandler() { - return handler; - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java index e4af0ebb3..66a3d9d76 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/UniversalBlockMenu.java @@ -4,6 +4,7 @@ import java.io.File; import io.github.thebusybiscuit.cscorelib2.config.Config; +// This class will be deprecated, relocated and rewritten in a future version. public class UniversalBlockMenu extends DirtyChestMenu { public UniversalBlockMenu(BlockMenuPreset preset) {