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

@ -247,7 +247,7 @@ enabledSigns:
#- spawnmob
#- repair
#- time
#- weather
#- weather
# How many times per second can Essentials signs be interacted with per player.
# Values should be between 1-20, 20 being virtually no lag protection.

View File

@ -7,6 +7,7 @@ import java.util.logging.Level;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -151,14 +152,26 @@ public class EssentialsAntiBuildListener implements Listener
if (entity instanceof Player)
{
final User user = ess.getUser(entity);
if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")
&& !metaPermCheck(user, "break", Material.PAINTING.getId()))
final EntityType type = event.getEntity().getType();
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
*/
setGMEventHandler(new GroupManagerEventHandler(this.getServer()));
setGMEventHandler(new GroupManagerEventHandler(this));
onEnable(false);
}

View File

@ -2,7 +2,6 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.data.Group;
import org.bukkit.Bukkit;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
@ -75,12 +74,12 @@ public class GMGroupEvent extends Event {
public void schedule(final GMGroupEvent event) {
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
public void run() {
Bukkit.getServer().getPluginManager().callEvent(event);
GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
}
}, 1) == -1)
GroupManager.logger.warning("Could not schedule GM Event.");

View File

@ -1,7 +1,6 @@
package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
import org.bukkit.Server;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
@ -30,7 +29,6 @@ public class GMSystemEvent extends Event {
//////////////////////////////
protected Action action;
protected Server server;
public GMSystemEvent(Action action) {
@ -51,12 +49,12 @@ public class GMSystemEvent extends Event {
public void schedule(final GMSystemEvent event) {
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
public void run() {
server.getPluginManager().callEvent(event);
GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
}
}, 1) == -1)
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.data.User;
import org.bukkit.Bukkit;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
@ -75,12 +74,12 @@ public class GMUserEvent extends Event {
public void schedule(final GMUserEvent event) {
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
public void run() {
Bukkit.getServer().getPluginManager().callEvent(event);
GroupManager.getGMEventHandler().getServer().getPluginManager().callEvent(event);
}
}, 1) == -1)
GroupManager.logger.warning("Could not schedule GM Event.");

View File

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