mirror of https://github.com/Ste3et/furniture.git
DiceFurniture
This commit is contained in:
parent
222d3056a5
commit
3af153b756
|
@ -0,0 +1,8 @@
|
|||
Billboard:
|
||||
name: '&cBillboard'
|
||||
material: 383
|
||||
crafting:
|
||||
disable: true
|
||||
recipe: XXX,XXX,XXX
|
||||
index:
|
||||
X: 0
|
|
@ -0,0 +1,11 @@
|
|||
Mailbox:
|
||||
name: '&cMailBox'
|
||||
material: 383
|
||||
crafting:
|
||||
disable: false
|
||||
recipe: ADA,0X0,0X0
|
||||
index:
|
||||
'0': 0
|
||||
X: 280
|
||||
A: 1
|
||||
D: 54
|
|
@ -0,0 +1,10 @@
|
|||
Streetlamp:
|
||||
name: '&cStreetlamp'
|
||||
material: 383
|
||||
crafting:
|
||||
disable: false
|
||||
recipe: 0XX,0AX,00X
|
||||
index:
|
||||
'0': 0
|
||||
X: 280
|
||||
A: 123
|
|
@ -0,0 +1,10 @@
|
|||
Sunshade:
|
||||
name: '&cSunshade'
|
||||
material: 383
|
||||
crafting:
|
||||
disable: false
|
||||
recipe: AAA,0X0,0X0
|
||||
index:
|
||||
'0': 0
|
||||
X: 280
|
||||
A: 171
|
|
@ -0,0 +1,10 @@
|
|||
Fence:
|
||||
name: '&cFence'
|
||||
material: 383
|
||||
crafting:
|
||||
disable: false
|
||||
recipe: 000,XAX,XAX
|
||||
index:
|
||||
'0': 0
|
||||
A: 280
|
||||
X: 1
|
112
src/config.yml
112
src/config.yml
|
@ -1,37 +1,75 @@
|
|||
config:
|
||||
# Needs Vualt (optional)
|
||||
UseMetrics: true
|
||||
CraftingPermissions: true
|
||||
BreakPermissions: true
|
||||
CreativeItems: true
|
||||
CreativeStorage: true
|
||||
Messages:
|
||||
NoPermissions: "&cYou don't have permission to do that"
|
||||
notFound: "&cFurniture not found"
|
||||
PlayerNotFound: "&cPlayer not found"
|
||||
ArmorStandsKills: "&6@ARMORSTANDS ArmorStands removed from @WOLRDS worlds"
|
||||
ArmorStandsRemoveFromDistance: "@ARMORSTANDS &2Furniture removed"
|
||||
ArmorStandsRemoveFromID: "&9Furniture [&cnot#&2successful] &9removed"
|
||||
ArmorStandsRemoveFromType: "&9Furniture [&cnot#&2successful] &9removed"
|
||||
CommandBadArguments: "&cBadArguments"
|
||||
Space: "&aNot Enough Space"
|
||||
Protection:
|
||||
Towny:
|
||||
OnlyOwner: false
|
||||
HookIFExist: true
|
||||
WorldGuard:
|
||||
HookIFExist: true
|
||||
LandLord:
|
||||
HookIFExist: true
|
||||
PlotME:
|
||||
HookIFExist: true
|
||||
PlotSquared:
|
||||
HookIFExist: true
|
||||
PreciousStones:
|
||||
HookIFExist: true
|
||||
Residence:
|
||||
HookIFExist: true
|
||||
GriefPrevention:
|
||||
HookIFExist: true
|
||||
Plotz:
|
||||
HookIFExist: true
|
||||
Material:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- 7
|
||||
- 12
|
||||
- 13
|
||||
- 14
|
||||
- 15
|
||||
- 16
|
||||
- 17
|
||||
- 18
|
||||
- 19
|
||||
- 20
|
||||
- 21
|
||||
- 22
|
||||
- 24
|
||||
- 25
|
||||
- 29
|
||||
- 33
|
||||
- 35
|
||||
- 41
|
||||
- 42
|
||||
- 45
|
||||
- 46
|
||||
- 47
|
||||
- 48
|
||||
- 49
|
||||
- 52
|
||||
- 56
|
||||
- 57
|
||||
- 58
|
||||
- 61
|
||||
- 73
|
||||
- 79
|
||||
- 80
|
||||
- 81
|
||||
- 82
|
||||
- 84
|
||||
- 86
|
||||
- 87
|
||||
- 88
|
||||
- 89
|
||||
- 91
|
||||
- 95
|
||||
- 97
|
||||
- 98
|
||||
- 99
|
||||
- 100
|
||||
- 103
|
||||
- 110
|
||||
- 112
|
||||
- 121
|
||||
- 123
|
||||
- 129
|
||||
- 133
|
||||
- 137
|
||||
- 138
|
||||
- 152
|
||||
- 153
|
||||
- 155
|
||||
- 158
|
||||
- 159
|
||||
- 161
|
||||
- 162
|
||||
- 165
|
||||
- 168
|
||||
- 169
|
||||
- 170
|
||||
- 172
|
||||
- 173
|
||||
- 174
|
||||
- 179
|
|
@ -15,7 +15,7 @@ public class config
|
|||
|
||||
public config()
|
||||
{
|
||||
this.path = "plugins/Furniture/";
|
||||
this.path = "plugins/FurnitureLib/";
|
||||
}
|
||||
|
||||
public FileConfiguration createConfig(String name, String Folder)
|
||||
|
|
|
@ -2,22 +2,28 @@ package de.Ste3et_C0st.Furniture.Main;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Objects.electric.billboard;
|
||||
import de.Ste3et_C0st.Furniture.Objects.electric.camera;
|
||||
import de.Ste3et_C0st.Furniture.Objects.electric.streetlamp;
|
||||
import de.Ste3et_C0st.Furniture.Objects.electric.tv;
|
||||
import de.Ste3et_C0st.Furniture.Objects.garden.fance;
|
||||
import de.Ste3et_C0st.Furniture.Objects.garden.graveStone;
|
||||
import de.Ste3et_C0st.Furniture.Objects.garden.mailBox;
|
||||
import de.Ste3et_C0st.Furniture.Objects.garden.sunshade;
|
||||
import de.Ste3et_C0st.Furniture.Objects.indoor.chair;
|
||||
import de.Ste3et_C0st.Furniture.Objects.indoor.largeTable;
|
||||
import de.Ste3et_C0st.Furniture.Objects.indoor.lantern;
|
||||
|
@ -33,7 +39,6 @@ import de.Ste3et_C0st.FurnitureLib.Crafting.CraftingFile;
|
|||
import de.Ste3et_C0st.FurnitureLib.Crafting.Project;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureItemEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
|
@ -42,9 +47,12 @@ public class main extends JavaPlugin implements Listener{
|
|||
|
||||
FurnitureLib lib;
|
||||
FurnitureManager manager;
|
||||
config c;
|
||||
FileConfiguration file;
|
||||
static main instance;
|
||||
static LocationUtil util;
|
||||
|
||||
public static List<Material> materialWhiteList = new ArrayList<Material>();
|
||||
@SuppressWarnings("unused")
|
||||
public void onEnable(){
|
||||
if(!Bukkit.getPluginManager().isPluginEnabled("FurnitureLib")){Bukkit.getPluginManager().disablePlugin(this);}
|
||||
instance = this;
|
||||
|
@ -53,20 +61,25 @@ public class main extends JavaPlugin implements Listener{
|
|||
util = lib.getLocationUtil();
|
||||
Bukkit.getPluginManager().registerEvents(this, this);
|
||||
|
||||
new Project("Camera", new CraftingFile("Camera", getResource("Crafting/Camera.yml")),this, camera.class).setSize(1, 2, 1);
|
||||
new Project("TV", new CraftingFile("TV", getResource("Crafting/TV.yml")),this, tv.class).setSize(1, 2, 1);
|
||||
new Project("GraveStone", new CraftingFile("GraveStone", getResource("Crafting/GraveStone.yml")),this, graveStone.class).setSize(1, 2, 1);
|
||||
new Project("Chair", new CraftingFile("Chair", getResource("Crafting/Chair.yml")),this, chair.class).setSize(1, 1, 1);
|
||||
new Project("LargeTable", new CraftingFile("LargeTable", getResource("Crafting/LargeTable.yml")),this, largeTable.class).setSize(3, 1, 3);
|
||||
new Project("Lantern", new CraftingFile("Lantern", getResource("Crafting/Lantern.yml")),this, lantern.class).setSize(1, 1, 1);
|
||||
new Project("Sofa", new CraftingFile("Sofa", getResource("Crafting/Sofa.yml")),this, sofa.class).setSize(1, 2, 1);
|
||||
new Project("Table", new CraftingFile("Table", getResource("Crafting/Table.yml")),this, table.class).setSize(1, 1, 1);
|
||||
new Project("Barrels", new CraftingFile("Barrels", getResource("Crafting/Barrels.yml")),this, barrels.class).setSize(1,1,1);
|
||||
new Project("Campfire1", new CraftingFile("Campfire1", getResource("Crafting/Campfire1.yml")),this, campfire_1.class).setSize(1, 1, 1);
|
||||
new Project("Campfire2", new CraftingFile("Campfire2", getResource("Crafting/Campfire2.yml")),this, campfire_2.class).setSize(2, 1, 2);
|
||||
new Project("Tent1", new CraftingFile("Tent1", getResource("Crafting/Tent1.yml")),this, tent_1.class).setSize(5, 3, 4);
|
||||
new Project("Tent2", new CraftingFile("Tent2", getResource("Crafting/Tent2.yml")),this, tent_2.class).setSize(6, 3, 4);
|
||||
new Project("Camera", new CraftingFile("Camera", getResource("Crafting/Camera.yml")),this, camera.class);
|
||||
new Project("TV", new CraftingFile("TV", getResource("Crafting/TV.yml")),this, tv.class);
|
||||
new Project("GraveStone", new CraftingFile("GraveStone", getResource("Crafting/GraveStone.yml")),this, graveStone.class);
|
||||
new Project("Chair", new CraftingFile("Chair", getResource("Crafting/Chair.yml")),this, chair.class);
|
||||
new Project("LargeTable", new CraftingFile("LargeTable", getResource("Crafting/LargeTable.yml")),this, largeTable.class).setSize(2, 1, 2);
|
||||
new Project("Lantern", new CraftingFile("Lantern", getResource("Crafting/Lantern.yml")),this, lantern.class);
|
||||
new Project("Sofa", new CraftingFile("Sofa", getResource("Crafting/Sofa.yml")),this, sofa.class).setSize(0, 1, 2);
|
||||
new Project("Table", new CraftingFile("Table", getResource("Crafting/Table.yml")),this, table.class);
|
||||
new Project("Barrels", new CraftingFile("Barrels", getResource("Crafting/Barrels.yml")),this, barrels.class);
|
||||
new Project("Campfire1", new CraftingFile("Campfire1", getResource("Crafting/Campfire1.yml")),this, campfire_1.class);
|
||||
new Project("Campfire2", new CraftingFile("Campfire2", getResource("Crafting/Campfire2.yml")),this, campfire_2.class).setSize(1, 1, 1);
|
||||
new Project("Tent1", new CraftingFile("Tent1", getResource("Crafting/Tent1.yml")),this, tent_1.class).setSize(3, 4, 4);
|
||||
new Project("Tent2", new CraftingFile("Tent2", getResource("Crafting/Tent2.yml")),this, tent_2.class).setSize(3, 3, 5);
|
||||
new Project("Tent3", new CraftingFile("Tent3", getResource("Crafting/Tent3.yml")),this, tent_3.class).setSize(1, 2, 3);
|
||||
new Project("Fence", new CraftingFile("Fence", getResource("Crafting/fence.yml")), this, fance.class);
|
||||
new Project("Sunshade", new CraftingFile("Sunshade", getResource("Crafting/Sunshade.yml")), this, sunshade.class);
|
||||
new Project("Streetlamp", new CraftingFile("Streetlamp", getResource("Crafting/Streetlamp.yml")), this, sunshade.class);
|
||||
new Project("Billboard", new CraftingFile("Billboard", getResource("Crafting/Billboard.yml")), this, billboard.class);
|
||||
new Project("Mailbox", new CraftingFile("Mailbox", getResource("Crafting/Mailbox.yml")), this, mailBox.class);
|
||||
|
||||
List<ObjectID> objList = new ArrayList<ObjectID>();
|
||||
for(ObjectID obj : manager.getObjectList()){
|
||||
|
@ -74,113 +87,114 @@ public class main extends JavaPlugin implements Listener{
|
|||
if(!objList.contains(obj)) objList.add(obj);
|
||||
if(obj.getPlugin().equalsIgnoreCase(this.getName())){
|
||||
switch (obj.getProject()) {
|
||||
case "Camera":
|
||||
new camera(obj.getStartLocation(), lib, "Camera", this, obj);
|
||||
break;
|
||||
case "TV":
|
||||
new tv(obj.getStartLocation(), lib, "TV", this, obj);
|
||||
break;
|
||||
case "GraveStone":
|
||||
new graveStone(obj.getStartLocation(), lib, "GraveStone", this, obj);
|
||||
break;
|
||||
case "Chair":
|
||||
new chair(obj.getStartLocation(), lib, "Chair", this, obj);
|
||||
break;
|
||||
case "LargeTable":
|
||||
new largeTable(obj.getStartLocation(), lib, "LargeTable", this, obj);
|
||||
break;
|
||||
case "Lantern":
|
||||
new lantern(obj.getStartLocation(), lib, "Lantern", this, obj);
|
||||
break;
|
||||
case "Sofa":
|
||||
new sofa(obj.getStartLocation(), lib, "Sofa", this, obj);
|
||||
break;
|
||||
case "Table":
|
||||
new table(obj.getStartLocation(), lib, "Table", this, obj);
|
||||
break;
|
||||
case "Barrels":
|
||||
new barrels(obj.getStartLocation(), lib, "Barrels", this, obj);
|
||||
break;
|
||||
case "Campfire1":
|
||||
new campfire_1(obj.getStartLocation(), lib, "Campfire1", this, obj);
|
||||
break;
|
||||
case "Campfire2":
|
||||
new campfire_2(obj.getStartLocation(), lib, "Campfire2", this, obj);
|
||||
break;
|
||||
case "Tent1":
|
||||
new tent_1(obj.getStartLocation(), lib, "Tent1", this, obj);
|
||||
break;
|
||||
case "Tent2":
|
||||
new tent_2(obj.getStartLocation(), lib, "Tent2", this, obj);
|
||||
break;
|
||||
case "Tent3":
|
||||
new tent_3(obj.getStartLocation(), lib, "Tent3", this, obj);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case "Camera":new camera(obj.getStartLocation(), lib, "Camera", this, obj, null);break;
|
||||
case "TV":new tv(obj.getStartLocation(), lib, "TV", this, obj, null);break;
|
||||
case "GraveStone":new graveStone(obj.getStartLocation(), lib, "GraveStone", this, obj, null);break;
|
||||
case "Chair":new chair(obj.getStartLocation(), lib, "Chair", this, obj, null);break;
|
||||
case "LargeTable":new largeTable(obj.getStartLocation(), lib, "LargeTable", this, obj, null);break;
|
||||
case "Lantern":new lantern(obj.getStartLocation(), lib, "Lantern", this, obj, null);break;
|
||||
case "Sofa":new sofa(obj.getStartLocation(), lib, "Sofa", this, obj, null);break;
|
||||
case "Table":new table(obj.getStartLocation(), lib, "Table", this, obj, null);break;
|
||||
case "Barrels":new barrels(obj.getStartLocation(), lib, "Barrels", this, obj, null);break;
|
||||
case "Campfire1":new campfire_1(obj.getStartLocation(), lib, "Campfire1", this, obj, null);break;
|
||||
case "Campfire2":new campfire_2(obj.getStartLocation(), lib, "Campfire2", this, obj, null);break;
|
||||
case "Tent1":new tent_1(obj.getStartLocation(), lib, "Tent1", this, obj, null);break;
|
||||
case "Tent2":new tent_2(obj.getStartLocation(), lib, "Tent2", this, obj, null);break;
|
||||
case "Tent3":new tent_3(obj.getStartLocation(), lib, "Tent3", this, obj, null);break;
|
||||
case "Fence":new fance(obj.getStartLocation(), lib, "Fence", this, obj, null);break;
|
||||
case "Sunshade":new sunshade(obj.getStartLocation(), lib, "Sunshade", this, obj, null);break;
|
||||
case "Streetlamp":new streetlamp(obj.getStartLocation(), lib, "Streetlamp", this, obj, null);break;
|
||||
case "Billboard": new billboard(obj.getStartLocation(), lib, "Billboard", this, obj, null); break;
|
||||
case "Mailbox" :
|
||||
mailBox mail = new mailBox(obj.getStartLocation(), lib, "Mailbox", this, obj, null);
|
||||
/*try {
|
||||
mail.addMailbox(loadPlayerMailBox(obj));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
}
|
||||
addDefault();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void addDefault(){
|
||||
c = new config();
|
||||
this.file = c.getConfig("whiteList", "plugin/fence/");
|
||||
this.file.addDefaults(YamlConfiguration.loadConfiguration(getResource("config.yml")));
|
||||
this.file.options().copyDefaults(true);
|
||||
this.c.saveConfig("whiteList", this.file, "plugin/fence/");
|
||||
setDefaults();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void setDefaults(){
|
||||
c = new config();
|
||||
this.file = c.getConfig("whiteList", "plugin/fence/");
|
||||
List<Integer> intList = this.file.getIntegerList("Material");
|
||||
for(int i : intList){
|
||||
if(Material.getMaterial(i)!=null){
|
||||
Material m = Material.getMaterial(i);
|
||||
materialWhiteList.add(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onDisable(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void deleteEffect(List<ArmorStandPacket> asList){
|
||||
try{
|
||||
if(asList==null||asList.isEmpty()) return;
|
||||
for (ArmorStandPacket packet : asList) {
|
||||
if(packet!=null){
|
||||
if(packet.getInventory() != null && packet.getInventory().getHelmet()!=null){
|
||||
if(packet.getInventory().getHelmet().getType()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){
|
||||
packet.getLocation().getWorld().playEffect(packet.getLocation(), Effect.STEP_SOUND, packet.getInventory().getHelmet().getType());
|
||||
}
|
||||
}
|
||||
public Player loadPlayerMailBox(ObjectID objID){
|
||||
c = new config();
|
||||
file = c.getConfig("player", "plugin/mailbox/");
|
||||
ConfigurationSection section = file.getConfigurationSection("players");
|
||||
for(String s : section.getKeys(false)){
|
||||
for(String str : file.getStringList("players." + s)){
|
||||
if(str.equalsIgnoreCase(objID.getSerial())){
|
||||
return Bukkit.getPlayer(UUID.fromString(s));
|
||||
}
|
||||
}
|
||||
}catch(Exception e){}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onClick(FurnitureItemEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getProject().hasPermissions(e.getPlayer())){return;}
|
||||
if(!e.getProject().getPlugin().getName().equalsIgnoreCase(this.getName())){return;}
|
||||
Location loc = e.getLocation().getBlock().getLocation();
|
||||
loc.setYaw(e.getPlayer().getLocation().getYaw());
|
||||
loc.add(0, 1, 0);
|
||||
Player p = e.getPlayer();
|
||||
Project pro = e.getProject();
|
||||
lib.getLimitationManager().add(e.getLocation(), pro, p);
|
||||
lib.getLimitationManager().add(e.getLocation(), pro);
|
||||
switch(e.getProject().getName()){
|
||||
case "Camera" : new camera(loc, lib, "Camera", instance, null); removeEgge(p); return;
|
||||
case "TV" : new tv(loc, lib, "TV", instance, null); removeEgge(p); return;
|
||||
case "GraveStone" : new graveStone(loc, lib, "GraveStone", instance, null); removeEgge(p); return;
|
||||
case "Chair" : new chair(loc, lib, "Chair", instance, null); removeEgge(p); return;
|
||||
case "LargeTable" : new largeTable(loc, lib, "LargeTable", instance, null); removeEgge(p); return;
|
||||
case "Lantern" : new lantern(loc, lib, "Lantern", instance, null); removeEgge(p); return;
|
||||
case "Sofa" : new sofa(loc, lib, "Sofa", instance, null); removeEgge(p); return;
|
||||
case "Table" : new table(loc, lib, "Table", instance, null); removeEgge(p); return;
|
||||
case "Barrels" : new barrels(loc, lib, "Barrels", instance, null); removeEgge(p); return;
|
||||
case "Campfire1" : new campfire_1(loc, lib, "Campfire1", instance, null); removeEgge(p); return;
|
||||
case "Campfire2" : new campfire_2(loc, lib, "Campfire2", instance, null); removeEgge(p); return;
|
||||
case "Tent1" : new tent_1(loc, lib, "Tent1", instance, null); removeEgge(p); return;
|
||||
case "Tent2" : new tent_2(loc, lib, "Tent2", instance, null); removeEgge(p); return;
|
||||
case "Tent3" : new tent_3(loc, lib, "Tent3", instance, null); removeEgge(p); return;
|
||||
default: e.getPlayer().sendMessage("A error occorupted"); return;
|
||||
}
|
||||
}
|
||||
|
||||
private void removeEgge(Player p){
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack is1 = p.getInventory().getItemInHand();
|
||||
is1.setAmount(is1.getAmount()-1);
|
||||
p.getInventory().setItem(i, is1);
|
||||
case "Camera" : new camera(loc, lib, "Camera", instance, null, e.getPlayer());break;
|
||||
case "TV" : new tv(loc, lib, "TV", instance, null, e.getPlayer());break;
|
||||
case "GraveStone" : new graveStone(loc, lib, "GraveStone", instance, null, e.getPlayer());break;
|
||||
case "Chair" : new chair(loc, lib, "Chair", instance, null, e.getPlayer()); break;
|
||||
case "LargeTable" : new largeTable(loc, lib, "LargeTable", instance, null, e.getPlayer());break;
|
||||
case "Lantern" : new lantern(loc, lib, "Lantern", instance, null, e.getPlayer());break;
|
||||
case "Sofa" : new sofa(loc, lib, "Sofa", instance, null, e.getPlayer());break;
|
||||
case "Table" : new table(loc, lib, "Table", instance, null, e.getPlayer());break;
|
||||
case "Barrels" : new barrels(loc, lib, "Barrels", instance, null, e.getPlayer());break;
|
||||
case "Campfire1" : new campfire_1(loc, lib, "Campfire1", instance, null, e.getPlayer());break;
|
||||
case "Campfire2" : new campfire_2(loc, lib, "Campfire2", instance, null, e.getPlayer());break;
|
||||
case "Tent1" : new tent_1(loc, lib, "Tent1", instance, null, e.getPlayer());break;
|
||||
case "Tent2" : new tent_2(loc, lib, "Tent2", instance, null, e.getPlayer());break;
|
||||
case "Tent3" : new tent_3(loc, lib, "Tent3", instance, null, e.getPlayer());break;
|
||||
case "Fence" : new fance(loc, lib, "Fence", instance, null, e.getPlayer());break;
|
||||
case "Sunshade": new sunshade(loc, lib, "Sunshade", instance, null, e.getPlayer());break;
|
||||
case "Streetlamp": new streetlamp(loc, lib, "Streetlamp", this, null, e.getPlayer());break;
|
||||
case "Billboard": new billboard(loc, lib, "Billboard", instance, null, e.getPlayer());break;
|
||||
case "Mailbox" : new mailBox(loc, lib, "Mailbox", this, null, e.getPlayer()); break;
|
||||
default: e.getPlayer().sendMessage("A error occorupted");break;
|
||||
}
|
||||
e.removeItem();
|
||||
}
|
||||
|
||||
public static LocationUtil getLocationUtil(){return util;}
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
package de.Ste3et_C0st.Furniture.Objects.electric;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart;
|
||||
|
||||
public class billboard implements Listener{
|
||||
|
||||
Location loc;
|
||||
BlockFace b;
|
||||
World w;
|
||||
ObjectID obj;
|
||||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Plugin plugin;
|
||||
|
||||
private String id;
|
||||
public String getID(){return this.id;}
|
||||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
public billboard(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
this.loc.setYaw(location.getYaw());
|
||||
this.w = location.getWorld();
|
||||
this.manager = lib.getFurnitureManager();
|
||||
this.lib = lib;
|
||||
this.plugin = plugin;
|
||||
if(id!=null){
|
||||
this.obj = id;
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
public void spawn(Location location){
|
||||
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
|
||||
Location center = lutil.getCenter(location).add(0, -1.2, 0);
|
||||
Location center2 = lutil.getRelativ(center, b, 0D, -4D);
|
||||
Location center3 = lutil.getRelativ(center, b, 0D, -3.3D);
|
||||
|
||||
for(int i = 0; i<=3;i++){
|
||||
Location loc = lutil.getRelativ(center.clone(), b, -.1, -.5).add(0, .88*i, 0);
|
||||
loc.setYaw(loc.getYaw()+90);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(int i = 0; i<=3;i++){
|
||||
Location loc = lutil.getRelativ(center2.clone(), b, -.1, -.5).add(0, .88*i, 0);
|
||||
loc.setYaw(loc.getYaw()+90);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(int i = 0; i<=4;i++){
|
||||
Location loc = lutil.getRelativ(center3.clone(), b, -.1, .88*i).add(0, .7D, 0);
|
||||
loc.setYaw(loc.getYaw()+90);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(int i = 0; i<=4;i++){
|
||||
Location loc = lutil.getRelativ(center3.clone(), b, -.1, .88*i).add(0, 2.9D, 0);
|
||||
loc.setYaw(loc.getYaw()+90);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(int x = 0; x<=1;x++){
|
||||
for(int y = 0;y<=2;y++){
|
||||
Location loc = lutil.getRelativ(location, b,0D,(double) -y-1).add(0, x+1, 0);
|
||||
Location loc2 = lutil.getRelativ(location, b,-1D,(double) -y-1).add(0, x+1, 0);
|
||||
loc.getBlock().setType(Material.BARRIER);
|
||||
ItemFrame frame = (ItemFrame) w.spawn(loc2, ItemFrame.class);
|
||||
frame.setFacingDirection(b);
|
||||
}
|
||||
}
|
||||
|
||||
for(ArmorStandPacket pack : asList){
|
||||
pack.setInvisible(true);
|
||||
pack.setGravity(false);
|
||||
pack.setBasePlate(false);
|
||||
}
|
||||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
}
|
|
@ -5,7 +5,6 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
|
@ -23,6 +22,7 @@ import de.Ste3et_C0st.Furniture.Camera.Utils.RenderClass;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -45,7 +45,7 @@ public class camera implements Listener{
|
|||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
public camera(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public camera(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -60,6 +60,10 @@ public class camera implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -131,6 +135,7 @@ public class camera implements Listener{
|
|||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
//lib.saveObjToDB(obj);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
@ -140,8 +145,8 @@ public class camera implements Listener{
|
|||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
Player p = e.getPlayer();
|
||||
Location pLocation = lutil.getLocationCopy(lutil.getRelativ(p.getLocation().getBlock().getLocation(), b, -1D, 0D));
|
||||
Location locCopy = lutil.getLocationCopy(getLocation());
|
||||
Location pLocation = lutil.getRelativ(p.getLocation().getBlock().getLocation(), b, -1D, 0D).clone();
|
||||
Location locCopy = getLocation().clone();
|
||||
if(pLocation.equals(locCopy) && lutil.yawToFace(p.getLocation().getYaw()).getOppositeFace().equals(b)){
|
||||
if(!p.getInventory().getItemInHand().getType().equals(Material.MAP)){return;}
|
||||
MapView view = Bukkit.getMap(p.getItemInHand().getDurability());
|
||||
|
@ -161,15 +166,10 @@ public class camera implements Listener{
|
|||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
e.remove();
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,271 @@
|
|||
package de.Ste3et_C0st.Furniture.Objects.electric;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockRedstoneEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart;
|
||||
|
||||
public class streetlamp implements Listener{
|
||||
|
||||
Location loc, light;
|
||||
Vector loc2;
|
||||
BlockFace b;
|
||||
World w;
|
||||
ObjectID obj;
|
||||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Plugin plugin;
|
||||
boolean redstone = false;
|
||||
List<Location> blockLocation = new ArrayList<Location>();
|
||||
|
||||
private String id;
|
||||
public String getID(){return this.id;}
|
||||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
public streetlamp(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
this.loc.setYaw(location.getYaw());
|
||||
this.loc2 = location.toVector();
|
||||
this.w = location.getWorld();
|
||||
this.manager = lib.getFurnitureManager();
|
||||
this.lib = lib;
|
||||
this.plugin = plugin;
|
||||
this.light = lutil.getRelativ(loc, b, -1D, 0D);
|
||||
setBlock();
|
||||
if(id!=null){
|
||||
this.obj = id;
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
public void spawn(Location location){
|
||||
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
|
||||
Location center = lutil.getCenter(location).clone();
|
||||
center.add(0, -1.1, 0);
|
||||
|
||||
Location aloc = center.clone();
|
||||
aloc.add(0, -.2, 0);
|
||||
for(int i = 0; i<=3;i++){
|
||||
Location loc = aloc.clone().add(0, .215*i, 0);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.STEP));
|
||||
packet.setSmall(true);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(int i = 0; i<=3;i++){
|
||||
Location loc = lutil.getRelativ(center.clone(), b, .47, .38).add(0, .88*i, 0);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, lutil.getRelativ(center, b, -.9, .38).add(0, 3.1, 0));
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(-.17, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
|
||||
float yaw = lutil.FaceToYaw(b);
|
||||
BlockFace face = lutil.yawToFace(yaw +90);
|
||||
packet = manager.createArmorStand(obj, lutil.getRelativ(center, b, -.4, .38).add(0, 2.68, 0));
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
|
||||
packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0));
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.REDSTONE_LAMP_OFF));
|
||||
packet.setName("#LAMP#");
|
||||
packet.setSmall(true);
|
||||
asList.add(packet);
|
||||
|
||||
packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 1.8, 0));
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.WOOD, 1,(short) 5));
|
||||
asList.add(packet);
|
||||
|
||||
packet = manager.createArmorStand(obj, lutil.getRelativ(center, face, 0.0, -0.9).add(0, 2.3, 0));
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.GLASS));
|
||||
packet.setSmall(true);
|
||||
asList.add(packet);
|
||||
|
||||
for(ArmorStandPacket pack : asList){
|
||||
pack.setInvisible(true);
|
||||
pack.setGravity(false);
|
||||
pack.setBasePlate(false);
|
||||
}
|
||||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
private void setBlock(){
|
||||
Location location = loc.getBlock().getLocation();
|
||||
location.setY(location.getY()-1);
|
||||
for(int i = 0; i<=3;i++){
|
||||
location.setY(location.getY()+1);
|
||||
Block block = location.getBlock();
|
||||
block.setType(Material.BARRIER);
|
||||
blockLocation.add(block.getLocation());
|
||||
if(i==3){
|
||||
Location loc =lutil.getRelativ(location, b, -1D, 0D);
|
||||
Block blocks = loc.getBlock();
|
||||
blocks.setType(Material.BARRIER);
|
||||
blockLocation.add(blocks.getLocation());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onPlayerInteract(PlayerInteractEvent e){
|
||||
if(obj==null) return;
|
||||
if(e.isCancelled()){return;}
|
||||
if(redstone) return;
|
||||
if(e.getAction()==null) return;
|
||||
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
|
||||
if(e.getClickedBlock()==null) return;
|
||||
if(blockLocation.contains(e.getClickedBlock().getLocation())){
|
||||
e.setCancelled(true);
|
||||
FurnitureLib.getInstance().getLightManager().removeLight(light);
|
||||
obj.remove(e.getPlayer());
|
||||
for(Location loc : blockLocation){
|
||||
loc.getBlock().setType(Material.AIR);
|
||||
}
|
||||
obj=null;
|
||||
}
|
||||
}else if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
|
||||
if(e.getClickedBlock()==null) return;
|
||||
if(blockLocation.contains(e.getClickedBlock().getLocation())){
|
||||
if(isOn()){
|
||||
setLight(false);
|
||||
}else{
|
||||
setLight(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onClick(FurnitureClickEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
Boolean isOn = isOn();
|
||||
ArmorStandPacket packet = getPacket();
|
||||
if(packet==null) return;
|
||||
if(redstone) return;
|
||||
if(isOn){
|
||||
setLight(false);
|
||||
}else{
|
||||
setLight(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBlockPowered(BlockRedstoneEvent e){
|
||||
if(e.getBlock()==null) return;
|
||||
if(obj==null) return;
|
||||
Vector loc = e.getBlock().getLocation().toVector();
|
||||
if(loc2.distance(loc)<=1){
|
||||
if(e.getNewCurrent()==0){
|
||||
setLight(false);
|
||||
redstone = false;
|
||||
}else{
|
||||
setLight(true);
|
||||
redstone = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setLight(Boolean b){
|
||||
if(!b){
|
||||
ArmorStandPacket packet = getPacket();
|
||||
if(packet==null) return;
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.REDSTONE_LAMP_OFF));
|
||||
FurnitureLib.getInstance().getLightManager().removeLight(light);
|
||||
manager.updateFurniture(obj);
|
||||
}else{
|
||||
ArmorStandPacket packet = getPacket();
|
||||
if(packet==null) return;
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.GLOWSTONE));
|
||||
FurnitureLib.getInstance().getLightManager().addLight(light, 15);
|
||||
manager.updateFurniture(obj);
|
||||
}
|
||||
}
|
||||
|
||||
private ArmorStandPacket getPacket(){
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().equalsIgnoreCase("#LAMP#")){
|
||||
return packet;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private boolean isOn(){
|
||||
for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(as.getName().equalsIgnoreCase("#LAMP#")){
|
||||
switch (as.getInventory().getHelmet().getType()) {
|
||||
case REDSTONE_LAMP_OFF: return false;
|
||||
case GLOWSTONE: return true;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
FurnitureLib.getInstance().getLightManager().removeLight(light);
|
||||
e.remove();
|
||||
obj=null;
|
||||
for(Location loc : blockLocation){
|
||||
loc.getBlock().setType(Material.AIR);
|
||||
}
|
||||
blockLocation.clear();
|
||||
}
|
||||
}
|
|
@ -4,11 +4,11 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -17,6 +17,7 @@ import org.bukkit.util.EulerAngle;
|
|||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -40,7 +41,7 @@ public class tv implements Listener{
|
|||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
public tv(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public tv(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -55,6 +56,10 @@ public class tv implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -119,15 +124,10 @@ public class tv implements Listener{
|
|||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
e.remove();
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,214 @@
|
|||
package de.Ste3et_C0st.Furniture.Objects.garden;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
|
||||
public class fance implements Listener{
|
||||
|
||||
Location loc;
|
||||
BlockFace b;
|
||||
World w;
|
||||
ObjectID obj;
|
||||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Plugin plugin;
|
||||
|
||||
private String id;
|
||||
public String getID(){return this.id;}
|
||||
public ObjectID getObjectID(){return this.obj;}
|
||||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
List<Material> matList = Arrays.asList(
|
||||
Material.SPRUCE_FENCE,
|
||||
Material.BIRCH_FENCE,
|
||||
Material.JUNGLE_FENCE,
|
||||
Material.DARK_OAK_FENCE,
|
||||
Material.ACACIA_FENCE,
|
||||
Material.COBBLE_WALL,
|
||||
Material.NETHER_FENCE);
|
||||
Block block;
|
||||
Material m;
|
||||
|
||||
public fance(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
this.loc.setYaw(location.getYaw());
|
||||
this.w = location.getWorld();
|
||||
this.manager = lib.getFurnitureManager();
|
||||
this.lib = lib;
|
||||
this.plugin = plugin;
|
||||
if(id!=null){
|
||||
this.obj = id;
|
||||
setBlock();
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
setBlock();
|
||||
}
|
||||
|
||||
public void spawn(Location location){
|
||||
this.m = Material.STONE;
|
||||
Location locat = loc.clone();
|
||||
locat=lutil.getCenter(locat);
|
||||
locat.add(0, -1.2, 0);
|
||||
locat.setYaw(lutil.FaceToYaw(b.getOppositeFace()));
|
||||
for(int i = 0; i<=2;i++){
|
||||
Location loc = locat.clone();
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setHelmet(new ItemStack(m,0,(short) 0));
|
||||
packet.setGravity(false);
|
||||
packet.setInvisible(true);
|
||||
packet.setBasePlate(false);
|
||||
packet.setSmall(true);
|
||||
locat.add(0, .44, 0);
|
||||
}
|
||||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
private void onBlockBreak(BlockBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(block==null){return;}
|
||||
if(!e.getBlock().getLocation().equals(block.getLocation())){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation())){return;}
|
||||
this.block.setType(Material.AIR);
|
||||
this.obj.remove(e.getPlayer());
|
||||
block=null;
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(this.block!=null) this.block.setType(Material.AIR);
|
||||
e.remove();
|
||||
obj=null;
|
||||
block.setType(Material.AIR);
|
||||
block=null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler
|
||||
private void onInteract(PlayerInteractEvent e){
|
||||
if(obj==null) return;
|
||||
if(e.isCancelled()) return;
|
||||
if(this.block==null) return;
|
||||
if(e.getAction()==null)return;
|
||||
if(!e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) return;
|
||||
if(!e.getClickedBlock().getLocation().equals(this.block.getLocation())) return;
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
ItemStack is = p.getItemInHand();
|
||||
if(is==null||!is.getType().isBlock()) return;
|
||||
Material m = p.getItemInHand().getType();
|
||||
byte data = (byte) is.getDurability();
|
||||
if(matList.contains(m)){
|
||||
this.block.setType(m);
|
||||
this.block.setData(data);
|
||||
remove(p, is);
|
||||
return;
|
||||
}else if(main.materialWhiteList.contains(m)){
|
||||
setTypes(is);
|
||||
remove(p, is);
|
||||
manager.updateFurniture(obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void remove(Player p, ItemStack is){
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@EventHandler
|
||||
private void onClick(FurnitureClickEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(this.block==null) return;
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
ItemStack is = p.getItemInHand();
|
||||
if(is==null || !is.getType().isBlock()) return;
|
||||
Material m = p.getItemInHand().getType();
|
||||
byte data = (byte) is.getDurability();
|
||||
if(matList.contains(m)){
|
||||
this.block.setType(m);
|
||||
this.block.setData(data);
|
||||
remove(p, is);
|
||||
return;
|
||||
}else if(main.materialWhiteList.contains(m)){
|
||||
setTypes(is);
|
||||
remove(p, is);
|
||||
manager.updateFurniture(obj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private void setTypes(ItemStack is){
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
packet.getInventory().setHelmet(is);
|
||||
}
|
||||
}
|
||||
|
||||
private void setBlock(){
|
||||
Location location = loc.clone();
|
||||
this.block = location.getBlock();
|
||||
if(this.block.getType()==null||this.block.getType().equals(Material.AIR)||!this.block.getType().equals(Material.FENCE)){
|
||||
if(!this.matList.contains(this.block.getType())){
|
||||
this.block.setType(Material.FENCE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -5,7 +5,6 @@ import java.util.List;
|
|||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
|
@ -26,6 +25,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -50,7 +50,7 @@ public class graveStone implements Listener{
|
|||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
public graveStone(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public graveStone(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -66,6 +66,10 @@ public class graveStone implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
setBlock();
|
||||
|
@ -157,18 +161,13 @@ public class graveStone implements Listener{
|
|||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()) return;
|
||||
if(!e.canBuild(null)) return;
|
||||
if(!e.canBuild()) return;
|
||||
if(!e.getID().equals(obj)) return;
|
||||
if(obj==null){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
e.remove();
|
||||
sign.setType(Material.AIR);
|
||||
sign = null;
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
e.remove();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -209,7 +208,7 @@ public class graveStone implements Listener{
|
|||
private void onClick(FurnitureClickEvent e){
|
||||
Player p = e.getPlayer();
|
||||
if(e.isCancelled()) return;
|
||||
if(!e.canBuild(null)) return;
|
||||
if(!e.canBuild()) return;
|
||||
if(!e.getID().equals(obj)) return;
|
||||
ItemStack is = p.getItemInHand();
|
||||
if (is == null) return;
|
||||
|
|
|
@ -0,0 +1,216 @@
|
|||
package de.Ste3et_C0st.Furniture.Objects.garden;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart;
|
||||
|
||||
public class mailBox implements Listener {
|
||||
|
||||
Location loc;
|
||||
BlockFace b;
|
||||
World w;
|
||||
ObjectID obj;
|
||||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Plugin plugin;
|
||||
List<Block> blockList = new ArrayList<Block>();
|
||||
|
||||
private String id;
|
||||
public String getID(){return this.id;}
|
||||
public ObjectID getObjectID(){return this.obj;}
|
||||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
|
||||
|
||||
public mailBox(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
this.loc.setYaw(location.getYaw());
|
||||
this.w = location.getWorld();
|
||||
this.manager = lib.getFurnitureManager();
|
||||
this.lib = lib;
|
||||
this.plugin = plugin;
|
||||
if(id!=null){
|
||||
this.obj = id;
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
public void spawn(Location location){
|
||||
List<ArmorStandPacket> aspList = new ArrayList<ArmorStandPacket>();
|
||||
Location middle = lutil.getCenter(loc);
|
||||
middle.add(0, -1.4, 0);
|
||||
|
||||
switch (b) {
|
||||
case NORTH:middle = lutil.getRelativ(middle, b, 0D, 0.03D);break;
|
||||
case EAST:middle = lutil.getRelativ(middle, b, 0D, 0.03D);break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
ArmorStandPacket as = manager.createArmorStand(obj, middle);
|
||||
as.getInventory().setHelmet(new ItemStack(Material.STONE));
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
for(int i = 0; i<=1;i++){
|
||||
Location loc = lutil.getRelativ(middle.clone(), b, .47, .38).add(0, .88*i, 0);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
aspList.add(packet);
|
||||
}
|
||||
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, -.21, 0D));
|
||||
as.getInventory().setHelmet(new ItemStack(Material.SMOOTH_BRICK, 1, (short) 0));
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, .21, 0D));
|
||||
as.getInventory().setHelmet(new ItemStack(Material.SMOOTH_BRICK, 1, (short) 0));
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
for(int i = 0; i<=4;i++){
|
||||
Location loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b, -.44+.165*i, .43D);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.setSmall(true);
|
||||
//x z y
|
||||
//-.7 .73 -.3
|
||||
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.SMOOTH_STAIRS));
|
||||
aspList.add(packet);
|
||||
|
||||
loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b.getOppositeFace(), -.44+.165*i, .462D);
|
||||
packet = manager.createArmorStand(obj, loc);
|
||||
packet.setSmall(true);
|
||||
//x z y
|
||||
//-.7 .73 -.3
|
||||
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.SMOOTH_STAIRS));
|
||||
aspList.add(packet);
|
||||
|
||||
|
||||
loc = lutil.getRelativ(middle.clone().add(0, 1.898, 0), b.getOppositeFace(), -.44+.165*i, .362D);
|
||||
packet = manager.createArmorStand(obj, loc);
|
||||
packet.setSmall(true);
|
||||
//x z y
|
||||
//-.7 .73 -.3
|
||||
packet.setPose(new EulerAngle(-.716D, .71D, -.32D), BodyPart.RIGHT_ARM);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.SMOOTH_BRICK, 1 ,(short) 0));
|
||||
aspList.add(packet);
|
||||
}
|
||||
|
||||
BlockFace face = b;
|
||||
face = lutil.yawToFace(lutil.FaceToYaw(b) + 90);
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.5, 0), face, -.21, -.32D));
|
||||
as.getInventory().setHelmet(new ItemStack(Material.REDSTONE_TORCH_ON, 1, (short) 0));
|
||||
as.setPose(lutil.degresstoRad(new EulerAngle(0, 0, 90)), BodyPart.HEAD);
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.10, 0), face.getOppositeFace(), -.0, .31D));
|
||||
as.getInventory().setItemInHand(new ItemStack(Material.PAPER, 1, (short) 0));
|
||||
as.setPose(lutil.degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM);
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.40, 0), face.getOppositeFace(), -.1, .34D));
|
||||
as.getInventory().setItemInHand(new ItemStack(Material.WOOD_BUTTON, 1, (short) 0));
|
||||
as.setPose(lutil.degresstoRad(new EulerAngle(-15,-67, -90)), BodyPart.RIGHT_ARM);
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, lutil.getRelativ(middle.clone().add(0, 1.2, 0), b, .2, .07D));
|
||||
as.getInventory().setItemInHand(new ItemStack(Material.EMPTY_MAP, 1, (short) 0));
|
||||
as.setPose(lutil.degresstoRad(new EulerAngle(0, -120, -90)), BodyPart.RIGHT_ARM);
|
||||
as.setSmall(true);
|
||||
aspList.add(as);
|
||||
|
||||
|
||||
for(ArmorStandPacket asp : aspList){
|
||||
asp.setGravity(false);
|
||||
asp.setInvisible(true);
|
||||
asp.setBasePlate(false);
|
||||
}
|
||||
|
||||
for(int i = 0; i<=1;i++){
|
||||
Block b = location.clone().add(0, i, 0).getBlock();
|
||||
b.setType(Material.BARRIER);
|
||||
blockList.add(b);
|
||||
}
|
||||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
/*public void addMailbox(Player p) throws MailboxException{
|
||||
if(Bukkit.getPluginManager().isPluginEnabled("PostalService")){
|
||||
PostalService.getMailboxManager().addMailboxAtLoc(blockList.get(1).getLocation(), p);
|
||||
}
|
||||
}*/
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()) return;
|
||||
if(!e.canBuild()) return;
|
||||
if(!e.getID().equals(obj)) return;
|
||||
if(obj==null){return;}
|
||||
for(Block b : blockList){
|
||||
b.setType(Material.AIR);
|
||||
}
|
||||
blockList.clear();
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onInteract(PlayerInteractEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(e.getAction()==null){return;}
|
||||
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
|
||||
if(blockList.contains(e.getClickedBlock())){
|
||||
e.setCancelled(true);
|
||||
for(Block b : blockList){
|
||||
b.setType(Material.AIR);
|
||||
}
|
||||
blockList.clear();
|
||||
this.obj.remove(e.getPlayer());
|
||||
obj=null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,367 @@
|
|||
package de.Ste3et_C0st.Furniture.Objects.garden;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.banner.Pattern;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BannerMeta;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
|
||||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureManager;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ObjectID;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.Type.BodyPart;
|
||||
|
||||
public class sunshade implements Listener{
|
||||
|
||||
Location loc;
|
||||
BlockFace b;
|
||||
World w;
|
||||
ObjectID obj;
|
||||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Plugin plugin;
|
||||
|
||||
private String id;
|
||||
public String getID(){return this.id;}
|
||||
public ObjectID getObjectID(){return this.obj;}
|
||||
public Location getLocation(){return this.loc;}
|
||||
public BlockFace getBlockFace(){return this.b;}
|
||||
List<Material> matList = Arrays.asList(
|
||||
Material.SPRUCE_FENCE,
|
||||
Material.BIRCH_FENCE,
|
||||
Material.JUNGLE_FENCE,
|
||||
Material.DARK_OAK_FENCE,
|
||||
Material.ACACIA_FENCE,
|
||||
Material.COBBLE_WALL,
|
||||
Material.NETHER_FENCE);
|
||||
Material m;
|
||||
Integer timer;
|
||||
Block block;
|
||||
|
||||
public sunshade(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
this.loc.setYaw(location.getYaw());
|
||||
this.w = location.getWorld();
|
||||
this.manager = lib.getFurnitureManager();
|
||||
this.lib = lib;
|
||||
this.plugin = plugin;
|
||||
if(id!=null){
|
||||
this.obj = id;
|
||||
setblock();
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
setblock();
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
private void setblock(){
|
||||
Location loc = this.loc.clone();
|
||||
loc.add(0, 2, 0);
|
||||
block = loc.getBlock();
|
||||
block.setType(Material.BARRIER);
|
||||
}
|
||||
|
||||
public void spawn(Location location){
|
||||
Location center = lutil.getCenter(location).clone();
|
||||
List<ArmorStandPacket> asList = new ArrayList<ArmorStandPacket>();
|
||||
center.add(0, -1.1, 0);
|
||||
|
||||
for(int i = 0; i<=2;i++){
|
||||
Location loc = lutil.getRelativ(center.clone(), b, .47, .38).add(0, .88*i, 0);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc);
|
||||
packet.getInventory().setItemInHand(new ItemStack(Material.STICK));
|
||||
packet.setPose(new EulerAngle(1.39, 0, 0), BodyPart.RIGHT_ARM);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
center.add(0, 1.758, 0);
|
||||
ArmorStandPacket aspacket = manager.createArmorStand(obj, center);
|
||||
aspacket.getInventory().setHelmet(new ItemStack(Material.CARPET));
|
||||
aspacket.setName("#TOP#");
|
||||
asList.add(aspacket);
|
||||
|
||||
Location loc = center.clone();
|
||||
loc.add(0, 0.3, 0);
|
||||
ItemStack is = new ItemStack(Material.BANNER);
|
||||
BannerMeta banner = (BannerMeta) is.getItemMeta();
|
||||
banner.setBaseColor(DyeColor.LIME);
|
||||
banner.addPattern(new Pattern(DyeColor.YELLOW, PatternType.TRIANGLE_BOTTOM));
|
||||
banner.addPattern(new Pattern(DyeColor.WHITE, PatternType.TRIANGLE_BOTTOM));
|
||||
is.setItemMeta(banner);
|
||||
|
||||
for(int i = 0; i<=17; i++){
|
||||
loc.setYaw(i*21);
|
||||
ArmorStandPacket packet = manager.createArmorStand(obj, loc.clone());
|
||||
packet.getInventory().setHelmet(is);
|
||||
packet.setPose(new EulerAngle(-3.054, 0, 0), BodyPart.HEAD);
|
||||
packet.setName("#ELEMENT#" + i);
|
||||
asList.add(packet);
|
||||
}
|
||||
|
||||
for(ArmorStandPacket packet : asList){
|
||||
packet.setInvisible(true);
|
||||
packet.setGravity(false);
|
||||
packet.setBasePlate(false);
|
||||
}
|
||||
|
||||
|
||||
manager.send(obj);
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onClick(FurnitureClickEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
ItemStack is = p.getItemInHand();
|
||||
if(is==null||!is.getType().equals(Material.BANNER)){
|
||||
if(isRunning()){return;}
|
||||
if(!isOpen()){
|
||||
open();
|
||||
}else{
|
||||
close();
|
||||
}
|
||||
}else{
|
||||
if(isRunning()){return;}
|
||||
|
||||
|
||||
BannerMeta banner = (BannerMeta) is.getItemMeta();
|
||||
Short s = lutil.getfromDyeColor(banner.getBaseColor());
|
||||
Short newS = lutil.getFromDey(s);
|
||||
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().startsWith("#ELEMENT#")){
|
||||
packet.getInventory().setHelmet(is);
|
||||
}else if(packet.getName().equalsIgnoreCase("#TOP#")){
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.CARPET, 1, newS));
|
||||
}
|
||||
}
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isRunning(){
|
||||
if(timer!=null)return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onInteract(PlayerInteractEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(e.getAction()==null){return;}
|
||||
if(e.getAction().equals(Action.LEFT_CLICK_BLOCK)){
|
||||
if(e.getClickedBlock().getLocation().equals(block.getLocation())){
|
||||
e.setCancelled(true);
|
||||
stopTimer();
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().equalsIgnoreCase("#ITEM#")){
|
||||
if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){
|
||||
ItemStack is = packet.getInventory().getItemInHand();
|
||||
w.dropItem(loc, is);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.block.setType(Material.AIR);
|
||||
this.block = null;
|
||||
this.obj.remove(e.getPlayer());
|
||||
obj=null;
|
||||
}
|
||||
}else if(e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
|
||||
if(e.getClickedBlock().getLocation().equals(block.getLocation())){
|
||||
Player p = e.getPlayer();
|
||||
ItemStack is = p.getItemInHand();
|
||||
if(is==null||!is.getType().equals(Material.BANNER)){
|
||||
if(isRunning()){return;}
|
||||
if(!isOpen()){
|
||||
open();
|
||||
}else{
|
||||
close();
|
||||
}
|
||||
}else{
|
||||
e.setCancelled(true);
|
||||
if(isRunning()){return;}
|
||||
BannerMeta banner = (BannerMeta) is.getItemMeta();
|
||||
Short s = lutil.getfromDyeColor(banner.getBaseColor());
|
||||
Short newS = lutil.getFromDey(s);
|
||||
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().startsWith("#ELEMENT#")){
|
||||
packet.getInventory().setHelmet(is);
|
||||
}else if(packet.getName().equalsIgnoreCase("#TOP#")){
|
||||
packet.getInventory().setHelmet(new ItemStack(Material.CARPET, 1, newS));
|
||||
}
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
stopTimer();
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().equalsIgnoreCase("#ITEM#")){
|
||||
if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){
|
||||
ItemStack is = packet.getInventory().getItemInHand();
|
||||
w.dropItem(loc, is);
|
||||
}
|
||||
}
|
||||
}
|
||||
e.remove();
|
||||
this.block.setType(Material.AIR);
|
||||
this.block = null;
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
|
||||
private void close(){
|
||||
timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try{
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().startsWith("#ELEMENT#")){
|
||||
if(!isClose(packet)){
|
||||
Double x = packet.getAngle(BodyPart.HEAD).getX();
|
||||
packet.setPose(new EulerAngle(x-.32, 0, 0), BodyPart.HEAD);
|
||||
}else{
|
||||
stopTimer();
|
||||
return;
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
stopTimer();reset();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}, 0, 10);
|
||||
}
|
||||
|
||||
private void open(){
|
||||
timer = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try{
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().startsWith("#ELEMENT#")){
|
||||
if(!isOpen(packet)){
|
||||
Double x = packet.getAngle(BodyPart.HEAD).getX();
|
||||
packet.setPose(new EulerAngle(x+.32, 0, 0), BodyPart.HEAD);
|
||||
}else{
|
||||
stopTimer();
|
||||
return;
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
}
|
||||
}
|
||||
}catch(Exception e){
|
||||
stopTimer();reset();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}, 0, 10);
|
||||
}
|
||||
|
||||
private void reset(){
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(!isOpen(packet)){
|
||||
packet.setPose(new EulerAngle(-3.054, 0, 0), BodyPart.HEAD);
|
||||
}
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
}
|
||||
|
||||
private boolean isClose(ArmorStandPacket packet){
|
||||
if(packet.getAngle(BodyPart.HEAD).getX()> -3.054){
|
||||
return false;
|
||||
}return true;
|
||||
}
|
||||
|
||||
private boolean isOpen(ArmorStandPacket packet){
|
||||
if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){
|
||||
return false;
|
||||
}return true;
|
||||
}
|
||||
|
||||
private boolean isOpen(){
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().startsWith("#ELEMENT#")){
|
||||
if(packet.getAngle(BodyPart.HEAD).getX()< -1.85){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void stopTimer(){
|
||||
if(timer!=null){
|
||||
Bukkit.getScheduler().cancelTask(timer);
|
||||
timer=null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,11 +4,11 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -18,6 +18,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -34,10 +35,9 @@ public class chair implements Listener{
|
|||
FurnitureManager manager;
|
||||
FurnitureLib lib;
|
||||
LocationUtil lutil;
|
||||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public chair(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public chair(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -52,6 +52,10 @@ public class chair implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -75,33 +79,34 @@ public class chair implements Listener{
|
|||
sitz.setYaw(lutil.FaceToYaw(b));
|
||||
lehne.setYaw(lutil.FaceToYaw(b));
|
||||
|
||||
ArmorStandPacket as = manager.createArmorStand(obj, sitz);
|
||||
ArmorStandPacket as = manager.createArmorStand(obj, sitz.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR));
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, lehne);
|
||||
as = manager.createArmorStand(obj, lehne.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.TRAP_DOOR));
|
||||
as.setPose(new EulerAngle(1.57, .0, .0), BodyPart.HEAD);
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, feet1);
|
||||
as = manager.createArmorStand(obj, feet1.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, feet2);
|
||||
as = manager.createArmorStand(obj, feet2.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, feet3);
|
||||
as = manager.createArmorStand(obj, feet3.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, feet4);
|
||||
as = manager.createArmorStand(obj, feet4.clone());
|
||||
as.getInventory().setHelmet(new ItemStack(Material.LEVER));
|
||||
aspList.add(as);
|
||||
|
||||
as = manager.createArmorStand(obj, sitz.add(0,-.2,0));
|
||||
id = as.getEntityId();
|
||||
Location sit = sitz.clone().add(0,-.2,0);
|
||||
as = manager.createArmorStand(obj, sit.clone());
|
||||
as.setName("#SITZ#");
|
||||
aspList.add(as);
|
||||
|
||||
for(ArmorStandPacket asp : aspList){
|
||||
|
@ -118,15 +123,10 @@ public class chair implements Listener{
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -134,10 +134,18 @@ public class chair implements Listener{
|
|||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
ArmorStandPacket packet = manager.getArmorStandPacketByID(id);
|
||||
if(packet.getPessanger()==null){
|
||||
packet.setPessanger(e.getPlayer());
|
||||
packet.update();
|
||||
ArmorStandPacket packet = null;
|
||||
for(ArmorStandPacket as : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(as.getName().equalsIgnoreCase("#SITZ#")){
|
||||
packet=as;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(packet!=null){
|
||||
if(packet.getPessanger()==null){
|
||||
packet.setPessanger(e.getPlayer());
|
||||
packet.update();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
|
@ -20,6 +19,7 @@ import org.bukkit.plugin.Plugin;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -38,7 +38,7 @@ public class lantern implements Listener{
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public lantern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public lantern(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -54,6 +54,10 @@ public class lantern implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -74,16 +78,16 @@ public class lantern implements Listener{
|
|||
Location obsidian = center;
|
||||
Location l = new Location(center.getWorld(), center.getX(), center.getY() -1.43, center.getZ());
|
||||
obsidian.add(0D, -2.2, 0D);
|
||||
Location left_down = new Location(obsidian.getWorld(), obsidian.getX()+0.22, obsidian.getY() + .62, obsidian.getZ()+0.22);
|
||||
Location left_upper = new Location(obsidian.getWorld(), obsidian.getX() -0.21, obsidian.getY() + .62, obsidian.getZ() +0.22);
|
||||
Location right_upper = new Location(obsidian.getWorld(), obsidian.getX()-0.21, obsidian.getY()+.62, obsidian.getZ()-0.21);
|
||||
Location right_down = new Location(obsidian.getWorld(), obsidian.getX()+0.21, obsidian.getY() + .62, obsidian.getZ() -0.21);
|
||||
Location left_down = new Location(obsidian.getWorld(), obsidian.getX()+.21, obsidian.getY() + .62, obsidian.getZ()+.21);
|
||||
Location left_upper = new Location(obsidian.getWorld(), obsidian.getX() -.21, obsidian.getY() + .62, obsidian.getZ() +.21);
|
||||
Location right_upper = new Location(obsidian.getWorld(), obsidian.getX()-.21, obsidian.getY()+.62, obsidian.getZ()-.21);
|
||||
Location right_down = new Location(obsidian.getWorld(), obsidian.getX()+.21, obsidian.getY() + .62, obsidian.getZ() -.21);
|
||||
|
||||
ArmorStandPacket asp = manager.createArmorStand(obj, obsidian);
|
||||
asp.getInventory().setHelmet(new ItemStack(Material.OBSIDIAN));
|
||||
aspList.add(asp);
|
||||
|
||||
asp = manager.createArmorStand(obj, l.add(0,0,0));
|
||||
asp = manager.createArmorStand(obj, lutil.getRelativ(l.clone(), b, 0D, 0.01D));
|
||||
asp.getInventory().setHelmet(new ItemStack(Material.WOOD_PLATE));
|
||||
aspList.add(asp);
|
||||
|
||||
|
@ -130,14 +134,9 @@ public class lantern implements Listener{
|
|||
if(e.isCancelled()) return;
|
||||
if(block==null) return;
|
||||
if(!e.getID().equals(obj)) return;
|
||||
if(!e.canBuild(null)) return;
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
block.setType(Material.AIR);
|
||||
manager.remove(obj);
|
||||
if(!e.canBuild()) return;
|
||||
e.remove();
|
||||
block.setType(Material.AIR);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -146,7 +145,7 @@ public class lantern implements Listener{
|
|||
if(e.isCancelled()) return;
|
||||
if(block==null) return;
|
||||
if(!e.getID().equals(obj)) return;
|
||||
if(!e.canBuild(null)) return;
|
||||
if(!e.canBuild()) return;
|
||||
Player p = e.getPlayer();
|
||||
ItemStack is = p.getItemInHand();
|
||||
if(is.getType().equals(Material.FLINT_AND_STEEL)){
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -39,7 +40,7 @@ public class largeTable implements Listener{
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public largeTable(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public largeTable(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -61,10 +62,13 @@ public class largeTable implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
List<Integer> tellerIDs = new ArrayList<Integer>();
|
||||
|
||||
public void spawn(Location loc){
|
||||
|
@ -200,12 +204,8 @@ public class largeTable implements Listener{
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
for(Integer id : tellerIDs){
|
||||
ArmorStandPacket asp = manager.getArmorStandPacketByID(id);
|
||||
if(asp!=null&&asp.getInventory().getItemInHand()!=null){
|
||||
|
@ -216,7 +216,6 @@ public class largeTable implements Listener{
|
|||
}
|
||||
}
|
||||
e.remove();
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
|
||||
|
@ -228,7 +227,7 @@ public class largeTable implements Listener{
|
|||
e.setCancelled(true);
|
||||
final Player p = e.getPlayer();
|
||||
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
ItemStack is = p.getItemInHand();
|
||||
Integer Amount = is.getAmount();
|
||||
List<ArmorStandPacket> asp = manager.getArmorStandPacketByObjectID(obj);
|
||||
|
@ -239,7 +238,7 @@ public class largeTable implements Listener{
|
|||
if(Amount>0){
|
||||
ItemStack is2 = packet.getInventory().getHelmet();
|
||||
if(is2.getDurability()!=color){
|
||||
if(p.getGameMode().equals(GameMode.SURVIVAL)){Amount=Amount-1;}
|
||||
if(p.getGameMode().equals(GameMode.SURVIVAL) || !lib.useGamemode()){Amount=Amount-1;}
|
||||
is2.setDurability(color);
|
||||
packet.getInventory().setHelmet(is2);
|
||||
}
|
||||
|
@ -247,19 +246,19 @@ public class largeTable implements Listener{
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer o = Amount;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack itemStack = p.getItemInHand();
|
||||
itemStack.setAmount(o);
|
||||
p.getInventory().setItem(i, itemStack);
|
||||
p.updateInventory();
|
||||
}
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer o = Amount;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack itemStack = p.getItemInHand();
|
||||
itemStack.setAmount(o);
|
||||
p.getInventory().setItem(i, itemStack);
|
||||
p.updateInventory();
|
||||
|
||||
return;
|
||||
}else{
|
||||
if(!e.canBuild(null)) return;
|
||||
if(!e.canBuild()) return;
|
||||
setTeller(e.getPlayer(), e.getPlayer().getInventory().getItemInHand());
|
||||
}
|
||||
}
|
||||
|
@ -292,15 +291,14 @@ public class largeTable implements Listener{
|
|||
IS.setAmount(1);
|
||||
as.getInventory().setItemInHand(IS);
|
||||
|
||||
if(!player.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = player.getInventory().getHeldItemSlot();
|
||||
ItemStack itemstack = is.clone();
|
||||
itemstack.setAmount(itemstack.getAmount()-1);
|
||||
player.getInventory().setItem(i, itemstack);
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
|
||||
if(player.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = player.getInventory().getHeldItemSlot();
|
||||
ItemStack itemstack = is.clone();
|
||||
itemstack.setAmount(itemstack.getAmount()-1);
|
||||
player.getInventory().setItem(i, itemstack);
|
||||
player.updateInventory();
|
||||
}
|
||||
|
||||
public HashMap<Integer, ItemStack> getTeller(){
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -38,7 +39,7 @@ public class sofa implements Listener {
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public sofa(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public sofa(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -53,6 +54,10 @@ public class sofa implements Listener {
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
place = .3;
|
||||
spawn(location);
|
||||
|
@ -105,12 +110,10 @@ public class sofa implements Listener {
|
|||
for(Double i = .0; i<=lengt; i+=0.65){
|
||||
Location carpet = lutil.getRelativ(carpetHight, b, place,(double) d);
|
||||
carpet.setYaw(facing);
|
||||
|
||||
String s = "";
|
||||
if(j==0||j==1){s="#SITZPOS:1#";}
|
||||
if(j==2){s="#SITZPOS:2#";}
|
||||
if(j==3||j==4){s="#SITZPOS:3#";}
|
||||
|
||||
asp = manager.createArmorStand(obj, carpet);
|
||||
asp.getInventory().setHelmet(is);
|
||||
asp.setName(s);
|
||||
|
@ -177,7 +180,7 @@ public class sofa implements Listener {
|
|||
e.setCancelled(true);
|
||||
final Player p = e.getPlayer();
|
||||
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation());
|
||||
Material m = Material.CARPET;
|
||||
color(p, canBuild, m);
|
||||
}else{
|
||||
|
@ -213,37 +216,33 @@ public class sofa implements Listener {
|
|||
short color = lutil.getFromDey(is.getDurability());
|
||||
for(ArmorStandPacket packet : asp){
|
||||
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
|
||||
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
if(Amount>0){
|
||||
ItemStack is2 = packet.getInventory().getHelmet();
|
||||
if(is2.getDurability() != color){
|
||||
is2.setDurability(color);
|
||||
packet.getInventory().setHelmet(is2);
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getPessanger()!=null){
|
||||
packet.unleash();
|
||||
|
@ -251,7 +250,6 @@ public class sofa implements Listener {
|
|||
}
|
||||
}
|
||||
e.remove();
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -38,7 +39,7 @@ public class table implements Listener {
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public table(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public table(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -53,10 +54,13 @@ public class table implements Listener {
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
||||
public void spawn(Location loc){
|
||||
List<ArmorStandPacket> packetL = new ArrayList<ArmorStandPacket>();
|
||||
Location middle1 = lutil.getCenter(loc);
|
||||
|
@ -94,15 +98,9 @@ public class table implements Listener {
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(packet.getName().equalsIgnoreCase("#ITEM#")){
|
||||
if(packet.getInventory().getItemInHand()!=null&&!packet.getInventory().getItemInHand().getType().equals(Material.AIR)){
|
||||
|
@ -112,7 +110,6 @@ public class table implements Listener {
|
|||
}
|
||||
}
|
||||
e.remove();
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
}
|
||||
|
||||
|
@ -121,7 +118,7 @@ public class table implements Listener {
|
|||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
if(p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;}
|
||||
|
@ -133,16 +130,13 @@ public class table implements Listener {
|
|||
ItemStack is = packet.getInventory().getItemInHand();
|
||||
w.dropItem(loc, is);
|
||||
}
|
||||
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack is = p.getItemInHand();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
}
|
||||
|
||||
packet.getInventory().setItemInHand(Itemstack);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) break;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack is = p.getItemInHand();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.bukkit.plugin.Plugin;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -38,7 +39,7 @@ public class barrels implements Listener {
|
|||
Block block;
|
||||
Plugin plugin;
|
||||
|
||||
public barrels(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public barrels(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -55,6 +56,10 @@ public class barrels implements Listener {
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -75,7 +80,7 @@ public class barrels implements Listener {
|
|||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){return;}
|
||||
|
@ -88,6 +93,13 @@ public class barrels implements Listener {
|
|||
packet.getInventory().setHelmet(p.getItemInHand());
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = e.getPlayer().getInventory().getHeldItemSlot();
|
||||
ItemStack item = e.getPlayer().getItemInHand();
|
||||
item.setAmount(item.getAmount()-1);
|
||||
e.getPlayer().getInventory().setItem(i, item);
|
||||
e.getPlayer().updateInventory();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -97,7 +109,7 @@ public class barrels implements Listener {
|
|||
if(e.getClickedBlock()==null){return;}
|
||||
if(!e.getClickedBlock().getLocation().equals(block.getLocation())){return;}
|
||||
if(!e.getAction().equals(Action.RIGHT_CLICK_BLOCK)){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), e.getClickedBlock().getLocation(), Material.CAULDRON)){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), e.getClickedBlock().getLocation())){return;}
|
||||
Player p = e.getPlayer();
|
||||
if(!p.getItemInHand().getType().isBlock()&&!p.getItemInHand().getType().equals(Material.AIR)){e.getPlayer().sendMessage("03");return;}
|
||||
e.setCancelled(true);
|
||||
|
@ -109,17 +121,16 @@ public class barrels implements Listener {
|
|||
w.dropItem(loc, is);
|
||||
}
|
||||
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack is = p.getItemInHand();
|
||||
is.setAmount(is.getAmount()-1);
|
||||
p.getInventory().setItem(i, is);
|
||||
p.updateInventory();
|
||||
}
|
||||
|
||||
packet.getInventory().setHelmet(Itemstack);
|
||||
|
||||
manager.updateFurniture(obj);
|
||||
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = e.getPlayer().getInventory().getHeldItemSlot();
|
||||
ItemStack item = e.getPlayer().getItemInHand();
|
||||
item.setAmount(item.getAmount()-1);
|
||||
e.getPlayer().getInventory().setItem(i, item);
|
||||
e.getPlayer().updateInventory();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -127,12 +138,8 @@ public class barrels implements Listener {
|
|||
if(obj==null){return;}
|
||||
if(block==null){return;}
|
||||
if(!e.getBlock().getLocation().equals(block.getLocation())){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation(), Material.CAULDRON)){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
if(!lib.canBuild(e.getPlayer(), e.getBlock().getLocation())){return;}
|
||||
ArmorStandPacket packet = manager.getArmorStandPacketByObjectID(obj).get(0);
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
if(packet.getInventory().getHelmet()!=null&&!packet.getInventory().getHelmet().getType().equals(Material.AIR)){
|
||||
ItemStack is = packet.getInventory().getHelmet();
|
||||
w.dropItem(loc, is);
|
||||
|
@ -140,7 +147,7 @@ public class barrels implements Listener {
|
|||
|
||||
this.block.setType(Material.AIR);
|
||||
block=null;
|
||||
manager.remove(obj);
|
||||
this.obj.remove(e.getPlayer());
|
||||
obj=null;
|
||||
}
|
||||
|
||||
|
@ -148,15 +155,10 @@ public class barrels implements Listener {
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
e.remove();
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
block.setType(Material.AIR);
|
||||
block=null;
|
||||
|
|
|
@ -3,11 +3,11 @@ package de.Ste3et_C0st.Furniture.Objects.outdoor;
|
|||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -16,6 +16,7 @@ import org.bukkit.plugin.Plugin;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -34,7 +35,7 @@ public class campfire_1 implements Listener{
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public campfire_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public campfire_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -49,6 +50,10 @@ public class campfire_1 implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -57,13 +62,15 @@ public class campfire_1 implements Listener{
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
for(ArmorStandPacket packet : manager.getArmorStandPacketByObjectID(obj)){
|
||||
packet.setFire(false);
|
||||
Location location = this.loc.clone();
|
||||
location.add(0, 1.2, 0);
|
||||
lib.getLightManager().removeLight(location);
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
manager.updateFurniture(obj);
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
@ -72,7 +79,7 @@ public class campfire_1 implements Listener{
|
|||
private void onClick(FurnitureClickEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
List<ArmorStandPacket> aspList = manager.getArmorStandPacketByObjectID(obj);
|
||||
|
|
|
@ -10,6 +10,7 @@ import org.bukkit.Location;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -19,6 +20,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -73,7 +75,7 @@ public class campfire_2 implements Listener{
|
|||
Integer timer;
|
||||
ArmorStandPacket armorS;
|
||||
ItemStack is;
|
||||
public campfire_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public campfire_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -95,6 +97,10 @@ public class campfire_2 implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -177,7 +183,7 @@ public class campfire_2 implements Listener{
|
|||
private void onClick(FurnitureClickEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
List<ArmorStandPacket> aspList = manager.getArmorStandPacketByObjectID(obj);
|
||||
|
@ -190,42 +196,56 @@ public class campfire_2 implements Listener{
|
|||
}
|
||||
|
||||
if(itemStack.getType().equals(Material.WATER_BUCKET) && packet.isFire()){
|
||||
packet.setFire(false);
|
||||
manager.updateFurniture(obj);
|
||||
Location loc = middle.clone();
|
||||
loc.add(0, 1.3, 0);
|
||||
lib.getLightManager().removeLight(loc);
|
||||
setfire(false);
|
||||
}else if(itemStack.getType().equals(Material.FLINT_AND_STEEL) && !packet.isFire()){
|
||||
packet.setFire(true);
|
||||
manager.updateFurniture(obj);
|
||||
Location loc = middle.clone();
|
||||
loc.add(0, 1.3, 0);
|
||||
lib.getLightManager().addLight(loc, 15);
|
||||
setfire(true);
|
||||
}else if(items.contains(itemStack.getType()) && packet.isFire() && armorS==null){
|
||||
is = itemStack.clone();
|
||||
is.setAmount(1);
|
||||
|
||||
setGrill();
|
||||
|
||||
if(e.getPlayer().getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = e.getPlayer().getInventory().getHeldItemSlot();
|
||||
ItemStack item = e.getPlayer().getItemInHand();
|
||||
item.setAmount(item.getAmount()-1);
|
||||
e.getPlayer().getInventory().setItem(i, item);
|
||||
e.getPlayer().updateInventory();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setfire(boolean b){
|
||||
for(ArmorStandPacket pack : manager.getArmorStandPacketByObjectID(obj)){
|
||||
if(pack.isMini() && pack.isInvisible()){
|
||||
if((pack.getInventory().getHelmet() == null || pack.getInventory().getHelmet().getType().equals(Material.AIR)) &&
|
||||
(pack.getInventory().getItemInHand() == null || pack.getInventory().getItemInHand().getType().equals(Material.AIR))){
|
||||
pack.setFire(b);
|
||||
Location loc = middle.clone();
|
||||
loc.add(0, 1.3, 0);
|
||||
if(b) lib.getLightManager().addLight(loc, 15);
|
||||
if(!b) lib.getLightManager().removeLight(loc);
|
||||
manager.updateFurniture(obj);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
if(isRunning()){
|
||||
Bukkit.getScheduler().cancelTask(timer);
|
||||
timer=null;
|
||||
w.dropItem(middle.clone().add(0, .5, 0), is);
|
||||
}
|
||||
manager.remove(obj);
|
||||
setfire(false);
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -41,7 +42,7 @@ public class tent_1 implements Listener{
|
|||
Block block;
|
||||
Plugin plugin;
|
||||
|
||||
public tent_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public tent_1(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -61,6 +62,10 @@ public class tent_1 implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(loc);
|
||||
}
|
||||
|
@ -260,17 +265,12 @@ public class tent_1 implements Listener{
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
block.setType(Material.AIR);
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -283,7 +283,7 @@ public class tent_1 implements Listener{
|
|||
if(!p.getItemInHand().getType().equals(Material.INK_SACK)){
|
||||
p.openWorkbench(this.block.getLocation(), true);
|
||||
}else{
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation());
|
||||
Material m = Material.CARPET;
|
||||
color(p, canBuild, m);
|
||||
}
|
||||
|
@ -293,12 +293,10 @@ public class tent_1 implements Listener{
|
|||
private void onBlockBreak(BlockBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), loc, null)){return;}
|
||||
if(!lib.canBuild(e.getPlayer(), loc)){return;}
|
||||
if(obj==null){return;}
|
||||
if(this.block!=null&&e.getBlock().equals(block)){this.block.setType(Material.AIR);this.block=null;}
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
manager.remove(obj);
|
||||
this.obj.remove(e.getPlayer());
|
||||
obj=null;
|
||||
}
|
||||
|
||||
|
@ -310,23 +308,22 @@ public class tent_1 implements Listener{
|
|||
short color = lutil.getFromDey(is.getDurability());
|
||||
for(ArmorStandPacket packet : asp){
|
||||
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
|
||||
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
if(Amount>0){
|
||||
ItemStack is2 = packet.getInventory().getHelmet();
|
||||
if(is2.getDurability() != color){
|
||||
is2.setDurability(color);
|
||||
packet.getInventory().setHelmet(is2);
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -44,7 +45,7 @@ public class tent_2 implements Listener{
|
|||
Plugin plugin;
|
||||
|
||||
Location bedLoc;
|
||||
public tent_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public tent_2(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -76,6 +77,10 @@ public class tent_2 implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
spawn(location);
|
||||
}
|
||||
|
@ -199,19 +204,14 @@ public class tent_2 implements Listener{
|
|||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(obj==null){return;}
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
for(Block bl : block){
|
||||
bl.setType(Material.AIR);
|
||||
}
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -221,6 +221,7 @@ public class tent_2 implements Listener{
|
|||
if(!e.getID().equals(obj)){return;}
|
||||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
|
||||
if(!p.getItemInHand().getType().equals(Material.INK_SACK)){
|
||||
|
||||
for(Block b : block){
|
||||
|
@ -230,7 +231,7 @@ public class tent_2 implements Listener{
|
|||
}
|
||||
}
|
||||
}else{
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation());
|
||||
Material m = Material.CARPET;
|
||||
color(p, canBuild, m);
|
||||
}
|
||||
|
@ -244,7 +245,7 @@ public class tent_2 implements Listener{
|
|||
short color = lutil.getFromDey(is.getDurability());
|
||||
for(ArmorStandPacket packet : asp){
|
||||
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
|
||||
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
if(Amount>0){
|
||||
ItemStack is2 = packet.getInventory().getHelmet();
|
||||
if(is2.getDurability() != color){
|
||||
is2.setDurability(color);
|
||||
|
@ -254,13 +255,12 @@ public class tent_2 implements Listener{
|
|||
}
|
||||
}
|
||||
}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import org.bukkit.util.EulerAngle;
|
|||
import de.Ste3et_C0st.Furniture.Main.main;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureBreakEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureClickEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Events.FurnitureLateSpawnEvent;
|
||||
import de.Ste3et_C0st.FurnitureLib.Utilitis.LocationUtil;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.ArmorStandPacket;
|
||||
import de.Ste3et_C0st.FurnitureLib.main.FurnitureLib;
|
||||
|
@ -43,7 +44,7 @@ public class tent_3 implements Listener{
|
|||
Integer id;
|
||||
Plugin plugin;
|
||||
|
||||
public tent_3(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id){
|
||||
public tent_3(Location location, FurnitureLib lib, String name, Plugin plugin, ObjectID id, Player player){
|
||||
this.lutil = main.getLocationUtil();
|
||||
this.b = lutil.yawToFace(location.getYaw());
|
||||
this.loc = location.getBlock().getLocation();
|
||||
|
@ -59,6 +60,10 @@ public class tent_3 implements Listener{
|
|||
return;
|
||||
}else{
|
||||
this.obj = new ObjectID(name, plugin.getName(), location);
|
||||
if(player!=null){
|
||||
FurnitureLateSpawnEvent lateSpawn = new FurnitureLateSpawnEvent(player, obj, obj.getProjectOBJ(), location);
|
||||
Bukkit.getServer().getPluginManager().callEvent(lateSpawn);
|
||||
}
|
||||
}
|
||||
if(b.equals(BlockFace.WEST)){location=lutil.getRelativ(location, b, 1D, 0D);}
|
||||
if(b.equals(BlockFace.NORTH)){location=lutil.getRelativ(location, b, 1D, 1D);}
|
||||
|
@ -174,18 +179,13 @@ public class tent_3 implements Listener{
|
|||
@EventHandler
|
||||
private void onBreak(FurnitureBreakEvent e){
|
||||
if(e.isCancelled()){return;}
|
||||
if(!e.canBuild(null)){return;}
|
||||
if(!e.canBuild()){return;}
|
||||
if(!e.getID().equals(obj)){return;}
|
||||
if(obj==null){return;}
|
||||
e.setCancelled(true);
|
||||
if(!e.getPlayer().getGameMode().equals(GameMode.CREATIVE)){
|
||||
w.dropItem(loc.add(0,1,0), manager.getProject(obj.getProject()).getCraftingFile().getRecipe().getResult());
|
||||
}
|
||||
main.deleteEffect(manager.getArmorStandPacketByObjectID(obj));
|
||||
bed.setType(Material.AIR);
|
||||
manager.remove(obj);
|
||||
obj=null;
|
||||
e.remove();
|
||||
obj=null;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -196,7 +196,7 @@ public class tent_3 implements Listener{
|
|||
e.setCancelled(true);
|
||||
Player p = e.getPlayer();
|
||||
if(p.getItemInHand().getType().equals(Material.INK_SACK)){
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation(), Material.CARPET);
|
||||
Boolean canBuild = lib.canBuild(p, e.getLocation());
|
||||
Material m = Material.BANNER;
|
||||
color(p, canBuild, m);
|
||||
}else{
|
||||
|
@ -216,11 +216,10 @@ public class tent_3 implements Listener{
|
|||
ItemStack is = p.getItemInHand();
|
||||
Integer Amount = is.getAmount();
|
||||
List<ArmorStandPacket> asp = manager.getArmorStandPacketByObjectID(obj);
|
||||
p.sendMessage(asp.size() + ":" + Amount);
|
||||
DyeColor change = DyeColor.getByColor(lutil.getDyeFromDurability(is.getDurability()));
|
||||
for(ArmorStandPacket packet : asp){
|
||||
if(packet.getInventory().getHelmet()!=null&&packet.getInventory().getHelmet().getType().equals(m)){
|
||||
if(Amount>0||p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
if(Amount>0){
|
||||
ItemStack is2 = packet.getInventory().getHelmet();
|
||||
BannerMeta banner = (BannerMeta) is2.getItemMeta();
|
||||
DyeColor change2 = banner.getBaseColor();
|
||||
|
@ -228,18 +227,17 @@ public class tent_3 implements Listener{
|
|||
banner.setBaseColor(change);
|
||||
is2.setItemMeta(banner);
|
||||
packet.getInventory().setHelmet(is2);
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){Amount--;}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE) || !lib.useGamemode()){Amount--;}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!p.getGameMode().equals(GameMode.CREATIVE)){
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
manager.updateFurniture(obj);
|
||||
if(p.getGameMode().equals(GameMode.CREATIVE) && lib.useGamemode()) return;
|
||||
Integer i = p.getInventory().getHeldItemSlot();
|
||||
ItemStack item = p.getItemInHand();
|
||||
item.setAmount(Amount);
|
||||
p.getInventory().setItem(i, item);
|
||||
p.updateInventory();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
name: DiceFurniture
|
||||
version: 2.0.6
|
||||
version: 2.0.8.1
|
||||
description: Furniture
|
||||
author: Ste3et_C0st
|
||||
website: http://dicecraft.de
|
||||
|
|
Loading…
Reference in New Issue