From f623c5d2ea477a0162eb4dd7aaaedc72ca8796b4 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 4 Sep 2019 19:42:17 +0200 Subject: [PATCH] Reduced technical debt --- .../Slimefun/Objects/Category.java | 43 ++++++------------- .../Objects/SlimefunItem/SlimefunItem.java | 17 +++----- .../abstractItems/MachineHelper.java | 2 +- .../machines/AncientPedestal.java | 27 ++++++++++++ .../machines/electric/AutoDrier.java | 42 +++++++++--------- .../SlimefunItem/multiblocks/TableSaw.java | 2 +- .../Slimefun/Setup/MiscSetup.java | 2 +- .../Slimefun/Setup/SlimefunManager.java | 18 +++++--- .../Slimefun/Setup/SlimefunSetup.java | 19 +------- .../mrCookieSlime/Slimefun/SlimefunGuide.java | 2 +- .../Slimefun/SlimefunPlugin.java | 2 - .../Slimefun/api/SlimefunRecipes.java | 7 +-- .../holograms/HologramProjectorHologram.java | 4 ++ .../Slimefun/utils/CategorySorter.java | 17 ++++++++ .../Slimefun/utils/Utilities.java | 17 ++++++-- 15 files changed, 126 insertions(+), 95 deletions(-) create mode 100644 src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java create mode 100644 src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java diff --git a/src/me/mrCookieSlime/Slimefun/Objects/Category.java b/src/me/mrCookieSlime/Slimefun/Objects/Category.java index 2a0d0472a..20acc458f 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/Category.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/Category.java @@ -2,7 +2,6 @@ package me.mrCookieSlime.Slimefun.Objects; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.List; import org.bukkit.inventory.ItemFlag; @@ -25,13 +24,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; * @see SeasonalCategory */ public class Category { - /** - * List of the registered Categories. - * @since 4.0 - * @see Categories - */ - public static List list = new ArrayList<>(); - + private ItemStack item; private List items; private int tier; @@ -79,15 +72,19 @@ public class Category { * @since 4.0 */ public void register() { - list.add(this); - Collections.sort(list, new CategorySorter()); + SlimefunPlugin.getUtilities().allCategories.add(this); + Collections.sort(list(), SlimefunPlugin.getUtilities().categorySorter); if (this instanceof SeasonalCategory) { - if (((SeasonalCategory) this).isUnlocked()) SlimefunPlugin.getUtilities().currentlyEnabledCategories.add(this); + if (((SeasonalCategory) this).isUnlocked()) { + SlimefunPlugin.getUtilities().enabledCategories.add(this); + } + } + else { + SlimefunPlugin.getUtilities().enabledCategories.add(this); } - else SlimefunPlugin.getUtilities().currentlyEnabledCategories.add(this); - Collections.sort(SlimefunPlugin.getUtilities().currentlyEnabledCategories, new CategorySorter()); + Collections.sort(SlimefunPlugin.getUtilities().enabledCategories, SlimefunPlugin.getUtilities().categorySorter); } /** @@ -99,7 +96,7 @@ public class Category { * @see Categories */ public static List list() { - return list; + return SlimefunPlugin.getUtilities().allCategories; } /** @@ -143,8 +140,9 @@ public class Category { * * @since 4.0 */ + @Deprecated public static Category getByItem(ItemStack item) { - for (Category c: list) { + for (Category c: list()) { if (c.getItem().isSimilar(item)) return c; } return null; @@ -161,19 +159,4 @@ public class Category { return tier; } - /** - * @since 4.0 - */ - class CategorySorter implements Comparator { - - /** - * @since 4.0 - */ - @Override - public int compare(Category c1, Category c2) { - return Integer.compare(c1.getTier(), c2.getTier()); - } - - } - } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index 31420ffa8..f41d29cc8 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -33,10 +33,7 @@ import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; public class SlimefunItem { - - public static List items = new ArrayList<>(); - public static List all = new ArrayList<>(); - + private String id; private String hash; private State state; @@ -211,7 +208,7 @@ public class SlimefunItem { throw new IllegalArgumentException("ID \"" + this.id + "\" already exists"); } if (this.recipe.length < 9) this.recipe = new ItemStack[] {null, null, null, null, null, null, null, null, null}; - all.add(this); + SlimefunPlugin.getUtilities().allItems.add(this); SlimefunPlugin.getItemCfg().setDefaultValue(this.id + ".enabled", true); SlimefunPlugin.getItemCfg().setDefaultValue(this.id + ".can-be-used-in-workbenches", this.replacing); @@ -246,7 +243,7 @@ public class SlimefunItem { this.enchantable = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".allow-enchanting"); this.disenchantable = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".allow-disenchanting"); this.permission = SlimefunPlugin.getItemCfg().getString(this.id + ".required-permission"); - items.add(this); + SlimefunPlugin.getUtilities().enabledItems.add(this); if (slimefun) SlimefunPlugin.getUtilities().vanillaItems++; SlimefunPlugin.getUtilities().itemIDs.put(this.id, this); @@ -274,7 +271,7 @@ public class SlimefunItem { } public static List list() { - return items; + return SlimefunPlugin.getUtilities().enabledItems; } public void bindToResearch(Research r) { @@ -325,7 +322,7 @@ public class SlimefunItem { public static SlimefunItem getByItem(ItemStack item) { if (item == null) return null; - for (SlimefunItem sfi: items) { + for (SlimefunItem sfi: SlimefunPlugin.getUtilities().enabledItems) { if ((sfi instanceof ChargableItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) || (sfi instanceof DamagableChargableItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) || (sfi instanceof ChargedItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) || @@ -378,7 +375,7 @@ public class SlimefunItem { } public static State getState(ItemStack item) { - for (SlimefunItem i: all) { + for (SlimefunItem i: SlimefunPlugin.getUtilities().allItems) { if (i.isItem(item)) { return i.getState(); } @@ -387,7 +384,7 @@ public class SlimefunItem { } public static boolean isDisabled(ItemStack item) { - for (SlimefunItem i: all) { + for (SlimefunItem i: SlimefunPlugin.getUtilities().allItems) { if (i.isItem(item)) { return i.isDisabled(); } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java index cc9ccad25..90c042baa 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/MachineHelper.java @@ -98,7 +98,7 @@ public final class MachineHelper { im.setLore(lore); item.setItemMeta(im); - menu.replaceExistingItem(22, item); + menu.replaceExistingItem(slot, item); } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java new file mode 100644 index 000000000..6086c4a2c --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java @@ -0,0 +1,27 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; + +import org.bukkit.entity.Item; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.SlimefunPlugin; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.ancient_altar.AncientAltarListener; + +public class AncientPedestal extends SlimefunItem { + + public AncientPedestal(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { + super(category, item, id, recipeType, recipe, recipeOutput); + + SlimefunItem.registerBlockHandler(getID(), (p, b, tool, reason) -> { + Item stack = AncientAltarListener.findItem(b); + if (stack != null) { + stack.removeMetadata("item_placed", SlimefunPlugin.instance); + b.getWorld().dropItem(b.getLocation(), AncientAltarListener.fixItemStack(stack.getItemStack(), stack.getCustomName())); + stack.remove(); + } + return true; + }); + } +} diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java index c72346212..43e08855d 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java @@ -23,34 +23,34 @@ import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; public class AutoDrier extends AContainer implements RecipeDisplayItem { - private final List recipes = new ArrayList<>(); + private final List recipeList = new ArrayList<>(); public AutoDrier(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { super(category, item, id, recipeType, recipe); - recipes.add(new ItemStack(Material.ROTTEN_FLESH)); - recipes.add(new ItemStack(Material.LEATHER)); + recipeList.add(new ItemStack(Material.ROTTEN_FLESH)); + recipeList.add(new ItemStack(Material.LEATHER)); - recipes.add(new ItemStack(Material.WET_SPONGE)); - recipes.add(new ItemStack(Material.SPONGE)); + recipeList.add(new ItemStack(Material.WET_SPONGE)); + recipeList.add(new ItemStack(Material.SPONGE)); - recipes.add(new ItemStack(Material.KELP)); - recipes.add(new ItemStack(Material.DRIED_KELP)); + recipeList.add(new ItemStack(Material.KELP)); + recipeList.add(new ItemStack(Material.DRIED_KELP)); - recipes.add(new ItemStack(Material.COOKED_BEEF)); - recipes.add(SlimefunItems.BEEF_JERKY); + recipeList.add(new ItemStack(Material.COOKED_BEEF)); + recipeList.add(SlimefunItems.BEEF_JERKY); - recipes.add(new ItemStack(Material.POTION)); - recipes.add(new ItemStack(Material.GLASS_BOTTLE)); + recipeList.add(new ItemStack(Material.POTION)); + recipeList.add(new ItemStack(Material.GLASS_BOTTLE)); - recipes.add(new ItemStack(Material.OAK_SAPLING)); - recipes.add(new ItemStack(Material.STICK, 2)); + recipeList.add(new ItemStack(Material.OAK_SAPLING)); + recipeList.add(new ItemStack(Material.STICK, 2)); - recipes.add(new ItemStack(Material.OAK_LEAVES)); - recipes.add(new ItemStack(Material.STICK)); + recipeList.add(new ItemStack(Material.OAK_LEAVES)); + recipeList.add(new ItemStack(Material.STICK)); - recipes.add(new ItemStack(Material.WATER_BUCKET)); - recipes.add(new ItemStack(Material.BUCKET)); + recipeList.add(new ItemStack(Material.WATER_BUCKET)); + recipeList.add(new ItemStack(Material.BUCKET)); } @Override @@ -65,7 +65,7 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem { @Override public List getDisplayRecipes() { - return recipes; + return recipeList; } @Override @@ -100,9 +100,9 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem { Material mat = item.getType(); ItemStack output = null; - for (int i = 0; i < recipes.size(); i += 2) { - if (SlimefunManager.isItemSimiliar(item, recipes.get(i), true)) { - output = recipes.get(i + 1); + for (int i = 0; i < recipeList.size(); i += 2) { + if (SlimefunManager.isItemSimiliar(item, recipeList.get(i), true)) { + output = recipeList.get(i + 1); } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java index 79b4ac163..259077952 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/TableSaw.java @@ -16,7 +16,7 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; public class TableSaw extends MultiBlockMachine { - private final List displayRecipes = new ArrayList(); + private final List displayRecipes = new ArrayList<>(); public TableSaw() { super( diff --git a/src/me/mrCookieSlime/Slimefun/Setup/MiscSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/MiscSetup.java index 1e3c27c53..c859aaeaf 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/MiscSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/MiscSetup.java @@ -49,7 +49,7 @@ public final class MiscSetup { } public static void loadItems(Settings settings) { - Iterator iterator = SlimefunItem.items.iterator(); + Iterator iterator = SlimefunItem.list().iterator(); while (iterator.hasNext()) { SlimefunItem item = iterator.next(); if (item == null) { diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java index f05aa753d..185f8fd4f 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java @@ -3,6 +3,7 @@ package me.mrCookieSlime.Slimefun.Setup; import java.util.ArrayList; import java.util.List; +import org.bukkit.ChatColor; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffect; @@ -116,14 +117,21 @@ public final class SlimefunManager { } private static boolean equalsLore(List lore, List lore2) { - String string1 = ""; - String string2 = ""; + StringBuilder string1 = new StringBuilder(); + StringBuilder string2 = new StringBuilder(); + for (String string: lore) { - if (!string.startsWith("&e&e&7")) string1 = string1 + "-NEW LINE-" + string; + if (!string.startsWith(ChatColor.translateAlternateColorCodes('&', "&e&e&7"))) { + string1.append("-NEW LINE-" + string); + } } + for (String string: lore2) { - if (!string.startsWith("&e&e&7")) string2 = string2 + "-NEW LINE-" + string; + if (!string.startsWith(ChatColor.translateAlternateColorCodes('&', "&e&e&7"))) { + string2.append("-NEW LINE-" + string); + } } - return string1.equals(string2); + + return string1.toString().equals(string2.toString()); } } diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index bce313dad..334e2469f 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -23,7 +23,6 @@ import org.bukkit.block.CreatureSpawner; import org.bukkit.entity.EnderPearl; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; -import org.bukkit.entity.Item; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockPlaceEvent; @@ -103,6 +102,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SmeltersPickaxe; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.StormStaff; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.TelepositionScroll; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.AncientPedestal; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.BlockPlacer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Crucible; @@ -162,7 +162,6 @@ import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler; import me.mrCookieSlime.Slimefun.Objects.tasks.RainbowTicker; -import me.mrCookieSlime.Slimefun.ancient_altar.AncientAltarListener; import me.mrCookieSlime.Slimefun.androids.AndroidType; import me.mrCookieSlime.Slimefun.androids.ProgrammableAndroid; import me.mrCookieSlime.Slimefun.api.BlockStorage; @@ -1732,24 +1731,10 @@ public final class SlimefunSetup { new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN, 4)) .register(true); - new SlimefunItem(Categories.LUMPS_AND_MAGIC, SlimefunItems.ANCIENT_PEDESTAL, "ANCIENT_PEDESTAL", RecipeType.MAGIC_WORKBENCH, + new AncientPedestal(Categories.LUMPS_AND_MAGIC, SlimefunItems.ANCIENT_PEDESTAL, "ANCIENT_PEDESTAL", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN), null, new ItemStack(Material.STONE), null, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}, new CustomItem(SlimefunItems.ANCIENT_PEDESTAL, 4)) .register(true); - SlimefunItem.registerBlockHandler("ANCIENT_PEDESTAL", new SlimefunBlockHandler() { - - @Override - public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - Item stack = AncientAltarListener.findItem(b); - if (stack != null) { - stack.removeMetadata("item_placed", SlimefunPlugin.instance); - b.getWorld().dropItem(b.getLocation(), AncientAltarListener.fixItemStack(stack.getItemStack(), stack.getCustomName())); - stack.remove(); - } - return true; - } - }); - new SlimefunItem(Categories.MAGIC, SlimefunItems.ANCIENT_ALTAR, "ANCIENT_ALTAR", RecipeType.MAGIC_WORKBENCH, new ItemStack[] {null, new ItemStack(Material.ENCHANTING_TABLE), null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.GOLD_8K, SlimefunItems.MAGIC_LUMP_3, new ItemStack(Material.OBSIDIAN), SlimefunItems.GOLD_8K, new ItemStack(Material.OBSIDIAN)}) .register(true); diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java index 08f0edb04..eefc6c453 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java @@ -404,7 +404,7 @@ public final class SlimefunGuide { pl -> pl.playSound(pl.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 0.7F) ); - List categories = SlimefunPlugin.getUtilities().currentlyEnabledCategories; + List categories = SlimefunPlugin.getUtilities().enabledCategories; List handlers = SlimefunPlugin.getUtilities().guideHandlers.values().stream().flatMap(List::stream).collect(Collectors.toList()); int index = 9; diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunPlugin.java b/src/me/mrCookieSlime/Slimefun/SlimefunPlugin.java index 6af513583..0e4000e04 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunPlugin.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunPlugin.java @@ -359,8 +359,6 @@ public final class SlimefunPlugin extends JavaPlugin { // Prevent Memory Leaks Messages.local = null; - SlimefunItem.all = null; - SlimefunItem.items = null; AContainer.processing = null; AContainer.progress = null; OreWasher.items = null; diff --git a/src/me/mrCookieSlime/Slimefun/api/SlimefunRecipes.java b/src/me/mrCookieSlime/Slimefun/api/SlimefunRecipes.java index a14229ac2..5b17246d6 100644 --- a/src/me/mrCookieSlime/Slimefun/api/SlimefunRecipes.java +++ b/src/me/mrCookieSlime/Slimefun/api/SlimefunRecipes.java @@ -1,16 +1,17 @@ package me.mrCookieSlime.Slimefun.api; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; -import org.bukkit.inventory.ItemStack; - public final class SlimefunRecipes { private SlimefunRecipes() {} public static void registerMachineRecipe(String machine, int seconds, ItemStack[] input, ItemStack[] output) { - for (SlimefunItem item: SlimefunItem.all) { + for (SlimefunItem item: SlimefunPlugin.getUtilities().allItems) { if (item instanceof AContainer && ((AContainer) item).getMachineIdentifier().equals(machine)) { ((AContainer) item).registerRecipe(seconds, input, output); } diff --git a/src/me/mrCookieSlime/Slimefun/holograms/HologramProjectorHologram.java b/src/me/mrCookieSlime/Slimefun/holograms/HologramProjectorHologram.java index 24a73f8e1..b04a86d0d 100644 --- a/src/me/mrCookieSlime/Slimefun/holograms/HologramProjectorHologram.java +++ b/src/me/mrCookieSlime/Slimefun/holograms/HologramProjectorHologram.java @@ -30,6 +30,10 @@ public final class HologramProjectorHologram { if (n instanceof ArmorStand && n.getCustomName() != null && n.getCustomName().equals(nametag) && l.distanceSquared(n.getLocation()) < 0.4D) return (ArmorStand) n; } + if (!createIfNoneExists) { + return null; + } + ArmorStand hologram = ArmorStandFactory.createHidden(l); hologram.setCustomName(nametag); return hologram; diff --git a/src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java b/src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java new file mode 100644 index 000000000..64cf469c4 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java @@ -0,0 +1,17 @@ +package me.mrCookieSlime.Slimefun.utils; + +import java.util.Comparator; + +import me.mrCookieSlime.Slimefun.Objects.Category; + +public class CategorySorter implements Comparator { + + /** + * @since 4.0 + */ + @Override + public int compare(Category c1, Category c2) { + return Integer.compare(c1.getTier(), c2.getTier()); + } + +} \ No newline at end of file diff --git a/src/me/mrCookieSlime/Slimefun/utils/Utilities.java b/src/me/mrCookieSlime/Slimefun/utils/Utilities.java index 5b2024847..98ad43ece 100644 --- a/src/me/mrCookieSlime/Slimefun/utils/Utilities.java +++ b/src/me/mrCookieSlime/Slimefun/utils/Utilities.java @@ -17,6 +17,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; import me.mrCookieSlime.Slimefun.GEO.OreGenResource; +import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.MultiBlock; import me.mrCookieSlime.Slimefun.Objects.Research; @@ -46,11 +47,23 @@ import me.mrCookieSlime.Slimefun.hooks.github.GitHubConnector; public final class Utilities { public int vanillaItems = 0; - + + public final List allItems = new ArrayList<>(); + public final List enabledItems = new ArrayList<>(); public final Map itemIDs = new HashMap<>(); + public final List allMultiblocks = new LinkedList<>(); public final List allResearches = new LinkedList<>(); + /** + * List of the registered Categories. + * @since 4.0 + * @see Categories + */ + public final List allCategories = new ArrayList<>(); + public final List enabledCategories = new ArrayList<>(); + public final CategorySorter categorySorter = new CategorySorter(); + public final Set radioactiveItems = new HashSet<>(); public final Map> itemHandlers = new HashMap<>(); public final Map blockHandlers = new HashMap<>(); @@ -69,8 +82,6 @@ public final class Utilities { public final Map blockMenuPresets = new HashMap<>(); - public final List currentlyEnabledCategories = new ArrayList<>(); - public final Map automatedCraftingChamberRecipes = new HashMap<>(); public final Map worlds = new HashMap<>();