diff --git a/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java b/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java index 9ca69123c..35f0c8b6a 100644 --- a/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java +++ b/src/me/mrCookieSlime/Slimefun/GPS/TeleportationSequence.java @@ -44,9 +44,7 @@ public final class TeleportationSequence { } private static boolean isValid(Player p, Location source) { - if (p == null) return false; - if (p.getLocation().distance(source) > 1.4) return false; - return true; + return p != null && p.getLocation().distanceSquared(source) < 2.0; } private static void cancel(UUID uuid, Player p) { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java new file mode 100644 index 000000000..80c611478 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/ItemState.java @@ -0,0 +1,23 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem; + +/** + * Defines whether a SlimefunItem is enabled, disabled or fall-back to its vanilla behavior. + * + * @since 4.1.10 + */ +public enum ItemState { + /** + * This SlimefunItem is enabled. + */ + ENABLED, + + /** + * This SlimefunItem is disabled and is not a {@link VanillaItem}. + */ + DISABLED, + + /** + * This SlimefunItem is fall-back to its vanilla behavior, because it is disabled and is a {@link VanillaItem}. + */ + VANILLA +} \ No newline at end of file diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java index e829d129c..935350a1f 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunItem.java @@ -36,7 +36,7 @@ public class SlimefunItem { private String id; private String hash; - private State state; + private ItemState state; private ItemStack item; private Category category; private ItemStack[] recipe; @@ -58,28 +58,6 @@ public class SlimefunItem { private Object[] values = null; private String wiki = null; - /** - * Defines whether a SlimefunItem is enabled, disabled or fall-back to its vanilla behavior. - * - * @since 4.1.10 - */ - public static enum State { - /** - * This SlimefunItem is enabled. - */ - ENABLED, - - /** - * This SlimefunItem is disabled and is not a {@link VanillaItem}. - */ - DISABLED, - - /** - * This SlimefunItem is fall-back to its vanilla behavior, because it is disabled and is a {@link VanillaItem}. - */ - VANILLA - } - public SlimefunItem(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { this.item = item; this.category = category; @@ -149,7 +127,7 @@ public class SlimefunItem { @Deprecated public String getHash() { return hash; } - public State getState() { return state; } + public ItemState getState() { return state; } public ItemStack getItem() { return item; } public Category getCategory() { return category; } public ItemStack[] getRecipe() { return recipe; } @@ -193,7 +171,7 @@ public class SlimefunItem { public EnergyTicker getEnergyTicker() { return energyTicker; } public String[] listKeys() { return keys; } public Object[] listValues() { return values; } - public boolean isDisabled() { return state != State.ENABLED; } + public boolean isDisabled() { return state != ItemState.ENABLED; } public void register() { register(false); @@ -229,14 +207,14 @@ public class SlimefunItem { } if (this.ticking && !SlimefunPlugin.getCfg().getBoolean("URID.enable-tickers")) { - this.state = State.DISABLED; + this.state = ItemState.DISABLED; return; } if (SlimefunPlugin.getItemCfg().getBoolean(id + ".enabled")) { if (!Category.list().contains(category)) category.register(); - this.state = State.ENABLED; + this.state = ItemState.ENABLED; this.replacing = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".can-be-used-in-workbenches"); this.hidden = SlimefunPlugin.getItemCfg().getBoolean(this.id + ".hide-in-guide"); @@ -260,8 +238,12 @@ public class SlimefunItem { } } else { - if (this instanceof VanillaItem) this.state = State.VANILLA; - else this.state = State.DISABLED; + if (this instanceof VanillaItem) { + this.state = ItemState.VANILLA; + } + else { + this.state = ItemState.DISABLED; + } } postRegister(); @@ -375,13 +357,13 @@ public class SlimefunItem { } } - public static State getState(ItemStack item) { + public static ItemState getState(ItemStack item) { for (SlimefunItem i: SlimefunPlugin.getUtilities().allItems) { if (i.isItem(item)) { return i.getState(); } } - return State.ENABLED; + return ItemState.ENABLED; } public static boolean isDisabled(ItemStack item) { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfTheSeeker.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfTheSeeker.java index 39db089c7..994bad7af 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfTheSeeker.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/PickaxeOfTheSeeker.java @@ -27,10 +27,8 @@ public class PickaxeOfTheSeeker extends SimpleSlimefunItem { ItemMeta sfItemMeta = sfItem.getItemMeta(); List sfItemLore = sfItemMeta.getLore(); - if (itemLore.size() < 6) { - // Index 1 and 3 in SlimefunItems.STAFF_STORM has lores with words and stuff so we check for them. - if (itemLore.get(1).equals(sfItemLore.get(1)) && itemLore.get(3).equals(sfItemLore.get(3))) { - if (p.getFoodLevel() >= 4 || p.getGameMode() == GameMode.CREATIVE) { - // Get a target block with max. 30 blocks of distance - Location loc = p.getTargetBlock(null, 30).getLocation(); - - if (loc.getWorld() != null && loc.getChunk().isLoaded()) { - if (loc.getWorld().getPVP() && SlimefunPlugin.getProtectionManager().hasPermission(p, loc, ProtectionModule.Action.PVP)) { - loc.getWorld().strikeLightning(loc); + // Index 1 and 3 in SlimefunItems.STAFF_STORM has lores with words and stuff so we check for them. + if (itemLore.size() < 6 && itemLore.get(1).equals(sfItemLore.get(1)) && itemLore.get(3).equals(sfItemLore.get(3))) { + if (p.getFoodLevel() >= 4 || p.getGameMode() == GameMode.CREATIVE) { + // Get a target block with max. 30 blocks of distance + Location loc = p.getTargetBlock(null, 30).getLocation(); + + if (loc.getWorld() != null && loc.getChunk().isLoaded()) { + if (loc.getWorld().getPVP() && SlimefunPlugin.getProtectionManager().hasPermission(p, loc, ProtectionModule.Action.PVP)) { + loc.getWorld().strikeLightning(loc); - if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) { - FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 4); - Bukkit.getPluginManager().callEvent(event); - p.setFoodLevel(event.getFoodLevel()); - } - - for (int i = MAX_USES; i > 0; i--) { - if (i == 1 && ChatColor.translateAlternateColorCodes('&', "&e1 Use &7left").equals(itemLore.get(4))) { - e.setCancelled(true); - p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1); - item.setAmount(0); - return true; - } - else if (ChatColor.translateAlternateColorCodes('&', "&e" + i + " Uses &7left").equals(itemLore.get(4))) { - itemLore.set(4, ChatColor.translateAlternateColorCodes('&', "&e" + (i - 1) + ' ' + (i > 2 ? "Uses": "Use") + " &7left")); - e.setCancelled(true); - - // Saving the changes to lore and item. - itemMeta.setLore(itemLore); - item.setItemMeta(itemMeta); - - return true; - } - } - - return false; - } - else { - Messages.local.sendTranslation(p, "messages.no-pvp", true); + if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) { + FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 4); + Bukkit.getPluginManager().callEvent(event); + p.setFoodLevel(event.getFoodLevel()); } + + for (int i = MAX_USES; i > 0; i--) { + if (i == 1 && ChatColor.translateAlternateColorCodes('&', "&e1 Use &7left").equals(itemLore.get(4))) { + e.setCancelled(true); + p.playSound(p.getLocation(), Sound.ENTITY_ITEM_BREAK, 1, 1); + item.setAmount(0); + return true; + } + else if (ChatColor.translateAlternateColorCodes('&', "&e" + i + " Uses &7left").equals(itemLore.get(4))) { + itemLore.set(4, ChatColor.translateAlternateColorCodes('&', "&e" + (i - 1) + ' ' + (i > 2 ? "Uses": "Use") + " &7left")); + e.setCancelled(true); + + // Saving the changes to lore and item. + itemMeta.setLore(itemLore); + item.setItemMeta(itemMeta); + + return true; + } + } + + return false; + } + else { + Messages.local.sendTranslation(p, "messages.no-pvp", true); } - } - else { - Messages.local.sendTranslation(p, "messages.hungry", true); } - return true; + } + else { + Messages.local.sendTranslation(p, "messages.hungry", true); } + return true; } } return false; diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java index dae0619fe..dc0d00cf7 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/SwordOfBeheading.java @@ -55,15 +55,13 @@ public class SwordOfBeheading extends SimpleSlimefunItem { e.getDrops().add(new ItemStack(Material.CREEPER_HEAD)); } } - else if (e.getEntity() instanceof Player) { - if (random.nextInt(100) < chancePlayer) { - ItemStack skull = new ItemStack(Material.PLAYER_HEAD); - ItemMeta meta = skull.getItemMeta(); - ((SkullMeta) meta).setOwningPlayer((Player) e.getEntity()); - skull.setItemMeta(meta); + else if (e.getEntity() instanceof Player && random.nextInt(100) < chancePlayer) { + ItemStack skull = new ItemStack(Material.PLAYER_HEAD); + ItemMeta meta = skull.getItemMeta(); + ((SkullMeta) meta).setOwningPlayer((Player) e.getEntity()); + skull.setItemMeta(meta); - e.getDrops().add(skull); - } + e.getDrops().add(skull); } return true; } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java index a58137ac9..cde1852e5 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ChargingBench.java @@ -44,8 +44,8 @@ public class ChargingBench extends AContainer { ChargableBlock.addCharge(b, -getEnergyConsumption()); float rest = ItemEnergy.addStoredEnergy(stack, getEnergyConsumption() / 2F); if (rest > 0F) { - if (fits(b, new ItemStack[] {stack})) { - pushItems(b, new ItemStack[] {stack}); + if (fits(b, stack)) { + pushItems(b, stack); BlockStorage.getInventory(b).replaceExistingItem(slot, null); } else { @@ -56,8 +56,8 @@ public class ChargingBench extends AContainer { BlockStorage.getInventory(b).replaceExistingItem(slot, stack); } } - else if (fits(b, new ItemStack[] {stack})) { - pushItems(b, new ItemStack[] {stack}); + else if (fits(b, stack)) { + pushItems(b, stack); BlockStorage.getInventory(b).replaceExistingItem(slot, null); } else { diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java index 906d9578c..8130eb048 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricFurnace.java @@ -39,5 +39,15 @@ public abstract class ElectricFurnace extends AContainer { public String getMachineIdentifier() { return "ELECTRIC_FURNACE"; } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.FLINT_AND_STEEL); + } + + @Override + public String getInventoryTitle() { + return "&bElectric Furnace"; + } } diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/GPSTransmitter.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/GPSTransmitter.java new file mode 100644 index 000000000..dc11e2107 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/GPSTransmitter.java @@ -0,0 +1,68 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; + +import java.util.UUID; + +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; +import me.mrCookieSlime.Slimefun.GPS.NetworkStatus; +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; +import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; +import me.mrCookieSlime.Slimefun.api.BlockStorage; +import me.mrCookieSlime.Slimefun.api.Slimefun; +import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; + +public abstract class GPSTransmitter extends SimpleSlimefunItem { + + public GPSTransmitter(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, id, recipeType, recipe); + + SlimefunItem.registerBlockHandler(getID(), new SlimefunBlockHandler() { + + @Override + public void onPlace(Player p, Block b, SlimefunItem item) { + BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); + } + + @Override + 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); + return true; + } + }); + } + + public abstract double getMultiplier(int y); + public abstract int getEnergyConsumption(); + + @Override + public BlockTicker getItemHandler() { + return new BlockTicker() { + + @Override + public void tick(Block b, SlimefunItem item, Config data) { + int charge = ChargableBlock.getCharge(b); + if (charge >= getEnergyConsumption()) { + Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE); + ChargableBlock.setCharge(b.getLocation(), charge - getEnergyConsumption()); + } + else { + Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); + } + } + + @Override + public boolean isSynchronized() { + return false; + } + }; + } + +} diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/BioGenerator.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/BioGenerator.java new file mode 100644 index 000000000..1011d6bfc --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/generators/BioGenerator.java @@ -0,0 +1,74 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators; + +import org.bukkit.Material; +import org.bukkit.Tag; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; + +public abstract class BioGenerator extends AGenerator { + + public BioGenerator(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, id, recipeType, recipe); + } + + @Override + public void registerDefaultRecipes() { + registerFuel(new MachineFuel(2, new ItemStack(Material.ROTTEN_FLESH))); + registerFuel(new MachineFuel(2, new ItemStack(Material.SPIDER_EYE))); + registerFuel(new MachineFuel(2, new ItemStack(Material.BONE))); + registerFuel(new MachineFuel(3, new ItemStack(Material.APPLE))); + registerFuel(new MachineFuel(3, new ItemStack(Material.MELON))); + registerFuel(new MachineFuel(27, new ItemStack(Material.MELON))); + registerFuel(new MachineFuel(3, new ItemStack(Material.PUMPKIN))); + registerFuel(new MachineFuel(3, new ItemStack(Material.PUMPKIN_SEEDS))); + registerFuel(new MachineFuel(3, new ItemStack(Material.MELON_SEEDS))); + registerFuel(new MachineFuel(3, new ItemStack(Material.WHEAT))); + registerFuel(new MachineFuel(3, new ItemStack(Material.WHEAT_SEEDS))); + registerFuel(new MachineFuel(3, new ItemStack(Material.CARROT))); + registerFuel(new MachineFuel(3, new ItemStack(Material.POTATO))); + registerFuel(new MachineFuel(3, new ItemStack(Material.SUGAR_CANE))); + registerFuel(new MachineFuel(3, new ItemStack(Material.NETHER_WART))); + registerFuel(new MachineFuel(2, new ItemStack(Material.RED_MUSHROOM))); + registerFuel(new MachineFuel(2, new ItemStack(Material.BROWN_MUSHROOM))); + registerFuel(new MachineFuel(2, new ItemStack(Material.VINE))); + registerFuel(new MachineFuel(2, new ItemStack(Material.CACTUS))); + registerFuel(new MachineFuel(2, new ItemStack(Material.LILY_PAD))); + registerFuel(new MachineFuel(8, new ItemStack(Material.CHORUS_FRUIT))); + registerFuel(new MachineFuel(1, new ItemStack(Material.BAMBOO))); + registerFuel(new MachineFuel(1, new ItemStack(Material.KELP))); + registerFuel(new MachineFuel(2, new ItemStack(Material.DRIED_KELP))); + registerFuel(new MachineFuel(20, new ItemStack(Material.DRIED_KELP_BLOCK))); + registerFuel(new MachineFuel(1, new ItemStack(Material.SEAGRASS))); + registerFuel(new MachineFuel(2, new ItemStack(Material.SEA_PICKLE))); + + // Leaves + for(Material m: Tag.LEAVES.getValues()) { + registerFuel(new MachineFuel(1, new ItemStack(m))); + } + + // Saplings + for (Material m: Tag.SAPLINGS.getValues()) { + registerFuel(new MachineFuel(1, new ItemStack(m))); + } + + // Small Flowers (formally just dandelions and poppies. + for (Material m: Tag.SMALL_FLOWERS.getValues()) { + registerFuel(new MachineFuel(1, new ItemStack(m))); + } + } + + @Override + public ItemStack getProgressBar() { + return new ItemStack(Material.GOLDEN_HOE); + } + + @Override + public String getInventoryTitle() { + return "&2Bio Reactor"; + } + +} diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java index 9b3c59acc..e33fe4f17 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/AutomatedPanningMachine.java @@ -21,6 +21,10 @@ import me.mrCookieSlime.Slimefun.api.Slimefun; public class AutomatedPanningMachine extends MultiBlockMachine { private Random random = new Random(); + + private int chanceSiftedOre; + private int chanceFlint; + private int chanceClay; public AutomatedPanningMachine() { super( @@ -37,18 +41,27 @@ public class AutomatedPanningMachine extends MultiBlockMachine { ); } + @Override + public void postRegister() { + super.postRegister(); + + chanceSiftedOre = (int) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"); + chanceClay = (int) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"); + chanceFlint = (int) Slimefun.getItemValue("GOLD_PAN", "chance.FLINT"); + } + @Override public void onInteract(Player p, Block b) { final ItemStack input = p.getInventory().getItemInMainHand(); ItemStack output = null; - if (random.nextInt(100) < (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE")) output = SlimefunItems.SIFTED_ORE; - else if (random.nextInt(100) < (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY")) output = new ItemStack(Material.CLAY_BALL); - else if (random.nextInt(100) < (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.FLINT")) output = new ItemStack(Material.FLINT); + if (random.nextInt(100) < chanceSiftedOre) output = SlimefunItems.SIFTED_ORE; + else if (random.nextInt(100) < chanceClay) output = new ItemStack(Material.CLAY_BALL); + else if (random.nextInt(100) < chanceFlint) output = new ItemStack(Material.FLINT); final ItemStack drop = output; - if (input != null && input.getType() == Material.GRAVEL) { + if (input != null && input.getType() == Material.GRAVEL && (!input.hasItemMeta() || (input.hasItemMeta() && !input.getItemMeta().hasDisplayName()))) { PlayerInventory.consumeItemInHand(p); for (int i = 1; i < 7; i++) { @@ -56,12 +69,17 @@ public class AutomatedPanningMachine extends MultiBlockMachine { Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> { b.getWorld().playEffect(b.getRelative(BlockFace.DOWN).getLocation(), Effect.STEP_SOUND, Material.GRAVEL); + if (j == 6) { if (drop != null) b.getWorld().dropItemNaturally(b.getLocation(), drop); p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F); } + }, i * 30L); + } + + return; } Messages.local.sendTranslation(p, "machines.wrong-item", true); diff --git a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java index 26fe4c136..388c59635 100644 --- a/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java +++ b/src/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/multiblocks/OreCrusher.java @@ -26,8 +26,8 @@ public class OreCrusher extends MultiBlockMachine { "ORE_CRUSHER", new ItemStack[] {null, null, null, null, new ItemStack(Material.NETHER_BRICK_FENCE), null, new ItemStack(Material.IRON_BARS), new CustomItem(Material.DISPENSER, "Dispenser (Facing up)"), new ItemStack(Material.IRON_BARS)}, new ItemStack[] { - new ItemStack(Material.IRON_ORE), new CustomItem(SlimefunItems.IRON_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), - new ItemStack(Material.GOLD_ORE), new CustomItem(SlimefunItems.GOLD_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), + new ItemStack(Material.IRON_ORE), new CustomItem(SlimefunItems.IRON_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), + new ItemStack(Material.GOLD_ORE), new CustomItem(SlimefunItems.GOLD_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1), new ItemStack(Material.NETHERRACK, 16), SlimefunItems.SULFATE, SlimefunItems.SIFTED_ORE, SlimefunItems.CRUSHED_ORE, SlimefunItems.CRUSHED_ORE, SlimefunItems.PULVERIZED_ORE, diff --git a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java index c07232c04..b0813c2a5 100644 --- a/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java +++ b/src/me/mrCookieSlime/Slimefun/Setup/SlimefunSetup.java @@ -15,7 +15,6 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Chest; @@ -25,7 +24,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; -import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; @@ -46,7 +44,6 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Player.PlayerInventory; import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.GPS.GPSNetwork; -import me.mrCookieSlime.Slimefun.GPS.NetworkStatus; import me.mrCookieSlime.Slimefun.Lists.Categories; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; @@ -73,7 +70,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AReactor; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.Teleporter; @@ -135,12 +131,14 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.FluidPum import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.FoodComposter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.FoodFabricator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.Freezer; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.GPSTransmitter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.HeatedPressureChamber; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.NetherDrill; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.OilPump; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.Refinery; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.WitherAssembler; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.XPCollector; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.BioGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.CoalGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.CombustionGenerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.generators.LavaGenerator; @@ -157,7 +155,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.PressureChambe import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Smeltery; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.TableSaw; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler; -import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler; @@ -361,7 +358,7 @@ public final class SlimefunSetup { new GoldPan(Categories.TOOLS, SlimefunItems.GOLD_PAN, "GOLD_PAN", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, null, new ItemStack(Material.STONE), new ItemStack(Material.BOWL), new ItemStack(Material.STONE), new ItemStack(Material.STONE), new ItemStack(Material.STONE), new ItemStack(Material.STONE)}, new ItemStack[] {new ItemStack(Material.GRAVEL), new ItemStack(Material.FLINT), new ItemStack(Material.GRAVEL), new ItemStack(Material.CLAY_BALL), new ItemStack(Material.GRAVEL), SlimefunItems.SIFTED_ORE}, - new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {47, 28, 15}) + new String[] {"chance.FLINT", "chance.CLAY", "chance.SIFTED_ORE"}, new Integer[] {40, 25, 35}) .register(true); new SlimefunItem(Categories.MISC, SlimefunItems.SIFTED_ORE, "SIFTED_ORE", RecipeType.GOLD_PAN, @@ -466,11 +463,11 @@ public final class SlimefunSetup { .register(true); new SlimefunItem(Categories.RESOURCES, SlimefunItems.IRON_DUST, "IRON_DUST", RecipeType.ORE_CRUSHER, - new ItemStack[] {new ItemStack(Material.IRON_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.IRON_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) + new ItemStack[] {new ItemStack(Material.IRON_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.IRON_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) .register(true); new SlimefunItem(Categories.RESOURCES, SlimefunItems.GOLD_DUST, "GOLD_DUST", RecipeType.ORE_CRUSHER, - new ItemStack[] {new ItemStack(Material.GOLD_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.GOLD_DUST, (Boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) + new ItemStack[] {new ItemStack(Material.GOLD_ORE), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.GOLD_DUST, (boolean) Slimefun.getItemValue("ORE_CRUSHER", "double-ores") ? 2: 1)) .register(true); new SlimefunItem(Categories.RESOURCES, SlimefunItems.COPPER_DUST, "COPPER_DUST", RecipeType.ORE_WASHER, @@ -1840,17 +1837,7 @@ public final class SlimefunSetup { new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE, "ELECTRIC_FURNACE", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, new ItemStack(Material.FURNACE), null, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.GILDED_IRON}) { - - @Override - public ItemStack getProgressBar() { - return new ItemStack(Material.FLINT_AND_STEEL); - } - - @Override - public String getInventoryTitle() { - return "&bElectric Furnace"; - } - + @Override public int getEnergyConsumption() { return 2; @@ -1866,16 +1853,6 @@ public final class SlimefunSetup { new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE_2, "ELECTRIC_FURNACE_2", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.GILDED_IRON, SlimefunItems.ELECTRIC_FURNACE, SlimefunItems.GILDED_IRON, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON}) { - @Override - public ItemStack getProgressBar() { - return new ItemStack(Material.FLINT_AND_STEEL); - } - - @Override - public String getInventoryTitle() { - return "&bElectric Furnace"; - } - @Override public int getEnergyConsumption() { return 3; @@ -1891,16 +1868,6 @@ public final class SlimefunSetup { new ElectricFurnace(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_FURNACE_3, "ELECTRIC_FURNACE_3", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, SlimefunItems.ELECTRIC_MOTOR, null, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_FURNACE_2, SlimefunItems.STEEL_INGOT, SlimefunItems.GILDED_IRON, SlimefunItems.HEATING_COIL, SlimefunItems.GILDED_IRON}) { - @Override - public ItemStack getProgressBar() { - return new ItemStack(Material.FLINT_AND_STEEL); - } - - @Override - public String getInventoryTitle() { - return "&bElectric Furnace"; - } - @Override public int getEnergyConsumption() { return 5; @@ -1925,6 +1892,7 @@ public final class SlimefunSetup { public int getSpeed() { return 1; } + }.registerChargeableBlock(true, 128); new ElectricGoldPan(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_GOLD_PAN_2, "ELECTRIC_GOLD_PAN_2", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -1939,6 +1907,7 @@ public final class SlimefunSetup { public int getSpeed() { return 3; } + }.registerChargeableBlock(true, 128); new ElectricGoldPan(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_GOLD_PAN_3, "ELECTRIC_GOLD_PAN_3", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -1953,6 +1922,7 @@ public final class SlimefunSetup { public int getSpeed() { return 10; } + }.registerChargeableBlock(true, 512); new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER, "ELECTRIC_DUST_WASHER", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -1967,6 +1937,7 @@ public final class SlimefunSetup { public int getSpeed() { return 1; } + }.registerChargeableBlock(true, 128); new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER_2, "ELECTRIC_DUST_WASHER_2", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -1981,6 +1952,7 @@ public final class SlimefunSetup { public int getSpeed() { return 2; } + }.registerChargeableBlock(true, 128); new ElectricDustWasher(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_DUST_WASHER_3, "ELECTRIC_DUST_WASHER_3", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -1995,6 +1967,7 @@ public final class SlimefunSetup { public int getSpeed() { return 10; } + }.registerChargeableBlock(true, 512); new ElectricIngotFactory(Categories.ELECTRICITY, SlimefunItems.ELECTRIC_INGOT_FACTORY, "ELECTRIC_INGOT_FACTORY", RecipeType.ENHANCED_CRAFTING_TABLE, @@ -2171,62 +2144,9 @@ public final class SlimefunSetup { }.registerUnrechargeableBlock(true, 256); - new AGenerator(Categories.ELECTRICITY, SlimefunItems.BIO_REACTOR, "BIO_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, + new BioGenerator(Categories.ELECTRICITY, SlimefunItems.BIO_REACTOR, "BIO_REACTOR", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {SlimefunItems.HEATING_COIL, SlimefunItems.COMPOSTER, SlimefunItems.HEATING_COIL, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.ALUMINUM_BRASS_INGOT, null, SlimefunItems.ALUMINUM_BRASS_INGOT, null}) { - @Override - public void registerDefaultRecipes() { - registerFuel(new MachineFuel(2, new ItemStack(Material.ROTTEN_FLESH))); - registerFuel(new MachineFuel(2, new ItemStack(Material.SPIDER_EYE))); - registerFuel(new MachineFuel(2, new ItemStack(Material.BONE))); - registerFuel(new MachineFuel(3, new ItemStack(Material.APPLE))); - registerFuel(new MachineFuel(3, new ItemStack(Material.MELON))); - registerFuel(new MachineFuel(27, new ItemStack(Material.MELON))); - registerFuel(new MachineFuel(3, new ItemStack(Material.PUMPKIN))); - registerFuel(new MachineFuel(3, new ItemStack(Material.PUMPKIN_SEEDS))); - registerFuel(new MachineFuel(3, new ItemStack(Material.MELON_SEEDS))); - registerFuel(new MachineFuel(3, new ItemStack(Material.WHEAT))); - registerFuel(new MachineFuel(3, new ItemStack(Material.WHEAT_SEEDS))); - registerFuel(new MachineFuel(3, new ItemStack(Material.CARROT))); - registerFuel(new MachineFuel(3, new ItemStack(Material.POTATO))); - registerFuel(new MachineFuel(3, new ItemStack(Material.SUGAR_CANE))); - registerFuel(new MachineFuel(3, new ItemStack(Material.NETHER_WART))); - registerFuel(new MachineFuel(2, new ItemStack(Material.RED_MUSHROOM))); - registerFuel(new MachineFuel(2, new ItemStack(Material.BROWN_MUSHROOM))); - registerFuel(new MachineFuel(2, new ItemStack(Material.VINE))); - registerFuel(new MachineFuel(2, new ItemStack(Material.CACTUS))); - registerFuel(new MachineFuel(2, new ItemStack(Material.LILY_PAD))); - registerFuel(new MachineFuel(8, new ItemStack(Material.CHORUS_FRUIT))); - registerFuel(new MachineFuel(1, new ItemStack(Material.BAMBOO))); - registerFuel(new MachineFuel(1, new ItemStack(Material.KELP))); - registerFuel(new MachineFuel(2, new ItemStack(Material.DRIED_KELP))); - registerFuel(new MachineFuel(20, new ItemStack(Material.DRIED_KELP_BLOCK))); - registerFuel(new MachineFuel(1, new ItemStack(Material.SEAGRASS))); - registerFuel(new MachineFuel(2, new ItemStack(Material.SEA_PICKLE))); - - // Leaves - for(Material m:Tag.LEAVES.getValues()) - registerFuel(new MachineFuel(1, new ItemStack(m))); - - // Saplings - for (Material m:Tag.SAPLINGS.getValues()) - registerFuel(new MachineFuel(1, new ItemStack(m))); - - // Small Flowers (formally just dandelions and poppies. - for(Material m:Tag.SMALL_FLOWERS.getValues()) - registerFuel(new MachineFuel(1, new ItemStack(m))); - } - - @Override - public ItemStack getProgressBar() { - return new ItemStack(Material.GOLDEN_HOE); - } - - @Override - public String getInventoryTitle() { - return "&2Bio Reactor"; - } - @Override public int getEnergyProduction() { return 4; @@ -2304,147 +2224,66 @@ public final class SlimefunSetup { new ItemStack[] {SlimefunItems.BRASS_INGOT, new ItemStack(Material.ORANGE_STAINED_GLASS), SlimefunItems.BRASS_INGOT, SlimefunItems.POWER_CRYSTAL, SlimefunItems.TIN_DUST, SlimefunItems.POWER_CRYSTAL, SlimefunItems.BRASS_INGOT, new ItemStack(Material.ORANGE_STAINED_GLASS), SlimefunItems.BRASS_INGOT}) .register(true); - new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER, "GPS_TRANSMITTER", RecipeType.ENHANCED_CRAFTING_TABLE, - new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.STEEL_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT}) - .registerChargeableBlock(true, 16, new BlockTicker() { - + new GPSTransmitter(Categories.GPS, SlimefunItems.GPS_TRANSMITTER, "GPS_TRANSMITTER", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.STEEL_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.STEEL_INGOT, SlimefunItems.STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.STEEL_INGOT}) { + @Override - public void tick(Block b, SlimefunItem item, Config data) { - int charge = ChargableBlock.getCharge(b); - if (charge > 0) { - Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE); - ChargableBlock.setCharge(b.getLocation(), charge - 1); - } - else Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); + public double getMultiplier(int y) { + return y; } @Override - public boolean isSynchronized() { - return false; + public int getEnergyConsumption() { + return 1; } - }); - - SlimefunItem.registerBlockHandler("GPS_TRANSMITTER", new SlimefunBlockHandler() { + + } + .registerChargeableBlock(true, 16); + new GPSTransmitter(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_2, "GPS_TRANSMITTER_2", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.CARBON, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER}) { + @Override - public void onPlace(Player p, Block b, SlimefunItem item) { - BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); + public double getMultiplier(int y) { + return y * 4.0 + 100; } @Override - 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); - return true; + public int getEnergyConsumption() { + return 3; } - }); - - new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_2, "GPS_TRANSMITTER_2", RecipeType.ENHANCED_CRAFTING_TABLE, - new ItemStack[] {SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.CARBON, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER, SlimefunItems.BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER}) - .registerChargeableBlock(true, 64, new BlockTicker() { + + }.registerChargeableBlock(true, 64); + new GPSTransmitter(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_3, "GPS_TRANSMITTER_3", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.CARBONADO, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2}) { + @Override - public void tick(Block b, SlimefunItem item, Config data) { - int charge = ChargableBlock.getCharge(b.getLocation()); - if (charge > 2) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4.0 + 100, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE); - ChargableBlock.setCharge(b.getLocation(), charge - 3); - } - else { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4.0 + 100, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - } + public double getMultiplier(int y) { + return y * 16.0 + 500; } @Override - public boolean isSynchronized() { - return false; + public int getEnergyConsumption() { + return 11; } - }); - - SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_2", new SlimefunBlockHandler() { + + }.registerChargeableBlock(true, 256); + new GPSTransmitter(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_4, "GPS_TRANSMITTER_4", RecipeType.ENHANCED_CRAFTING_TABLE, + new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.NICKEL_INGOT, SlimefunItems.CARBONADO, SlimefunItems.NICKEL_INGOT, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3}) { + @Override - public void onPlace(Player p, Block b, SlimefunItem item) { - BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); + public double getMultiplier(int y) { + return y * 64.0 + 600; } @Override - public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 4.0 + 100, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - return true; + public int getEnergyConsumption() { + return 46; } - }); - - new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_3, "GPS_TRANSMITTER_3", RecipeType.ENHANCED_CRAFTING_TABLE, - new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.CARBONADO, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2, SlimefunItems.CORINTHIAN_BRONZE_INGOT, SlimefunItems.GPS_TRANSMITTER_2}) - .registerChargeableBlock(true, 256, new BlockTicker() { - - @Override - public void tick(Block b, SlimefunItem item, Config data) { - int charge = ChargableBlock.getCharge(b.getLocation()); - if (charge > 10) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16.0 + 500, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE); - ChargableBlock.setCharge(b.getLocation(), charge - 11); - } - else { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16.0 + 500, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - } - } - - @Override - public boolean isSynchronized() { - return false; - } - }); - - SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_3", new SlimefunBlockHandler() { - - @Override - public void onPlace(Player p, Block b, SlimefunItem item) { - BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); - } - - @Override - public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 16.0 + 500, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - return true; - } - }); - - new SlimefunItem(Categories.GPS, SlimefunItems.GPS_TRANSMITTER_4, "GPS_TRANSMITTER_4", RecipeType.ENHANCED_CRAFTING_TABLE, - new ItemStack[] {SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.NICKEL_INGOT, SlimefunItems.CARBONADO, SlimefunItems.NICKEL_INGOT, SlimefunItems.GPS_TRANSMITTER_3, SlimefunItems.BLISTERING_INGOT_3, SlimefunItems.GPS_TRANSMITTER_3}) - .registerChargeableBlock(true, 1024, new BlockTicker() { - - @Override - public void tick(Block b, SlimefunItem item, Config data) { - int charge = ChargableBlock.getCharge(b.getLocation()); - if (charge > 45) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64.0 + 800, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.ONLINE); - ChargableBlock.setCharge(b.getLocation(), charge - 46); - } - else { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64.0 + 800, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - } - } - - @Override - public boolean isSynchronized() { - return false; - } - }); - - SlimefunItem.registerBlockHandler("GPS_TRANSMITTER_4", new SlimefunBlockHandler() { - - @Override - public void onPlace(Player p, Block b, SlimefunItem item) { - BlockStorage.addBlockInfo(b, "owner", p.getUniqueId().toString()); - } - - @Override - public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) { - Slimefun.getGPSNetwork().updateTransmitter(new Location(b.getWorld(), b.getX(), b.getY() * 64.0 + 800, b.getZ()), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE); - return true; - } - }); + + }.registerChargeableBlock(true, 1024); new SlimefunItem(Categories.GPS, SlimefunItems.GPS_CONTROL_PANEL, "GPS_CONTROL_PANEL", RecipeType.ENHANCED_CRAFTING_TABLE, new ItemStack[] {null, null, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.COBALT_INGOT, SlimefunItems.ADVANCED_CIRCUIT_BOARD, SlimefunItems.COBALT_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT, SlimefunItems.ALUMINUM_BRASS_INGOT}) diff --git a/src/me/mrCookieSlime/Slimefun/api/Slimefun.java b/src/me/mrCookieSlime/Slimefun/api/Slimefun.java index 5423dc959..47dbd2126 100644 --- a/src/me/mrCookieSlime/Slimefun/api/Slimefun.java +++ b/src/me/mrCookieSlime/Slimefun/api/Slimefun.java @@ -13,8 +13,8 @@ import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.GPS.GPSNetwork; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.Research; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.ItemState; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem.State; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem; import me.mrCookieSlime.Slimefun.Setup.Messages; @@ -118,11 +118,11 @@ public final class Slimefun { */ public static boolean hasUnlocked(Player p, ItemStack item, boolean message) { SlimefunItem sfItem = SlimefunItem.getByItem(item); - State state = SlimefunItem.getState(item); + ItemState state = SlimefunItem.getState(item); if (sfItem == null) { - if (state != State.ENABLED) { - if (message && state != State.VANILLA) Messages.local.sendTranslation(p, "messages.disabled-item", true); + if (state != ItemState.ENABLED) { + if (message && state != ItemState.VANILLA) Messages.local.sendTranslation(p, "messages.disabled-item", true); return false; } else return true; diff --git a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java index 717c5f7f0..bda1ccea1 100644 --- a/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java +++ b/src/me/mrCookieSlime/Slimefun/api/inventory/BlockMenu.java @@ -97,10 +97,8 @@ public class BlockMenu extends DirtyChestMenu { public void delete(Location l) { File file = new File("data-storage/Slimefun/stored-inventories/" + serializeLocation(l) + ".sfi"); - if (file.exists()) { - if (!file.delete()) { - Slimefun.getLogger().log(Level.WARNING, "Could not delete File: " + file.getName()); - } + if (file.exists() && !file.delete()) { + Slimefun.getLogger().log(Level.WARNING, "Could not delete File: " + file.getName()); } } diff --git a/src/me/mrCookieSlime/Slimefun/listeners/BowListener.java b/src/me/mrCookieSlime/Slimefun/listeners/BowListener.java index 18b9f38b1..5a5192f19 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/BowListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/BowListener.java @@ -15,6 +15,7 @@ import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.util.Vector; import me.mrCookieSlime.Slimefun.SlimefunPlugin; +import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.handlers.BowShootHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemHandler; @@ -44,7 +45,11 @@ public class BowListener implements Listener { private void handleGrapplingHook(Arrow arrow) { if (arrow != null && arrow.getShooter() instanceof Player && SlimefunPlugin.getUtilities().jumpState.containsKey(((Player) arrow.getShooter()).getUniqueId())) { final Player p = (Player) arrow.getShooter(); - if (p.getGameMode() != GameMode.CREATIVE && SlimefunPlugin.getUtilities().jumpState.get(p.getUniqueId())) arrow.getWorld().dropItem(arrow.getLocation(), SlimefunItem.getItem("GRAPPLING_HOOK")); + + if (p.getGameMode() != GameMode.CREATIVE && (boolean) SlimefunPlugin.getUtilities().jumpState.get(p.getUniqueId())) { + arrow.getWorld().dropItem(arrow.getLocation(), SlimefunItems.GRAPPLING_HOOK); + } + if (p.getLocation().distance(arrow.getLocation()) < 3.0D) { if (arrow.getLocation().getY() > p.getLocation().getY()) { p.setVelocity(new Vector(0.0D, 0.25D, 0.0D)); diff --git a/src/me/mrCookieSlime/Slimefun/listeners/TalismanListener.java b/src/me/mrCookieSlime/Slimefun/listeners/TalismanListener.java index feeb4cac0..116ce54c0 100644 --- a/src/me/mrCookieSlime/Slimefun/listeners/TalismanListener.java +++ b/src/me/mrCookieSlime/Slimefun/listeners/TalismanListener.java @@ -113,7 +113,9 @@ public class TalismanListener implements Listener { List enchantments = new ArrayList<>(); for (Enchantment en : Enchantment.values()) { for (int i = 1; i <= en.getMaxLevel(); i++) { - if ((Boolean) Slimefun.getItemValue("MAGICIAN_TALISMAN", "allow-enchantments." + en.getKey().getKey() + ".level." + i) && en.canEnchantItem(e.getItem())) enchantments.add(en.getKey().getKey() + '-' + i); + if ((boolean) Slimefun.getItemValue("MAGICIAN_TALISMAN", "allow-enchantments." + en.getKey().getKey() + ".level." + i) && en.canEnchantItem(e.getItem())) { + enchantments.add(en.getKey().getKey() + '-' + i); + } } } String enchant = enchantments.get(random.nextInt(enchantments.size()));