This commit is contained in:
Iaccidentally 2013-01-11 12:56:18 -05:00
commit 3afe8d18f4
7 changed files with 43 additions and 27 deletions

View File

@ -7,6 +7,7 @@ import java.util.logging.Level;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -151,14 +152,26 @@ public class EssentialsAntiBuildListener implements Listener
if (entity instanceof Player) if (entity instanceof Player)
{ {
final User user = ess.getUser(entity); final User user = ess.getUser(entity);
if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build") final EntityType type = event.getEntity().getType();
&& !metaPermCheck(user, "break", Material.PAINTING.getId())) final boolean warn = ess.getSettings().warnOnBuildDisallow();
if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{ {
if (ess.getSettings().warnOnBuildDisallow()) if (type == EntityType.PAINTING && !metaPermCheck(user, "break", Material.PAINTING.getId()))
{ {
user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString())); if (warn)
{
user.sendMessage(_("antiBuildBreak", Material.PAINTING.toString()));
}
event.setCancelled(true);
}
else if(type == EntityType.ITEM_FRAME && !metaPermCheck(user, "break", Material.ITEM_FRAME.getId()))
{
if (warn)
{
user.sendMessage(_("antiBuildBreak", Material.ITEM_FRAME.toString()));
}
event.setCancelled(true);
} }
event.setCancelled(true);
} }
} }
} }

View File

@ -88,7 +88,7 @@ public class GroupManager extends JavaPlugin {
/* /*
* Initialize the event handler * Initialize the event handler
*/ */
setGMEventHandler(new GroupManagerEventHandler(this.getServer())); setGMEventHandler(new GroupManagerEventHandler(this));
onEnable(false); onEnable(false);
} }

View File

@ -2,7 +2,6 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.data.Group;
import org.bukkit.Bukkit;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
@ -75,12 +74,12 @@ public class GMGroupEvent extends Event {
public void schedule(final GMGroupEvent event) { public void schedule(final GMGroupEvent event) {
synchronized (GroupManager.getGMEventHandler().getServer()) { synchronized (GroupManager.getGMEventHandler().getServer()) {
if (Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Bukkit.getPluginManager().getPlugin("GroupManager"), new Runnable() { if (GroupManager.getGMEventHandler().getServer().getScheduler().scheduleSyncDelayedTask(GroupManager.getGMEventHandler().getPlugin(), new Runnable() {
@Override @Override
public void run() { public void run() {
Bukkit.getServer().getPluginManager().callEvent(event); GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
} }
}, 1) == -1) }, 1) == -1)
GroupManager.logger.warning("Could not schedule GM Event."); GroupManager.logger.warning("Could not schedule GM Event.");

View File

@ -1,7 +1,6 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.GroupManager;
import org.bukkit.Server;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
@ -30,7 +29,6 @@ public class GMSystemEvent extends Event {
////////////////////////////// //////////////////////////////
protected Action action; protected Action action;
protected Server server;
public GMSystemEvent(Action action) { public GMSystemEvent(Action action) {
@ -51,12 +49,12 @@ public class GMSystemEvent extends Event {
public void schedule(final GMSystemEvent event) { public void schedule(final GMSystemEvent event) {
synchronized (GroupManager.getGMEventHandler().getServer()) { synchronized (GroupManager.getGMEventHandler().getServer()) {
if (server.getScheduler().scheduleSyncDelayedTask(server.getPluginManager().getPlugin("GroupManager"), new Runnable() { if (GroupManager.getGMEventHandler().getServer().getScheduler().scheduleSyncDelayedTask(GroupManager.getGMEventHandler().getPlugin(), new Runnable() {
@Override @Override
public void run() { public void run() {
server.getPluginManager().callEvent(event); GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
} }
}, 1) == -1) }, 1) == -1)
GroupManager.logger.warning("Could not schedule GM Event."); GroupManager.logger.warning("Could not schedule GM Event.");

View File

@ -2,7 +2,6 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.User; import org.anjocaido.groupmanager.data.User;
import org.bukkit.Bukkit;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
@ -75,12 +74,12 @@ public class GMUserEvent extends Event {
public void schedule(final GMUserEvent event) { public void schedule(final GMUserEvent event) {
synchronized (GroupManager.getGMEventHandler().getServer()) { synchronized (GroupManager.getGMEventHandler().getServer()) {
if (Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Bukkit.getPluginManager().getPlugin("GroupManager"), new Runnable() { if (GroupManager.getGMEventHandler().getServer().getScheduler().scheduleSyncDelayedTask(GroupManager.getGMEventHandler().getPlugin(), new Runnable() {
@Override @Override
public void run() { public void run() {
Bukkit.getServer().getPluginManager().callEvent(event); GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
} }
}, 1) == -1) }, 1) == -1)
GroupManager.logger.warning("Could not schedule GM Event."); GroupManager.logger.warning("Could not schedule GM Event.");

View File

@ -1,5 +1,6 @@
package org.anjocaido.groupmanager.events; package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group; import org.anjocaido.groupmanager.data.Group;
import org.anjocaido.groupmanager.data.User; import org.anjocaido.groupmanager.data.User;
import org.bukkit.Server; import org.bukkit.Server;
@ -12,10 +13,15 @@ import org.bukkit.Server;
*/ */
public class GroupManagerEventHandler { public class GroupManagerEventHandler {
protected Server server; private final Server server;
private final GroupManager plugin;
public GroupManagerEventHandler(GroupManager plugin) {
this.plugin = plugin;
this.server = plugin.getServer();
public GroupManagerEventHandler(Server server) {
this.server = server;
} }
protected void callEvent(GMGroupEvent event) { protected void callEvent(GMGroupEvent event) {
@ -58,6 +64,14 @@ public class GroupManagerEventHandler {
callEvent(new GMSystemEvent(action)); callEvent(new GMSystemEvent(action));
} }
/**
* @return the plugin
*/
public GroupManager getPlugin() {
return plugin;
}
/** /**
* @return the server * @return the server
*/ */
@ -67,11 +81,4 @@ public class GroupManagerEventHandler {
} }
/**
* @param server the server to set
*/
public void setServer(Server server) {
this.server = server;
}
} }