DiceFurniture

This commit is contained in:
BuildTools 2015-07-15 20:52:52 +02:00
parent 981eefc68a
commit 222d3056a5
18 changed files with 340 additions and 139 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>DefaultFurniture</name>
<name>DiceFurniture</name>
<comment></comment>
<projects>
</projects>

View File

@ -5,7 +5,7 @@ Camera:
disable: false
recipe: DXD,AEA,EAE
index:
D: 331
D: 289
E: 280
X: 35
A:
A: 331

View File

@ -1,9 +1,17 @@
package de.Ste3et_C0st.Furniture.Main;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
@ -12,7 +20,7 @@ import de.Ste3et_C0st.Furniture.Objects.electric.tv;
import de.Ste3et_C0st.Furniture.Objects.garden.graveStone;
import de.Ste3et_C0st.Furniture.Objects.indoor.chair;
import de.Ste3et_C0st.Furniture.Objects.indoor.largeTable;
import de.Ste3et_C0st.Furniture.Objects.indoor.latern;
import de.Ste3et_C0st.Furniture.Objects.indoor.lantern;
import de.Ste3et_C0st.Furniture.Objects.indoor.sofa;
import de.Ste3et_C0st.Furniture.Objects.indoor.table;
import de.Ste3et_C0st.Furniture.Objects.outdoor.barrels;
@ -25,6 +33,7 @@ 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;
@ -43,22 +52,26 @@ public class main extends JavaPlugin implements Listener{
manager = lib.getFurnitureManager();
util = lib.getLocationUtil();
Bukkit.getPluginManager().registerEvents(this, this);
manager.addProject(new Project("Camera", new CraftingFile("Camera", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("TV", new CraftingFile("TV", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("GraveStone", new CraftingFile("GraveStone", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Chair", new CraftingFile("Chair", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("LargeTable", new CraftingFile("LargeTable", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Lantern", new CraftingFile("Lantern", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Sofa", new CraftingFile("Sofa", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Table", new CraftingFile("Table", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Barrels", new CraftingFile("Barrels", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Campfire1", new CraftingFile("Campfire1", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Campfire2", new CraftingFile("Campfire2", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Tent1", new CraftingFile("Tent1", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Tent2", new CraftingFile("Tent2", getResource("Crafting/Camera.yml")),this));
manager.addProject(new Project("Tent3", new CraftingFile("Tent3", getResource("Crafting/Camera.yml")),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("Tent3", new CraftingFile("Tent3", getResource("Crafting/Tent3.yml")),this, tent_3.class).setSize(1, 2, 3);
List<ObjectID> objList = new ArrayList<ObjectID>();
for(ObjectID obj : manager.getObjectList()){
if(objList.contains(obj)) continue;
if(!objList.contains(obj)) objList.add(obj);
if(obj.getPlugin().equalsIgnoreCase(this.getName())){
switch (obj.getProject()) {
case "Camera":
@ -77,7 +90,7 @@ public class main extends JavaPlugin implements Listener{
new largeTable(obj.getStartLocation(), lib, "LargeTable", this, obj);
break;
case "Lantern":
new latern(obj.getStartLocation(), lib, "Lantern", this, obj);
new lantern(obj.getStartLocation(), lib, "Lantern", this, obj);
break;
case "Sofa":
new sofa(obj.getStartLocation(), lib, "Sofa", this, obj);
@ -114,6 +127,22 @@ public class main extends JavaPlugin implements Listener{
}
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());
}
}
}
}
}catch(Exception e){}
}
@EventHandler
private void onClick(FurnitureItemEvent e){
if(e.isCancelled()){return;}
@ -123,25 +152,37 @@ public class main extends JavaPlugin implements Listener{
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);
switch(e.getProject().getName()){
case "Camera" : new camera(loc, lib, "Camera", instance, null); return;
case "TV" : new tv(loc, lib, "TV", instance, null); return;
case "GraveStone" : new graveStone(loc, lib, "GraveStone", instance, null); return;
case "Chair" : new chair(loc, lib, "Chair", instance, null); return;
case "LargeTable" : new largeTable(loc, lib, "LargeTable", instance, null); return;
case "Lantern" : new latern(loc, lib, "Lantern", instance, null); return;
case "Sofa" : new sofa(loc, lib, "Sofa", instance, null); return;
case "Table" : new table(loc, lib, "Table", instance, null); return;
case "Barrels" : new barrels(loc, lib, "Barrels", instance, null); return;
case "Campfire1" : new campfire_1(loc, lib, "Campfire1", instance, null); return;
case "Campfire2" : new campfire_2(loc, lib, "Campfire2", instance, null); return;
case "Tent1" : new tent_1(loc, lib, "Tent1", instance, null); return;
case "Tent2" : new tent_2(loc, lib, "Tent2", instance, null); return;
case "Tent3" : new tent_3(loc, lib, "Tent3", instance, null); return;
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);
}
}
public static LocationUtil getLocationUtil(){return util;}
public static Plugin getInstance() {

View File

@ -5,6 +5,7 @@ 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;
@ -55,7 +56,6 @@ public class camera implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -130,7 +130,6 @@ public class camera implements Listener{
}
manager.send(obj);
//lib.saveObjToDB(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@ -139,6 +138,7 @@ public class camera implements Listener{
private void onClick(FurnitureClickEvent e){
if(e.isCancelled()){return;}
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());
@ -163,6 +163,12 @@ public class camera implements Listener{
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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

@ -4,6 +4,7 @@ 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;
@ -50,7 +51,6 @@ public class tv implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -68,8 +68,8 @@ public class tv implements Listener{
Location center = lutil.getCenter(getLocation());
center.add(0, -1.38, 0);
center.setYaw(lutil.FaceToYaw(b));
ArmorStandPacket as = manager.createArmorStand(obj, center);
Location iron = center.clone();
ArmorStandPacket as = manager.createArmorStand(obj, iron);
as.getInventory().setHelmet(new ItemStack(Material.IRON_PLATE));
as.setSmall(true);
aspList.add(as);
@ -121,6 +121,12 @@ public class tv implements Listener{
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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

@ -5,6 +5,7 @@ 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;
@ -45,6 +46,7 @@ public class graveStone implements Listener{
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;}
@ -60,7 +62,6 @@ public class graveStone implements Listener{
if(id!=null){
this.obj = id;
setBlock();
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -84,7 +85,13 @@ public class graveStone implements Listener{
Location kreutz2 = lutil.getRelativ(center, getBlockFace(), -.23, -1.27);
Location sign = lutil.getRelativ(kreutz2.getBlock().getLocation(), b, 0D, 1D);
this.signLoc = sign;
if(!sign.getBlock().getType().equals(Material.WALL_SIGN)){
this.sign = lutil.setSign(b, sign);
}else{
this.sign = sign.getBlock();
}
this.lines = getText();
}
@ -152,15 +159,22 @@ public class graveStone implements Listener{
if(e.isCancelled()) return;
if(!e.canBuild(null)) 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));
sign.setType(Material.AIR);
sign = null;
manager.remove(obj);
obj=null;
e.remove();
}
@EventHandler
private void onBlockRemove(BlockBreakEvent e)
{
if(obj==null){return;}
if (sign==null) return;
if (e.getBlock() == null) return;
if (e.getBlock().getLocation() == null) return;
@ -170,6 +184,7 @@ public class graveStone implements Listener{
@EventHandler
private void onBlockPlaceEvent(BlockPlaceEvent e){
if(obj==null){return;}
if (sign==null) return;
if (e.getBlock() == null) return;
if (e.getBlock().getLocation() == null) return;
@ -179,6 +194,7 @@ public class graveStone implements Listener{
@EventHandler
private void onDrop(ItemSpawnEvent e){
if(obj==null){return;}
if (sign==null) return;
if (e.getLocation() == null) return;
ItemStack is = e.getEntity().getItemStack();
@ -211,6 +227,15 @@ public class graveStone implements Listener{
});
}
public void removeSign(){
if(sign!=null){
sign.setType(Material.AIR);
sign = null;
manager.remove(obj);
obj=null;
}
}
public void readFromBook(ItemStack is){
BookMeta bm = (BookMeta) is.getItemMeta();
if(bm == null){return;}

View File

@ -4,6 +4,7 @@ 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;
@ -47,7 +48,6 @@ public class chair implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -116,15 +116,22 @@ public class chair implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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();
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
ArmorStandPacket packet = manager.getArmorStandPacketByID(id);

View File

@ -4,6 +4,7 @@ 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;
@ -25,7 +26,7 @@ import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
public class latern implements Listener{
public class lantern implements Listener{
Location loc;
BlockFace b;
@ -37,7 +38,7 @@ public class latern implements Listener{
Integer id;
Plugin plugin;
public latern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
public lantern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
this.lutil = main.getLocationUtil();
this.b = lutil.yawToFace(location.getYaw());
this.loc = location.getBlock().getLocation();
@ -49,7 +50,6 @@ public class latern implements Listener{
if(id!=null){
this.obj = id;
setBlock();
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -117,6 +117,7 @@ public class latern implements Listener{
@EventHandler
public void onWaterFlow(BlockFromToEvent e){
if(obj==null){return;}
Location locTo = e.getToBlock().getLocation();
if(loc!=null && locTo.equals(loc.getBlock().getLocation())){
e.setCancelled(true);
@ -125,16 +126,23 @@ public class latern implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
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);
e.remove();
}
@EventHandler
private void onInteract(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()) return;
if(block==null) return;
if(!e.getID().equals(obj)) return;

View File

@ -50,7 +50,13 @@ public class largeTable implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().startsWith("#TELLER")){
tellerIDs.add(packet.getEntityId());
}
}
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -60,7 +66,6 @@ public class largeTable implements Listener{
}
List<Integer> tellerIDs = new ArrayList<Integer>();
List<Integer> plattenIDs = new ArrayList<Integer>();
public void spawn(Location loc){
List<ArmorStandPacket> armorlist = new ArrayList<ArmorStandPacket>();
@ -81,7 +86,6 @@ public class largeTable implements Listener{
as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD);
as.getInventory().setHelmet(iTemStack_1);
armorlist.add(as);
plattenIDs.add(as.getEntityId());
l = lutil.getRelativ(location, this.b, 0.63, x*-.63);
l.add(0,-1.2,0);
@ -90,7 +94,6 @@ public class largeTable implements Listener{
as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD);
as.getInventory().setHelmet(iTemStack_1);
armorlist.add(as);
plattenIDs.add(as.getEntityId());
l = lutil.getRelativ(location, this.b, 1.26, x*-.63);
l.add(0,-1.2,0);
@ -99,7 +102,6 @@ public class largeTable implements Listener{
as.setPose(new EulerAngle(winkel, 0, 0), BodyPart.HEAD);
as.getInventory().setHelmet(iTemStack_1);
armorlist.add(as);
plattenIDs.add(as.getEntityId());
}
Location middle = lutil.getCenter(armorlist.get(0).getLocation());
@ -194,35 +196,16 @@ public class largeTable implements Listener{
}
}
public void setColor(HashMap<Integer, Short> durabilityList){
int i = 0;
for(Integer id : plattenIDs){
ArmorStandPacket as = manager.getArmorStandPacketByID(id);
ItemStack is = as.getInventory().getHelmet();
is.setDurability(durabilityList.get(i));
as.getInventory().setHelmet(is);
i++;
}
}
public HashMap<Integer, Short> getColor(){
HashMap<Integer, Short> colorList = new HashMap<Integer, Short>();
Integer i = 0;
for(Integer id : plattenIDs){
try{i=colorList.size();}catch(Exception e){return colorList;}
ArmorStandPacket as = manager.getArmorStandPacketByID(id);
colorList.put(i, as.getInventory().getHelmet().getDurability());
}
return colorList;
}
@EventHandler
private void onBreak(final FurnitureBreakEvent e){
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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){
@ -232,13 +215,14 @@ public class largeTable implements Listener{
}
}
}
e.remove();
manager.remove(obj);
obj=null;
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
@ -296,13 +280,27 @@ public class largeTable implements Listener{
}
}
}
if(as!=null&&as.getInventory().getItemInHand()!= null && as.getInventory().getItemInHand().equals(is)){return;}
if(as.getInventory().getItemInHand()!=null&&!as.getInventory().getItemInHand().getType().equals(Material.AIR)){
ArmorStandPacket asp = as;
asp.getLocation().getWorld().dropItem(asp.getLocation(), asp.getInventory().getItemInHand());
}
as.getInventory().setItemInHand(is);
as.update();
ItemStack IS = is.clone();
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);
}
public HashMap<Integer, ItemStack> getTeller(){

View File

@ -49,7 +49,6 @@ public class sofa implements Listener {
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -102,12 +101,19 @@ public class sofa implements Listener {
carpetHight = lutil.getRelativ(carpetHight, b, .25,.3);
Double d = .02;
float facing = lutil.FaceToYaw(b);
Integer j = 0;
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);
aspList.add(asp);
sitz.add(asp);
Location location = lutil.getRelativ(carpetHight, b, place-.25,(double) d);
@ -116,9 +122,11 @@ public class sofa implements Listener {
asp = manager.createArmorStand(obj, location);
asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD);
asp.getInventory().setHelmet(is);
asp.setName(s);
aspList.add(asp);
if(d<=0D){d = 0.00;}
d+=.58;
j++;
}
Float yaw1= facing;
@ -131,11 +139,13 @@ public class sofa implements Listener {
asp = manager.createArmorStand(obj, first.add(0,-.05,0));
asp.getInventory().setHelmet(is);
asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD);
asp.setName("#SITZPOS:1#");
aspList.add(asp);
asp = manager.createArmorStand(obj, last.add(0,-.05,0));
asp.getInventory().setHelmet(is);
asp.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD);
asp.setName("#SITZPOS:3#");
aspList.add(asp);
Location start = lutil.getRelativ(looking, b, .45, .55);
@ -145,7 +155,7 @@ public class sofa implements Listener {
location.setYaw(lutil.FaceToYaw(b));
location.add(0,.2,0);
asp = manager.createArmorStand(obj, location);
asp.setName("#SITZ#");
asp.setName("#SITZ" + i + "#");
aspList.add(asp);
}
@ -161,6 +171,7 @@ public class sofa implements Listener {
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
@ -170,15 +181,29 @@ public class sofa implements Listener {
Material m = Material.CARPET;
color(p, canBuild, m);
}else{
ArmorStandPacket packet = e.getArmorStandPacket();
switch (packet.getName()) {
case "#SITZPOS:1#": sit("#SITZ0#", p);break;
case "#SITZPOS:2#": sit("#SITZ1#", p);break;
case "#SITZPOS:3#": sit("#SITZ2#", p);break;
case "#SITZ0#" : sit("#SITZ0#", p);break;
case "#SITZ1#" : sit("#SITZ1#", p);break;
case "#SITZ2#" : sit("#SITZ2#", p);break;
default: sit("#SITZ0#", p);break;
}
}
}
private void sit(String s, Player p){
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
if(packet.getName().equalsIgnoreCase("#SITZ#") && packet.getPessanger() == null){
if(packet.getName().equalsIgnoreCase(s) && packet.getPessanger() == null){
packet.setPessanger(p);
packet.update();
return;
}
}
}
}
private void color(Player p, boolean canBuild, Material m){
if(!canBuild){return;}
@ -210,16 +235,22 @@ public class sofa implements Listener {
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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();
packet.update();
}
}
e.remove();
manager.remove(obj);
obj=null;
}

View File

@ -49,7 +49,6 @@ public class table implements Listener {
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -71,11 +70,13 @@ public class table implements Listener {
asp = manager.createArmorStand(obj, middle2.add(0,-1.05,0));
asp.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR));
packetL.add(asp);
asp = manager.createArmorStand(obj, l.add(.9,0.15,0.3));
Location locatio = l.clone().add(0.9,0.15,0.3);
asp = manager.createArmorStand(obj, locatio);
asp.setName("#ITEM#");
asp.setPose(new EulerAngle(.0,.0,.0), BodyPart.RIGHT_ARM);
asp.setPose(new EulerAngle(0.0,0.0,0.0), BodyPart.RIGHT_ARM);
packetL.add(asp);
asp = manager.createArmorStand(obj, l.add(0,-.65,.68));
locatio = locatio.clone().add(0,-0.65,0.68);
asp = manager.createArmorStand(obj, locatio);
asp.getInventory().setItemInHand(new ItemStack(Material.STICK));
asp.setPose(new EulerAngle(1.38,.0,.0), BodyPart.RIGHT_ARM);
packetL.add(asp);
@ -91,11 +92,17 @@ public class table implements Listener {
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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)){
@ -104,13 +111,14 @@ public class table implements Listener {
}
}
}
e.remove();
manager.remove(obj);
obj=null;
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.canBuild(null)){return;}
@ -135,10 +143,9 @@ public class table implements Listener {
}
packet.getInventory().setItemInHand(Itemstack);
packet.update();
return;
break;
}
}
manager.updateFurniture(obj);
}
}

View File

@ -51,7 +51,6 @@ public class barrels implements Listener {
this.obj = id;
this.block = loc.getBlock();
this.block.setType(Material.CAULDRON);
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -73,6 +72,7 @@ public class barrels implements Listener {
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
if(!e.canBuild(null)){return;}
@ -87,12 +87,14 @@ public class barrels implements Listener {
packet.getInventory().setHelmet(p.getItemInHand());
packet.update();
manager.updateFurniture(obj);
}
@EventHandler
private void onInteract(PlayerInteractEvent e){
if(block==null){return;}
if(obj==null){return;}
if(block==null || obj==null){return;}
if(e.getClickedBlock()==null){return;}
if(!e.getClickedBlock().getLocation().equals(block.getLocation())){return;}
if(!e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){return;}
if(!lib.canBuild(e.getPlayer(), e.getClickedBlock().getLocation(), Material.CAULDRON)){return;}
@ -117,15 +119,20 @@ public class barrels implements Listener {
packet.getInventory().setHelmet(Itemstack);
packet.update();
manager.updateFurniture(obj);
}
@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(), Material.CAULDRON)){return;}
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
}
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);
@ -139,10 +146,16 @@ public class barrels implements Listener {
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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);

View File

@ -3,6 +3,7 @@ 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;
@ -44,7 +45,6 @@ public class campfire_1 implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -55,15 +55,22 @@ public class campfire_1 implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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);
e.remove();
obj=null;
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.getID().equals(obj)){return;}
@ -73,7 +80,7 @@ public class campfire_1 implements Listener{
if(is.getType().equals(Material.WATER_BUCKET)){
for(ArmorStandPacket packet : aspList){
packet.setFire(false);
Location location = this.loc;
Location location = this.loc.clone();
location.add(0, 1.2, 0);
lib.getLightManager().removeLight(location);
}
@ -81,7 +88,7 @@ public class campfire_1 implements Listener{
}else if(is.getType().equals(Material.FLINT_AND_STEEL)){
for(ArmorStandPacket packet : aspList){
packet.setFire(true);
Location location = this.loc;
Location location = this.loc.clone();
location.add(0, 1.2, 0);
lib.getLightManager().addLight(location,15);
}

View File

@ -5,6 +5,7 @@ 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;
@ -90,7 +91,6 @@ public class campfire_2 implements Listener{
if(id!=null){
this.obj = id;
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -175,6 +175,7 @@ public class campfire_2 implements Listener{
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){return;}
if(!e.getID().equals(obj)){return;}
@ -210,16 +211,22 @@ public class campfire_2 implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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);
e.remove();
obj=null;
}

View File

@ -57,7 +57,6 @@ public class tent_1 implements Listener{
if(id!=null){
this.obj = id;
setblock();
this.manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -259,17 +258,24 @@ public class tent_1 implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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();
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);
@ -285,9 +291,13 @@ public class tent_1 implements Listener{
@EventHandler
private void onBlockBreak(BlockBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!lib.canBuild(e.getPlayer(), loc, null)){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);
obj=null;
}

View File

@ -59,8 +59,19 @@ public class tent_2 implements Listener{
if(id!=null){
this.obj = id;
setBlock();
this.manager.send(obj);
Bukkit.broadcastMessage(b.name());
Location loca = loc.clone();
switch (b) {
case NORTH: loca=lutil.getRelativ(loca, b, -1D, -1D); break;
case EAST: loca=lutil.getRelativ(loca, b, 0D, -1D); break;
case WEST: loca=lutil.getRelativ(loca, b, -1D, 0D); break;
default:break;
}
setBlock(loca);
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -130,16 +141,16 @@ public class tent_2 implements Listener{
packet.setInvisible(true);
packet.setGravity(false);
}
setBlock();
setBlock(this.loc);
manager.send(obj);
Bukkit.getPluginManager().registerEvents(this, plugin);
}
@SuppressWarnings("deprecation")
public void setBlock(){
Location loc = this.loc.clone();
public void setBlock(Location loc){
Location b1 = lutil.getRelativ(loc, b, 1D, -2D).add(0, 0, 0);
Location b2 = lutil.getRelativ(loc, b, 2D, -3D).add(0, 0, 0);
if(!b2.getBlock().getType().equals(Material.CHEST)){
b2.setYaw(lutil.FaceToYaw(b));
b2.getBlock().setType(Material.CHEST);
BlockState chest = b2.getBlock().getState();
@ -160,6 +171,10 @@ public class tent_2 implements Listener{
}
chest.update(true, true);
}
bedLoc = lutil.setBed(this.b, b1);
block.add(b1.getWorld().getBlockAt(b1));
@ -182,19 +197,26 @@ public class tent_2 implements Listener{
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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();
}
@EventHandler
private void onClick(final FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);

View File

@ -54,7 +54,7 @@ public class tent_3 implements Listener{
this.plugin = plugin;
if(id!=null){
this.obj = id;
this.manager.send(obj);
setBlock();
Bukkit.getPluginManager().registerEvents(this, plugin);
return;
}else{
@ -154,7 +154,7 @@ public class tent_3 implements Listener{
as.setName("#SITZ#");
aspL.add(as);
bed = lutil.setHalfBed(b, lutil.getRelativ(sit.add(0,-2,0).getBlock().getLocation().add(0,2,0), b, 2D, 0D));
setBlock();
for(ArmorStandPacket packet : aspL){
packet.setInvisible(true);
@ -165,19 +165,32 @@ public class tent_3 implements Listener{
Bukkit.getPluginManager().registerEvents(this, plugin);
}
private void setBlock(){
Location sit = lutil.getCenter(loc);
sit.setYaw(lutil.FaceToYaw(this.b.getOppositeFace()));
bed = lutil.setHalfBed(b, lutil.getRelativ(sit.add(0,-2,0).getBlock().getLocation().add(0,2,0), b, 2D, 0D));
}
@EventHandler
private void onBreak(FurnitureBreakEvent e){
if(e.isCancelled()){return;}
if(!e.canBuild(null)){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();
}
@EventHandler
private void onClick(FurnitureClickEvent e){
if(obj==null){return;}
if(e.isCancelled()){return;}
if(!e.getID().equals(obj)){return;}
e.setCancelled(true);

View File

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