package de.Ste3et_C0st.Furniture.Objects.RPG; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.EulerAngle; import de.Ste3et_C0st.Furniture.Main.main; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; import de.Ste3et_C0st.FurnitureLib.main.Furniture; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.EventType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; import de.Ste3et_C0st.FurnitureLib.main.entity.fEntity; public class guillotine extends Furniture implements Listener{ Boolean soundPlaying = false, isFinish = false; fArmorStand packet1, packet2, packet3; Inventory invI, invII, invIII; Integer timer; Player p; List intList = Arrays.asList(10,16,19,28,37,43); List matList = Arrays.asList( Material.WOODEN_SWORD,Material.WOODEN_AXE,Material.WOODEN_HOE, Material.STONE_SWORD, Material.STONE_AXE, Material.STONE_HOE, Material.IRON_SWORD, Material.IRON_AXE, Material.IRON_HOE, Material.GOLDEN_SWORD, Material.GOLDEN_AXE, Material.GOLDEN_HOE, Material.DIAMOND_SWORD, Material.DIAMOND_AXE, Material.DIAMOND_HOE); List matListI = Arrays.asList( Material.LEATHER_CHESTPLATE,Material.IRON_CHESTPLATE,Material.GOLDEN_CHESTPLATE, Material.DIAMOND_CHESTPLATE, Material.CHAINMAIL_CHESTPLATE); List matListII = Arrays.asList( Material.LEATHER_LEGGINGS,Material.IRON_LEGGINGS,Material.GOLDEN_LEGGINGS, Material.DIAMOND_LEGGINGS, Material.CHAINMAIL_LEGGINGS); List matListIII = Arrays.asList( Material.LEATHER_BOOTS,Material.IRON_BOOTS,Material.GOLDEN_BOOTS, Material.DIAMOND_BOOTS, Material.CHAINMAIL_BOOTS); List armorStandList = new ArrayList(); ItemStack pane = new ItemStack(Material.BLACK_STAINED_GLASS_PANE); public guillotine(ObjectID id) { super(id); if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, main.getInstance()); setDefault(); initializeInventory(); return; } spawn(id.getStartLocation()); initializeInventory(); } private void initializeInventory(){ pane = new ItemStack(Material.BLACK_STAINED_GLASS_PANE); ItemMeta im = pane.getItemMeta(); im.setDisplayName("§c"); pane.setItemMeta(im); String s = getObjID().getProjectOBJ().getCraftingFile().getRecipe().getResult().getItemMeta().getDisplayName(); invI = Bukkit.createInventory(null, 9, s + "I"); invII = Bukkit.createInventory(null, 54, s + "II"); invIII = Bukkit.createInventory(null, 54, s + "III"); } private fArmorStand getByName(String s){ for(fEntity packets : getManager().getfArmorStandByObjectID(getObjID())){ if(!packets.getName().equalsIgnoreCase("")){ if(packets.getName().startsWith("#Oblation#")){ return (fArmorStand) packets; } } } return null; } private void setDefault(){ armorStandList.clear(); if(packet1==null){packet2 = getByName("#Oblation#");} if(packet3==null){packet3 = getByName("#Head#");} for(fEntity packets : getManager().getfArmorStandByObjectID(getObjID())){ if(packets instanceof fArmorStand){ fArmorStand stand = (fArmorStand) packets; if(!packets.getName().equalsIgnoreCase("")){ if(!(packets.getName().startsWith("#Oblation#") && packets.getName().startsWith("#Head#"))){ if(packets.getName().startsWith("iron")){ armorStandList.add(stand); Location loc = getStartLocation(packets.getName()); packets.teleport(loc); }else{ packet1 = stand; } } } } } if(packet3!=null){ if(packet3.getHelmet()!=null){ packet2.setHelmet(packet3.getHelmet()); packet3.setHelmet(new ItemStack(Material.AIR)); } } soundPlaying = false; if(packet1!=null){ packet1.setPose(getLutil().degresstoRad(new EulerAngle(190,0,329)), BodyPart.RIGHT_ARM); packet1.setLeftArmPose(BodyPart.LEFT_ARM.getDefAngle()); } if(packet2!=null){ Location loc13 = getStartLocation(packet2.getName()); packet2.teleport(loc13); packet2.setPose(getLutil().degresstoRad(new EulerAngle(40,0,320)), BodyPart.RIGHT_ARM); packet2.setPose(getLutil().degresstoRad(new EulerAngle(33,0,41)), BodyPart.LEFT_ARM); packet2.setPose(getLutil().degresstoRad(new EulerAngle(40,25,0)), BodyPart.HEAD); } timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(getPlugin(), new Runnable() { int x = 0; @Override public void run() { if(x!=3){ update(); x++; }else{ stopTimer(); } } }, 0, 10); isFinish=false; } private Location getStartLocation(String s){ String[] split = s.split(":"); double x = Double.parseDouble(split[1]); double y = Double.parseDouble(split[2]); double z = Double.parseDouble(split[3]); Location loc = new Location(getWorld(), x, y, z); loc.setYaw(getLutil().FaceToYaw(getBlockFace())); return loc; } @Override public void spawn(Location loc) { List packList = new ArrayList(); Location center = getLutil().getCenter(loc); center.add(0, -2.3, 0); for(int i = 1;i<=7;i++){ Location location = getLutil().getRelativ(center, getBlockFace(), 0d, .2d).add(0, i*.62, 0); location.setYaw(getLutil().FaceToYaw(getBlockFace())+90); fArmorStand packet = getManager().createArmorStand(getObjID(), location); packet.getInventory().setHelmet(new ItemStack(Material.OAK_SLAB)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0)), BodyPart.HEAD); packList.add(packet); location = getLutil().getRelativ(center, getBlockFace(), 0d, -1.2d).add(0, i*.62, 0); location.setYaw(getLutil().FaceToYaw(getBlockFace())-90); packet = getManager().createArmorStand(getObjID(), location); packet.getInventory().setHelmet(new ItemStack(Material.OAK_SLAB)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0)), BodyPart.HEAD); packList.add(packet); } double j = .44; Location loc1 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.32d).add(0, .9+j, 0); Location loc2 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.65d).add(0, .9+j, 0); Location loc3 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.32d).add(0, 1.53+j, 0); Location loc4 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.65d).add(0, 1.53+j, 0); Location loc5 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.22d).add(0, 4.2, 0); Location loc6 = getLutil().getRelativ(center.clone(), getBlockFace(), 0d, -.75d).add(0, 4.2, 0); Location loc7 = getLutil().getRelativ(center.clone(), getBlockFace(), -.43d, 0d).add(0, 4.5, 0); Location loc8 = getLutil().getRelativ(center.clone(), getBlockFace(), -.01d, -.22d).add(0, 3.6, 0); Location loc9 = getLutil().getRelativ(center.clone(), getBlockFace(), -.01d, -.75d).add(0, 3.6, 0); Location loc10 = getLutil().getRelativ(center.clone(), getBlockFace(), -.01d, -.33d).add(0, 3.5, 0); Location loc11 = getLutil().getRelativ(center.clone(), getBlockFace(), -.01d, -.82d).add(0, 3.3, 0); loc1.setYaw(getYaw()+90); loc2.setYaw(getYaw()-90); loc3.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); loc4.setYaw(getLutil().FaceToYaw(getBlockFace())); loc5.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); loc6.setYaw(getLutil().FaceToYaw(getBlockFace())); loc7.setYaw(getLutil().FaceToYaw(getBlockFace())-90); loc8.setYaw(getLutil().FaceToYaw(getBlockFace())); loc9.setYaw(getLutil().FaceToYaw(getBlockFace())); loc10.setYaw(getLutil().FaceToYaw(getBlockFace())); loc11.setYaw(getLutil().FaceToYaw(getBlockFace())); fArmorStand packet = getManager().createArmorStand(getObjID(), loc1); packet.getInventory().setHelmet(new ItemStack(Material.OAK_STAIRS)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc2); packet.getInventory().setHelmet(new ItemStack(Material.OAK_STAIRS)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc3); packet.getInventory().setHelmet(new ItemStack(Material.OAK_SLAB)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc4); packet.getInventory().setHelmet(new ItemStack(Material.OAK_SLAB)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc5); packet.getInventory().setHelmet(new ItemStack(Material.STONE_PRESSURE_PLATE)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc6); packet.getInventory().setHelmet(new ItemStack(Material.STONE_PRESSURE_PLATE)); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc7); packet.getInventory().setItemInMainHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); packList.add(packet); packet = getManager().createArmorStand(getObjID(), loc8); packet.getInventory().setHelmet(new ItemStack(Material.LIGHT_WEIGHTED_PRESSURE_PLATE)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0)), BodyPart.HEAD); packet.setName("iron1:" + loc8.getX() + ":" + loc8.getY() + ":" + loc8.getZ()); packList.add(packet); armorStandList.add(packet); packet = getManager().createArmorStand(getObjID(), loc9); packet.getInventory().setHelmet(new ItemStack(Material.LIGHT_WEIGHTED_PRESSURE_PLATE)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0)), BodyPart.HEAD); packet.setName("iron2:" + loc9.getX() + ":" + loc9.getY() + ":" + loc9.getZ()); packList.add(packet); armorStandList.add(packet); packet = getManager().createArmorStand(getObjID(), loc10); packet.getInventory().setHelmet(new ItemStack(Material.LIGHT_WEIGHTED_PRESSURE_PLATE)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, -22)), BodyPart.HEAD); packet.setName("iron3:" + loc10.getX() + ":" + loc10.getY() + ":" + loc10.getZ()); packList.add(packet); armorStandList.add(packet); packet = getManager().createArmorStand(getObjID(), loc11); packet.getInventory().setHelmet(new ItemStack(Material.LIGHT_WEIGHTED_PRESSURE_PLATE)); packet.setPose(getLutil().degresstoRad(new EulerAngle(90, 0, -22)), BodyPart.HEAD); packet.setName("iron4:" + loc11.getX() + ":" + loc11.getY() + ":" + loc11.getZ()); packList.add(packet); armorStandList.add(packet); Location loc12 = getLutil().getRelativ(center, getBlockFace(), -.9d, .5d).add(0, 1.7, 0); loc12.setYaw(getLutil().FaceToYaw(getBlockFace())+135); packet1 = getManager().createArmorStand(getObjID(), loc12); packet1.setPose(getLutil().degresstoRad(new EulerAngle(190,0,329)), BodyPart.RIGHT_ARM); packet1.setName("#Executioner#"); packet1.setArms(true); packet1.setMarker(true); packet1.setBasePlate(false); packList.add(packet1); Location loc13 = getLutil().getRelativ(center, getBlockFace(), -1d, -.5d).add(0, 1.7, 0); loc13.setYaw(getLutil().FaceToYaw(getBlockFace())); packet2 = getManager().createArmorStand(getObjID(), loc13); packet2.setPose(getLutil().degresstoRad(new EulerAngle(40,0,320)), BodyPart.RIGHT_ARM); packet2.setPose(getLutil().degresstoRad(new EulerAngle(33,0,41)), BodyPart.LEFT_ARM); packet2.setPose(getLutil().degresstoRad(new EulerAngle(40,25,0)), BodyPart.HEAD); packet2.setName("#Oblation#:" + loc13.getX() + ":" + loc13.getY() + ":" + loc13.getZ()); packet2.setArms(true); packet2.setMarker(true); packet2.setBasePlate(false); packList.add(packet2); Location loc14 = getLutil().getRelativ(center, getBlockFace(), 1d, -1d).add(0, +.3, 0); loc14.setYaw(getLutil().FaceToYaw(getBlockFace())+45); packet3 = getManager().createArmorStand(getObjID(), loc14); packet3.setMarker(true); packet3.setName("#HEAD#"); packList.add(packet3); for(fArmorStand packets : packList){ packets.setInvisible(true); packets.setBasePlate(false); } send(); Bukkit.getPluginManager().registerEvents(this, getPlugin()); } private boolean canDrop(ItemStack stack){ if(stack==null){return false;} if(stack.getType().equals(Material.AIR)){return false;} return true; } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { if(e.getID() == null || getObjID() == null) return; if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} if(!isRunning()){ if(canDrop(packet1.getHelmet())){getWorld().dropItem(getLocation(), packet1.getHelmet());} if(canDrop(packet1.getChestPlate())){getWorld().dropItem(getLocation(), packet1.getChestPlate());} if(canDrop(packet1.getLeggings())){getWorld().dropItem(getLocation(), packet1.getLeggings());} if(canDrop(packet1.getBoots())){getWorld().dropItem(getLocation(), packet1.getBoots());} if(canDrop(packet1.getItemInMainHand())){getWorld().dropItem(getLocation(), packet1.getItemInMainHand());} if(canDrop(packet2.getHelmet())){getWorld().dropItem(getLocation(), packet2.getHelmet());} if(canDrop(packet2.getChestPlate())){getWorld().dropItem(getLocation(), packet2.getChestPlate());} if(canDrop(packet2.getLeggings())){getWorld().dropItem(getLocation(), packet2.getLeggings());} if(canDrop(packet2.getBoots())){getWorld().dropItem(getLocation(), packet2.getBoots());} if(canDrop(packet3.getHelmet())){getWorld().dropItem(getLocation(), packet3.getHelmet());} if(!packet1.getName().equalsIgnoreCase("#Executioner#")){ ItemStack is = new ItemStack(Material.NAME_TAG); ItemMeta im = is.getItemMeta(); im.setDisplayName(packet1.getName()); getWorld().dropItem(getLocation(), is); } this.getObjID().remove(e.getPlayer()); getManager().remove(getObjID()); delete(); } } @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { if(e.getID() == null || getObjID() == null) return; if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} Player p = e.getPlayer(); if(!getLib().canBuild(e.getPlayer(), getObjID(), EventType.INTERACT)){return;} if(p.isSneaking()){ if(isFinish){return;} p.openInventory(invI); for(int i = 0; i<9;i++){invI.setItem(i, pane);} ItemStack is = new ItemStack(Material.ZOMBIE_HEAD); ItemMeta im = is.getItemMeta(); im.setDisplayName("§2Executioner"); is.setItemMeta(im); invI.setItem(2, is); is = new ItemStack(Material.PLAYER_HEAD); im = is.getItemMeta(); im.setDisplayName("§cOblation"); is.setItemMeta(im); invI.setItem(6, is); this.p = p; }else{ if(isRunning()){return;} if(canStart()&&!isFinish){ move(); }else if(canStart()&&isFinish){ setDefault(); } } } @EventHandler private void onClick(InventoryClickEvent e){ if(e.getClickedInventory()==null){return;} if(e.getCurrentItem()==null){return;} Player p = (Player) e.getWhoClicked(); if(p==null) return; if(e.getClickedInventory().equals(invI)){ e.setCancelled(true); if(e.getSlot() == 2){ p.closeInventory(); p.openInventory(invII); openInv(1); p.updateInventory(); }else if(e.getSlot() == 6){ p.closeInventory(); p.openInventory(invIII); openInv(2); p.updateInventory(); } }else if(e.getClickedInventory().equals(invII)){ if(e.getCurrentItem().equals(pane)){e.setCancelled(true);} Material m = e.getCurrentItem().getType(); if(m==null||m.equals(Material.AIR)){return;} switch (e.getSlot()) { case 10: if(!m.equals(Material.PLAYER_HEAD)){e.setCancelled(true);} break; case 16: if(!matList.contains(m)){e.setCancelled(true);} break; case 19: if(!matListI.contains(m)){e.setCancelled(true);} break; case 28: if(!matListII.contains(m)){e.setCancelled(true);} break; case 37: if(!matListIII.contains(m)){e.setCancelled(true);} break; case 43: if(!m.equals(Material.NAME_TAG)){e.setCancelled(true);} break; } }else if(e.getClickedInventory().equals(invIII)){ if(e.getCurrentItem().equals(pane)){e.setCancelled(true);} Material m = e.getCurrentItem().getType(); if(m==null||m.equals(Material.AIR)){return;} switch (e.getSlot()) { case 10: if(!m.equals(Material.PLAYER_HEAD)){e.setCancelled(true);} break; case 19: if(!matListI.contains(m)){e.setCancelled(true);} break; case 28: if(!matListII.contains(m)){e.setCancelled(true);} break; case 37: if(!matListIII.contains(m)){e.setCancelled(true);} break; } } } private boolean isRunning(){ if(timer!=null){return true;} return false; } private boolean canStart(){ if(isRunning()) return false; boolean a = false,b = false,c = false; a = !packet1.isInvisible(); b = !packet2.isInvisible(); if(packet1.getItemInMainHand()!=null&&!packet1.getItemInMainHand().getType().equals(Material.AIR)){ c = true; }else { if(!packet1.getItemInMainHand().getType().equals(Material.AIR)) System.out.println("material"); System.out.println("false"); } if(packet1.getItemInMainHand()!=null) { System.out.println("mainHand"); if(!packet1.getItemInMainHand().getType().equals(Material.AIR)) { System.out.println("material"); }else { System.out.println("material==null"); } }else { System.out.println("mainHand == null"); } if(a&&b&&c){ return true; } System.out.println("test"); return false; } private void move(){ if(isRunning()){return;} timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(getPlugin(), new Runnable() { boolean b1 = false; boolean b2 = false; boolean b3 = false; double d1 = .0; double d2 = .7; double d3 = -1.7; double d4 = 0; int i = 0; int j = 0; @Override public void run() { try{ EulerAngle angle = getLutil().Radtodegress(packet2.getHeadPose()); if(angle.getX()<90){ angle = angle.setX(angle.getX()+4); }else{b1=true;} if(angle.getY()>0){ angle = angle.setY(angle.getY()-6); }else{b2=true;} packet2.setHeadPose(getLutil().degresstoRad(angle)); update(); if(b1&&b2){ if(d1!=d2){ packet2.teleport(getLutil().getRelativ(packet2.getLocation(), getBlockFace(), .1, 0d)); update(); d1+=.1; }else{ if(!b3){ packet1.setRightArmPose(getLutil().degresstoRad(new EulerAngle(0,0,15))); packet1.setLeftArmPose(getLutil().degresstoRad(new EulerAngle(0,0,289))); b3=true; }else{ if(i!=10){ playSound(); i++; }else{ if(d4>d3){ for(fArmorStand stand : armorStandList){ stand.teleport(stand.getLocation().add(0, -1.7, 0)); } d4=-1.7; update(); }else{ if(j==0){ packet3.getInventory().setHelmet(packet2.getInventory().getHelmet()); packet2.getInventory().setHelmet(new ItemStack(Material.AIR)); update(); }else if(j!=0&&j<3){ update(); }else if(j == 3){ getWorld().playEffect(getLutil().getRelativ(getLocation(), getBlockFace(), 0d, -.1d).add(0, 1.3, 0), Effect.STEP_SOUND, Material.REDSTONE_BLOCK); stopTimer(); isFinish=true; return; } j++; } } } } } }catch(Exception e){ stopTimer(); } } }, 0, 1); } private void stopTimer(){ if(isRunning()){ Bukkit.getScheduler().cancelTask(timer); timer=null; } } @EventHandler private void onClose(InventoryCloseEvent e){ if(e.getInventory()==null){return;} if(e.getInventory().equals(invII)){ boolean invisible = true; //10,16,19,28,37,43 packet1.getInventory().setHelmet(invII.getItem(10)); packet1.getInventory().setChestPlate(invII.getItem(19)); packet1.getInventory().setLeggings(invII.getItem(28)); packet1.getInventory().setBoots(invII.getItem(37)); if(invII.getItem(10)!=null){invisible=false;} if(invII.getItem(19)!=null){invisible=false;} if(invII.getItem(28)!=null){invisible=false;} if(invII.getItem(37)!=null){invisible=false;} if(!invisible){ if(invII.getItem(43)!=null){ if(invII.getItem(43).hasItemMeta()&&invII.getItem(43).getItemMeta().hasDisplayName()){ packet1.setName(ChatColor.translateAlternateColorCodes('&', invII.getItem(43).getItemMeta().getDisplayName())); packet1.setNameVasibility(true); }else{ if(invII.getItem(43)!=null&&!invII.getItem(43).getType().equals(Material.AIR)){getWorld().dropItem(getLocation().clone().add(0, 1, 0), invII.getItem(43));} packet1.setName("#Executioner#"); packet1.setNameVasibility(false); packet1.setInvisible(false); } }else{ if(invII.getItem(43)!=null&&!invII.getItem(43).getType().equals(Material.AIR)){getWorld().dropItem(getLocation().clone().add(0, 1, 0), invII.getItem(43));} packet1.setName("#Executioner#"); packet1.setNameVasibility(false); } if(invII.getItem(16)!=null){ packet1.getInventory().setItemInMainHand(invII.getItem(16)); } }else{ if(invII.getItem(43)!=null&&!invII.getItem(43).getType().equals(Material.AIR)){getWorld().dropItem(getLocation().clone().add(0, 1, 0), invII.getItem(43));} if(invII.getItem(16)!=null&&!invII.getItem(16).getType().equals(Material.AIR)){getWorld().dropItem(getLocation().clone().add(0, 1, 0), invII.getItem(16));} packet1.getInventory().setItemInMainHand(new ItemStack(Material.AIR)); packet1.setName("#Executioner#"); packet1.setNameVasibility(!invisible); } packet1.setArms(true); packet1.setBasePlate(false); packet1.setInvisible(invisible); update(); this.p = null; }else if(e.getInventory().equals(invIII)){ boolean invisible = true; packet2.getInventory().setHelmet(invIII.getItem(10)); packet2.getInventory().setChestPlate(invIII.getItem(19)); packet2.getInventory().setLeggings(invIII.getItem(28)); packet2.getInventory().setBoots(invIII.getItem(37)); if(invIII.getItem(10)!=null){invisible=false;} if(invIII.getItem(19)!=null){invisible=false;} if(invIII.getItem(28)!=null){invisible=false;} if(invIII.getItem(37)!=null){invisible=false;} packet2.setBasePlate(false); packet2.setArms(true); packet2.setInvisible(invisible); update(); this.p = null; } } private void playSound(){ if(!soundPlaying){ getWorld().playSound(getLocation(), Sound.ENTITY_GHAST_DEATH, 2, 1); getWorld().playSound(getLocation(), Sound.ENTITY_GHAST_SCREAM, 1, 1); getWorld().playSound(getLocation(), Sound.ENTITY_GHAST_WARN, 1, 1); soundPlaying= true; } } private void openInv(int i){ if(i>2||i<1){return;} fArmorStand packet; Inventory inv; if(i==1){ packet = packet1; inv = invII; }else{ packet = packet2; inv = invIII; } for(int j = 0; j