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

Added CS-CoreLib permission check for Slimefun Machines

Added CS-CoreLib permission check for Slimefun Machines.
Updated some deprecated methods.
This commit is contained in:
Redemption 2018-04-23 22:33:08 +02:00 committed by GitHub
parent 5b51953423
commit 0e7597e06f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -197,6 +197,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ENHANCED_CRAFTING_TABLE"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ENHANCED_CRAFTING_TABLE");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
@ -305,6 +306,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.pattern-not-found", true); Messages.local.sendTranslation(p, "machines.pattern-not-found", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -343,6 +345,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("GRIND_STONE"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("GRIND_STONE");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
Inventory inv = disp.getInventory(); Inventory inv = disp.getInventory();
@ -364,6 +367,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -382,6 +386,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ARMOR_FORGE"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ARMOR_FORGE");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
final Inventory inv = disp.getInventory(); final Inventory inv = disp.getInventory();
@ -434,6 +439,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.pattern-not-found", true); Messages.local.sendTranslation(p, "machines.pattern-not-found", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -452,6 +458,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_CRUSHER"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_CRUSHER");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
Inventory inv = disp.getInventory(); Inventory inv = disp.getInventory();
@ -473,6 +480,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -491,6 +499,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("COMPRESSOR"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("COMPRESSOR");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
final Inventory inv = disp.getInventory(); final Inventory inv = disp.getInventory();
@ -533,6 +542,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -682,13 +692,14 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GOLD_PAN, true)) {
if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL) { if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.GRAVEL) {
if(CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), e.getClickedBlock(), true)) {
List<ItemStack> drops = new ArrayList<ItemStack>(); List<ItemStack> drops = new ArrayList<ItemStack>();
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) drops.add(SlimefunItems.SIFTED_ORE); if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) drops.add(SlimefunItems.SIFTED_ORE);
else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"))) drops.add(new ItemStack(Material.CLAY_BALL)); else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"))) drops.add(new ItemStack(Material.CLAY_BALL));
else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.FLINT"))) drops.add(new ItemStack(Material.FLINT)); else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.FLINT"))) drops.add(new ItemStack(Material.FLINT));
if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), e.getClickedBlock(), true)) {
e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType()); e.getClickedBlock().getWorld().playEffect(e.getClickedBlock().getLocation(), Effect.STEP_SOUND, e.getClickedBlock().getType());
e.getClickedBlock().setType(Material.AIR); e.getClickedBlock().setType(Material.AIR);
for (ItemStack drop: drops) { for (ItemStack drop: drops) {
@ -719,6 +730,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("SMELTERY"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("SMELTERY");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
Inventory inv = disp.getInventory(); Inventory inv = disp.getInventory();
@ -786,6 +798,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.pattern-not-found", true); Messages.local.sendTranslation(p, "machines.pattern-not-found", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -809,6 +822,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("PRESSURE_CHAMBER"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("PRESSURE_CHAMBER");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getRelative(BlockFace.UP).getState();
final Inventory inv = disp.getInventory(); final Inventory inv = disp.getInventory();
@ -863,6 +877,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -1109,9 +1124,9 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GRAPPLING_HOOK, true)) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GRAPPLING_HOOK, true)) {
if (e.getClickedBlock() == null && !Variables.jump.containsKey(p.getUniqueId())) { if (e.getClickedBlock() == null && !Variables.jump.containsKey(p.getUniqueId())) {
Variables.jump.put(p.getUniqueId(), p.getItemInHand().getType() != Material.SHEARS); Variables.jump.put(p.getUniqueId(), p.getInventory().getItemInMainHand().getType() != Material.SHEARS);
e.setCancelled(true); e.setCancelled(true);
if (p.getItemInHand().getType() == Material.LEASH) PlayerInventory.consumeItemInHand(p); if (p.getInventory().getItemInMainHand().getType() == Material.LEASH) PlayerInventory.consumeItemInHand(p);
Vector direction = p.getEyeLocation().getDirection().multiply(2.0); Vector direction = p.getEyeLocation().getDirection().multiply(2.0);
Projectile projectile = p.getWorld().spawn(p.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), Arrow.class); Projectile projectile = p.getWorld().spawn(p.getEyeLocation().add(direction.getX(), direction.getY(), direction.getZ()), Arrow.class);
@ -1143,6 +1158,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("MAGIC_WORKBENCH"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("MAGIC_WORKBENCH");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = null; Dispenser disp = null;
@ -1218,6 +1234,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.pattern-not-found", true); Messages.local.sendTranslation(p, "machines.pattern-not-found", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -1236,7 +1253,7 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WIND, true)) { if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WIND, true)) {
if (p.getFoodLevel() >= 2) { if (p.getFoodLevel() >= 2) {
if (p.getItemInHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) { if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) {
FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2); FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2);
Bukkit.getPluginManager().callEvent(event); Bukkit.getPluginManager().callEvent(event);
p.setFoodLevel(event.getFoodLevel()); p.setFoodLevel(event.getFoodLevel());
@ -1317,6 +1334,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_WASHER"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("ORE_WASHER");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, machine.getItem(), true)) { if (Slimefun.hasUnlocked(p, machine.getItem(), true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.UP).getState();
Inventory inv = disp.getInventory(); Inventory inv = disp.getInventory();
@ -1375,6 +1393,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -1570,7 +1589,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) { public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) {
if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.LUMBER_AXE, true)) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.LUMBER_AXE, true)) {
if (e.getBlock().getType() == Material.LOG || e.getBlock().getType() == Material.LOG_2) { if (e.getBlock().getType() == Material.LOG || e.getBlock().getType() == Material.LOG_2) {
List<Location> logs = new ArrayList<Location>(); List<Location> logs = new ArrayList<Location>();
TreeCalculator.getTree(e.getBlock().getLocation(), e.getBlock().getLocation(), logs); TreeCalculator.getTree(e.getBlock().getLocation(), e.getBlock().getLocation(), logs);
@ -1758,7 +1777,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) { public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) {
if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.PICKAXE_OF_CONTAINMENT, true)) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.PICKAXE_OF_CONTAINMENT, true)) {
if (e.getBlock().getType() != Material.MOB_SPAWNER) return true; if (e.getBlock().getType() != Material.MOB_SPAWNER) return true;
ItemStack spawner = SlimefunItems.BROKEN_SPAWNER.clone(); ItemStack spawner = SlimefunItems.BROKEN_SPAWNER.clone();
ItemMeta im = spawner.getItemMeta(); ItemMeta im = spawner.getItemMeta();
@ -1782,7 +1801,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) { public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) {
if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.HERCULES_PICKAXE, true) && e.getBlock().getType().toString().endsWith("_ORE")) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.HERCULES_PICKAXE, true) && e.getBlock().getType().toString().endsWith("_ORE")) {
if (e.getBlock().getType() == Material.IRON_ORE) drops.add(new CustomItem(SlimefunItems.IRON_DUST, 2)); if (e.getBlock().getType() == Material.IRON_ORE) drops.add(new CustomItem(SlimefunItems.IRON_DUST, 2));
else if (e.getBlock().getType() == Material.GOLD_ORE) drops.add(new CustomItem(SlimefunItems.GOLD_DUST, 2)); else if (e.getBlock().getType() == Material.GOLD_ORE) drops.add(new CustomItem(SlimefunItems.GOLD_DUST, 2));
else { else {
@ -1804,10 +1823,12 @@ public class SlimefunSetup {
@Override @Override
public boolean onInteract(Player p, MultiBlock mb, Block b) { public boolean onInteract(Player p, MultiBlock mb, Block b) {
if (mb.isMultiBlock(SlimefunItem.getByID("SAW_MILL"))) { if (mb.isMultiBlock(SlimefunItem.getByID("SAW_MILL"))) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, SlimefunItems.SAW_MILL, true)) { if (Slimefun.hasUnlocked(p, SlimefunItems.SAW_MILL, true)) {
if (b.getRelative(BlockFace.UP).getType() == Material.LOG) BlockBreaker.breakBlock(p, b.getRelative(BlockFace.UP), Arrays.asList(new ItemStack[] {new CustomItem(Material.WOOD, b.getRelative(BlockFace.UP).getData() % 4, 8)}), true); if (b.getRelative(BlockFace.UP).getType() == Material.LOG) BlockBreaker.breakBlock(p, b.getRelative(BlockFace.UP), Arrays.asList(new ItemStack[] {new CustomItem(Material.WOOD, b.getRelative(BlockFace.UP).getData() % 4, 8)}), true);
else if (b.getRelative(BlockFace.UP).getType() == Material.LOG_2) BlockBreaker.breakBlock(p, b.getRelative(BlockFace.UP), Arrays.asList(new ItemStack[] {new CustomItem(Material.WOOD, (b.getRelative(BlockFace.UP).getData() % 2) + 4, 8)}), true); else if (b.getRelative(BlockFace.UP).getType() == Material.LOG_2) BlockBreaker.breakBlock(p, b.getRelative(BlockFace.UP), Arrays.asList(new ItemStack[] {new CustomItem(Material.WOOD, (b.getRelative(BlockFace.UP).getData() % 2) + 4, 8)}), true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -1859,6 +1880,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onInteract(final Player p, MultiBlock mb, final Block b) { public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
if (mb.isMultiBlock(SlimefunItem.getByID("DIGITAL_MINER"))) { if (mb.isMultiBlock(SlimefunItem.getByID("DIGITAL_MINER"))) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, SlimefunItems.DIGITAL_MINER, true)) { if (Slimefun.hasUnlocked(p, SlimefunItems.DIGITAL_MINER, true)) {
Chest chest = (Chest) b.getRelative(BlockFace.UP).getState(); Chest chest = (Chest) b.getRelative(BlockFace.UP).getState();
final Inventory inv = chest.getInventory(); final Inventory inv = chest.getInventory();
@ -1921,6 +1943,7 @@ public class SlimefunSetup {
} }
else Messages.local.sendTranslation(p, "miner.no-ores", true); else Messages.local.sendTranslation(p, "miner.no-ores", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -1935,6 +1958,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onInteract(final Player p, MultiBlock mb, final Block b) { public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
if (mb.isMultiBlock(SlimefunItem.getByID("ADVANCED_DIGITAL_MINER"))) { if (mb.isMultiBlock(SlimefunItem.getByID("ADVANCED_DIGITAL_MINER"))) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, SlimefunItems.ADVANCED_DIGITAL_MINER, true)) { if (Slimefun.hasUnlocked(p, SlimefunItems.ADVANCED_DIGITAL_MINER, true)) {
Chest chest = (Chest) b.getRelative(BlockFace.UP).getState(); Chest chest = (Chest) b.getRelative(BlockFace.UP).getState();
final Inventory inv = chest.getInventory(); final Inventory inv = chest.getInventory();
@ -2002,6 +2026,7 @@ public class SlimefunSetup {
} }
else Messages.local.sendTranslation(p, "miner.no-ores", true); else Messages.local.sendTranslation(p, "miner.no-ores", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -2021,8 +2046,9 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) { public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
if (e.getClickedBlock() != null) { if (e.getClickedBlock() != null) {
SlimefunItem machine = BlockStorage.check(e.getClickedBlock()); SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
if (machine != null && machine.getName().equals("COMPOSTER")) { if (machine != null && machine.getID().equals("COMPOSTER")) {
final ItemStack input = p.getItemInHand(); if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
final ItemStack input = p.getInventory().getItemInMainHand();
final Block b = e.getClickedBlock(); final Block b = e.getClickedBlock();
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
if (convert != null && SlimefunManager.isItemSimiliar(input, convert, true)) { if (convert != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
@ -2127,6 +2153,8 @@ public class SlimefunSetup {
Messages.local.sendTranslation(p, "machines.wrong-item", true); Messages.local.sendTranslation(p, "machines.wrong-item", true);
return true; return true;
} }
return true;
}
} }
return false; return false;
} }
@ -2160,8 +2188,8 @@ public class SlimefunSetup {
SlimefunItem sfItem = BlockStorage.check(b); SlimefunItem sfItem = BlockStorage.check(b);
boolean allow = true; boolean allow = true;
if (sfItem != null && !(sfItem instanceof HandledBlock)) { if (sfItem != null && !(sfItem instanceof HandledBlock)) {
if (SlimefunItem.blockhandler.containsKey(sfItem.getName())) { if (SlimefunItem.blockhandler.containsKey(sfItem.getID())) {
allow = SlimefunItem.blockhandler.get(sfItem.getName()).onBreak(e.getPlayer(), e.getBlock(), sfItem, UnregisterReason.PLAYER_BREAK); allow = SlimefunItem.blockhandler.get(sfItem.getID()).onBreak(e.getPlayer(), e.getBlock(), sfItem, UnregisterReason.PLAYER_BREAK);
} }
if (allow) { if (allow) {
drops.add(BlockStorage.retrieve(e.getBlock())); drops.add(BlockStorage.retrieve(e.getBlock()));
@ -2198,7 +2226,8 @@ public class SlimefunSetup {
@Override @Override
public boolean onInteract(final Player p, MultiBlock mb, final Block b) { public boolean onInteract(final Player p, MultiBlock mb, final Block b) {
if (mb.isMultiBlock(SlimefunItem.getByID("AUTOMATED_PANNING_MACHINE"))) { if (mb.isMultiBlock(SlimefunItem.getByID("AUTOMATED_PANNING_MACHINE"))) {
final ItemStack input = p.getItemInHand(); if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
final ItemStack input = p.getInventory().getItemInMainHand();
ItemStack output = null; ItemStack output = null;
if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) output = SlimefunItems.SIFTED_ORE; if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.SIFTED_ORE"))) output = SlimefunItems.SIFTED_ORE;
else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"))) output = new ItemStack(Material.CLAY_BALL); else if (SlimefunStartup.chance(100, (Integer) Slimefun.getItemValue("GOLD_PAN", "chance.CLAY"))) output = new ItemStack(Material.CLAY_BALL);
@ -2257,6 +2286,8 @@ public class SlimefunSetup {
Messages.local.sendTranslation(p, "machines.wrong-item", true); Messages.local.sendTranslation(p, "machines.wrong-item", true);
return true; return true;
} }
return true;
}
else return false; else return false;
} }
}); });
@ -2300,8 +2331,8 @@ public class SlimefunSetup {
p.teleport(new Location(p.getWorld(), p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ(), yaw, pitch)); p.teleport(new Location(p.getWorld(), p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ(), yaw, pitch));
} }
if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) { if (e.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer()); if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getInventory().getItemInMainHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer());
} }
else PlayerInventory.damageItemInHand(e.getPlayer()); else PlayerInventory.damageItemInHand(e.getPlayer());
@ -2337,8 +2368,9 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) { public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
if (e.getClickedBlock() != null) { if (e.getClickedBlock() != null) {
SlimefunItem machine = BlockStorage.check(e.getClickedBlock()); SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
if (machine != null && machine.getName().equals("CRUCIBLE")) { if (machine != null && machine.getID().equals("CRUCIBLE")) {
final ItemStack input = p.getItemInHand(); if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
final ItemStack input = p.getInventory().getItemInMainHand();
final Block block = e.getClickedBlock().getRelative(BlockFace.UP); final Block block = e.getClickedBlock().getRelative(BlockFace.UP);
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) { for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
if (input != null) { if (input != null) {
@ -2483,6 +2515,8 @@ public class SlimefunSetup {
Messages.local.sendTranslation(p, "machines.wrong-item", true); Messages.local.sendTranslation(p, "machines.wrong-item", true);
return true; return true;
} }
return true;
}
} }
return false; return false;
} }
@ -2603,9 +2637,9 @@ public class SlimefunSetup {
} }
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
if (e.getPlayer().getItemInHand() != null) { if (e.getPlayer().getInventory().getItemInMainHand() != null) {
if (e.getPlayer().getItemInHand().getEnchantments().containsKey(Enchantment.DURABILITY)) { if (e.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getItemInHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer()); if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getInventory().getItemInMainHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer());
} }
else PlayerInventory.damageItemInHand(e.getPlayer()); else PlayerInventory.damageItemInHand(e.getPlayer());
} }
@ -2622,7 +2656,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) { public boolean onBlockBreak(BlockBreakEvent e, ItemStack item, int fortune, List<ItemStack> drops) {
if (SlimefunManager.isItemSimiliar(e.getPlayer().getItemInHand(), SlimefunItems.PICKAXE_OF_VEIN_MINING, true)) { if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), SlimefunItems.PICKAXE_OF_VEIN_MINING, true)) {
if (e.getBlock().getType().toString().endsWith("_ORE")) { if (e.getBlock().getType().toString().endsWith("_ORE")) {
List<Location> blocks = new ArrayList<Location>(); List<Location> blocks = new ArrayList<Location>();
Vein.calculate(e.getBlock().getLocation(), e.getBlock().getLocation(), blocks, 16); Vein.calculate(e.getBlock().getLocation(), e.getBlock().getLocation(), blocks, 16);
@ -2696,6 +2730,7 @@ public class SlimefunSetup {
SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("JUICER"); SlimefunMachine machine = (SlimefunMachine) SlimefunItem.getByID("JUICER");
if (mb.isMultiBlock(machine)) { if (mb.isMultiBlock(machine)) {
if(CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), b, true)) {
if (Slimefun.hasUnlocked(p, SlimefunItems.JUICER, true)) { if (Slimefun.hasUnlocked(p, SlimefunItems.JUICER, true)) {
Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState(); Dispenser disp = (Dispenser) b.getRelative(BlockFace.DOWN).getState();
Inventory inv = disp.getInventory(); Inventory inv = disp.getInventory();
@ -2718,6 +2753,7 @@ public class SlimefunSetup {
} }
Messages.local.sendTranslation(p, "machines.unknown-material", true); Messages.local.sendTranslation(p, "machines.unknown-material", true);
} }
}
return true; return true;
} }
else return false; else return false;
@ -2844,7 +2880,7 @@ public class SlimefunSetup {
@Override @Override
public boolean onBlockDispense(final BlockDispenseEvent e, Block dispenser, final Dispenser d, Block block, Block chest, SlimefunItem machine) { public boolean onBlockDispense(final BlockDispenseEvent e, Block dispenser, final Dispenser d, Block block, Block chest, SlimefunItem machine) {
if (machine.getName().equalsIgnoreCase("BLOCK_PLACER")) { if (machine.getID().equalsIgnoreCase("BLOCK_PLACER")) {
e.setCancelled(true); e.setCancelled(true);
if ((block.getType() == null || block.getType() == Material.AIR) && e.getItem().getType().isBlock()) { if ((block.getType() == null || block.getType() == Material.AIR) && e.getItem().getType().isBlock()) {
for(String blockType : blockPlacerBlacklist) { for(String blockType : blockPlacerBlacklist) {
@ -2855,10 +2891,10 @@ public class SlimefunSetup {
SlimefunItem sfItem = SlimefunItem.getByItem(e.getItem()); SlimefunItem sfItem = SlimefunItem.getByItem(e.getItem());
if (sfItem != null) { if (sfItem != null) {
if (!SlimefunItem.blockhandler.containsKey(sfItem.getName())) { if (!SlimefunItem.blockhandler.containsKey(sfItem.getID())) {
block.setType(e.getItem().getType()); block.setType(e.getItem().getType());
block.setData(e.getItem().getData().getData()); block.setData(e.getItem().getData().getData());
BlockStorage.store(block, sfItem.getName()); BlockStorage.store(block, sfItem.getID());
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, e.getItem().getType()); block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, e.getItem().getType());
if (d.getInventory().containsAtLeast(e.getItem(), 2)) d.getInventory().removeItem(new CustomItem(e.getItem(), 1)); if (d.getInventory().containsAtLeast(e.getItem(), 2)) d.getInventory().removeItem(new CustomItem(e.getItem(), 1));
else { else {
@ -4041,7 +4077,7 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null || !item.getName().equals("GPS_CONTROL_PANEL")) return false; if (item == null || !item.getID().equals("GPS_CONTROL_PANEL")) return false;
e.setCancelled(true); e.setCancelled(true);
try { try {
Slimefun.getGPSNetwork().openTransmitterControlPanel(p); Slimefun.getGPSNetwork().openTransmitterControlPanel(p);
@ -4475,7 +4511,7 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null || !item.getName().equals("GPS_GEO_SCANNER")) return false; if (item == null || !item.getID().equals("GPS_GEO_SCANNER")) return false;
e.setCancelled(true); e.setCancelled(true);
try { try {
Slimefun.getGPSNetwork().scanChunk(p, e.getClickedBlock().getChunk()); Slimefun.getGPSNetwork().scanChunk(p, e.getClickedBlock().getChunk());
@ -4637,7 +4673,7 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null || !item.getName().equals("HOLOGRAM_PROJECTOR")) return false; if (item == null || !item.getID().equals("HOLOGRAM_PROJECTOR")) return false;
e.setCancelled(true); e.setCancelled(true);
if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) { if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) {
@ -4744,7 +4780,7 @@ public class SlimefunSetup {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null) return false; if (item == null) return false;
if (!item.getName().equals("ELEVATOR_PLATE")) return false; if (!item.getID().equals("ELEVATOR_PLATE")) return false;
if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) Elevator.openEditor(p, e.getClickedBlock()); if (BlockStorage.getBlockInfo(e.getClickedBlock(), "owner").equals(p.getUniqueId().toString())) Elevator.openEditor(p, e.getClickedBlock());
return true; return true;
@ -5163,7 +5199,7 @@ public class SlimefunSetup {
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) { public boolean onRightClick(ItemUseEvent e, Player p, ItemStack stack) {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null || !item.getName().equals("CARGO_MANAGER")) return false; if (item == null || !item.getID().equals("CARGO_MANAGER")) return false;
e.setCancelled(true); e.setCancelled(true);
if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) { if (BlockStorage.getBlockInfo(e.getClickedBlock(), "visualizer") == null) {
@ -5200,7 +5236,7 @@ public class SlimefunSetup {
if (e.getClickedBlock() == null) return false; if (e.getClickedBlock() == null) return false;
SlimefunItem item = BlockStorage.check(e.getClickedBlock()); SlimefunItem item = BlockStorage.check(e.getClickedBlock());
if (item == null) return false; if (item == null) return false;
if (!item.getName().equals("CARGO_NODE")) return false; if (!item.getID().equals("CARGO_NODE")) return false;
if (CargoNet.isConnected(e.getClickedBlock())) { if (CargoNet.isConnected(e.getClickedBlock())) {
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7Connected: " + "&2\u2714")); p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7Connected: " + "&2\u2714"));