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

[CI skip] Reduced technical debt

This commit is contained in:
TheBusyBiscuit 2020-01-29 02:25:25 +01:00
parent b94e197f06
commit 6dc0907728
18 changed files with 240 additions and 164 deletions

View File

@ -21,12 +21,13 @@ public class ExplosionsListener implements Listener {
plugin.getServer().getPluginManager().registerEvents(this, plugin); plugin.getServer().getPluginManager().registerEvents(this, plugin);
} }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityExplode(EntityExplodeEvent e) { public void onEntityExplode(EntityExplodeEvent e) {
Iterator<Block> blocks = e.blockList().iterator(); Iterator<Block> blocks = e.blockList().iterator();
while (blocks.hasNext()) { while (blocks.hasNext()) {
Block block = blocks.next(); Block block = blocks.next();
String id = BlockStorage.checkID(block); String id = BlockStorage.checkID(block);
if (id != null) { if (id != null) {
blocks.remove(); blocks.remove();

View File

@ -31,12 +31,8 @@ public class GrapplingHookListener implements Listener {
@EventHandler @EventHandler
public void onArrowHit(ProjectileHitEvent e) { public void onArrowHit(ProjectileHitEvent e) {
Slimefun.runSync(() -> { Slimefun.runSync(() -> {
if (e.getEntity().isValid()) { if (e.getEntity().isValid() && e.getEntity() instanceof Arrow) {
SlimefunPlugin.getUtilities().arrows.remove(e.getEntity().getUniqueId()); handleGrapplingHook((Arrow) e.getEntity());
if (e.getEntity() instanceof Arrow) {
handleGrapplingHook((Arrow) e.getEntity());
}
} }
}, 4L); }, 4L);
} }

View File

@ -1,5 +1,9 @@
package io.github.thebusybiscuit.slimefun4.implementation.listeners; package io.github.thebusybiscuit.slimefun4.implementation.listeners;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.bukkit.entity.Arrow; import org.bukkit.entity.Arrow;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -7,35 +11,56 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityShootBowEvent; import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.entity.ProjectileHitEvent;
import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler;
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler; import me.mrCookieSlime.Slimefun.api.Slimefun;
public class SlimefunBowListener implements Listener { public class SlimefunBowListener implements Listener {
private final Map<UUID, SlimefunBow> bows = new HashMap<>();
public SlimefunBowListener(SlimefunPlugin plugin) { public SlimefunBowListener(SlimefunPlugin plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin); plugin.getServer().getPluginManager().registerEvents(this, plugin);
} }
public Map<UUID, SlimefunBow> getBows() {
return bows;
}
@EventHandler @EventHandler
public void onBowUse(EntityShootBowEvent e) { public void onBowUse(EntityShootBowEvent e) {
if (e.getEntity() instanceof Player && e.getProjectile() instanceof Arrow && SlimefunItem.getByItem(e.getBow()) != null) { if (e.getEntity() instanceof Player && e.getProjectile() instanceof Arrow) {
SlimefunPlugin.getUtilities().arrows.put(e.getProjectile().getUniqueId(), e.getBow()); SlimefunItem bow = SlimefunItem.getByItem(e.getBow());
if (bow instanceof SlimefunBow) {
bows.put(e.getProjectile().getUniqueId(), (SlimefunBow) bow);
}
} }
} }
@EventHandler
public void onArrowHit(ProjectileHitEvent e) {
Slimefun.runSync(() -> {
if (e.getEntity().isValid() && e.getEntity() instanceof Arrow) {
bows.remove(e.getEntity().getUniqueId());
}
}, 4L);
}
@EventHandler @EventHandler
public void onArrowSuccessfulHit(EntityDamageByEntityEvent e) { public void onArrowSuccessfulHit(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Arrow && e.getEntity() instanceof LivingEntity && SlimefunPlugin.getUtilities().arrows.containsKey(e.getDamager().getUniqueId())) { if (e.getDamager() instanceof Arrow && e.getEntity() instanceof LivingEntity) {
for (ItemHandler handler : SlimefunItem.getHandlers(BowShootHandler.class)) { SlimefunBow bow = bows.get(e.getDamager().getUniqueId());
if (((BowShootHandler) handler).onHit(e, (LivingEntity) e.getEntity())) {
break;
}
}
SlimefunPlugin.getUtilities().arrows.remove(e.getDamager().getUniqueId()); if (bow != null) {
bow.callItemHandler(BowShootHandler.class, handler -> handler.onHit(e, (LivingEntity) e.getEntity()));
}
bows.remove(e.getDamager().getUniqueId());
} }
} }

View File

@ -9,7 +9,6 @@ import org.bukkit.entity.IronGolem;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event.Result; import org.bukkit.event.Event.Result;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerDropItemEvent;
@ -122,7 +121,8 @@ public class SlimefunItemListener implements Listener {
} }
} }
@EventHandler(priority = EventPriority.NORMAL) @Deprecated
@EventHandler
public void onRightClick(ItemUseEvent e) { public void onRightClick(ItemUseEvent e) {
if (e.getParentEvent() != null && e.getParentEvent().getHand() != EquipmentSlot.HAND) { if (e.getParentEvent() != null && e.getParentEvent().getHand() != EquipmentSlot.HAND) {
return; return;

View File

@ -27,7 +27,6 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.gps.GPSTransmitter;
import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.Slimefun;
public class GPSNetwork { public class GPSNetwork {
@ -196,7 +195,7 @@ public class GPSNetwork {
return map; return map;
} }
public void addWaypoint(Player p, final Location l) { public void addWaypoint(Player p, Location l) {
if ((getWaypoints(p.getUniqueId()).size() + 2) > inventory.length) { if ((getWaypoints(p.getUniqueId()).size() + 2) > inventory.length) {
SlimefunPlugin.getLocal().sendMessage(p, "gps.waypoint.max", true); SlimefunPlugin.getLocal().sendMessage(p, "gps.waypoint.max", true);
return; return;
@ -231,7 +230,7 @@ public class GPSNetwork {
return transmitters.getOrDefault(uuid, new HashSet<>()); return transmitters.getOrDefault(uuid, new HashSet<>());
} }
public void openTeleporterGUI(Player p, UUID uuid, Block b, final int complexity) { public void openTeleporterGUI(Player p, UUID uuid, Block b, int complexity) {
if (SlimefunPlugin.getUtilities().teleporterUsers.contains(p.getUniqueId())) { if (SlimefunPlugin.getUtilities().teleporterUsers.contains(p.getUniqueId())) {
return; return;
} }
@ -252,14 +251,14 @@ public class GPSNetwork {
Location source = new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + 2D, b.getZ() + 0.5D); Location source = new Location(b.getWorld(), b.getX() + 0.5D, b.getY() + 2D, b.getZ() + 0.5D);
int index = 0; int index = 0;
for (Map.Entry<String, Location> entry : Slimefun.getGPSNetwork().getWaypoints(uuid).entrySet()) { for (Map.Entry<String, Location> entry : SlimefunPlugin.getGPSNetwork().getWaypoints(uuid).entrySet()) {
if (index >= teleporterInventory.length) break; if (index >= teleporterInventory.length) break;
int slot = teleporterInventory[index]; int slot = teleporterInventory[index];
Location l = entry.getValue(); Location l = entry.getValue();
ItemStack globe = getIcon(entry); ItemStack globe = getIcon(entry);
menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "&8\u21E8 &7Estimated Teleportation Time: &r" + (50 / TeleportationSequence.getSpeed(Slimefun.getGPSNetwork().getNetworkComplexity(uuid), source, l)) + "s", "", "&8\u21E8 &cClick to select")); menu.addItem(slot, new CustomItem(globe, entry.getKey(), "&8\u21E8 &7World: &r" + l.getWorld().getName(), "&8\u21E8 &7X: &r" + l.getX(), "&8\u21E8 &7Y: &r" + l.getY(), "&8\u21E8 &7Z: &r" + l.getZ(), "&8\u21E8 &7Estimated Teleportation Time: &r" + (50 / TeleportationSequence.getSpeed(SlimefunPlugin.getGPSNetwork().getNetworkComplexity(uuid), source, l)) + "s", "", "&8\u21E8 &cClick to select"));
menu.addMenuClickHandler(slot, (pl, slotn, item, action) -> { menu.addMenuClickHandler(slot, (pl, slotn, item, action) -> {
pl.closeInventory(); pl.closeInventory();
TeleportationSequence.start(pl.getUniqueId(), complexity, source, l, false); TeleportationSequence.start(pl.getUniqueId(), complexity, source, l, false);

View File

@ -4,12 +4,21 @@ import org.bukkit.inventory.ItemStack;
import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.Categories;
import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
public class SlimefunBow extends SlimefunItem { public abstract class SlimefunBow extends SlimefunItem {
public SlimefunBow(SlimefunItemStack item, ItemStack[] recipe) { public SlimefunBow(SlimefunItemStack item, ItemStack[] recipe) {
super(Categories.WEAPONS, item, RecipeType.MAGIC_WORKBENCH, recipe); super(Categories.WEAPONS, item, RecipeType.MAGIC_WORKBENCH, recipe);
} }
@Override
public void preRegister() {
super.preRegister();
addItemHandler(onShoot());
}
public abstract BowShootHandler onShoot();
} }

View File

@ -0,0 +1,30 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items;
import org.bukkit.Sound;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
public class ExplosiveBow extends SlimefunBow {
public ExplosiveBow(SlimefunItemStack item, ItemStack[] recipe) {
super(item, recipe);
}
@Override
public BowShootHandler onShoot() {
return (e, n) -> {
Vector vector = n.getVelocity();
vector.setY(0.6);
n.setVelocity(vector);
n.getWorld().createExplosion(n.getLocation(), 0F);
n.getWorld().playSound(n.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 1F, 1F);
};
}
}

View File

@ -71,7 +71,7 @@ public class GrapplingHook extends SimpleSlimefunItem<ItemUseHandler> {
// To fix issue #253 // To fix issue #253
Slimefun.runSync(() -> { Slimefun.runSync(() -> {
if (utilities.jumpState.containsKey(uuid)) { if (utilities.jumpState.containsKey(uuid)) {
utilities.arrows.remove(uuid); SlimefunPlugin.getBowListener().getBows().remove(uuid);
for (Entity n : utilities.remove.get(uuid)) { for (Entity n : utilities.remove.get(uuid)) {
if (n.isValid()) n.remove(); if (n.isValid()) n.remove();

View File

@ -0,0 +1,31 @@
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items;
import org.bukkit.Effect;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
public class IcyBow extends SlimefunBow {
public IcyBow(SlimefunItemStack item, ItemStack[] recipe) {
super(item, recipe);
}
@Override
public BowShootHandler onShoot() {
return (e, n) -> {
n.getWorld().playEffect(n.getLocation(), Effect.STEP_SOUND, Material.ICE);
n.getWorld().playEffect(n.getEyeLocation(), Effect.STEP_SOUND, Material.ICE);
n.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 20 * 2, 10));
n.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 20 * 2, -10));
};
}
}

View File

@ -17,7 +17,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason;
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.Slimefun;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
@ -35,7 +34,7 @@ public abstract class GPSTransmitter extends SimpleSlimefunItem<BlockTicker> {
@Override @Override
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); SlimefunPlugin.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
return true; return true;
} }
}); });

View File

@ -6,7 +6,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
@FunctionalInterface @FunctionalInterface
public interface BowShootHandler extends ItemHandler { public interface BowShootHandler extends ItemHandler {
boolean onHit(EntityDamageByEntityEvent e, LivingEntity n); void onHit(EntityDamageByEntityEvent e, LivingEntity n);
@Override @Override
default Class<? extends ItemHandler> getIdentifier() { default Class<? extends ItemHandler> getIdentifier() {

View File

@ -18,14 +18,11 @@ import org.bukkit.block.BlockFace;
import org.bukkit.block.Chest; import org.bukkit.block.Chest;
import org.bukkit.block.CreatureSpawner; import org.bukkit.block.CreatureSpawner;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.Vector;
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils; import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
@ -50,7 +47,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingAlloy;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ReplacingItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunArmorPiece; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunArmorPiece;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBackpack;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunBow;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundBackpack;
@ -67,6 +63,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoOutputNode;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.Bandage; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.Bandage;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.DietCookie; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.DietCookie;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.EnderBackpack; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.EnderBackpack;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.ExplosiveBow;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.ExplosivePickaxe; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.ExplosivePickaxe;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.ExplosiveShovel; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.ExplosiveShovel;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.FortuneCookie; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.FortuneCookie;
@ -74,6 +71,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.GoldPan;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.GrapplingHook; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.GrapplingHook;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.HerculesPickaxe; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.HerculesPickaxe;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.HunterTalisman; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.HunterTalisman;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.IcyBow;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.InfernalBonemeal; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.InfernalBonemeal;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.KnowledgeFlask; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.KnowledgeFlask;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.KnowledgeTome; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.KnowledgeTome;
@ -169,7 +167,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.PressureChambe
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Smeltery; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Smeltery;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.TableSaw; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.TableSaw;
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler;
import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler;
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler;
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;
@ -1397,40 +1394,13 @@ public final class SlimefunSetup {
new ItemStack[] {null, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGICAL_BOOK_COVER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, null}) new ItemStack[] {null, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGICAL_BOOK_COVER, SlimefunItems.ENDER_LUMP_3, SlimefunItems.MAGIC_EYE_OF_ENDER, SlimefunItems.ENDER_LUMP_3, null})
.register(true); .register(true);
new SlimefunBow((SlimefunItemStack) SlimefunItems.EXPLOSIVE_BOW, new ExplosiveBow((SlimefunItemStack) SlimefunItems.EXPLOSIVE_BOW,
new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.GUNPOWDER), SlimefunItems.STAFF_FIRE, null, SlimefunItems.SULFATE, null, new ItemStack(Material.STICK), new ItemStack(Material.GUNPOWDER)}) new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.GUNPOWDER), SlimefunItems.STAFF_FIRE, null, SlimefunItems.SULFATE, null, new ItemStack(Material.STICK), new ItemStack(Material.GUNPOWDER)})
.register(true, new BowShootHandler() { .register(true);
@Override new IcyBow((SlimefunItemStack) SlimefunItems.ICY_BOW,
public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) {
if (SlimefunManager.isItemSimilar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.EXPLOSIVE_BOW, true)) {
Vector vector = n.getVelocity();
vector.setY(0.6);
n.setVelocity(vector);
n.getWorld().createExplosion(n.getLocation(), 0F);
n.getWorld().playSound(n.getLocation(), Sound.ENTITY_GENERIC_EXPLODE, 1F, 1F);
return true;
}
else return false;
}
});
new SlimefunBow((SlimefunItemStack) SlimefunItems.ICY_BOW,
new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.ICE), SlimefunItems.STAFF_WATER, null, new ItemStack(Material.PACKED_ICE), null, new ItemStack(Material.STICK), new ItemStack(Material.ICE)}) new ItemStack[] {null, new ItemStack(Material.STICK), new ItemStack(Material.ICE), SlimefunItems.STAFF_WATER, null, new ItemStack(Material.PACKED_ICE), null, new ItemStack(Material.STICK), new ItemStack(Material.ICE)})
.register(true, new BowShootHandler() { .register(true);
@Override
public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) {
if (SlimefunManager.isItemSimilar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.ICY_BOW, true)) {
n.getWorld().playEffect(n.getLocation(), Effect.STEP_SOUND, Material.ICE);
n.getWorld().playEffect(n.getEyeLocation(), Effect.STEP_SOUND, Material.ICE);
n.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 20 * 2, 10));
n.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 20 * 2, -10));
return true;
}
else return false;
}
});
new KnowledgeTome(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.TOME_OF_KNOWLEDGE_SHARING, RecipeType.MAGIC_WORKBENCH, new KnowledgeTome(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.TOME_OF_KNOWLEDGE_SHARING, RecipeType.MAGIC_WORKBENCH,
new ItemStack[] {null, new ItemStack(Material.FEATHER), null, new ItemStack(Material.INK_SAC), SlimefunItems.MAGICAL_BOOK_COVER, new ItemStack(Material.GLASS_BOTTLE), null, new ItemStack(Material.WRITABLE_BOOK), null}) new ItemStack[] {null, new ItemStack(Material.FEATHER), null, new ItemStack(Material.INK_SAC), SlimefunItems.MAGICAL_BOOK_COVER, new ItemStack(Material.GLASS_BOTTLE), null, new ItemStack(Material.WRITABLE_BOOK), null})

View File

@ -111,46 +111,15 @@ public final class SlimefunPlugin extends JavaPlugin {
private AncientAltarListener ancientAltarListener; private AncientAltarListener ancientAltarListener;
private BackpackListener backpackListener; private BackpackListener backpackListener;
private SlimefunBowListener bowListener;
@Override @Override
public void onEnable() { public void onEnable() {
if (getServer().getPluginManager().isPluginEnabled("CS-CoreLib")) { if (getServer().getPluginManager().isPluginEnabled("CS-CoreLib")) {
String currentVersion = ReflectionUtils.getVersion(); if (isVersionUnsupported()) {
getServer().getPluginManager().disablePlugin(this);
if (currentVersion.startsWith("v")) { return;
boolean compatibleVersion = false;
StringBuilder versions = new StringBuilder();
int i = 0;
for (String version : supported) {
if (currentVersion.startsWith(version)) {
compatibleVersion = true;
}
String s = version.substring(1).replaceFirst("_", ".").replace("_", ".X");
if (i == 0) versions.append(s);
else if (i == supported.length - 1) versions.append(" or ").append(s);
else versions.append(", ").append(s);
i++;
}
// Looks like you are using an unsupported Minecraft Version
if (!compatibleVersion) {
getLogger().log(Level.SEVERE, "### Slimefun was not installed correctly!");
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### You are using the wrong Version of Minecraft!");
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### You are using Minecraft " + ReflectionUtils.getVersion());
getLogger().log(Level.SEVERE, "### but Slimefun v" + getDescription().getVersion() + " requires you to be using");
getLogger().log(Level.SEVERE, "### Minecraft {0}", versions);
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### Please use an older Version of Slimefun and disable auto-updating");
getLogger().log(Level.SEVERE, "### or consider updating your Server Software.");
getServer().getPluginManager().disablePlugin(this);
return;
}
} }
instance = this; instance = this;
@ -197,7 +166,7 @@ public final class SlimefunPlugin extends JavaPlugin {
try { try {
SlimefunSetup.setupItems(); SlimefunSetup.setupItems();
} catch (Exception x) { } catch (Exception x) {
getLogger().log(Level.SEVERE, "An Error occured while initializing SlimefunItems for Slimefun " + Slimefun.getVersion(), x); getLogger().log(Level.SEVERE, "An Error occured while initializing SlimefunItems for Slimefun " + getVersion(), x);
} }
getLogger().log(Level.INFO, "Loading Researches..."); getLogger().log(Level.INFO, "Loading Researches...");
@ -229,7 +198,6 @@ public final class SlimefunPlugin extends JavaPlugin {
new GearListener(this); new GearListener(this);
new AutonomousToolsListener(this); new AutonomousToolsListener(this);
new DamageListener(this); new DamageListener(this);
new SlimefunBowListener(this);
new BlockListener(this); new BlockListener(this);
new EnhancedFurnaceListener(this); new EnhancedFurnaceListener(this);
new TeleporterListener(this); new TeleporterListener(this);
@ -241,6 +209,7 @@ public final class SlimefunPlugin extends JavaPlugin {
new DebugFishListener(this); new DebugFishListener(this);
new VanillaMachinesListener(this); new VanillaMachinesListener(this);
bowListener = new SlimefunBowListener(this);
ancientAltarListener = new AncientAltarListener(); ancientAltarListener = new AncientAltarListener();
// Toggleable Listeners for performance // Toggleable Listeners for performance
@ -299,7 +268,7 @@ public final class SlimefunPlugin extends JavaPlugin {
ticker.run(); ticker.run();
} }
catch(Exception x) { catch(Exception x) {
getLogger().log(Level.SEVERE, "An Exception was caught while ticking the Block Tickers Task for Slimefun v" + Slimefun.getVersion(), x); getLogger().log(Level.SEVERE, "An Exception was caught while ticking the Block Tickers Task for Slimefun v" + getVersion(), x);
ticker.abortTick(); ticker.abortTick();
} }
}, 100L, config.getInt("URID.custom-ticker-delay")); }, 100L, config.getInt("URID.custom-ticker-delay"));
@ -331,6 +300,46 @@ public final class SlimefunPlugin extends JavaPlugin {
} }
} }
private boolean isVersionUnsupported() {
String currentVersion = ReflectionUtils.getVersion();
if (currentVersion.startsWith("v")) {
boolean compatibleVersion = false;
StringBuilder versions = new StringBuilder();
int i = 0;
for (String version : supported) {
if (currentVersion.startsWith(version)) {
compatibleVersion = true;
}
String s = version.substring(1).replaceFirst("_", ".").replace("_", ".X");
if (i == 0) versions.append(s);
else if (i == supported.length - 1) versions.append(" or ").append(s);
else versions.append(", ").append(s);
i++;
}
// Looks like you are using an unsupported Minecraft Version
if (!compatibleVersion) {
getLogger().log(Level.SEVERE, "### Slimefun was not installed correctly!");
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### You are using the wrong Version of Minecraft!");
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### You are using Minecraft " + ReflectionUtils.getVersion());
getLogger().log(Level.SEVERE, "### but Slimefun v" + getDescription().getVersion() + " requires you to be using");
getLogger().log(Level.SEVERE, "### Minecraft {0}", versions);
getLogger().log(Level.SEVERE, "###");
getLogger().log(Level.SEVERE, "### Please use an older Version of Slimefun and disable auto-updating");
getLogger().log(Level.SEVERE, "### or consider updating your Server Software.");
return true;
}
}
return false;
}
@Override @Override
public void onDisable() { public void onDisable() {
// CS-CoreLib wasn't loaded, just disabling // CS-CoreLib wasn't loaded, just disabling
@ -359,7 +368,7 @@ public final class SlimefunPlugin extends JavaPlugin {
getLogger().log(Level.SEVERE, "Could not save Slimefun Blocks for World \"" + world.getName() + "\""); getLogger().log(Level.SEVERE, "Could not save Slimefun Blocks for World \"" + world.getName() + "\"");
} }
} catch (Exception x) { } catch (Exception x) {
getLogger().log(Level.SEVERE, "An Error occured while saving Slimefun-Blocks in World '" + world.getName() + "' for Slimefun " + Slimefun.getVersion(), x); getLogger().log(Level.SEVERE, "An Error occured while saving Slimefun-Blocks in World '" + world.getName() + "' for Slimefun " + getVersion(), x);
} }
} }
@ -475,4 +484,8 @@ public final class SlimefunPlugin extends JavaPlugin {
return instance.backpackListener; return instance.backpackListener;
} }
public static SlimefunBowListener getBowListener() {
return instance.bowListener;
}
} }

View File

@ -487,9 +487,10 @@ public class BlockStorage {
if (destroy) { if (destroy) {
if (storage.hasInventory(l)) storage.clearInventory(l); if (storage.hasInventory(l)) storage.clearInventory(l);
if (storage.hasUniversalInventory(l)) { UniversalBlockMenu universalInventory = getUniversalInventory(l);
storage.getUniversalInventory(l).close(); if (universalInventory != null) {
storage.getUniversalInventory(l).save(); universalInventory.close();
universalInventory.save();
} }
String chunkString = locationToChunkString(l); String chunkString = locationToChunkString(l);
@ -660,7 +661,7 @@ public class BlockStorage {
if (menu != null) { if (menu != null) {
for (HumanEntity human : new ArrayList<>(menu.toInventory().getViewers())) { for (HumanEntity human : new ArrayList<>(menu.toInventory().getViewers())) {
// Prevents "java.lang.IllegalStateException: Asynchronous entity add!" when closing inventory while holding an item // Prevents "java.lang.IllegalStateException: Asynchronous entity add!" when closing inventory while holding an item
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, human::closeInventory); Slimefun.runSync(human::closeInventory);
} }
inventories.get(l).delete(l); inventories.get(l).delete(l);

View File

@ -15,6 +15,8 @@ import java.util.logging.Level;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
public final class SlimefunBackup { public final class SlimefunBackup {
private SlimefunBackup() {} private SlimefunBackup() {}
@ -118,7 +120,7 @@ public final class SlimefunBackup {
Slimefun.getLogger().log(Level.WARNING, "Could not create backup-file: " + file.getName()); Slimefun.getLogger().log(Level.WARNING, "Could not create backup-file: " + file.getName());
} }
} catch(IOException x) { } catch(IOException x) {
Slimefun.getLogger().log(Level.SEVERE, "An Error occured while creating a World-Backup for Slimefun " + Slimefun.getVersion(), x); Slimefun.getLogger().log(Level.SEVERE, "An Error occured while creating a World-Backup for Slimefun " + SlimefunPlugin.getVersion(), x);
} }
} }
} }

View File

@ -24,9 +24,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors; import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
import io.github.thebusybiscuit.cscorelib2.chat.json.ChatComponent;
import io.github.thebusybiscuit.cscorelib2.chat.json.HoverEvent;
import io.github.thebusybiscuit.slimefun4.api.ErrorReport; import io.github.thebusybiscuit.slimefun4.api.ErrorReport;
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage;
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.HoverAction;
import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
@ -215,29 +215,31 @@ public class TickerTask implements Runnable {
.collect(Collectors.toList()); .collect(Collectors.toList());
if (sender instanceof Player) { if (sender instanceof Player) {
TellRawMessage tellraw = new TellRawMessage(); ChatComponent component = new ChatComponent(ChatColors.color(" &7&oHover for more Info"));
tellraw.addText(" &7&oHover for more Info"); StringBuilder builder = new StringBuilder();
StringBuilder hover = new StringBuilder();
int hidden = 0; int hidden = 0;
for (Map.Entry<String, Long> entry : timings) { for (Map.Entry<String, Long> entry : timings) {
int count = machineCount.get(entry.getKey()); int count = machineCount.get(entry.getKey());
if (entry.getValue() > 500_000)
hover.append("\n&c").append(entry.getKey()).append(" - ") if (entry.getValue() > 500_000) {
.append(count).append("x &7(").append(toMillis(entry.getValue())).append(", ") builder.append("\n&c")
.append(toMillis(entry.getValue() / count)).append(" avg/machine)"); .append(entry.getKey())
else .append(" - ")
hidden++; .append(count)
.append("x &7(")
.append(toMillis(entry.getValue()))
.append(", ")
.append(toMillis(entry.getValue() / count))
.append(" avg/machine)");
}
else hidden++;
} }
hover.append("\n\n&c+ &4").append(hidden).append(" Hidden"); builder.append("\n\n&c+ &4").append(hidden).append(" Hidden");
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString()); component.setHoverEvent(new HoverEvent(builder.toString()));
try { component.sendMessage((Player) sender);
tellraw.send((Player) sender);
} catch (Exception x) {
Slimefun.getLogger().log(Level.SEVERE, "An Error occurred while sending a Timings Summary for Slimefun " + Slimefun.getVersion(), x);
}
} }
else { else {
int hidden = 0; int hidden = 0;
@ -261,33 +263,33 @@ public class TickerTask implements Runnable {
.collect(Collectors.toList()); .collect(Collectors.toList());
if (sender instanceof Player) { if (sender instanceof Player) {
TellRawMessage tellraw = new TellRawMessage(); ChatComponent component = new ChatComponent(ChatColors.color(" &7&oHover for more Info"));
tellraw.addText(" &7&oHover for more Info"); StringBuilder builder = new StringBuilder();
StringBuilder hover = new StringBuilder();
int hidden = 0; int hidden = 0;
for (Map.Entry<String, Long> entry : timings) { for (Map.Entry<String, Long> entry : timings) {
if (!chunksSkipped.contains(entry.getKey())) { if (!chunksSkipped.contains(entry.getKey())) {
if (entry.getValue() > 0) if (entry.getValue() > 0) {
hover.append("\n&c").append(formatChunk(entry.getKey())).append(" - ") builder.append("\n&c")
.append(chunkItemCount.getOrDefault(entry.getKey(), 0)) .append(formatChunk(entry.getKey()))
.append("x &7(").append(toMillis(entry.getValue())).append(")"); .append(" - ")
else .append(chunkItemCount.getOrDefault(entry.getKey(), 0))
hidden++; .append("x &7(")
.append(toMillis(entry.getValue()))
.append(")");
}
else hidden++;
} }
} }
hover.append("\n\n&c+ &4").append(hidden).append(" Hidden"); builder.append("\n\n&c+ &4").append(hidden).append(" Hidden");
tellraw.addHoverEvent(HoverAction.SHOW_TEXT, hover.toString()); component.setHoverEvent(new HoverEvent(builder.toString()));
try { component.sendMessage((Player) sender);
tellraw.send((Player) sender);
} catch (Exception x) {
Slimefun.getLogger().log(Level.SEVERE, "An Error occurred while sending a Timings Summary for Slimefun " + Slimefun.getVersion(), x);
}
} }
else { else {
int hidden = 0; int hidden = 0;
for (Map.Entry<String, Long> entry : timings) { for (Map.Entry<String, Long> entry : timings) {
if (!chunksSkipped.contains(entry.getKey())) { if (!chunksSkipped.contains(entry.getKey())) {
if (entry.getValue() > 0) sender.sendMessage(" " + formatChunk(entry.getKey()) + " - " if (entry.getValue() > 0) sender.sendMessage(" " + formatChunk(entry.getKey()) + " - "
@ -295,7 +297,8 @@ public class TickerTask implements Runnable {
else hidden++; else hidden++;
} }
} }
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c+ &4" + hidden + " Hidden"));
sender.sendMessage(ChatColors.color("&c+ &4" + hidden + " Hidden"));
} }
} }

View File

@ -61,6 +61,9 @@ public class CargoNet extends Network {
private final Set<Location> imports = new HashSet<>(); private final Set<Location> imports = new HashSet<>();
private final Set<Location> exports = new HashSet<>(); private final Set<Location> exports = new HashSet<>();
private final Map<Location, Integer> roundRobin = new HashMap<>();
private final Set<ItemRequest> itemRequests = new HashSet<>();
public static CargoNet getNetworkFromLocation(Location l) { public static CargoNet getNetworkFromLocation(Location l) {
return SlimefunPlugin.getNetworkManager().getNetworkFromLocation(l, CargoNet.class); return SlimefunPlugin.getNetworkManager().getNetworkFromLocation(l, CargoNet.class);
} }
@ -219,7 +222,7 @@ public class CargoNet extends Network {
} }
if (menu.getItemInSlot(17) != null) { if (menu.getItemInSlot(17) != null) {
SlimefunPlugin.getUtilities().itemRequests.add(new ItemRequest(bus, 17, menu.getItemInSlot(17), ItemTransportFlow.INSERT)); itemRequests.add(new ItemRequest(bus, 17, menu.getItemInSlot(17), ItemTransportFlow.INSERT));
} }
} }
@ -246,7 +249,7 @@ public class CargoNet extends Network {
if (index > (items.size() - 1)) index = 0; if (index > (items.size() - 1)) index = 0;
BlockStorage.addBlockInfo(bus, "index", String.valueOf(index)); BlockStorage.addBlockInfo(bus, "index", String.valueOf(index));
SlimefunPlugin.getUtilities().itemRequests.add(new ItemRequest(bus, 17, items.get(index), ItemTransportFlow.WITHDRAW)); itemRequests.add(new ItemRequest(bus, 17, items.get(index), ItemTransportFlow.WITHDRAW));
} }
} }
} }
@ -256,11 +259,11 @@ public class CargoNet extends Network {
ItemStack sendingItem = menu.getItemInSlot(TERMINAL_OUT_SLOT); ItemStack sendingItem = menu.getItemInSlot(TERMINAL_OUT_SLOT);
if (sendingItem != null) { if (sendingItem != null) {
SlimefunPlugin.getUtilities().itemRequests.add(new ItemRequest(terminal, TERMINAL_OUT_SLOT, sendingItem, ItemTransportFlow.INSERT)); itemRequests.add(new ItemRequest(terminal, TERMINAL_OUT_SLOT, sendingItem, ItemTransportFlow.INSERT));
} }
} }
Iterator<ItemRequest> iterator = SlimefunPlugin.getUtilities().itemRequests.iterator(); Iterator<ItemRequest> iterator = itemRequests.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
ItemRequest request = iterator.next(); ItemRequest request = iterator.next();
@ -367,7 +370,7 @@ public class CargoNet extends Network {
List<Location> outputlist = new ArrayList<>(outputs); List<Location> outputlist = new ArrayList<>(outputs);
if (roundrobin) { if (roundrobin) {
int cIndex = SlimefunPlugin.getUtilities().roundRobin.getOrDefault(input, 0); int cIndex = roundRobin.getOrDefault(input, 0);
if (cIndex < outputlist.size()) { if (cIndex < outputlist.size()) {
for (int i = 0; i < cIndex; i++) { for (int i = 0; i < cIndex; i++) {
@ -379,7 +382,7 @@ public class CargoNet extends Network {
} }
else cIndex = 1; else cIndex = 1;
SlimefunPlugin.getUtilities().roundRobin.put(input, cIndex); roundRobin.put(input, cIndex);
} }
for (Location out : outputlist) { for (Location out : outputlist) {
@ -418,7 +421,7 @@ public class CargoNet extends Network {
UniversalBlockMenu menu = BlockStorage.getUniversalInventory(target); UniversalBlockMenu menu = BlockStorage.getUniversalInventory(target);
if (menu != null) { if (menu != null) {
for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) { for (int slot : menu.getPreset().getSlotsAccessedByItemTransport((DirtyChestMenu) menu, ItemTransportFlow.WITHDRAW, null)) {
ItemStack is = menu.getItemInSlot(slot); ItemStack is = menu.getItemInSlot(slot);
filter(is, items, l); filter(is, items, l);
} }
@ -502,7 +505,7 @@ public class CargoNet extends Network {
menu.replaceExistingItem(slot, stack); menu.replaceExistingItem(slot, stack);
menu.addMenuClickHandler(slot, (p, sl, is, action) -> { menu.addMenuClickHandler(slot, (p, sl, is, action) -> {
int amount = item.getAmount() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize() : item.getAmount(); int amount = item.getAmount() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize() : item.getAmount();
SlimefunPlugin.getUtilities().itemRequests.add(new ItemRequest(l, 44, new CustomItem(item.getItem(), action.isRightClicked() ? amount : 1), ItemTransportFlow.WITHDRAW)); itemRequests.add(new ItemRequest(l, 44, new CustomItem(item.getItem(), action.isRightClicked() ? amount : 1), ItemTransportFlow.WITHDRAW));
return false; return false;
}); });
@ -537,7 +540,7 @@ public class CargoNet extends Network {
return freq; return freq;
} }
private void handleWithdraw(BlockMenu menu, List<StoredItem> items, Location l) { private void handleWithdraw(DirtyChestMenu menu, List<StoredItem> items, Location l) {
for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) { for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
filter(menu.getItemInSlot(slot), items, l); filter(menu.getItemInSlot(slot), items, l);
} }

View File

@ -27,7 +27,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler;
import me.mrCookieSlime.Slimefun.Setup.PostSlimefunLoadingHandler; import me.mrCookieSlime.Slimefun.Setup.PostSlimefunLoadingHandler;
import me.mrCookieSlime.Slimefun.ancient_altar.AltarRecipe;
import me.mrCookieSlime.Slimefun.api.BlockInfoConfig; import me.mrCookieSlime.Slimefun.api.BlockInfoConfig;
import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.GuideHandler; import me.mrCookieSlime.Slimefun.api.GuideHandler;
@ -35,7 +34,6 @@ import me.mrCookieSlime.Slimefun.api.PlayerProfile;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
import me.mrCookieSlime.Slimefun.api.item_transport.CargoTransportEvent; import me.mrCookieSlime.Slimefun.api.item_transport.CargoTransportEvent;
import me.mrCookieSlime.Slimefun.api.item_transport.ItemRequest;
/** /**
* Really dirty way to store stuff, but you can dump * Really dirty way to store stuff, but you can dump
@ -79,9 +77,6 @@ public final class Utilities {
public final Set<String> energyNetStorage = new HashSet<>(); public final Set<String> energyNetStorage = new HashSet<>();
public final Set<String> energyNetOutput = new HashSet<>(); public final Set<String> energyNetOutput = new HashSet<>();
public final Map<Location, Integer> roundRobin = new HashMap<>();
public final Set<ItemRequest> itemRequests = new HashSet<>();
public final Map<String, BlockMenuPreset> blockMenuPresets = new HashMap<>(); public final Map<String, BlockMenuPreset> blockMenuPresets = new HashMap<>();
public final Map<String, ItemStack> automatedCraftingChamberRecipes = new HashMap<>(); public final Map<String, ItemStack> automatedCraftingChamberRecipes = new HashMap<>();
@ -100,7 +95,6 @@ public final class Utilities {
public final Map<EntityType, List<ItemStack>> drops = new EnumMap<>(EntityType.class); public final Map<EntityType, List<ItemStack>> drops = new EnumMap<>(EntityType.class);
public final Map<UUID, ItemStack> arrows = new HashMap<>();
public final Map<UUID, Boolean> jumpState = new HashMap<>(); public final Map<UUID, Boolean> jumpState = new HashMap<>();
public final Set<UUID> damage = new HashSet<>(); public final Set<UUID> damage = new HashSet<>();
public final Map<UUID, Entity[]> remove = new HashMap<>(); public final Map<UUID, Entity[]> remove = new HashMap<>();