mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Code cleanup
This commit is contained in:
parent
d51e906300
commit
74ecde2c58
@ -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);
|
||||
|
@ -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};
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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};
|
||||
}
|
||||
|
@ -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() {
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
39
src/me/mrCookieSlime/Slimefun/utils/InventoryBlock.java
Normal file
39
src/me/mrCookieSlime/Slimefun/utils/InventoryBlock.java
Normal 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);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user