From 0a4155a2d64bdcfbbee5d491f884eac1aa7cebaf Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 28 Oct 2017 18:54:21 +0200 Subject: [PATCH] Update --- .classpath | 1 + src/Crafting/AdventCalender.yml | 2 +- src/Crafting/log.yml | 13 - src/Models/Log.yml | 27 ++ src/config.yml | 20 +- .../Furniture/Camera/Utils/GetBlocks.java | 19 +- .../Furniture/Camera/Utils/RenderClass.java | 8 +- src/de/Ste3et_C0st/Furniture/Main/Log.java | 281 ++++++++++++++++++ src/de/Ste3et_C0st/Furniture/Main/main.java | 28 +- .../Furniture/Objects/RPG/Crossbow.java | 6 +- .../Objects/christmas/AdventCalender.java | 2 +- .../Objects/christmas/AdventWreath.java | 2 +- .../Furniture/Objects/electric/billboard.java | 6 +- .../Furniture/Objects/electric/camera.java | 2 +- .../{Main => Objects/garden}/config.java | 2 +- .../Furniture/Objects/garden/fance.java | 3 +- .../Furniture/Objects/garden/graveStone.java | 16 + .../Furniture/Objects/garden/log.java | 6 +- .../Furniture/Objects/light/WaxCandle.java | 2 +- .../Furniture/Objects/outdoor/campfire_2.java | 32 +- .../Furniture/Objects/outdoor/tent_2.java | 4 +- .../Furniture/Objects/outdoor/tent_3.java | 1 + src/plugin.yml | 2 +- 23 files changed, 423 insertions(+), 62 deletions(-) delete mode 100644 src/Crafting/log.yml create mode 100644 src/Models/Log.yml create mode 100644 src/de/Ste3et_C0st/Furniture/Main/Log.java rename src/de/Ste3et_C0st/Furniture/{Main => Objects/garden}/config.java (93%) diff --git a/.classpath b/.classpath index e642996..c4e2311 100644 --- a/.classpath +++ b/.classpath @@ -5,5 +5,6 @@ + diff --git a/src/Crafting/AdventCalender.yml b/src/Crafting/AdventCalender.yml index d1a5094..179019d 100644 --- a/src/Crafting/AdventCalender.yml +++ b/src/Crafting/AdventCalender.yml @@ -5,7 +5,7 @@ AdventCalender: glow: true lore: '' crafting: - disable: false + disable: true recipe: XXX,XEX,AXA index: E: 126 diff --git a/src/Crafting/log.yml b/src/Crafting/log.yml deleted file mode 100644 index b9b88c0..0000000 --- a/src/Crafting/log.yml +++ /dev/null @@ -1,13 +0,0 @@ -Log: - system-ID: 'Log' - name: '&cLog' - material: 383 - glow: false - lore: '' - crafting: - disable: false - recipe: XXX,XAX,XOX - index: - X: 0 - A: 389 - O: 17 \ No newline at end of file diff --git a/src/Models/Log.yml b/src/Models/Log.yml new file mode 100644 index 0000000..429775d --- /dev/null +++ b/src/Models/Log.yml @@ -0,0 +1,27 @@ +log_copy: + system-ID: 'Log' + name: '&cLog' + creator: ff5f37d0-c1ea-4736-b6c3-ebbfdd67a810 + material: 383 + glow: false + lore: '' + PlaceAbleSide: TOP + crafting: + disable: false + recipe: XXX,XAX,XOX + index: + X: 0 + A: 389 + O: 17 + ProjectModels: + ArmorStands: + '0': H4sIAAAAAAAAAI1RsU7DMBC9Kknrhh9gZkdiYA9p6ySVmqRqKmi6VAa5VYSTSEloxScwMtKf6cYXIFbYmdmxG7sKQghueu/d3fPd2QTQ4CggKb1MyuSaUQBoadDtkZKOGakE5xVGlBLGaqw7SSFl3S7SsobdYbZuOrR9UtzSok52XJZvkmwlmAkmvmO0sLMVoyagEXamixF229Ca7R7f3JOXiwXHMcjgeK503qx72B6I2kb+W63CoLztib/3fr46/ngYr394S11498JB/E/v7mToegdz6/NJxPbvBrmp9cumSt938JPSrMqLewRG38PRFPQgDDCqj6BIJ3Qczw4OHPn2MGgKOn8zOhAHY+kDnImfh9aZuFV+Q6okz9qAZqfhclnSave6FMEHQ3MlvatZUSwlS0oGaDHZ9M8F/gJD9mIfVwIAAA== + '1': H4sIAAAAAAAAAI2RvU7DMBSFb5WkTcMLMLN3QGJgC2nr/EhNUiUVNF0qg9wqwk2kJLTiERh5oqoLMwNihYmFl8Bu7KgIIfB0zmff4+trA0CBowCvyGVapteUAHDS7eOSjCmuhNfiFaa01qqdFgKrVrEqRYWXrZuElgJtHxe3pKg3Ow7NN2m25M4AA91RUljZkhID9BGyJ/MRctrQmm4f35yTl4s50wmIxfRMclasusga8rMH+9/OSg0y24r8ffbT1fHnw3j9I1twnt0Ph8k/s7uR57hNuPm8i857Jfm7QLzU/OWlku8r2EhJVuXFvQ7awEXxBNQgDJBeD0GaTmjbrhU0XvctLzgEKrszboyNkMgB5vjPQ+uUzyq/wVWaZ23Qp71wsShJtX1d8MUa02cCmR8NSiR6r9vXQEnwZnDG9RdgNVz5VwIAAA== + '2': H4sIAAAAAAAAAI1RwU7CQBAdQoGl/oBn71yMB2+4wLYlgZa0RCkXspotady2SVshfoJHv4h48aQ341XuXv0Ad+m2YozROb33ZubtzKwOUIcDm0bsPMzCS84ApNLu0YxNOM0Vb3gR5bzAmhGmStZwGmWqYxivKodaHZpjml6ztEi2TJ6sw3gpmQ46ueEsxfGSMx3QiBjTxYiYTajNNvdv5tHL2UJgH1QIPC910axZBA9k7V7+W22JofTG7njn/Xhx+H43Wf3wVrr07jkD/5/ebXdoWl/m2wf3tJOxvxvUpt1fNi31XYc4KYvzJL1F0OhbxJuCZjs2QcURStJyDMPCdsXRGA/tfUETb3oVMQhRPiCY/HmoHctbJVc0D5O4CWjWcYIgY/nmNZAhBkNzJXU/nkQ8S8kvq7bF+A2o+3TdP5H4EylzY6tXAgAA + Block: + '0': + X-Offset: 0.0 + Y-Offset: 0.0 + Z-Offset: 0.0 + Type: LOG + Data: 0 diff --git a/src/config.yml b/src/config.yml index 860249d..d4312a9 100644 --- a/src/config.yml +++ b/src/config.yml @@ -67,4 +67,22 @@ MaterialData: - HAY_BLOCK - HARD_CLAY - COAL_BLOCK - - PACKED_ICE \ No newline at end of file + - PACKED_ICE + - WHITE_GLAZED_TERRACOTTA + - ORANGE_GLAZED_TERRACOTTA + - MAGENTA_GLAZED_TERRACOTTA + - LIGHT_BLUE_GLAZED_TERRACOTTA + - YELLOW_GLAZED_TERRACOTTA + - LIME_GLAZED_TERRACOTTA + - PINK_GLAZED_TERRACOTTA + - GRAY_GLAZED_TERRACOTTA + - SILVER_GLAZED_TERRACOTTA + - CYAN_GLAZED_TERRACOTTA + - PURPLE_GLAZED_TERRACOTTA + - BLUE_GLAZED_TERRACOTTA + - BROWN_GLAZED_TERRACOTTA + - GREEN_GLAZED_TERRACOTTA + - RED_GLAZED_TERRACOTTA + - BLACK_GLAZED_TERRACOTTA + - CONCRETE + - CONCRETE_POWDER \ No newline at end of file diff --git a/src/de/Ste3et_C0st/Furniture/Camera/Utils/GetBlocks.java b/src/de/Ste3et_C0st/Furniture/Camera/Utils/GetBlocks.java index 4812edd..d4f7e9a 100644 --- a/src/de/Ste3et_C0st/Furniture/Camera/Utils/GetBlocks.java +++ b/src/de/Ste3et_C0st/Furniture/Camera/Utils/GetBlocks.java @@ -1,10 +1,10 @@ package de.Ste3et_C0st.Furniture.Camera.Utils; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Random; +import org.apache.commons.lang.reflect.MethodUtils; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; @@ -39,6 +39,7 @@ public class GetBlocks { } return layerList; }catch(Exception ex){ + ex.printStackTrace(); return null; } } @@ -46,16 +47,16 @@ public class GetBlocks { public Byte getByteFromBlock(Block b){ try { Object o = CraftMagicNumbersClass.getMethod("getBlock", org.bukkit.block.Block.class).invoke(null, b); - Object o2 = o.getClass().getMethod("getBlockData").invoke(o); - Method g = o2.getClass().getMethod("g"); - g.setAccessible(true); - Object o3 = g.invoke(o2); - int color = o3.getClass().getField("M").getInt(o3) * 4 + 0; - if(color == 28){ - color += randInt(0, 3); - } + Object iBlockData = o.getClass().getMethod("getBlockData").invoke(o); + Object Material = MethodUtils.invokeMethod(iBlockData, "getMaterial", null); + Object MaterialMapColor = MethodUtils.invokeMethod(Material, "r", null); + int color = MaterialMapColor.getClass().getField("ad").getInt(MaterialMapColor) * 4; +// if(color == 28){ +// color += randInt(0, 3); +// } return (byte) color; } catch (Exception e) { + //e.printStackTrace(); return 0; } } diff --git a/src/de/Ste3et_C0st/Furniture/Camera/Utils/RenderClass.java b/src/de/Ste3et_C0st/Furniture/Camera/Utils/RenderClass.java index d434856..7c20442 100644 --- a/src/de/Ste3et_C0st/Furniture/Camera/Utils/RenderClass.java +++ b/src/de/Ste3et_C0st/Furniture/Camera/Utils/RenderClass.java @@ -77,8 +77,12 @@ public class RenderClass extends MapRenderer { for(Pixel p : l.getPixelList()){ Byte b = p.getColor(); if(b == 0) continue; - Color c = MapPalette.getColor(p.getColor()); - image.setRGB(p.getX(), p.getZ(), c.getRGB()); + try{ + Color c = MapPalette.getColor(p.getColor()); + image.setRGB(p.getX(), p.getZ(), c.getRGB()); + }catch(Exception ex){ + + } } } diff --git a/src/de/Ste3et_C0st/Furniture/Main/Log.java b/src/de/Ste3et_C0st/Furniture/Main/Log.java new file mode 100644 index 0000000..ba36ead --- /dev/null +++ b/src/de/Ste3et_C0st/Furniture/Main/Log.java @@ -0,0 +1,281 @@ +package de.Ste3et_C0st.Furniture.Main; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.entity.ArmorStand; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import de.Ste3et_C0st.FurnitureLib.Crafting.Project; +import de.Ste3et_C0st.FurnitureLib.ShematicLoader.Events.ProjectBreakEvent; +import de.Ste3et_C0st.FurnitureLib.ShematicLoader.Events.ProjectClickEvent; +import de.Ste3et_C0st.FurnitureLib.Utilitis.HiddenStringUtils; +import de.Ste3et_C0st.FurnitureLib.Utilitis.ManageInv; +import de.Ste3et_C0st.FurnitureLib.main.FurnitureHelper; +import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib; +import de.Ste3et_C0st.FurnitureLib.main.ObjectID; +import de.Ste3et_C0st.FurnitureLib.main.Type.SQLAction; +import de.Ste3et_C0st.FurnitureLib.main.entity.fEntity; + +public class Log extends FurnitureHelper implements Listener{ + + private int mode = 0; + private Inventory inv = Bukkit.createInventory(null, 9, "§2Settings"); + private ItemStack pane = new ItemStack(Material.STAINED_GLASS_PANE); + private ItemStack permissions = new ItemStack(Material.ARROW); + private Player p; + private List isList = new ArrayList(); + + public Log(ObjectID id) { + super(id); + Bukkit.getPluginManager().registerEvents(this, main.instance); + setList(); + for(fEntity entity : getObjID().getPacketList()){ + entity.setNameVasibility(false); + } + update(); + } + + @EventHandler + private void onBlockBreak(ProjectBreakEvent e){ + if(e.getID() == null || getObjID() == null) return; + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + } + + @SuppressWarnings("deprecation") + @EventHandler + private void onBlockBreak(ProjectClickEvent e){ + if(e.getID() == null || getObjID() == null) return; + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + if(e.getPlayer().isSneaking()){ + if(e.getPlayer().getInventory().getItemInMainHand().getType().isBlock()&& + !e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.AIR)){ + e.setCancelled(false); + return; + } + openInventory(e.getPlayer()); + }else{ + if(e.getPlayer().getInventory().getItemInMainHand().getType().isBlock() && !e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.AIR)){ + getCenter().getBlock().setType(e.getPlayer().getInventory().getItemInMainHand().getType()); + getCenter().getBlock().setData((byte) e.getPlayer().getInventory().getItemInMainHand().getDurability()); + removeItem(e.getPlayer()); + return; + }else if(!e.getPlayer().getInventory().getItemInMainHand().getType().isBlock() && !e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.AIR)){ + fEntity stand = null; + if(getProjectByItem(e.getPlayer().getInventory().getItemInMainHand()) != null){return;} + for(fEntity s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + if(stand==null){return;} + if(stand.getInventory().getItemInMainHand()!=null&&!stand.getInventory().getItemInMainHand().getType().equals(Material.AIR)){ + if(e.getPlayer().getInventory().getItemInMainHand()!=null){ + if(e.getPlayer().getInventory().getItemInMainHand().equals(stand.getItemInMainHand())){ + return; + } + } + ItemStack is = stand.getInventory().getItemInMainHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + + ItemStack is = e.getPlayer().getInventory().getItemInMainHand().clone(); + is.setAmount(1); + stand.setItemInHand(is); + update(); + removeItem(e.getPlayer()); + return; + }else{ + fEntity stand = null; + for(fEntity s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + if(stand==null){return;} + + if(stand.getInventory().getItemInMainHand()!=null&&!stand.getInventory().getItemInMainHand().getType().equals(Material.AIR)){ + for(fEntity s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(mode+"")){ + stand = s; + break; + } + } + + ItemStack is = stand.getInventory().getItemInMainHand(); + is.setAmount(1); + getWorld().dropItem(getLocation(), is); + } + + stand.setItemInHand(new ItemStack(Material.AIR)); + update(); + return; + } + } + } + + private void setList(){ + ItemStack stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 1); + ItemMeta meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cTop"); + stack.setItemMeta(meta); + isList.add(stack); + stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 2); + meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cFront I"); + stack.setItemMeta(meta); + isList.add(stack); + stack = new ItemStack(Material.BANNER); + stack.setDurability((short) 11); + meta = stack.getItemMeta(); + meta.setDisplayName("§6Mode: §cFront II"); + stack.setItemMeta(meta); + isList.add(stack); + + meta = permissions.getItemMeta(); + meta.setDisplayName("§cChange Permissions (Owner Only)"); + permissions.setItemMeta(meta); + } + + private Project getProjectByItem(ItemStack is){ + ItemStack stack = is.clone(); + if(stack==null) return null; + String systemID = ""; + if(stack.hasItemMeta()){ + if(stack.getItemMeta().hasLore()){ + List s = stack.getItemMeta().getLore(); + if(HiddenStringUtils.hasHiddenString(s.get(0))) systemID = HiddenStringUtils.extractHiddenString(s.get(0)); + } + } + + for(Project pro : FurnitureLib.getInstance().getFurnitureManager().getProjects()){ + if(pro==null) continue; + if(pro.getSystemID()==null) continue; + if(pro.getSystemID().equalsIgnoreCase(systemID)){ + return pro; + } + } + return null; + } + + public void removeItem(Player p){ + Boolean useGameMode = FurnitureLib.getInstance().useGamemode(); + if(useGameMode&&p.getGameMode().equals(GameMode.CREATIVE)){return;} + Integer slot = p.getInventory().getHeldItemSlot(); + ItemStack itemStack = p.getInventory().getItemInMainHand().clone(); + itemStack.setAmount(itemStack.getAmount()-1); + p.getInventory().setItem(slot, itemStack); + p.updateInventory(); + } + + private void openInventory(Player p){ + if(this.p !=null) return; + this.p = p; + inv.clear(); + int j = mode; + for(int i = 0; i=2){i = -1;} + i++; + is = isList.get(i); + mode = i; + modeSwitch(e.getCurrentItem().getDurability()); + inv.setItem(e.getSlot(), is); + p.updateInventory(); + }else if(e.getCurrentItem().getType().equals(Material.ARROW)){ + if(!getObjID().getUUID().equals(p.getUniqueId())){ + if(!getLib().getPermission().hasPerm(p, "furniture.admin") && !p.isOp() && !getLib().getPermission().hasPerm(p, "furniture.manage.other")){ + return; + } + } + p.closeInventory(); + new ManageInv((Player) e.getWhoClicked(), getObjID()); + } + } + + public void modeSwitch(short dura){ + int oldArmorStand = 0; + int currentArmorStand = 0; + + switch (dura) { + case 1: + oldArmorStand = 0; + currentArmorStand = 1; + break; + case 2: + oldArmorStand = 1; + currentArmorStand = 2; + break; + case 11: + oldArmorStand = 2; + currentArmorStand = 0; + break; + } + + fEntity standOld = null; + fEntity standCurrent = null; + for(fEntity s : getObjID().getPacketList()){ + if(s.getName().equalsIgnoreCase(oldArmorStand+"")){ + standOld=s; + }else if(s.getName().equalsIgnoreCase(currentArmorStand+"")){ + standCurrent=s; + } + } + + if(standOld!=null&&standCurrent!=null){ + standCurrent.setItemInMainHand(standOld.getItemInMainHand()); + standOld.setItemInMainHand(new ItemStack(Material.AIR)); + update(); + } + } + + @EventHandler + public void onClose(InventoryCloseEvent e){ + if(getObjID()==null){return;} + if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;} + if(e.getInventory()==null){return;} + if(e.getInventory().equals(inv)){this.p = null;} + } + + +} diff --git a/src/de/Ste3et_C0st/Furniture/Main/main.java b/src/de/Ste3et_C0st/Furniture/Main/main.java index 048450e..ed1b67d 100644 --- a/src/de/Ste3et_C0st/Furniture/Main/main.java +++ b/src/de/Ste3et_C0st/Furniture/Main/main.java @@ -1,5 +1,9 @@ package de.Ste3et_C0st.Furniture.Main; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,6 +31,7 @@ import de.Ste3et_C0st.Furniture.Objects.electric.camera; import de.Ste3et_C0st.Furniture.Objects.electric.streetlamp; import de.Ste3et_C0st.Furniture.Objects.garden.TFlowerPot; import de.Ste3et_C0st.Furniture.Objects.garden.Trunk; +import de.Ste3et_C0st.Furniture.Objects.garden.config; import de.Ste3et_C0st.Furniture.Objects.garden.fance; import de.Ste3et_C0st.Furniture.Objects.garden.graveStone; import de.Ste3et_C0st.Furniture.Objects.garden.log; @@ -82,7 +87,6 @@ public class main extends JavaPlugin implements Listener{ new Project("Billboard", this, getResource("Crafting/Billboard.yml"),PlaceableSide.TOP, billboard.class).setSize(1, 3, 3, CenterType.RIGHT); new Project("WeaponStand", this, getResource("Crafting/WeaponStand.yml"),PlaceableSide.TOP, weaponStand.class).setSize(1, 1, 1, CenterType.RIGHT); new Project("Guillotine", this, getResource("Crafting/guillotine.yml"),PlaceableSide.TOP, guillotine.class).setSize(1, 5, 2, CenterType.RIGHT); - new Project("Log", this, getResource("Crafting/log.yml"), PlaceableSide.TOP, log.class).setSize(1, 1, 1, CenterType.RIGHT); new Project("FlowerPot", this, getResource("Crafting/FlowerPot.yml"),PlaceableSide.BOTTOM, TFlowerPot.class).setSize(1, 1, 1, CenterType.RIGHT); new Project("BearTrap", this, getResource("Crafting/BearTrap.yml"), PlaceableSide.TOP, BearTrap.class).setSize(1, 1, 1, CenterType.RIGHT); new Project("TrashCan", this, getResource("Crafting/TrashCan.yml"), PlaceableSide.TOP, TrashCan.class).setSize(1, 1, 1, CenterType.RIGHT); @@ -120,8 +124,10 @@ public class main extends JavaPlugin implements Listener{ new Project("Crossbow", this, getResource("Models/Crossbow.yml")).setSize(1, 1, 1, CenterType.RIGHT).setEditorProject(false); new Project("Tent1", this,getResource("Models/Tent1.yml")).setSize(4, 3, 5, CenterType.RIGHT).setEditorProject(false); new Project("GraveStone", this,getResource("Models/GraveStone.yml")).setSize(1, 2, 3, CenterType.CENTER).setEditorProject(false); - new Project("Camera", this, getResource("Models/Camera.yml")).setSize(1, 1, 1, CenterType.RIGHT).setEditorProject(true); - new Project("Sofa", this, getResource("Models/Sofa.yml")).setSize(1, 1, 3, CenterType.RIGHT).setEditorProject(true); + new Project("Camera", this, getResource("Models/Camera.yml")).setSize(1, 1, 1, CenterType.RIGHT).setEditorProject(false); + new Project("Sofa", this, getResource("Models/Sofa.yml")).setSize(1, 1, 3, CenterType.RIGHT).setEditorProject(false); + new Project("Log", this, getResource("Models/Log.yml")).setSize(1, 1, 1, CenterType.CENTER).setEditorProject(false); + addDefault("fence", "whiteList", "config.yml"); addDefault("bearTrap", "damage", "damage.yml"); addDefault("catapult", "range", "range.yml"); @@ -141,14 +147,24 @@ public class main extends JavaPlugin implements Listener{ } } - @SuppressWarnings("deprecation") private void addDefault(String a, String b, String d){ c = new config(); this.file = c.getConfig(b, "plugin/"+a+"/"); - this.file.addDefaults(YamlConfiguration.loadConfiguration(getResource(d))); + this.file.addDefaults(YamlConfiguration.loadConfiguration(loadStream(d))); this.file.options().copyDefaults(true); this.c.saveConfig(b, this.file, "plugin/"+a+"/"); } + + public BufferedReader loadStream(String str){ + if(!str.startsWith("/")) str = "/" + str; + InputStream stream = getInstance().getClass().getResourceAsStream(str); + try { + return new BufferedReader(new InputStreamReader(stream, "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return null; + } + } private void setDefaults_2(){ c = new config(); @@ -203,6 +219,7 @@ public class main extends JavaPlugin implements Listener{ case "Tent1": new tent_1(id);break; case "GraveStone": new graveStone(id);break; case "Camera": new camera(id);break; + case "Log": new Log(id);break; default:break; } } @@ -227,6 +244,7 @@ public class main extends JavaPlugin implements Listener{ case "Tent1": new tent_1(event.getID());break; case "GraveStone": new graveStone(event.getID());break; case "Camera": new camera(event.getID());break; + case "Log": new Log(event.getID());break; default:break; } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java b/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java index 99e2372..b09103e 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/RPG/Crossbow.java @@ -81,10 +81,10 @@ public class Crossbow extends FurnitureHelper implements Listener { } public Vector getLaunchVector(BlockFace face){ - int j = random(75, 45), l =random(150, 80); - double k = ((double) j / 100), h = ((double) l / 100); + int l =random(300, 150); + double h = ((double) l / 100); - Vector v = new Vector(0, k, h); + Vector v = new Vector(0, 0, h); switch (face) { case SOUTH:v= new Vector(-v.getY(), v.getY(), -v.getZ());break; case EAST: v= new Vector(-v.getZ(), v.getY(), -v.getY());break; diff --git a/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventCalender.java b/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventCalender.java index 742c98f..f28315d 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventCalender.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventCalender.java @@ -43,7 +43,7 @@ import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder; import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; -import de.Ste3et_C0st.Furniture.Main.config; +import de.Ste3et_C0st.Furniture.Objects.garden.config; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent; import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent; import de.Ste3et_C0st.FurnitureLib.main.Furniture; diff --git a/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventWreath.java b/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventWreath.java index 84fbf08..8cc7459 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventWreath.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/christmas/AdventWreath.java @@ -55,7 +55,7 @@ public class AdventWreath extends Furniture implements Listener { if(e.getID() == null || getObjID() == null) return; if(!e.getID().equals(getObjID())){return;} if(!e.canBuild()){return;} - fArmorStand stand = e.getfArmorStand(); + fArmorStand stand = (fArmorStand) e.getfEntity(); String str = stand.getName(); if(str.startsWith("Fire") || str.startsWith("Torch")){ int i = Integer.parseInt(str.split(":")[1]); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java index ac83ae0..c3b4097 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/billboard.java @@ -6,6 +6,7 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.entity.ItemFrame; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -72,7 +73,7 @@ public class billboard extends Furniture implements Listener{ packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM); asList.add(packet); } - + List blockLocation = new ArrayList(); for(int x = 0; x<=1;x++){ for(int y = 0;y<=2;y++){ Location loc = getLutil().getRelativ(location, getBlockFace(),0D,(double) -y-1).add(0, x+1, 0); @@ -80,9 +81,10 @@ public class billboard extends Furniture implements Listener{ loc.getBlock().setType(Material.BARRIER); ItemFrame frame = (ItemFrame) getWorld().spawn(loc2, ItemFrame.class); frame.setFacingDirection(getBlockFace()); + blockLocation.add(loc.getBlock()); } } - + getObjID().addBlock(blockLocation); for(fArmorStand pack : asList){ pack.setInvisible(true); pack.setBasePlate(false); diff --git a/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java b/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java index 17023af..d518122 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/electric/camera.java @@ -107,7 +107,7 @@ public class camera extends FurnitureHelper implements Listener{ Location l = getLocation().clone(); l.setYaw(getLutil().FaceToYaw(getBlockFace().getOppositeFace())); view.getRenderers().clear(); - try{view.addRenderer(new RenderClass(l, mode));}catch (Exception ex){} + try{view.addRenderer(new RenderClass(l, mode));}catch (Exception ex){ex.printStackTrace();} } } } diff --git a/src/de/Ste3et_C0st/Furniture/Main/config.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/config.java similarity index 93% rename from src/de/Ste3et_C0st/Furniture/Main/config.java rename to src/de/Ste3et_C0st/Furniture/Objects/garden/config.java index 7215754..52b053f 100644 --- a/src/de/Ste3et_C0st/Furniture/Main/config.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/config.java @@ -1,4 +1,4 @@ -package de.Ste3et_C0st.Furniture.Main; +package de.Ste3et_C0st.Furniture.Objects.garden; import java.io.File; import java.io.IOException; diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java index 6eea11a..462fa58 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/fance.java @@ -4,6 +4,7 @@ import java.util.Arrays; import java.util.List; import org.bukkit.Bukkit; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; @@ -34,7 +35,7 @@ public class fance extends FurnitureHelper implements Listener{ @EventHandler public void onClick(ProjectClickEvent e){ if(!e.getID().equals(getObjID())){return;} - Block b = getWorld().getBlockAt(e.getID().getBlockList().get(0)); + Block b = getWorld().getBlockAt(getObjID().getBlockList().toArray(new Location[getObjID().getBlockList().size()])[0]); ItemStack stack = e.getPlayer().getInventory().getItemInMainHand(); if(stack==null) return; if(stack.getType().equals(Material.AIR)) return; diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java index d13ddf4..66f5eaa 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/graveStone.java @@ -10,6 +10,7 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; import org.bukkit.block.Sign; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; @@ -17,6 +18,7 @@ import org.bukkit.inventory.meta.BookMeta; import de.Ste3et_C0st.Furniture.Main.main; import de.Ste3et_C0st.FurnitureLib.ShematicLoader.Events.ProjectBreakEvent; +import de.Ste3et_C0st.FurnitureLib.ShematicLoader.Events.ProjectClickEvent; import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil; import de.Ste3et_C0st.FurnitureLib.main.FurnitureHelper; import de.Ste3et_C0st.FurnitureLib.main.ObjectID; @@ -68,6 +70,20 @@ public class graveStone extends FurnitureHelper implements Listener{ sign.setType(Material.AIR); } } + + @EventHandler + private void onBlockClick(ProjectClickEvent e){ + if(e.getID() == null || getObjID() == null) return; + if(!e.getID().equals(getObjID())){return;} + if(!e.canBuild()){return;} + Player p = e.getPlayer(); + if(!e.getID().equals(getObjID())) return; + if(!e.canBuild()){return;} + ItemStack is = p.getInventory().getItemInMainHand(); + if (is == null) return; + if (!is.getType().equals(Material.WRITTEN_BOOK)) return; + readFromBook(is); + } public void resetSign(){ Bukkit.getScheduler().scheduleSyncDelayedTask(getPlugin(), new Runnable() { diff --git a/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java b/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java index 22c3fc5..78e6f73 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/garden/log.java @@ -46,13 +46,13 @@ public class log extends Furniture { public log(ObjectID id){ super(id); b = getLocation().getBlock(); - getObjID().addBlock(Arrays.asList(b)); ItemMeta meta = pane.getItemMeta(); meta.setDisplayName("§c"); pane.setItemMeta(meta); pane.setDurability((short) 15); pane.setItemMeta(meta); setList(); + getObjID().addBlock(Arrays.asList(b)); if(isFinish()){ Bukkit.getPluginManager().registerEvents(this, main.getInstance()); return; @@ -115,7 +115,7 @@ public class log extends Furniture { lStand.add(stand); for(fArmorStand asp : lStand){ - asp.setInvisible(true); + asp.setInvisible(false); asp.setBasePlate(false); asp.setMarker(false); } @@ -161,7 +161,7 @@ public class log extends Furniture { p.updateInventory(); }else if(e.getCurrentItem().getType().equals(Material.ARROW)){ if(!getObjID().getUUID().equals(p.getUniqueId())){ - if(!getLib().hasPerm(p, "furniture.admin") && !p.isOp() && !getLib().hasPerm(p, "furniture.manage.other")){ + if(!getLib().getPermission().hasPerm(p, "furniture.admin") && !p.isOp() && !getLib().getPermission().hasPerm(p, "furniture.manage.other")){ return; } } diff --git a/src/de/Ste3et_C0st/Furniture/Objects/light/WaxCandle.java b/src/de/Ste3et_C0st/Furniture/Objects/light/WaxCandle.java index b4b77e5..c6f904f 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/light/WaxCandle.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/light/WaxCandle.java @@ -35,7 +35,7 @@ public class WaxCandle extends FurnitureHelper implements Listener{ @EventHandler public void onClick(ProjectClickEvent e){ if(!e.getID().equals(getObjID())){return;} - Block b = getWorld().getBlockAt(e.getID().getBlockList().get(0)); + Block b = getWorld().getBlockAt(getObjID().getBlockList().toArray(new Location[getObjID().getBlockList().size()])[0]); ItemStack stack = e.getPlayer().getInventory().getItemInMainHand(); if(stack==null) return; if(stack.getType().equals(Material.AIR)) return; diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java index adfa70e..958b324 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/campfire_2.java @@ -138,7 +138,7 @@ public class campfire_2 extends Furniture implements Listener{ asp.getInventory().setItemInMainHand(new ItemStack(Material.BONE)); packetList.add(asp); - asp = getManager().createArmorStand(getObjID(), middle.add(0,-1.3,0)); + asp = getManager().createArmorStand(getObjID(), middle.add(0,.1,0)); asp.setSmall(true); packetList.add(asp); @@ -187,24 +187,26 @@ public class campfire_2 extends Furniture implements Listener{ } private void setfire(boolean b){ - for(fEntity pack : getManager().getfArmorStandByObjectID(getObjID())){ - if(pack instanceof fArmorStand){ - fArmorStand stand = (fArmorStand) pack; - if(stand.isSmall() && pack.isInvisible()){ - if((pack.getInventory().getHelmet() == null || pack.getInventory().getHelmet().getType().equals(Material.AIR)) && - (pack.getInventory().getItemInMainHand() == null || pack.getInventory().getItemInMainHand().getType().equals(Material.AIR))){ - pack.setFire(b); - Location loc = middle.clone(); - loc.add(0, 1.3, 0); - if(b) getLib().getLightManager().addLight(loc, 15); - if(!b) getLib().getLightManager().removeLight(loc); - getManager().updateFurniture(getObjID()); - return; + Location loc = getCenter().clone(); + loc.add(0, 1.3, 0); + if(b){ + getLib().getLightManager().addLight(loc, 15); + }else{ + getLib().getLightManager().removeLight(loc); + } + + for(fEntity entity : getfAsList()){ + if(entity instanceof fArmorStand){ + fArmorStand stand = (fArmorStand) entity; + if((stand.getInventory().getHelmet() == null || stand.getInventory().getHelmet().getType().equals(Material.AIR)) && + (stand.getInventory().getItemInMainHand() == null || stand.getInventory().getItemInMainHand().getType().equals(Material.AIR))){ + if(stand.isSmall() && entity.isInvisible()){ + stand.setFire(b); } - } } } + update(); } @EventHandler diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java index 0e4e859..9cec304 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_2.java @@ -157,8 +157,10 @@ public class tent_2 extends Furniture implements Listener{ bedLoc = getLutil().setBed(this.getBlockFace(), b1); getObjID().addBlock(Arrays.asList(b1.getBlock(), b2.getBlock(), b1.getBlock().getRelative(getLutil().yawToFace(getLutil().FaceToYaw(getBlockFace()) + 180)))); - block.add(b1.getWorld().getBlockAt(b1)); + block.add(b1.getWorld().getBlockAt(getRelative(b1, 1, 0))); block.add(b2.getWorld().getBlockAt(b2)); + block.add(b1.getWorld().getBlockAt(b1)); + } public void setRow(Location loc, double x,double y, double z, int replay, EulerAngle angle, List list){ diff --git a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java index 9f83e8d..08c1d10 100644 --- a/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java +++ b/src/de/Ste3et_C0st/Furniture/Objects/outdoor/tent_3.java @@ -48,6 +48,7 @@ public class tent_3 extends Furniture implements Listener{ Block bed; + @SuppressWarnings("deprecation") public void spawn(Location loc){ List aspL = new ArrayList(); ItemStack banner = new ItemStack(Material.BANNER); diff --git a/src/plugin.yml b/src/plugin.yml index 1aa3569..db12f74 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,5 +1,5 @@ name: DiceFurniture -version: 3.2.0.5 +version: 3.2.1.2 description: Add some new Objects to the Server author: Ste3et_C0st website: http://dicecraft.de