DiceFurniture

This commit is contained in:
BuildTools 2015-08-11 22:49:50 +02:00
parent 222d3056a5
commit 3af153b756
28 changed files with 1708 additions and 380 deletions

View File

@ -0,0 +1,8 @@
Billboard:
name: '&cBillboard'
material: 383
crafting:
disable: true
recipe: XXX,XXX,XXX
index:
X: 0

11
src/Crafting/Mailbox.yml Normal file
View File

@ -0,0 +1,11 @@
Mailbox:
name: '&cMailBox'
material: 383
crafting:
disable: false
recipe: ADA,0X0,0X0
index:
'0': 0
X: 280
A: 1
D: 54

View File

@ -0,0 +1,10 @@
Streetlamp:
name: '&cStreetlamp'
material: 383
crafting:
disable: false
recipe: 0XX,0AX,00X
index:
'0': 0
X: 280
A: 123

10
src/Crafting/Sunshade.yml Normal file
View File

@ -0,0 +1,10 @@
Sunshade:
name: '&cSunshade'
material: 383
crafting:
disable: false
recipe: AAA,0X0,0X0
index:
'0': 0
X: 280
A: 171

10
src/Crafting/fence.yml Normal file
View File

@ -0,0 +1,10 @@
Fence:
name: '&cFence'
material: 383
crafting:
disable: false
recipe: 000,XAX,XAX
index:
'0': 0
A: 280
X: 1

View File

@ -1,37 +1,75 @@
config:
# Needs Vualt (optional)
UseMetrics: true
CraftingPermissions: true
BreakPermissions: true
CreativeItems: true
CreativeStorage: true
Messages:
NoPermissions: "&cYou don't have permission to do that"
notFound: "&cFurniture not found"
PlayerNotFound: "&cPlayer not found"
ArmorStandsKills: "&6@ARMORSTANDS ArmorStands removed from @WOLRDS worlds"
ArmorStandsRemoveFromDistance: "@ARMORSTANDS &2Furniture removed"
ArmorStandsRemoveFromID: "&9Furniture [&cnot#&2successful] &9removed"
ArmorStandsRemoveFromType: "&9Furniture [&cnot#&2successful] &9removed"
CommandBadArguments: "&cBadArguments"
Space: "&aNot Enough Space"
Protection:
Towny:
OnlyOwner: false
HookIFExist: true
WorldGuard:
HookIFExist: true
LandLord:
HookIFExist: true
PlotME:
HookIFExist: true
PlotSquared:
HookIFExist: true
PreciousStones:
HookIFExist: true
Residence:
HookIFExist: true
GriefPrevention:
HookIFExist: true
Plotz:
HookIFExist: true
Material:
- 1
- 2
- 3
- 4
- 5
- 7
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 24
- 25
- 29
- 33
- 35
- 41
- 42
- 45
- 46
- 47
- 48
- 49
- 52
- 56
- 57
- 58
- 61
- 73
- 79
- 80
- 81
- 82
- 84
- 86
- 87
- 88
- 89
- 91
- 95
- 97
- 98
- 99
- 100
- 103
- 110
- 112
- 121
- 123
- 129
- 133
- 137
- 138
- 152
- 153
- 155
- 158
- 159
- 161
- 162
- 165
- 168
- 169
- 170
- 172
- 173
- 174
- 179

View File

@ -15,7 +15,7 @@ public class config
public config()
{
this.path = "plugins/Furniture/";
this.path = "plugins/FurnitureLib/";
}
public FileConfiguration createConfig(String name, String Folder)

View File

@ -2,22 +2,28 @@ package de.Ste3et_C0st.Furniture.Main;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
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.plugin.java.JavaPlugin;
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.fance;
import de.Ste3et_C0st.Furniture.Objects.garden.graveStone;
import de.Ste3et_C0st.Furniture.Objects.garden.mailBox;
import de.Ste3et_C0st.Furniture.Objects.garden.sunshade;
import de.Ste3et_C0st.Furniture.Objects.indoor.chair;
import de.Ste3et_C0st.Furniture.Objects.indoor.largeTable;
import de.Ste3et_C0st.Furniture.Objects.indoor.lantern;
@ -33,7 +39,6 @@ import de.Ste3et_C0st.FurnitureLib.Crafting.CraftingFile;
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.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
@ -42,9 +47,12 @@ public class main extends JavaPlugin implements Listener{
FurnitureLib lib;
FurnitureManager manager;
config c;
FileConfiguration file;
static main instance;
static LocationUtil util;
public static List<Material> materialWhiteList = new ArrayList<Material>();
@SuppressWarnings("unused")
public void onEnable(){
if(!Bukkit.getPluginManager().isPluginEnabled("FurnitureLib")){Bukkit.getPluginManager().disablePlugin(this);}
instance = this;
@ -53,20 +61,25 @@ 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).setSize(1, 2, 1);
new Project("TV", new CraftingFile("TV", getResource("Crafting/TV.yml")),this, tv.class).setSize(1, 2, 1);
new Project("GraveStone", new CraftingFile("GraveStone", getResource("Crafting/GraveStone.yml")),this, graveStone.class).setSize(1, 2, 1);
new Project("Chair", new CraftingFile("Chair", getResource("Crafting/Chair.yml")),this, chair.class).setSize(1, 1, 1);
new Project("LargeTable", new CraftingFile("LargeTable", getResource("Crafting/LargeTable.yml")),this, largeTable.class).setSize(3, 1, 3);
new Project("Lantern", new CraftingFile("Lantern", getResource("Crafting/Lantern.yml")),this, lantern.class).setSize(1, 1, 1);
new Project("Sofa", new CraftingFile("Sofa", getResource("Crafting/Sofa.yml")),this, sofa.class).setSize(1, 2, 1);
new Project("Table", new CraftingFile("Table", getResource("Crafting/Table.yml")),this, table.class).setSize(1, 1, 1);
new Project("Barrels", new CraftingFile("Barrels", getResource("Crafting/Barrels.yml")),this, barrels.class).setSize(1,1,1);
new Project("Campfire1", new CraftingFile("Campfire1", getResource("Crafting/Campfire1.yml")),this, campfire_1.class).setSize(1, 1, 1);
new Project("Campfire2", new CraftingFile("Campfire2", getResource("Crafting/Campfire2.yml")),this, campfire_2.class).setSize(2, 1, 2);
new Project("Tent1", new CraftingFile("Tent1", getResource("Crafting/Tent1.yml")),this, tent_1.class).setSize(5, 3, 4);
new Project("Tent2", new CraftingFile("Tent2", getResource("Crafting/Tent2.yml")),this, tent_2.class).setSize(6, 3, 4);
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);
List<ObjectID> objList = new ArrayList<ObjectID>();
for(ObjectID obj : manager.getObjectList()){
@ -74,113 +87,114 @@ public class main extends JavaPlugin implements Listener{
if(!objList.contains(obj)) objList.add(obj);
if(obj.getPlugin().equalsIgnoreCase(this.getName())){
switch (obj.getProject()) {
case "Camera":
new camera(obj.getStartLocation(), lib, "Camera", this, obj);
break;
case "TV":
new tv(obj.getStartLocation(), lib, "TV", this, obj);
break;
case "GraveStone":
new graveStone(obj.getStartLocation(), lib, "GraveStone", this, obj);
break;
case "Chair":
new chair(obj.getStartLocation(), lib, "Chair", this, obj);
break;
case "LargeTable":
new largeTable(obj.getStartLocation(), lib, "LargeTable", this, obj);
break;
case "Lantern":
new lantern(obj.getStartLocation(), lib, "Lantern", this, obj);
break;
case "Sofa":
new sofa(obj.getStartLocation(), lib, "Sofa", this, obj);
break;
case "Table":
new table(obj.getStartLocation(), lib, "Table", this, obj);
break;
case "Barrels":
new barrels(obj.getStartLocation(), lib, "Barrels", this, obj);
break;
case "Campfire1":
new campfire_1(obj.getStartLocation(), lib, "Campfire1", this, obj);
break;
case "Campfire2":
new campfire_2(obj.getStartLocation(), lib, "Campfire2", this, obj);
break;
case "Tent1":
new tent_1(obj.getStartLocation(), lib, "Tent1", this, obj);
break;
case "Tent2":
new tent_2(obj.getStartLocation(), lib, "Tent2", this, obj);
break;
case "Tent3":
new tent_3(obj.getStartLocation(), lib, "Tent3", this, obj);
break;
default:
break;
case "Camera":new camera(obj.getStartLocation(), lib, "Camera", this, obj, null);break;
case "TV":new tv(obj.getStartLocation(), lib, "TV", this, obj, null);break;
case "GraveStone":new graveStone(obj.getStartLocation(), lib, "GraveStone", this, obj, null);break;
case "Chair":new chair(obj.getStartLocation(), lib, "Chair", this, obj, null);break;
case "LargeTable":new largeTable(obj.getStartLocation(), lib, "LargeTable", this, obj, null);break;
case "Lantern":new lantern(obj.getStartLocation(), lib, "Lantern", this, obj, null);break;
case "Sofa":new sofa(obj.getStartLocation(), lib, "Sofa", this, obj, null);break;
case "Table":new table(obj.getStartLocation(), lib, "Table", this, obj, null);break;
case "Barrels":new barrels(obj.getStartLocation(), lib, "Barrels", this, obj, null);break;
case "Campfire1":new campfire_1(obj.getStartLocation(), lib, "Campfire1", this, obj, null);break;
case "Campfire2":new campfire_2(obj.getStartLocation(), lib, "Campfire2", this, obj, null);break;
case "Tent1":new tent_1(obj.getStartLocation(), lib, "Tent1", this, obj, null);break;
case "Tent2":new tent_2(obj.getStartLocation(), lib, "Tent2", this, obj, null);break;
case "Tent3":new tent_3(obj.getStartLocation(), lib, "Tent3", this, obj, null);break;
case "Fence":new fance(obj.getStartLocation(), lib, "Fence", this, obj, null);break;
case "Sunshade":new sunshade(obj.getStartLocation(), lib, "Sunshade", this, obj, null);break;
case "Streetlamp":new streetlamp(obj.getStartLocation(), lib, "Streetlamp", this, obj, null);break;
case "Billboard": new billboard(obj.getStartLocation(), lib, "Billboard", this, obj, null); break;
case "Mailbox" :
mailBox mail = new mailBox(obj.getStartLocation(), lib, "Mailbox", this, obj, null);
/*try {
mail.addMailbox(loadPlayerMailBox(obj));
} catch (Exception e) {
e.printStackTrace();
}*/
break;
default:break;
}
}
}
addDefault();
}
@SuppressWarnings("deprecation")
private void addDefault(){
c = new config();
this.file = c.getConfig("whiteList", "plugin/fence/");
this.file.addDefaults(YamlConfiguration.loadConfiguration(getResource("config.yml")));
this.file.options().copyDefaults(true);
this.c.saveConfig("whiteList", this.file, "plugin/fence/");
setDefaults();
}
@SuppressWarnings("deprecation")
private void setDefaults(){
c = new config();
this.file = c.getConfig("whiteList", "plugin/fence/");
List<Integer> intList = this.file.getIntegerList("Material");
for(int i : intList){
if(Material.getMaterial(i)!=null){
Material m = Material.getMaterial(i);
materialWhiteList.add(m);
}
}
}
public void onDisable(){
}
public static void deleteEffect(List<ArmorStandPacket> asList){
try{
if(asList==null||asList.isEmpty()) return;
for (ArmorStandPacket packet : asList) {
if(packet!=null){
if(packet.getInventory() != null && packet.getInventory().getHelmet()!=null){
if(packet.getInventory().getHelmet().getType()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){
packet.getLocation().getWorld().playEffect(packet.getLocation(), Effect.STEP_SOUND, packet.getInventory().getHelmet().getType());
}
}
public Player loadPlayerMailBox(ObjectID objID){
c = new config();
file = c.getConfig("player", "plugin/mailbox/");
ConfigurationSection section = file.getConfigurationSection("players");
for(String s : section.getKeys(false)){
for(String str : file.getStringList("players." + s)){
if(str.equalsIgnoreCase(objID.getSerial())){
return Bukkit.getPlayer(UUID.fromString(s));
}
}
}catch(Exception e){}
}
}
return null;
}
@EventHandler
private void onClick(FurnitureItemEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getProject().hasPermissions(e.getPlayer())){return;}
if(!e.getProject().getPlugin().getName().equalsIgnoreCase(this.getName())){return;}
Location loc = e.getLocation().getBlock().getLocation();
loc.setYaw(e.getPlayer().getLocation().getYaw());
loc.add(0, 1, 0);
Player p = e.getPlayer();
Project pro = e.getProject();
lib.getLimitationManager().add(e.getLocation(), pro, p);
lib.getLimitationManager().add(e.getLocation(), pro);
switch(e.getProject().getName()){
case "Camera" : new camera(loc, lib, "Camera", instance, null); removeEgge(p); return;
case "TV" : new tv(loc, lib, "TV", instance, null); removeEgge(p); return;
case "GraveStone" : new graveStone(loc, lib, "GraveStone", instance, null); removeEgge(p); return;
case "Chair" : new chair(loc, lib, "Chair", instance, null); removeEgge(p); return;
case "LargeTable" : new largeTable(loc, lib, "LargeTable", instance, null); removeEgge(p); return;
case "Lantern" : new lantern(loc, lib, "Lantern", instance, null); removeEgge(p); return;
case "Sofa" : new sofa(loc, lib, "Sofa", instance, null); removeEgge(p); return;
case "Table" : new table(loc, lib, "Table", instance, null); removeEgge(p); return;
case "Barrels" : new barrels(loc, lib, "Barrels", instance, null); removeEgge(p); return;
case "Campfire1" : new campfire_1(loc, lib, "Campfire1", instance, null); removeEgge(p); return;
case "Campfire2" : new campfire_2(loc, lib, "Campfire2", instance, null); removeEgge(p); return;
case "Tent1" : new tent_1(loc, lib, "Tent1", instance, null); removeEgge(p); return;
case "Tent2" : new tent_2(loc, lib, "Tent2", instance, null); removeEgge(p); return;
case "Tent3" : new tent_3(loc, lib, "Tent3", instance, null); removeEgge(p); return;
default: e.getPlayer().sendMessage("A error occorupted"); return;
}
}
private void removeEgge(Player p){
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack is1 = p.getInventory().getItemInHand();
is1.setAmount(is1.getAmount()-1);
p.getInventory().setItem(i, is1);
case "Camera" : new camera(loc, lib, "Camera", instance, null, e.getPlayer());break;
case "TV" : new tv(loc, lib, "TV", instance, null, e.getPlayer());break;
case "GraveStone" : new graveStone(loc, lib, "GraveStone", instance, null, e.getPlayer());break;
case "Chair" : new chair(loc, lib, "Chair", instance, null, e.getPlayer()); break;
case "LargeTable" : new largeTable(loc, lib, "LargeTable", instance, null, e.getPlayer());break;
case "Lantern" : new lantern(loc, lib, "Lantern", instance, null, e.getPlayer());break;
case "Sofa" : new sofa(loc, lib, "Sofa", instance, null, e.getPlayer());break;
case "Table" : new table(loc, lib, "Table", instance, null, e.getPlayer());break;
case "Barrels" : new barrels(loc, lib, "Barrels", instance, null, e.getPlayer());break;
case "Campfire1" : new campfire_1(loc, lib, "Campfire1", instance, null, e.getPlayer());break;
case "Campfire2" : new campfire_2(loc, lib, "Campfire2", instance, null, e.getPlayer());break;
case "Tent1" : new tent_1(loc, lib, "Tent1", instance, null, e.getPlayer());break;
case "Tent2" : new tent_2(loc, lib, "Tent2", instance, null, e.getPlayer());break;
case "Tent3" : new tent_3(loc, lib, "Tent3", instance, null, e.getPlayer());break;
case "Fence" : new fance(loc, lib, "Fence", instance, null, e.getPlayer());break;
case "Sunshade": new sunshade(loc, lib, "Sunshade", instance, null, e.getPlayer());break;
case "Streetlamp": new streetlamp(loc, lib, "Streetlamp", this, null, e.getPlayer());break;
case "Billboard": new billboard(loc, lib, "Billboard", instance, null, e.getPlayer());break;
case "Mailbox" : new mailBox(loc, lib, "Mailbox", this, null, e.getPlayer()); break;
default: e.getPlayer().sendMessage("A error occorupted");break;
}
e.removeItem();
}
public static LocationUtil getLocationUtil(){return util;}

View File

@ -0,0 +1,139 @@
package de.Ste3et_C0st.Furniture.Objects.electric;
import java.util.ArrayList;
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.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.Furniture.Main.main;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
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;
public class billboard implements Listener{
Location loc;
BlockFace b;
World w;
ObjectID obj;
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Plugin plugin;
private String id;
public String getID(){return this.id;}
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public billboard(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
this.loc.setYaw(location.getYaw());
this.w = location.getWorld();
this.manager = lib.getFurnitureManager();
this.lib = lib;
this.plugin = plugin;
if(id!=null){
this.obj = id;
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
public void spawn(Location location){
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
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);
for(int i = 0; i<=3;i++){
Location loc = lutil.getRelativ(center.clone(), b, -.1, -.5).add(0, .88*i, 0);
loc.setYaw(loc.getYaw()+90);
ArmorStandPacket packet = manager.createArmorStand(obj, 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);
loc.setYaw(loc.getYaw()+90);
ArmorStandPacket packet = manager.createArmorStand(obj, 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);
loc.setYaw(loc.getYaw()+90);
ArmorStandPacket packet = manager.createArmorStand(obj, 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);
loc.setYaw(loc.getYaw()+90);
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM);
asList.add(packet);
}
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);
loc.getBlock().setType(Material.BARRIER);
ItemFrame frame = (ItemFrame) w.spawn(loc2, ItemFrame.class);
frame.setFacingDirection(b);
}
}
for(ArmorStandPacket pack : asList){
pack.setInvisible(true);
pack.setGravity(false);
pack.setBasePlate(false);
}
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
e.remove();
obj=null;
}
}

View File

@ -5,7 +5,6 @@ import java.util.Iterator;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
@ -23,6 +22,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -45,7 +45,7 @@ public class camera implements Listener{
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public camera(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public camera(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -60,6 +60,10 @@ public class camera implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -131,6 +135,7 @@ public class camera implements Listener{
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
//lib.saveObjToDB(obj);
}
@SuppressWarnings("deprecation")
@ -140,8 +145,8 @@ public class camera implements Listener{
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
Player p = e.getPlayer();
Location pLocation = lutil.getLocationCopy(lutil.getRelativ(p.getLocation().getBlock().getLocation(), b, -1D, 0D));
Location locCopy = lutil.getLocationCopy(getLocation());
Location pLocation = lutil.getRelativ(p.getLocation().getBlock().getLocation(), b, -1D, 0D).clone();
Location locCopy = getLocation().clone();
if(pLocation.equals(locCopy) && lutil.yawToFace(p.getLocation().getYaw()).getOppositeFace().equals(b)){
if(!p.getInventory().getItemInHand().getType().equals(Material.MAP)){return;}
MapView view = Bukkit.getMap(p.getItemInHand().getDurability());
@ -161,15 +166,10 @@ public class camera implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
e.remove();
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
obj=null;
}

View File

@ -0,0 +1,271 @@
package de.Ste3et_C0st.Furniture.Objects.electric;
import java.util.ArrayList;
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;
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.FurnitureBreakEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
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;
public class streetlamp implements Listener{
Location loc, light;
Vector loc2;
BlockFace b;
World w;
ObjectID obj;
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Plugin plugin;
boolean redstone = false;
List<Location> blockLocation = new ArrayList<Location>();
private String id;
public String getID(){return this.id;}
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public streetlamp(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
this.loc.setYaw(location.getYaw());
this.loc2 = location.toVector();
this.w = location.getWorld();
this.manager = lib.getFurnitureManager();
this.lib = lib;
this.plugin = plugin;
this.light = lutil.getRelativ(loc, b, -1D, 0D);
setBlock();
if(id!=null){
this.obj = id;
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
public void spawn(Location location){
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
Location center = lutil.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);
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);
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));
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));
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.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.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.getInventory().setHelmet(new ItemStack(Material.GLASS));
packet.setSmall(true);
asList.add(packet);
for(ArmorStandPacket pack : asList){
pack.setInvisible(true);
pack.setGravity(false);
pack.setBasePlate(false);
}
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
private void setBlock(){
Location location = loc.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());
if(i==3){
Location loc =lutil.getRelativ(location, b, -1D, 0D);
Block blocks = loc.getBlock();
blocks.setType(Material.BARRIER);
blockLocation.add(blocks.getLocation());
}
}
}
@EventHandler
private void onPlayerInteract(PlayerInteractEvent e){
if(obj==null) return;
if(e.isCancelled()){return;}
if(redstone) return;
if(e.getAction()==null) return;
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
if(e.getClickedBlock()==null) return;
if(blockLocation.contains(e.getClickedBlock().getLocation())){
e.setCancelled(true);
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(e.getClickedBlock()==null) return;
if(blockLocation.contains(e.getClickedBlock().getLocation())){
if(isOn()){
setLight(false);
}else{
setLight(true);
}
}
}
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
Boolean isOn = isOn();
ArmorStandPacket packet = getPacket();
if(packet==null) return;
if(redstone) return;
if(isOn){
setLight(false);
}else{
setLight(true);
}
}
@EventHandler
private void onBlockPowered(BlockRedstoneEvent e){
if(e.getBlock()==null) return;
if(obj==null) return;
Vector loc = e.getBlock().getLocation().toVector();
if(loc2.distance(loc)<=1){
if(e.getNewCurrent()==0){
setLight(false);
redstone = false;
}else{
setLight(true);
redstone = true;
}
}
}
private void setLight(Boolean b){
if(!b){
ArmorStandPacket packet = getPacket();
if(packet==null) return;
packet.getInventory().setHelmet(new ItemStack(Material.REDSTONE_LAMP_OFF));
FurnitureLib.getInstance().getLightManager().removeLight(light);
manager.updateFurniture(obj);
}else{
ArmorStandPacket packet = getPacket();
if(packet==null) return;
packet.getInventory().setHelmet(new ItemStack(Material.GLOWSTONE));
FurnitureLib.getInstance().getLightManager().addLight(light, 15);
manager.updateFurniture(obj);
}
}
private ArmorStandPacket getPacket(){
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().equalsIgnoreCase("#LAMP#")){
return packet;
}
}
return null;
}
private boolean isOn(){
for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){
if(as.getName().equalsIgnoreCase("#LAMP#")){
switch (as.getInventory().getHelmet().getType()) {
case REDSTONE_LAMP_OFF: return false;
case GLOWSTONE: return true;
default: return false;
}
}
}
return false;
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
FurnitureLib.getInstance().getLightManager().removeLight(light);
e.remove();
obj=null;
for(Location loc : blockLocation){
loc.getBlock().setType(Material.AIR);
}
blockLocation.clear();
}
}

View File

@ -4,11 +4,11 @@ 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.World;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
@ -17,6 +17,7 @@ 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.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -40,7 +41,7 @@ public class tv implements Listener{
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public tv(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public tv(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -55,6 +56,10 @@ public class tv implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -119,15 +124,10 @@ public class tv implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
e.remove();
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
obj=null;
}
}

View File

@ -0,0 +1,214 @@
package de.Ste3et_C0st.Furniture.Objects.garden;
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.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.FurnitureBreakEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
public class fance implements Listener{
Location loc;
BlockFace b;
World w;
ObjectID obj;
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Plugin plugin;
private String id;
public String getID(){return this.id;}
public ObjectID getObjectID(){return this.obj;}
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
List<Material> matList = Arrays.asList(
Material.SPRUCE_FENCE,
Material.BIRCH_FENCE,
Material.JUNGLE_FENCE,
Material.DARK_OAK_FENCE,
Material.ACACIA_FENCE,
Material.COBBLE_WALL,
Material.NETHER_FENCE);
Block block;
Material m;
public fance(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
this.loc.setYaw(location.getYaw());
this.w = location.getWorld();
this.manager = lib.getFurnitureManager();
this.lib = lib;
this.plugin = plugin;
if(id!=null){
this.obj = id;
setBlock();
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
setBlock();
}
public void spawn(Location location){
this.m = Material.STONE;
Location locat = loc.clone();
locat=lutil.getCenter(locat);
locat.add(0, -1.2, 0);
locat.setYaw(lutil.FaceToYaw(b.getOppositeFace()));
for(int i = 0; i<=2;i++){
Location loc = locat.clone();
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
packet.getInventory().setHelmet(new ItemStack(m,0,(short) 0));
packet.setGravity(false);
packet.setInvisible(true);
packet.setBasePlate(false);
packet.setSmall(true);
locat.add(0, .44, 0);
}
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@EventHandler
private void onBlockBreak(BlockBreakEvent e){
if(obj==null){return;}
if(block==null){return;}
if(!e.getBlock().getLocation().equals(block.getLocation())){return;}
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation())){return;}
this.block.setType(Material.AIR);
this.obj.remove(e.getPlayer());
block=null;
manager.remove(obj);
obj=null;
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(this.block!=null) this.block.setType(Material.AIR);
e.remove();
obj=null;
block.setType(Material.AIR);
block=null;
}
@SuppressWarnings("deprecation")
@EventHandler
private void onInteract(PlayerInteractEvent e){
if(obj==null) 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;
e.setCancelled(true);
Player p = e.getPlayer();
ItemStack is = p.getItemInHand();
if(is==null||!is.getType().isBlock()) return;
Material m = p.getItemInHand().getType();
byte data = (byte) is.getDurability();
if(matList.contains(m)){
this.block.setType(m);
this.block.setData(data);
remove(p, is);
return;
}else if(main.materialWhiteList.contains(m)){
setTypes(is);
remove(p, is);
manager.updateFurniture(obj);
return;
}
}
private void remove(Player p, ItemStack is){
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
is.setAmount(is.getAmount()-1);
p.getInventory().setItem(i, is);
p.updateInventory();
}
}
@SuppressWarnings("deprecation")
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(this.block==null) return;
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
Player p = e.getPlayer();
ItemStack is = p.getItemInHand();
if(is==null || !is.getType().isBlock()) return;
Material m = p.getItemInHand().getType();
byte data = (byte) is.getDurability();
if(matList.contains(m)){
this.block.setType(m);
this.block.setData(data);
remove(p, is);
return;
}else if(main.materialWhiteList.contains(m)){
setTypes(is);
remove(p, is);
manager.updateFurniture(obj);
return;
}
}
private void setTypes(ItemStack is){
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
packet.getInventory().setHelmet(is);
}
}
private void setBlock(){
Location location = loc.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);
}
}
}
}

View File

@ -5,7 +5,6 @@ import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
@ -26,6 +25,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -50,7 +50,7 @@ public class graveStone implements Listener{
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public graveStone(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public graveStone(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -66,6 +66,10 @@ public class graveStone implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
setBlock();
@ -157,18 +161,13 @@ public class graveStone implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()) return;
if(!e.canBuild(null)) return;
if(!e.canBuild()) return;
if(!e.getID().equals(obj)) return;
if(obj==null){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
e.remove();
sign.setType(Material.AIR);
sign = null;
manager.remove(obj);
obj=null;
e.remove();
}
@EventHandler
@ -209,7 +208,7 @@ public class graveStone implements Listener{
private void onClick(FurnitureClickEvent e){
Player p = e.getPlayer();
if(e.isCancelled()) return;
if(!e.canBuild(null)) return;
if(!e.canBuild()) return;
if(!e.getID().equals(obj)) return;
ItemStack is = p.getItemInHand();
if (is == null) return;

View File

@ -0,0 +1,216 @@
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.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.player.PlayerInteractEvent;
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.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
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;
public class mailBox implements Listener {
Location loc;
BlockFace b;
World w;
ObjectID obj;
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Plugin plugin;
List<Block> blockList = new ArrayList<Block>();
private String id;
public String getID(){return this.id;}
public ObjectID getObjectID(){return this.obj;}
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
public mailBox(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
this.loc.setYaw(location.getYaw());
this.w = location.getWorld();
this.manager = lib.getFurnitureManager();
this.lib = lib;
this.plugin = plugin;
if(id!=null){
this.obj = id;
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
public void spawn(Location location){
List<ArmorStandPacket> aspList = new ArrayList<ArmorStandPacket>();
Location middle = lutil.getCenter(loc);
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;
default:break;
}
ArmorStandPacket as = manager.createArmorStand(obj, 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);
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.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.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);
packet.setSmall(true);
//x z y
//-.7 .73 -.3
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
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);
packet.setSmall(true);
//x z y
//-.7 .73 -.3
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
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, .362D);
packet = manager.createArmorStand(obj, loc);
packet.setSmall(true);
//x z y
//-.7 .73 -.3
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
packet.getInventory().setItemInHand(new ItemStack(Material.SMOOTH_BRICK, 1 ,(short) 0));
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));
as.getInventory().setHelmet(new ItemStack(Material.REDSTONE_TORCH_ON, 1, (short) 0));
as.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD);
as.setSmall(true);
aspList.add(as);
as = manager.createArmorStand(obj, lutil.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.setSmall(true);
aspList.add(as);
as = manager.createArmorStand(obj, lutil.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.setSmall(true);
aspList.add(as);
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, .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.setSmall(true);
aspList.add(as);
for(ArmorStandPacket asp : aspList){
asp.setGravity(false);
asp.setInvisible(true);
asp.setBasePlate(false);
}
for(int i = 0; i<=1;i++){
Block b = location.clone().add(0, i, 0).getBlock();
b.setType(Material.BARRIER);
blockList.add(b);
}
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
/*public void addMailbox(Player p) throws MailboxException{
if(Bukkit.getPluginManager().isPluginEnabled("PostalService")){
PostalService.getMailboxManager().addMailboxAtLoc(blockList.get(1).getLocation(), p);
}
}*/
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()) return;
if(!e.canBuild()) return;
if(!e.getID().equals(obj)) return;
if(obj==null){return;}
for(Block b : blockList){
b.setType(Material.AIR);
}
blockList.clear();
e.remove();
obj=null;
}
@EventHandler
private void onInteract(PlayerInteractEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(e.getAction()==null){return;}
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
if(blockList.contains(e.getClickedBlock())){
e.setCancelled(true);
for(Block b : blockList){
b.setType(Material.AIR);
}
blockList.clear();
this.obj.remove(e.getPlayer());
obj=null;
}
}
}
}

View File

@ -0,0 +1,367 @@
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.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.FurnitureBreakEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
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;
public class sunshade implements Listener{
Location loc;
BlockFace b;
World w;
ObjectID obj;
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Plugin plugin;
private String id;
public String getID(){return this.id;}
public ObjectID getObjectID(){return this.obj;}
public Location getLocation(){return this.loc;}
public BlockFace getBlockFace(){return this.b;}
List<Material> matList = Arrays.asList(
Material.SPRUCE_FENCE,
Material.BIRCH_FENCE,
Material.JUNGLE_FENCE,
Material.DARK_OAK_FENCE,
Material.ACACIA_FENCE,
Material.COBBLE_WALL,
Material.NETHER_FENCE);
Material m;
Integer timer;
Block block;
public sunshade(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
this.loc.setYaw(location.getYaw());
this.w = location.getWorld();
this.manager = lib.getFurnitureManager();
this.lib = lib;
this.plugin = plugin;
if(id!=null){
this.obj = id;
setblock();
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
setblock();
spawn(location);
}
private void setblock(){
Location loc = this.loc.clone();
loc.add(0, 2, 0);
block = loc.getBlock();
block.setType(Material.BARRIER);
}
public void spawn(Location location){
Location center = lutil.getCenter(location).clone();
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
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);
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);
aspacket.getInventory().setHelmet(new ItemStack(Material.CARPET));
aspacket.setName("#TOP#");
asList.add(aspacket);
Location loc = center.clone();
loc.add(0, 0.3, 0);
ItemStack is = new ItemStack(Material.BANNER);
BannerMeta banner = (BannerMeta) is.getItemMeta();
banner.setBaseColor(DyeColor.LIME);
banner.addPattern(new Pattern(DyeColor.YELLOW, PatternType.TRIANGLE_BOTTOM));
banner.addPattern(new Pattern(DyeColor.WHITE, PatternType.TRIANGLE_BOTTOM));
is.setItemMeta(banner);
for(int i = 0; i<=17; i++){
loc.setYaw(i*21);
ArmorStandPacket packet = manager.createArmorStand(obj, 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){
packet.setInvisible(true);
packet.setGravity(false);
packet.setBasePlate(false);
}
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
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{
if(isRunning()){return;}
BannerMeta banner = (BannerMeta) is.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(is);
}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();
}
}
}
private boolean isRunning(){
if(timer!=null)return true;
return false;
}
@EventHandler
private void onInteract(PlayerInteractEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(e.getAction()==null){return;}
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
if(e.getClickedBlock().getLocation().equals(block.getLocation())){
e.setCancelled(true);
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(e.getClickedBlock().getLocation().equals(block.getLocation())){
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;}
BannerMeta banner = (BannerMeta) is.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(is);
}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();
}
}
}
}
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
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);
}
}
}
e.remove();
this.block.setType(Material.AIR);
this.block = null;
manager.remove(obj);
obj=null;
}
private void close(){
timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
@Override
public void run() {
try{
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().startsWith("#ELEMENT#")){
if(!isClose(packet)){
Double x = packet.getAngle(BodyPart.HEAD).getX();
packet.setPose(new EulerAngle(x-.32, 0, 0), BodyPart.HEAD);
}else{
stopTimer();
return;
}
manager.updateFurniture(obj);
}
}
}catch(Exception e){
stopTimer();reset();
}
}
}, 0, 10);
}
private void open(){
timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
@Override
public void run() {
try{
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().startsWith("#ELEMENT#")){
if(!isOpen(packet)){
Double x = packet.getAngle(BodyPart.HEAD).getX();
packet.setPose(new EulerAngle(x+.32, 0, 0), BodyPart.HEAD);
}else{
stopTimer();
return;
}
manager.updateFurniture(obj);
}
}
}catch(Exception e){
stopTimer();reset();
}
}
}, 0, 10);
}
private void reset(){
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(!isOpen(packet)){
packet.setPose(new EulerAngle(-3.054, 0, 0), BodyPart.HEAD);
}
}
manager.updateFurniture(obj);
}
private boolean isClose(ArmorStandPacket packet){
if(packet.getAngle(BodyPart.HEAD).getX()> -3.054){
return false;
}return true;
}
private boolean isOpen(ArmorStandPacket packet){
if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){
return false;
}return true;
}
private boolean isOpen(){
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().startsWith("#ELEMENT#")){
if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){
return false;
}
}
}
return true;
}
private void stopTimer(){
if(timer!=null){
Bukkit.getScheduler().cancelTask(timer);
timer=null;
}
}
}

View File

@ -4,11 +4,11 @@ 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.World;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
@ -18,6 +18,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -34,10 +35,9 @@ public class chair implements Listener{
FurnitureManager manager;
FurnitureLib lib;
LocationUtil lutil;
Integer id;
Plugin plugin;
public chair(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public chair(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -52,6 +52,10 @@ public class chair implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -75,33 +79,34 @@ public class chair implements Listener{
sitz.setYaw(lutil.FaceToYaw(b));
lehne.setYaw(lutil.FaceToYaw(b));
ArmorStandPacket as = manager.createArmorStand(obj, sitz);
ArmorStandPacket as = manager.createArmorStand(obj, sitz.clone());
as.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR));
aspList.add(as);
as = manager.createArmorStand(obj, lehne);
as = manager.createArmorStand(obj, 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);
as = manager.createArmorStand(obj, feet1.clone());
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
aspList.add(as);
as = manager.createArmorStand(obj, feet2);
as = manager.createArmorStand(obj, feet2.clone());
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
aspList.add(as);
as = manager.createArmorStand(obj, feet3);
as = manager.createArmorStand(obj, feet3.clone());
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
aspList.add(as);
as = manager.createArmorStand(obj, feet4);
as = manager.createArmorStand(obj, feet4.clone());
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
aspList.add(as);
as = manager.createArmorStand(obj, sitz.add(0,-.2,0));
id = as.getEntityId();
Location sit = sitz.clone().add(0,-.2,0);
as = manager.createArmorStand(obj, sit.clone());
as.setName("#SITZ#");
aspList.add(as);
for(ArmorStandPacket asp : aspList){
@ -118,15 +123,10 @@ public class chair implements Listener{
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
obj=null;
e.remove();
obj=null;
}
@EventHandler
@ -134,10 +134,18 @@ public class chair implements Listener{
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
ArmorStandPacket packet = manager.getArmorStandPacketByID(id);
if(packet.getPessanger()==null){
packet.setPessanger(e.getPlayer());
packet.update();
ArmorStandPacket packet = null;
for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){
if(as.getName().equalsIgnoreCase("#SITZ#")){
packet=as;
break;
}
}
if(packet!=null){
if(packet.getPessanger()==null){
packet.setPessanger(e.getPlayer());
packet.update();
}
}
}
}

View File

@ -4,7 +4,6 @@ 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.World;
@ -20,6 +19,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -38,7 +38,7 @@ public class lantern implements Listener{
Integer id;
Plugin plugin;
public lantern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public lantern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -54,6 +54,10 @@ public class lantern implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -74,16 +78,16 @@ public class lantern implements Listener{
Location obsidian = center;
Location l = new Location(center.getWorld(), center.getX(), center.getY() -1.43, center.getZ());
obsidian.add(0D, -2.2, 0D);
Location left_down = new Location(obsidian.getWorld(), obsidian.getX()+0.22, obsidian.getY() + .62, obsidian.getZ()+0.22);
Location left_upper = new Location(obsidian.getWorld(), obsidian.getX() -0.21, obsidian.getY() + .62, obsidian.getZ() +0.22);
Location right_upper = new Location(obsidian.getWorld(), obsidian.getX()-0.21, obsidian.getY()+.62, obsidian.getZ()-0.21);
Location right_down = new Location(obsidian.getWorld(), obsidian.getX()+0.21, obsidian.getY() + .62, obsidian.getZ() -0.21);
Location left_down = new Location(obsidian.getWorld(), obsidian.getX()+.21, obsidian.getY() + .62, obsidian.getZ()+.21);
Location left_upper = new Location(obsidian.getWorld(), obsidian.getX() -.21, obsidian.getY() + .62, obsidian.getZ() +.21);
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);
asp.getInventory().setHelmet(new ItemStack(Material.OBSIDIAN));
aspList.add(asp);
asp = manager.createArmorStand(obj, l.add(0,0,0));
asp = manager.createArmorStand(obj, lutil.getRelativ(l.clone(), b, 0D, 0.01D));
asp.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE));
aspList.add(asp);
@ -130,14 +134,9 @@ public class lantern implements Listener{
if(e.isCancelled()) return;
if(block==null) return;
if(!e.getID().equals(obj)) return;
if(!e.canBuild(null)) return;
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
block.setType(Material.AIR);
manager.remove(obj);
if(!e.canBuild()) return;
e.remove();
block.setType(Material.AIR);
}
@EventHandler
@ -146,7 +145,7 @@ public class lantern implements Listener{
if(e.isCancelled()) return;
if(block==null) return;
if(!e.getID().equals(obj)) return;
if(!e.canBuild(null)) return;
if(!e.canBuild()) return;
Player p = e.getPlayer();
ItemStack is = p.getItemInHand();
if(is.getType().equals(Material.FLINT_AND_STEEL)){

View File

@ -20,6 +20,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -39,7 +40,7 @@ public class largeTable implements Listener{
Integer id;
Plugin plugin;
public largeTable(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public largeTable(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -61,10 +62,13 @@ public class largeTable implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
List<Integer> tellerIDs = new ArrayList<Integer>();
public void spawn(Location loc){
@ -200,12 +204,8 @@ public class largeTable implements Listener{
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
for(Integer id : tellerIDs){
ArmorStandPacket asp = manager.getArmorStandPacketByID(id);
if(asp!=null&&asp.getInventory().getItemInHand()!=null){
@ -216,7 +216,6 @@ public class largeTable implements Listener{
}
}
e.remove();
manager.remove(obj);
obj=null;
}
@ -228,7 +227,7 @@ public class largeTable implements Listener{
e.setCancelled(true);
final Player p = e.getPlayer();
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
ItemStack is = p.getItemInHand();
Integer Amount = is.getAmount();
List<ArmorStandPacket> asp = manager.getArmorStandPacketByObjectID(obj);
@ -239,7 +238,7 @@ public class largeTable implements Listener{
if(Amount>0){
ItemStack is2 = packet.getInventory().getHelmet();
if(is2.getDurability()!=color){
if(p.getGameMode().equals(GameMode.SURVIVAL)){Amount=Amount-1;}
if(p.getGameMode().equals(GameMode.SURVIVAL) || !lib.useGamemode()){Amount=Amount-1;}
is2.setDurability(color);
packet.getInventory().setHelmet(is2);
}
@ -247,19 +246,19 @@ public class largeTable implements Listener{
}
}
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer o = Amount;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack itemStack = p.getItemInHand();
itemStack.setAmount(o);
p.getInventory().setItem(i, itemStack);
p.updateInventory();
}
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer o = Amount;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack itemStack = p.getItemInHand();
itemStack.setAmount(o);
p.getInventory().setItem(i, itemStack);
p.updateInventory();
return;
}else{
if(!e.canBuild(null)) return;
if(!e.canBuild()) return;
setTeller(e.getPlayer(), e.getPlayer().getInventory().getItemInHand());
}
}
@ -292,15 +291,14 @@ public class largeTable implements Listener{
IS.setAmount(1);
as.getInventory().setItemInHand(IS);
if(!player.getGameMode().equals(GameMode.CREATIVE)){
Integer i = player.getInventory().getHeldItemSlot();
ItemStack itemstack = is.clone();
itemstack.setAmount(itemstack.getAmount()-1);
player.getInventory().setItem(i, itemstack);
player.updateInventory();
}
manager.updateFurniture(obj);
if(player.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer i = player.getInventory().getHeldItemSlot();
ItemStack itemstack = is.clone();
itemstack.setAmount(itemstack.getAmount()-1);
player.getInventory().setItem(i, itemstack);
player.updateInventory();
}
public HashMap<Integer, ItemStack> getTeller(){

View File

@ -19,6 +19,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -38,7 +39,7 @@ public class sofa implements Listener {
Integer id;
Plugin plugin;
public sofa(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public sofa(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -53,6 +54,10 @@ public class sofa implements Listener {
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
place = .3;
spawn(location);
@ -105,12 +110,10 @@ public class sofa implements Listener {
for(Double i = .0; i<=lengt; i+=0.65){
Location carpet = lutil.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.getInventory().setHelmet(is);
asp.setName(s);
@ -177,7 +180,7 @@ public class sofa implements Listener {
e.setCancelled(true);
final Player p = e.getPlayer();
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
Boolean canBuild = lib.canBuild(p, e.getLocation());
Material m = Material.CARPET;
color(p, canBuild, m);
}else{
@ -213,37 +216,33 @@ public class sofa implements Listener {
short color = lutil.getFromDey(is.getDurability());
for(ArmorStandPacket packet : asp){
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
if(Amount>0){
ItemStack is2 = packet.getInventory().getHelmet();
if(is2.getDurability() != color){
is2.setDurability(color);
packet.getInventory().setHelmet(is2);
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
}
}
}
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getPessanger()!=null){
packet.unleash();
@ -251,7 +250,6 @@ public class sofa implements Listener {
}
}
e.remove();
manager.remove(obj);
obj=null;
}
}

View File

@ -19,6 +19,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -38,7 +39,7 @@ public class table implements Listener {
Integer id;
Plugin plugin;
public table(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public table(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -53,10 +54,13 @@ public class table implements Listener {
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
public void spawn(Location loc){
List<ArmorStandPacket> packetL = new ArrayList<ArmorStandPacket>();
Location middle1 = lutil.getCenter(loc);
@ -94,15 +98,9 @@ public class table implements Listener {
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().equalsIgnoreCase("#ITEM#")){
if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){
@ -112,7 +110,6 @@ public class table implements Listener {
}
}
e.remove();
manager.remove(obj);
obj=null;
}
@ -121,7 +118,7 @@ public class table implements Listener {
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
e.setCancelled(true);
Player p = e.getPlayer();
if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;}
@ -133,16 +130,13 @@ public class table implements Listener {
ItemStack is = packet.getInventory().getItemInHand();
w.dropItem(loc, is);
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack is = p.getItemInHand();
is.setAmount(is.getAmount()-1);
p.getInventory().setItem(i, is);
p.updateInventory();
}
packet.getInventory().setItemInHand(Itemstack);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) break;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack is = p.getItemInHand();
is.setAmount(is.getAmount()-1);
p.getInventory().setItem(i, is);
p.updateInventory();
break;
}
}

View File

@ -19,6 +19,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -38,7 +39,7 @@ public class barrels implements Listener {
Block block;
Plugin plugin;
public barrels(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public barrels(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -55,6 +56,10 @@ public class barrels implements Listener {
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -75,7 +80,7 @@ public class barrels implements Listener {
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
e.setCancelled(true);
Player p = e.getPlayer();
if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;}
@ -88,6 +93,13 @@ public class barrels implements Listener {
packet.getInventory().setHelmet(p.getItemInHand());
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.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();
}
@EventHandler
@ -97,7 +109,7 @@ public class barrels implements Listener {
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(), e.getClickedBlock().getLocation(), Material.CAULDRON)){return;}
if(!lib.canBuild(e.getPlayer(), e.getClickedBlock().getLocation())){return;}
Player p = e.getPlayer();
if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){e.getPlayer().sendMessage("03");return;}
e.setCancelled(true);
@ -109,17 +121,16 @@ public class barrels implements Listener {
w.dropItem(loc, is);
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack is = p.getItemInHand();
is.setAmount(is.getAmount()-1);
p.getInventory().setItem(i, is);
p.updateInventory();
}
packet.getInventory().setHelmet(Itemstack);
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.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();
}
@EventHandler
@ -127,12 +138,8 @@ public class barrels implements Listener {
if(obj==null){return;}
if(block==null){return;}
if(!e.getBlock().getLocation().equals(block.getLocation())){return;}
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation(), Material.CAULDRON)){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation())){return;}
ArmorStandPacket packet = manager.getArmorStandPacketByObjectID(obj).get(0);
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){
ItemStack is = packet.getInventory().getHelmet();
w.dropItem(loc, is);
@ -140,7 +147,7 @@ public class barrels implements Listener {
this.block.setType(Material.AIR);
block=null;
manager.remove(obj);
this.obj.remove(e.getPlayer());
obj=null;
}
@ -148,15 +155,10 @@ public class barrels implements Listener {
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
e.remove();
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
obj=null;
block.setType(Material.AIR);
block=null;

View File

@ -3,11 +3,11 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor;
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.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
@ -16,6 +16,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -34,7 +35,7 @@ public class campfire_1 implements Listener{
Integer id;
Plugin plugin;
public campfire_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public campfire_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -49,6 +50,10 @@ public class campfire_1 implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -57,13 +62,15 @@ public class campfire_1 implements Listener{
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
packet.setFire(false);
Location location = this.loc.clone();
location.add(0, 1.2, 0);
lib.getLightManager().removeLight(location);
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
manager.updateFurniture(obj);
e.remove();
obj=null;
}
@ -72,7 +79,7 @@ public class campfire_1 implements Listener{
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
List<ArmorStandPacket> aspList = manager.getArmorStandPacketByObjectID(obj);

View File

@ -10,6 +10,7 @@ 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;
import org.bukkit.inventory.ItemStack;
@ -19,6 +20,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -73,7 +75,7 @@ public class campfire_2 implements Listener{
Integer timer;
ArmorStandPacket armorS;
ItemStack is;
public campfire_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public campfire_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -95,6 +97,10 @@ public class campfire_2 implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -177,7 +183,7 @@ public class campfire_2 implements Listener{
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
List<ArmorStandPacket> aspList = manager.getArmorStandPacketByObjectID(obj);
@ -190,42 +196,56 @@ public class campfire_2 implements Listener{
}
if(itemStack.getType().equals(Material.WATER_BUCKET) && packet.isFire()){
packet.setFire(false);
manager.updateFurniture(obj);
Location loc = middle.clone();
loc.add(0, 1.3, 0);
lib.getLightManager().removeLight(loc);
setfire(false);
}else if(itemStack.getType().equals(Material.FLINT_AND_STEEL) && !packet.isFire()){
packet.setFire(true);
manager.updateFurniture(obj);
Location loc = middle.clone();
loc.add(0, 1.3, 0);
lib.getLightManager().addLight(loc, 15);
setfire(true);
}else if(items.contains(itemStack.getType()) && packet.isFire() && armorS==null){
is = itemStack.clone();
is.setAmount(1);
setGrill();
if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && lib.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 setfire(boolean b){
for(ArmorStandPacket pack : manager.getArmorStandPacketByObjectID(obj)){
if(pack.isMini() && pack.isInvisible()){
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);
return;
}
}
}
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
if(isRunning()){
Bukkit.getScheduler().cancelTask(timer);
timer=null;
w.dropItem(middle.clone().add(0, .5, 0), is);
}
manager.remove(obj);
setfire(false);
e.remove();
obj=null;
}

View File

@ -21,6 +21,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -41,7 +42,7 @@ public class tent_1 implements Listener{
Block block;
Plugin plugin;
public tent_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public tent_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -61,6 +62,10 @@ public class tent_1 implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(loc);
}
@ -260,17 +265,12 @@ public class tent_1 implements Listener{
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
block.setType(Material.AIR);
manager.remove(obj);
obj=null;
e.remove();
obj=null;
}
@EventHandler
@ -283,7 +283,7 @@ public class tent_1 implements Listener{
if(!p.getItemInHand().getType().equals(Material.INK_SACK)){
p.openWorkbench(this.block.getLocation(), true);
}else{
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
Boolean canBuild = lib.canBuild(p, e.getLocation());
Material m = Material.CARPET;
color(p, canBuild, m);
}
@ -293,12 +293,10 @@ public class tent_1 implements Listener{
private void onBlockBreak(BlockBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!lib.canBuild(e.getPlayer(), loc, null)){return;}
if(!lib.canBuild(e.getPlayer(), loc)){return;}
if(obj==null){return;}
if(this.block!=null&&e.getBlock().equals(block)){this.block.setType(Material.AIR);this.block=null;}
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
manager.remove(obj);
this.obj.remove(e.getPlayer());
obj=null;
}
@ -310,23 +308,22 @@ public class tent_1 implements Listener{
short color = lutil.getFromDey(is.getDurability());
for(ArmorStandPacket packet : asp){
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
if(Amount>0){
ItemStack is2 = packet.getInventory().getHelmet();
if(is2.getDurability() != color){
is2.setDurability(color);
packet.getInventory().setHelmet(is2);
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
}
}
}
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
}

View File

@ -22,6 +22,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -44,7 +45,7 @@ public class tent_2 implements Listener{
Plugin plugin;
Location bedLoc;
public tent_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public tent_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -76,6 +77,10 @@ public class tent_2 implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
spawn(location);
}
@ -199,19 +204,14 @@ public class tent_2 implements Listener{
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
for(Block bl : block){
bl.setType(Material.AIR);
}
manager.remove(obj);
obj=null;
e.remove();
obj=null;
}
@EventHandler
@ -221,6 +221,7 @@ public class tent_2 implements Listener{
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
Player p = e.getPlayer();
if(!p.getItemInHand().getType().equals(Material.INK_SACK)){
for(Block b : block){
@ -230,7 +231,7 @@ public class tent_2 implements Listener{
}
}
}else{
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
Boolean canBuild = lib.canBuild(p, e.getLocation());
Material m = Material.CARPET;
color(p, canBuild, m);
}
@ -244,7 +245,7 @@ public class tent_2 implements Listener{
short color = lutil.getFromDey(is.getDurability());
for(ArmorStandPacket packet : asp){
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
if(Amount>0){
ItemStack is2 = packet.getInventory().getHelmet();
if(is2.getDurability() != color){
is2.setDurability(color);
@ -254,13 +255,12 @@ public class tent_2 implements Listener{
}
}
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
}

View File

@ -24,6 +24,7 @@ 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.Events.FurnitureLateSpawnEvent;
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
@ -43,7 +44,7 @@ public class tent_3 implements Listener{
Integer id;
Plugin plugin;
public tent_3(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public tent_3(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -59,6 +60,10 @@ public class tent_3 implements Listener{
return;
}else{
this.obj = new ObjectID(name, plugin.getName(), location);
if(player!=null){
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
}
}
if(b.equals(BlockFace.WEST)){location=lutil.getRelativ(location, b, 1D, 0D);}
if(b.equals(BlockFace.NORTH)){location=lutil.getRelativ(location, b, 1D, 1D);}
@ -174,18 +179,13 @@ public class tent_3 implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.canBuild()){return;}
if(!e.getID().equals(obj)){return;}
if(obj==null){return;}
e.setCancelled(true);
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
bed.setType(Material.AIR);
manager.remove(obj);
obj=null;
e.remove();
obj=null;
}
@EventHandler
@ -196,7 +196,7 @@ public class tent_3 implements Listener{
e.setCancelled(true);
Player p = e.getPlayer();
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
Boolean canBuild = lib.canBuild(p, e.getLocation());
Material m = Material.BANNER;
color(p, canBuild, m);
}else{
@ -216,11 +216,10 @@ public class tent_3 implements Listener{
ItemStack is = p.getItemInHand();
Integer Amount = is.getAmount();
List<ArmorStandPacket> asp = manager.getArmorStandPacketByObjectID(obj);
p.sendMessage(asp.size() + ":" + Amount);
DyeColor change = DyeColor.getByColor(lutil.getDyeFromDurability(is.getDurability()));
for(ArmorStandPacket packet : asp){
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
if(Amount>0){
ItemStack is2 = packet.getInventory().getHelmet();
BannerMeta banner = (BannerMeta) is2.getItemMeta();
DyeColor change2 = banner.getBaseColor();
@ -228,18 +227,17 @@ public class tent_3 implements Listener{
banner.setBaseColor(change);
is2.setItemMeta(banner);
packet.getInventory().setHelmet(is2);
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
}
}
}
}
if(!p.getGameMode().equals(GameMode.CREATIVE)){
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
manager.updateFurniture(obj);
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
Integer i = p.getInventory().getHeldItemSlot();
ItemStack item = p.getItemInHand();
item.setAmount(Amount);
p.getInventory().setItem(i, item);
p.updateInventory();
}
}

View File

@ -1,5 +1,5 @@
name: DiceFurniture
version: 2.0.6
version: 2.0.8.1
description: Furniture
author: Ste3et_C0st
website: http://dicecraft.de