This commit is contained in:
BuildTools 2017-10-28 18:54:21 +02:00
parent e79674efcc
commit 0a4155a2d6
23 changed files with 423 additions and 62 deletions

View File

@ -5,5 +5,6 @@
<classpathentry kind="lib" path="C:/Plugins/jars/FurnitureLib.jar"/>
<classpathentry kind="lib" path="C:/Plugins/jars/PostalService-1.0.6.jar"/>
<classpathentry kind="lib" path="C:/Plugins/jars/spigot.jar"/>
<classpathentry kind="lib" path="C:/Plugins/jars/ProtocolLib.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

View File

@ -5,7 +5,7 @@ AdventCalender:
glow: true
lore: ''
crafting:
disable: false
disable: true
recipe: XXX,XEX,AXA
index:
E: 126

View File

@ -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

27
src/Models/Log.yml Normal file
View File

@ -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

View File

@ -67,4 +67,22 @@ MaterialData:
- HAY_BLOCK
- HARD_CLAY
- COAL_BLOCK
- PACKED_ICE
- 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

View File

@ -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;
}
}

View File

@ -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){
}
}
}

View File

@ -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<ItemStack> isList = new ArrayList<ItemStack>();
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<String> 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<inv.getSize();i++){
if(i==2){
inv.addItem(isList.get(j));
continue;
}else if(i==6){
inv.addItem(permissions);
continue;
}
inv.setItem(i,pane);
}
p.openInventory(inv);
}
@EventHandler
private void onClick(InventoryClickEvent e){
if(getObjID()==null){return;}
if(getObjID().getSQLAction().equals(SQLAction.REMOVE)){return;}
if(e.getClickedInventory()==null||!e.getClickedInventory().equals(inv)){return;}
e.setCancelled(true);
if(e.getCurrentItem()==null){return;}
if(e.getCurrentItem().getType().equals(Material.BANNER)){
Integer i = isList.indexOf(e.getCurrentItem());
ItemStack is = null;
if(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;}
}
}

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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]);

View File

@ -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<Block> blockLocation = new ArrayList<Block>();
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);

View File

@ -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();}
}
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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() {

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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

View File

@ -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<fArmorStand> list){

View File

@ -48,6 +48,7 @@ public class tent_3 extends Furniture implements Listener{
Block bed;
@SuppressWarnings("deprecation")
public void spawn(Location loc){
List<fArmorStand> aspL = new ArrayList<fArmorStand>();
ItemStack banner = new ItemStack(Material.BANNER);

View File

@ -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