From 358a44962e3304ba4903f31bb88c28ad9b6e7694 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 31 Oct 2015 23:50:14 +0100 Subject: [PATCH] Make the Plugin Compatible with the newes FurnitureLib --- src/Crafting/BearTrap.yml | 12 + src/Crafting/BlackBoard.yml | 11 + src/Crafting/CactusPlant.yml | 11 + src/Crafting/Catapult.yml | 12 + src/Crafting/Crossbow.yml | 13 + src/Crafting/FlowerPot.yml | 12 + src/Crafting/HumanSkeleton.yml | 12 + src/Crafting/SchoolChair.yml | 12 + src/Crafting/SchoolTable.yml | 12 + src/Crafting/SleepingBag.yml | 12 + src/Crafting/TrashCan.yml | 11 + src/Crafting/Trunk.yml | 11 + src/Crafting/WaterBottle.yml | 12 + src/Crafting/flag.yml | 13 + src/Crafting/guillotine.yml | 10 + src/Crafting/log.yml | 12 + src/damage.yml | 1 + src/de/Ste3et_C0st/Furniture/Main/main.java | 214 ++++-- .../Furniture/Objects/RPG/Crossbow.java | 254 +++++++ .../Furniture/Objects/RPG/HumanSkeleton.java | 96 +++ .../Furniture/Objects/RPG/catapult.java | 196 ++++++ .../Furniture/Objects/RPG/flag.java | 209 ++++++ .../Furniture/Objects/RPG/guillotine.java | 642 ++++++++++++++++++ .../Furniture/Objects/RPG/weaponStand.java | 150 ++-- .../Furniture/Objects/School/BlackBoard.java | 114 ++++ .../Furniture/Objects/School/SchoolChair.java | 116 ++++ .../Furniture/Objects/School/SchoolTable.java | 146 ++++ .../Furniture/Objects/School/TrashCan.java | 111 +++ .../Furniture/Objects/electric/billboard.java | 85 +-- .../Furniture/Objects/electric/camera.java | 114 ++-- .../Objects/electric/streetlamp.java | 166 ++--- .../Furniture/Objects/electric/tv.java | 82 +-- .../Furniture/Objects/garden/SleepingBag.java | 89 +++ .../Furniture/Objects/garden/TFlowerPot.java | 142 ++++ .../Furniture/Objects/garden/Trunk.java | 120 ++++ .../Furniture/Objects/garden/WaterBottle.java | 171 +++++ .../Furniture/Objects/garden/campchair.java | 88 +-- .../Furniture/Objects/garden/fance.java | 126 ++-- .../Furniture/Objects/garden/graveStone.java | 139 ++-- .../Furniture/Objects/garden/log.java | 331 +++++++++ .../Furniture/Objects/garden/mailBox.java | 129 ++-- .../Furniture/Objects/garden/sunshade.java | 270 ++++---- .../Furniture/Objects/indoor/chair.java | 89 +-- .../Furniture/Objects/indoor/lantern.java | 82 +-- .../Furniture/Objects/indoor/largeTable.java | 148 ++-- .../Furniture/Objects/indoor/sofa.java | 139 ++-- .../Furniture/Objects/indoor/table.java | 83 +-- .../Objects/outdoor/CactusPlant.java | 111 +++ .../Furniture/Objects/outdoor/barrels.java | 141 ++-- .../Furniture/Objects/outdoor/campfire_1.java | 85 +-- .../Furniture/Objects/outdoor/campfire_2.java | 135 ++-- .../Furniture/Objects/outdoor/hammock.java | 249 +++---- .../Furniture/Objects/outdoor/tent_1.java | 219 +++--- .../Furniture/Objects/outdoor/tent_2.java | 130 ++-- .../Furniture/Objects/outdoor/tent_3.java | 146 ++-- .../Furniture/Objects/trap/BearTrap.java | 141 ++++ src/plugin.yml | 2 +- 57 files changed, 4513 insertions(+), 1876 deletions(-) create mode 100644 src/Crafting/BearTrap.yml create mode 100644 src/Crafting/BlackBoard.yml create mode 100644 src/Crafting/CactusPlant.yml create mode 100644 src/Crafting/Catapult.yml create mode 100644 src/Crafting/Crossbow.yml create mode 100644 src/Crafting/FlowerPot.yml create mode 100644 src/Crafting/HumanSkeleton.yml create mode 100644 src/Crafting/SchoolChair.yml create mode 100644 src/Crafting/SchoolTable.yml create mode 100644 src/Crafting/SleepingBag.yml create mode 100644 src/Crafting/TrashCan.yml create mode 100644 src/Crafting/Trunk.yml create mode 100644 src/Crafting/WaterBottle.yml create mode 100644 src/Crafting/flag.yml create mode 100644 src/Crafting/guillotine.yml create mode 100644 src/Crafting/log.yml create mode 100644 src/damage.yml create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/RPG/HumanSkeleton.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/RPG/catapult.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/RPG/flag.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/RPG/guillotine.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/School/BlackBoard.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/School/SchoolChair.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/School/SchoolTable.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/School/TrashCan.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/garden/SleepingBag.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/garden/TFlowerPot.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/garden/Trunk.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/garden/WaterBottle.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/garden/log.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/outdoor/CactusPlant.java create mode 100644 src/de/Ste3et_C0st/Furniture/Objects/trap/BearTrap.java diff --git a/src/Crafting/BearTrap.yml b/src/Crafting/BearTrap.yml new file mode 100644 index 0000000..77202bc --- /dev/null +++ b/src/Crafting/BearTrap.yml @@ -0,0 +1,12 @@ +BearTrap: + name: '&cBearTrap' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XXX,AAA,XOX + index: + X: 0 + A: 101 + O: 167 \ No newline at end of file diff --git a/src/Crafting/BlackBoard.yml b/src/Crafting/BlackBoard.yml new file mode 100644 index 0000000..7ca7517 --- /dev/null +++ b/src/Crafting/BlackBoard.yml @@ -0,0 +1,11 @@ +BlackBoard: + name: '&cBlackBoard' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: AAA,AAA,OOO + index: + A: 425 + O: 72 \ No newline at end of file diff --git a/src/Crafting/CactusPlant.yml b/src/Crafting/CactusPlant.yml new file mode 100644 index 0000000..eac20c5 --- /dev/null +++ b/src/Crafting/CactusPlant.yml @@ -0,0 +1,11 @@ +CactusPlant: + name: '&cCactusPlant' + material: 383 + glow: true + lore: '' + crafting: + disable: true + recipe: X0X,X0X,XXX + index: + '0': 0 + X: 280 \ No newline at end of file diff --git a/src/Crafting/Catapult.yml b/src/Crafting/Catapult.yml new file mode 100644 index 0000000..e48c6d1 --- /dev/null +++ b/src/Crafting/Catapult.yml @@ -0,0 +1,12 @@ +Catapult: + name: '&cCatapult' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: AXA,ABA,AAA + index: + X: 0 + A: 17 + B: 261 \ No newline at end of file diff --git a/src/Crafting/Crossbow.yml b/src/Crafting/Crossbow.yml new file mode 100644 index 0000000..d8a92f5 --- /dev/null +++ b/src/Crafting/Crossbow.yml @@ -0,0 +1,13 @@ +Crossbow: + name: '&cCrossbow' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XAX,XOX,OBO + index: + X: 0 + A: 261 + O: 280 + B: 44 \ No newline at end of file diff --git a/src/Crafting/FlowerPot.yml b/src/Crafting/FlowerPot.yml new file mode 100644 index 0000000..2d444c5 --- /dev/null +++ b/src/Crafting/FlowerPot.yml @@ -0,0 +1,12 @@ +FlowerPot: + name: '&cFlowerPot' + material: 383 + glow: false + lore: '' + crafting: + disable: true + recipe: XTX,ATA,TAT + index: + T: 0 + X: 280 + A: 336 \ No newline at end of file diff --git a/src/Crafting/HumanSkeleton.yml b/src/Crafting/HumanSkeleton.yml new file mode 100644 index 0000000..b4afa50 --- /dev/null +++ b/src/Crafting/HumanSkeleton.yml @@ -0,0 +1,12 @@ +HumanSkeleton: + name: '&cHumanSkeleton' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XAX,XOX,XOX + index: + X: 0 + A: 397 + O: 352 \ No newline at end of file diff --git a/src/Crafting/SchoolChair.yml b/src/Crafting/SchoolChair.yml new file mode 100644 index 0000000..e2494a9 --- /dev/null +++ b/src/Crafting/SchoolChair.yml @@ -0,0 +1,12 @@ +SchoolChair: + name: '&cSchoolChair' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XXA,XAA,XOO + index: + X: 0 + A: 148 + O: 280 \ No newline at end of file diff --git a/src/Crafting/SchoolTable.yml b/src/Crafting/SchoolTable.yml new file mode 100644 index 0000000..c0f3cb2 --- /dev/null +++ b/src/Crafting/SchoolTable.yml @@ -0,0 +1,12 @@ +SchoolTable: + name: '&cSchoolTable' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: AAA,OXO,OXO + index: + X: 0 + A: 72 + O: 280 \ No newline at end of file diff --git a/src/Crafting/SleepingBag.yml b/src/Crafting/SleepingBag.yml new file mode 100644 index 0000000..9e91d5f --- /dev/null +++ b/src/Crafting/SleepingBag.yml @@ -0,0 +1,12 @@ +SleepingBag: + name: '&cSleepingBag' + material: 383 + glow: false + lore: '' + crafting: + disable: true + recipe: XXX,AOA,AAA + index: + X: 0 + A: 35 + O: 355 \ No newline at end of file diff --git a/src/Crafting/TrashCan.yml b/src/Crafting/TrashCan.yml new file mode 100644 index 0000000..eb2171b --- /dev/null +++ b/src/Crafting/TrashCan.yml @@ -0,0 +1,11 @@ +TrashCan: + name: '&cTrashCan' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XOX,XOX,OXO + index: + O: 0 + X: 101 \ No newline at end of file diff --git a/src/Crafting/Trunk.yml b/src/Crafting/Trunk.yml new file mode 100644 index 0000000..716aa59 --- /dev/null +++ b/src/Crafting/Trunk.yml @@ -0,0 +1,11 @@ +Trunk: + name: '&cTrunk' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XXX,XXX,AAA + index: + X: 0 + A: 17 \ No newline at end of file diff --git a/src/Crafting/WaterBottle.yml b/src/Crafting/WaterBottle.yml new file mode 100644 index 0000000..2c4372d --- /dev/null +++ b/src/Crafting/WaterBottle.yml @@ -0,0 +1,12 @@ +WaterBottle: + name: '&cWaterBottle' + material: 383 + glow: false + lore: '' + crafting: + disable: true + recipe: XXX,XAX,XOX + index: + X: 0 + A: 373 + O: 111 \ No newline at end of file diff --git a/src/Crafting/flag.yml b/src/Crafting/flag.yml new file mode 100644 index 0000000..2956728 --- /dev/null +++ b/src/Crafting/flag.yml @@ -0,0 +1,13 @@ +Flag: + name: '&cFlag' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XAX,XBO,XAX + index: + X: 0 + A: 44 + B: 280 + O: 425 \ No newline at end of file diff --git a/src/Crafting/guillotine.yml b/src/Crafting/guillotine.yml new file mode 100644 index 0000000..a291699 --- /dev/null +++ b/src/Crafting/guillotine.yml @@ -0,0 +1,10 @@ +Guillotine: + name: '&cGuillotine' + material: 383 + glow: false + lore: '' + crafting: + disable: true + recipe: XXX,XXX,XXX + index: + X: 0 \ No newline at end of file diff --git a/src/Crafting/log.yml b/src/Crafting/log.yml new file mode 100644 index 0000000..23ea2a2 --- /dev/null +++ b/src/Crafting/log.yml @@ -0,0 +1,12 @@ +Log: + name: '&cLog' + material: 383 + glow: false + lore: '' + crafting: + disable: false + recipe: XXX,XAX,XOX + index: + X: 0 + A: 389 + O: 17 \ No newline at end of file diff --git a/src/damage.yml b/src/damage.yml new file mode 100644 index 0000000..536294c --- /dev/null +++ b/src/damage.yml @@ -0,0 +1 @@ +damage: 2.0 \ No newline at end of file diff --git a/src/de/Ste3et_C0st/Furniture/Main/main.java b/src/de/Ste3et_C0st/Furniture/Main/main.java index 2fb262b..5832532 100644 --- a/src/de/Ste3et_C0st/Furniture/Main/main.java +++ b/src/de/Ste3et_C0st/Furniture/Main/main.java @@ -15,14 +15,28 @@ import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; +import de.Ste3et_C0st.Furniture.Objects.RPG.Crossbow; +import de.Ste3et_C0st.Furniture.Objects.RPG.HumanSkeleton; +import de.Ste3et_C0st.Furniture.Objects.RPG.catapult; +import de.Ste3et_C0st.Furniture.Objects.RPG.flag; +import de.Ste3et_C0st.Furniture.Objects.RPG.guillotine; import de.Ste3et_C0st.Furniture.Objects.RPG.weaponStand; +import de.Ste3et_C0st.Furniture.Objects.School.BlackBoard; +import de.Ste3et_C0st.Furniture.Objects.School.SchoolChair; +import de.Ste3et_C0st.Furniture.Objects.School.SchoolTable; +import de.Ste3et_C0st.Furniture.Objects.School.TrashCan; import de.Ste3et_C0st.Furniture.Objects.electric.billboard; import de.Ste3et_C0st.Furniture.Objects.electric.camera; import de.Ste3et_C0st.Furniture.Objects.electric.streetlamp; import de.Ste3et_C0st.Furniture.Objects.electric.tv; +import de.Ste3et_C0st.Furniture.Objects.garden.SleepingBag; +import de.Ste3et_C0st.Furniture.Objects.garden.TFlowerPot; +import de.Ste3et_C0st.Furniture.Objects.garden.Trunk; +import de.Ste3et_C0st.Furniture.Objects.garden.WaterBottle; import de.Ste3et_C0st.Furniture.Objects.garden.campchair; import de.Ste3et_C0st.Furniture.Objects.garden.fance; import de.Ste3et_C0st.Furniture.Objects.garden.graveStone; +import de.Ste3et_C0st.Furniture.Objects.garden.log; import de.Ste3et_C0st.Furniture.Objects.garden.mailBox; import de.Ste3et_C0st.Furniture.Objects.garden.sunshade; import de.Ste3et_C0st.Furniture.Objects.indoor.chair; @@ -30,6 +44,7 @@ import de.Ste3et_C0st.Furniture.Objects.indoor.largeTable; import de.Ste3et_C0st.Furniture.Objects.indoor.lantern; import de.Ste3et_C0st.Furniture.Objects.indoor.sofa; import de.Ste3et_C0st.Furniture.Objects.indoor.table; +import de.Ste3et_C0st.Furniture.Objects.outdoor.CactusPlant; import de.Ste3et_C0st.Furniture.Objects.outdoor.barrels; import de.Ste3et_C0st.Furniture.Objects.outdoor.campfire_1; import de.Ste3et_C0st.Furniture.Objects.outdoor.campfire_2; @@ -37,13 +52,15 @@ import de.Ste3et_C0st.Furniture.Objects.outdoor.hammock; import de.Ste3et_C0st.Furniture.Objects.outdoor.tent_1; import de.Ste3et_C0st.Furniture.Objects.outdoor.tent_2; import de.Ste3et_C0st.Furniture.Objects.outdoor.tent_3; -import de.Ste3et_C0st.FurnitureLib.Crafting.CraftingFile; +import de.Ste3et_C0st.Furniture.Objects.trap.BearTrap; import de.Ste3et_C0st.FurnitureLib.Crafting.Project; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureItemEvent; import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; +import de.Ste3et_C0st.FurnitureLib.main.Type.CenterType; +import de.Ste3et_C0st.FurnitureLib.main.Type.PlaceableSide; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; public class main extends JavaPlugin implements Listener{ @@ -52,6 +69,7 @@ public class main extends JavaPlugin implements Listener{ FurnitureManager manager; config c; FileConfiguration file; + public static double damage = 0; static main instance; static LocationUtil util; public static List materialWhiteList = new ArrayList(); @@ -64,29 +82,44 @@ public class main extends JavaPlugin implements Listener{ util = lib.getLocationUtil(); Bukkit.getPluginManager().registerEvents(this, this); - new Project("Camera", new CraftingFile("Camera", getResource("Crafting/Camera.yml")),this, camera.class); - new Project("TV", new CraftingFile("TV", getResource("Crafting/TV.yml")),this, tv.class); - new Project("GraveStone", new CraftingFile("GraveStone", getResource("Crafting/GraveStone.yml")),this, graveStone.class); - new Project("Chair", new CraftingFile("Chair", getResource("Crafting/Chair.yml")),this, chair.class); - new Project("LargeTable", new CraftingFile("LargeTable", getResource("Crafting/LargeTable.yml")),this, largeTable.class).setSize(2, 1, 2); - new Project("Lantern", new CraftingFile("Lantern", getResource("Crafting/Lantern.yml")),this, lantern.class); - new Project("Sofa", new CraftingFile("Sofa", getResource("Crafting/Sofa.yml")),this, sofa.class).setSize(0, 1, 2); - new Project("Table", new CraftingFile("Table", getResource("Crafting/Table.yml")),this, table.class); - new Project("Barrels", new CraftingFile("Barrels", getResource("Crafting/Barrels.yml")),this, barrels.class); - new Project("Campfire1", new CraftingFile("Campfire1", getResource("Crafting/Campfire1.yml")),this, campfire_1.class); - new Project("Campfire2", new CraftingFile("Campfire2", getResource("Crafting/Campfire2.yml")),this, campfire_2.class).setSize(1, 1, 1); - new Project("Tent1", new CraftingFile("Tent1", getResource("Crafting/Tent1.yml")),this, tent_1.class).setSize(3, 4, 4); - new Project("Tent2", new CraftingFile("Tent2", getResource("Crafting/Tent2.yml")),this, tent_2.class).setSize(3, 3, 5); - new Project("Tent3", new CraftingFile("Tent3", getResource("Crafting/Tent3.yml")),this, tent_3.class).setSize(1, 2, 3); - new Project("Fence", new CraftingFile("Fence", getResource("Crafting/fence.yml")), this, fance.class); - new Project("Sunshade", new CraftingFile("Sunshade", getResource("Crafting/Sunshade.yml")), this, sunshade.class); - new Project("Streetlamp", new CraftingFile("Streetlamp", getResource("Crafting/Streetlamp.yml")), this, sunshade.class); - new Project("Billboard", new CraftingFile("Billboard", getResource("Crafting/Billboard.yml")), this, billboard.class); - new Project("Mailbox", new CraftingFile("Mailbox", getResource("Crafting/Mailbox.yml")), this, mailBox.class); - new Project("WeaponStand", new CraftingFile("WeaponStand", getResource("Crafting/WeaponStand.yml")), this, weaponStand.class); - new Project("Hammock", new CraftingFile("Hammock", getResource("Crafting/Hammock.yml")), this, hammock.class); - new Project("CampChair", new CraftingFile("CampChair", getResource("Crafting/CampChair.yml")), this, campchair.class); - + new Project("Camera", this,getResource("Crafting/Camera.yml"),PlaceableSide.TOP, camera.class); + new Project("TV", this,getResource("Crafting/TV.yml"),PlaceableSide.TOP, tv.class).setSize(1, 2, 3, CenterType.CENTER); + new Project("GraveStone", this,getResource("Crafting/GraveStone.yml"),PlaceableSide.TOP, graveStone.class).setSize(1, 2, 3, CenterType.CENTER); + new Project("Chair", this,getResource("Crafting/Chair.yml"),PlaceableSide.TOP, chair.class); + new Project("LargeTable", this,getResource("Crafting/LargeTable.yml"),PlaceableSide.TOP, largeTable.class).setSize(2, 1, 2, CenterType.RIGHT); + new Project("Lantern", this,getResource("Crafting/Lantern.yml"),PlaceableSide.TOP, lantern.class); + new Project("Sofa", this,getResource("Crafting/Sofa.yml"),PlaceableSide.TOP, sofa.class).setSize(1, 1, 3, CenterType.RIGHT); + new Project("Table", this,getResource("Crafting/Table.yml"),PlaceableSide.TOP, table.class); + new Project("Barrels", this,getResource("Crafting/Barrels.yml"),PlaceableSide.TOP, barrels.class); + new Project("Campfire1", this,getResource("Crafting/Campfire1.yml"),PlaceableSide.TOP, campfire_1.class); + new Project("Campfire2", this,getResource("Crafting/Campfire2.yml"),PlaceableSide.TOP, campfire_2.class).setSize(1, 1, 1, CenterType.RIGHT); + new Project("Tent1", this,getResource("Crafting/Tent1.yml"),PlaceableSide.TOP, tent_1.class).setSize(4, 3, 5, CenterType.RIGHT); + new Project("Tent2", this,getResource("Crafting/Tent2.yml"),PlaceableSide.TOP, tent_2.class).setSize(4, 3, 5, CenterType.RIGHT); + new Project("Tent3", this,getResource("Crafting/Tent3.yml"),PlaceableSide.TOP, tent_3.class).setSize(3, 2, 3, CenterType.CENTER); + new Project("Fence", this, getResource("Crafting/fence.yml"),PlaceableSide.TOP, fance.class); + new Project("Sunshade", this, getResource("Crafting/Sunshade.yml"),PlaceableSide.TOP, sunshade.class).setSize(1, 3, 1, CenterType.RIGHT); + new Project("Streetlamp", this, getResource("Crafting/Streetlamp.yml"),PlaceableSide.TOP, streetlamp.class).setSize(2, 4, 1, CenterType.FRONT); + new Project("Billboard", this, getResource("Crafting/Billboard.yml"),PlaceableSide.TOP, billboard.class).setSize(1, 3, 3, CenterType.RIGHT); + new Project("Mailbox", this, getResource("Crafting/Mailbox.yml"),PlaceableSide.TOP, mailBox.class).setSize(1, 2, 1, CenterType.RIGHT); + new Project("WeaponStand", this, getResource("Crafting/WeaponStand.yml"),PlaceableSide.TOP, weaponStand.class).setSize(1, 1, 1, CenterType.RIGHT); + new Project("Hammock", this, getResource("Crafting/Hammock.yml"),PlaceableSide.TOP, hammock.class).setSize(1, 2, 7, CenterType.RIGHT); + new Project("CampChair", this, getResource("Crafting/CampChair.yml"),PlaceableSide.TOP, campchair.class); + new Project("CactusPlant", this, getResource("Crafting/CactusPlant.yml"),PlaceableSide.TOP, CactusPlant.class); + new Project("Guillotine", this, getResource("Crafting/guillotine.yml"),PlaceableSide.TOP, guillotine.class).setSize(1, 5, 2, CenterType.RIGHT); + new Project("Log", this, getResource("Crafting/log.yml"), PlaceableSide.TOP, log.class); + new Project("FlowerPot", this, getResource("Crafting/FlowerPot.yml"),PlaceableSide.BOTTOM, TFlowerPot.class); + new Project("WaterBottle", this, getResource("Crafting/WaterBottle.yml"), PlaceableSide.WATER, WaterBottle.class); + new Project("SleepingBag", this, getResource("Crafting/SleepingBag.yml"), PlaceableSide.TOP, SleepingBag.class).setSize(1, 1, 2, CenterType.RIGHT); + new Project("BearTrap", this, getResource("Crafting/BearTrap.yml"), PlaceableSide.TOP, BearTrap.class); + new Project("Trunk", this, getResource("Crafting/Trunk.yml"), PlaceableSide.TOP, Trunk.class).setSize(1, 1, 4, CenterType.RIGHT); + new Project("SchoolTable", this, getResource("Crafting/SchoolTable.yml"), PlaceableSide.TOP, SchoolTable.class); + new Project("SchoolChair", this, getResource("Crafting/SchoolChair.yml"), PlaceableSide.TOP, SchoolChair.class); + new Project("BlackBoard", this, getResource("Crafting/BlackBoard.yml"), PlaceableSide.SIDE, BlackBoard.class).setSize(1, 2, 3, CenterType.RIGHT); + new Project("TrashCan", this, getResource("Crafting/TrashCan.yml"), PlaceableSide.TOP, TrashCan.class); + new Project("HumanSkeleton", this, getResource("Crafting/HumanSkeleton.yml"), PlaceableSide.TOP, HumanSkeleton.class).setSize(3, 1, 2, CenterType.RIGHT); + new Project("Crossbow", this, getResource("Crafting/Crossbow.yml"), PlaceableSide.TOP, Crossbow.class); + new Project("Catapult", this, getResource("Crafting/Catapult.yml"), PlaceableSide.TOP, catapult.class).setSize(3, 2, 3, CenterType.RIGHT); + new Project("Flag", this, getResource("Crafting/flag.yml"), PlaceableSide.TOP, flag.class); List objList = new ArrayList(); for(ObjectID obj : manager.getObjectList()){ if(obj==null) continue; @@ -96,29 +129,45 @@ public class main extends JavaPlugin implements Listener{ if(obj.getSQLAction().equals(SQLAction.REMOVE)) continue; if(obj.getPlugin().equalsIgnoreCase(this.getName())){ switch (obj.getProject()) { - case "Camera":new camera(lib, this, obj);break; - case "TV":new tv(lib, this, obj);break; - case "GraveStone":new graveStone(lib, this, obj);break; - case "Chair":new chair(lib, this, obj);break; - case "LargeTable":new largeTable(lib, this, obj);break; - case "Lantern":new lantern(lib, this, obj);break; - case "Sofa":new sofa(lib, this, obj);break; - case "Table":new table(lib, this, obj);break; - case "Barrels":new barrels(lib, this, obj);break; - case "Campfire1":new campfire_1(lib, this, obj);break; - case "Campfire2":new campfire_2(lib, this, obj);break; - case "Tent1":new tent_1(lib, this, obj);break; - case "Tent2":new tent_2(lib, this, obj);break; - case "Tent3":new tent_3(lib, this, obj);break; - case "Fence":new fance(lib, this, obj);break; - case "Sunshade":new sunshade(lib, this, obj);break; - case "Streetlamp":new streetlamp(lib, this, obj);break; - case "Billboard": new billboard(lib, this, obj); break; - case "WeaponStand": new weaponStand(lib, this, obj);break; - case "Hammock": new hammock(lib, this, obj); break; - case "CampChair": new campchair(lib, this, obj); break; + case "Camera":new camera(this, obj);break; + case "TV":new tv(this, obj);break; + case "GraveStone":new graveStone(this, obj);break; + case "Chair":new chair(this, obj);break; + case "LargeTable":new largeTable(this, obj);break; + case "Lantern":new lantern(this, obj);break; + case "Sofa":new sofa(this, obj);break; + case "Table":new table(this, obj);break; + case "Barrels":new barrels(this, obj);break; + case "Campfire1":new campfire_1(this, obj);break; + case "Campfire2":new campfire_2(this, obj);break; + case "Tent1":new tent_1(this, obj);break; + case "Tent2":new tent_2(this, obj);break; + case "Tent3":new tent_3(this, obj);break; + case "Fence":new fance(this, obj);break; + case "Sunshade":new sunshade(this, obj);break; + case "Streetlamp":new streetlamp(this, obj);break; + case "Billboard": new billboard(this, obj); break; + case "WeaponStand": new weaponStand(this, obj);break; + case "Hammock": new hammock(this, obj); break; + case "CampChair": new campchair(this, obj); break; + case "CactusPlant": new CactusPlant(this, obj); break; + case "Guillotine": new guillotine(this, obj); break; + case "FlowerPot": new TFlowerPot(this, obj);break; + case "WaterBottle": new WaterBottle(this, obj); break; + case "SleepingBag": new SleepingBag(this, obj); break; + case "BearTrap": new BearTrap(this, obj); break; + case "Trunk": new Trunk(this, obj); break; + case "SchoolTable": new SchoolTable(this, obj); break; + case "SchoolChair": new SchoolChair(this, obj); break; + case "BlackBoard": new BlackBoard(this, obj); break; + case "TrashCan": new TrashCan(this, obj); break; + case "HumanSkeleton": new HumanSkeleton(this, obj);break; + case "Crossbow": new Crossbow(this, obj);break; + case "Catapult": new catapult(this, obj); break; + case "Flag": new flag(this, obj); break; + case "Log": new log(this, obj); case "Mailbox" : - mailBox mail = new mailBox(lib, this, obj); + mailBox mail = new mailBox(lib, obj); /*try { mail.addMailbox(loadPlayerMailBox(obj)); } catch (Exception e) { @@ -139,8 +188,21 @@ public class main extends JavaPlugin implements Listener{ this.file.options().copyDefaults(true); this.c.saveConfig("whiteList", this.file, "plugin/fence/"); setDefaults(); + + c = new config(); + this.file = c.getConfig("damage", "plugin/bearTrap/"); + this.file.addDefaults(YamlConfiguration.loadConfiguration(getResource("damage.yml"))); + this.file.options().copyDefaults(true); + this.c.saveConfig("damage", this.file, "plugin/bearTrap/"); + setDefaults_2(); } + private void setDefaults_2(){ + c = new config(); + this.file = c.getConfig("damage", "plugin/bearTrap/"); + damage = this.file.getDouble("damage"); + } + private void setDefaults(){ c = new config(); this.file = c.getConfig("whiteList", "plugin/fence/"); @@ -179,28 +241,44 @@ public class main extends JavaPlugin implements Listener{ ObjectID obj = e.getObjID(); if(!e.canBuild()){return;} switch(e.getProject().getName()){ - case "Camera" : new camera(lib, instance, obj);break; - case "TV" : new tv(lib, instance, obj);break; - case "GraveStone" : new graveStone(lib, instance, obj);break; - case "Chair" : new chair(lib, instance, obj); break; - case "LargeTable" : new largeTable(lib, instance, obj);break; - case "Lantern" : new lantern(lib, instance, obj);break; - case "Sofa" : new sofa(lib, instance, obj);break; - case "Table" : new table(lib, instance, obj);break; - case "Barrels" : new barrels(lib, instance, obj);break; - case "Campfire1" : new campfire_1(lib, instance, obj);break; - case "Campfire2" : new campfire_2(lib, instance, obj);break; - case "Tent1" : new tent_1(lib, instance, obj);break; - case "Tent2" : new tent_2(lib, instance, obj);break; - case "Tent3" : new tent_3(lib, instance, obj);break; - case "Fence" : new fance(lib, instance, obj);break; - case "Sunshade": new sunshade(lib, instance, obj);break; - case "Streetlamp": new streetlamp(lib, this, obj);break; - case "Billboard": new billboard(lib, instance, obj);break; - case "Mailbox" : new mailBox(lib, instance, obj); break; - case "WeaponStand": new weaponStand(lib, instance, obj); break; - case "Hammock": new hammock(lib, instance, obj); break; - case "CampChair": new campchair(lib, instance, obj); break; + case "Camera" : new camera(this, obj);break; + case "TV" : new tv(this, obj);break; + case "GraveStone" : new graveStone(this, obj);break; + case "Chair" : new chair(this, obj); break; + case "LargeTable" : new largeTable(this, obj);break; + case "Lantern" : new lantern(this, obj);break; + case "Sofa" : new sofa(this, obj);break; + case "Table" : new table(this, obj);break; + case "Barrels" : new barrels(this, obj);break; + case "Campfire1" : new campfire_1(this, obj);break; + case "Campfire2" : new campfire_2(this, obj);break; + case "Tent1" : new tent_1(this, obj);break; + case "Tent2" : new tent_2(this, obj);break; + case "Tent3" : new tent_3(this, obj);break; + case "Fence" : new fance(this, obj);break; + case "Sunshade": new sunshade(this, obj);break; + case "Streetlamp": new streetlamp(this, obj);break; + case "Billboard": new billboard(this, obj);break; + case "Mailbox" : new mailBox(this, obj); break; + case "WeaponStand": new weaponStand(this, obj); break; + case "Hammock": new hammock(this, obj); break; + case "CampChair": new campchair(this, obj); break; + case "CactusPlant": new CactusPlant(this, obj); break; + case "Guillotine": new guillotine(this, obj); break; + case "FlowerPot":new TFlowerPot(this, obj);break; + case "Log": new log(this, obj); break; + case "WaterBottle": new WaterBottle(this,obj);break; + case "SleepingBag": new SleepingBag(this, obj); break; + case "BearTrap": new BearTrap(this, obj); break; + case "Trunk": new Trunk(this, obj); break; + case "SchoolTable": new SchoolTable(this, obj); break; + case "SchoolChair": new SchoolChair(this, obj); break; + case "BlackBoard": new BlackBoard(this, obj); break; + case "TrashCan": new TrashCan(this, obj); break; + case "HumanSkeleton": new HumanSkeleton(this, obj);break; + case "Crossbow": new Crossbow(this, obj);break; + case "Catapult": new catapult(this, obj); break; + case "Flag": new flag(this, obj); break; } e.finish(); e.removeItem(); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java new file mode 100644 index 0000000..746c6ab --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java @@ -0,0 +1,254 @@ +package de.Ste3et_C0st.Furniture.Objects.RPG; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; +import org.bukkit.util.Vector; + +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class Crossbow extends Furniture implements Listener { + + public Crossbow(Plugin plugin, ObjectID id){ + super(plugin, id); + setBlock(); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + private void setBlock(){ + Block b = getLocation().getBlock(); + if(b.getType()==null||!b.getType().equals(Material.STEP)){ + b.setType(Material.STEP); + } + getObjID().addBlock(Arrays.asList(b)); + } + + @Override + public void spawn(Location paramLocation) { + List asList = new ArrayList(); + + float yaw = 90; + for(int i = 0; i<4;i++){ + Location loc = getLutil().getRelativ(getCenter().add(0, -1.7, 0), getLutil().yawToFace(yaw), .34, .4); + loc.setYaw(yaw+45); + fArmorStand stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(90,270,135))); + asList.add(stand); + yaw+=90; + } + + fArmorStand stand = spawnArmorStand(getCenter().add(0, -0.7, 0)); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setSmall(true); + asList.add(stand); + + Location loc = getRelative(getCenter().add(0, -.74, 0), getBlockFace(), -.6, .48); + loc.setYaw(getYaw()-90); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(80,0,90))); + stand.setMarker(false); + asList.add(stand); + + loc = getRelative(getCenter().add(0, -.62, 0),getBlockFace(), -.4,.07); + loc.setYaw(getYaw()-90); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.BOW)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(0,10,90))); + stand.setMarker(false); + asList.add(stand); + + loc = getRelative(getCenter().add(0, -.08, 0), getBlockFace(), -.1, .25); + loc.setYaw(getYaw()-90); + stand = spawnArmorStand(loc); + stand.setName("#ARROW#"); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(0,135,0))); + stand.setMarker(false); + asList.add(stand); + + for(fArmorStand asp : asList){ + asp.setGravity(false); + asp.setInvisible(true); + asp.setBasePlate(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBlockBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + fArmorStand stand = getArmorStand(); + if(stand==null){return;} + ItemStack is = e.getPlayer().getItemInHand(); + if(!hasArrow()||(is!=null&&is.getType()!=null&&is.getType().equals(Material.ARROW))){ + if(e.getPlayer().getItemInHand()==null){return;} + if(e.getPlayer().getItemInHand().getType()==null){return;} + if(!e.getPlayer().getItemInHand().getType().equals(Material.ARROW)){return;} + addArmor(is, stand); + }else{ + spawnArrow(); + removeArrow(stand); + } + } + + @EventHandler + public void onFurnitureClick(FurnitureBlockClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + fArmorStand stand = getArmorStand(); + if(stand==null){return;} + ItemStack is = e.getPlayer().getItemInHand(); + if(!hasArrow()||(is!=null&&is.getType()!=null&&is.getType().equals(Material.ARROW))){ + if(e.getPlayer().getItemInHand()==null){return;} + if(e.getPlayer().getItemInHand().getType()==null){return;} + if(!e.getPlayer().getItemInHand().getType().equals(Material.ARROW)){return;} + addArmor(is, stand); + }else{ + spawnArrow(); + removeArrow(stand); + } + } + + private void spawnArrow(){ + Location loc = getRelative(getCenter(), getBlockFace(), 0,18); + loc.setYaw(getYaw()); + Vector v=null; + switch (getBlockFace()) { + case NORTH:v= new Vector(0, 0.5, 1.2);break; + case SOUTH:v= new Vector(0, 0.5, -1.2);break; + case EAST: v= new Vector(-1.2, 0.5, 0);break; + case WEST: v= new Vector(1.2, 0.5, 0);break; + default:break; + } + getWorld().playSound(getLocation(), Sound.SHOOT_ARROW, 1, 1); + Location start = getRelative(getCenter(), getBlockFace(), 0,0); + start.setYaw(getYaw()); + start = start.add(0, 1.8, 0); + Arrow a = getWorld().spawnArrow(start, v.multiply(2), 2F, 3F); + a.setCritical(true); + } + + public static Set getEntitiesInChunks(Location l, int chunkRadius) { + Block b = l.getBlock(); + Set entities = new HashSet(); + for (int x = -16 * chunkRadius; x <= 16 * chunkRadius; x += 16) { + for (int z = -16 * chunkRadius; z <= 16 * chunkRadius; z += 16) { + for (Entity e : b.getRelative(x, 0, z).getChunk().getEntities()) { + entities.add(e); + } + } + } + return entities; + } + + private void removeArrow(fArmorStand stand){ + ItemStack is = stand.getItemInHand(); + if(is.getAmount()-1<=0){ + stand.setItemInHand(new ItemStack(Material.AIR)); + update(); + return; + } + is.setAmount(is.getAmount()-1); + stand.setItemInHand(is); + update(); + } + + private void addArmor(ItemStack is, fArmorStand stand){ + if(getArrow()!=null){is.setAmount(getArrow().getAmount());} + stand.setItemInHand(is); + update(); + } + + + + private fArmorStand getArmorStand(){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().equalsIgnoreCase("#ARROW#")){ + return stand; + } + } + return null; + } + + private ItemStack getArrow(){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().equalsIgnoreCase("#ARROW#")){ + if(!(stand.getItemInHand()==null||stand.getItemInHand().getType()==null||stand.getItemInHand().getType().equals(Material.AIR))){ + return stand.getItemInHand(); + } + } + } + return null; + } + + private boolean hasArrow(){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().equalsIgnoreCase("#ARROW#")){ + if(stand.getItemInHand()==null||stand.getItemInHand().getType()==null||stand.getItemInHand().getType().equals(Material.AIR)){ + return false; + }else{ + return true; + } + } + } + return false; + } +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/HumanSkeleton.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/HumanSkeleton.java new file mode 100644 index 0000000..6cbe2f4 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/HumanSkeleton.java @@ -0,0 +1,96 @@ +package de.Ste3et_C0st.Furniture.Objects.RPG; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class HumanSkeleton extends Furniture implements Listener { + + public HumanSkeleton(Plugin plugin, ObjectID id) { + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + + @Override + public void spawn(Location paramLocation) { + List asList = new ArrayList(); + fArmorStand stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), -.25, 0)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-40,0,90))); + asList.add(stand); + + stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), .2, 1.2)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(40,0,90))); + asList.add(stand); + + stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), .3, .75)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(0,0,90))); + asList.add(stand); + + stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), .9, .42)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-30,0,90))); + asList.add(stand); + + stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), 1.1, -.6)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-80,0,90))); + asList.add(stand); + + stand = spawnArmorStand(getRelative(getLocation().add(0, -1.4, 0), 1.6, 1.3)); + stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(30,0,90))); + asList.add(stand); + + Location loc = getRelative(getLocation().add(0, -1.4, 0), getBlockFace(), 2.0, -.1); + loc.setYaw(getYaw()+180); + stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.SKULL_ITEM)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(-90,13,-5))); + asList.add(stand); + for(fArmorStand asp : asList){ + asp.setGravity(false); + asp.setInvisible(true); + asp.setBasePlate(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @Override + public void onFurnitureClick(FurnitureClickEvent paramFurnitureClickEvent) {} + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/catapult.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/catapult.java new file mode 100644 index 0000000..d5756c1 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/catapult.java @@ -0,0 +1,196 @@ +package de.Ste3et_C0st.Furniture.Objects.RPG; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.EntityEffect; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.FallingBlock; +import org.bukkit.entity.TNTPrimed; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; +import org.bukkit.util.Vector; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class catapult extends Furniture implements Listener { + + public catapult(Plugin plugin, ObjectID id) { + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @Override + public void spawn(Location paramLocation) { + List asList = new ArrayList(); + double d = .05; + for(int i =0;i<5;i++){ + Location loc = getRelative(getCenter(), -.5+i*.61, -.26-d).add(0, -1.8, 0); + fArmorStand stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + asList.add(stand); + } + + for(int i =0;i<5;i++){ + Location loc = getRelative(getCenter(), -.5+i*.61, -2+.28+d).add(0, -1.8, 0); + fArmorStand stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + asList.add(stand); + } + + for(int i =0;i<4;i++){ + Location loc = getRelative(getCenter(), .9 , -.26-d).add(0, -.9+i*.44, 0); + fArmorStand stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setSmall(true); + asList.add(stand); + } + + for(int i =0;i<4;i++){ + Location loc = getRelative(getCenter(), .9 , -2+.28+d).add(0, -.9+i*.44, 0); + fArmorStand stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setSmall(true); + asList.add(stand); + } + + Location loc = getRelative(getCenter(), getBlockFace(), .15, -.2).add(0, -1.6, 0); + fArmorStand stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(80,0,90))); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), 2.8-.12, -.2).add(0, -1.6, 0); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(80,0,90))); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), 1.5-.12, -.2).add(0, -1.6, 0); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(80,0,90))); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), 1.5-.12, -.2).add(0, 0, 0); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(80,0,90))); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), 1.5-.3, -1.4).add(0, -1.1, 0); + loc.setYaw(getYaw()+180); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setMarker(false); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(335,0,0))); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), .4, -1.4).add(0, -.9, 0); + loc.setYaw(getYaw()+180); + stand = spawnArmorStand(loc); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(335,0,0))); + stand.setMarker(false); + asList.add(stand); + + loc = getRelative(getCenter(), getBlockFace(), -.8, -1.03).add(0, -1.2, 0); + loc.setYaw(getYaw()); + stand = spawnArmorStand(loc); + stand.setHelmet(new ItemStack(Material.STEP)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(15,0,0))); + asList.add(stand); + + for(fArmorStand asp : asList){ + asp.setGravity(false); + asp.setInvisible(true); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @SuppressWarnings("deprecation") + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + if(e.getPlayer().getItemInHand()==null){return;} + if(e.getPlayer().getItemInHand().getType()==null){return;} + if(!e.getPlayer().getItemInHand().getType().isBlock()){return;} + Location loc = getRelative(getCenter(), getBlockFace(), -.8, -1.03).add(0, -.2, 0); + loc.setYaw(getYaw()); + ItemStack stack = e.getPlayer().getItemInHand(); + if(stack.getType().equals(Material.TNT)){ + TNTPrimed tnt = (TNTPrimed) getWorld().spawnEntity(loc, EntityType.PRIMED_TNT); + Vector v=null; + switch (getBlockFace()) { + case NORTH:v= new Vector(0, 0.5, 1.2);break; + case SOUTH:v= new Vector(0, 0.5, -1.2);break; + case EAST: v= new Vector(-1.2, 0.5, 0);break; + case WEST: v= new Vector(1.2, 0.5, 0);break; + default:break; + } + tnt.playEffect(EntityEffect.WITCH_MAGIC); + tnt.setVelocity(v.multiply(1)); + }else{ + FallingBlock block = getWorld().spawnFallingBlock(loc, stack.getType().getId(), (byte) stack.getDurability()); + Vector v=null; + switch (getBlockFace()) { + case NORTH:v= new Vector(0, 0.5, 1.2);break; + case SOUTH:v= new Vector(0, 0.5, -1.2);break; + case EAST: v= new Vector(-1.2, 0.5, 0);break; + case WEST: v= new Vector(1.2, 0.5, 0);break; + default:break; + } + block.playEffect(EntityEffect.WITCH_MAGIC); + block.setDropItem(false); + //block.setHurtEntities(true); + block.setVelocity(v.multiply(1)); + } + + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; + Integer i = e.getPlayer().getInventory().getHeldItemSlot(); + ItemStack is = e.getPlayer().getItemInHand(); + is.setAmount(is.getAmount()-1); + e.getPlayer().getInventory().setItem(i, is); + e.getPlayer().updateInventory(); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/flag.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/flag.java new file mode 100644 index 0000000..87ddc0a --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/flag.java @@ -0,0 +1,209 @@ +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.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class flag extends Furniture implements Listener { + + public flag(Plugin plugin, ObjectID id){ + super(plugin, id); + setBlock(); + if(isFinish()){ + setState(3, getStand()); + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + private void setBlock(){ + Block b = getLocation().getBlock(); + if(b.getType()==null||!b.getType().equals(Material.STEP)){ + b.setType(Material.STEP); + } + getObjID().addBlock(Arrays.asList(b)); + } + + @Override + public void spawn(Location location) { + List asList = new ArrayList(); + Location center = getLutil().getCenter(location).clone(); + center.add(0, -0.45, 0); + for(int i = 0; i<=2;i++){ + Location loc = getLutil().getRelativ(center.clone(), getBlockFace(), .47, .38).add(0, .88*i, 0); + loc.setYaw(getYaw()); + fArmorStand packet = spawnArmorStand(loc); + packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); + packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); + asList.add(packet); + } + + fArmorStand as = spawnArmorStand(getCenter().add(0, 1.9, 0)); + as.setHelmet(new ItemStack(Material.STEP)); + as.setSmall(true); + asList.add(as); + + Location loc = getRelative(getCenter().add(0, 0.7, 0), getBlockFace(), -.35,-.28); + loc.setYaw(getYaw()+90); + as = spawnArmorStand(loc); + as.setHelmet(new ItemStack(Material.BANNER)); + as.setHeadPose(getLutil().degresstoRad(new EulerAngle(0, 0, 90))); + as.setName("#FLAG:3"); + asList.add(as); + + for(fArmorStand packet : asList){ + packet.setInvisible(true); + packet.setGravity(false); + packet.setBasePlate(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + public int getState(){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().startsWith("#FLAG")){ + return Integer.parseInt(stand.getName().split(":")[1]); + } + } + return 1; + } + + public fArmorStand getStand(){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().startsWith("#FLAG")){ + return stand; + } + } + return null; + } + + public void setState(int i, fArmorStand stand){ + if(i<1||i>3){return;} + if(stand==null){return;} + switch (i) { + case 3: + Location loc = getRelative(getCenter().add(0, 0.7, 0), getBlockFace(), -.35,-.28); + loc.setYaw(getYaw()+90); + stand.teleport(loc); + stand.setName("#FLAG:" + i); + break; + case 2: + loc = getRelative(getCenter().add(0, -.2, 0), getBlockFace(), -.35,-.28); + loc.setYaw(getYaw()+90); + stand.teleport(loc); + stand.setName("#FLAG:" + i); + break; + case 1: + loc = getRelative(getCenter().add(0, -.9, 0), getBlockFace(), -.35,-.28); + loc.setYaw(getYaw()+90); + stand.teleport(loc); + stand.setName("#FLAG:" + i); + break; + } + update(); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + if(e.getPlayer().getItemInHand()!=null&&e.getPlayer().getItemInHand().getType()!=null){ + if(e.getPlayer().getItemInHand().getType().equals(Material.BANNER)){ + getStand().setHelmet(e.getPlayer().getItemInHand());update(); + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; + Integer i = e.getPlayer().getInventory().getHeldItemSlot(); + ItemStack is = e.getPlayer().getItemInHand(); + is.setAmount(is.getAmount()-1); + e.getPlayer().getInventory().setItem(i, is); + e.getPlayer().updateInventory(); + return; + } + } + + int state = getState(); + switch (state) { + case 3:state=2;break; + case 2:state=1;break; + case 1:state=3;break; + } + setState(state, getStand()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBlockBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @EventHandler + public void onFurnitureClick(FurnitureBlockClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + if(e.getPlayer().getItemInHand()!=null&&e.getPlayer().getItemInHand().getType()!=null){ + if(e.getPlayer().getItemInHand().getType().equals(Material.BANNER)){ + getStand().setHelmet(e.getPlayer().getItemInHand());update(); + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; + Integer i = e.getPlayer().getInventory().getHeldItemSlot(); + ItemStack is = e.getPlayer().getItemInHand(); + is.setAmount(is.getAmount()-1); + e.getPlayer().getInventory().setItem(i, is); + e.getPlayer().updateInventory(); + return; + } + } + + int state = getState(); + switch (state) { + case 3:state=2;break; + case 2:state=1;break; + case 1:state=3;break; + } + setState(state, getStand()); + } +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/guillotine.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/guillotine.java new file mode 100644 index 0000000..0d86a82 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/guillotine.java @@ -0,0 +1,642 @@ +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.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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; + +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.WOOD_SWORD,Material.WOOD_AXE,Material.WOOD_HOE, + Material.STONE_SWORD, Material.STONE_AXE, Material.STONE_HOE, + Material.IRON_SWORD, Material.IRON_AXE, Material.IRON_HOE, + Material.GOLD_SWORD, Material.GOLD_AXE, Material.GOLD_HOE, + Material.DIAMOND_SWORD, Material.DIAMOND_AXE, Material.DIAMOND_HOE); + List matListI = Arrays.asList( + Material.LEATHER_CHESTPLATE,Material.IRON_CHESTPLATE,Material.GOLD_CHESTPLATE, + Material.DIAMOND_CHESTPLATE, Material.CHAINMAIL_CHESTPLATE); + List matListII = Arrays.asList( + Material.LEATHER_LEGGINGS,Material.IRON_LEGGINGS,Material.GOLD_LEGGINGS, + Material.DIAMOND_LEGGINGS, Material.CHAINMAIL_LEGGINGS); + List matListIII = Arrays.asList( + Material.LEATHER_BOOTS,Material.IRON_BOOTS,Material.GOLD_BOOTS, + Material.DIAMOND_BOOTS, Material.CHAINMAIL_BOOTS); + List armorStandList = new ArrayList(); + ItemStack pane = new ItemStack(Material.STAINED_GLASS_PANE); + public guillotine(Plugin plugin, ObjectID id) { + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + setDefault(); + initializeInventory(); + return; + } + spawn(id.getStartLocation()); + initializeInventory(); + } + + private void initializeInventory(){ + pane = new ItemStack(Material.STAINED_GLASS_PANE); + pane.setDurability((short) 15); + 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 void setDefault(){ + armorStandList.clear(); + for(fArmorStand packets : getManager().getfArmorStandByObjectID(getObjID())){ + if(!packets.getName().equalsIgnoreCase("")){ + if(packets.getName().startsWith("#Oblation#")){ + packet2 = packets; + }else if(packets.getName().equalsIgnoreCase("#Head#")){ + packet3 = packets; + if(packet3.getHelmet()!=null&&packet3.getHelmet().getType().equals(Material.SKULL_ITEM)){ + packet2.getInventory().setHelmet(packet3.getHelmet()); + packet3.getInventory().setHelmet(new ItemStack(Material.AIR)); + } + }else if(packets.getName().startsWith("iron")){ + armorStandList.add(packets); + Location loc = getStartLocation(packets.getName()); + packets.teleport(loc); + }else{ + packet1 = packets; + } + } + } + + soundPlaying = false; + packet1.setPose(getLutil().degresstoRad(new EulerAngle(190,0,329)), BodyPart.RIGHT_ARM); + packet1.setLeftArmPose(BodyPart.LEFT_ARM.getDefAngle()); + 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.WOOD_STEP)); + 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.WOOD_STEP)); + 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(), -.32d, -.22d).add(0, 3.6, 0); + Location loc9 = getLutil().getRelativ(center.clone(), getBlockFace(), -.32d, -.75d).add(0, 3.6, 0); + Location loc10 = getLutil().getRelativ(center.clone(), getBlockFace(), -.32d, -.33d).add(0, 3.5, 0); + Location loc11 = getLutil().getRelativ(center.clone(), getBlockFace(), -.32d, -.82d).add(0, 3.3, 0); + + loc1.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + loc2.setYaw(getLutil().FaceToYaw(getBlockFace())); + 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.WOOD_STAIRS)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc2); + packet.getInventory().setHelmet(new ItemStack(Material.WOOD_STAIRS)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc3); + packet.getInventory().setHelmet(new ItemStack(Material.WOOD_STEP)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc4); + packet.getInventory().setHelmet(new ItemStack(Material.WOOD_STEP)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc5); + packet.getInventory().setHelmet(new ItemStack(Material.STONE_PLATE)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc6); + packet.getInventory().setHelmet(new ItemStack(Material.STONE_PLATE)); + packList.add(packet); + + packet = getManager().createArmorStand(getObjID(), loc7); + packet.getInventory().setItemInHand(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.IRON_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.IRON_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.IRON_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.IRON_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(false); + 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(false); + 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(false); + packet3.setName("#HEAD#"); + packList.add(packet3); + + for(fArmorStand packets : packList){ + packets.setGravity(false); + 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(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){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.getItemInHand())){getWorld().dropItem(getLocation(), packet1.getItemInHand());} + 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(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + 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.SKULL_ITEM); + is.setDurability((short) 1); + ItemMeta im = is.getItemMeta(); + im.setDisplayName("§2Executioner"); + is.setItemMeta(im); + invI.setItem(2, is); + + is = new ItemStack(Material.SKULL_ITEM); + is.setDurability((short) 3); + 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(this.p!=null&&this.p.equals(p)){if(!e.getClick().equals(ClickType.LEFT)&&!e.getClick().equals(ClickType.RIGHT)){e.setCancelled(true);}} + 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.getCursor().getType(); + if(m==null||m.equals(Material.AIR)){return;} + switch (e.getSlot()) { + case 10: + if(!m.equals(Material.SKULL_ITEM)){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.getCursor().getType(); + if(m==null||m.equals(Material.AIR)){return;} + switch (e.getSlot()) { + case 10: + if(!m.equals(Material.SKULL_ITEM)){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.isVisible(); + b = !packet2.isVisible(); + if(packet1.getItemInHand()!=null&&!packet1.getItemInHand().equals(Material.AIR)){ + c = true; + } + + if(a&&b&&c){ + return true; + } + 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().setItemInHand(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().setItemInHand(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.GHAST_DEATH, 2, 1); + getWorld().playSound(getLocation(), Sound.GHAST_SCREAM, 1, 1); + getWorld().playSound(getLocation(), Sound.GHAST_MOAN, 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 slotList1 = Arrays.asList(6,11,14,16,19,21,24,29,32,34,42); List slotList2 = Arrays.asList(20, 15, 33); - - List matList = Arrays.asList( Material.FENCE_GATE, Material.SPRUCE_FENCE_GATE, @@ -54,18 +38,9 @@ public class weaponStand extends Furniture { Material.DARK_OAK_FENCE_GATE, Material.ACACIA_FENCE_GATE); - public weaponStand(FurnitureLib lib, Plugin plugin, ObjectID id) { - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public weaponStand(Plugin plugin, ObjectID id) { + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -77,36 +52,53 @@ public class weaponStand extends Furniture { @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { - if(obj==null){return;} - if(!e.getID().equals(obj)){return;} + if(getObjID()==null){return;} + if(!e.getID().equals(getObjID())){return;} if(e.isCancelled()){return;} if(!e.canBuild()){return;} if(p!=null){ p.closeInventory(); } - List asList = manager.getArmorStandPacketByObjectID(obj); - for(ArmorStandPacket packet : asList){ + List asList = getManager().getfArmorStandByObjectID(getObjID()); + for(fArmorStand packet : asList){ if(packet.getName()!=null&&!packet.getName().equalsIgnoreCase("")){ if(packet.getInventory().getItemInHand()!=null){ if(!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ - w.dropItem(loc, packet.getInventory().getItemInHand()); + getWorld().dropItem(getLocation(), packet.getInventory().getItemInHand()); } } } } e.remove(); inv = null; - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(p!=null){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} + this.p = e.getPlayer(); + + ItemStack itemstack = p.getItemInHand(); + if(itemstack!=null&&matList.contains(itemstack.getType())){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getInventory().getHelmet()!=null){ + if(packet.getInventory().getHelmet().getType().name().toLowerCase().endsWith("gate")){ + ItemStack itemStack = new ItemStack(itemstack.getType(), 1, (short) 0); + packet.getInventory().setHelmet(itemStack); + } + } + } + getManager().updateFurniture(getObjID()); + this.p = null; + return; + } + ItemStack is1 = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15); ItemStack is3 = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 14); @@ -117,22 +109,8 @@ public class weaponStand extends Furniture { is1.setItemMeta(im1); is3.setItemMeta(im3); - this.p = e.getPlayer(); inv = Bukkit.createInventory(null, 45, "§cWeaponBox"); - - ItemStack itemstack = p.getItemInHand(); - if(itemstack!=null&&matList.contains(itemstack.getType())){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().toString().toLowerCase().endsWith("gate")){ - ItemStack itemStack = new ItemStack(itemstack.getType(), 1, (short) 0); - packet.getInventory().setHelmet(itemStack); - } - } - manager.updateFurniture(obj); - return; - } - - List asList = manager.getArmorStandPacketByObjectID(obj); + List asList = getManager().getfArmorStandByObjectID(getObjID()); int j = 1; for(int i = 0; i asList = manager.getArmorStandPacketByObjectID(obj); + List asList = getManager().getfArmorStandByObjectID(getObjID()); int j = 1; for(int i = 0; i packList = new ArrayList(); - Location center = lutil.getCenter(loc); + List packList = new ArrayList(); + Location center = getLutil().getCenter(loc); center = center.add(0, -2.2, 0); Location center2 = center; Location center3 = center.clone(); - ArmorStandPacket as = manager.createArmorStand(obj, center2); + fArmorStand as = getManager().createArmorStand(getObjID(), center2); as.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, 45, 0)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, 45, 0)), BodyPart.HEAD); packList.add(as); - as = manager.createArmorStand(obj, center3.add(0, .2, 0)); + as = getManager().createArmorStand(getObjID(), center3.add(0, .2, 0)); as.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, 45, 0)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, 45, 0)), BodyPart.HEAD); packList.add(as); Location location = center; @@ -239,55 +217,53 @@ public class weaponStand extends Furniture { float yaw = 0; for(int i = 0; i<4;i++){ - BlockFace face = lutil.yawToFace(yaw); - Location locat = lutil.getRelativ(location, face, .185D, .185D); + BlockFace face = getLutil().yawToFace(yaw); + Location locat = getLutil().getRelativ(location, face, .185D, .185D); - as = manager.createArmorStand(obj, locat); + as = getManager().createArmorStand(getObjID(), locat.clone()); as.getInventory().setHelmet(new ItemStack(Material.FENCE_GATE, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); packList.add(as); - as = manager.createArmorStand(obj, locat.add(0, .37, 0).clone()); + as = getManager().createArmorStand(getObjID(), locat.add(0, .37, 0).clone()); as.getInventory().setHelmet(new ItemStack(Material.FENCE_GATE, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); packList.add(as); - as = manager.createArmorStand(obj, locat.add(0, .37, 0).clone()); + as = getManager().createArmorStand(getObjID(), locat.add(0, .37, 0).clone()); as.getInventory().setHelmet(new ItemStack(Material.FENCE_GATE, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, -45, 0)), BodyPart.HEAD); packList.add(as); yaw +=90; } - as = manager.createArmorStand(obj, lutil.getRelativ(location, b, .5, .4d).add(0, 1.8, 0)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(location, getBlockFace(), .5, .4d).add(0, 1.8, 0)); as.setName("#SLOT1#"); - //as.getInventory().setItemInHand(new ItemStack(Material.DIAMOND_SWORD)); - as.setPose(lutil.degresstoRad(new EulerAngle(80, 30, 15)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(80, 30, 15)), BodyPart.RIGHT_ARM); as.setMarker(false); packList.add(as); - BlockFace face = lutil.yawToFace(lutil.FaceToYaw(b) + 90); - as = manager.createArmorStand(obj, lutil.getRelativ(location, face, .5, .45d).add(0, 1.75, 0)); + BlockFace face = getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace()) + 90); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(location, face, .5, .45d).add(0, 1.75, 0)); as.setName("#SLOT2#"); - //as.getInventory().setItemInHand(new ItemStack(Material.DIAMOND_SWORD)); - as.setPose(lutil.degresstoRad(new EulerAngle(80, 30, 20)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(80, 30, 20)), BodyPart.RIGHT_ARM); as.setMarker(false); packList.add(as); - as = manager.createArmorStand(obj, lutil.getRelativ(location, b.getOppositeFace(), -.30, .65d).add(0, 1.0, 0)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(location, getBlockFace().getOppositeFace(), -.30, .65d).add(0, 1.0, 0)); as.setName("#SLOT3#"); //as.getInventory().setItemInHand(new ItemStack(Material.DIAMOND_AXE)); - as.setPose(lutil.degresstoRad(new EulerAngle(-80, 30, 15)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(-80, 30, 15)), BodyPart.RIGHT_ARM); as.setMarker(false); packList.add(as); - for(ArmorStandPacket asp : packList){ + for(fArmorStand asp : packList){ asp.setGravity(false); asp.setInvisible(true); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/School/BlackBoard.java b/src/de/Ste3et_C0st/Furniture/Objects/School/BlackBoard.java new file mode 100644 index 0000000..8d0417b --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/School/BlackBoard.java @@ -0,0 +1,114 @@ +package de.Ste3et_C0st.Furniture.Objects.School; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class BlackBoard extends Furniture implements Listener { + public BlackBoard(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @Override + public void spawn(Location paramLocation) { + List aspList = new ArrayList(); + double d = -.126; + for(int i = 0; i<4;i++){ + Location loc1 = getRelative(getCenter(), getBlockFace(), -.27, d).add(0, -2.5, 0); + fArmorStand stand = spawnArmorStand(loc1.clone().add(0, .1, 0)); + stand.setHelmet(new ItemStack(Material.BANNER)); + stand.setHeadPose(new EulerAngle(0, 0, 0)); + aspList.add(stand); + d+=.75; + } + d = -.235; + for(int i = 0; i<6;i++){ + Location loc1 = getRelative(getCenter(), getBlockFace(), -.27, d).add(0, -2.5, 0); + fArmorStand stand = spawnArmorStand(loc1.clone().add(0, .4, 0)); + stand.setHelmet(new ItemStack(Material.WOOD_PLATE)); + stand.setHeadPose(new EulerAngle(0, 0, 0)); + aspList.add(stand); + d+=.49; + } + Location loc = getRelative(getCenter(), getBlockFace(),.25d, 1.2d).add(0, -1.63, 0); + loc.setYaw(getYaw()+180); + fArmorStand stand = spawnArmorStand(loc); + //stand.setItemInHand(new ItemStack(Material.BONE)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-110, 0, 270))); + stand.setMarker(false); + stand.setName("#ITEM#"); + aspList.add(stand); + for(fArmorStand as : aspList){ + as.setInvisible(true); + as.setGravity(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + Player p = e.getPlayer(); + if(!e.canBuild()){return;} + e.setCancelled(true); + if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#ITEM#")){ + ItemStack Itemstack = p.getItemInHand().clone(); + Itemstack.setAmount(1); + if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + packet.getInventory().setItemInHand(Itemstack); + if(p.getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) break; + Integer i = p.getInventory().getHeldItemSlot(); + ItemStack is = p.getItemInHand(); + is.setAmount(is.getAmount()-1); + p.getInventory().setItem(i, is); + p.updateInventory(); + break; + } + } + update(); + } +} \ No newline at end of file diff --git a/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolChair.java b/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolChair.java new file mode 100644 index 0000000..aaf7b20 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolChair.java @@ -0,0 +1,116 @@ +package de.Ste3et_C0st.Furniture.Objects.School; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class SchoolChair extends Furniture implements Listener { + + public SchoolChair(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @Override + public void spawn(Location paramLocation) { + List asList = new ArrayList(); + + Location loc1 = getRelative(getCenter(), getBlockFace(), .16, .67).subtract(0, 2.3, 0); + loc1.setYaw(getYaw()+90); + Location loc2 = getRelative(getCenter(), getBlockFace(), .16+.41, .67).subtract(0, 2.3, 0); + loc2.setYaw(getYaw()+90); + Location loc3 = getRelative(getCenter(), getBlockFace(), .16, .67-.36).subtract(0, 2.3, 0); + loc3.setYaw(getYaw()+90); + Location loc4 = getRelative(getCenter(), getBlockFace(), .16+.41, .67-.36).subtract(0, 2.3, 0); + loc4.setYaw(getYaw()+90); + + fArmorStand stand = spawnArmorStand(loc1); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc2); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc3); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc4); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(getCenter().subtract(0, 1.6, 0)); + stand.setHelmet(new ItemStack(Material.IRON_PLATE)); + asList.add(stand); + + stand = spawnArmorStand(getCenter().subtract(0, 1.5, 0)); + stand.setName("#SITZ#"); + asList.add(stand); + + stand = spawnArmorStand(getCenter().subtract(0, 1, 0)); + stand.setHelmet(new ItemStack(Material.IRON_PLATE)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + asList.add(stand); + + for(fArmorStand as : asList){ + as.setInvisible(true); + as.setGravity(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#SITZ#")){ + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); + } + } + } + } +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolTable.java b/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolTable.java new file mode 100644 index 0000000..3e23f06 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/School/SchoolTable.java @@ -0,0 +1,146 @@ +package de.Ste3et_C0st.Furniture.Objects.School; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class SchoolTable extends Furniture implements Listener { + + public SchoolTable(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#ITEM#")){ + if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getItemInHand(); + getWorld().dropItem(getLocation(), is); + } + } + } + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + Player p = e.getPlayer(); + if(!e.canBuild()){return;} + e.setCancelled(true); + if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#ITEM#")){ + ItemStack Itemstack = p.getItemInHand().clone(); + Itemstack.setAmount(1); + if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + packet.getInventory().setItemInHand(Itemstack); + if(p.getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) break; + Integer i = p.getInventory().getHeldItemSlot(); + ItemStack is = p.getItemInHand(); + is.setAmount(is.getAmount()-1); + p.getInventory().setItem(i, is); + p.updateInventory(); + break; + } + } + update(); + } + + @Override + public void spawn(Location arg0) { + List asList = new ArrayList(); + + Location loc1 = getRelative(getCenter(), getBlockFace(), .16, .67).subtract(0, 1.9, 0); + loc1.setYaw(getYaw()+90); + Location loc2 = getRelative(getCenter(), getBlockFace(), .16+.41, .67).subtract(0, 1.9, 0); + loc2.setYaw(getYaw()+90); + Location loc3 = getRelative(getCenter(), getBlockFace(), .16, .67-.36).subtract(0, 1.9, 0); + loc3.setYaw(getYaw()+90); + Location loc4 = getRelative(getCenter(), getBlockFace(), .16+.41, .67-.36).subtract(0, 1.9, 0); + loc4.setYaw(getYaw()+90); + + Location loc5 = getRelative(getCenter(), getBlockFace(), .37, .33).subtract(0, .22, 0); + loc5.setYaw(getYaw()+90); + + fArmorStand stand = spawnArmorStand(loc1); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc2); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc3); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(loc4); + stand.setItemInHand(new ItemStack(Material.STICK)); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-100, 0, 0))); + stand.setMarker(false); + asList.add(stand); + + stand = spawnArmorStand(getCenter().subtract(0, 1.2, 0)); + stand.setHelmet(new ItemStack(Material.WOOD_PLATE)); + asList.add(stand); + + stand = spawnArmorStand(loc5); + stand.setPose(new EulerAngle(0.0,0.0,0.0), BodyPart.RIGHT_ARM); + stand.setMarker(false); + stand.setName("#ITEM#"); + asList.add(stand); + + for(fArmorStand as : asList){ + as.setInvisible(true); + as.setGravity(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/School/TrashCan.java b/src/de/Ste3et_C0st/Furniture/Objects/School/TrashCan.java new file mode 100644 index 0000000..0b39bb2 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/School/TrashCan.java @@ -0,0 +1,111 @@ +package de.Ste3et_C0st.Furniture.Objects.School; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class TrashCan extends Furniture implements Listener { + + public TrashCan(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + ItemStack is = e.getPlayer().getItemInHand(); + fArmorStand stand = null; + for(fArmorStand s : getfAsList()){ + if(s.getName().equalsIgnoreCase("#TRASH#")){ + stand = s;break; + } + } + if(stand==null){return;} + if(is==null||is.getType()==null||is.getType().equals(Material.AIR)){ + if(stand.getItemInHand()!=null&&!stand.getItemInHand().getType().equals(Material.AIR)){ + getWorld().dropItem(getCenter(), stand.getItemInHand()); + stand.setItemInHand(new ItemStack(Material.AIR)); + update(); + return; + } + } + stand.setItemInHand(is); + e.getPlayer().getInventory().clear(e.getPlayer().getInventory().getHeldItemSlot()); + e.getPlayer().updateInventory(); + update(); + return; + } + + @Override + public void spawn(Location loc) { + List asList = new ArrayList(); + Location l = getLutil().getRelativ(getCenter(), getBlockFace(), -.29, .2).add(0, -1.1, 0); + l.setYaw(getYaw()); + fArmorStand stand = spawnArmorStand(getCenter().add(0, -1.2, 0)); + stand.setHelmet(new ItemStack(Material.CARPET, 1,(short) 15)); + stand.setSmall(true); + asList.add(stand); + + float yaw = 0; + for(int i = 0; i<4;i++){ + Location location = getLutil().getRelativ(getCenter(), getLutil().yawToFace(yaw), .25, 0); + location.add(0,-1.88,0); + location.setYaw(yaw); + stand = spawnArmorStand(location); + stand.setHelmet(new ItemStack(Material.IRON_FENCE)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(10, 0, 0))); + asList.add(stand); + yaw+=90; + } + + stand = spawnArmorStand(l); + stand.setSmall(true); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-110,0,0))); + stand.setMarker(false); + stand.setName("#TRASH#"); + asList.add(stand); + + for(fArmorStand as : asList){ + as.setInvisible(true); + as.setGravity(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java index 28356a5..2fa159e 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java @@ -6,8 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.BlockFace; import org.bukkit.entity.ItemFrame; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -15,44 +13,18 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class billboard extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public billboard(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public billboard(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -60,42 +32,42 @@ public class billboard extends Furniture implements Listener{ } public void spawn(Location location){ - List asList = new ArrayList(); - Location center = lutil.getCenter(location).add(0, -1.2, 0); - Location center2 = lutil.getRelativ(center, b, 0D, -4D); - Location center3 = lutil.getRelativ(center, b, 0D, -3.3D); + List asList = new ArrayList(); + Location center = getLutil().getCenter(location).add(0, -1.2, 0); + Location center2 = getLutil().getRelativ(center, getBlockFace(), 0D, -4D); + Location center3 = getLutil().getRelativ(center, getBlockFace(), 0D, -3.3D); for(int i = 0; i<=3;i++){ - Location loc = lutil.getRelativ(center.clone(), b, -.1, -.5).add(0, .88*i, 0); + Location loc = getLutil().getRelativ(center.clone(), getBlockFace(), -.1, -.5).add(0, .88*i, 0); loc.setYaw(loc.getYaw()+90); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } for(int i = 0; i<=3;i++){ - Location loc = lutil.getRelativ(center2.clone(), b, -.1, -.5).add(0, .88*i, 0); + Location loc = getLutil().getRelativ(center2.clone(), getBlockFace(), -.1, -.5).add(0, .88*i, 0); loc.setYaw(loc.getYaw()+90); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } for(int i = 0; i<=4;i++){ - Location loc = lutil.getRelativ(center3.clone(), b, -.1, .88*i).add(0, .7D, 0); + Location loc = getLutil().getRelativ(center3.clone(), getBlockFace(), -.1, .88*i).add(0, .7D, 0); loc.setYaw(loc.getYaw()+90); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } for(int i = 0; i<=4;i++){ - Location loc = lutil.getRelativ(center3.clone(), b, -.1, .88*i).add(0, 2.9D, 0); + Location loc = getLutil().getRelativ(center3.clone(), getBlockFace(), -.1, .88*i).add(0, 2.9D, 0); loc.setYaw(loc.getYaw()+90); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); @@ -103,33 +75,32 @@ public class billboard extends Furniture implements Listener{ for(int x = 0; x<=1;x++){ for(int y = 0;y<=2;y++){ - Location loc = lutil.getRelativ(location, b,0D,(double) -y-1).add(0, x+1, 0); - Location loc2 = lutil.getRelativ(location, b,-1D,(double) -y-1).add(0, x+1, 0); + Location loc = getLutil().getRelativ(location, getBlockFace(),0D,(double) -y-1).add(0, x+1, 0); + Location loc2 = getLutil().getRelativ(location, getBlockFace(),-1D,(double) -y-1).add(0, x+1, 0); loc.getBlock().setType(Material.BARRIER); - ItemFrame frame = (ItemFrame) w.spawn(loc2, ItemFrame.class); - frame.setFacingDirection(b); + ItemFrame frame = (ItemFrame) getWorld().spawn(loc2, ItemFrame.class); + frame.setFacingDirection(getBlockFace()); } } - for(ArmorStandPacket pack : asList){ + for(fArmorStand pack : asList){ pack.setInvisible(true); pack.setGravity(false); pack.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - if(!e.canBuild()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!canBuild(e.getPlayer())){return;} e.remove(); - obj=null; - + delete(); } @EventHandler diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java index 25e5c53..271d14a 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java @@ -7,7 +7,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -19,43 +18,18 @@ import org.bukkit.plugin.Plugin; import org.bukkit.util.EulerAngle; import de.Ste3et_C0st.Furniture.Camera.Utils.RenderClass; -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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class camera extends Furniture implements Listener{ - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public camera(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public camera(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -63,103 +37,103 @@ public class camera extends Furniture implements Listener{ } public void spawn(Location location){ - List aspList = new ArrayList(); - BlockFace b = lutil.yawToFace(location.getYaw()).getOppositeFace(); - Location center = lutil.getCenter(location); - Location gehäuse = lutil.getRelativ(center, b, 0D, 0D).add(0,-1.0,0); - Location gehäuse2 = lutil.getRelativ(center, b, 0D, 0D).add(0,-0.4,0); - Location fokus = lutil.getRelativ(center, b, .15D, 0D).add(0,-.24,0); - Location search = lutil.getRelativ(center, b, .15D, 0D).add(0,-.7,0); - Location button = lutil.getRelativ(center, b, -.15D, -.15D).add(0,.08,0); + List aspList = new ArrayList(); + BlockFace b = getLutil().yawToFace(location.getYaw()).getOppositeFace(); + Location center = getLutil().getCenter(location); + Location gehäuse = getLutil().getRelativ(center, b, 0D, 0D).add(0,-1.0,0); + Location gehäuse2 = getLutil().getRelativ(center, b, 0D, 0D).add(0,-0.4,0); + Location fokus = getLutil().getRelativ(center, b, .15D, 0D).add(0,-.24,0); + Location search = getLutil().getRelativ(center, b, .15D, 0D).add(0,-.7,0); + Location button = getLutil().getRelativ(center, b, -.15D, -.15D).add(0,.08,0); - Location feet1 = lutil.getRelativ(center, b, .5D, .4D).add(0,-.9,0); - Location feet2 = lutil.getRelativ(center, b, -.2D, -.7D).add(0,-.9,0); - Location feet3 = lutil.getRelativ(center, b, -.7D, .2D).add(0,-.9,0); + Location feet1 = getLutil().getRelativ(center, b, .5D, .4D).add(0,-.9,0); + Location feet2 = getLutil().getRelativ(center, b, -.2D, -.7D).add(0,-.9,0); + Location feet3 = getLutil().getRelativ(center, b, -.7D, .2D).add(0,-.9,0); - gehäuse.setYaw(lutil.FaceToYaw(b)); - fokus.setYaw(lutil.FaceToYaw(b)); - search.setYaw(lutil.FaceToYaw(b)); - button.setYaw(lutil.FaceToYaw(b)); - feet1.setYaw(lutil.FaceToYaw(b)); - feet2.setYaw(lutil.FaceToYaw(b) + 180 - 45); - feet3.setYaw(lutil.FaceToYaw(b) + 180 + 45); + gehäuse.setYaw(getLutil().FaceToYaw(b)); + fokus.setYaw(getLutil().FaceToYaw(b)); + search.setYaw(getLutil().FaceToYaw(b)); + button.setYaw(getLutil().FaceToYaw(b)); + feet1.setYaw(getLutil().FaceToYaw(b)); + feet2.setYaw(getLutil().FaceToYaw(b) + 180 - 45); + feet3.setYaw(getLutil().FaceToYaw(b) + 180 + 45); - ArmorStandPacket as = manager.createArmorStand(obj, gehäuse); + fArmorStand as = getManager().createArmorStand(getObjID(), gehäuse); as.getInventory().setHelmet(new ItemStack(Material.WOOL, 1, (short) 15)); aspList.add(as); - as = manager.createArmorStand(obj, gehäuse2); + as = getManager().createArmorStand(getObjID(), gehäuse2); as.getInventory().setHelmet(new ItemStack(Material.WOOL, 1, (short) 15)); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, fokus); + as = getManager().createArmorStand(getObjID(), fokus); as.getInventory().setHelmet(new ItemStack(Material.DISPENSER)); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, search); + as = getManager().createArmorStand(getObjID(), search); as.getInventory().setHelmet(new ItemStack(Material.TRIPWIRE_HOOK)); aspList.add(as); - as = manager.createArmorStand(obj, button); + as = getManager().createArmorStand(getObjID(), button); as.getInventory().setHelmet(new ItemStack(Material.WOOD_BUTTON)); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, feet1); + as = getManager().createArmorStand(getObjID(), feet1); as.getInventory().setItemInHand(new ItemStack(Material.STICK)); as.setPose(new EulerAngle(1.2, 0, 0), BodyPart.RIGHT_ARM); aspList.add(as); - as = manager.createArmorStand(obj, feet2); + as = getManager().createArmorStand(getObjID(), feet2); as.getInventory().setItemInHand(new ItemStack(Material.STICK)); as.setPose(new EulerAngle(1.2, 0, 0), BodyPart.RIGHT_ARM); aspList.add(as); - as = manager.createArmorStand(obj, feet3); + as = getManager().createArmorStand(getObjID(), feet3); as.getInventory().setItemInHand(new ItemStack(Material.STICK)); as.setPose(new EulerAngle(1.2, 0, 0), BodyPart.RIGHT_ARM); aspList.add(as); - for(ArmorStandPacket asp : aspList){ + for(fArmorStand asp : aspList){ asp.setInvisible(true); asp.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.remove(); - obj=null; + delete(); } @SuppressWarnings("deprecation") @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} Player p = e.getPlayer(); - Location pLocation = lutil.getRelativ(p.getLocation().getBlock().getLocation(), b, -1D, 0D).clone(); + Location pLocation = getLutil().getRelativ(p.getLocation().getBlock().getLocation(), getBlockFace(), -1D, 0D).clone(); Location locCopy = getLocation().getBlock().getLocation().clone(); pLocation.setYaw(locCopy.getYaw()); if(pLocation.equals(locCopy)){ - if(lutil.yawToFace(p.getLocation().getYaw()).getOppositeFace().equals(b)){ + if(getLutil().yawToFace(p.getLocation().getYaw()).getOppositeFace().equals(getBlockFace())){ if(!p.getInventory().getItemInHand().getType().equals(Material.MAP)){return;} MapView view = Bukkit.getMap(p.getItemInHand().getDurability()); - Location l = getLocation(); - l.setYaw(lutil.FaceToYaw(b.getOppositeFace())); + Location l = getLocation().clone(); + l.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); Iterator iter = view.getRenderers().iterator(); while(iter.hasNext()){ view.removeRenderer(iter.next()); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/streetlamp.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/streetlamp.java index 3aff9d5..105c25f 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/streetlamp.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/streetlamp.java @@ -6,65 +6,40 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; import org.bukkit.util.EulerAngle; import org.bukkit.util.Vector; -import de.Ste3et_C0st.Furniture.Main.main; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; -import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; 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; public class streetlamp extends Furniture implements Listener{ - Location loc, light; + Location light; Vector loc2, loc3; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; boolean redstone = false; - List blockLocation = new ArrayList(); - - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public streetlamp(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); + + public streetlamp(Plugin plugin, ObjectID id){ + super(plugin, id); + setBlock(); this.loc2 = id.getStartLocation().toVector(); this.loc3 = id.getStartLocation().getBlock().getRelative(BlockFace.DOWN).getLocation().toVector(); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.light = lutil.getRelativ(loc, b, -1D, 0D); - this.obj = id; - setBlock(); - if(id.isFinish()){ + this.light = getLutil().getRelativ(getLocation(), getBlockFace(), -1D, 0D); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -72,113 +47,114 @@ public class streetlamp extends Furniture implements Listener{ } public void spawn(Location location){ - List asList = new ArrayList(); - Location center = lutil.getCenter(location).clone(); + List asList = new ArrayList(); + Location center = getLutil().getCenter(location).clone(); center.add(0, -1.1, 0); Location aloc = center.clone(); aloc.add(0, -.2, 0); for(int i = 0; i<=3;i++){ Location loc = aloc.clone().add(0, .215*i, 0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setHelmet(new ItemStack(Material.STEP)); packet.setSmall(true); asList.add(packet); } for(int i = 0; i<=3;i++){ - Location loc = lutil.getRelativ(center.clone(), b, .47, .38).add(0, .88*i, 0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + Location loc = getLutil().getRelativ(center.clone(), getBlockFace(), .47, .38).add(0, .88*i, 0); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } - ArmorStandPacket packet = manager.createArmorStand(obj, lutil.getRelativ(center, b, -.9, .38).add(0, 3.1, 0)); + fArmorStand packet = getManager().createArmorStand(getObjID(), getLutil().getRelativ(center, getBlockFace(), -.9, .38).add(0, 3.1, 0)); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); - float yaw = lutil.FaceToYaw(b); - BlockFace face = lutil.yawToFace(yaw +90); - packet = manager.createArmorStand(obj, lutil.getRelativ(center, b, -.4, .38).add(0, 2.68, 0)); + float yaw = getLutil().FaceToYaw(getBlockFace()); + BlockFace face = getLutil().yawToFace(yaw +90); + packet = getManager().createArmorStand(getObjID(), getLutil().getRelativ(center, getBlockFace(), -.4, .38).add(0, 2.68, 0)); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); - packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0)); + packet = getManager().createArmorStand(getObjID(), getLutil().getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0)); packet.getInventory().setHelmet(new ItemStack(Material.REDSTONE_LAMP_OFF)); packet.setName("#LAMP#"); packet.setSmall(true); asList.add(packet); - packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 1.8, 0)); + packet = getManager().createArmorStand(getObjID(), getLutil().getRelativ(center, face, 0.0, -0.9).add(0, 1.8, 0)); packet.getInventory().setHelmet(new ItemStack(Material.WOOD, 1,(short) 5)); asList.add(packet); - packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0)); + packet = getManager().createArmorStand(getObjID(), getLutil().getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0)); packet.getInventory().setHelmet(new ItemStack(Material.GLASS)); packet.setSmall(true); asList.add(packet); - for(ArmorStandPacket pack : asList){ + for(fArmorStand pack : asList){ pack.setInvisible(true); pack.setGravity(false); pack.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + getManager().send(getObjID()); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } private void setBlock(){ - Location location = loc.getBlock().getLocation(); + List blockLocation = new ArrayList(); + Location location = getLocation().getBlock().getLocation(); location.setY(location.getY()-1); for(int i = 0; i<=3;i++){ location.setY(location.getY()+1); Block block = location.getBlock(); block.setType(Material.BARRIER); - blockLocation.add(block.getLocation()); + blockLocation.add(block); if(i==3){ - Location loc =lutil.getRelativ(location, b, -1D, 0D); + Location loc =getLutil().getRelativ(location, getBlockFace(), -1D, 0D); Block blocks = loc.getBlock(); blocks.setType(Material.BARRIER); - blockLocation.add(blocks.getLocation()); + blockLocation.add(blocks); } } + getObjID().addBlock(blockLocation); } @EventHandler - private void onPlayerInteract(PlayerInteractEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + private void onBlockBreak(FurnitureBlockBreakEvent e){ if(e.isCancelled()){return;} - if(e.getAction()==null) return; - if(e.getClickedBlock()==null) return; - if(!blockLocation.contains(e.getClickedBlock().getLocation())){return;} - if(redstone){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.INTERACT)){return;} - e.setCancelled(true); - if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){ - FurnitureLib.getInstance().getLightManager().removeLight(light); - obj.remove(e.getPlayer()); - for(Location loc : blockLocation){ - loc.getBlock().setType(Material.AIR); - } - obj=null; - }else if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){ - if(isOn()){ - setLight(false); - }else{ - setLight(true); - } + if(getObjID()==null){return;} + if(!e.getID().equals(getObjID())){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(!e.canBuild()){return;} + FurnitureLib.getInstance().getLightManager().removeLight(light); + e.remove(); + delete(); + } + + @EventHandler + private void onBlockClick(FurnitureBlockClickEvent e){ + if(e.isCancelled()){return;} + if(getObjID()==null){return;} + if(!e.getID().equals(getObjID())){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(!e.canBuild()){return;} + if(isOn()){ + setLight(false); + }else{ + setLight(true); } } @EventHandler private void onBlockPowered(BlockRedstoneEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.getBlock()==null){return;} Vector loc = e.getBlock().getLocation().toVector(); if(loc2.distance(loc)<=1){ @@ -205,24 +181,24 @@ public class streetlamp extends Furniture implements Listener{ private void setLight(Boolean b){ if(!b){ - ArmorStandPacket packet = getPacket(); + fArmorStand packet = getPacket(); if(packet==null) return; packet.getInventory().setHelmet(new ItemStack(Material.REDSTONE_LAMP_OFF)); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); FurnitureLib.getInstance().getLightManager().removeLight(light); return; }else{ - ArmorStandPacket packet = getPacket(); + fArmorStand packet = getPacket(); if(packet==null) return; packet.getInventory().setHelmet(new ItemStack(Material.GLOWSTONE)); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); FurnitureLib.getInstance().getLightManager().addLight(light, 15); return; } } - private ArmorStandPacket getPacket(){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + private fArmorStand getPacket(){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#LAMP#")){ return packet; } @@ -231,7 +207,7 @@ public class streetlamp extends Furniture implements Listener{ } private boolean isOn(){ - for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand as : getManager().getfArmorStandByObjectID(getObjID())){ if(as.getName().equalsIgnoreCase("#LAMP#")){ switch (as.getInventory().getHelmet().getType()) { case REDSTONE_LAMP_OFF: return false; @@ -246,29 +222,25 @@ public class streetlamp extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(!e.getID().equals(getObjID())){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(!e.canBuild()){return;} FurnitureLib.getInstance().getLightManager().removeLight(light); e.remove(); - obj=null; - for(Location loc : blockLocation){ - loc.getBlock().setType(Material.AIR); - } - blockLocation.clear(); - + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); Boolean isOn = isOn(); - ArmorStandPacket packet = getPacket(); + fArmorStand packet = getPacket(); if(packet==null) return; if(redstone) return; if(isOn){ diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/tv.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/tv.java index 8ed739f..24d9527 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/tv.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/tv.java @@ -6,7 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -14,44 +13,18 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class tv extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public tv(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public tv(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -59,51 +32,48 @@ public class tv extends Furniture implements Listener{ } public void spawn(Location location){ - List aspList = new ArrayList(); - if(b.equals(BlockFace.WEST)){location = lutil.getRelativ(location, b, .0, -1.02);} - if(b.equals(BlockFace.SOUTH)){location = lutil.getRelativ(location, b, -1.0, -1.02);} - if(b.equals(BlockFace.EAST)){location = lutil.getRelativ(location, b, -1.0, .0);} - BlockFace b = lutil.yawToFace(location.getYaw()).getOppositeFace(); - Location center = lutil.getCenter(getLocation()); + List aspList = new ArrayList(); + BlockFace b = getLutil().yawToFace(location.getYaw()).getOppositeFace(); + Location center = getLutil().getCenter(location); center.add(0, -1.38, 0); - center.setYaw(lutil.FaceToYaw(b)); + center.setYaw(getLutil().FaceToYaw(b)); Location iron = center.clone(); - ArmorStandPacket as = manager.createArmorStand(obj, iron); + fArmorStand as = getManager().createArmorStand(getObjID(), iron); as.getInventory().setHelmet(new ItemStack(Material.IRON_PLATE)); as.setSmall(true); aspList.add(as); center.add(0, -.45, 0); - center.setYaw(lutil.FaceToYaw(b)); + center.setYaw(getLutil().FaceToYaw(b)); - as = manager.createArmorStand(obj, center); + as = getManager().createArmorStand(getObjID(), center); as.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(as); - Location tv = lutil.getRelativ(location, getBlockFace(), .85, .7); - tv.add(0, -1.33, 0); - tv.setYaw(lutil.FaceToYaw(b)); + Location tv = getLutil().getRelativ(center.clone(), b, -.38, -.2); + tv.add(0, -.1, 0); + tv.setYaw(getLutil().FaceToYaw(b)); Double l = .63; for(int i = 0;i<=1;i++){ - setRow(tv, .63, l, -.35,2,lutil.degresstoRad(new EulerAngle(90, 0, 0)), aspList); + setRow(tv, .63, l, -.35,2,getLutil().degresstoRad(new EulerAngle(90, 0, 0)), aspList); l+=.63; } - for(ArmorStandPacket asp : aspList){ + for(fArmorStand asp : aspList){ asp.setGravity(false); asp.setBasePlate(false); asp.setInvisible(true); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } - public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ + public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ Double d = .0; for(int i = 0; i<=replay;i++){ - Location loc1= lutil.getRelativ(loc, b, z, d-.825); - loc1.setYaw(lutil.FaceToYaw(b)); + Location loc1= getLutil().getRelativ(loc, getBlockFace(), z, d-.825); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace())); loc1.add(0, y,0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc1); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc1); packet.getInventory().setHelmet(new ItemStack(Material.CARPET, 1 , (short) 15)); packet.setPose(angle, BodyPart.HEAD); list.add(packet); @@ -114,13 +84,13 @@ public class tv extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.remove(); - obj=null; + delete(); } @EventHandler diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/SleepingBag.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/SleepingBag.java new file mode 100644 index 0000000..d9cbbfd --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/SleepingBag.java @@ -0,0 +1,89 @@ +package de.Ste3et_C0st.Furniture.Objects.garden; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class SleepingBag extends Furniture implements Listener { + + public SleepingBag(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#SITZ#")){ + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); + } + } + } + } + + public void spawn(Location loc) { + List asList = new ArrayList(); + double offset = .3; + fArmorStand stand = spawnArmorStand(getRelative(getCenter(), 0 - offset, 0).add(0, -2.15, 0)); + asList.add(stand); + stand.setHelmet(new ItemStack(Material.IRON_TRAPDOOR)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + + stand = spawnArmorStand(getRelative(getCenter(), 2 - offset, 0).add(0, -1.7, 0)); + asList.add(stand); + stand.setHelmet(new ItemStack(Material.BANNER, 1, (short) 3)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(-90, 0, 0))); + + stand = spawnArmorStand(getRelative(getCenter(), -.5 - offset, 0).add(0, -1.68, 0)); + asList.add(stand); + stand.setHelmet(new ItemStack(Material.BANNER, 1, (short) 3)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(-90, 180, 0))); + + stand = spawnArmorStand(getRelative(getCenter(), .3 - offset, 0).add(0, -2.1, 0)); + stand.setName("#SITZ#"); + asList.add(stand); + for(fArmorStand as : asList){ + as.setInvisible(true); + as.setGravity(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/TFlowerPot.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/TFlowerPot.java new file mode 100644 index 0000000..1843c7e --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/TFlowerPot.java @@ -0,0 +1,142 @@ +package de.Ste3et_C0st.Furniture.Objects.garden; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.material.FlowerPot; +import org.bukkit.material.MaterialData; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class TFlowerPot extends Furniture implements Listener { + + Block pot; + FlowerPot potMeta; + public TFlowerPot(Plugin plugin, ObjectID id){ + super(plugin, id); + setPotState(); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + private void setPotState(){ + pot=getLocation().getBlock(); + if(pot.getType()==null||!pot.getType().equals(Material.FLOWER_POT)){pot.setType(Material.FLOWER_POT);} + potMeta = (FlowerPot) pot.getState().getData(); + getObjID().addBlock(Arrays.asList(pot)); + } + + @Override + public void spawn(Location paramLocation) { + List packetList = new ArrayList(); + float yaw = 90; + for(int i = 0; i<=3;i++){ + Location location = getLutil().getRelativ(getCenter(), getLutil().yawToFace(yaw), .53, .08); + location.add(0,-1.7,0); + location.setYaw(90+yaw); + + fArmorStand asp = getManager().createArmorStand(getObjID(), location); + asp.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-115,45,0))); + asp.getInventory().setItemInHand(new ItemStack(Material.STICK)); + + packetList.add(asp); + yaw+=90; + } + + for(fArmorStand asp : packetList){ + asp.setGravity(false); + asp.setInvisible(true); + asp.setBasePlate(false); + asp.setMarker(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @Override + public void onFurnitureBreak(FurnitureBreakEvent paramFurnitureBreakEvent) {} + + @Override + public void onFurnitureClick(FurnitureClickEvent paramFurnitureClickEvent) {} + + @EventHandler + private void BlockBreak(FurnitureBlockBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if (pot==null) return; + if (e.getBlock() == null) return; + if (e.getBlock().getLocation() == null) return; + if(!e.getBlock().equals(pot)){return;} + e.setCancelled(true); + if(!canBuild(e.getPlayer())){return;} + if(potMeta!=null&&potMeta.getContents()!=null){ + getWorld().dropItem(getLocation(), potMeta.getContents().toItemStack()); + } + destroy(e.getPlayer()); + pot.setType(Material.AIR); + pot=null; + potMeta=null; + return; + } + + @EventHandler + private void onPhysiks(BlockPhysicsEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if (pot==null) return; + if (e.getBlock() == null) return; + if (!e.getBlock().equals(pot)) return; + e.setCancelled(true); + } + + private void resendFlowerPot(){ + pot.getState().setData(new MaterialData(Material.AIR)); + pot.getState().update(); + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable() { + @Override + public void run() { + pot.getState().setData(potMeta); + pot.getState().update(); + } + }, 5); + } + + @EventHandler(priority=EventPriority.HIGHEST) + private void onRightClick(FurnitureBlockClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.getBlock()==null||pot==null){return;} + if(!e.getBlock().equals(pot)){return;} + if(!canInteract(e.getPlayer())){ + e.setCancelled(true); + resendFlowerPot(); + return; + }else{ + potMeta = (FlowerPot) pot.getState().getData(); + return; + } + + } +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/Trunk.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/Trunk.java new file mode 100644 index 0000000..58742e9 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/Trunk.java @@ -0,0 +1,120 @@ +package de.Ste3et_C0st.Furniture.Objects.garden; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class Trunk extends Furniture implements Listener { + + public Trunk(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.getPlayer().getItemInHand().getType().isBlock()|| + e.getPlayer().getItemInHand().getType().equals(Material.AIR)){setPassanger(e.getfArmorStand(), e.getPlayer());return;} + if(e.getPlayer().isSneaking()){setPassanger(e.getfArmorStand(), e.getPlayer());return;} + if(!e.canBuild()){return;} + ItemStack stack = e.getPlayer().getItemInHand(); + stack.setAmount(1); + for(fArmorStand stand : getfAsList()){ + if(stand.getName().startsWith("#TO")){ + stand.setHelmet(stack); + } + } + update(); + + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; + Integer i = e.getPlayer().getInventory().getHeldItemSlot(); + ItemStack item = e.getPlayer().getItemInHand(); + item.setAmount(item.getAmount()-1); + e.getPlayer().getInventory().setItem(i, item); + e.getPlayer().updateInventory(); + } + + private void setPassanger(fArmorStand stand, Player p){ + int i = Integer.parseInt(stand.getName().split(":")[1]); + for(fArmorStand as : getfAsList()){ + if(as.getName().equalsIgnoreCase("#Sitz:" + i)){ + if(as.getPassanger()==null){ + as.setPassanger(p); + return; + } + } + } + } + + public void spawn(Location loc) { + List asList = new ArrayList(); + + for(int i = 1; i<=5;i++){ + Location loc1 = getRelative(getCenter(), getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace())), 0d,.1 -i*.62).add(0, -1.6, 0); + fArmorStand stand = spawnArmorStand(loc1); + stand.setHelmet(new ItemStack(Material.LOG)); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(0, 0, 90))); + if(i==1||i==2){ + stand.setName("#TO:1"); + }else if(i==4||i==5){ + stand.setName("#TO:3"); + }else{ + stand.setName("#TO:2"); + } + asList.add(stand); + } + + for(int i = 1; i<=3;i++){ + Location loc1 = getRelative(getCenter(), getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace())), 0d,.3 -i*.9).add(0, -1.5, 0); + loc1.setYaw(getYaw()+180); + fArmorStand stand = spawnArmorStand(loc1); + asList.add(stand); + stand.setName("#SITZ:" + i); + } + + for(fArmorStand stand : asList){ + stand.setInvisible(true); + stand.setGravity(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/WaterBottle.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/WaterBottle.java new file mode 100644 index 0000000..ae90d76 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/WaterBottle.java @@ -0,0 +1,171 @@ +package de.Ste3et_C0st.Furniture.Objects.garden; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.BlockFace; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class WaterBottle extends Furniture implements Listener { + + List matList = Arrays.asList( + Material.YELLOW_FLOWER, + Material.RED_ROSE, + Material.SAPLING, + Material.LONG_GRASS, + Material.DOUBLE_PLANT, + Material.BROWN_MUSHROOM, + Material.RED_MUSHROOM, + Material.DEAD_BUSH); + + public WaterBottle(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(getLocation()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()) return; + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!canInteract(e.getPlayer())){return;} + Material data = e.getPlayer().getItemInHand().getType(); + fArmorStand stand = removeItem(); + if(matList.contains(data)){ + ItemStack is = e.getPlayer().getItemInHand(); + is.setAmount(1); + stand.setHelmet(is); + update(); + } + } + + private fArmorStand removeItem(){ + fArmorStand fstand = null; + for(fArmorStand stand : getfAsList()){ + if(stand.getName().equalsIgnoreCase("#ITEM#")){ + fstand = stand; + if(stand.getItemInHand()!=null&&!stand.getItemInHand().equals(Material.AIR)){ + ItemStack is = stand.getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + return stand; + } + } + return fstand; + } + + private int getInt(Location loc){ + for(int j = 0; j<10;j++){ + Location newLocation = loc.clone().add(0, j, 0); + if(newLocation.getBlock().getType()!=null&&newLocation.getBlock().getType().equals(Material.AIR)){ + return j; + } + } + return 0; + } + + @Override + public void spawn(Location loc) { + double i = 0; + if(getLocation().getBlock().getRelative(BlockFace.UP).getType()!=null&&getLocation().getBlock().getType().equals(Material.STATIONARY_WATER)){ + getObjID().setStartLocation(getLocation().add(0, getInt(getLocation()), 0)); + i-=.54; + } + List stand = new ArrayList(); + Location loc1 = getCenter().add(0, i-1.2, 0); + loc1.setYaw(45); + Location loc2 = getCenter().add(0, i-1.2, 0); + loc2.setYaw(loc1.getYaw()+90); + Location loc3 = getLutil().getRelativ(getCenter(), getBlockFace(), .15, 0).add(0, i-0.8, 0); + loc3.setYaw(getYaw()+180); + Location loc4 = getLutil().getRelativ(getCenter(), getBlockFace(), -.29, .2).add(0, i-0.88, 0); + loc4.setYaw(getYaw()); + Location loc5 = getLutil().getRelativ(getCenter(), getBlockFace(), .13, .284).add(0, i-0.88, 0); + loc5.setYaw(getYaw()+90); + + Location loc6 = getCenter().add(0, i-.7, 0); + loc6.setYaw(getYaw()+45+90); + + fArmorStand as = spawnArmorStand(loc1); + as.setSmall(true); + as.setHelmet(new ItemStack(Material.WEB)); + stand.add(as); + + as = spawnArmorStand(loc2); + as.setSmall(true); + as.setHelmet(new ItemStack(Material.WEB)); + stand.add(as); + + as = spawnArmorStand(loc3); + as.setSmall(true); + as.setHelmet(new ItemStack(Material.WATER_LILY)); + as.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + stand.add(as); + + as = spawnArmorStand(loc4); + as.setSmall(true); + as.setItemInHand(new ItemStack(Material.POTION)); + as.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-110,0,0))); + as.setMarker(false); + stand.add(as); + + as = spawnArmorStand(loc5); + as.setSmall(true); + as.setItemInHand(new ItemStack(Material.POTION)); + as.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-110,0,0))); + as.setMarker(false); + stand.add(as); + + as = spawnArmorStand(loc6); + as.setSmall(true); + //as.setItemInHand(new ItemStack(Material.RED_ROSE)); + as.setName("#ITEM#"); + as.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-110,0,0))); + as.setMarker(false); + stand.add(as); + + for(fArmorStand asp : stand){ + asp.setGravity(false); + asp.setInvisible(true); + asp.setBasePlate(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/campchair.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/campchair.java index 0d21869..ed529e4 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/campchair.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/campchair.java @@ -6,54 +6,24 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class campchair extends Furniture implements Listener { - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public campchair(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public campchair(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -62,25 +32,25 @@ public class campchair extends Furniture implements Listener { @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} + delete(); e.remove(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - if(!e.canBuild()){return;} - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + if(!e.getID().equals(getObjID())){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#SITZ#")){ - if(packet.getPessanger()==null){ - packet.setPessanger(e.getPlayer()); + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); } } } @@ -88,43 +58,43 @@ public class campchair extends Furniture implements Listener { @Override public void spawn(Location location) { - List aspList = new ArrayList(); - Location middle = lutil.getCenter(location); + List aspList = new ArrayList(); + Location middle = getLutil().getCenter(location); middle.add(0, -1.05, 0); - middle.setYaw(lutil.FaceToYaw(b)); + middle.setYaw(getLutil().FaceToYaw(getBlockFace())); - Location l1 = lutil.getRelativ(middle, b, .25, .4); - ArmorStandPacket packet = manager.createArmorStand(obj, l1); + Location l1 = getLutil().getRelativ(middle, getBlockFace(), .25, .4); + fArmorStand packet = getManager().createArmorStand(getObjID(), l1); packet.getInventory().setItemInHand(new ItemStack(Material.LADDER)); - packet.setPose(lutil.degresstoRad(new EulerAngle(50, 0, 0)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(50, 0, 0)), BodyPart.RIGHT_ARM); aspList.add(packet); - l1 = lutil.getRelativ(middle, b.getOppositeFace(), .25, .4); - packet = manager.createArmorStand(obj, l1); + l1 = getLutil().getRelativ(middle, getBlockFace().getOppositeFace(), .25, .4); + packet = getManager().createArmorStand(getObjID(), l1); packet.getInventory().setItemInHand(new ItemStack(Material.LADDER)); - packet.setPose(lutil.degresstoRad(new EulerAngle(50, 0, 0)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(50, 0, 0)), BodyPart.RIGHT_ARM); aspList.add(packet); l1 = middle.clone(); l1.add(0, -.65, 0); - packet = manager.createArmorStand(obj, l1); + packet = getManager().createArmorStand(getObjID(), l1); packet.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE)); aspList.add(packet); middle.add(0,-0.6,0); - middle.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - packet = manager.createArmorStand(obj, middle); + middle.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + packet = getManager().createArmorStand(getObjID(), middle); packet.setName("#SITZ#"); aspList.add(packet); - for(ArmorStandPacket as : aspList){ + for(fArmorStand as : aspList){ as.setInvisible(true); as.setBasePlate(false); as.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java index 8b0968f..badfb37 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java @@ -7,45 +7,26 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; import de.Ste3et_C0st.Furniture.Main.main; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; -import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; -import de.Ste3et_C0st.FurnitureLib.main.Type.EventType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class fance extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - private void setTypes(ItemStack is){for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){packet.getInventory().setHelmet(is);}} + private void setTypes(ItemStack is){for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){packet.getInventory().setHelmet(is);}} List matList = Arrays.asList( Material.SPRUCE_FENCE, Material.BIRCH_FENCE, @@ -57,18 +38,9 @@ public class fance extends Furniture implements Listener{ Block block; Material m; - public fance(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public fance(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ setBlock(); Bukkit.getPluginManager().registerEvents(this, plugin); return; @@ -79,13 +51,13 @@ public class fance extends Furniture implements Listener{ public void spawn(Location location){ this.m = Material.STONE; - Location locat = loc.clone(); - locat=lutil.getCenter(locat); + Location locat = getLocation().clone(); + locat=getLutil().getCenter(locat); locat.add(0, -1.2, 0); - locat.setYaw(lutil.FaceToYaw(b.getOppositeFace())); + locat.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); for(int i = 0; i<=2;i++){ Location loc = locat.clone(); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setHelmet(new ItemStack(m,0,(short) 0)); packet.setGravity(false); packet.setInvisible(true); @@ -93,52 +65,30 @@ public class fance extends Furniture implements Listener{ packet.setSmall(true); locat.add(0, .44, 0); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler - private void onBlockBreak(BlockBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} - if(block==null){return;} - if(!e.getBlock().getLocation().equals(block.getLocation())){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){return;} - this.block.setType(Material.AIR); - this.obj.remove(e.getPlayer()); - block=null; - manager.remove(obj); - obj=null; - } - - @EventHandler - public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + private void onBlockBreak(FurnitureBlockBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} - e.setCancelled(true); - if(this.block!=null) this.block.setType(Material.AIR); e.remove(); - obj=null; - block.setType(Material.AIR); - block=null; + delete(); } @SuppressWarnings("deprecation") @EventHandler - private void onInteract(PlayerInteractEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} - if(e.isCancelled()) return; - if(this.block==null) return; - if(e.getAction()==null)return; - if(!e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) return; - if(!e.getClickedBlock().getLocation().equals(this.block.getLocation())) return; - if(!lib.canBuild(e.getPlayer(), obj, EventType.INTERACT)){return;} - e.setCancelled(true); + private void onBlockBreak(FurnitureBlockClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} Player p = e.getPlayer(); ItemStack is = p.getItemInHand(); if(is==null||!is.getType().isBlock()||is.getType().equals(Material.AIR)) return; @@ -151,11 +101,26 @@ public class fance extends Furniture implements Listener{ }else if(main.materialWhiteList.contains(itemStack.getType())){ setTypes(itemStack); remove(p, is); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); return; } } + + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e){ + if(getObjID()==null){return;} + if(e.getID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + e.remove(); + delete(); + } + private void remove(Player p, ItemStack is){ if(!p.getGameMode().equals(GameMode.CREATIVE)){ Integer i = p.getInventory().getHeldItemSlot(); @@ -168,11 +133,11 @@ public class fance extends Furniture implements Listener{ @SuppressWarnings("deprecation") @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} if(this.block==null) return; - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); Player p = e.getPlayer(); @@ -187,19 +152,20 @@ public class fance extends Furniture implements Listener{ }else if(main.materialWhiteList.contains(itemStack.getType())){ setTypes(itemStack); remove(p, is); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); return; } } private void setBlock(){ - Location location = loc.clone(); + Location location = getLocation().clone(); this.block = location.getBlock(); if(this.block.getType()==null||this.block.getType().equals(Material.AIR)||!this.block.getType().equals(Material.FENCE)){ if(!this.matList.contains(this.block.getType())){ this.block.setType(Material.FENCE); } } + getObjID().addBlock(Arrays.asList(this.block)); } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java index e73c2d4..f4eed16 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java @@ -1,13 +1,13 @@ package de.Ste3et_C0st.Furniture.Objects.garden; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; @@ -22,45 +22,18 @@ import org.bukkit.inventory.meta.BookMeta; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class graveStone extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public graveStone(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public graveStone(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ setBlock(); Bukkit.getPluginManager().registerEvents(this, plugin); return; @@ -74,57 +47,57 @@ public class graveStone extends Furniture implements Listener{ String[] lines = new String[4]; private void setBlock(){ - Location location = loc.clone(); - if(b.equals(BlockFace.WEST)){location = lutil.getRelativ(location, b, .0, -1.02);} - if(b.equals(BlockFace.SOUTH)){location = lutil.getRelativ(location, b, -1.0, -1.02);} - if(b.equals(BlockFace.EAST)){location = lutil.getRelativ(location, b, -1.0, .0);} - Location center = lutil.getRelativ(location, getBlockFace(), .18D, .955D); - center.setYaw(lutil.FaceToYaw(b.getOppositeFace()) + 90); - Location kreutz2 = lutil.getRelativ(center, getBlockFace(), -.23, -1.27); - Location sign = lutil.getRelativ(kreutz2.getBlock().getLocation(), b, 0D, 1D); + Location location = getLocation().clone(); + if(getBlockFace().equals(BlockFace.WEST)){location = getLutil().getRelativ(location, getBlockFace(), .0, -1.02);} + if(getBlockFace().equals(BlockFace.SOUTH)){location = getLutil().getRelativ(location, getBlockFace(), -1.0, -1.02);} + if(getBlockFace().equals(BlockFace.EAST)){location = getLutil().getRelativ(location, getBlockFace(), -1.0, .0);} + Location center = getLutil().getRelativ(location, getBlockFace(), .18D, .955D); + center.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace()) + 90); + Location kreutz2 = getLutil().getRelativ(center, getBlockFace(), -.23, -1.27); + Location sign = getLutil().getRelativ(kreutz2.getBlock().getLocation(), getBlockFace(), 0D, 1D); this.signLoc = sign; if(!sign.getBlock().getType().equals(Material.WALL_SIGN)){ - this.sign = lutil.setSign(b, sign); + this.sign = getLutil().setSign(getBlockFace(), sign); }else{ this.sign = sign.getBlock(); } - this.lines = getText(); + getObjID().addBlock(Arrays.asList(this.sign)); } public void spawn(Location location){ - List aspList = new ArrayList(); - if(b.equals(BlockFace.WEST)){location = lutil.getRelativ(location, b, .0, -1.02);} - if(b.equals(BlockFace.SOUTH)){location = lutil.getRelativ(location, b, -1.0, -1.02);} - if(b.equals(BlockFace.EAST)){location = lutil.getRelativ(location, b, -1.0, .0);} - Location center = lutil.getRelativ(location, getBlockFace(), .18D, .955D); + List aspList = new ArrayList(); + if(getBlockFace().equals(BlockFace.WEST)){location = getLutil().getRelativ(location, getBlockFace(), .0, -1.02);} + if(getBlockFace().equals(BlockFace.SOUTH)){location = getLutil().getRelativ(location, getBlockFace(), -1.0, -1.02);} + if(getBlockFace().equals(BlockFace.EAST)){location = getLutil().getRelativ(location, getBlockFace(), -1.0, .0);} + Location center = getLutil().getRelativ(location, getBlockFace(), .18D, .955D); center.add(0,-.8,0); - center.setYaw(lutil.FaceToYaw(b.getOppositeFace()) + 90); - Location kreutz1 = lutil.getRelativ(center, getBlockFace(), -.55, .0); + center.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace()) + 90); + Location kreutz1 = getLutil().getRelativ(center, getBlockFace(), -.55, .0); kreutz1.add(0, 1.5, 0); - kreutz1.setYaw(lutil.FaceToYaw(b.getOppositeFace()) + 90); + kreutz1.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace()) + 90); - Location kreutz2 = lutil.getRelativ(center, getBlockFace(), -.23, -1.27); + Location kreutz2 = getLutil().getRelativ(center, getBlockFace(), -.23, -1.27); kreutz2.add(0, 1.6, 0); - kreutz2.setYaw(lutil.FaceToYaw(b.getOppositeFace())); + kreutz2.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); Location loc = center; for(int i = 0; i<=2;i++){ - Location l = lutil.getRelativ(loc, b, .0, -.44*i); + Location l = getLutil().getRelativ(loc, getBlockFace(), .0, -.44*i); - l.setYaw(lutil.FaceToYaw(b.getOppositeFace()) + 90); - ArmorStandPacket as = manager.createArmorStand(obj, l); + l.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace()) + 90); + fArmorStand as = getManager().createArmorStand(getObjID(), l); as.getInventory().setHelmet(new ItemStack(Material.COBBLESTONE)); as.setSmall(true); - as.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); aspList.add(as); } Double l = .3; for(int i = 0;i<=2;i++){ - setRow(center, .38, l, -.35,2,lutil.degresstoRad(new EulerAngle(90, 0, 0)), aspList); + setRow(center, .38, l, -.35,2,getLutil().degresstoRad(new EulerAngle(90, 0, 0)), aspList); if(i!=1){ l+=.4; }else{ @@ -133,42 +106,42 @@ public class graveStone extends Furniture implements Listener{ } - ArmorStandPacket as = manager.createArmorStand(obj, kreutz1); + fArmorStand as = getManager().createArmorStand(getObjID(), kreutz1); as.getInventory().setItemInHand(new ItemStack(Material.STICK)); as.setPose(new EulerAngle(1.38,.0,.0), BodyPart.RIGHT_ARM); aspList.add(as); - as = manager.createArmorStand(obj, kreutz2); + as = getManager().createArmorStand(getObjID(), kreutz2); as.getInventory().setItemInHand(new ItemStack(Material.STICK)); as.setPose(new EulerAngle(1.38,1.57,1.57), BodyPart.RIGHT_ARM); aspList.add(as); - for(ArmorStandPacket asp : aspList){ + for(fArmorStand asp : aspList){ asp.setGravity(false); asp.setInvisible(true); asp.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()) return; - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.remove(); sign.setType(Material.AIR); sign = null; - obj=null; + delete(); } @EventHandler private void onBlockRemove(BlockBreakEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if (sign==null) return; if (e.getBlock() == null) return; if (e.getBlock().getLocation() == null) return; @@ -178,8 +151,8 @@ public class graveStone extends Furniture implements Listener{ @EventHandler private void onBlockPlaceEvent(BlockPlaceEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if (sign==null) return; if (e.getBlock() == null) return; if (e.getBlock().getLocation() == null) return; @@ -189,8 +162,8 @@ public class graveStone extends Furniture implements Listener{ @EventHandler private void onDrop(ItemSpawnEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if (sign==null) return; if (e.getLocation() == null) return; ItemStack is = e.getEntity().getItemStack(); @@ -203,11 +176,11 @@ public class graveStone extends Furniture implements Listener{ @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} Player p = e.getPlayer(); if(e.isCancelled()) return; - if(!e.getID().equals(obj)) return; + if(!e.getID().equals(getObjID())) return; if(!e.canBuild()){return;} ItemStack is = p.getItemInHand(); if (is == null) return; @@ -216,10 +189,10 @@ public class graveStone extends Furniture implements Listener{ } public void resetSign(){ - Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { + Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable() { @Override public void run() { - sign = lutil.setSign(b, signLoc); + sign = getLutil().setSign(getBlockFace(), signLoc); placetext(); } }); @@ -229,8 +202,8 @@ public class graveStone extends Furniture implements Listener{ if(sign!=null){ sign.setType(Material.AIR); sign = null; - manager.remove(obj); - obj=null; + getManager().remove(getObjID()); + delete(); } } @@ -289,13 +262,13 @@ public class graveStone extends Furniture implements Listener{ lines[line] = text; } - public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ + public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ Double d = .0; for(int i = 0; i<=replay;i++){ - Location loc1= lutil.getRelativ(loc, b, z, d-.825); - loc1.setYaw(lutil.FaceToYaw(b)); + Location loc1= getLutil().getRelativ(loc, getBlockFace(), z, d-.825); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace())); loc1.add(0, y,0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc1); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc1); packet.getInventory().setHelmet(new ItemStack(Material.STONE_PLATE)); packet.setSmall(true); packet.setPose(angle, BodyPart.HEAD); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java new file mode 100644 index 0000000..461abfc --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java @@ -0,0 +1,331 @@ +package de.Ste3et_C0st.Furniture.Objects.garden; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +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.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; +import de.Ste3et_C0st.FurnitureLib.Utilitis.ManageInv; +import de.Ste3et_C0st.FurnitureLib.main.Furniture; +import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; +import de.Ste3et_C0st.FurnitureLib.main.ObjectID; +import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class log extends Furniture { + + Block b; + int mode = 0; + Inventory inv = Bukkit.createInventory(null, 9, "§2Settings"); + ItemStack pane = new ItemStack(Material.STAINED_GLASS_PANE); + ItemStack permissions = new ItemStack(Material.ARROW); + List isList = new ArrayList(); + Player p; + + public log(Plugin plugin, ObjectID id){ + super(plugin, id); + b = getLocation().getBlock(); + getObjID().addBlock(Arrays.asList(b)); + ItemMeta meta = pane.getItemMeta(); + meta.setDisplayName("§c"); + pane.setItemMeta(meta); + pane.setDurability((short) 15); + pane.setItemMeta(meta); + setList(); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + private void setList(){ + ItemStack stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 1); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cTop"); + stack.setItemMeta(meta); + isList.add(stack); + stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 2); + meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cFront I"); + stack.setItemMeta(meta); + isList.add(stack); + stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 11); + meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cFront II"); + stack.setItemMeta(meta); + isList.add(stack); + + meta = permissions.getItemMeta(); + meta.setDisplayName("§cChange Permissions (Owner Only)"); + permissions.setItemMeta(meta); + } + + @Override + public void spawn(Location loc) { + b.setType(Material.LOG); + List lStand = new ArrayList(); + + Location loc1 = getLutil().getRelativ(getCenter(), getBlockFace(), .5, .35); + loc1.setYaw(getYaw()); + Location loc2 = getLutil().getRelativ(getCenter(), getBlockFace(), -.7, .35d); + loc2.setYaw(getYaw()); + + Location loc3 = getLutil().getRelativ(getCenter(), getBlockFace(), -1.3, .35d).subtract(0, 1.0, 0); + loc3.setYaw(getYaw()); + + fArmorStand stand = spawnArmorStand(loc1); + stand.setRightArmPose(new EulerAngle(1.35, 0, 0)); + stand.setName("0"); + lStand.add(stand); + + + stand = spawnArmorStand(loc2); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(15, 0, 0))); + stand.setName("1"); + lStand.add(stand); + + stand = spawnArmorStand(loc3); + stand.setRightArmPose(getLutil().degresstoRad(new EulerAngle(-30, 0, 0))); + stand.setName("2"); + lStand.add(stand); + + for(fArmorStand asp : lStand){ + asp.setGravity(false); + asp.setInvisible(true); + asp.setBasePlate(false); + asp.setMarker(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + private void openInventory(Player p){ + if(this.p !=null) return; + this.p = p; + inv.clear(); + int j = mode; + for(int i = 0; i=2){i = -1;} + i++; + is = isList.get(i); + mode = i; + modeSwitch(e.getCurrentItem().getDurability()); + inv.setItem(e.getSlot(), is); + p.updateInventory(); + }else if(e.getCurrentItem().getType().equals(Material.ARROW)){ + if(!getObjID().getUUID().equals(p.getUniqueId())){ + if(!getLib().hasPerm(p, "furniture.admin") && !p.isOp() && !getLib().hasPerm(p, "furniture.manage.other")){ + return; + } + } + p.closeInventory(); + new ManageInv((Player) e.getWhoClicked(), getObjID()); + } + } + + public void modeSwitch(short dura){ + int oldArmorStand = 0; + int currentArmorStand = 0; + + switch (dura) { + case 1: + oldArmorStand = 0; + currentArmorStand = 1; + break; + case 2: + oldArmorStand = 1; + currentArmorStand = 2; + break; + case 11: + oldArmorStand = 2; + currentArmorStand = 0; + break; + } + + fArmorStand standOld = null; + fArmorStand standCurrent = null; + for(fArmorStand s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(oldArmorStand+"")){ + standOld=s; + }else if(s.getName().equalsIgnoreCase(currentArmorStand+"")){ + standCurrent=s; + } + } + + if(standOld!=null&&standCurrent!=null){ + standCurrent.setItemInHand(standOld.getItemInHand()); + standOld.setItemInHand(new ItemStack(Material.AIR)); + update(); + } + } + + @EventHandler + public void onClose(InventoryCloseEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.getInventory()==null){return;} + if(e.getInventory().equals(inv)){this.p = null;} + } + + + @SuppressWarnings("deprecation") + @EventHandler + public void onBlockClick(FurnitureBlockClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + Player p = e.getPlayer(); + if(p.isSneaking()){ + if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){ + e.setCancelled(false); + return; + } + openInventory(p); + }else{ + if(p.getItemInHand().getType().isBlock() && !p.getItemInHand().getType().equals(Material.AIR)){ + this.b.setType(p.getItemInHand().getType()); + this.b.setData((byte) p.getItemInHand().getDurability()); + removeItem(p); + return; + }else if(!p.getItemInHand().getType().isBlock() && !p.getItemInHand().getType().equals(Material.AIR)){ + fArmorStand stand = null; + for(fArmorStand s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + if(stand==null){return;} + if(stand.getItemInHand()!=null&&!stand.getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = stand.getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + + ItemStack is = p.getItemInHand().clone(); + is.setAmount(1); + stand.setItemInHand(is); + update(); + removeItem(p); + return; + }else{ + fArmorStand stand = null; + for(fArmorStand s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + if(stand==null){return;} + + if(stand.getItemInHand()!=null&&!stand.getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = stand.getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + + stand.setItemInHand(new ItemStack(Material.AIR)); + update(); + return; + } + } + } + + public void removeItem(Player p){ + Boolean useGameMode = FurnitureLib.getInstance().useGamemode(); + if(useGameMode&&p.getGameMode().equals(GameMode.CREATIVE)){return;} + Integer slot = p.getInventory().getHeldItemSlot(); + ItemStack itemStack = p.getItemInHand().clone(); + itemStack.setAmount(itemStack.getAmount()-1); + p.getInventory().setItem(slot, itemStack); + p.updateInventory(); + } + + @Override + public void onFurnitureBreak(FurnitureBreakEvent paramFurnitureBreakEvent) {} + + @Override + public void onFurnitureClick(FurnitureClickEvent paramFurnitureClickEvent) {} + + @EventHandler + public void onBlockBreak(FurnitureBlockBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + Player p = e.getPlayer(); + + fArmorStand stand = null; + for(fArmorStand s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + if(stand==null){p.sendMessage("test1");return;} + + if(stand.getItemInHand()!=null&&!stand.getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = stand.getItemInHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + + destroy(p); + b.setType(Material.AIR); + b=null; + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/mailBox.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/mailBox.java index fd9ff9e..471645d 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/mailBox.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/mailBox.java @@ -7,7 +7,6 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; @@ -18,49 +17,22 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; 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; public class mailBox extends Furniture implements Listener { - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; List blockList = new ArrayList(); - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - UUID uuid; - public mailBox(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public mailBox(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -68,42 +40,42 @@ public class mailBox extends Furniture implements Listener { } public void spawn(Location location){ - List aspList = new ArrayList(); - Location middle = lutil.getCenter(loc); + List aspList = new ArrayList(); + Location middle = getLutil().getCenter(getLocation()); middle.add(0, -1.4, 0); - switch (b) { - case NORTH:middle = lutil.getRelativ(middle, b, 0D, 0.03D);break; - case EAST:middle = lutil.getRelativ(middle, b, 0D, 0.03D);break; + switch (getBlockFace()) { + case NORTH:middle = getLutil().getRelativ(middle, getBlockFace(), 0D, 0.03D);break; + case EAST:middle = getLutil().getRelativ(middle, getBlockFace(), 0D, 0.03D);break; default:break; } - ArmorStandPacket as = manager.createArmorStand(obj, middle); + fArmorStand as = getManager().createArmorStand(getObjID(), middle); as.getInventory().setHelmet(new ItemStack(Material.STONE)); as.setSmall(true); aspList.add(as); for(int i = 0; i<=1;i++){ - Location loc = lutil.getRelativ(middle.clone(), b, .47, .38).add(0, .88*i, 0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + Location loc = getLutil().getRelativ(middle.clone(), getBlockFace(), .47, .38).add(0, .88*i, 0); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); aspList.add(packet); } - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, -.21, 0D)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.2, 0), getBlockFace(), -.21, 0D)); as.getInventory().setHelmet(new ItemStack(Material.SMOOTH_BRICK, 1, (short) 0)); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, .21, 0D)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.2, 0), getBlockFace(), .21, 0D)); as.getInventory().setHelmet(new ItemStack(Material.SMOOTH_BRICK, 1, (short) 0)); as.setSmall(true); aspList.add(as); for(int i = 0; i<=4;i++){ - Location loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b, -.44+.165*i, .43D); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + Location loc = getLutil().getRelativ(middle.clone().add(0, 1.898, 0), getBlockFace(), -.44+.165*i, .43D); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.setSmall(true); //x z y //-.7 .73 -.3 @@ -111,8 +83,8 @@ public class mailBox extends Furniture implements Listener { packet.getInventory().setItemInHand(new ItemStack(Material.SMOOTH_STAIRS)); aspList.add(packet); - loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b.getOppositeFace(), -.44+.165*i, .462D); - packet = manager.createArmorStand(obj, loc); + loc = getLutil().getRelativ(middle.clone().add(0, 1.898, 0), getBlockFace().getOppositeFace(), -.44+.165*i, .462D); + packet = getManager().createArmorStand(getObjID(), loc); packet.setSmall(true); //x z y //-.7 .73 -.3 @@ -121,8 +93,8 @@ public class mailBox extends Furniture implements Listener { aspList.add(packet); - loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b.getOppositeFace(), -.44+.165*i, .362D); - packet = manager.createArmorStand(obj, loc); + loc = getLutil().getRelativ(middle.clone().add(0, 1.898, 0), getBlockFace().getOppositeFace(), -.44+.165*i, .362D); + packet = getManager().createArmorStand(getObjID(), loc); packet.setSmall(true); //x z y //-.7 .73 -.3 @@ -131,47 +103,50 @@ public class mailBox extends Furniture implements Listener { aspList.add(packet); } - BlockFace face = b; - face = lutil.yawToFace(lutil.FaceToYaw(b) + 90); - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.5, 0), face, -.21, -.32D)); + BlockFace face = getBlockFace(); + face = getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace()) + 90); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.5, 0), face, -.21, -.32D)); as.getInventory().setHelmet(new ItemStack(Material.REDSTONE_TORCH_ON, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); as.setName("#ELEMENT#"); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.10, 0), face.getOppositeFace(), -.0, .31D)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.10, 0), face.getOppositeFace(), -.0, .31D)); as.getInventory().setItemInHand(new ItemStack(Material.PAPER, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.40, 0), face.getOppositeFace(), -.1, .34D)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.40, 0), face.getOppositeFace(), -.1, .34D)); as.getInventory().setItemInHand(new ItemStack(Material.WOOD_BUTTON, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(-15,-67, -90)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(-15,-67, -90)), BodyPart.RIGHT_ARM); as.setSmall(true); aspList.add(as); - as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, .2, .07D)); + as = getManager().createArmorStand(getObjID(), getLutil().getRelativ(middle.clone().add(0, 1.2, 0), getBlockFace(), .2, .07D)); as.getInventory().setItemInHand(new ItemStack(Material.EMPTY_MAP, 1, (short) 0)); - as.setPose(lutil.degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM); + as.setPose(getLutil().degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM); as.setSmall(true); aspList.add(as); - for(ArmorStandPacket asp : aspList){ + for(fArmorStand asp : aspList){ asp.setGravity(false); asp.setInvisible(true); asp.setBasePlate(false); } - + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + public void setBlock(){ for(int i = 0; i<=1;i++){ - Block b = location.clone().add(0, i, 0).getBlock(); + Block b = getLocation().clone().add(0, i, 0).getBlock(); b.setType(Material.BARRIER); blockList.add(b); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + getObjID().addBlock(blockList); } /*public void addMailbox(Player p){ @@ -186,15 +161,15 @@ public class mailBox extends Furniture implements Listener { } public void setSendet(Boolean b){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet!=null&&packet.getName().equalsIgnoreCase("#ELEMENT#")){ if(b){ - packet.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 0)), BodyPart.HEAD); - manager.updateFurniture(obj); + packet.setPose(getLutil().degresstoRad(new EulerAngle(0, 0, 0)), BodyPart.HEAD); + getManager().updateFurniture(getObjID()); return; } - packet.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); - manager.updateFurniture(obj); + packet.setPose(getLutil().degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD); + getManager().updateFurniture(getObjID()); return; } } @@ -211,10 +186,10 @@ public class mailBox extends Furniture implements Listener { @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()) return; - if(!e.getID().equals(obj)) return; + if(!e.getID().equals(getObjID())) return; if(!e.canBuild()){return;} for(Block b : blockList){ @@ -222,28 +197,28 @@ public class mailBox extends Furniture implements Listener { } blockList.clear(); e.remove(); - obj=null; + delete(); } public void onFurnitureClick(FurnitureClickEvent e){} @EventHandler private void onInteract(PlayerInteractEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} if(e.getAction()==null){return;} if(e.getClickedBlock()==null){return;} if(!blockList.contains(e.getClickedBlock())){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.INTERACT)){return;} + if(!getLib().canBuild(e.getPlayer(), getObjID(), EventType.INTERACT)){return;} if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){ e.setCancelled(true); for(Block b : blockList){ b.setType(Material.AIR); } blockList.clear(); - this.obj.remove(e.getPlayer()); - obj=null; + this.getObjID().remove(e.getPlayer()); + delete(); } } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/sunshade.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/sunshade.java index ad88a89..e50d651 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/sunshade.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/sunshade.java @@ -9,49 +9,30 @@ import org.bukkit.DyeColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.block.banner.Pattern; import org.bukkit.block.banner.PatternType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BannerMeta; import org.bukkit.plugin.Plugin; import org.bukkit.util.EulerAngle; -import de.Ste3et_C0st.Furniture.Main.main; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; -import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; 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; public class sunshade extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - List matList = Arrays.asList( Material.SPRUCE_FENCE, Material.BIRCH_FENCE, @@ -64,18 +45,9 @@ public class sunshade extends Furniture implements Listener{ Integer timer; Block block; - public sunshade(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public sunshade(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ setblock(); Bukkit.getPluginManager().registerEvents(this, plugin); return; @@ -85,27 +57,28 @@ public class sunshade extends Furniture implements Listener{ } private void setblock(){ - Location loc = this.loc.clone(); + Location loc = getLocation().clone(); loc.add(0, 2, 0); block = loc.getBlock(); block.setType(Material.BARRIER); + getObjID().addBlock(Arrays.asList(block)); } public void spawn(Location location){ - Location center = lutil.getCenter(location).clone(); - List asList = new ArrayList(); + Location center = getLutil().getCenter(location).clone(); + List asList = new ArrayList(); center.add(0, -1.1, 0); for(int i = 0; i<=2;i++){ - Location loc = lutil.getRelativ(center.clone(), b, .47, .38).add(0, .88*i, 0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc); + Location loc = getLutil().getRelativ(center.clone(), getBlockFace(), .47, .38).add(0, .88*i, 0); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } center.add(0, 1.758, 0); - ArmorStandPacket aspacket = manager.createArmorStand(obj, center); + fArmorStand aspacket = getManager().createArmorStand(getObjID(), center); aspacket.getInventory().setHelmet(new ItemStack(Material.CARPET)); aspacket.setName("#TOP#"); asList.add(aspacket); @@ -121,63 +94,54 @@ public class sunshade extends Furniture implements Listener{ for(int i = 0; i<=17; i++){ loc.setYaw(i*21); - ArmorStandPacket packet = manager.createArmorStand(obj, loc.clone()); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc.clone()); packet.getInventory().setHelmet(is); packet.setPose(new EulerAngle(-3.054, 0, 0), BodyPart.HEAD); packet.setName("#ELEMENT#" + i); asList.add(packet); } - for(ArmorStandPacket packet : asList){ + for(fArmorStand packet : asList){ packet.setInvisible(true); packet.setGravity(false); packet.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); Player p = e.getPlayer(); ItemStack is = p.getItemInHand(); - if(is==null||!is.getType().equals(Material.BANNER)){ + if(!getLib().canBuild(e.getPlayer(), getObjID(), EventType.INTERACT)){return;} + if(is.getType().equals(Material.BANNER)){ + e.setCancelled(true); + if(isRunning()){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(Material.BANNER)){ + packet.getInventory().setHelmet(is); + }else if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(Material.CARPET)){ + ItemStack item = new ItemStack(Material.CARPET); + item.setDurability(getLutil().getFromDey((short) is.getDurability())); + packet.getInventory().setHelmet(item); + } + } + removeItem(p); + update(); + }else{ if(isRunning()){return;} if(!isOpen()){ open(); }else{ close(); } - }else{ - if(isRunning()){return;} - if(!is.hasItemMeta()){return;} - ItemStack itemstack = is.clone(); - BannerMeta banner = (BannerMeta) itemstack.getItemMeta(); - Short s = lutil.getfromDyeColor(banner.getBaseColor()); - Short newS = lutil.getFromDey(s); - - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getName().startsWith("#ELEMENT#")){ - packet.getInventory().setHelmet(itemstack); - }else if(packet.getName().equalsIgnoreCase("#TOP#")){ - packet.getInventory().setHelmet(new ItemStack(Material.CARPET, 1, newS)); - } - } - - manager.updateFurniture(obj); - - if(!p.getGameMode().equals(GameMode.CREATIVE)){ - Integer i = p.getInventory().getHeldItemSlot(); - is.setAmount(is.getAmount()-1); - p.getInventory().setItem(i, is); - p.updateInventory(); - } } } @@ -187,107 +151,109 @@ public class sunshade extends Furniture implements Listener{ } @EventHandler - private void onInteract(PlayerInteractEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + public void onBlockBreak(FurnitureBlockBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(e.getAction()==null){return;} - if(e.getClickedBlock()==null){return;} - if(!e.getClickedBlock().getLocation().equals(block.getLocation())){return;} - if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){ - e.setCancelled(true); - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){return;} - stopTimer(); - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getName().equalsIgnoreCase("#ITEM#")){ - if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ - ItemStack is = packet.getInventory().getItemInHand(); - w.dropItem(loc, is); - } - } - } - this.block.setType(Material.AIR); - this.block = null; - this.obj.remove(e.getPlayer()); - obj=null; - }else if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){ - if(!lib.canBuild(e.getPlayer(), obj, EventType.INTERACT)){return;} - Player p = e.getPlayer(); - ItemStack is = p.getItemInHand(); - if(is==null||!is.getType().equals(Material.BANNER)){ - if(isRunning()){return;} - if(!isOpen()){ - open(); - }else{ - close(); - } - }else{ - e.setCancelled(true); - if(isRunning()){return;} - if(!is.hasItemMeta()){return;} - ItemStack itemstack = is.clone(); - BannerMeta banner = (BannerMeta) itemstack.getItemMeta(); - Short s = lutil.getfromDyeColor(banner.getBaseColor()); - Short newS = lutil.getFromDey(s); - - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getName().startsWith("#ELEMENT#")){ - packet.getInventory().setHelmet(itemstack); - }else if(packet.getName().equalsIgnoreCase("#TOP#")){ - packet.getInventory().setHelmet(new ItemStack(Material.CARPET, 1, newS)); - } - } - manager.updateFurniture(obj); - - if(!p.getGameMode().equals(GameMode.CREATIVE)){ - Integer i = p.getInventory().getHeldItemSlot(); - is.setAmount(is.getAmount()-1); - p.getInventory().setItem(i, is); - p.updateInventory(); - } + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + stopTimer(); + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase("#ITEM#")){ + if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getItemInHand(); + getWorld().dropItem(getLocation(), is); } + } } + getObjID().remove(e.getPlayer()); + delete(); + } + + @EventHandler + public void onBlockBreak(FurnitureBlockClickEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.setCancelled(true); + Player p = e.getPlayer(); + ItemStack is = p.getItemInHand(); + if(is.getType().equals(Material.BANNER)){ + e.setCancelled(true); + if(isRunning()){return;} + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(Material.BANNER)){ + packet.getInventory().setHelmet(is); + }else if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(Material.CARPET)){ + ItemStack item = new ItemStack(Material.CARPET); + item.setDurability(getLutil().getFromDey((short) is.getDurability())); + packet.getInventory().setHelmet(item); + } + } + removeItem(p); + update(); + }else{ + if(isRunning()){return;} + if(!isOpen()){ + open(); + }else{ + close(); + } + } + } + + public void removeItem(Player p){ + Boolean useGameMode = FurnitureLib.getInstance().useGamemode(); + if(useGameMode&&p.getGameMode().equals(GameMode.CREATIVE)){return;} + Integer slot = p.getInventory().getHeldItemSlot(); + ItemStack itemStack = p.getItemInHand().clone(); + itemStack.setAmount(itemStack.getAmount()-1); + p.getInventory().setItem(slot, itemStack); + p.updateInventory(); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); stopTimer(); - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#ITEM#")){ if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ ItemStack is = packet.getInventory().getItemInHand(); - w.dropItem(loc, is); + getWorld().dropItem(getLocation(), is); } } } e.remove(); this.block.setType(Material.AIR); this.block = null; - manager.remove(obj); - obj=null; + getManager().remove(getObjID()); + delete(); } private void close(){ - timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { + timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(getPlugin(), new Runnable() { @Override public void run() { try{ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().startsWith("#ELEMENT#")){ if(!isClose(packet)){ - Double x = packet.getAngle(BodyPart.HEAD).getX(); + Double x = packet.getPose(BodyPart.HEAD).getX(); packet.setPose(new EulerAngle(x-.32, 0, 0), BodyPart.HEAD); }else{ stopTimer(); return; } - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); } } }catch(Exception e){ @@ -300,20 +266,20 @@ public class sunshade extends Furniture implements Listener{ } private void open(){ - timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { + timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(getPlugin(), new Runnable() { @Override public void run() { try{ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().startsWith("#ELEMENT#")){ if(!isOpen(packet)){ - Double x = packet.getAngle(BodyPart.HEAD).getX(); + Double x = packet.getPose(BodyPart.HEAD).getX(); packet.setPose(new EulerAngle(x+.32, 0, 0), BodyPart.HEAD); }else{ stopTimer(); return; } - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); } } }catch(Exception e){ @@ -326,30 +292,30 @@ public class sunshade extends Furniture implements Listener{ } private void reset(){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(!isOpen(packet)){ packet.setPose(new EulerAngle(-3.054, 0, 0), BodyPart.HEAD); } } - manager.updateFurniture(obj); + update(); } - private boolean isClose(ArmorStandPacket packet){ - if(packet.getAngle(BodyPart.HEAD).getX()> -3.054){ + private boolean isClose(fArmorStand packet){ + if(packet.getPose(BodyPart.HEAD).getX()> -3.054){ return false; }return true; } - private boolean isOpen(ArmorStandPacket packet){ - if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){ + private boolean isOpen(fArmorStand packet){ + if(packet.getPose(BodyPart.HEAD).getX()< -1.85){ return false; }return true; } private boolean isOpen(){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().startsWith("#ELEMENT#")){ - if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){ + if(packet.getPose(BodyPart.HEAD).getX()< -1.85){ return false; } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/indoor/chair.java b/src/de/Ste3et_C0st/Furniture/Objects/indoor/chair.java index 91f9276..71d43bc 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/indoor/chair.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/indoor/chair.java @@ -6,7 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -14,45 +13,19 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class chair extends Furniture implements Listener{ - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public chair(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public chair(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -60,90 +33,90 @@ public class chair extends Furniture implements Listener{ } public void spawn(Location loc){ - List aspList = new ArrayList(); - BlockFace b = lutil.yawToFace(loc.getYaw()).getOppositeFace(); - Location center = lutil.getCenter(loc).add(0, -.05, 0); + List aspList = new ArrayList(); + BlockFace b = getLutil().yawToFace(loc.getYaw()).getOppositeFace(); + Location center = getLutil().getCenter(loc).add(0, -.05, 0); Location sitz = new Location(center.getWorld(), center.getX(), center.getY(), center.getZ()); Location feet1 = new Location(center.getWorld(), center.getX(), center.getY(), center.getZ()); Location feet2 = new Location(center.getWorld(), center.getX(), center.getY(), center.getZ()); Location feet3 = new Location(center.getWorld(), center.getX(), center.getY(), center.getZ()); Location feet4 = new Location(center.getWorld(), center.getX(), center.getY(), center.getZ()); - Location lehne = lutil.getRelativ(center.add(0,-1.1,0), b, -.25, .0); + Location lehne = getLutil().getRelativ(center.add(0,-1.1,0), b, -.25, .0); feet1.add(-.25,-1.8,-.25); feet2.add(.25,-1.8,-.25); feet3.add(.25,-1.8,.25); feet4.add(-.25,-1.8,.25); sitz.add(0,-1.45,0); - sitz.setYaw(lutil.FaceToYaw(b)); - lehne.setYaw(lutil.FaceToYaw(b)); + sitz.setYaw(getLutil().FaceToYaw(b)); + lehne.setYaw(getLutil().FaceToYaw(b)); - ArmorStandPacket as = manager.createArmorStand(obj, sitz.clone()); + fArmorStand as = getManager().createArmorStand(getObjID(), sitz.clone()); as.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR)); aspList.add(as); - as = manager.createArmorStand(obj, lehne.clone()); + as = getManager().createArmorStand(getObjID(), lehne.clone()); as.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR)); as.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD); aspList.add(as); - as = manager.createArmorStand(obj, feet1.clone()); + as = getManager().createArmorStand(getObjID(), feet1.clone()); as.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(as); - as = manager.createArmorStand(obj, feet2.clone()); + as = getManager().createArmorStand(getObjID(), feet2.clone()); as.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(as); - as = manager.createArmorStand(obj, feet3.clone()); + as = getManager().createArmorStand(getObjID(), feet3.clone()); as.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(as); - as = manager.createArmorStand(obj, feet4.clone()); + as = getManager().createArmorStand(getObjID(), feet4.clone()); as.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(as); Location sit = sitz.clone().add(0,-.2,0); - as = manager.createArmorStand(obj, sit.clone()); + as = getManager().createArmorStand(getObjID(), sit.clone()); as.setName("#SITZ#"); aspList.add(as); - for(ArmorStandPacket asp : aspList){ + for(fArmorStand asp : aspList){ asp.setGravity(false); asp.setInvisible(true); asp.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - ArmorStandPacket packet = null; - for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){ + if(!e.getID().equals(getObjID())){return;} + fArmorStand packet = null; + for(fArmorStand as : getManager().getfArmorStandByObjectID(getObjID())){ if(as.getName().equalsIgnoreCase("#SITZ#")){ packet=as; break; } } if(packet!=null){ - if(packet.getPessanger()==null){ - packet.setPessanger(e.getPlayer()); + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); packet.update(); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/indoor/lantern.java b/src/de/Ste3et_C0st/Furniture/Objects/indoor/lantern.java index 14952d9..d2f7d09 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/indoor/lantern.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/indoor/lantern.java @@ -1,14 +1,13 @@ package de.Ste3et_C0st.Furniture.Objects.indoor; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -16,46 +15,18 @@ import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class lantern extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public lantern(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ - + public lantern(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ setBlock(); Bukkit.getPluginManager().registerEvents(this, plugin); return; @@ -66,15 +37,16 @@ public class lantern extends Furniture implements Listener{ Block block; private void setBlock(){ - Location center = lutil.getCenter(loc); + Location center = getLutil().getCenter(getLocation()); block = center.getWorld().getBlockAt(center); if(!block.getType().equals(Material.AIR)){return;} block.setType(Material.TORCH); + getObjID().addBlock(Arrays.asList(block)); } public void spawn(Location loc){ - List aspList = new ArrayList(); - Location center = lutil.getCenter(loc); + List aspList = new ArrayList(); + Location center = getLutil().getCenter(loc); setBlock(); Location obsidian = center; Location l = new Location(center.getWorld(), center.getX(), center.getY() -1.43, center.getZ()); @@ -84,58 +56,58 @@ public class lantern extends Furniture implements Listener{ Location right_upper = new Location(obsidian.getWorld(), obsidian.getX()-.21, obsidian.getY()+.62, obsidian.getZ()-.21); Location right_down = new Location(obsidian.getWorld(), obsidian.getX()+.21, obsidian.getY() + .62, obsidian.getZ() -.21); - ArmorStandPacket asp = manager.createArmorStand(obj, obsidian); + fArmorStand asp = getManager().createArmorStand(getObjID(), obsidian); asp.getInventory().setHelmet(new ItemStack(Material.OBSIDIAN)); aspList.add(asp); - asp = manager.createArmorStand(obj, lutil.getRelativ(l.clone(), b, 0D, 0.01D)); + asp = getManager().createArmorStand(getObjID(), getLutil().getRelativ(l.clone(), getBlockFace(), 0D, 0.01D)); asp.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE)); aspList.add(asp); - asp = manager.createArmorStand(obj, left_down); + asp = getManager().createArmorStand(getObjID(), left_down); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(asp); - asp = manager.createArmorStand(obj, left_upper); + asp = getManager().createArmorStand(getObjID(), left_upper); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(asp); - asp = manager.createArmorStand(obj, right_upper); + asp = getManager().createArmorStand(getObjID(), right_upper); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(asp); - asp = manager.createArmorStand(obj, right_down); + asp = getManager().createArmorStand(getObjID(), right_down); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); aspList.add(asp); - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ packet.setBasePlate(false); packet.setGravity(false); packet.setInvisible(true); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onWaterFlow(BlockFromToEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} Location locTo = e.getToBlock().getLocation(); - if(loc!=null && locTo.equals(loc.getBlock().getLocation())){ + if(getLocation()!=null && locTo.equals(getLocation().getBlock().getLocation())){ e.setCancelled(true); } } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()) return; if(block==null) return; - if(!e.getID().equals(obj)) return; + if(!e.getID().equals(getObjID())) return; if(!e.canBuild()){return;} e.remove(); block.setType(Material.AIR); @@ -143,11 +115,11 @@ public class lantern extends Furniture implements Listener{ @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()) return; if(block==null) return; - if(!e.getID().equals(obj)) return; + if(!e.getID().equals(getObjID())) return; if(!e.canBuild()){return;} Player p = e.getPlayer(); ItemStack is = p.getItemInHand(); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/indoor/largeTable.java b/src/de/Ste3et_C0st/Furniture/Objects/indoor/largeTable.java index 97b0107..650785b 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/indoor/largeTable.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/indoor/largeTable.java @@ -8,7 +8,6 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -17,50 +16,23 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.ColorType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class largeTable extends Furniture implements Listener{ - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public largeTable(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + public largeTable(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().startsWith("#TELLER")){ - tellerIDs.add(packet.getEntityId()); + tellerIDs.add(packet.getEntityID()); } } @@ -72,60 +44,60 @@ public class largeTable extends Furniture implements Listener{ List tellerIDs = new ArrayList(); public void spawn(Location loc){ - List armorlist = new ArrayList(); + List armorlist = new ArrayList(); - Location location = lutil.getCenter(loc.getBlock().getLocation()); - float yaw = lutil.FaceToYaw(this.b); - location = lutil.getRelativ(location, this.b, 0.1, 0.28); + Location location = getLutil().getCenter(loc.getBlock().getLocation()); + float yaw = getLutil().FaceToYaw(getBlockFace()); + location = getLutil().getRelativ(location, getBlockFace(), 0.1, 0.28); location.add(0,.2,0); Double winkel = 1.57; ItemStack iTemStack_1 = new ItemStack(Material.STAINED_GLASS_PANE); for(int x=1; x<=3;x++){ - Location l = lutil.getRelativ(location.clone(), this.b, 0.0, x*-.63); + Location l = getLutil().getRelativ(location.clone(), getBlockFace(), 0.0, x*-.63); l.add(0,-1.2,0); l.setYaw(yaw); - ArmorStandPacket as = manager.createArmorStand(obj, l.clone()); + fArmorStand as = getManager().createArmorStand(getObjID(), l.clone()); as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD); as.getInventory().setHelmet(iTemStack_1); armorlist.add(as); } for(int x=1; x<=3;x++){ - Location l = lutil.getRelativ(location.clone(), this.b, 0.63, x*-.63); + Location l = getLutil().getRelativ(location.clone(), getBlockFace(), 0.63, x*-.63); l.add(0,-1.2,0); l.setYaw(yaw); - ArmorStandPacket as = manager.createArmorStand(obj, l.clone()); + fArmorStand as = getManager().createArmorStand(getObjID(), l.clone()); as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD); as.getInventory().setHelmet(iTemStack_1); armorlist.add(as); } for(int x=1; x<=3;x++){ - Location l = lutil.getRelativ(location.clone(), this.b, 1.26, x*-.63); + Location l = getLutil().getRelativ(location.clone(), getBlockFace(), 1.26, x*-.63); l.add(0,-1.2,0); l.setYaw(yaw); - ArmorStandPacket as = manager.createArmorStand(obj, l.clone()); + fArmorStand as = getManager().createArmorStand(getObjID(), l.clone()); as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD); as.getInventory().setHelmet(iTemStack_1); armorlist.add(as); } - Location middle = lutil.getCenter(armorlist.get(0).getLocation()); - Location mitteTisch = lutil.getCenter(armorlist.get(4).getLocation().getBlock().getLocation()); + Location middle = getLutil().getCenter(armorlist.get(0).getLocation()); + Location mitteTisch = getLutil().getCenter(armorlist.get(4).getLocation().getBlock().getLocation()); middle.add(0, -.9, 0); - Location feet1 = lutil.getRelativ(middle, this.b, -.2, .1); - Location feet2 = lutil.getRelativ(middle, this.b, -.2, -1.3); - Location feet3 = lutil.getRelativ(middle, this.b, 1.1, .1); - Location feet4 = lutil.getRelativ(middle, this.b, 1.1, -1.3); + Location feet1 = getLutil().getRelativ(middle, getBlockFace(), -.2, .1); + Location feet2 = getLutil().getRelativ(middle, getBlockFace(), -.2, -1.3); + Location feet3 = getLutil().getRelativ(middle, getBlockFace(), 1.1, .1); + Location feet4 = getLutil().getRelativ(middle, getBlockFace(), 1.1, -1.3); double hight = .67; - Location t1 = lutil.getRelativ(mitteTisch, this.b, -.95, .4).add(0,hight,0); - Location t2 = lutil.getRelativ(mitteTisch, this.b, -.4, -.92).add(0,hight,0); - Location t3 = lutil.getRelativ(mitteTisch, this.b, .92, -.36).add(0,hight,0); - Location t4 = lutil.getRelativ(mitteTisch, this.b, .4, .92).add(0,hight,0); + Location t1 = getLutil().getRelativ(mitteTisch, getBlockFace(), -.95, .4).add(0,hight,0); + Location t2 = getLutil().getRelativ(mitteTisch, getBlockFace(), -.4, -.92).add(0,hight,0); + Location t3 = getLutil().getRelativ(mitteTisch, getBlockFace(), .92, -.36).add(0,hight,0); + Location t4 = getLutil().getRelativ(mitteTisch, getBlockFace(), .4, .92).add(0,hight,0); float yaw1 = yaw; float yaw2 = yaw1-90; @@ -142,60 +114,60 @@ public class largeTable extends Furniture implements Listener{ feet3.setYaw(yaw); feet4.setYaw(yaw); - ArmorStandPacket as = manager.createArmorStand(obj, feet1); + fArmorStand as = getManager().createArmorStand(getObjID(), feet1); as.setPose(new EulerAngle(-1.75, 0, 0), BodyPart.RIGHT_ARM); as.getInventory().setItemInHand(new ItemStack(Material.BONE)); armorlist.add(as); - as = manager.createArmorStand(obj, feet2); + as = getManager().createArmorStand(getObjID(), feet2); as.setPose(new EulerAngle(-1.75, 0, 0), BodyPart.RIGHT_ARM); as.getInventory().setItemInHand(new ItemStack(Material.BONE)); armorlist.add(as); - as = manager.createArmorStand(obj, feet3); + as = getManager().createArmorStand(getObjID(), feet3); as.setPose(new EulerAngle(-1.75, 0, 0), BodyPart.RIGHT_ARM); as.getInventory().setItemInHand(new ItemStack(Material.BONE)); armorlist.add(as); - as = manager.createArmorStand(obj, feet4); + as = getManager().createArmorStand(getObjID(), feet4); as.setPose(new EulerAngle(-1.75, 0, 0), BodyPart.RIGHT_ARM); as.getInventory().setItemInHand(new ItemStack(Material.BONE)); armorlist.add(as); - as = manager.createArmorStand(obj, t1); + as = getManager().createArmorStand(getObjID(), t1); as.setName("#TELLER1#"); as.setPose(new EulerAngle(0, 0, 0), BodyPart.RIGHT_ARM); armorlist.add(as); - tellerIDs.add(as.getEntityId()); - as = manager.createArmorStand(obj, t2); + tellerIDs.add(as.getEntityID()); + as = getManager().createArmorStand(getObjID(), t2); as.setName("#TELLER2#"); as.setPose(new EulerAngle(0, 0, 0), BodyPart.RIGHT_ARM); armorlist.add(as); - tellerIDs.add(as.getEntityId()); - as = manager.createArmorStand(obj, t3); + tellerIDs.add(as.getEntityID()); + as = getManager().createArmorStand(getObjID(), t3); as.setName("#TELLER3#"); as.setPose(new EulerAngle(0, 0, 0), BodyPart.RIGHT_ARM); armorlist.add(as); - tellerIDs.add(as.getEntityId()); - as = manager.createArmorStand(obj, t4); + tellerIDs.add(as.getEntityID()); + as = getManager().createArmorStand(getObjID(), t4); as.setName("#TELLER4#"); as.setPose(new EulerAngle(0, 0, 0), BodyPart.RIGHT_ARM); armorlist.add(as); - tellerIDs.add(as.getEntityId()); + tellerIDs.add(as.getEntityID()); - for(ArmorStandPacket packet : armorlist){ + for(fArmorStand packet : armorlist){ packet.setInvisible(true); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } public void setTeller(HashMap itemList){ int i = 0; for(Integer id : tellerIDs){ - ArmorStandPacket as = manager.getArmorStandPacketByID(id); + fArmorStand as = getManager().getfArmorStandByID(id); as.getInventory().setItemInHand(itemList.get(i)); i++; } @@ -203,35 +175,35 @@ public class largeTable extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} for(Integer id : tellerIDs){ - ArmorStandPacket asp = manager.getArmorStandPacketByID(id); + fArmorStand asp = getManager().getfArmorStandByID(id); if(asp!=null&&asp.getInventory().getItemInHand()!=null){ if(asp.getName().startsWith("#TELLER")){ - ArmorStandPacket packet = asp; + fArmorStand packet = asp; e.getLocation().getWorld().dropItem(e.getLocation(), packet.getInventory().getItemInHand()); } } } e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); Player p = e.getPlayer(); if(p.getItemInHand().getType().equals(Material.INK_SACK)){ - lib.getColorManager().color(p, e.canBuild(), Material.STAINED_GLASS_PANE, obj, ColorType.BLOCK, 3); + getLib().getColorManager().color(p, e.canBuild(), Material.STAINED_GLASS_PANE, getObjID(), ColorType.BLOCK, 3); return; }else{ setTeller(p, p.getInventory().getItemInHand()); @@ -239,14 +211,14 @@ public class largeTable extends Furniture implements Listener{ } public void setTeller(Player player, ItemStack is){ - BlockFace b = lutil.yawToFace(player.getLocation().getYaw()); - ArmorStandPacket as = null; + BlockFace b = getLutil().yawToFace(player.getLocation().getYaw()); + fArmorStand as = null; if(tellerIDs == null || tellerIDs.isEmpty()){return;} for(Integer id : this.tellerIDs){ if(id!=null){ - ArmorStandPacket armorStand = manager.getArmorStandPacketByID(id); + fArmorStand armorStand = getManager().getfArmorStandByID(id); if(armorStand!=null){ - BlockFace b2 = lutil.yawToFace(armorStand.getLocation().getYaw()); + BlockFace b2 = getLutil().yawToFace(armorStand.getLocation().getYaw()); if(b2.equals(b)){ as = armorStand; break; @@ -257,7 +229,7 @@ public class largeTable extends Furniture implements Listener{ if(as!=null&&as.getInventory().getItemInHand()!= null && as.getInventory().getItemInHand().equals(is)){return;} if(as.getInventory().getItemInHand()!=null&&!as.getInventory().getItemInHand().getType().equals(Material.AIR)){ - ArmorStandPacket asp = as; + fArmorStand asp = as; ItemStack item = asp.getInventory().getItemInHand(); item.setAmount(1); asp.getLocation().getWorld().dropItem(asp.getLocation(), item); @@ -267,9 +239,9 @@ public class largeTable extends Furniture implements Listener{ IS.setAmount(1); as.getInventory().setItemInHand(IS); - manager.updateFurniture(obj); + update(); - if(player.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return; + if(player.getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; Integer i = player.getInventory().getHeldItemSlot(); ItemStack itemstack = is.clone(); itemstack.setAmount(itemstack.getAmount()-1); @@ -281,7 +253,7 @@ public class largeTable extends Furniture implements Listener{ HashMap teller = new HashMap(); for(Integer id : tellerIDs){ try{ - ArmorStandPacket as = manager.getArmorStandPacketByID(id); + fArmorStand as = getManager().getfArmorStandByID(id); teller.put(teller.size(), as.getInventory().getItemInHand()); }catch(Exception e){ teller.put(teller.size(), new ItemStack(Material.AIR)); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/indoor/sofa.java b/src/de/Ste3et_C0st/Furniture/Objects/indoor/sofa.java index d8e0a3f..0a30428 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/indoor/sofa.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/indoor/sofa.java @@ -6,7 +6,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -15,48 +14,21 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.ColorType; import de.Ste3et_C0st.FurnitureLib.main.Type.EventType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class sofa extends Furniture implements Listener { - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public sofa(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + + public sofa(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -68,11 +40,11 @@ public class sofa extends Furniture implements Listener { Double place; public void spawn(Location loc){ - List aspList = new ArrayList(); - List sitz = new ArrayList(); + List aspList = new ArrayList(); + List sitz = new ArrayList(); Integer lengt = 3; is = new ItemStack(Material.CARPET); - BlockFace b = lutil.yawToFace(loc.getYaw()).getOppositeFace(); + BlockFace b = getLutil().yawToFace(loc.getYaw()).getOppositeFace(); Integer x = (int) loc.getX(); Integer y = (int) loc.getY(); @@ -81,49 +53,53 @@ public class sofa extends Furniture implements Listener { loc.setY(y); loc.setZ(z); - if(b.equals(BlockFace.WEST)){loc = lutil.getRelativ(loc, b, .0, -1.0);} - if(b.equals(BlockFace.SOUTH)){loc = lutil.getRelativ(loc, b, -1.0, -1.0);} - if(b.equals(BlockFace.EAST)){loc = lutil.getRelativ(loc, b, -1.0, .0);} + if(b.equals(BlockFace.WEST)){loc = getLutil().getRelativ(loc, b, .0, -1.0);} + if(b.equals(BlockFace.SOUTH)){loc = getLutil().getRelativ(loc, b, -1.0, -1.0);} + if(b.equals(BlockFace.EAST)){loc = getLutil().getRelativ(loc, b, -1.0, .0);} Location looking = new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY() -1.4 , loc.getBlockZ()); - Location feet1 = lutil.getRelativ(looking, b, place, .2D); - Location feet2 = lutil.getRelativ(looking, b, place, lengt.doubleValue()-.2D); - Location feet3 = lutil.getRelativ(looking, b, place + .5, .2D); - Location feet4 = lutil.getRelativ(looking, b, place + .5, lengt.doubleValue()-.2D); + Location feet1 = getLutil().getRelativ(looking, b, place, .2D); + Location feet2 = getLutil().getRelativ(looking, b, place, lengt.doubleValue()-.2D); + Location feet3 = getLutil().getRelativ(looking, b, place + .5, .2D); + Location feet4 = getLutil().getRelativ(looking, b, place + .5, lengt.doubleValue()-.2D); - ArmorStandPacket asp = manager.createArmorStand(obj, feet1); + fArmorStand asp = getManager().createArmorStand(getObjID(), feet1); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); + asp.setMarker(false); aspList.add(asp); - asp = manager.createArmorStand(obj, feet2); + asp = getManager().createArmorStand(getObjID(), feet2); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); + asp.setMarker(false); aspList.add(asp); - asp = manager.createArmorStand(obj, feet3); + asp = getManager().createArmorStand(getObjID(), feet3); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); + asp.setMarker(false); aspList.add(asp); - asp = manager.createArmorStand(obj, feet4); + asp = getManager().createArmorStand(getObjID(), feet4); asp.getInventory().setHelmet(new ItemStack(Material.LEVER)); + asp.setMarker(false); aspList.add(asp); Location carpetHight = new Location(looking.getWorld(), loc.getBlockX(), loc.getBlockY() -1 , loc.getBlockZ()); - carpetHight.setYaw(lutil.FaceToYaw(b)); - carpetHight = lutil.getRelativ(carpetHight, b, .25,.3); + carpetHight.setYaw(getLutil().FaceToYaw(b)); + carpetHight = getLutil().getRelativ(carpetHight, b, .25,.3); Double d = .02; - float facing = lutil.FaceToYaw(b); + float facing = getLutil().FaceToYaw(b); Integer j = 0; for(Double i = .0; i<=lengt; i+=0.65){ - Location carpet = lutil.getRelativ(carpetHight, b, place,(double) d); + Location carpet = getLutil().getRelativ(carpetHight, b, place,(double) d); carpet.setYaw(facing); String s = ""; if(j==0||j==1){s="#SITZPOS:1#";} if(j==2){s="#SITZPOS:2#";} if(j==3||j==4){s="#SITZPOS:3#";} - asp = manager.createArmorStand(obj, carpet); + asp = getManager().createArmorStand(getObjID(), carpet); asp.getInventory().setHelmet(is); asp.setName(s); aspList.add(asp); sitz.add(asp); - Location location = lutil.getRelativ(carpetHight, b, place-.25,(double) d); + Location location = getLutil().getRelativ(carpetHight, b, place-.25,(double) d); location.setYaw(facing); - asp = manager.createArmorStand(obj, location); + asp = getManager().createArmorStand(getObjID(), location); asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD); asp.getInventory().setHelmet(is); asp.setName(s); @@ -135,55 +111,57 @@ public class sofa extends Furniture implements Listener { Float yaw1= facing; Float yaw2= facing; - Location last = lutil.getRelativ(sitz.get(sitz.size()-1).getLocation(), b, 0D, 0.26D); + Location last = getLutil().getRelativ(sitz.get(sitz.size()-1).getLocation(), b, 0D, 0.26D); last.setYaw(yaw1+90); - Location first = lutil.getRelativ(new Location(loc.getWorld(), loc.getX(), last.getY(), loc.getZ()), b, place+.25, 0.07D); + Location first = getLutil().getRelativ(new Location(loc.getWorld(), loc.getX(), last.getY(), loc.getZ()), b, place+.25, 0.07D); first.setYaw(yaw2-90); - asp = manager.createArmorStand(obj, first.add(0,-.05,0)); + asp = getManager().createArmorStand(getObjID(), first.add(0,-.05,0)); asp.getInventory().setHelmet(is); asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD); + asp.setMarker(false); asp.setName("#SITZPOS:1#"); aspList.add(asp); - asp = manager.createArmorStand(obj, last.add(0,-.05,0)); + asp = getManager().createArmorStand(getObjID(), last.add(0,-.05,0)); asp.getInventory().setHelmet(is); asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD); + asp.setMarker(false); asp.setName("#SITZPOS:3#"); aspList.add(asp); - Location start = lutil.getRelativ(looking, b, .45, .55); + Location start = getLutil().getRelativ(looking, b, .45, .55); for(int i = 0; i<=2;i++){ - Location location = lutil.getRelativ(start, b, place, i*.95D); - location.setYaw(lutil.FaceToYaw(b)); + Location location = getLutil().getRelativ(start, b, place, i*.95D); + location.setYaw(getLutil().FaceToYaw(b)); location.add(0,.2,0); - asp = manager.createArmorStand(obj, location); + asp = getManager().createArmorStand(getObjID(), location); asp.setName("#SITZ" + i + "#"); aspList.add(asp); } - for(ArmorStandPacket asps : aspList){ + for(fArmorStand asps : aspList){ asps.setInvisible(true); asps.setGravity(false); asps.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} e.setCancelled(true); final Player p = e.getPlayer(); if(p.getItemInHand().getType().equals(Material.INK_SACK)){ - lib.getColorManager().color(p, e.canBuild(), Material.CARPET, obj, ColorType.BLOCK, 12); + getLib().getColorManager().color(p, e.canBuild(), Material.CARPET, getObjID(), ColorType.BLOCK, 12); }else{ - ArmorStandPacket packet = e.getArmorStandPacket(); + fArmorStand packet = e.getfArmorStand(); switch (packet.getName()) { case "#SITZPOS:1#": sit("#SITZ0#", p);break; case "#SITZPOS:2#": sit("#SITZ1#", p);break; @@ -198,9 +176,9 @@ public class sofa extends Furniture implements Listener { } private void sit(String s, Player p){ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getName().equalsIgnoreCase(s) && packet.getPessanger() == null){ - packet.setPessanger(p); + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getName().equalsIgnoreCase(s) && packet.getPassanger() == null){ + packet.setPassanger(p); packet.update(); return; } @@ -209,18 +187,19 @@ public class sofa extends Furniture implements Listener { @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} + if(getObjID()==null){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){return;} + if(e.getID()==null){return;} + if(!e.getID().equals(getObjID())){return;} + if(!getLib().canBuild(e.getPlayer(), getObjID(), EventType.BREAK)){return;} e.setCancelled(true); - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ - if(packet.getPessanger()!=null){ - packet.unleash(); + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ + if(packet.getPassanger()!=null){ + packet.eject(); packet.update(); } } e.remove(); - obj=null; + delete(); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/indoor/table.java b/src/de/Ste3et_C0st/Furniture/Objects/indoor/table.java index 334038e..ab08385 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/indoor/table.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/indoor/table.java @@ -7,8 +7,6 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -16,124 +14,97 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class table extends Furniture implements Listener { - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public table(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public table(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } spawn(id.getStartLocation()); } public void spawn(Location loc){ - List packetL = new ArrayList(); - Location middle1 = lutil.getCenter(loc); - Location middle2 = lutil.getCenter(loc); + List packetL = new ArrayList(); + Location middle1 = getLutil().getCenter(loc); + Location middle2 = getLutil().getCenter(loc); Location l = loc; l.setYaw(0); - ArmorStandPacket asp = manager.createArmorStand(obj, middle1.add(0, -2.1, 0)); + fArmorStand asp = getManager().createArmorStand(getObjID(), middle1.add(0, -2.1, 0)); asp.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE)); packetL.add(asp); - asp = manager.createArmorStand(obj, middle2.add(0,-1.05,0)); + asp = getManager().createArmorStand(getObjID(), middle2.add(0,-1.05,0)); asp.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR)); packetL.add(asp); Location locatio = l.clone().add(0.9,0.15,0.3); - asp = manager.createArmorStand(obj, locatio); + asp = getManager().createArmorStand(getObjID(), locatio); asp.setName("#ITEM#"); asp.setPose(new EulerAngle(0.0,0.0,0.0), BodyPart.RIGHT_ARM); packetL.add(asp); locatio = locatio.clone().add(0,-0.65,0.68); - asp = manager.createArmorStand(obj, locatio); + asp = getManager().createArmorStand(getObjID(), locatio); asp.getInventory().setItemInHand(new ItemStack(Material.STICK)); asp.setPose(new EulerAngle(1.38,.0,.0), BodyPart.RIGHT_ARM); packetL.add(asp); - for(ArmorStandPacket packet : packetL){ + for(fArmorStand packet : packetL){ packet.setInvisible(true); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#ITEM#")){ if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ ItemStack is = packet.getInventory().getItemInHand(); - w.dropItem(loc, is); + getWorld().dropItem(getLocation(), is); } } } e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} Player p = e.getPlayer(); if(!e.canBuild()){return;} e.setCancelled(true); if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;} - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#ITEM#")){ ItemStack Itemstack = p.getItemInHand().clone(); Itemstack.setAmount(1); if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){ ItemStack is = packet.getInventory().getItemInHand(); is.setAmount(1); - w.dropItem(loc, is); + getWorld().dropItem(getLocation(), is); } packet.getInventory().setItemInHand(Itemstack); - if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) break; + if(p.getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) break; Integer i = p.getInventory().getHeldItemSlot(); ItemStack is = p.getItemInHand(); is.setAmount(is.getAmount()-1); @@ -142,6 +113,6 @@ public class table extends Furniture implements Listener { break; } } - manager.updateFurniture(obj); + update(); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/CactusPlant.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/CactusPlant.java new file mode 100644 index 0000000..eaa96a8 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/CactusPlant.java @@ -0,0 +1,111 @@ +package de.Ste3et_C0st.Furniture.Objects.outdoor; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.util.EulerAngle; + +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class CactusPlant extends Furniture implements Listener { + + public CactusPlant(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + delete(); + e.remove(); + } + + @Override + public void onFurnitureClick(FurnitureClickEvent e) {} + + + public void spawn(Location location) { + List aspList = new ArrayList(); + Location middle = getLutil().getCenter(location); + middle.add(0, -1.9, 0); + middle.setYaw(getLutil().FaceToYaw(getBlockFace())); + + fArmorStand packet = getManager().createArmorStand(getObjID(), middle); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + aspList.add(packet); + + packet = getManager().createArmorStand(getObjID(), middle.clone().add(0, .63, 0)); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + aspList.add(packet); + + packet = getManager().createArmorStand(getObjID(), middle.clone().add(0, 1.18, 0)); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + packet.setPose(getLutil().degresstoRad(new EulerAngle(20, 0, 0)), BodyPart.HEAD); + aspList.add(packet); + + Location l1 = getLutil().getRelativ(middle.clone().add(0, 1.665, 0), getBlockFace(), .16d, 0d); + l1.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), l1); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + packet.setPose(getLutil().degresstoRad(new EulerAngle(5, 0, 0)), BodyPart.HEAD); + aspList.add(packet); + + l1 = getLutil().getRelativ(middle.clone().add(0, 1.43, 0), getBlockFace(), .1d, 0d); + l1.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), l1); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + packet.setSmall(true); + packet.setPose(getLutil().degresstoRad(new EulerAngle(60, 0, 0)), BodyPart.HEAD); + aspList.add(packet); + + l1 = getLutil().getRelativ(middle.clone().add(0, 2.3, 0), getBlockFace(), -.07d, 0d); + l1.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), l1); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + packet.setSmall(true); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-45, 0, 0)), BodyPart.HEAD); + aspList.add(packet); + + l1 = getLutil().getRelativ(middle.clone().add(0, 2.0, 0), getBlockFace(), .07d, .06d); + l1.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), l1); + packet.getInventory().setHelmet(new ItemStack(Material.CACTUS)); + packet.setSmall(true); + packet.setPose(getLutil().degresstoRad(new EulerAngle(0, 0, 45)), BodyPart.HEAD); + aspList.add(packet); + + + + for(fArmorStand as : aspList){ + as.setInvisible(true); + as.setGravity(false); + as.setBasePlate(false); + } + + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + +} diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/barrels.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/barrels.java index af65282..b49fffd 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/barrels.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/barrels.java @@ -1,64 +1,36 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor; +import java.util.Arrays; + import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -import de.Ste3et_C0st.Furniture.Main.main; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; -import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; -import de.Ste3et_C0st.FurnitureLib.main.Type.EventType; -import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class barrels extends Furniture implements Listener { - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; Integer id; Block block; - Plugin plugin; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public barrels(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; + public barrels(Plugin plugin, ObjectID id){ + super(plugin, id); if(id.isFinish()){ - this.block = loc.getBlock(); + this.block = getLocation().getBlock(); this.block.setType(Material.CAULDRON); + getObjID().addBlock(Arrays.asList(block)); Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -68,34 +40,34 @@ public class barrels extends Furniture implements Listener { public void spawn(Location loc){ this.block = loc.getBlock(); this.block.setType(Material.CAULDRON); - - ArmorStandPacket packet = manager.createArmorStand(obj, lutil.getCenter(loc).add(0,-1.5,0)); + getObjID().addBlock(Arrays.asList(block)); + fArmorStand packet = getManager().createArmorStand(getObjID(), getLutil().getCenter(loc).add(0,-1.5,0)); packet.setInvisible(true); - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} + if(getObjID()==null){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); Player p = e.getPlayer(); if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;} - ArmorStandPacket packet = manager.getArmorStandPacketByObjectID(obj).get(0); + fArmorStand packet = getManager().getfArmorStandByObjectID(getObjID()).get(0); if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){ ItemStack is = packet.getInventory().getHelmet(); is.setAmount(1); - w.dropItem(loc, is); + getWorld().dropItem(getLocation(), is); } packet.getInventory().setHelmet(p.getItemInHand()); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); - if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return; + if(p.getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; Integer i = e.getPlayer().getInventory().getHeldItemSlot(); ItemStack item = e.getPlayer().getItemInHand(); item.setAmount(item.getAmount()-1); @@ -104,31 +76,45 @@ public class barrels extends Furniture implements Listener { } @EventHandler - private void onInteract(PlayerInteractEvent e){ - if(obj==null){return;} - if(block==null || obj==null){return;} - if(e.getClickedBlock()==null){return;} - if(!e.getClickedBlock().getLocation().equals(block.getLocation())){return;} - if(!e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.INTERACT)){return;} - Player p = e.getPlayer(); - if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;} + private void onBlockBreak(FurnitureBlockBreakEvent e){ + if(getObjID()==null){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} e.setCancelled(true); - ItemStack Itemstack = p.getItemInHand().clone(); + fArmorStand packet = getManager().getfArmorStandByObjectID(getObjID()).get(0); + if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getHelmet(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + e.remove(); + delete(); + } + + @EventHandler + private void onBlockClick(FurnitureBlockClickEvent e){ + if(getObjID()==null){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + if(!e.getPlayer().getItemInHand().getType().isBlock()&&!e.getPlayer().getItemInHand().getType().equals(Material.AIR)){return;} + e.setCancelled(true); + ItemStack Itemstack = e.getPlayer().getItemInHand().clone(); Itemstack.setAmount(1); - ArmorStandPacket packet = manager.getArmorStandPacketByObjectID(obj).get(0); + fArmorStand packet = getManager().getfArmorStandByObjectID(getObjID()).get(0); if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){ ItemStack is = packet.getInventory().getHelmet(); is.setAmount(1); - w.dropItem(loc, is); + getWorld().dropItem(getLocation(), is); } packet.getInventory().setHelmet(Itemstack); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); - if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return; + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; Integer i = e.getPlayer().getInventory().getHeldItemSlot(); ItemStack item = e.getPlayer().getItemInHand(); item.setAmount(item.getAmount()-1); @@ -136,35 +122,20 @@ public class barrels extends Furniture implements Listener { e.getPlayer().updateInventory(); } - @EventHandler - private void onBlockBreak(BlockBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} - if(block==null){return;} - if(!e.getBlock().getLocation().equals(block.getLocation())){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){return;} - ArmorStandPacket packet = manager.getArmorStandPacketByObjectID(obj).get(0); - if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){ - ItemStack is = packet.getInventory().getHelmet(); - w.dropItem(loc, is); - } - - this.block.setType(Material.AIR); - block=null; - this.obj.remove(e.getPlayer()); - obj=null; - } - @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} + if(getObjID()==null){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); + fArmorStand packet = getManager().getfArmorStandByObjectID(getObjID()).get(0); + if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){ + ItemStack is = packet.getInventory().getHelmet(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } e.remove(); - obj=null; - block.setType(Material.AIR); - block=null; + delete(); } } \ No newline at end of file diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_1.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_1.java index 41f57d9..61cf299 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_1.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_1.java @@ -5,52 +5,23 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; -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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class campfire_1 extends Furniture implements Listener{ - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public campfire_1(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; - if(id.isFinish()){ + public campfire_1(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } @@ -59,61 +30,61 @@ public class campfire_1 extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ packet.setFire(false); - Location location = this.loc.clone(); + Location location = getLocation().clone(); location.add(0, 1.2, 0); - lib.getLightManager().removeLight(location); + getLib().getLightManager().removeLight(location); } - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); - List aspList = manager.getArmorStandPacketByObjectID(obj); + List aspList = getManager().getfArmorStandByObjectID(getObjID()); ItemStack is = e.getPlayer().getItemInHand(); if(is.getType().equals(Material.WATER_BUCKET)){ - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ packet.setFire(false); - Location location = this.loc.clone(); + Location location = getLocation().clone(); location.add(0, 1.2, 0); - lib.getLightManager().removeLight(location); + getLib().getLightManager().removeLight(location); } - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); }else if(is.getType().equals(Material.FLINT_AND_STEEL)){ - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ packet.setFire(true); - Location location = this.loc.clone(); + Location location = getLocation().clone(); location.add(0, 1.2, 0); - lib.getLightManager().addLight(location,15); + getLib().getLightManager().addLight(location,15); } - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); } } public void spawn(Location loc){ for(int i = 0;i<=3;i++){ - Location location = lutil.getCenter(loc); + Location location = getLutil().getCenter(loc); location.add(0,-1.9,0); location.setYaw(i*60); - ArmorStandPacket packet = manager.createArmorStand(obj, location); + fArmorStand packet = getManager().createArmorStand(getObjID(), location); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java index 392d815..0adf928 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java @@ -8,8 +8,6 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; @@ -19,14 +17,11 @@ 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class campfire_2 extends Furniture implements Listener{ List items = new ArrayList( @@ -60,43 +55,20 @@ public class campfire_2 extends Furniture implements Listener{ }; - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - Location middle; Location grill; Integer timer; - ArmorStandPacket armorS; + fArmorStand armorS; ItemStack is; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public campfire_2(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - middle = lutil.getCenter(loc); - middle = lutil.getRelativ(middle, b, .5D, -.5D); + public campfire_2(Plugin plugin, ObjectID id){ + super(plugin, id); + middle = getLutil().getCenter(getLocation()); + middle = getLutil().getRelativ(middle, getBlockFace(), .5D, -.5D); middle.add(0,-1.2,0); - grill = lutil.getRelativ(middle,b, .0D, .5D); - grill.setYaw(lutil.FaceToYaw(b)+90); - this.obj = id; + grill = getLutil().getRelativ(middle,getBlockFace(), .0D, .5D); + grill.setYaw(getLutil().FaceToYaw(getBlockFace())+90); if(id.isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; @@ -105,30 +77,30 @@ public class campfire_2 extends Furniture implements Listener{ } public void spawn(Location loc){ - List packetList = new ArrayList(); - Location stick1 = lutil.getRelativ(middle, b, .47D, -.05D); - Location stick2 = lutil.getRelativ(middle, b, .47D, .85D); + List packetList = new ArrayList(); + Location stick1 = getLutil().getRelativ(middle, getBlockFace(), .47D, -.05D); + Location stick2 = getLutil().getRelativ(middle, getBlockFace(), .47D, .85D); - Location bone = lutil.getRelativ(middle, b, .5D, .82D); - stick2.setYaw(lutil.FaceToYaw(b)); + Location bone = getLutil().getRelativ(middle, getBlockFace(), .5D, .82D); + stick2.setYaw(getLutil().FaceToYaw(getBlockFace())); - stick1.setYaw(lutil.FaceToYaw(b)); - bone.setYaw(lutil.FaceToYaw(b)); + stick1.setYaw(getLutil().FaceToYaw(getBlockFace())); + bone.setYaw(getLutil().FaceToYaw(getBlockFace())); stick1.add(0,.3,0); stick2.add(0,.3,0); bone.add(0,.17,0); Integer yaw = 90; for(int i = 0; i<=7;i++){ Location location = null; - if(lutil.axisList.contains(lutil.yawToFaceRadial(yaw))){ - location = lutil.getRelativ(middle, lutil.yawToFaceRadial(yaw), 0D, .5D); + if(getLutil().axisList.contains(getLutil().yawToFaceRadial(yaw))){ + location = getLutil().getRelativ(middle, getLutil().yawToFaceRadial(yaw), 0D, .5D); }else{ - location = lutil.getRelativ(middle, lutil.yawToFaceRadial(yaw), 0D, .35D); + location = getLutil().getRelativ(middle, getLutil().yawToFaceRadial(yaw), 0D, .35D); } location.setYaw(90+yaw); - ArmorStandPacket asp = manager.createArmorStand(obj, location); + fArmorStand asp = getManager().createArmorStand(getObjID(), location); asp.setPose(new EulerAngle(1.568, 0, 0), BodyPart.HEAD); asp.setSmall(true); asp.getInventory().setHelmet(new ItemStack(Material.STEP,1,(short)3)); @@ -138,11 +110,11 @@ public class campfire_2 extends Furniture implements Listener{ yaw = 90; for(int i = 0; i<=3;i++){ - Location location = lutil.getRelativ(middle, lutil.yawToFace(yaw), .4, -.5D); + Location location = getLutil().getRelativ(middle, getLutil().yawToFace(yaw), .4, -.5D); location.add(0,-.5,0); location.setYaw(90+yaw); - ArmorStandPacket asp = manager.createArmorStand(obj, location); + fArmorStand asp = getManager().createArmorStand(getObjID(), location); asp.setPose( new EulerAngle(2, 0, 0), BodyPart.RIGHT_ARM); asp.getInventory().setItemInHand(new ItemStack(Material.STICK)); @@ -150,50 +122,49 @@ public class campfire_2 extends Furniture implements Listener{ yaw+=90; } - ArmorStandPacket asp = manager.createArmorStand(obj, stick1); + fArmorStand asp = getManager().createArmorStand(getObjID(), stick1); asp.setPose(new EulerAngle(1.38,.0,.0), BodyPart.RIGHT_ARM); asp.getInventory().setItemInHand(new ItemStack(Material.STICK)); packetList.add(asp); - asp = manager.createArmorStand(obj, stick2); + asp = getManager().createArmorStand(getObjID(), stick2); asp.setPose(new EulerAngle(1.38,.0,.0), BodyPart.RIGHT_ARM); asp.getInventory().setItemInHand(new ItemStack(Material.STICK)); packetList.add(asp); - asp = manager.createArmorStand(obj, bone); + asp = getManager().createArmorStand(getObjID(), bone); asp.setPose(new EulerAngle(1.38,.0,1.57), BodyPart.RIGHT_ARM); asp.getInventory().setItemInHand(new ItemStack(Material.BONE)); packetList.add(asp); - asp = manager.createArmorStand(obj, middle.add(0,-1.3,0)); + asp = getManager().createArmorStand(getObjID(), middle.add(0,-1.3,0)); asp.setSmall(true); packetList.add(asp); - for(ArmorStandPacket packet : packetList){ + for(fArmorStand packet : packetList){ packet.setInvisible(true); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + getManager().send(getObjID()); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); - List aspList = manager.getArmorStandPacketByObjectID(obj); + List aspList = getManager().getfArmorStandByObjectID(getObjID()); final ItemStack itemStack = e.getPlayer().getItemInHand(); - ArmorStandPacket packet = null; - for(ArmorStandPacket pack : aspList){ - if(pack.isMini() && pack.isInvisible()){ + fArmorStand packet = null; + for(fArmorStand pack : aspList){ + if(pack.isSmall() && pack.isVisible()){ packet = pack; } } - if(itemStack.getType().equals(Material.WATER_BUCKET) && packet.isFire()){ setfire(false); }else if(itemStack.getType().equals(Material.FLINT_AND_STEEL) && !packet.isFire()){ @@ -204,7 +175,7 @@ public class campfire_2 extends Furniture implements Listener{ setGrill(); - if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return; + if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && getLib().useGamemode()) return; Integer i = e.getPlayer().getInventory().getHeldItemSlot(); ItemStack item = e.getPlayer().getItemInHand(); item.setAmount(item.getAmount()-1); @@ -215,16 +186,16 @@ public class campfire_2 extends Furniture implements Listener{ } private void setfire(boolean b){ - for(ArmorStandPacket pack : manager.getArmorStandPacketByObjectID(obj)){ - if(pack.isMini() && pack.isInvisible()){ + for(fArmorStand pack : getManager().getfArmorStandByObjectID(getObjID())){ + if(pack.isSmall() && pack.isVisible()){ if((pack.getInventory().getHelmet() == null || pack.getInventory().getHelmet().getType().equals(Material.AIR)) && (pack.getInventory().getItemInHand() == null || pack.getInventory().getItemInHand().getType().equals(Material.AIR))){ pack.setFire(b); Location loc = middle.clone(); loc.add(0, 1.3, 0); - if(b) lib.getLightManager().addLight(loc, 15); - if(!b) lib.getLightManager().removeLight(loc); - manager.updateFurniture(obj); + if(b) getLib().getLightManager().addLight(loc, 15); + if(!b) getLib().getLightManager().removeLight(loc); + getManager().updateFurniture(getObjID()); return; } @@ -234,20 +205,20 @@ public class campfire_2 extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); if(isRunning()){ Bukkit.getScheduler().cancelTask(timer); timer=null; - w.dropItem(middle.clone().add(0, .5, 0), is); + getWorld().dropItem(middle.clone().add(0, .5, 0), is); } setfire(false); e.remove(); - obj=null; + delete(); } public void removeGrill(){ @@ -255,15 +226,15 @@ public class campfire_2 extends Furniture implements Listener{ Bukkit.getScheduler().cancelTask(timer); timer=null; if(armorS!=null&&armorS.getInventory().getItemInHand()!=null&&getItem(armorS.getInventory().getItemInHand())!=null){ - w.dropItem(middle.clone().add(0, .5, 0), getCooked(is)); - armorS.destroy(); + getWorld().dropItem(middle.clone().add(0, .5, 0), getCooked(is)); + armorS.kill(); armorS.delete(); armorS=null; } } if(armorS!=null){ - if(armorS.getInventory().getItemInHand()!=null){w.dropItem(middle.clone().add(0, .5, 0), getCooked(is));} - armorS.destroy(); + if(armorS.getInventory().getItemInHand()!=null){getWorld().dropItem(middle.clone().add(0, .5, 0), getCooked(is));} + armorS.kill(); armorS.delete(); armorS=null; } @@ -293,12 +264,12 @@ public class campfire_2 extends Furniture implements Listener{ } public void setGrill(){ - this.armorS = manager.createArmorStand(obj, grill); + this.armorS = getManager().createArmorStand(getObjID(), grill); this.armorS.setInvisible(true); this.armorS.getInventory().setItemInHand(is); - manager.send(obj); + getManager().send(getObjID()); this.timer = main.getInstance().getServer().getScheduler().scheduleSyncRepeatingTask(main.getInstance(), new Runnable() { - Integer rounds = lutil.randInt(15, 30); + Integer rounds = getLutil().randInt(15, 30); Integer labs = 0; Integer position = 0; @Override diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/hammock.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/hammock.java index 224bf32..34dcc37 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/hammock.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/hammock.java @@ -1,80 +1,51 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.block.Action; -import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; import org.bukkit.util.EulerAngle; -import de.Ste3et_C0st.Furniture.Main.main; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockBreakEvent; +import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBlockClickEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; -import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; 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; -public class hammock extends Furniture{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Block block; - Plugin plugin; +public class hammock extends Furniture implements Listener{ - List blockList = new ArrayList(); - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public hammock(FurnitureLib lib, Plugin plugin, ObjectID id) { - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; + public hammock(Plugin plugin, ObjectID id) { + super(plugin, id); setBlock(); - if(id.isFinish()){ + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } - spawn(loc); - + spawn(id.getStartLocation()); } private void setBlock(){ - BlockFace Right = lutil.yawToFace(lutil.FaceToYaw(b)+90); - Location center2 = lutil.getRelativ(loc, Right, 6D, 0D); - Block b1 = this.loc.getBlock(); - Block b2 = this.loc.getBlock().getRelative(BlockFace.UP); + BlockFace Right = getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace())+90); + Location center2 = getLutil().getRelativ(getLocation(), Right, 6D, 0D); + Block b1 = getLocation().getBlock(); + Block b2 = getLocation().getBlock().getRelative(BlockFace.UP); Block b3 = center2.getBlock(); Block b4 = center2.getBlock().getRelative(BlockFace.UP); @@ -82,11 +53,8 @@ public class hammock extends Furniture{ if(!isFence(b2.getType())) b2.setType(Material.FENCE); if(!isFence(b3.getType())) b3.setType(Material.FENCE); if(!isFence(b4.getType())) b4.setType(Material.FENCE); - - blockList.add(b1); - blockList.add(b2); - blockList.add(b3); - blockList.add(b4); + + getObjID().addBlock(Arrays.asList(b1,b2,b3,b4)); } private boolean isFence(Material m){ @@ -108,39 +76,46 @@ public class hammock extends Furniture{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} - for(Block b : blockList){ - if(b!=null){ - b.setType(Material.AIR); - } - } e.remove(); - blockList.clear(); + delete(); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBlockBreakEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.remove(); + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e) { - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} - List aspList = manager.getArmorStandPacketByObjectID(obj); + if(!e.getID().equals(getObjID())){return;} + List aspList = getManager().getfArmorStandByObjectID(getObjID()); Player p = e.getPlayer(); ItemStack stack = p.getItemInHand(); + if(stack!=null){ if(isMaterial(stack.getType())){ - if(setColor(p,stack, e.canBuild(), aspList)){return;} + if(setColor(p,stack, getLib().canBuild(e.getPlayer(), getObjID(), EventType.INTERACT), aspList)){return;} } } - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ if(packet.getName().equalsIgnoreCase("#SITZ#")){ - if(packet.getPessanger()==null){ - packet.setPessanger(e.getPlayer()); + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); return; } } @@ -158,80 +133,62 @@ public class hammock extends Furniture{ } @EventHandler - private void onClick(PlayerInteractEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + public void onFurnitureClick(FurnitureBlockClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(e.getClickedBlock()==null){return;} - if(e.getAction() == null){return;} - if(e.getPlayer()==null){return;} - if(!blockList.contains(e.getClickedBlock())){return;} - if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){ - e.setCancelled(true); - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){return;} - for(Block b : blockList){ - if(b!=null){ - b.setType(Material.AIR); - } + if(!e.getID().equals(getObjID())){return;} + List aspList = getManager().getfArmorStandByObjectID(getObjID()); + Player p = e.getPlayer(); + ItemStack stack = p.getItemInHand(); + if(stack!=null){ + if(isMaterial(stack.getType())){ + if(setColor(p,stack, e.canBuild(), aspList)){return;} } - obj.remove(e.getPlayer()); - blockList.clear(); - return; - }else if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){ - e.setCancelled(true); - List aspList = manager.getArmorStandPacketByObjectID(obj); - Player p = e.getPlayer(); - ItemStack stack = p.getItemInHand(); - - if(stack!=null){ - if(isMaterial(stack.getType())){ - if(setColor(p,stack, lib.canBuild(e.getPlayer(), obj, EventType.INTERACT), aspList)){return;} - } - } - - for(ArmorStandPacket packet : aspList){ - if(packet.getName().equalsIgnoreCase("#SITZ#")){ - if(packet.getPessanger()==null){ - packet.setPessanger(e.getPlayer()); - return; - } + } + + for(fArmorStand packet : aspList){ + if(packet.getName().equalsIgnoreCase("#SITZ#")){ + if(packet.getPassanger()==null){ + packet.setPassanger(e.getPlayer()); + return; } } } } - private boolean setColor(Player p,ItemStack stack, Boolean canbuild, List aspList){ + private boolean setColor(Player p,ItemStack stack, Boolean canbuild, List aspList){ if(!canbuild){return true;} if(stack!=null){ switch (stack.getType()) { case BANNER: - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(Material.BANNER)){ packet.getInventory().setHelmet(stack); } } removeItem(p); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); return true; case LOG: - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ if(packet.getName().equalsIgnoreCase("#PILLAR#")){ packet.getInventory().setHelmet(stack); } } setPillar(stack.getDurability()); removeItem(p); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); return true; case LOG_2: - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ if(packet.getName().equalsIgnoreCase("#PILLAR#")){ packet.getInventory().setHelmet(stack); } } setPillar(4 + stack.getDurability()); removeItem(p); - manager.updateFurniture(obj); + getManager().updateFurniture(getObjID()); return true; default: break; } @@ -250,100 +207,100 @@ public class hammock extends Furniture{ case 5: m = Material.DARK_OAK_FENCE;break; } if(m!=null){ - for(Block b : blockList){ - b.setType(m); + for(Location b : getObjID().getBlockList()){ + getWorld().getBlockAt(b).setType(m); } } } public void spawn(Location location) { - Location center1 = lutil.getCenter(location); + Location center1 = getLutil().getCenter(location); center1 = center1.add(0, -1.9, 0); - BlockFace Right = lutil.yawToFace(lutil.FaceToYaw(b)+90); - Location center2 = lutil.getRelativ(center1, Right, 6D, 0D); - List aspList = new ArrayList(); + BlockFace Right = getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace())+90); + Location center2 = getLutil().getRelativ(center1, Right, 6D, 0D); + List aspList = new ArrayList(); - ArmorStandPacket packet = manager.createArmorStand(obj, center1); + fArmorStand packet = getManager().createArmorStand(getObjID(), center1); packet.getInventory().setHelmet(new ItemStack(Material.LOG)); packet.setName("#PILLAR#"); aspList.add(packet); - packet = manager.createArmorStand(obj, center2); + packet = getManager().createArmorStand(getObjID(), center2); packet.getInventory().setHelmet(new ItemStack(Material.LOG)); packet.setName("#PILLAR#"); aspList.add(packet); - Location middle = lutil.getRelativ(center1, Right, 2.85D, 0D); + Location middle = getLutil().getRelativ(center1, Right, 2.85D, 0D); middle = middle.add(0, .75, 0); - packet = manager.createArmorStand(obj, middle); + packet = getManager().createArmorStand(getObjID(), middle); packet.getInventory().setHelmet(new ItemStack(Material.BANNER, 1, (short) 0)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-69f,0f,0f)), BodyPart.HEAD); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-69f,0f,0f)), BodyPart.HEAD); aspList.add(packet); - Location middle2 = lutil.getRelativ(middle, Right, 1.5D, 0D); + Location middle2 = getLutil().getRelativ(middle, Right, 1.5D, 0D); middle2 = middle2.add(0, .23, 0); - packet = manager.createArmorStand(obj, middle2); + packet = getManager().createArmorStand(getObjID(), middle2); packet.getInventory().setHelmet(new ItemStack(Material.BANNER, 1, (short) 0)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-90f,0f,0f)), BodyPart.HEAD); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-90f,0f,0f)), BodyPart.HEAD); aspList.add(packet); - Location sitz = lutil.getRelativ(center1, Right, 3D, 0D).add(0, .6, 0); - sitz.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - packet = manager.createArmorStand(obj, sitz); + Location sitz = getLutil().getRelativ(center1, Right, 3D, 0D).add(0, .6, 0); + sitz.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + packet = getManager().createArmorStand(getObjID(), sitz); packet.setName("#SITZ#"); aspList.add(packet); - middle = lutil.getRelativ(middle, Right, .3D, 0D); + middle = getLutil().getRelativ(middle, Right, .3D, 0D); middle.setYaw(middle.getYaw()+180); - packet = manager.createArmorStand(obj, middle); + packet = getManager().createArmorStand(getObjID(), middle); packet.getInventory().setHelmet(new ItemStack(Material.BANNER, 1, (short) 0)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-69f,0f,0f)), BodyPart.HEAD); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-69f,0f,0f)), BodyPart.HEAD); aspList.add(packet); - Location stick = lutil.getRelativ(center1, Right, 4.6d, .5d); + Location stick = getLutil().getRelativ(center1, Right, 4.6d, .5d); stick = stick.add(0, 1.7, 0); - stick.setYaw(lutil.FaceToYaw(b)); - packet = manager.createArmorStand(obj, stick); + stick.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), stick); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-40f,110f,0f)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-40f,110f,0f)), BodyPart.RIGHT_ARM); aspList.add(packet); - stick = lutil.getRelativ(center1, Right, 4.6d, -.335d); + stick = getLutil().getRelativ(center1, Right, 4.6d, -.335d); stick = stick.add(0, 1.7, 0); - stick.setYaw(lutil.FaceToYaw(b)); - packet = manager.createArmorStand(obj, stick); + stick.setYaw(getLutil().FaceToYaw(getBlockFace())); + packet = getManager().createArmorStand(getObjID(), stick); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-40f,73f,0f)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-40f,73f,0f)), BodyPart.RIGHT_ARM); packet.setArms(true); aspList.add(packet); - stick = lutil.getRelativ(center1, Right.getOppositeFace(), -1.37d, -.335d); + stick = getLutil().getRelativ(center1, Right.getOppositeFace(), -1.37d, -.335d); stick = stick.add(0, 1.7, 0); - stick.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - packet = manager.createArmorStand(obj, stick); + stick.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + packet = getManager().createArmorStand(getObjID(), stick); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-40f,73f,0f)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-40f,73f,0f)), BodyPart.RIGHT_ARM); packet.setArms(true); aspList.add(packet); - stick = lutil.getRelativ(center1, Right.getOppositeFace(), -1.37d, .5d); + stick = getLutil().getRelativ(center1, Right.getOppositeFace(), -1.37d, .5d); stick = stick.add(0, 1.7, 0); - stick.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - packet = manager.createArmorStand(obj, stick); + stick.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + packet = getManager().createArmorStand(getObjID(), stick); packet.getInventory().setItemInHand(new ItemStack(Material.STICK)); - packet.setPose(lutil.degresstoRad(new EulerAngle(-40f,110f,0f)), BodyPart.RIGHT_ARM); + packet.setPose(getLutil().degresstoRad(new EulerAngle(-40f,110f,0f)), BodyPart.RIGHT_ARM); packet.setArms(true); aspList.add(packet); - for(ArmorStandPacket pack : aspList){ + for(fArmorStand pack : aspList){ pack.setInvisible(true); pack.setGravity(false); pack.setBasePlate(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_1.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_1.java index 9516751..be1f70a 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_1.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_1.java @@ -1,12 +1,12 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; @@ -17,51 +17,25 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.ColorType; import de.Ste3et_C0st.FurnitureLib.main.Type.EventType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class tent_1 extends Furniture implements Listener{ - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; Block block; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public tent_1(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - if(b.equals(BlockFace.WEST)){loc=lutil.getRelativ(loc, b, 1D, 0D);} - if(b.equals(BlockFace.NORTH)){loc=lutil.getRelativ(loc, b, 1D, 1D);} - if(b.equals(BlockFace.EAST)){loc=lutil.getRelativ(loc, b, 0D, 1D);} - this.obj = id; + public tent_1(Plugin plugin, ObjectID id){ + super(plugin, id); + Location loc = id.getStartLocation(); + if(getBlockFace().equals(BlockFace.WEST)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 0D);} + if(getBlockFace().equals(BlockFace.NORTH)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 1D);} + if(getBlockFace().equals(BlockFace.EAST)){loc=getLutil().getRelativ(loc, getBlockFace(), 0D, 1D);} if(id.isFinish()){ setblock(); Bukkit.getPluginManager().registerEvents(this, plugin); @@ -71,78 +45,79 @@ public class tent_1 extends Furniture implements Listener{ } public void setblock(){ - Location blockLocation = new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); - if(b.equals(BlockFace.SOUTH)){ - this.block = blockLocation.getWorld().getBlockAt(lutil.getRelativ(blockLocation, b, 2D, -2D)); + Location blockLocation = new Location(getWorld(), getLocation().getBlockX(), getLocation().getBlockY(), getLocation().getBlockZ()); + if(getBlockFace().equals(BlockFace.SOUTH)){ + this.block = blockLocation.getWorld().getBlockAt(getLutil().getRelativ(blockLocation, getBlockFace(), 2D, -2D)); this.block.setType(Material.WORKBENCH); - }else if(b.equals(BlockFace.WEST)){ - this.block = blockLocation.getWorld().getBlockAt(lutil.getRelativ(blockLocation, b, 1D, -2D)); + }else if(getBlockFace().equals(BlockFace.WEST)){ + this.block = blockLocation.getWorld().getBlockAt(getLutil().getRelativ(blockLocation, getBlockFace(), 2D, -2D)); this.block.setType(Material.WORKBENCH); - }else if(b.equals(BlockFace.NORTH)){ - this.block = blockLocation.getWorld().getBlockAt(lutil.getRelativ(blockLocation, b, 1D, -3D)); + }else if(getBlockFace().equals(BlockFace.NORTH)){ + this.block = blockLocation.getWorld().getBlockAt(getLutil().getRelativ(blockLocation, getBlockFace(), 2D, -2D)); this.block.setType(Material.WORKBENCH); - }else if(b.equals(BlockFace.EAST)){ - this.block = blockLocation.getWorld().getBlockAt(lutil.getRelativ(blockLocation, b, 2D, -3D)); + }else if(getBlockFace().equals(BlockFace.EAST)){ + this.block = blockLocation.getWorld().getBlockAt(getLutil().getRelativ(blockLocation, getBlockFace(), 2D, -2D)); this.block.setType(Material.WORKBENCH); } + getObjID().addBlock(Arrays.asList(block)); } private Location getNew(Location loc, BlockFace b){ - if(b.equals(BlockFace.WEST)){loc=lutil.getRelativ(loc, b, -1D, 0D);} - if(b.equals(BlockFace.NORTH)){loc=lutil.getRelativ(loc, b, -1D, -1D);} - if(b.equals(BlockFace.EAST)){loc=lutil.getRelativ(loc, b, 0D, -1D);} + if(b.equals(BlockFace.WEST)){loc=getLutil().getRelativ(loc, b, -1D, 0D);} + if(b.equals(BlockFace.NORTH)){loc=getLutil().getRelativ(loc, b, -1D, -1D);} + if(b.equals(BlockFace.EAST)){loc=getLutil().getRelativ(loc, b, 0D, -1D);} return loc; } public void spawn(Location loc){ - List aspList = new ArrayList(); + List aspList = new ArrayList(); Location loc_1 = new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); Location loc_2 = new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); Location loc_3 = new Location(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()); - Location karabine1 = getNew(lutil.getRelativ(loc, b, 0D, 0D), b); - Location karabine2 = getNew(lutil.getRelativ(loc, b, 3D, 0D), b); - Location karabine3 = getNew(lutil.getRelativ(loc, b, 3D, -4D), b); - Location karabine4 = getNew(lutil.getRelativ(loc, b, 0D, -4D), b); + Location karabine1 = getNew(getLutil().getRelativ(loc, getBlockFace(), 0D, 0D), getBlockFace()); + Location karabine2 = getNew(getLutil().getRelativ(loc, getBlockFace(), 3D, 0D), getBlockFace()); + Location karabine3 = getNew(getLutil().getRelativ(loc, getBlockFace(), 3D, -4D), getBlockFace()); + Location karabine4 = getNew(getLutil().getRelativ(loc, getBlockFace(), 0D, -4D), getBlockFace()); - karabine1 = lutil.getCenter(karabine1); - karabine2 = lutil.getCenter(karabine2); - karabine3 = lutil.getCenter(karabine3); - karabine4 = lutil.getCenter(karabine4); - karabine1.setYaw(lutil.FaceToYaw(b)+90); - karabine2.setYaw(lutil.FaceToYaw(b)+90); - karabine3.setYaw(lutil.FaceToYaw(b)+90); - karabine4.setYaw(lutil.FaceToYaw(b)+90); + karabine1 = getLutil().getCenter(karabine1); + karabine2 = getLutil().getCenter(karabine2); + karabine3 = getLutil().getCenter(karabine3); + karabine4 = getLutil().getCenter(karabine4); + karabine1.setYaw(getLutil().FaceToYaw(getBlockFace())+90); + karabine2.setYaw(getLutil().FaceToYaw(getBlockFace())+90); + karabine3.setYaw(getLutil().FaceToYaw(getBlockFace())+90); + karabine4.setYaw(getLutil().FaceToYaw(getBlockFace())+90); - Location saveLoc = lutil.getRelativ(loc_1, b, -.55D, -0.6); + Location saveLoc = getLutil().getRelativ(loc_1, getBlockFace(), -.55D, -0.6); saveLoc.add(0,-1.25,0); - saveLoc.setYaw(lutil.FaceToYaw(b) -90); + saveLoc.setYaw(getLutil().FaceToYaw(getBlockFace()) -90); - Location saveLoc2 = lutil.getRelativ(loc_2, b, -4.27, -4.4); + Location saveLoc2 = getLutil().getRelativ(loc_2, getBlockFace(), -4.27, -4.4); saveLoc2.add(0,-1.25,0); - saveLoc2.setYaw(lutil.FaceToYaw(b) -90); + saveLoc2.setYaw(getLutil().FaceToYaw(getBlockFace()) -90); - Location saveLoc3 = lutil.getRelativ(loc_3, b, -8D, -2.5D); + Location saveLoc3 = getLutil().getRelativ(loc_3, getBlockFace(), -8D, -2.5D); saveLoc3.add(0,.64,0); - saveLoc3.setYaw(lutil.FaceToYaw(b) -90); + saveLoc3.setYaw(getLutil().FaceToYaw(getBlockFace()) -90); Double d = .0; setblock(); for(int i = 0; i<=5;i++){ - Location loc1= lutil.getRelativ(saveLoc, b, d, 0D); - Location loc2= lutil.getRelativ(saveLoc, b, d, -.48).add(0,.3,0); - Location loc3= lutil.getRelativ(saveLoc, b, d, -.86).add(0,.81,0); - Location loc4= lutil.getRelativ(saveLoc, b, d, -1.08).add(0,1.33,0); - Location loc5= lutil.getRelativ(saveLoc, b, d, -1.38).add(0,1.86,0); + Location loc1= getLutil().getRelativ(saveLoc, getBlockFace(), d, 0D); + Location loc2= getLutil().getRelativ(saveLoc, getBlockFace(), d, -.48).add(0,.3,0); + Location loc3= getLutil().getRelativ(saveLoc, getBlockFace(), d, -.86).add(0,.81,0); + Location loc4= getLutil().getRelativ(saveLoc, getBlockFace(), d, -1.08).add(0,1.33,0); + Location loc5= getLutil().getRelativ(saveLoc, getBlockFace(), d, -1.38).add(0,1.86,0); - loc1.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - loc2.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - loc3.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - loc4.setYaw(lutil.FaceToYaw(b.getOppositeFace())); - loc5.setYaw(lutil.FaceToYaw(b.getOppositeFace())); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + loc2.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + loc3.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + loc4.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + loc5.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); loc.add(loc1); loc.add(loc2); @@ -150,23 +125,23 @@ public class tent_1 extends Furniture implements Listener{ loc.add(loc4); loc.add(loc5); - ArmorStandPacket asp = manager.createArmorStand(obj, loc1); + fArmorStand asp = getManager().createArmorStand(getObjID(), loc1); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc2); + asp = getManager().createArmorStand(getObjID(), loc2); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc3); + asp = getManager().createArmorStand(getObjID(), loc3); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc4); + asp = getManager().createArmorStand(getObjID(), loc4); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.7), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc5); + asp = getManager().createArmorStand(getObjID(), loc5); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -.7), BodyPart.HEAD); aspList.add(asp); @@ -174,17 +149,17 @@ public class tent_1 extends Furniture implements Listener{ } for(int i = 0; i<=5;i++){ - Location loc1= lutil.getRelativ(saveLoc2, b, d, .02D); - Location loc2= lutil.getRelativ(saveLoc2, b, d, .48).add(0,.3,0); - Location loc3= lutil.getRelativ(saveLoc2, b, d, .86).add(0,.81,0); - Location loc4= lutil.getRelativ(saveLoc2, b, d, 1.08).add(0,1.33,0); - Location loc5= lutil.getRelativ(saveLoc2, b, d, 1.38).add(0,1.86,0); + Location loc1= getLutil().getRelativ(saveLoc2, getBlockFace(), d, .02D); + Location loc2= getLutil().getRelativ(saveLoc2, getBlockFace(), d, .48).add(0,.3,0); + Location loc3= getLutil().getRelativ(saveLoc2, getBlockFace(), d, .86).add(0,.81,0); + Location loc4= getLutil().getRelativ(saveLoc2, getBlockFace(), d, 1.08).add(0,1.33,0); + Location loc5= getLutil().getRelativ(saveLoc2, getBlockFace(), d, 1.38).add(0,1.86,0); - loc1.setYaw(lutil.FaceToYaw(b)); - loc2.setYaw(lutil.FaceToYaw(b)); - loc3.setYaw(lutil.FaceToYaw(b)); - loc4.setYaw(lutil.FaceToYaw(b)); - loc5.setYaw(lutil.FaceToYaw(b)); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace())); + loc2.setYaw(getLutil().FaceToYaw(getBlockFace())); + loc3.setYaw(getLutil().FaceToYaw(getBlockFace())); + loc4.setYaw(getLutil().FaceToYaw(getBlockFace())); + loc5.setYaw(getLutil().FaceToYaw(getBlockFace())); loc.add(loc1); loc.add(loc2); @@ -192,23 +167,23 @@ public class tent_1 extends Furniture implements Listener{ loc.add(loc4); loc.add(loc5); - ArmorStandPacket asp = manager.createArmorStand(obj, loc1); + fArmorStand asp = getManager().createArmorStand(getObjID(), loc1); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc2); + asp = getManager().createArmorStand(getObjID(), loc2); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc3); + asp = getManager().createArmorStand(getObjID(), loc3); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.2), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc4); + asp = getManager().createArmorStand(getObjID(), loc4); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -7.7), BodyPart.HEAD); aspList.add(asp); - asp = manager.createArmorStand(obj, loc5); + asp = getManager().createArmorStand(getObjID(), loc5); asp.getInventory().setHelmet(new ItemStack(Material.CARPET)); asp.setPose(new EulerAngle(0, 0, -.7), BodyPart.HEAD); aspList.add(asp); @@ -217,89 +192,89 @@ public class tent_1 extends Furniture implements Listener{ //middle for(int i = 0; i<=5;i++){ - Location loc1= lutil.getRelativ(saveLoc3, b, d, 0D); - loc1.setYaw(lutil.FaceToYaw(b.getOppositeFace())); + Location loc1= getLutil().getRelativ(saveLoc3, getBlockFace(), d, 0D); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); loc.add(loc1); - ArmorStandPacket asp = manager.createArmorStand(obj, loc1); + fArmorStand asp = getManager().createArmorStand(getObjID(), loc1); asp.getInventory().setHelmet( new ItemStack(Material.WOOD_STEP)); aspList.add(asp); d+=.62; } - ArmorStandPacket asp = manager.createArmorStand(obj, karabine1.add(0,-1.9,0)); + fArmorStand asp = getManager().createArmorStand(getObjID(), karabine1.add(0,-1.9,0)); asp.getInventory().setHelmet(new ItemStack(Material.TRIPWIRE_HOOK)); aspList.add(asp); - asp = manager.createArmorStand(obj, karabine2.add(0,-1.9,0)); + asp = getManager().createArmorStand(getObjID(), karabine2.add(0,-1.9,0)); asp.getInventory().setHelmet(new ItemStack(Material.TRIPWIRE_HOOK)); aspList.add(asp); - asp = manager.createArmorStand(obj, karabine3.add(0,-1.9,0)); + asp = getManager().createArmorStand(getObjID(), karabine3.add(0,-1.9,0)); asp.getInventory().setHelmet(new ItemStack(Material.TRIPWIRE_HOOK)); aspList.add(asp); - asp = manager.createArmorStand(obj, karabine4.add(0,-1.9,0)); + asp = getManager().createArmorStand(getObjID(), karabine4.add(0,-1.9,0)); asp.getInventory().setHelmet(new ItemStack(Material.TRIPWIRE_HOOK)); aspList.add(asp); - Location crafting = lutil.getCenter(block.getLocation()); - crafting.setYaw(lutil.FaceToYaw(b)+90); + Location crafting = getLutil().getCenter(block.getLocation()); + crafting.setYaw(getLutil().FaceToYaw(getBlockFace())+90); - asp = manager.createArmorStand(obj, crafting.add(0,-1,0).clone()); + asp = getManager().createArmorStand(getObjID(), crafting.add(0,-1,0).clone()); asp.getInventory().setHelmet(new ItemStack(Material.LADDER)); aspList.add(asp); - asp = manager.createArmorStand(obj, crafting.add(0,.62,0).clone()); + asp = getManager().createArmorStand(getObjID(), crafting.add(0,.62,0).clone()); asp.getInventory().setHelmet(new ItemStack(Material.LADDER)); aspList.add(asp); - for(ArmorStandPacket packet : aspList){ + for(fArmorStand packet : aspList){ packet.setInvisible(true); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); block.setType(Material.AIR); e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); final Player p = e.getPlayer(); if(!p.getItemInHand().getType().equals(Material.INK_SACK)){ p.openWorkbench(this.block.getLocation(), true); }else{ - lib.getColorManager().color(p, e.canBuild(), Material.CARPET, obj, ColorType.BLOCK, 1); + getLib().getColorManager().color(p, e.canBuild(), Material.CARPET, getObjID(), ColorType.BLOCK, 1); } } @EventHandler private void onBlockBreak(BlockBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} if(e.getBlock()==null){return;} if(block==null){return;} if(!e.getBlock().equals(block)){return;} - if(!lib.canBuild(e.getPlayer(), obj, EventType.BREAK)){e.getPlayer().sendMessage("ERROR1");return;} + if(!getLib().canBuild(e.getPlayer(), getObjID(), EventType.BREAK)){return;} if(this.block!=null&&e.getBlock().equals(block)){this.block.setType(Material.AIR);this.block=null;} - this.obj.remove(e.getPlayer()); - obj=null; + this.getObjID().remove(e.getPlayer()); + delete(); } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java index 9ed651b..436017c 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java @@ -1,12 +1,12 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; @@ -18,60 +18,33 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.ColorType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class tent_2 extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; List block = new ArrayList(); - Plugin plugin; - Location bedLoc; - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public tent_2(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - if(b.equals(BlockFace.WEST)){loc=lutil.getRelativ(loc, b, 1D, 0D);} - if(b.equals(BlockFace.NORTH)){loc=lutil.getRelativ(loc, b, 1D, 1D);} - if(b.equals(BlockFace.EAST)){loc=lutil.getRelativ(loc, b, 0D, 1D);} - this.obj = id; - + public tent_2(Plugin plugin, ObjectID id){ + super(plugin, id); + Location loc = getLocation(); + if(getBlockFace().equals(BlockFace.WEST)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 0D);} + if(getBlockFace().equals(BlockFace.NORTH)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 1D);} + if(getBlockFace().equals(BlockFace.EAST)){loc=getLutil().getRelativ(loc, getBlockFace(), 0D, 1D);} + Location loca = loc.clone(); - switch (b) { - case NORTH: loca=lutil.getRelativ(loca, b, -1D, -1D); break; - case EAST: loca=lutil.getRelativ(loca, b, 0D, -1D); break; - case WEST: loca=lutil.getRelativ(loca, b, -1D, 0D); break; + switch (getBlockFace()) { + case NORTH: loca=getLutil().getRelativ(loca, getBlockFace(), -1D, -1D); break; + case EAST: loca=getLutil().getRelativ(loca, getBlockFace(), 0D, -1D); break; + case WEST: loca=getLutil().getRelativ(loca, getBlockFace(), -1D, 0D); break; default:break; } @@ -86,37 +59,37 @@ public class tent_2 extends Furniture implements Listener{ public void spawn(Location loc){ - List aspl = new ArrayList(); - loc=lutil.getRelativ(loc, b, -.91D, -0.75D); + List aspl = new ArrayList(); + loc=getLutil().getRelativ(loc, getBlockFace(), -.91D, -0.75D); Location LeftLocation = loc; LeftLocation.add(0,-.75,0); - Location RightLocation = lutil.getRelativ(LeftLocation, b, 0D, -4.55D); - Location MiddleLocation = lutil.getRelativ(LeftLocation, b, 0D, -2.27D).add(0,2.4,0); - Location LeftSart = lutil.getRelativ(LeftLocation, b, 3.87D, -.2D); - Location RightSart = lutil.getRelativ(RightLocation, b, 3.87D, .2D); + Location RightLocation = getLutil().getRelativ(LeftLocation, getBlockFace(), 0D, -4.55D); + Location MiddleLocation = getLutil().getRelativ(LeftLocation, getBlockFace(), 0D, -2.27D).add(0,2.4,0); + Location LeftSart = getLutil().getRelativ(LeftLocation, getBlockFace(), 3.87D, -.2D); + Location RightSart = getLutil().getRelativ(RightLocation, getBlockFace(), 3.87D, .2D); Double d = .0; for(int i = 0; i<=8;i++){ - Location loc1= lutil.getRelativ(LeftLocation, b, d, 0D); - loc1.setYaw(lutil.FaceToYaw(b)); - ArmorStandPacket as = manager.createArmorStand(obj, loc1); + Location loc1= getLutil().getRelativ(LeftLocation, getBlockFace(), d, 0D); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace())); + fArmorStand as = getManager().createArmorStand(getObjID(), loc1); as.getInventory().setHelmet(new ItemStack(Material.LOG)); as.setSmall(true); as.setPose(new EulerAngle(1.568, 0, 0), BodyPart.HEAD); aspl.add(as); - Location loc2= lutil.getRelativ(RightLocation, b, d, 0D); - loc2.setYaw(lutil.FaceToYaw(b)); - as = manager.createArmorStand(obj, loc2); + Location loc2= getLutil().getRelativ(RightLocation, getBlockFace(), d, 0D); + loc2.setYaw(getLutil().FaceToYaw(getBlockFace())); + as = getManager().createArmorStand(getObjID(), loc2); as.getInventory().setHelmet(new ItemStack(Material.LOG)); as.setSmall(true); as.setPose(new EulerAngle(1.568, 0, 0), BodyPart.HEAD); aspl.add(as); - Location loc3= lutil.getRelativ(MiddleLocation, b, d, 0D); - loc3.setYaw(lutil.FaceToYaw(b)); + Location loc3= getLutil().getRelativ(MiddleLocation, getBlockFace(), d, 0D); + loc3.setYaw(getLutil().FaceToYaw(getBlockFace())); - as = manager.createArmorStand(obj, loc3); + as = getManager().createArmorStand(getObjID(), loc3); as.getInventory().setHelmet(new ItemStack(Material.LOG)); as.setSmall(true); as.setPose(new EulerAngle(1.568, 0, 0), BodyPart.HEAD); @@ -141,23 +114,28 @@ public class tent_2 extends Furniture implements Listener{ l+=.44; } - for(ArmorStandPacket packet : aspl){ + int i = 0; + for(fArmorStand packet : aspl){ packet.setInvisible(true); packet.setGravity(false); + if(i>44&&i<57){ + packet.setMarker(false); + } + i++; } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } @SuppressWarnings("deprecation") public void setBlock(Location loc){ - Location b1 = lutil.getRelativ(loc, b, 1D, -2D).add(0, 0, 0); - Location b2 = lutil.getRelativ(loc, b, 2D, -3D).add(0, 0, 0); + Location b1 = getLutil().getRelativ(loc, getBlockFace(), 1D, -2D).add(0, 0, 0); + Location b2 = getLutil().getRelativ(loc, getBlockFace(), 2D, -3D).add(0, 0, 0); if(!b2.getBlock().getType().equals(Material.CHEST)){ - b2.setYaw(lutil.FaceToYaw(b)); + b2.setYaw(getLutil().FaceToYaw(getBlockFace())); b2.getBlock().setType(Material.CHEST); BlockState chest = b2.getBlock().getState(); - switch (b){ + switch (getBlockFace()){ case SOUTH: chest.setRawData((byte) 0x3);break; @@ -178,19 +156,19 @@ public class tent_2 extends Furniture implements Listener{ - bedLoc = lutil.setBed(this.b, b1); - + bedLoc = getLutil().setBed(this.getBlockFace(), b1); + getObjID().addBlock(Arrays.asList(b1.getWorld().getBlockAt(b1))); block.add(b1.getWorld().getBlockAt(b1)); block.add(b2.getWorld().getBlockAt(b2)); } - public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ + public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ Double d = .0; for(int i = 0; i<=replay;i++){ - Location loc1= lutil.getRelativ(loc, b, -3.55+d, z); - loc1.setYaw(lutil.FaceToYaw(b)); + Location loc1= getLutil().getRelativ(loc, getBlockFace(), -3.55+d, z); + loc1.setYaw(getLutil().FaceToYaw(getBlockFace())); loc1.add(0, y,0); - ArmorStandPacket packet = manager.createArmorStand(obj, loc1); + fArmorStand packet = getManager().createArmorStand(getObjID(), loc1); packet.getInventory().setHelmet(new ItemStack(Material.CARPET)); packet.setPose(angle, BodyPart.HEAD); list.add(packet); @@ -200,25 +178,25 @@ public class tent_2 extends Furniture implements Listener{ @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); for(Block bl : block){ bl.setType(Material.AIR); } e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(final FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} e.setCancelled(true); Player p = e.getPlayer(); if(!e.canBuild()){return;} @@ -231,7 +209,7 @@ public class tent_2 extends Furniture implements Listener{ } } }else{ - lib.getColorManager().color(p, e.canBuild(), Material.CARPET, obj, ColorType.BLOCK, 1); + getLib().getColorManager().color(p, e.canBuild(), Material.CARPET, getObjID(), ColorType.BLOCK, 1); } } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java index 949c50d..3cc4a6f 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java @@ -1,13 +1,13 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.banner.Pattern; @@ -20,54 +20,27 @@ import org.bukkit.inventory.meta.BannerMeta; import org.bukkit.plugin.Plugin; 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.Utilitis.LocationUtil; -import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket; import de.Ste3et_C0st.FurnitureLib.main.Furniture; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; -import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart; import de.Ste3et_C0st.FurnitureLib.main.Type.ColorType; import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; public class tent_3 extends Furniture implements Listener{ - - Location loc; - BlockFace b; - World w; - ObjectID obj; - FurnitureManager manager; - FurnitureLib lib; - LocationUtil lutil; - Integer id; - Plugin plugin; - - public ObjectID getObjectID(){return this.obj;} - public Location getLocation(){return this.loc;} - public BlockFace getBlockFace(){return this.b;} - - public tent_3(FurnitureLib lib, Plugin plugin, ObjectID id){ - super(lib, plugin, id); - this.lutil = main.getLocationUtil(); - this.b = lutil.yawToFace(id.getStartLocation().getYaw()); - this.loc = id.getStartLocation().getBlock().getLocation(); - this.loc.setYaw(id.getStartLocation().getYaw()); - this.w = id.getStartLocation().getWorld(); - this.manager = lib.getFurnitureManager(); - this.lib = lib; - this.plugin = plugin; - this.obj = id; + public tent_3(Plugin plugin, ObjectID id){ + super(plugin, id); setBlock(); - if(id.isFinish()){ + if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, plugin); return; } - if(b.equals(BlockFace.WEST)){loc=lutil.getRelativ(loc, b, 1D, 0D);} - if(b.equals(BlockFace.NORTH)){loc=lutil.getRelativ(loc, b, 1D, 1D);} - if(b.equals(BlockFace.EAST)){loc=lutil.getRelativ(loc, b, 0D, 1D);} + Location loc = getLocation(); + if(getBlockFace().equals(BlockFace.WEST)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 0D);} + if(getBlockFace().equals(BlockFace.NORTH)){loc=getLutil().getRelativ(loc, getBlockFace(), 1D, 1D);} + if(getBlockFace().equals(BlockFace.EAST)){loc=getLutil().getRelativ(loc, getBlockFace(), 0D, 1D);} spawn(loc); } @@ -75,51 +48,55 @@ public class tent_3 extends Furniture implements Listener{ Block bed; public void spawn(Location loc){ - List aspL = new ArrayList(); + List aspL = new ArrayList(); ItemStack banner = new ItemStack(Material.BANNER); BannerMeta meta = (BannerMeta) banner.getItemMeta(); meta.setBaseColor(DyeColor.WHITE); banner.setItemMeta(meta); - Location locstart = lutil.getRelativ(loc, b, .2D, -.17D); + Location locstart = getLutil().getRelativ(loc, getBlockFace(), .2D, -.17D); locstart.add(0,.65,0); - Location locstart2 = lutil.getRelativ(loc, b, .2D, -.8D); + Location locstart2 = getLutil().getRelativ(loc, getBlockFace(), .2D, -.8D); locstart2.add(0,.65,0); for(int i = 0; i<=2;i++){ - Location location = lutil.getRelativ(locstart, b, .74*i, 0D); - location.setYaw(lutil.FaceToYaw(b)+90); - ArmorStandPacket as = manager.createArmorStand(obj, location); + Location location = getLutil().getRelativ(locstart, getBlockFace(), .74*i, 0D); + location.setYaw(getLutil().FaceToYaw(getBlockFace())+90); + fArmorStand as = getManager().createArmorStand(getObjID(), location); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(3.5, 0, 0), BodyPart.HEAD); + if(i==2){as.setMarker(false);} aspL.add(as); - location = lutil.getRelativ(locstart, b, .74*i, -.3D); + location = getLutil().getRelativ(locstart, getBlockFace(), .74*i, -.3D); location.add(0,.9,0); - location.setYaw(lutil.FaceToYaw(b)+90); + location.setYaw(getLutil().FaceToYaw(getBlockFace())+90); - as = manager.createArmorStand(obj, location); + as = getManager().createArmorStand(getObjID(), location); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(3.5, 0, 0), BodyPart.HEAD); + if(i==2){as.setMarker(false);} aspL.add(as); } for(int i = 0; i<=2;i++){ - Location location = lutil.getRelativ(locstart2, b, .74*i, 0D); - location.setYaw(lutil.FaceToYaw(b)-90); + Location location = getLutil().getRelativ(locstart2, getBlockFace(), .74*i, 0D); + location.setYaw(getLutil().FaceToYaw(getBlockFace())-90); - ArmorStandPacket as = manager.createArmorStand(obj, location); + fArmorStand as = getManager().createArmorStand(getObjID(), location); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(3.5, 0, 0), BodyPart.HEAD); + if(i==2){as.setMarker(false);} aspL.add(as); - location = lutil.getRelativ(locstart2, b, .74*i, .32D); + location = getLutil().getRelativ(locstart2, getBlockFace(), .74*i, .32D); location.add(0,.9,0); - location.setYaw(lutil.FaceToYaw(b)-90); - as = manager.createArmorStand(obj, location); + location.setYaw(getLutil().FaceToYaw(getBlockFace())-90); + as = getManager().createArmorStand(getObjID(), location); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(3.5, 0, 0), BodyPart.HEAD); + if(i==2){as.setMarker(false);} aspL.add(as); } @@ -129,81 +106,82 @@ public class tent_3 extends Furniture implements Listener{ meta.addPattern(new Pattern(DyeColor.RED, PatternType.STRIPE_SMALL)); banner.setItemMeta(meta); - Location banner1 = lutil.getRelativ(loc, b, 1.7D, -.1D); + Location banner1 = getLutil().getRelativ(loc, getBlockFace(), 1.7D, -.1D); banner1.add(0,-1.2,0); - Location banner2 = lutil.getRelativ(banner1, b, 0D, -.75); - banner1.setYaw(lutil.FaceToYaw(b)); - banner2.setYaw(lutil.FaceToYaw(b)); + Location banner2 = getLutil().getRelativ(banner1, getBlockFace(), 0D, -.75); + banner1.setYaw(getLutil().FaceToYaw(getBlockFace())); + banner2.setYaw(getLutil().FaceToYaw(getBlockFace())); - ArmorStandPacket as = manager.createArmorStand(obj, banner1); + fArmorStand as = getManager().createArmorStand(getObjID(), banner1); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(-1.568, 0, 0), BodyPart.HEAD); + as.setMarker(false); aspL.add(as); - as = manager.createArmorStand(obj, banner2); + as = getManager().createArmorStand(getObjID(), banner2); as.getInventory().setHelmet(banner); as.setPose(new EulerAngle(-1.568, 0, 0), BodyPart.HEAD); + as.setMarker(false); aspL.add(as); - Location sit = lutil.getCenter(loc); + Location sit = getLutil().getCenter(loc); - if(b.equals(BlockFace.WEST)){sit=lutil.getRelativ(sit, b, -1D, 0D);} - if(b.equals(BlockFace.NORTH)){sit=lutil.getRelativ(sit, b, -1D, -1D);} - if(b.equals(BlockFace.EAST)){sit=lutil.getRelativ(sit, b, 0D, -1D);} + if(getBlockFace().equals(BlockFace.WEST)){sit=getLutil().getRelativ(sit, getBlockFace(), -1D, 0D);} + if(getBlockFace().equals(BlockFace.NORTH)){sit=getLutil().getRelativ(sit, getBlockFace(), -1D, -1D);} + if(getBlockFace().equals(BlockFace.EAST)){sit=getLutil().getRelativ(sit, getBlockFace(), 0D, -1D);} - sit.setYaw(lutil.FaceToYaw(this.b.getOppositeFace())); - Location locationsit = lutil.getRelativ(sit, b, 1D, 0D); - locationsit.setYaw(lutil.FaceToYaw(this.b.getOppositeFace())); + sit.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + Location locationsit = getLutil().getRelativ(sit, getBlockFace(), 1D, 0D); + locationsit.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); - as = manager.createArmorStand(obj, locationsit.add(0,-2,0)); + as = getManager().createArmorStand(getObjID(), locationsit.add(0,-2,0)); as.setName("#SITZ#"); aspL.add(as); - for(ArmorStandPacket packet : aspL){ + for(fArmorStand packet : aspL){ packet.setInvisible(true); packet.setGravity(false); } - manager.send(obj); - Bukkit.getPluginManager().registerEvents(this, plugin); + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); } private void setBlock(){ - Location sit = lutil.getCenter(loc); - sit.setYaw(lutil.FaceToYaw(this.b.getOppositeFace())); - bed = lutil.setHalfBed(b, lutil.getRelativ(sit.add(0,-2,0).getBlock().getLocation().add(0,2,0), b, 2D, 0D)); + Location sit = getLutil().getCenter(getLocation()); + sit.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); + bed = getLutil().setHalfBed(getBlockFace(), getLutil().getRelativ(sit.add(0,-2,0).getBlock().getLocation().add(0,2,0), getBlockFace(), 2D, 0D)); + getObjID().addBlock(Arrays.asList(bed)); } @EventHandler public void onFurnitureBreak(FurnitureBreakEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} e.setCancelled(true); bed.setType(Material.AIR); e.remove(); - obj=null; + delete(); } @EventHandler public void onFurnitureClick(FurnitureClickEvent e){ - if(obj==null){return;} - if(obj.getSQLAction().equals(SQLAction.REMOVE)){return;} + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} if(e.isCancelled()){return;} - if(!e.getID().equals(obj)){return;} + if(!e.getID().equals(getObjID())){return;} e.setCancelled(true); if(!e.canBuild()){return;} Player p = e.getPlayer(); if(p.getItemInHand().getType().equals(Material.INK_SACK)){ - lib.getColorManager().color(p, e.canBuild(), Material.BANNER, obj, ColorType.BANNER, 1); + getLib().getColorManager().color(p, e.canBuild(), Material.BANNER, getObjID(), ColorType.BANNER, 1); }else{ - for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){ + for(fArmorStand packet : getManager().getfArmorStandByObjectID(getObjID())){ if(packet.getName().equalsIgnoreCase("#SITZ#")){ - if(packet.getPessanger()==null){ - packet.setPessanger(p); - packet.update(); - } + packet.setPassanger(p); + packet.update(); } } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/trap/BearTrap.java b/src/de/Ste3et_C0st/Furniture/Objects/trap/BearTrap.java new file mode 100644 index 0000000..bb12b81 --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Objects/trap/BearTrap.java @@ -0,0 +1,141 @@ +package de.Ste3et_C0st.Furniture.Objects.trap; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +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.player.PlayerMoveEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +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.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fArmorStand; + +public class BearTrap extends Furniture implements Listener{ + + fArmorStand stand1, stand2; + boolean b; + + public BearTrap(Plugin plugin, ObjectID id){ + super(plugin, id); + if(isFinish()){ + for(fArmorStand stand : getfAsList()){ + if(stand.getName().equalsIgnoreCase("#IRON1#")){ + stand1 = stand; + }else if(stand.getName().equalsIgnoreCase("#IRON2#")){ + stand2 = stand; + } + } + setStatus(false); + Bukkit.getPluginManager().registerEvents(this, plugin); + return; + } + spawn(id.getStartLocation()); + } + + @Override + public void spawn(Location loc) { + List asList = new ArrayList(); + fArmorStand stand = spawnArmorStand(getRelative(getCenter(), 0, 0).add(0, -1.9, 0)); + stand.setHelmet(new ItemStack(Material.IRON_TRAPDOOR)); + asList.add(stand); + + Location location = getRelative(getCenter(), 0, .04).add(0, -1.8, 0); + location.setYaw(getYaw()+90); + stand = spawnArmorStand(location); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + stand.setHelmet(new ItemStack(Material.IRON_FENCE)); + stand.setName("#IRON1#"); + stand1 = stand; + asList.add(stand); + + location = getRelative(getCenter(), 0, -.04).add(0, -1.8, 0); + location.setYaw(getYaw()+90); + stand = spawnArmorStand(location); + stand.setHeadPose(getLutil().degresstoRad(new EulerAngle(-90, 0, 0))); + stand.setHelmet(new ItemStack(Material.IRON_FENCE)); + stand.setName("#IRON2#"); + stand2 = stand; + asList.add(stand); + + for(fArmorStand packet : asList){ + packet.setInvisible(true); + packet.setGravity(false); + } + send(); + Bukkit.getPluginManager().registerEvents(this, getPlugin()); + } + + @EventHandler + public void onFurnitureBreak(FurnitureBreakEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + e.remove(); + delete(); + } + + @EventHandler + public void onFurnitureClick(FurnitureClickEvent e) { + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + if(b){ + setStatus(false); + getWorld().playSound(getLocation(), Sound.ANVIL_LAND, 10, 1); + } + } + + private void setStatus(boolean b){ + if(b){ + stand1.setHeadPose(getLutil().degresstoRad(new EulerAngle(0, 0, 0))); + stand2.setHeadPose(getLutil().degresstoRad(new EulerAngle(0, 0, 0))); + getWorld().playSound(getLocation(), Sound.ITEM_BREAK, 5, 1); + }else{ + stand1.setHeadPose(getLutil().degresstoRad(new EulerAngle(90, 0, 0))); + stand2.setHeadPose(getLutil().degresstoRad(new EulerAngle(-90, 0, 0))); + } + this.b = b; + update(); + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent e) { + if(b) return; + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.isCancelled()){return;} + + if (e.getFrom().getWorld() == e.getTo().getWorld() && + e.getFrom().getBlockX() == e.getTo().getBlockX() && + e.getFrom().getBlockY() == e.getTo().getBlockY() && + e.getFrom().getBlockZ() == e.getTo().getBlockZ()) + return; + + Player player = e.getPlayer(); + if (player.getHealth() <= 0.0D) return; + Location loc = e.getTo().getBlock().getLocation(); + Location loc2 = getLocation(); + if(loc.toVector().distance(loc2.toVector())<1){ + setStatus(true); + player.damage(main.damage); + } + } + +} diff --git a/src/plugin.yml b/src/plugin.yml index 1835059..24c97ee 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,5 +1,5 @@ name: DiceFurniture -version: 2.3.5 +version: 2.4 description: Add some new Objects to the Server author: Ste3et_C0st website: http://dicecraft.de