mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +00:00
Reduced technical debt
This commit is contained in:
parent
af40186418
commit
f623c5d2ea
@ -2,7 +2,6 @@ package me.mrCookieSlime.Slimefun.Objects;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemFlag;
|
import org.bukkit.inventory.ItemFlag;
|
||||||
@ -25,12 +24,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
|||||||
* @see SeasonalCategory
|
* @see SeasonalCategory
|
||||||
*/
|
*/
|
||||||
public class Category {
|
public class Category {
|
||||||
/**
|
|
||||||
* List of the registered Categories.
|
|
||||||
* @since 4.0
|
|
||||||
* @see Categories
|
|
||||||
*/
|
|
||||||
public static List<Category> list = new ArrayList<>();
|
|
||||||
|
|
||||||
private ItemStack item;
|
private ItemStack item;
|
||||||
private List<SlimefunItem> items;
|
private List<SlimefunItem> items;
|
||||||
@ -79,15 +72,19 @@ public class Category {
|
|||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
public void register() {
|
public void register() {
|
||||||
list.add(this);
|
SlimefunPlugin.getUtilities().allCategories.add(this);
|
||||||
Collections.sort(list, new CategorySorter());
|
Collections.sort(list(), SlimefunPlugin.getUtilities().categorySorter);
|
||||||
|
|
||||||
if (this instanceof SeasonalCategory) {
|
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
|
* @see Categories
|
||||||
*/
|
*/
|
||||||
public static List<Category> list() {
|
public static List<Category> list() {
|
||||||
return list;
|
return SlimefunPlugin.getUtilities().allCategories;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -143,8 +140,9 @@ public class Category {
|
|||||||
*
|
*
|
||||||
* @since 4.0
|
* @since 4.0
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static Category getByItem(ItemStack item) {
|
public static Category getByItem(ItemStack item) {
|
||||||
for (Category c: list) {
|
for (Category c: list()) {
|
||||||
if (c.getItem().isSimilar(item)) return c;
|
if (c.getItem().isSimilar(item)) return c;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@ -161,19 +159,4 @@ public class Category {
|
|||||||
return tier;
|
return tier;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @since 4.0
|
|
||||||
*/
|
|
||||||
class CategorySorter implements Comparator<Category> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @since 4.0
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int compare(Category c1, Category c2) {
|
|
||||||
return Integer.compare(c1.getTier(), c2.getTier());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,9 +34,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
|||||||
|
|
||||||
public class SlimefunItem {
|
public class SlimefunItem {
|
||||||
|
|
||||||
public static List<SlimefunItem> items = new ArrayList<>();
|
|
||||||
public static List<SlimefunItem> all = new ArrayList<>();
|
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
private String hash;
|
private String hash;
|
||||||
private State state;
|
private State state;
|
||||||
@ -211,7 +208,7 @@ public class SlimefunItem {
|
|||||||
throw new IllegalArgumentException("ID \"" + this.id + "\" already exists");
|
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};
|
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 + ".enabled", true);
|
||||||
SlimefunPlugin.getItemCfg().setDefaultValue(this.id + ".can-be-used-in-workbenches", this.replacing);
|
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.enchantable = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".allow-enchanting");
|
||||||
this.disenchantable = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".allow-disenchanting");
|
this.disenchantable = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".allow-disenchanting");
|
||||||
this.permission = SlimefunPlugin.getItemCfg().getString(this.id + ".required-permission");
|
this.permission = SlimefunPlugin.getItemCfg().getString(this.id + ".required-permission");
|
||||||
items.add(this);
|
SlimefunPlugin.getUtilities().enabledItems.add(this);
|
||||||
if (slimefun) SlimefunPlugin.getUtilities().vanillaItems++;
|
if (slimefun) SlimefunPlugin.getUtilities().vanillaItems++;
|
||||||
SlimefunPlugin.getUtilities().itemIDs.put(this.id, this);
|
SlimefunPlugin.getUtilities().itemIDs.put(this.id, this);
|
||||||
|
|
||||||
@ -274,7 +271,7 @@ public class SlimefunItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<SlimefunItem> list() {
|
public static List<SlimefunItem> list() {
|
||||||
return items;
|
return SlimefunPlugin.getUtilities().enabledItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void bindToResearch(Research r) {
|
public void bindToResearch(Research r) {
|
||||||
@ -325,7 +322,7 @@ public class SlimefunItem {
|
|||||||
|
|
||||||
public static SlimefunItem getByItem(ItemStack item) {
|
public static SlimefunItem getByItem(ItemStack item) {
|
||||||
if (item == null) return null;
|
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)) ||
|
if ((sfi instanceof ChargableItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) ||
|
||||||
(sfi instanceof DamagableChargableItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) ||
|
(sfi instanceof DamagableChargableItem && SlimefunManager.isItemSimiliar(item, sfi.getItem(), false)) ||
|
||||||
(sfi instanceof ChargedItem && 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) {
|
public static State getState(ItemStack item) {
|
||||||
for (SlimefunItem i: all) {
|
for (SlimefunItem i: SlimefunPlugin.getUtilities().allItems) {
|
||||||
if (i.isItem(item)) {
|
if (i.isItem(item)) {
|
||||||
return i.getState();
|
return i.getState();
|
||||||
}
|
}
|
||||||
@ -387,7 +384,7 @@ public class SlimefunItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isDisabled(ItemStack item) {
|
public static boolean isDisabled(ItemStack item) {
|
||||||
for (SlimefunItem i: all) {
|
for (SlimefunItem i: SlimefunPlugin.getUtilities().allItems) {
|
||||||
if (i.isItem(item)) {
|
if (i.isItem(item)) {
|
||||||
return i.isDisabled();
|
return i.isDisabled();
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ public final class MachineHelper {
|
|||||||
im.setLore(lore);
|
im.setLore(lore);
|
||||||
item.setItemMeta(im);
|
item.setItemMeta(im);
|
||||||
|
|
||||||
menu.replaceExistingItem(22, item);
|
menu.replaceExistingItem(slot, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -23,34 +23,34 @@ import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
|||||||
|
|
||||||
public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
||||||
|
|
||||||
private final List<ItemStack> recipes = new ArrayList<>();
|
private final List<ItemStack> recipeList = new ArrayList<>();
|
||||||
|
|
||||||
public AutoDrier(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
|
public AutoDrier(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
|
||||||
super(category, item, id, recipeType, recipe);
|
super(category, item, id, recipeType, recipe);
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.ROTTEN_FLESH));
|
recipeList.add(new ItemStack(Material.ROTTEN_FLESH));
|
||||||
recipes.add(new ItemStack(Material.LEATHER));
|
recipeList.add(new ItemStack(Material.LEATHER));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.WET_SPONGE));
|
recipeList.add(new ItemStack(Material.WET_SPONGE));
|
||||||
recipes.add(new ItemStack(Material.SPONGE));
|
recipeList.add(new ItemStack(Material.SPONGE));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.KELP));
|
recipeList.add(new ItemStack(Material.KELP));
|
||||||
recipes.add(new ItemStack(Material.DRIED_KELP));
|
recipeList.add(new ItemStack(Material.DRIED_KELP));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.COOKED_BEEF));
|
recipeList.add(new ItemStack(Material.COOKED_BEEF));
|
||||||
recipes.add(SlimefunItems.BEEF_JERKY);
|
recipeList.add(SlimefunItems.BEEF_JERKY);
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.POTION));
|
recipeList.add(new ItemStack(Material.POTION));
|
||||||
recipes.add(new ItemStack(Material.GLASS_BOTTLE));
|
recipeList.add(new ItemStack(Material.GLASS_BOTTLE));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.OAK_SAPLING));
|
recipeList.add(new ItemStack(Material.OAK_SAPLING));
|
||||||
recipes.add(new ItemStack(Material.STICK, 2));
|
recipeList.add(new ItemStack(Material.STICK, 2));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.OAK_LEAVES));
|
recipeList.add(new ItemStack(Material.OAK_LEAVES));
|
||||||
recipes.add(new ItemStack(Material.STICK));
|
recipeList.add(new ItemStack(Material.STICK));
|
||||||
|
|
||||||
recipes.add(new ItemStack(Material.WATER_BUCKET));
|
recipeList.add(new ItemStack(Material.WATER_BUCKET));
|
||||||
recipes.add(new ItemStack(Material.BUCKET));
|
recipeList.add(new ItemStack(Material.BUCKET));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -65,7 +65,7 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ItemStack> getDisplayRecipes() {
|
public List<ItemStack> getDisplayRecipes() {
|
||||||
return recipes;
|
return recipeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -100,9 +100,9 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
|||||||
Material mat = item.getType();
|
Material mat = item.getType();
|
||||||
ItemStack output = null;
|
ItemStack output = null;
|
||||||
|
|
||||||
for (int i = 0; i < recipes.size(); i += 2) {
|
for (int i = 0; i < recipeList.size(); i += 2) {
|
||||||
if (SlimefunManager.isItemSimiliar(item, recipes.get(i), true)) {
|
if (SlimefunManager.isItemSimiliar(item, recipeList.get(i), true)) {
|
||||||
output = recipes.get(i + 1);
|
output = recipeList.get(i + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
|||||||
|
|
||||||
public class TableSaw extends MultiBlockMachine {
|
public class TableSaw extends MultiBlockMachine {
|
||||||
|
|
||||||
private final List<ItemStack> displayRecipes = new ArrayList<ItemStack>();
|
private final List<ItemStack> displayRecipes = new ArrayList<>();
|
||||||
|
|
||||||
public TableSaw() {
|
public TableSaw() {
|
||||||
super(
|
super(
|
||||||
|
@ -49,7 +49,7 @@ public final class MiscSetup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void loadItems(Settings settings) {
|
public static void loadItems(Settings settings) {
|
||||||
Iterator<SlimefunItem> iterator = SlimefunItem.items.iterator();
|
Iterator<SlimefunItem> iterator = SlimefunItem.list().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
SlimefunItem item = iterator.next();
|
SlimefunItem item = iterator.next();
|
||||||
if (item == null) {
|
if (item == null) {
|
||||||
|
@ -3,6 +3,7 @@ package me.mrCookieSlime.Slimefun.Setup;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
@ -116,14 +117,21 @@ public final class SlimefunManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean equalsLore(List<String> lore, List<String> lore2) {
|
private static boolean equalsLore(List<String> lore, List<String> lore2) {
|
||||||
String string1 = "";
|
StringBuilder string1 = new StringBuilder();
|
||||||
String string2 = "";
|
StringBuilder string2 = new StringBuilder();
|
||||||
|
|
||||||
for (String string: lore) {
|
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) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ import org.bukkit.block.CreatureSpawner;
|
|||||||
import org.bukkit.entity.EnderPearl;
|
import org.bukkit.entity.EnderPearl;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Item;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
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.StormStaff;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.SwordOfBeheading;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.TelepositionScroll;
|
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.BlockPlacer;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Crucible;
|
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.ItemInteractionHandler;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler;
|
import me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.tasks.RainbowTicker;
|
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.AndroidType;
|
||||||
import me.mrCookieSlime.Slimefun.androids.ProgrammableAndroid;
|
import me.mrCookieSlime.Slimefun.androids.ProgrammableAndroid;
|
||||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
@ -1732,24 +1731,10 @@ public final class SlimefunSetup {
|
|||||||
new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN, 4))
|
new CustomItem(SlimefunItems.WITHER_PROOF_OBSIDIAN, 4))
|
||||||
.register(true);
|
.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))
|
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);
|
.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 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)})
|
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);
|
.register(true);
|
||||||
|
@ -404,7 +404,7 @@ public final class SlimefunGuide {
|
|||||||
pl -> pl.playSound(pl.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 0.7F)
|
pl -> pl.playSound(pl.getLocation(), Sound.ENTITY_BAT_TAKEOFF, 0.7F, 0.7F)
|
||||||
);
|
);
|
||||||
|
|
||||||
List<Category> categories = SlimefunPlugin.getUtilities().currentlyEnabledCategories;
|
List<Category> categories = SlimefunPlugin.getUtilities().enabledCategories;
|
||||||
List<GuideHandler> handlers = SlimefunPlugin.getUtilities().guideHandlers.values().stream().flatMap(List::stream).collect(Collectors.toList());
|
List<GuideHandler> handlers = SlimefunPlugin.getUtilities().guideHandlers.values().stream().flatMap(List::stream).collect(Collectors.toList());
|
||||||
|
|
||||||
int index = 9;
|
int index = 9;
|
||||||
|
@ -359,8 +359,6 @@ public final class SlimefunPlugin extends JavaPlugin {
|
|||||||
|
|
||||||
// Prevent Memory Leaks
|
// Prevent Memory Leaks
|
||||||
Messages.local = null;
|
Messages.local = null;
|
||||||
SlimefunItem.all = null;
|
|
||||||
SlimefunItem.items = null;
|
|
||||||
AContainer.processing = null;
|
AContainer.processing = null;
|
||||||
AContainer.progress = null;
|
AContainer.progress = null;
|
||||||
OreWasher.items = null;
|
OreWasher.items = null;
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
package me.mrCookieSlime.Slimefun.api;
|
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.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer;
|
||||||
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
public final class SlimefunRecipes {
|
public final class SlimefunRecipes {
|
||||||
|
|
||||||
private SlimefunRecipes() {}
|
private SlimefunRecipes() {}
|
||||||
|
|
||||||
public static void registerMachineRecipe(String machine, int seconds, ItemStack[] input, ItemStack[] output) {
|
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)) {
|
if (item instanceof AContainer && ((AContainer) item).getMachineIdentifier().equals(machine)) {
|
||||||
((AContainer) item).registerRecipe(seconds, input, output);
|
((AContainer) item).registerRecipe(seconds, input, output);
|
||||||
}
|
}
|
||||||
|
@ -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 (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);
|
ArmorStand hologram = ArmorStandFactory.createHidden(l);
|
||||||
hologram.setCustomName(nametag);
|
hologram.setCustomName(nametag);
|
||||||
return hologram;
|
return hologram;
|
||||||
|
17
src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java
Normal file
17
src/me/mrCookieSlime/Slimefun/utils/CategorySorter.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.utils;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
|
||||||
|
public class CategorySorter implements Comparator<Category> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 4.0
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int compare(Category c1, Category c2) {
|
||||||
|
return Integer.compare(c1.getTier(), c2.getTier());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -17,6 +17,7 @@ import org.bukkit.entity.EntityType;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.Slimefun.GEO.OreGenResource;
|
import me.mrCookieSlime.Slimefun.GEO.OreGenResource;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.Categories;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.MultiBlock;
|
import me.mrCookieSlime.Slimefun.Objects.MultiBlock;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.Research;
|
import me.mrCookieSlime.Slimefun.Objects.Research;
|
||||||
@ -47,10 +48,22 @@ public final class Utilities {
|
|||||||
|
|
||||||
public int vanillaItems = 0;
|
public int vanillaItems = 0;
|
||||||
|
|
||||||
|
public final List<SlimefunItem> allItems = new ArrayList<>();
|
||||||
|
public final List<SlimefunItem> enabledItems = new ArrayList<>();
|
||||||
public final Map<String, SlimefunItem> itemIDs = new HashMap<>();
|
public final Map<String, SlimefunItem> itemIDs = new HashMap<>();
|
||||||
|
|
||||||
public final List<MultiBlock> allMultiblocks = new LinkedList<>();
|
public final List<MultiBlock> allMultiblocks = new LinkedList<>();
|
||||||
public final List<Research> allResearches = new LinkedList<>();
|
public final List<Research> allResearches = new LinkedList<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of the registered Categories.
|
||||||
|
* @since 4.0
|
||||||
|
* @see Categories
|
||||||
|
*/
|
||||||
|
public final List<Category> allCategories = new ArrayList<>();
|
||||||
|
public final List<Category> enabledCategories = new ArrayList<>();
|
||||||
|
public final CategorySorter categorySorter = new CategorySorter();
|
||||||
|
|
||||||
public final Set<ItemStack> radioactiveItems = new HashSet<>();
|
public final Set<ItemStack> radioactiveItems = new HashSet<>();
|
||||||
public final Map<String, Set<ItemHandler>> itemHandlers = new HashMap<>();
|
public final Map<String, Set<ItemHandler>> itemHandlers = new HashMap<>();
|
||||||
public final Map<String, SlimefunBlockHandler> blockHandlers = new HashMap<>();
|
public final Map<String, SlimefunBlockHandler> blockHandlers = new HashMap<>();
|
||||||
@ -69,8 +82,6 @@ public final class Utilities {
|
|||||||
|
|
||||||
public final Map<String, BlockMenuPreset> blockMenuPresets = new HashMap<>();
|
public final Map<String, BlockMenuPreset> blockMenuPresets = new HashMap<>();
|
||||||
|
|
||||||
public final List<Category> currentlyEnabledCategories = new ArrayList<>();
|
|
||||||
|
|
||||||
public final Map<String, ItemStack> automatedCraftingChamberRecipes = new HashMap<>();
|
public final Map<String, ItemStack> automatedCraftingChamberRecipes = new HashMap<>();
|
||||||
|
|
||||||
public final Map<String, BlockStorage> worlds = new HashMap<>();
|
public final Map<String, BlockStorage> worlds = new HashMap<>();
|
||||||
|
Loading…
Reference in New Issue
Block a user