This commit is contained in:
Sauilitired
2014-10-18 10:57:45 +02:00
parent 5d73a2fd6a
commit 7e62094152
3 changed files with 547 additions and 240 deletions

View File

@ -645,6 +645,8 @@ public class PlotMain extends JavaPlugin {
getServer().getPluginManager().registerEvents(new PlayerEvents(), this);
defaultFlags();
if (getServer().getPluginManager().getPlugin("CameraAPI") != null) {
cameraAPI = CameraAPI.getInstance();
Camera camera = new Camera();
@ -1223,6 +1225,33 @@ public class PlotMain extends JavaPlugin {
*/
}
// Material.STONE_BUTTON, Material.WOOD_BUTTON,
// Material.LEVER, Material.STONE_PLATE, Material.WOOD_PLATE,
// Material.CHEST, Material.TRAPPED_CHEST, Material.TRAP_DOOR,
// Material.WOOD_DOOR, Material.WOODEN_DOOR,
// Material.DISPENSER, Material.DROPPER
public static HashMap<Material, String> materialFlags = new HashMap<>();
static {
materialFlags.put(Material.WOODEN_DOOR, "wooden_door");
materialFlags.put(Material.IRON_DOOR, "iron_door");
materialFlags.put(Material.STONE_BUTTON, "stone_button");
materialFlags.put(Material.WOOD_BUTTON, "wooden_button");
materialFlags.put(Material.LEVER, "lever");
materialFlags.put(Material.WOOD_PLATE, "wooden_plate");
materialFlags.put(Material.STONE_PLATE, "stone_plate");
materialFlags.put(Material.CHEST, "chest");
materialFlags.put(Material.TRAPPED_CHEST, "trapped_chest");
materialFlags.put(Material.TRAP_DOOR, "trap_door");
materialFlags.put(Material.DISPENSER, "dispenser");
materialFlags.put(Material.DROPPER, "dropper");
}
private static void defaultFlags() {
for(String str : materialFlags.values()) {
FlagManager.addFlag(new AbstractFlag(str));
}
}
public static void addPlotWorld(String world, PlotWorld plotworld, PlotManager manager) {
worlds.put(world, plotworld);
managers.put(world, manager);

View File

@ -34,10 +34,7 @@ import org.bukkit.event.player.*;
import org.bukkit.event.world.StructureGrowEvent;
import org.bukkit.event.world.WorldLoadEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.*;
/**
* Player Events involving plots
@ -496,6 +493,10 @@ public class PlayerEvents implements Listener {
}
}
public boolean getFlagValue(String value) {
return Arrays.asList("true", "on", "enabled", "yes").contains(value.toLowerCase());
}
@EventHandler
public void onInteract(PlayerInteractEvent event) {
if (event.getClickedBlock() == null) {
@ -523,6 +524,13 @@ public class PlayerEvents implements Listener {
// })).contains(event.getClickedBlock().getType())) {
// return;
// }
if(PlotMain.materialFlags.containsKey(event.getClickedBlock().getType())) {
String flag = PlotMain.materialFlags.get(event.getClickedBlock().getType());
if(plot.settings.getFlag(flag) != null && getFlagValue(plot.settings.getFlag(flag).getValue()))
return;
}
if (!plot.hasRights(event.getPlayer())) {
event.setCancelled(true);
}