1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Code cleanup

This commit is contained in:
TheBusyBiscuit 2019-09-02 01:07:32 +02:00
parent d51e906300
commit 74ecde2c58
9 changed files with 105 additions and 156 deletions

View File

@ -245,7 +245,8 @@ public class SlimefunItem {
items.add(this);
if (slimefun) SlimefunPlugin.getUtilities().vanillaItems++;
mapID.put(this.id, this);
this.create();
create();
for (ItemHandler handler: itemhandlers) {
Set<ItemHandler> handlerset = getHandlers(handler.toCodename());
@ -389,9 +390,18 @@ public class SlimefunItem {
return false;
}
@Deprecated
public void install() {}
/**
* @deprecated Use {@link SlimefunItem#postRegister()} instead
*/
@Deprecated
public void create() {}
/**
* @deprecated Use {@link SlimefunItem#addItemHandler(ItemHandler...)} instead
*/
@Deprecated
public void addItemHandler(me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.ItemHandler... handler) {
addItemHandler((ItemHandler[]) handler);
@ -423,12 +433,18 @@ public class SlimefunItem {
register(false);
}
/**
* @deprecated Use {@link SlimefunItem#register(boolean, ItemHandler...)} instead
*/
@Deprecated
public void register(boolean vanilla, me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.ItemHandler... handlers) {
addItemHandler(handlers);
register(vanilla);
}
/**
* @deprecated Use {@link SlimefunItem#register(ItemHandler...)} instead
*/
@Deprecated
public void register(me.mrCookieSlime.Slimefun.Objects.SlimefunItem.handlers.ItemHandler... handlers) {
register((ItemHandler[]) handlers);

View File

@ -13,7 +13,6 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
@ -30,9 +29,9 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import me.mrCookieSlime.Slimefun.utils.InventoryBlock;
public abstract class AContainer extends SlimefunItem {
public abstract class AContainer extends SlimefunItem implements InventoryBlock {
public static Map<Block, MachineRecipe> processing = new HashMap<>();
public static Map<Block, Integer> progress = new HashMap<>();
@ -46,24 +45,7 @@ public abstract class AContainer extends SlimefunItem {
public AContainer(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, id, recipeType, recipe);
new BlockMenuPreset(id, getInventoryTitle()) {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
else return getOutputSlots();
}
};
createPreset(id, getInventoryTitle(), this::constructMenu);
registerBlockHandler(id, new SlimefunBlockHandler() {
@ -141,10 +123,12 @@ public abstract class AContainer extends SlimefunItem {
// Override this method to register your machine recipes
}
@Override
public int[] getInputSlots() {
return new int[] {19, 20};
}
@Override
public int[] getOutputSlots() {
return new int[] {24, 25};
}

View File

@ -10,8 +10,9 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import io.github.thebusybiscuit.cscorelib2.protection.ProtectionModule.Action;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
import me.mrCookieSlime.Slimefun.Objects.Category;
@ -44,7 +45,7 @@ public class ReactorAccessPort extends SlimefunItem {
@Override
public boolean canOpen(Block b, Player p) {
if(p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(),b,true)) {
if(p.hasPermission("slimefun.inventory.bypass") || SlimefunPlugin.getProtectionManager().hasPermission(p, b.getLocation(), Action.ACCESS_INVENTORIES)) {
AReactor reactor = getReactor(b.getLocation());
if (reactor != null) {
boolean empty = true;

View File

@ -2,7 +2,6 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
@ -14,33 +13,15 @@ import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import me.mrCookieSlime.Slimefun.utils.InventoryBlock;
public class TrashCan extends SlimefunItem {
public class TrashCan extends SlimefunItem implements InventoryBlock {
private static final int[] border = {0, 1, 2, 3, 5, 4, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
public TrashCan(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
new BlockMenuPreset(name, getInventoryTitle()) {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return true;
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
return new int[0];
}
};
createPreset(getID(), "&4Trash Can", this::constructMenu);
}
private void constructMenu(BlockMenuPreset preset) {
@ -50,14 +31,16 @@ public class TrashCan extends SlimefunItem {
);
}
}
public String getInventoryTitle() {
return "&4Trash Can";
}
@Override
public int[] getInputSlots() {
return new int[] {10, 11, 12, 13, 14, 15, 16};
}
@Override
public int[] getOutputSlots() {
return new int[0];
}
@Override
public void register(boolean slimefun) {

View File

@ -12,7 +12,6 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
@ -26,34 +25,16 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import me.mrCookieSlime.Slimefun.holograms.XPCollectorHologram;
import me.mrCookieSlime.Slimefun.utils.InventoryBlock;
public class XPCollector extends SlimefunItem {
public class XPCollector extends SlimefunItem implements InventoryBlock {
private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
public XPCollector(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
new BlockMenuPreset(name, "&aEXP Collector") {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.WITHDRAW) return getOutputSlots();
return new int[0];
}
};
createPreset(getID(), "&aEXP Collector", this::constructMenu);
registerBlockHandler(name, new SlimefunBlockHandler() {
@ -104,6 +85,12 @@ public class XPCollector extends SlimefunItem {
}
}
@Override
public int[] getInputSlots() {
return new int[0];
}
@Override
public int[] getOutputSlots() {
return new int[] {12, 13, 14};
}

View File

@ -11,7 +11,6 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.InvUtils;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.Item.CustomItem;
@ -28,34 +27,16 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAcceleratorHologram;
import me.mrCookieSlime.Slimefun.utils.InventoryBlock;
public class AnimalGrowthAccelerator extends SlimefunItem {
public class AnimalGrowthAccelerator extends SlimefunItem implements InventoryBlock {
private static final int[] border = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};
public AnimalGrowthAccelerator(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
new BlockMenuPreset(name, "&bGrowth Accelerator") {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
return new int[0];
}
};
createPreset(getID(), "&bGrowth Accelerator", this::constructMenu);
registerBlockHandler(name, new SlimefunBlockHandler() {
@ -76,7 +57,7 @@ public class AnimalGrowthAccelerator extends SlimefunItem {
});
}
protected void constructMenu(BlockMenuPreset preset) {
private void constructMenu(BlockMenuPreset preset) {
for (int i : border) {
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "),
(p, slot, item, action) -> false
@ -88,10 +69,16 @@ public class AnimalGrowthAccelerator extends SlimefunItem {
return 14;
}
@Override
public int[] getInputSlots() {
return new int[] {10, 11, 12, 13, 14, 15, 16};
}
@Override
public int[] getOutputSlots() {
return new int[0];
}
@Override
public void register(boolean slimefun) {
addItemHandler(new BlockTicker() {

View File

@ -2,42 +2,19 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Objects.Category;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.energy.ItemEnergy;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
public class ChargingBench extends AContainer {
public ChargingBench(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
new BlockMenuPreset(name, getInventoryTitle()) {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
else return getOutputSlots();
}
};
}
@Override

View File

@ -15,7 +15,6 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
import me.mrCookieSlime.CSCoreLibPlugin.general.Block.Vein;
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
@ -31,9 +30,9 @@ import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
import me.mrCookieSlime.Slimefun.utils.InventoryBlock;
public class FluidPump extends SlimefunItem{
public class FluidPump extends SlimefunItem implements InventoryBlock {
public static Map<Block, MachineRecipe> processing = new HashMap<>();
public static Map<Block, Integer> progress = new HashMap<>();
@ -45,41 +44,19 @@ public class FluidPump extends SlimefunItem{
public FluidPump(Category category, ItemStack item, String name, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, name, recipeType, recipe);
new BlockMenuPreset(name, getInventoryTitle()) {
@Override
public void init() {
constructMenu(this);
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
else return getOutputSlots();
}
};
createPreset(getID(), "&9Fluid Pump", this::constructMenu);
}
protected void constructMenu(BlockMenuPreset preset) {
private void constructMenu(BlockMenuPreset preset) {
for (int i : border) {
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "),
(p, slot, item, action) -> false
);
preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
}
for (int i : border_in) {
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "),
(p, slot, item, action) -> false
);
preset.addItem(i, new CustomItem(new ItemStack(Material.CYAN_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
}
for (int i : border_out) {
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "),
(p, slot, item, action) -> false
);
preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false);
}
for (int i : getOutputSlots()) {
@ -97,18 +74,16 @@ public class FluidPump extends SlimefunItem{
});
}
}
@Override
public int[] getInputSlots() {
return new int[] {19, 20};
}
@Override
public int[] getOutputSlots() {
return new int[] {24, 25};
}
public String getInventoryTitle() {
return "&9Fluid Pump";
}
protected void tick(Block b) {
Block fluid = b.getRelative(BlockFace.DOWN);

View File

@ -0,0 +1,39 @@
package me.mrCookieSlime.Slimefun.utils;
import java.util.function.Consumer;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import io.github.thebusybiscuit.cscorelib2.protection.ProtectionModule.Action;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
public interface InventoryBlock {
int[] getInputSlots();
int[] getOutputSlots();
default void createPreset(String id, String title, Consumer<BlockMenuPreset> setup) {
new BlockMenuPreset(id, title) {
@Override
public void init() {
setup.accept(this);
}
@Override
public int[] getSlotsAccessedByItemTransport(ItemTransportFlow flow) {
if (flow == ItemTransportFlow.INSERT) return getInputSlots();
else return getOutputSlots();
}
@Override
public boolean canOpen(Block b, Player p) {
return p.hasPermission("slimefun.inventory.bypass") || SlimefunPlugin.getProtectionManager().hasPermission(p, b.getLocation(), Action.ACCESS_INVENTORIES);
}
};
}
}