furniture/src/de/Ste3et_C0st/Furniture/Objects/RPG/guillotine.java

676 lines
24 KiB
Java

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<Integer> intList = Arrays.asList(10,16,19,28,37,43);
List<Material> 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<Material> matListI = Arrays.asList(
Material.LEATHER_CHESTPLATE,Material.IRON_CHESTPLATE,Material.GOLDEN_CHESTPLATE,
Material.DIAMOND_CHESTPLATE, Material.CHAINMAIL_CHESTPLATE);
List<Material> matListII = Arrays.asList(
Material.LEATHER_LEGGINGS,Material.IRON_LEGGINGS,Material.GOLDEN_LEGGINGS,
Material.DIAMOND_LEGGINGS, Material.CHAINMAIL_LEGGINGS);
List<Material> matListIII = Arrays.asList(
Material.LEATHER_BOOTS,Material.IRON_BOOTS,Material.GOLDEN_BOOTS,
Material.DIAMOND_BOOTS, Material.CHAINMAIL_BOOTS);
List<fArmorStand> armorStandList = new ArrayList<fArmorStand>();
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<fArmorStand> packList = new ArrayList<fArmorStand>();
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<inv.getSize();j++){
Material m = Material.AIR;
if(!packet.getName().equalsIgnoreCase("#Executioner#")){m = Material.NAME_TAG;}
ItemStack stack = new ItemStack(Material.AIR);
ItemMeta meta = stack.getItemMeta();
if(!m.equals(Material.AIR)){
if(packet.getName()!=null){
if(meta!=null){
meta.setDisplayName(packet.getName());
stack.setItemMeta(meta);
}
}
}
switch(j){
case 10:inv.setItem(j, packet.getHelmet());break;
case 19:inv.setItem(j, packet.getChestPlate());break;
case 28:inv.setItem(j, packet.getLeggings());break;
case 37:inv.setItem(j, packet.getBoots());break;
case 16:if(i==1){inv.setItem(j, packet.getItemInMainHand());break;}
case 43:if(i==1){inv.setItem(j, stack);break;}
default: inv.setItem(j, pane);break;
}
}
if(i==1){
invII = inv;
}else{
invIII = inv;
}
}
}