mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Refactoring, lots of refactoring
This commit is contained in:
parent
1cbe3f9e1f
commit
626a2ebdaf
@ -0,0 +1,109 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Skull;
|
||||
import org.bukkit.block.data.Rotatable;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||
import io.github.thebusybiscuit.cscorelib2.skull.SkullBlock;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
|
||||
public class DebugFishListener implements Listener {
|
||||
|
||||
public DebugFishListener(SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onDebug(PlayerInteractEvent e) {
|
||||
if (e.getAction() == Action.PHYSICAL || e.getHand() != EquipmentSlot.HAND) return;
|
||||
|
||||
Player p = e.getPlayer();
|
||||
|
||||
if (SlimefunManager.isItemSimilar(e.getItem(), SlimefunItems.DEBUG_FISH, true)) {
|
||||
e.setCancelled(true);
|
||||
|
||||
if (p.isOp()) {
|
||||
switch (e.getAction()) {
|
||||
case LEFT_CLICK_BLOCK:
|
||||
if (p.isSneaking()) {
|
||||
if (BlockStorage.hasBlockInfo(e.getClickedBlock())) {
|
||||
BlockStorage.clearBlockInfo(e.getClickedBlock());
|
||||
}
|
||||
}
|
||||
else e.setCancelled(false);
|
||||
break;
|
||||
case RIGHT_CLICK_BLOCK:
|
||||
if (p.isSneaking()) {
|
||||
Block b = e.getClickedBlock().getRelative(e.getBlockFace());
|
||||
b.setType(Material.PLAYER_HEAD);
|
||||
SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTllYjlkYTI2Y2YyZDMzNDEzOTdhN2Y0OTEzYmEzZDM3ZDFhZDEwZWFlMzBhYjI1ZmEzOWNlYjg0YmMifX19");
|
||||
}
|
||||
else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) {
|
||||
p.sendMessage(" ");
|
||||
p.sendMessage(ChatColors.color("&d" + e.getClickedBlock().getType() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()));
|
||||
p.sendMessage(ChatColors.color("&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock())));
|
||||
|
||||
if (e.getClickedBlock().getState() instanceof Skull) {
|
||||
p.sendMessage(ChatColors.color("&dSkull: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColors.color(" &dRotation: &e" + ((Rotatable) e.getClickedBlock().getBlockData()).getRotation().toString()));
|
||||
}
|
||||
|
||||
if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) {
|
||||
p.sendMessage(ChatColors.color("&dInventory: " + "&2\u2714"));
|
||||
}
|
||||
|
||||
else {
|
||||
p.sendMessage(ChatColors.color("&dInventory: " + "&4\u2718"));
|
||||
}
|
||||
|
||||
if (BlockStorage.check(e.getClickedBlock()).isTicking()) {
|
||||
p.sendMessage(ChatColors.color("&dTicking: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColors.color(" &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getBlockTicker().isSynchronized() ? "&4\u2718": "&2\u2714")));
|
||||
p.sendMessage(ChatColors.color(" &dTimings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock()) + "ms"));
|
||||
p.sendMessage(ChatColors.color(" &dTotal Timings: &e" + SlimefunPlugin.getTicker().getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"));
|
||||
p.sendMessage(ChatColors.color(" &dChunk Timings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock().getChunk()) + "ms"));
|
||||
}
|
||||
else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) {
|
||||
p.sendMessage(ChatColors.color("&dTicking: " + "&b~ &3(Indirect)"));
|
||||
p.sendMessage(ChatColors.color(" &dTimings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock()) + "ms"));
|
||||
p.sendMessage(ChatColors.color(" &dChunk Timings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock().getChunk()) + "ms"));
|
||||
}
|
||||
else {
|
||||
p.sendMessage(ChatColors.color("&dTicking: " + "&4\u2718"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',"&dTicking: " + "&4\u2718"));
|
||||
}
|
||||
|
||||
if (ChargableBlock.isChargable(e.getClickedBlock())) {
|
||||
p.sendMessage(ChatColors.color("&dChargable: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColors.color(" &dEnergy: &e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())));
|
||||
}
|
||||
else {
|
||||
p.sendMessage(ChatColors.color("&dChargable: " + "&4\u2718"));
|
||||
}
|
||||
|
||||
p.sendMessage(ChatColors.color("&6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())));
|
||||
p.sendMessage(" ");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -27,7 +27,6 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
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.utils.MachineHelper;
|
||||
|
||||
public abstract class AContainer extends SlimefunItem implements InventoryBlock {
|
||||
|
||||
@ -182,8 +181,9 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(inv, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(inv, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
@ -193,7 +193,7 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
||||
else progress.put(b, timeleft - 1);
|
||||
}
|
||||
else {
|
||||
inv.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
inv.replaceExistingItem(22, new CustomItem(Material.BLACK_STAINED_GLASS_PANE, " "));
|
||||
|
||||
for (ItemStack output : processing.get(b).getOutput()) {
|
||||
inv.pushItem(output.clone(), getOutputSlots());
|
||||
|
@ -37,7 +37,6 @@ import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker;
|
||||
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.MachineHelper;
|
||||
|
||||
public abstract class AGenerator extends SlimefunItem implements RecipeDisplayItem {
|
||||
|
||||
@ -170,8 +169,9 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
||||
BlockMenu inv = BlockStorage.getInventory(l);
|
||||
if (isProcessing(l)) {
|
||||
int timeleft = progress.get(l);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(inv, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(inv, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(l)) {
|
||||
if (ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l) >= getEnergyProduction()) {
|
||||
|
@ -256,9 +256,11 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
if (isProcessing(l)) {
|
||||
extraTick(l);
|
||||
int timeleft = progress.get(l);
|
||||
|
||||
if (timeleft > 0) {
|
||||
int produced = getEnergyProduction();
|
||||
int space = ChargableBlock.getMaxCharge(l) - ChargableBlock.getCharge(l);
|
||||
|
||||
if (space >= produced) {
|
||||
ChargableBlock.addCharge(l, getEnergyProduction());
|
||||
space -= produced;
|
||||
@ -270,7 +272,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
if (!l.getBlock().getRelative(cooling[ThreadLocalRandom.current().nextInt(cooling.length)]).isLiquid()) explode.add(l);
|
||||
});
|
||||
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(l).getTicks(), getProgressBar());
|
||||
|
||||
if (needsCooling()) {
|
||||
boolean coolant = (processing.get(l).getTicks() - timeleft) % 25 == 0;
|
||||
|
@ -46,17 +46,19 @@ public class CargoManagerBlock extends SlimefunItem {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) {
|
||||
if (e.getClickedBlock() == null) return false;
|
||||
String item = BlockStorage.checkID(e.getClickedBlock());
|
||||
Block b = e.getClickedBlock();
|
||||
if (b == null) return false;
|
||||
|
||||
String item = BlockStorage.checkID(b);
|
||||
if (item == null || !item.equals(getID())) return false;
|
||||
e.setCancelled(true);
|
||||
|
||||
if (BlockStorage.getLocationInfo(e.getClickedBlock().getLocation(), "visualizer") == null) {
|
||||
BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", "disabled");
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "visualizer") == null) {
|
||||
BlockStorage.addBlockInfo(b, "visualizer", "disabled");
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cCargo Net Visualizer: " + "&4\u2718"));
|
||||
}
|
||||
else {
|
||||
BlockStorage.addBlockInfo(e.getClickedBlock(), "visualizer", null);
|
||||
BlockStorage.addBlockInfo(b, "visualizer", null);
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cCargo Net Visualizer: " + "&2\u2714"));
|
||||
}
|
||||
return true;
|
||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet;
|
||||
@ -57,16 +58,19 @@ public class GoldPan extends SimpleSlimefunItem<ItemInteractionHandler> implemen
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (isItem(item)) {
|
||||
if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL && SlimefunPlugin.getProtectionManager().hasPermission(p, e.getClickedBlock().getLocation(), ProtectableAction.BREAK_BLOCK)) {
|
||||
Block b = e.getClickedBlock();
|
||||
|
||||
if (b != null && b.getType() == Material.GRAVEL && SlimefunPlugin.getProtectionManager().hasPermission(p, b.getLocation(), ProtectableAction.BREAK_BLOCK)) {
|
||||
ItemStack output = randomizer.getRandom();
|
||||
|
||||
e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType());
|
||||
e.getClickedBlock().setType(Material.AIR);
|
||||
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType());
|
||||
b.setType(Material.AIR);
|
||||
|
||||
if (output.getType() != Material.AIR) {
|
||||
e.getClickedBlock().getWorld().dropItemNaturally(e.getClickedBlock().getLocation(), output.clone());
|
||||
b.getWorld().dropItemNaturally(b.getLocation(), output.clone());
|
||||
}
|
||||
}
|
||||
|
||||
e.setCancelled(true);
|
||||
return true;
|
||||
}
|
||||
|
@ -25,8 +25,10 @@ public class InfernalBonemeal extends SimpleSlimefunItem<ItemInteractionHandler>
|
||||
return (e, p, item) -> {
|
||||
if (isItem(item)) {
|
||||
Block b = e.getClickedBlock();
|
||||
|
||||
if (b != null && b.getType() == Material.NETHER_WART) {
|
||||
Ageable ageable = (Ageable) b.getBlockData();
|
||||
|
||||
if (ageable.getAge() < ageable.getMaximumAge()) {
|
||||
ageable.setAge(ageable.getMaximumAge());
|
||||
b.setBlockData(ageable);
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.inventory.meta.Damageable;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
@ -17,7 +18,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class AutoAnvil extends AContainer {
|
||||
|
||||
@ -53,8 +53,9 @@ public abstract class AutoAnvil extends AContainer {
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
@ -16,6 +16,7 @@ import org.bukkit.inventory.meta.Repairable;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.api.events.AutoDisenchantEvent;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants;
|
||||
import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
@ -28,7 +29,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public class AutoDisenchanter extends AContainer {
|
||||
|
||||
@ -58,7 +58,7 @@ public class AutoDisenchanter extends AContainer {
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
@ -20,7 +21,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
@ -91,7 +91,7 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
@ -12,6 +12,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants;
|
||||
import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
@ -24,7 +25,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public class AutoEnchanter extends AContainer {
|
||||
|
||||
@ -52,8 +52,9 @@ public class AutoEnchanter extends AContainer {
|
||||
BlockMenu menu = BlockStorage.getInventory(b.getLocation());
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
@ -114,7 +115,7 @@ public class AutoEnchanter extends AContainer {
|
||||
newItem.addUnsafeEnchantment(entry.getKey(), entry.getValue());
|
||||
}
|
||||
|
||||
for (ItemEnchantment ench: emeraldEnchantments) {
|
||||
for (ItemEnchantment ench : emeraldEnchantments) {
|
||||
EmeraldEnchants.getInstance().getRegistry().applyEnchantment(newItem, ench.getEnchantment(), ench.getLevel());
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric;
|
||||
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
@ -18,7 +19,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class ElectricDustWasher extends AContainer {
|
||||
|
||||
@ -41,10 +41,12 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
@Override
|
||||
protected void tick(Block b) {
|
||||
BlockMenu menu = BlockStorage.getInventory(b);
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0 && getSpeed() < 10) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
@ -81,10 +83,10 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
if (!emptySlot) return;
|
||||
}
|
||||
|
||||
ItemStack adding = items[new Random().nextInt(items.length)];
|
||||
ItemStack adding = items[ThreadLocalRandom.current().nextInt(items.length)];
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {adding});
|
||||
if (SlimefunPlugin.getSettings().legacyDustWasher && !menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||
menu.consumeItem(slot);
|
||||
menu.consumeItem(slot);
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
@ -92,7 +94,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
else if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER});
|
||||
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||
menu.consumeItem(slot);
|
||||
menu.consumeItem(slot);
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
@ -21,7 +22,6 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class ElectricGoldPan extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
@ -90,10 +90,12 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
@Override
|
||||
protected void tick(Block b) {
|
||||
BlockMenu menu = BlockStorage.getInventory(b);
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0 && getSpeed() < 10) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
@ -120,8 +122,8 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
|
||||
MachineRecipe r = new MachineRecipe(3 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
if (!menu.fits(output, getOutputSlots())) return;
|
||||
|
||||
menu.consumeItem(slot);
|
||||
|
||||
menu.consumeItem(slot);
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
@ -131,8 +133,8 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
if (!menu.fits(output, getOutputSlots())) return;
|
||||
|
||||
menu.consumeItem(slot);
|
||||
|
||||
menu.consumeItem(slot);
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
|
@ -14,6 +14,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
@ -31,7 +32,6 @@ import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu;
|
||||
import me.mrCookieSlime.Slimefun.api.item_transport.ItemTransportFlow;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class HeatedPressureChamber extends AContainer {
|
||||
|
||||
@ -146,7 +146,7 @@ public abstract class HeatedPressureChamber extends AContainer {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
|
@ -7,8 +7,8 @@ import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
@ -20,7 +20,6 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.MachineHelper;
|
||||
|
||||
public abstract class Refinery extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
@ -56,7 +55,7 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.isChargable(b)) {
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
@ -81,7 +80,7 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
if (!menu.fits(SlimefunItems.BUCKET_OF_FUEL, getOutputSlots())) return;
|
||||
|
||||
ItemUtils.consumeItem(menu.getItemInSlot(slot), false);
|
||||
menu.consumeItem(slot);
|
||||
processing.put(b, r);
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
|
@ -10,6 +10,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler;
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
@ -134,34 +135,20 @@ public class WitherAssembler extends SlimefunItem {
|
||||
|
||||
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, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
for (int i : border_1) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "),
|
||||
(p, slot, item, action) -> false
|
||||
);
|
||||
preset.addItem(i, new CustomItem(Material.BLACK_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
for (int i : border_2) {
|
||||
preset.addItem(i, new CustomItem(new ItemStack(Material.BROWN_STAINED_GLASS_PANE), " "),
|
||||
(p, slot, item, action) -> false
|
||||
);
|
||||
preset.addItem(i, new CustomItem(Material.BROWN_STAINED_GLASS_PANE, " "), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
preset.addItem(1, new CustomItem(new ItemStack(Material.WITHER_SKELETON_SKULL, (byte) 1), "&7Wither Skull Slot", "", "&rThis Slot accepts Wither Skeleton Skulls"),
|
||||
(p, slot, item, action) -> false
|
||||
);
|
||||
|
||||
preset.addItem(7, new CustomItem(new ItemStack(Material.SOUL_SAND), "&7Soul Sand Slot", "", "&rThis Slot accepts Soul Sand"),
|
||||
(p, slot, item, action) -> false
|
||||
);
|
||||
|
||||
preset.addItem(13, new CustomItem(new ItemStack(Material.CLOCK), "&7Cooldown: &b30 Seconds", "", "&rThis Machine takes up to half a Minute to operate", "&rso give it some Time!"),
|
||||
(p, slot, item, action) -> false
|
||||
);
|
||||
preset.addItem(1, new CustomItem(Material.WITHER_SKELETON_SKULL, "&7Wither Skull Slot", "", "&rThis Slot accepts Wither Skeleton Skulls"), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(7, new CustomItem(Material.SOUL_SAND, "&7Soul Sand Slot", "", "&rThis Slot accepts Soul Sand"), ChestMenuUtils.getEmptyClickHandler());
|
||||
preset.addItem(13, new CustomItem(Material.CLOCK, "&7Cooldown: &b30 Seconds", "", "&rThis Machine takes up to half a Minute to operate", "&rso give it some Time!"), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
public int[] getInputSlots() {
|
||||
@ -183,6 +170,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
@Override
|
||||
public void tick(Block b, SlimefunItem sf, Config data) {
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "enabled").equals("false")) return;
|
||||
|
||||
if (lifetime % 60 == 0) {
|
||||
if (ChargableBlock.getCharge(b) < energyConsumption) return;
|
||||
|
||||
@ -194,6 +182,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
for (int slot : getSoulSandSlots()) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
soulsand = soulsand + menu.getItemInSlot(slot).getAmount();
|
||||
|
||||
if (soulsand > 3) {
|
||||
soulsand = 4;
|
||||
break;
|
||||
@ -204,6 +193,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
for (int slot : getWitherSkullSlots()) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||
skulls = skulls + menu.getItemInSlot(slot).getAmount();
|
||||
|
||||
if (skulls > 2) {
|
||||
skulls = 3;
|
||||
break;
|
||||
|
@ -32,6 +32,7 @@ public class XPCollector extends SlimefunItem implements InventoryBlock {
|
||||
|
||||
public XPCollector(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
|
||||
createPreset(this, "&aEXP Collector", this::constructMenu);
|
||||
|
||||
registerBlockHandler(getID(), new SlimefunBlockHandler() {
|
||||
|
@ -11,6 +11,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.holograms.SimpleHologram;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ClickAction;
|
||||
@ -30,7 +31,6 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
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.utils.MachineHelper;
|
||||
|
||||
public abstract class GEOMiner extends AContainer implements InventoryBlock, RecipeDisplayItem {
|
||||
|
||||
@ -159,8 +159,9 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(menu, 4, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(menu, 4, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.GEO.OreGenResource;
|
||||
import me.mrCookieSlime.Slimefun.GEO.OreGenSystem;
|
||||
@ -27,7 +28,6 @@ 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.MachineHelper;
|
||||
|
||||
public abstract class OilPump extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
@ -88,8 +88,9 @@ public abstract class OilPump extends AContainer implements RecipeDisplayItem {
|
||||
|
||||
if (isProcessing(b)) {
|
||||
int timeleft = progress.get(b);
|
||||
|
||||
if (timeleft > 0) {
|
||||
MachineHelper.updateProgressbar(inv, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
ChestMenuUtils.updateProgressbar(inv, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
|
||||
|
||||
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) return;
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
@ -43,13 +43,14 @@ public class ElevatorPlate extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (e.getClickedBlock() == null) return false;
|
||||
Block b = e.getClickedBlock();
|
||||
if (b == null) return false;
|
||||
|
||||
String id = BlockStorage.checkID(e.getClickedBlock());
|
||||
String id = BlockStorage.checkID(b);
|
||||
if (id == null || !id.equals(getID())) return false;
|
||||
|
||||
if (BlockStorage.getLocationInfo(e.getClickedBlock().getLocation(), "owner").equals(p.getUniqueId().toString())) {
|
||||
Elevator.openEditor(p, e.getClickedBlock());
|
||||
if (BlockStorage.getLocationInfo(b.getLocation(), "owner").equals(p.getUniqueId().toString())) {
|
||||
Elevator.openEditor(p, b);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -35,6 +35,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.listeners.BlockListener
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.CoolerListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.DamageListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.DeathpointListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.DebugFishListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.EnhancedFurnaceListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.ExplosionsListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.GearListener;
|
||||
@ -227,6 +228,7 @@ public final class SlimefunPlugin extends JavaPlugin {
|
||||
new ItemPickupListener(this);
|
||||
new DeathpointListener(this);
|
||||
new ExplosionsListener(this);
|
||||
new DebugFishListener(this);
|
||||
|
||||
// Toggleable Listeners for performance
|
||||
if (config.getBoolean("items.talismans")) new TalismanListener(this);
|
||||
|
@ -1024,6 +1024,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem implements Invent
|
||||
|
||||
public void addItems(Block b, ItemStack... items) {
|
||||
BlockMenu inv = BlockStorage.getInventory(b);
|
||||
|
||||
for (ItemStack item : items) {
|
||||
inv.pushItem(item, getOutputSlots());
|
||||
}
|
||||
|
@ -9,8 +9,6 @@ import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BrewingStand;
|
||||
import org.bukkit.block.Hopper;
|
||||
import org.bukkit.block.Skull;
|
||||
import org.bukkit.block.data.Rotatable;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.IronGolem;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -33,13 +31,13 @@ import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||
import org.bukkit.inventory.BrewerInventory;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.PotionMeta;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.skull.SkullBlock;
|
||||
import io.github.thebusybiscuit.slimefun4.core.guide.GuideSettings;
|
||||
import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideLayout;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListener;
|
||||
@ -58,7 +56,6 @@ import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.energy.ItemEnergy;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
||||
@ -76,7 +73,9 @@ public class ItemListener implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void onIgnitionChamberItemMove(InventoryMoveItemEvent e) {
|
||||
if (e.getInitiator().getHolder() instanceof Hopper && BlockStorage.check(((Hopper) e.getInitiator().getHolder()).getBlock(), "IGNITION_CHAMBER")) {
|
||||
InventoryHolder holder = e.getInitiator().getHolder();
|
||||
|
||||
if (holder instanceof Hopper && BlockStorage.check(((Hopper) holder).getBlock(), "IGNITION_CHAMBER")) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
@ -119,79 +118,6 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void debug(PlayerInteractEvent e) {
|
||||
if (e.getAction() == Action.PHYSICAL || e.getHand() != EquipmentSlot.HAND) return;
|
||||
|
||||
Player p = e.getPlayer();
|
||||
|
||||
if (SlimefunManager.isItemSimilar(e.getItem(), SlimefunItems.DEBUG_FISH, true)) {
|
||||
e.setCancelled(true);
|
||||
if (p.isOp()) {
|
||||
switch (e.getAction()) {
|
||||
case LEFT_CLICK_BLOCK:
|
||||
if (p.isSneaking()) {
|
||||
if (BlockStorage.hasBlockInfo(e.getClickedBlock())) {
|
||||
BlockStorage.clearBlockInfo(e.getClickedBlock());
|
||||
}
|
||||
}
|
||||
else e.setCancelled(false);
|
||||
break;
|
||||
case RIGHT_CLICK_BLOCK:
|
||||
if (p.isSneaking()) {
|
||||
Block b = e.getClickedBlock().getRelative(e.getBlockFace());
|
||||
b.setType(Material.PLAYER_HEAD);
|
||||
SkullBlock.setFromBase64(b, "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTllYjlkYTI2Y2YyZDMzNDEzOTdhN2Y0OTEzYmEzZDM3ZDFhZDEwZWFlMzBhYjI1ZmEzOWNlYjg0YmMifX19");
|
||||
}
|
||||
else if (BlockStorage.hasBlockInfo(e.getClickedBlock())) {
|
||||
p.sendMessage(" ");
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&d" + e.getClickedBlock().getType() + " &e@ X: " + e.getClickedBlock().getX() + " Y: " + e.getClickedBlock().getY() + " Z: " + e.getClickedBlock().getZ()));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dID: " + "&e" + BlockStorage.checkID(e.getClickedBlock())));
|
||||
if (e.getClickedBlock().getState() instanceof Skull) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dSkull: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dRotation: &e" + ((Rotatable) e.getClickedBlock().getBlockData()).getRotation().toString()));
|
||||
}
|
||||
if (BlockStorage.getStorage(e.getClickedBlock().getWorld()).hasInventory(e.getClickedBlock().getLocation())) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dInventory: " + "&2\u2714"));
|
||||
}
|
||||
else {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dInventory: " + "&4\u2718"));
|
||||
}
|
||||
if (BlockStorage.check(e.getClickedBlock()).isTicking()) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dTicking: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dAsync: &e" + (BlockStorage.check(e.getClickedBlock()).getBlockTicker().isSynchronized() ? "&4\u2718": "&2\u2714")));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTimings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock()) + "ms"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTotal Timings: &e" + SlimefunPlugin.getTicker().getTimings(BlockStorage.checkID(e.getClickedBlock())) + "ms"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dChunk Timings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock().getChunk()) + "ms"));
|
||||
}
|
||||
else if (BlockStorage.check(e.getClickedBlock()).getEnergyTicker() != null) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dTicking: " + "&b~ &3(Indirect)"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dTimings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock()) + "ms"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dChunk Timings: &e" + SlimefunPlugin.getTicker().getTimings(e.getClickedBlock().getChunk()) + "ms"));
|
||||
}
|
||||
else {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dTicking: " + "&4\u2718"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&',"&dTicking: " + "&4\u2718"));
|
||||
}
|
||||
if (ChargableBlock.isChargable(e.getClickedBlock())) {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dChargable: " + "&2\u2714"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &dEnergy: &e" + ChargableBlock.getCharge(e.getClickedBlock()) + " / " + ChargableBlock.getMaxCharge(e.getClickedBlock())));
|
||||
}
|
||||
else {
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&dChargable: " + "&4\u2718"));
|
||||
}
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6" + BlockStorage.getBlockInfoAsJson(e.getClickedBlock())));
|
||||
p.sendMessage(" ");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBucketUse(PlayerBucketEmptyEvent e) {
|
||||
// Fix for placing water on player heads
|
||||
|
Loading…
Reference in New Issue
Block a user