diff options
author | snowleo <schneeleo@gmail.com> | 2012-01-24 00:52:08 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-01-24 00:52:08 +0100 |
commit | cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4 (patch) | |
tree | a7cbcd229b4a5c3dee2731b95b3ddc1ccd95df4c | |
parent | 6af054631fe04ef7a607f24e459e37836c568100 (diff) | |
parent | f93769dd1dd11ef30c77dd6c9e0e5cf275052715 (diff) | |
download | Essentials-cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4.tar Essentials-cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4.tar.gz Essentials-cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4.tar.lz Essentials-cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4.tar.xz Essentials-cc0e9aa84bc41e341f04202f1f0d2f3c402cf3f4.zip |
Merge branch 'refs/heads/master' into 3.0
The changes to EssChat have not been merged
Conflicts:
Essentials/src/com/earth2me/essentials/Essentials.java
Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
Essentials/src/com/earth2me/essentials/ISettings.java
Essentials/src/com/earth2me/essentials/OfflinePlayer.java
Essentials/src/com/earth2me/essentials/Settings.java
Essentials/src/com/earth2me/essentials/Util.java
Essentials/src/com/earth2me/essentials/listener/EssentialsBlockListener.java
Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java
Essentials/src/com/earth2me/essentials/listener/EssentialsPluginListener.java
Essentials/src/messages.properties
Essentials/src/messages_da.properties
Essentials/src/messages_de.properties
Essentials/src/messages_en.properties
Essentials/src/messages_es.properties
Essentials/src/messages_fr.properties
Essentials/src/messages_nl.properties
EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java
EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java
EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java
EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java
EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java
EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIP.java
EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIPPlayerListener.java
EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java
EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java
EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPPPlayerListener.java
64 files changed, 654 insertions, 462 deletions
diff --git a/.gitignore b/.gitignore index 8d1266938..21875b641 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,6 @@ /.idea *.iml /EssentialsSigns/nbproject/private/ -/Essentials2Compat/nbproject/private/
\ No newline at end of file +/Essentials2Compat/nbproject/private/ +/Essentials2Compat/dist/ +/Essentials2Compat/build/
\ No newline at end of file diff --git a/Essentials/nbproject/project.properties b/Essentials/nbproject/project.properties index b6b6c3142..d9a76ba1e 100644 --- a/Essentials/nbproject/project.properties +++ b/Essentials/nbproject/project.properties @@ -71,7 +71,7 @@ file.reference.craftbukkit.jar=../lib/craftbukkit.jar file.reference.iCo4.jar=../lib/iCo4.jar file.reference.iCo5.jar=../lib/iCo5.jar file.reference.iCo6.jar=../lib/iCo6.jar -file.reference.lombok-0.10.1.jar=../lib/lombok-0.10.1.jar +file.reference.lombok.jar=../lib/lombok-0.10.8.jar file.reference.MultiCurrency.jar=../lib/MultiCurrency.jar file.reference.Permissions3.jar=../lib/Permissions3.jar file.reference.PermissionsBukkit-1.2.jar=../lib/PermissionsBukkit-1.2.jar @@ -91,7 +91,7 @@ javac.classpath=\ ${file.reference.PermissionsEx.jar}:\ ${file.reference.bPermissions.jar}:\ ${file.reference.PermissionsBukkit-1.2.jar}:\ - ${file.reference.lombok-0.10.1.jar}:\ + ${file.reference.lombok.jar}:\ ${reference.EssentialsGroupManager.jar}:\ ${file.reference.bukkit.jar}:\ ${file.reference.craftbukkit.jar}:\ diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 400ef4f81..7a331c3d0 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -20,7 +20,6 @@ package com.earth2me.essentials; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.api.*; import com.earth2me.essentials.craftbukkit.BetterLocation; -import com.earth2me.essentials.craftbukkit.ItemDupeFix; import com.earth2me.essentials.listener.*; import com.earth2me.essentials.perm.PermissionsHandler; import com.earth2me.essentials.register.payment.Methods; @@ -41,10 +40,10 @@ import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; import org.bukkit.plugin.InvalidDescriptionException; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; @@ -55,7 +54,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1713; + public static final int BUKKIT_VERSION = 1791; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); @@ -183,14 +182,14 @@ public class Essentials extends JavaPlugin implements IEssentials LOGGER.log(Level.SEVERE, _("essentialsHelp1")); } LOGGER.log(Level.SEVERE, exception.toString()); - pm.registerEvent(Type.PLAYER_JOIN, new PlayerListener() + pm.registerEvents(new Listener() { - @Override - public void onPlayerJoin(PlayerJoinEvent event) + @EventHandler(priority = EventPriority.LOW) + public void onPlayerJoin(final PlayerJoinEvent event) { event.getPlayer().sendMessage("Essentials failed to load, read the log file."); } - }, Priority.Low, this); + }, this); for (Player player : getServer().getOnlinePlayers()) { player.sendMessage("Essentials failed to load, read the log file."); @@ -201,50 +200,28 @@ public class Essentials extends JavaPlugin implements IEssentials backup = new Backup(this); permissionsHandler = new PermissionsHandler(this); final EssentialsPluginListener serverListener = new EssentialsPluginListener(this); - pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this); - pm.registerEvent(Type.PLUGIN_DISABLE, serverListener, Priority.Low, this); + pm.registerEvents(serverListener, this); reloadList.add(serverListener); final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(this); - pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Lowest, this); - pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this); - pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_EGG_THROW, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this); - pm.registerEvent(Type.PLAYER_CHANGED_WORLD, playerListener, Priority.Normal, this); - pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Monitor, this); - pm.registerEvent(Type.PLAYER_PICKUP_ITEM, playerListener, Priority.Low, this); - pm.registerEvent(Type.PLAYER_TELEPORT, new ItemDupeFix(), Priority.Monitor, this); + pm.registerEvents(playerListener, this); final EssentialsBlockListener blockListener = new EssentialsBlockListener(this); - pm.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Lowest, this); + pm.registerEvents(blockListener, this); final EssentialsEntityListener entityListener = new EssentialsEntityListener(this); - pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Lowest, this); - pm.registerEvent(Type.ENTITY_COMBUST, entityListener, Priority.Lowest, this); - pm.registerEvent(Type.ENTITY_DEATH, entityListener, Priority.Lowest, this); - pm.registerEvent(Type.ENTITY_REGAIN_HEALTH, entityListener, Priority.Lowest, this); - pm.registerEvent(Type.FOOD_LEVEL_CHANGE, entityListener, Priority.Lowest, this); + pm.registerEvents(entityListener, this); jails = new Jails(this); reloadList.add(jails); - pm.registerEvent(Type.ENTITY_EXPLODE, tntListener, Priority.High, this); - - pm.registerEvent(Type.WORLD_LOAD, BetterLocation.getListener(), Priority.Monitor, this); - pm.registerEvent(Type.WORLD_UNLOAD, BetterLocation.getListener(), Priority.Monitor, this); - getServer().getScheduler().scheduleAsyncRepeatingTask(this, BetterLocation.getListener(), 200, 200); + pm.registerEvents(tntListener, this); + final EssentialsTimer timer = new EssentialsTimer(this); getServer().getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100); Economy.setEss(this); execTimer.mark("RegListeners"); - LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Util.joinList(this.getDescription().getAuthors()))); final String timeroutput = execTimer.end(); if (getSettings().isDebug()) { diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java index 6f2065b46..6ca05c2a0 100644 --- a/Essentials/src/com/earth2me/essentials/Util.java +++ b/Essentials/src/com/earth2me/essentials/Util.java @@ -620,7 +620,8 @@ public final class Util perm.recalculatePermissibles(); return perm; } - private static transient final Pattern COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-FKa-fk]"); + private static transient final Pattern VANILLA_COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-FKa-fk]"); + private static transient final Pattern EASY_COLOR_PATTERN = Pattern.compile("&([0-9a-fk])"); public static String stripColor(final String input) { @@ -629,6 +630,16 @@ public final class Util return null; } - return COLOR_PATTERN.matcher(input).replaceAll(""); + return VANILLA_COLOR_PATTERN.matcher(input).replaceAll(""); + } + + public static String replaceColor(final String input) + { + if (input == null) + { + return null; + } + + return EASY_COLOR_PATTERN.matcher(input).replaceAll("\u00a7$1"); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandme.java b/Essentials/src/com/earth2me/essentials/commands/Commandme.java index 252244cba..e657b833d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandme.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandme.java @@ -23,7 +23,7 @@ public class Commandme extends EssentialsCommand String message = getFinalArg(args, 0); if (user.isAuthorized("essentials.chat.color")) { - message = message.replaceAll("&([0-9a-fk])", "§$1"); + message = Util.replaceColor(message); } else { message = Util.stripColor(message); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandmsg.java b/Essentials/src/com/earth2me/essentials/commands/Commandmsg.java index a61d6c49c..4c0b0a76c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandmsg.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandmsg.java @@ -33,7 +33,7 @@ public class Commandmsg extends EssentialsCommand } if (user.isAuthorized("essentials.msg.color")) { - message = message.replaceAll("&([0-9a-fk])", "§$1"); + message = Util.replaceColor(message); } else { @@ -42,7 +42,7 @@ public class Commandmsg extends EssentialsCommand } else { - message = message.replaceAll("&([0-9a-fk])", "§$1"); + message = Util.replaceColor(message); } final String translatedMe = _("me"); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandr.java b/Essentials/src/com/earth2me/essentials/commands/Commandr.java index 48a723513..3b20eb5de 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandr.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandr.java @@ -28,7 +28,7 @@ public class Commandr extends EssentialsCommand IUser user = ess.getUser((Player)sender); if (user.isAuthorized("essentials.msg.color")) { - message = message.replaceAll("&([0-9a-fk])", "§$1"); + message = Util.replaceColor(message); } else { @@ -39,7 +39,7 @@ public class Commandr extends EssentialsCommand } else { - message = message.replaceAll("&([0-9a-fk])", "§$1"); + message = Util.replaceColor(message); replyTo = Console.getConsoleReplyTo(); senderName = Console.NAME; } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/DummyOfflinePlayer.java b/Essentials/src/com/earth2me/essentials/craftbukkit/DummyOfflinePlayer.java index 93efc8720..66adf7b6f 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/DummyOfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/DummyOfflinePlayer.java @@ -2,6 +2,7 @@ package com.earth2me.essentials.craftbukkit; import java.util.Map; import org.bukkit.Bukkit; +import org.bukkit.Location; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -89,5 +90,11 @@ public class DummyOfflinePlayer implements OfflinePlayer { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public Location getBedSpawnLocation() + { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index bd4d09111..e78e508f7 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -1,7 +1,9 @@ package com.earth2me.essentials.craftbukkit; import java.io.File; +import java.util.Collection; import java.util.List; +import java.util.Set; import java.util.UUID; import org.bukkit.*; import org.bukkit.block.Biome; @@ -10,6 +12,7 @@ import org.bukkit.entity.*; import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.ChunkGenerator; import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; import org.bukkit.util.Vector; @@ -521,4 +524,28 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public <T extends Entity> Collection<T> getEntitiesByClass(Class<T>... types) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public WorldType getWorldType() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Set<String> getListeningPluginChannels() + { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/ItemDupeFix.java b/Essentials/src/com/earth2me/essentials/craftbukkit/ItemDupeFix.java deleted file mode 100644 index 243049e0a..000000000 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/ItemDupeFix.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.earth2me.essentials.craftbukkit; - -import net.minecraft.server.EntityPlayer; -import org.bukkit.craftbukkit.entity.CraftPlayer; -import org.bukkit.event.player.PlayerListener; -import org.bukkit.event.player.PlayerTeleportEvent; - - -public class ItemDupeFix extends PlayerListener -{ - @Override - public void onPlayerTeleport(final PlayerTeleportEvent event) - { - if (event.isCancelled()) - { - return; - } - final CraftPlayer player = (CraftPlayer)event.getPlayer(); - final EntityPlayer entity = player.getHandle(); - if (entity.activeContainer != entity.defaultContainer) - { - entity.closeInventory(); - } - } -} diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/SetBed.java b/Essentials/src/com/earth2me/essentials/craftbukkit/SetBed.java deleted file mode 100644 index 331d14139..000000000 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/SetBed.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.earth2me.essentials.craftbukkit; - -import java.util.logging.Level; -import java.util.logging.Logger; -import net.minecraft.server.ChunkCoordinates; -import org.bukkit.block.Block; -import org.bukkit.craftbukkit.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class SetBed -{ - public static void setBed(final Player player, final Block block) - { - try - { - final CraftPlayer cplayer = (CraftPlayer)player; - cplayer.getHandle().a(new ChunkCoordinates(block.getX(), block.getY(), block.getZ())); - } - catch (Throwable ex) - { - Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); - } - } -} diff --git a/Essentials/src/com/earth2me/essentials/listener/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/listener/EssentialsBlockListener.java index 760b9cb90..0b461eb91 100644 --- a/Essentials/src/com/earth2me/essentials/listener/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/listener/EssentialsBlockListener.java @@ -4,12 +4,14 @@ import com.earth2me.essentials.Util; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IUser; import org.bukkit.GameMode; -import org.bukkit.event.block.BlockListener; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -public class EssentialsBlockListener extends BlockListener +public class EssentialsBlockListener implements Listener { private final transient IEssentials ess; @@ -19,7 +21,7 @@ public class EssentialsBlockListener extends BlockListener this.ess = ess; } - @Override + @EventHandler(priority = EventPriority.LOWEST) public void onBlockPlace(final BlockPlaceEvent event) { if (event.isCancelled()) diff --git a/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java index 6e5ff855a..5250fba52 100644 --- a/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java @@ -5,7 +5,6 @@ import com.earth2me.essentials.Util; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.ISettings; import com.earth2me.essentials.api.IUser; -import com.earth2me.essentials.craftbukkit.SetBed; import com.earth2me.essentials.textreader.IText; import com.earth2me.essentials.textreader.KeywordReplacer; import com.earth2me.essentials.textreader.TextInput; @@ -23,6 +22,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.*; @@ -30,7 +32,7 @@ import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.inventory.ItemStack; -public class EssentialsPlayerListener extends PlayerListener +public class EssentialsPlayerListener implements Listener { private static final Logger LOGGER = Logger.getLogger("Minecraft"); private final transient Server server; @@ -43,7 +45,7 @@ public class EssentialsPlayerListener extends PlayerListener this.server = parent.getServer(); } - @Override + @EventHandler(priority = EventPriority.NORMAL) public void onPlayerRespawn(final PlayerRespawnEvent event) { final IUser user = ess.getUser(event.getPlayer()); @@ -51,7 +53,7 @@ public class EssentialsPlayerListener extends PlayerListener user.updateDisplayName(); } - @Override + @EventHandler(priority = EventPriority.LOWEST) public void onPlayerChat(final PlayerChatEvent event) { @Cleanup @@ -76,7 +78,7 @@ public class EssentialsPlayerListener extends PlayerListener user.updateDisplayName(); } - @Override + @EventHandler(priority = EventPriority.HIGH) public void onPlayerMove(final PlayerMoveEvent event) { if (event.isCancelled()) @@ -115,7 +117,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerQuit(final PlayerQuitEvent event) { @Cleanup @@ -137,7 +139,7 @@ public class EssentialsPlayerListener extends PlayerListener user.dispose(); } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(final PlayerJoinEvent event) { ess.getBackup().startTask(); @@ -193,7 +195,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.HIGH) public void onPlayerLogin(final PlayerLoginEvent event) { if (event.getResult() != Result.ALLOWED && event.getResult() != Result.KICK_FULL && event.getResult() != Result.KICK_BANNED) @@ -228,7 +230,7 @@ public class EssentialsPlayerListener extends PlayerListener user.updateCompass(); } - @Override + @EventHandler(priority = EventPriority.HIGH) public void onPlayerTeleport(final PlayerTeleportEvent event) { if (event.isCancelled()) @@ -250,7 +252,7 @@ public class EssentialsPlayerListener extends PlayerListener user.updateCompass(); } - @Override + @EventHandler(priority = EventPriority.HIGH) public void onPlayerEggThrow(final PlayerEggThrowEvent event) { @Cleanup @@ -264,7 +266,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.HIGH) public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) { @Cleanup @@ -284,7 +286,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.NORMAL) public void onPlayerAnimation(final PlayerAnimationEvent event) { final IUser user = ess.getUser(event.getPlayer()); @@ -342,7 +344,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) { if (event.isCancelled()) @@ -371,7 +373,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerChangedWorld(final PlayerChangedWorldEvent event) { @Cleanup @@ -397,7 +399,7 @@ public class EssentialsPlayerListener extends PlayerListener } } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerInteract(final PlayerInteractEvent event) { if (event.isCancelled()) @@ -414,11 +416,11 @@ public class EssentialsPlayerListener extends PlayerListener settings.acquireReadLock(); if (settings.getData().getCommands().getHome().isUpdateBedAtDaytime() && event.getClickedBlock().getType() == Material.BED_BLOCK) { - SetBed.setBed(event.getPlayer(), event.getClickedBlock()); + event.getPlayer().setBedSpawnLocation(event.getClickedBlock().getLocation()); } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onPlayerPickupItem(final PlayerPickupItemEvent event) { if (event.isCancelled()) diff --git a/Essentials/src/com/earth2me/essentials/listener/EssentialsPluginListener.java b/Essentials/src/com/earth2me/essentials/listener/EssentialsPluginListener.java index 8e1f8f374..8d8879f4a 100644 --- a/Essentials/src/com/earth2me/essentials/listener/EssentialsPluginListener.java +++ b/Essentials/src/com/earth2me/essentials/listener/EssentialsPluginListener.java @@ -3,35 +3,35 @@ package com.earth2me.essentials.listener; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IReload; import java.util.logging.Level; -import java.util.logging.Logger; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.event.server.ServerListener; -public class EssentialsPluginListener extends ServerListener implements IReload +public class EssentialsPluginListener implements Listener, IReload { private final transient IEssentials ess; - private static final Logger LOGGER = Logger.getLogger("Minecraft"); - + public EssentialsPluginListener(final IEssentials ess) { super(); this.ess = ess; } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPluginEnable(final PluginEnableEvent event) { ess.getPermissionsHandler().checkPermissions(); ess.getCommandHandler().addPlugin(event.getPlugin()); if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager())) { - LOGGER.log(Level.INFO, "[Essentials] Payment method found ({0} version: {1})", new Object[]{ess.getPaymentMethod().getMethod().getName(), ess.getPaymentMethod().getMethod().getVersion()}); + ess.getLogger().log(Level.INFO, "Payment method found ({0} version: {1})", new Object[]{ess.getPaymentMethod().getMethod().getName(), ess.getPaymentMethod().getMethod().getVersion()}); } } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPluginDisable(final PluginDisableEvent event) { ess.getPermissionsHandler().checkPermissions(); @@ -40,7 +40,7 @@ public class EssentialsPluginListener extends ServerListener implements IReload if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin())) { ess.getPaymentMethod().reset(); - LOGGER.log(Level.INFO, "[Essentials] Payment method was disabled. No longer accepting payments."); + ess.getLogger().log(Level.INFO, "Payment method was disabled. No longer accepting payments."); } } diff --git a/Essentials/src/com/earth2me/essentials/listener/TNTExplodeListener.java b/Essentials/src/com/earth2me/essentials/listener/TNTExplodeListener.java index 1f0035d76..a16710617 100644 --- a/Essentials/src/com/earth2me/essentials/listener/TNTExplodeListener.java +++ b/Essentials/src/com/earth2me/essentials/listener/TNTExplodeListener.java @@ -4,11 +4,13 @@ import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.craftbukkit.FakeExplosion; import java.util.concurrent.atomic.AtomicBoolean; import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityListener; -public class TNTExplodeListener extends EntityListener implements Runnable +public class TNTExplodeListener implements Listener, Runnable { private final transient IEssentials ess; private transient AtomicBoolean enabled = new AtomicBoolean(false); @@ -34,7 +36,7 @@ public class TNTExplodeListener extends EntityListener implements Runnable } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onEntityExplode(final EntityExplodeEvent event) { if (!enabled.get()) diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java index c7757f66b..84ce816cf 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java @@ -121,8 +121,19 @@ public class VaultEco implements Method @Override public boolean isCompatible(Plugin plugin) { - RegisteredServiceProvider<Economy> ecoPlugin = plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class); - return plugin instanceof Vault && ecoPlugin != null && !ecoPlugin.getProvider().getName().equals("Essentials Economy"); + try + { + RegisteredServiceProvider<Economy> ecoPlugin = plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class); + return plugin instanceof Vault && ecoPlugin != null && !ecoPlugin.getProvider().getName().equals("Essentials Economy"); + } + catch (LinkageError e) + { + return false; + } + catch (Exception e) + { + return false; + } } @Override diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 289e69fe6..1bf1ffca7 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77You can talk again cantFindGeoIpDB=Can''t find GeoIP database! cantReadGeoIpDB=Failed to read GeoIP database! cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0} +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Command {0} failed: commandHelpFailedForPlugin=Error getting help for: {0} commandNotLoaded=\u00a7cCommand {0} is improperly loaded. @@ -169,7 +171,6 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online. listHiddenTag = \u00a77[HIDDEN]\u00a7f loadWarpError=Failed to load warp {0} -loadinfo=Loaded {0} build {1} by: {2} localFormat=Local: <{0}> {1} mailClear=\u00a7cTo mark your mail as read, type /mail clear mailCleared=\u00a77Mail Cleared! @@ -408,4 +409,3 @@ years=years youAreHealed=\u00a77You have been healed. youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail. - diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index a78db7a37..bef1683a7 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77Du kan nu snakke igen. cantFindGeoIpDB=Kan ikke finde GeoIP database! cantReadGeoIpDB=Fejl ved afl\u00e6sning af GeoIP database! cantSpawnItem=\u00a7cDu har ikke tilladelse til at skabe tingen.{0} +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Kommandoen {0} fejlede: commandHelpFailedForPlugin=Fejl ved hentning af hj\u00e6lp til: {0} commandNotLoaded=\u00a7cKommando {0} er ikke indl\u00e6st korrekt. @@ -169,7 +171,6 @@ listAmount = \u00a79Der er \u00a7c{0}\u00a79 ud af maksimum\u00a7c{1}\u00a79 spi listAmountHidden = \u00a79Der er \u00a7c{0}\u00a77/{1}\u00a79 ud af maksimum \u00a7c{2}\u00a79 spillere online. listHiddenTag = \u00a77[HIDDEN]\u00a7f loadWarpError=Kunne ikke l\u00c3\u00a6se warp {0} -loadinfo=Loadede {0} build {1} af {2} localFormat=Local: <{0}> {1} mailClear=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear mailCleared=\u00a77Flaskepot ryddet! diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 3825e8b9c..6431f6f94 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77Du kannst wieder sprechen. cantFindGeoIpDB=Kann GeoIP-Datenbank nicht finden! cantReadGeoIpDB=Fehler beim Einlesen der GeoIP-Datenbank! cantSpawnItem=\u00a7cDu darfst {0} nicht erzeugen. +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Befehl {0} scheiterte: commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0} commandNotLoaded=\u00a7cBefehl {0} ist nicht richtig geladen. @@ -169,7 +171,6 @@ listAmount = \u00a79Es sind \u00a7c{0}\u00a79 von maximal \u00a7c{1}\u00a79 Spie listAmountHidden = \u00a79Es sind \u00a7c{0}\u00a77/{1}\u00a79 von maximal \u00a7c{2}\u00a79 Spielern online. listHiddenTag = \u00a77[Versteckt]\u00a7f loadWarpError=Fehler beim Laden von Warp-Punkt {0} -loadinfo=Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo localFormat=Lokal: <{0}> {1} mailClear=\u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear mailCleared=\u00a77Nachrichten gel\u00f6scht! @@ -407,4 +408,3 @@ year=Jahr years=Jahre youAreHealed=\u00a77Du wurdest geheilt. youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen. - diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 289e69fe6..389d9c955 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77You can talk again cantFindGeoIpDB=Can''t find GeoIP database! cantReadGeoIpDB=Failed to read GeoIP database! cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0} +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Command {0} failed: commandHelpFailedForPlugin=Error getting help for: {0} commandNotLoaded=\u00a7cCommand {0} is improperly loaded. @@ -169,7 +171,6 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online. listHiddenTag = \u00a77[HIDDEN]\u00a7f loadWarpError=Failed to load warp {0} -loadinfo=Loaded {0} build {1} by: {2} localFormat=Local: <{0}> {1} mailClear=\u00a7cTo mark your mail as read, type /mail clear mailCleared=\u00a77Mail Cleared! @@ -292,7 +293,11 @@ requestDenied=\u00a77Teleport request denied. requestDeniedFrom=\u00a77{0} denied your teleport request. requestSent=\u00a77Request sent to {0}\u00a77. requestTimedOut=\u00a7cTeleport request has timed out +<<<<<<< HEAD requiredBukkit= * ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org. +======= +requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org. +>>>>>>> refs/heads/master returnPlayerToJailError=Error occurred when trying to return player to jail. second=second seconds=seconds @@ -407,5 +412,3 @@ year=year years=years youAreHealed=\u00a77You have been healed. youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail. - - diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index a118d000e..1f58b9840 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77Ya puedes hablar de nuevo cantFindGeoIpDB=No se puede encontrar la bases de datos del Geo IP cantReadGeoIpDB=Error al intentar leer la base de datos del Geo IP cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0} +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Command {0} fallado: commandHelpFailedForPlugin=Error obteniendo ayuda para: {0} commandNotLoaded=\u00a7cCommand {0} esta cargado incorrectamente. @@ -169,7 +171,6 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online. listHiddenTag = \u00a77[HIDDEN]\u00a7f loadWarpError=Error al cargar el tenetransporte {0} -loadinfo=Cargado {0}, construido {1} por: {2} localFormat=Local: <{0}> {1} mailClear=\u00a7cPara marcar tu email como leido, escribe /mail clear mailCleared=\u00a77Email limpiado! diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 22903b279..da56fedce 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77Vous pouvez de nouveau parler. cantFindGeoIpDB=N''arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP! cantReadGeoIpDB=Echec de la lecture de la base de donn\u00e9es GeoIP! cantSpawnItem=\u00a7cVous n''avez pas le droit de faire appara\u00c3\u00aetre {0} +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=\u00c9chec de la commande {0} : commandHelpFailedForPlugin=Erreur d''obtention d''aide pour : {0} commandNotLoaded=\u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e. @@ -169,7 +171,6 @@ listAmount = \u00a79Il y a \u00a7c{0}\u00a79 joueurs en ligne sur \u00a7c{1}\u00 listAmountHidden = \u00a79Il y a \u00a7c{0}\u00a77/{1}\u00a79 sur un maximum de \u00a7c{2}\u00a79 joueurs en ligne. listHiddenTag = \u00a77[MASQU\u00c9]\u00a7f loadWarpError=\u00c9chec du chargement du raccourci {0} -loadinfo={0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9 localFormat=Locale :<{0}> {1} mailClear=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear mailCleared=\u00a77Courrier supprim\u00e9 ! @@ -407,4 +408,3 @@ year=ann\u00e9e years=ann\u00e9es youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9. youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier. - diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 185c400b3..0bedee060 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -33,6 +33,8 @@ canTalkAgain=\u00a77Je kan weer praten. cantFindGeoIpDB=De GeoIP database kon niet gevonden worden! cantReadGeoIpDB=Fout bij het lezen van de GeoIP database! cantSpawnItem=\u00a7cJe bent niet bevoegd om {0} te spawnen. +chatTypeLocal=[L] +chatTypeSpy=[Spy] commandFailed=Opdracht {0} mislukt: commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0} commandNotLoaded=\u00a7cOpdracht {0} is fout geladen. @@ -169,7 +171,6 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online. listHiddenTag = \u00a77[HIDDEN]\u00a7f loadWarpError=Fout bij het laden van warp {0} -loadinfo=Build {1} geladen {0} van {2} localFormat=Local: <{0}> {1} mailClear=\u00a7cType /mail clear, om ej berichten als gelezen te markeren. mailCleared=\u00a77Bericht geklaard! diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 35e5f6f53..d54ca031a 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -22,6 +22,7 @@ import org.bukkit.map.MapView; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.ServicesManager; +import org.bukkit.plugin.messaging.Messenger; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitWorker; @@ -545,6 +546,12 @@ public class FakeServer implements Server { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public Location getBedSpawnLocation() + { + throw new UnsupportedOperationException("Not supported yet."); + } }; } @@ -619,4 +626,22 @@ public class FakeServer implements Server { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public Messenger getMessenger() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Set<String> getListeningPluginChannels() + { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/ChatStore.java b/EssentialsChat/src/com/earth2me/essentials/chat/ChatStore.java new file mode 100644 index 000000000..bd6a9adab --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/ChatStore.java @@ -0,0 +1,51 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.api.IEssentials; +import com.earth2me.essentials.api.IUser; + + +public class ChatStore +{ + private final transient IUser user; + private final transient String type; + private final transient Trade charge; + private long radius; + + ChatStore(final IEssentials ess, final IUser user, final String type) + { + this.user = user; + this.type = type; + this.charge = new Trade(getLongType(), ess); + } + + public IUser getUser() + { + return user; + } + + public Trade getCharge() + { + return charge; + } + + public String getType() + { + return type; + } + + public final String getLongType() + { + return type.length() > 0 ? "chat" : "chat-" + type; + } + + public long getRadius() + { + return radius; + } + + public void setRadius(final long radius) + { + this.radius = radius; + } +} diff --git a/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIP.java b/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIP.java index 783684ef8..2fa8b0adf 100644 --- a/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIP.java +++ b/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIP.java @@ -3,17 +3,12 @@ package com.earth2me.essentials.geoip; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.api.IEssentials; import java.util.logging.Level; -import java.util.logging.Logger; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public class EssentialsGeoIP extends JavaPlugin { - private static final Logger logger = Logger.getLogger("Minecraft"); - public EssentialsGeoIP() { } @@ -30,18 +25,16 @@ public class EssentialsGeoIP extends JavaPlugin final IEssentials ess = (IEssentials)pm.getPlugin("Essentials"); if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) { - logger.log(Level.WARNING, _("versionMismatchAll")); + getLogger().log(Level.WARNING, _("versionMismatchAll")); } if (!ess.isEnabled()) { this.setEnabled(false); return; } final EssentialsGeoIPPlayerListener playerListener = new EssentialsGeoIPPlayerListener(this, ess); - pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this); + pm.registerEvents(playerListener, this); ess.addReloadListener(playerListener); - logger.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), "essentials team")); - - logger.log(Level.INFO, "This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com/."); + getLogger().log(Level.INFO, "This product includes GeoLite data created by MaxMind, available from http://www.maxmind.com/."); } } diff --git a/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIPPlayerListener.java b/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIPPlayerListener.java index aa54dbf25..19cc06dc4 100644 --- a/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIPPlayerListener.java +++ b/EssentialsGeoIP/src/com/earth2me/essentials/geoip/EssentialsGeoIPPlayerListener.java @@ -16,12 +16,14 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.zip.GZIPInputStream; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; import org.bukkit.plugin.Plugin; -public class EssentialsGeoIPPlayerListener extends PlayerListener implements IReload +public class EssentialsGeoIPPlayerListener implements Listener, IReload { private transient LookupService ls = null; private static final Logger LOGGER = Logger.getLogger("Minecraft"); @@ -39,7 +41,7 @@ public class EssentialsGeoIPPlayerListener extends PlayerListener implements IRe onReload(); } - @Override + @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(final PlayerJoinEvent event) { final IUser u = ess.getUser(event.getPlayer()); diff --git a/EssentialsGroupBridge/.classpath b/EssentialsGroupBridge/.classpath index a1bc47710..9330eb06e 100644 --- a/EssentialsGroupBridge/.classpath +++ b/EssentialsGroupBridge/.classpath @@ -2,8 +2,8 @@ <classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="../lib/bukkit-0.0.1-SNAPSHOT.jar"/>
- <classpathentry kind="lib" path="../lib/craftbukkit-0.0.1-SNAPSHOT.jar"/>
+ <classpathentry kind="lib" path="../lib/bukkit.jar"/>
+ <classpathentry kind="lib" path="../lib/craftbukkit.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/EssentialsGroupManager"/>
<classpathentry kind="lib" path="../lib/Permissions3.jar"/>
<classpathentry kind="output" path="bin"/>
diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/OverrideListener.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/OverrideListener.java new file mode 100644 index 000000000..762e42b49 --- /dev/null +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/OverrideListener.java @@ -0,0 +1,25 @@ +package com.nijikokun.bukkit.Permissions;
+
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.server.PluginEnableEvent;
+import org.bukkit.event.Listener;
+
+
+
+public class OverrideListener implements Listener {
+
+ Permissions permClass;
+
+ OverrideListener(Permissions instance) {
+ this.permClass = instance;
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPluginEnable(PluginEnableEvent event) {
+ if (event.getPlugin().getDescription().getName().equals("GroupManager")) {
+ permClass.setGM(event.getPlugin());
+ }
+ }
+
+}
\ No newline at end of file diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index 5d027cccc..99fd18ce8 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -4,10 +4,6 @@ import com.nijiko.permissions.PermissionHandler; import java.util.logging.Logger; //import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; -import org.bukkit.event.server.PluginEnableEvent; -import org.bukkit.event.server.ServerListener; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; @@ -41,15 +37,7 @@ public class Permissions extends JavaPlugin { setGM(p); } else { if (this.getServer() != null) { - this.getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, new ServerListener() { - - @Override - public void onPluginEnable(PluginEnableEvent event) { - if (event.getPlugin().getDescription().getName().equals("GroupManager")) { - Permissions.this.setGM(event.getPlugin()); - } - } - }, Priority.Normal, this); + this.getServer().getPluginManager().registerEvents(new OverrideListener(this), this); } } } else { @@ -62,7 +50,7 @@ public class Permissions extends JavaPlugin { } } - private void setGM(final Plugin p) { + public void setGM(final Plugin p) { //GroupManager groupManager = (GroupManager) p; ((NijikoPermissionsProxy) Security).setGM(p); } @@ -79,4 +67,9 @@ public class Permissions extends JavaPlugin { Security = new NijikoPermissionsProxy(null); } } + + + } + + diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 876dc28b7..456283c63 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -103,4 +103,9 @@ v 1.8: - Catch NullPointerErrors generated by blank permission nodes.
- Removed '- bukkit.command' form the globalgroups permission nodes.
v 1.9:
- - Optimize populating Bukkit perms so we no longer calculate the child nodes (Bukkit already does this).
\ No newline at end of file + - Optimize populating Bukkit perms so we no longer calculate the child nodes (Bukkit already does this).
+ - Added a tidy error message for invalid permission entries in GlobalGroups.
+ - Better optimize assembling of a players permissions and allow the * node to populate all registered superperms.
+ - Fixed text when adding a subgroup to not say the player was moved.
+ - Update to new Bukkit Event system.
+ - Update GroupManagerBridge for new event system.
\ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java index f1bf10985..d9715d4be 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GlobalGroups.java @@ -125,8 +125,12 @@ public class GlobalGroups { if (element != null)
if (element instanceof List) {
- for (String node : (List<String>) element) {
- newGroup.addPermission(node);
+ try {
+ for (String node : (List<String>) element) {
+ newGroup.addPermission(node);
+ }
+ } catch (ClassCastException e) {
+ throw new IllegalArgumentException("Invalid permission node for global group: " + groupName);
}
} else if (element instanceof String) {
newGroup.addPermission((String) element);
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 8134a1c23..db2e60fda 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -38,8 +38,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Event; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.world.WorldListener; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.ServicePriority; import org.bukkit.plugin.java.JavaPlugin; @@ -82,7 +80,7 @@ public class GroupManager extends JavaPlugin { private GMLoggerHandler ch; public static BukkitPermissions BukkitPermissions; - private static WorldListener WorldEvents; + private static GMWorldListener WorldEvents; public static final Logger logger = Logger.getLogger(GroupManager.class.getName()); // PERMISSIONS FOR COMMAND BEING LOADED @@ -493,7 +491,7 @@ public class GroupManager extends JavaPlugin { } // PARECE OK auxUser.addSubGroup(auxGroup); - sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "'."); + sender.sendMessage(ChatColor.YELLOW + "You added subgroup '" + auxGroup.getName() + "' to player '" + auxUser.getName() + "'."); targetPlayer = this.getServer().getPlayer(auxUser.getName()); if (targetPlayer != null) diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/Tasks/BukkitPermsUpdateTask.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/Tasks/BukkitPermsUpdateTask.java index 8788fc83b..f4b805c35 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/Tasks/BukkitPermsUpdateTask.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/Tasks/BukkitPermsUpdateTask.java @@ -18,7 +18,7 @@ public class BukkitPermsUpdateTask implements Runnable { public void run() {
// Signal loaded and update BukkitPermissions.
GroupManager.setLoaded(true);
- //GroupManager.BukkitPermissions.collectPermissions();
+ GroupManager.BukkitPermissions.collectPermissions();
GroupManager.BukkitPermissions.updateAllPlayers();
GroupManager.logger.info("Bukkit Permissions Updated!");
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java index 1f2be9875..d41f96b0d 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java @@ -113,7 +113,7 @@ public class User extends DataUnit implements Cloneable { this.group = group; flagAsChanged(); if (GroupManager.isLoaded()) - if (GroupManager.BukkitPermissions.player_join = false) + if (!GroupManager.BukkitPermissions.isPlayer_join()) GroupManager.BukkitPermissions.updateAllPlayers(); } @@ -130,7 +130,7 @@ public class User extends DataUnit implements Cloneable { this.group = group.getName(); flagAsChanged(); if (GroupManager.isLoaded()) { - if (GroupManager.BukkitPermissions.player_join = false) + if (!GroupManager.BukkitPermissions.isPlayer_join()) GroupManager.BukkitPermissions.updateAllPlayers(); // Do we notify of the group change? @@ -159,7 +159,7 @@ public class User extends DataUnit implements Cloneable { subGroups.add(subGroup.getName()); flagAsChanged(); if (GroupManager.isLoaded()) { - if (GroupManager.BukkitPermissions.player_join = false) + if (!GroupManager.BukkitPermissions.isPlayer_join()) GroupManager.BukkitPermissions.updateAllPlayers(); GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); } @@ -182,7 +182,7 @@ public class User extends DataUnit implements Cloneable { if (subGroups.remove(subGroup.getName())) { flagAsChanged(); if (GroupManager.isLoaded()) - if (GroupManager.BukkitPermissions.player_join = false) + if (!GroupManager.BukkitPermissions.isPlayer_join()) GroupManager.BukkitPermissions.updateAllPlayers(); GroupManagerEventHandler.callEvent(this, Action.USER_SUBGROUP_CHANGED); return true; @@ -229,7 +229,7 @@ public class User extends DataUnit implements Cloneable { } flagAsChanged(); if (GroupManager.isLoaded()) { - if (GroupManager.BukkitPermissions.player_join = false) + if (!GroupManager.BukkitPermissions.isPlayer_join()) GroupManager.BukkitPermissions.updateAllPlayers(); GroupManagerEventHandler.callEvent(this, Action.USER_INFO_CHANGED); } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java index 9a44a21b8..4482f3d9e 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java @@ -1,6 +1,7 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.data.Group;
+import org.bukkit.event.HandlerList;
/**
@@ -13,6 +14,18 @@ public class GMGroupEvent extends GroupManagerEvent { *
*/
private static final long serialVersionUID = -5294917600434510451L;
+ private static final HandlerList handlers = new HandlerList();
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+
+ //////////////////////////////
protected Group group;
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java index f7ecf79de..eb4b95c03 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java @@ -1,5 +1,7 @@ package org.anjocaido.groupmanager.events;
+import org.bukkit.event.HandlerList;
+
/**
* @author ElgarL
@@ -11,6 +13,19 @@ public class GMSystemEvent extends GroupManagerEvent { *
*/
private static final long serialVersionUID = -8786811924448821548L;
+ private static final HandlerList handlers = new HandlerList();
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+
+ //////////////////////////////
+
protected Action action;
public GMSystemEvent(Action action) {
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java index 68483c036..efa591562 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java @@ -1,6 +1,7 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.data.User;
+import org.bukkit.event.HandlerList;
/**
@@ -13,6 +14,18 @@ public class GMUserEvent extends GroupManagerEvent { *
*/
private static final long serialVersionUID = -5294917600434510451L;
+ private static final HandlerList handlers = new HandlerList();
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+
+ //////////////////////////////
protected User user;
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java index 037971314..fd1a9d7ff 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java @@ -1,9 +1,10 @@ package org.anjocaido.groupmanager.events;
import org.anjocaido.groupmanager.GroupManager;
-import org.bukkit.event.Event;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent;
-import org.bukkit.event.world.WorldListener;
/**
@@ -12,7 +13,7 @@ import org.bukkit.event.world.WorldListener; * Handle new world creation from other plugins
*
*/
-public class GMWorldListener extends WorldListener {
+public class GMWorldListener implements Listener {
private final GroupManager plugin;
@@ -22,10 +23,10 @@ public class GMWorldListener extends WorldListener { }
private void registerEvents() {
- plugin.getServer().getPluginManager().registerEvent(Event.Type.WORLD_INIT, this, Event.Priority.Lowest, plugin);
+ plugin.getServer().getPluginManager().registerEvents(this, plugin);
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onWorldInit(WorldInitEvent event) {
String worldName = event.getWorld().getName();
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java index 167103796..51c6dded5 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java @@ -5,9 +5,11 @@ package org.anjocaido.groupmanager.permissions; import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.data.Group; @@ -97,81 +99,101 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { */ @Override public List<String> getAllPlayersPermissions(String userName) { - return getAllPlayersPermissions(userName, true); + List<String> perms = new ArrayList<String>(); + + perms.addAll(getAllPlayersPermissions(userName, true)); + + return perms; } + /** * Returns All permissions (including inheritance and sub groups) for the * player. With or without Bukkit child nodes. * * @param userName - * @return List<String> of all players permissions. + * @return Set<String> of all players permissions. */ @Override - public List<String> getAllPlayersPermissions(String userName, Boolean includeChildren) { - - List<String> playerPermArray = new ArrayList<String>(); + public Set<String> getAllPlayersPermissions(String userName, Boolean includeChildren) { - for (String perm : ph.getUser(userName).getPermissionList()) { - if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-" + perm))) { - playerPermArray.add(perm); + Set<String> playerPermArray = new HashSet<String>(); - if (includeChildren) { - Map<String, Boolean> children = GroupManager.BukkitPermissions.getAllChildren(perm, playerPermArray); - - if (children != null) { - for (String child : children.keySet()) { - if (children.get(child)) - if ((!playerPermArray.contains(child)) && (!playerPermArray.contains("-" + child))) { - playerPermArray.add(child); - } - } - } - } - } - } + // Add the players own permissions. + playerPermArray.addAll(populatePerms(ph.getUser(userName).getPermissionList(), includeChildren)); + + // fetch all group permissions for (String group : getGroups(userName)) { + Set<String> groupPermArray = new HashSet<String>(); + if (group.startsWith("g:") && GroupManager.getGlobalGroups().hasGroup(group)) { - for (String perm : GroupManager.getGlobalGroups().getGroupsPermissions(group)) { - if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-" + perm))) { - playerPermArray.add(perm); - - if (includeChildren) { - Map<String, Boolean> children = GroupManager.BukkitPermissions.getAllChildren(perm, playerPermArray); - if (children != null) { - for (String child : children.keySet()) { - if (children.get(child)) - if ((!playerPermArray.contains(child)) && (!playerPermArray.contains("-" + child))) - playerPermArray.add(child); - } - } - } - } - } + // GlobalGroups + groupPermArray = populatePerms(GroupManager.getGlobalGroups().getGroupsPermissions(group), includeChildren); + } else { - for (String perm : ph.getGroup(group).getPermissionList()) { - if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-" + perm))) { - playerPermArray.add(perm); - - if (includeChildren) { - Map<String, Boolean> children = GroupManager.BukkitPermissions.getAllChildren(perm, playerPermArray); - if (children != null) { - for (String child : children.keySet()) { - if (children.get(child)) - if ((!playerPermArray.contains(child)) && (!playerPermArray.contains("-" + child))) { - playerPermArray.add(child); - } - } - } - } - } - } + // World Groups + groupPermArray = populatePerms(ph.getGroup(group).getPermissionList(), includeChildren); } + + // Add all group permissions, unless negated by direct player perms. + for (String perm : groupPermArray) + if ((!playerPermArray.contains(perm)) && (!playerPermArray.contains("-" + perm))) + playerPermArray.add(perm); + } // Collections.sort(playerPermArray, // StringPermissionComparator.getInstance()); return playerPermArray; } + + private Set<String> populatePerms (List<String> perms, boolean includeChildren) { + + Set<String> permArray = new HashSet<String>(); + + for (String perm : perms) { + + // Allow * node to populate ALL perms in Bukkit. + if (perm.equalsIgnoreCase("*")) + permArray.addAll(GroupManager.BukkitPermissions.getAllRegisteredPermissions(includeChildren)); + + boolean negated = false; + if (perm.startsWith("-")) + negated = true; + + if (!permArray.contains(perm)) { + permArray.add(perm); + + if ((negated) && (permArray.contains(perm.substring(1)))) + permArray.remove(perm.substring(1)); + + if (includeChildren) { + + Map<String, Boolean> children = GroupManager.BukkitPermissions.getAllChildren((negated ? perm.substring(1) : perm), new HashSet<String>()); + + if (children != null) { + if (negated) { + + // Remove children of negated nodes + for (String child : children.keySet()) + if (children.get(child)) + if (permArray.contains(child)) + permArray.remove(child); + + } else { + + // Add child nodes + for (String child : children.keySet()) + if (children.get(child)) + if ((!permArray.contains(child)) && (!permArray.contains("-" + child))) + permArray.add(child); + } + } + } + } + } + + return permArray; + } /** * Verify if player is in such group. It will check it's groups inheritance. diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index 91f9a9bd6..f9363e04d 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -19,9 +19,11 @@ package org.anjocaido.groupmanager.permissions; import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.anjocaido.groupmanager.GroupManager;
//import org.anjocaido.groupmanager.data.User;
@@ -30,17 +32,17 @@ import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder; import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
-import org.bukkit.event.Event;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
-import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerPortalEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.event.server.PluginDisableEvent;
import org.bukkit.event.server.PluginEnableEvent;
-import org.bukkit.event.server.ServerListener;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
@@ -61,8 +63,22 @@ public class BukkitPermissions { protected GroupManager plugin;
protected boolean dumpAllPermissions = true;
protected boolean dumpMatchedPermissions = true;
- public boolean player_join = false;
+ private boolean player_join = false;
+ /**
+ * @return the player_join
+ */
+ public boolean isPlayer_join() {
+ return player_join;
+ }
+
+ /**
+ * @param player_join the player_join to set
+ */
+ public void setPlayer_join(boolean player_join) {
+ this.player_join = player_join;
+ }
+
private static Field permissions;
// Setup reflection (Thanks to Codename_B for the reflection source)
@@ -89,20 +105,8 @@ public class BukkitPermissions { private void registerEvents() {
PluginManager manager = plugin.getServer().getPluginManager();
- PlayerEvents playerEventListener = new PlayerEvents();
-
- manager.registerEvent(Event.Type.PLAYER_JOIN, playerEventListener, Event.Priority.Lowest, plugin);
- manager.registerEvent(Event.Type.PLAYER_KICK, playerEventListener, Event.Priority.Lowest, plugin);
- manager.registerEvent(Event.Type.PLAYER_QUIT, playerEventListener, Event.Priority.Lowest, plugin);
-
- manager.registerEvent(Event.Type.PLAYER_RESPAWN, playerEventListener, Event.Priority.Lowest, plugin);
- manager.registerEvent(Event.Type.PLAYER_TELEPORT, playerEventListener, Event.Priority.Lowest, plugin);
- manager.registerEvent(Event.Type.PLAYER_PORTAL, playerEventListener, Event.Priority.Lowest, plugin);
-
- ServerListener serverListener = new BukkitEvents();
-
- manager.registerEvent(Event.Type.PLUGIN_ENABLE, serverListener, Event.Priority.Normal, plugin);
- manager.registerEvent(Event.Type.PLUGIN_DISABLE, serverListener, Event.Priority.Normal, plugin);
+ manager.registerEvents(new PlayerEvents(), plugin);
+ manager.registerEvents(new BukkitEvents(), plugin);
}
@@ -199,21 +203,22 @@ public class BukkitPermissions { // Add all permissions for this player (GM only)
// child nodes will be calculated by Bukkit.
- List<String> playerPermArray = worldData.getPermissionsHandler().getAllPlayersPermissions(player.getName(), false);
+ Set<String> playerPermArray = worldData.getPermissionsHandler().getAllPlayersPermissions(player.getName(), false);
Map<String, Boolean> newPerms = new HashMap<String, Boolean>();
- for (String permission : playerPermArray) {
- value = true;
- if (permission.startsWith("-")) {
- permission = permission.substring(1); // cut off -
- value = false;
- }
+ //Set<String> hash = new HashSet<String>();
+ //for (String permission : playerPermArray)
+ // hash.add(permission);
+
+
+ for (String permission : playerPermArray) {
+ value = (!permission.startsWith("-"));
/*
if (!attachment.getPermissions().containsKey(permission)) {
attachment.setPermission(permission, value);
}
*/
- newPerms.put(permission, value);
+ newPerms.put((value? permission : permission.substring(1)), value);
}
//player.recalculatePermissions();
@@ -238,14 +243,46 @@ public class BukkitPermissions { }
}
+
/**
- * Returns a map of the ALL child permissions as defined by the supplying plugin
+ * Fetch all permissions which are registered with superperms.
+ * {can include child nodes)
+ *
+ * @param includeChildren
+ * @return List of all permission nodes
+ */
+ public List<String> getAllRegisteredPermissions(boolean includeChildren) {
+
+ List<String> perms = new ArrayList<String>();
+
+ for (Permission permission : registeredPermissions) {
+ String name = permission.getName();
+ if (!perms.contains(name)) {
+ perms.add(name);
+
+ if (includeChildren) {
+ Map<String, Boolean> children = getAllChildren(name, new HashSet<String>());
+ if (children != null) {
+ for (String node : children.keySet())
+ if (!perms.contains(node))
+ perms.add(node);
+ }
+ }
+ }
+
+ }
+ return perms;
+ }
+
+ /**
+ * Returns a map of ALL child permissions registered with bukkit
* null is empty
*
* @param node
+ * @param playerPermArray current list of perms to check against for negations
* @return Map of child permissions
*/
- public Map<String, Boolean> getAllChildren(String node, List<String> playerPermArray) {
+ public Map<String, Boolean> getAllChildren(String node, Set<String> playerPermArray) {
LinkedList<String> stack = new LinkedList<String>();
Map<String, Boolean> alreadyVisited = new HashMap<String, Boolean>();
@@ -273,7 +310,7 @@ public class BukkitPermissions { }
/**
- * Returns a map of the child permissions (1 node deep) as defined by the supplying plugin
+ * Returns a map of the child permissions (1 node deep) as registered with Bukkit.
* null is empty
*
* @param node
@@ -325,40 +362,40 @@ public class BukkitPermissions { }
}
- protected class PlayerEvents extends PlayerListener {
+ protected class PlayerEvents implements Listener {
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerJoin(PlayerJoinEvent event) {
- player_join = true;
+ setPlayer_join(true);
Player player = event.getPlayer();
// force GM to create the player if they are not already listed.
if (plugin.getWorldsHolder().getWorldData(player.getWorld().getName()).getUser(player.getName()) != null) {
- player_join = false;
+ //setPlayer_join(false);
updatePermissions(event.getPlayer());
- } else
- player_join = false;
+ }
+ setPlayer_join(false);
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerPortal(PlayerPortalEvent event) { // will portal into another world
if (event.getTo() != null && !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // only if world actually changed
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
}
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerRespawn(PlayerRespawnEvent event) { // can be respawned in another world
updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName());
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerTeleport(PlayerTeleportEvent event) { // can be teleported into another world
if (event.getTo() != null && !event.getFrom().getWorld().equals(event.getTo().getWorld())) { // only if world actually changed
updatePermissions(event.getPlayer(), event.getTo().getWorld().getName());
}
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerQuit(PlayerQuitEvent event) {
if (!GroupManager.isLoaded())
return;
@@ -366,15 +403,15 @@ public class BukkitPermissions { attachments.remove(event.getPlayer());
}
- @Override
+ @EventHandler(priority = EventPriority.LOWEST)
public void onPlayerKick(PlayerKickEvent event) {
attachments.remove(event.getPlayer());
}
}
- protected class BukkitEvents extends ServerListener {
+ protected class BukkitEvents implements Listener {
- @Override
+ @EventHandler(priority = EventPriority.NORMAL)
public void onPluginEnable(PluginEnableEvent event) {
if (!GroupManager.isLoaded())
return;
@@ -383,7 +420,7 @@ public class BukkitPermissions { updateAllPlayers();
}
- @Override
+ @EventHandler(priority = EventPriority.NORMAL)
public void onPluginDisable(PluginDisableEvent event) {
collectPermissions();
// updateAllPlayers();
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/PermissionsReaderInterface.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/PermissionsReaderInterface.java index cf11bd37f..3f49757e2 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/PermissionsReaderInterface.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/PermissionsReaderInterface.java @@ -4,6 +4,7 @@ package org.anjocaido.groupmanager.permissions; //import java.util.Map; //import java.util.Set; import java.util.List; +import java.util.Set; import org.anjocaido.groupmanager.data.Group; //import org.anjocaido.groupmanager.data.User; @@ -235,5 +236,5 @@ public abstract class PermissionsReaderInterface { public abstract List<String> getAllPlayersPermissions(String userName); - public abstract List<String> getAllPlayersPermissions(String userName, Boolean includeChildren); + public abstract Set<String> getAllPlayersPermissions(String userName, Boolean includeChildren); } diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java deleted file mode 100644 index 479d2eda6..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockListener; - - -public class EmergencyBlockListener extends BlockListener -{ - - @Override - public void onBlockBurn(final BlockBurnEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockIgnite(final BlockIgniteEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockFromTo(final BlockFromToEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockBreak(final BlockBreakEvent event) - { - event.setCancelled(true); - } -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java deleted file mode 100644 index a220f07d5..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityListener; - - -public class EmergencyEntityListener extends EntityListener -{ - - @Override - public void onEntityExplode(final EntityExplodeEvent event) - { - event.setCancelled(true); - } - - @Override - public void onEntityDamage(final EntityDamageEvent event) - { - event.setCancelled(true); - } -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java new file mode 100644 index 000000000..5f9253c55 --- /dev/null +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyListener.java @@ -0,0 +1,58 @@ +package com.earth2me.essentials.protect; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.player.PlayerJoinEvent; + + +public class EmergencyListener implements Listener +{ + @EventHandler(priority = EventPriority.LOW) + public void onBlockBurn(final BlockBurnEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void onBlockIgnite(final BlockIgniteEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void onBlockFromTo(final BlockFromToEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void onBlockBreak(final BlockBreakEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerJoin(final PlayerJoinEvent event) + { + event.getPlayer().sendMessage("Essentials Protect is in emergency mode. Check your log for errors."); + } + + @EventHandler(priority = EventPriority.LOW) + public void onEntityExplode(final EntityExplodeEvent event) + { + event.setCancelled(true); + } + + @EventHandler(priority = EventPriority.LOW) + public void onEntityDamage(final EntityDamageEvent event) + { + event.setCancelled(true); + } +} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java deleted file mode 100644 index e92325946..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; - - -public class EmergencyPlayerListener extends PlayerListener -{ - - @Override - public void onPlayerJoin(PlayerJoinEvent event) - { - event.getPlayer().sendMessage("Essentials Protect is in emergency mode. Check your log for errors."); - } - -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java index 38c6cc3f9..5988bd06f 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java @@ -33,8 +33,6 @@ public class EssentialsConnect ProtectReloader pr = new ProtectReloader(); pr.onReload(); ess.addReloadListener(pr); - LOGGER.info(_("loadinfo", essProtect.getDescription().getName(), essProtect.getDescription().getVersion(), "essentials team")); - } public void onDisable() diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java index 43975216e..75a462888 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java @@ -6,8 +6,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import org.bukkit.entity.Player; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -49,43 +47,22 @@ public class EssentialsProtect extends JavaPlugin implements IProtect ess = new EssentialsConnect(essPlugin, this); final EssentialsProtectPlayerListener playerListener = new EssentialsProtectPlayerListener(this); - pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Low, this); + pm.registerEvents(playerListener, this); final EssentialsProtectBlockListener blockListener = new EssentialsProtectBlockListener(this); - pm.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_FROMTO, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_IGNITE, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_BURN, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_BREAK, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_PISTON_EXTEND, blockListener, Priority.Highest, this); - pm.registerEvent(Type.BLOCK_PISTON_RETRACT, blockListener, Priority.Highest, this); + pm.registerEvents(blockListener, this); final EssentialsProtectEntityListener entityListener = new EssentialsProtectEntityListener(this); - pm.registerEvent(Type.ENTITY_EXPLODE, entityListener, Priority.Highest, this); - pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this); - pm.registerEvent(Type.CREATURE_SPAWN, entityListener, Priority.Highest, this); - pm.registerEvent(Type.ENTITY_TARGET, entityListener, Priority.Highest, this); - pm.registerEvent(Type.EXPLOSION_PRIME, entityListener, Priority.Highest, this); - pm.registerEvent(Type.ENDERMAN_PICKUP, entityListener, Priority.Highest, this); + pm.registerEvents(entityListener, this); final EssentialsProtectWeatherListener weatherListener = new EssentialsProtectWeatherListener(this); - pm.registerEvent(Type.LIGHTNING_STRIKE, weatherListener, Priority.Highest, this); - pm.registerEvent(Type.THUNDER_CHANGE, weatherListener, Priority.Highest, this); - pm.registerEvent(Type.WEATHER_CHANGE, weatherListener, Priority.Highest, this); + pm.registerEvents(weatherListener, this); } private void enableEmergencyMode(final PluginManager pm) { - final EmergencyBlockListener emBlockListener = new EmergencyBlockListener(); - final EmergencyEntityListener emEntityListener = new EmergencyEntityListener(); - final EmergencyPlayerListener emPlayerListener = new EmergencyPlayerListener(); - pm.registerEvent(Type.PLAYER_JOIN, emPlayerListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BURN, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_IGNITE, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_FROMTO, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BREAK, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.ENTITY_DAMAGE, emEntityListener, Priority.Low, this); - pm.registerEvent(Type.ENTITY_EXPLODE, emEntityListener, Priority.Low, this); + final EmergencyListener emListener = new EmergencyListener(); + pm.registerEvents(emListener, this); for (Player player : getServer().getOnlinePlayers()) { player.sendMessage("Essentials Protect is in emergency mode. Check your log for errors."); diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java index 0e3fb6a5e..cdd0c2543 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java @@ -9,10 +9,13 @@ import java.util.List; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.*; -public class EssentialsProtectBlockListener extends BlockListener +public class EssentialsProtectBlockListener implements Listener { final private transient IProtect prot; final private transient IEssentials ess; @@ -23,7 +26,7 @@ public class EssentialsProtectBlockListener extends BlockListener this.ess = prot.getEssentialsConnect().getEssentials(); } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockPlace(final BlockPlaceEvent event) { if (event.isCancelled()) @@ -102,7 +105,7 @@ public class EssentialsProtectBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockIgnite(BlockIgniteEvent event) { if (event.isCancelled()) @@ -162,7 +165,7 @@ public class EssentialsProtectBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockFromTo(final BlockFromToEvent event) { if (event.isCancelled()) @@ -211,7 +214,7 @@ public class EssentialsProtectBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockBurn(final BlockBurnEvent event) { if (event.isCancelled()) @@ -257,7 +260,7 @@ public class EssentialsProtectBlockListener extends BlockListener BlockFace.SELF }; - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockBreak(final BlockBreakEvent event) { if (event.isCancelled()) @@ -363,8 +366,8 @@ public class EssentialsProtectBlockListener extends BlockListener } } - @Override - public void onBlockPistonExtend(BlockPistonExtendEvent event) + @EventHandler(priority = EventPriority.HIGHEST) + public void onBlockPistonExtend(final BlockPistonExtendEvent event) { if (event.isCancelled()) { @@ -425,8 +428,8 @@ public class EssentialsProtectBlockListener extends BlockListener } } - @Override - public void onBlockPistonRetract(BlockPistonRetractEvent event) + @EventHandler(priority = EventPriority.HIGHEST) + public void onBlockPistonRetract(final BlockPistonRetractEvent event) { if (event.isCancelled() || !event.isSticky()) { @@ -479,6 +482,7 @@ public class EssentialsProtectBlockListener extends BlockListener } } } + finally { settings.unlock(); @@ -521,7 +525,8 @@ public class EssentialsProtectBlockListener extends BlockListener } } - if (settings.getData().getSignsAndRails().isProtectRails()) { + if (settings.getData().getSignsAndRails().isProtectRails()) + { if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL) { return prot.getStorage().isProtected(block, user.getName()); diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index 99b0c72e7..bba267d41 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -7,12 +7,15 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.*; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityTargetEvent.TargetReason; import org.bukkit.event.entity.*; -public class EssentialsProtectEntityListener extends EntityListener +public class EssentialsProtectEntityListener implements Listener { private final transient IProtect prot; private final transient IEssentials ess; @@ -24,7 +27,7 @@ public class EssentialsProtectEntityListener extends EntityListener this.ess = prot.getEssentialsConnect().getEssentials(); } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onEntityDamage(final EntityDamageEvent event) { if (event.isCancelled()) @@ -170,7 +173,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onEntityExplode(final EntityExplodeEvent event) { if (event.isCancelled()) @@ -247,7 +250,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onCreatureSpawn(final CreatureSpawnEvent event) { if (event.getEntity() instanceof Player) @@ -279,7 +282,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onEntityTarget(final EntityTargetEvent event) { if (event.isCancelled() || !(event.getTarget() instanceof Player)) @@ -300,7 +303,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onExplosionPrime(final ExplosionPrimeEvent event) { final ProtectHolder settings = prot.getSettings(); @@ -319,7 +322,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onEndermanPickup(final EndermanPickupEvent event) { if (event.isCancelled()) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java index b5c7980c2..7fe1ea33f 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java @@ -5,13 +5,15 @@ import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IUser; import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerListener; import org.bukkit.inventory.ItemStack; -public class EssentialsProtectPlayerListener extends PlayerListener +public class EssentialsProtectPlayerListener implements Listener { private final transient IProtect prot; private final transient IEssentials ess; @@ -22,7 +24,7 @@ public class EssentialsProtectPlayerListener extends PlayerListener this.ess = prot.getEssentialsConnect().getEssentials(); } - @Override + @EventHandler(priority = EventPriority.LOW) public void onPlayerInteract(final PlayerInteractEvent event) { // Do not return if cancelled, because the interact event has 2 cancelled states. diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectWeatherListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectWeatherListener.java index 4097275dd..babebac71 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectWeatherListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectWeatherListener.java @@ -1,12 +1,14 @@ package com.earth2me.essentials.protect; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.weather.LightningStrikeEvent; import org.bukkit.event.weather.ThunderChangeEvent; import org.bukkit.event.weather.WeatherChangeEvent; -import org.bukkit.event.weather.WeatherListener; -public class EssentialsProtectWeatherListener extends WeatherListener +public class EssentialsProtectWeatherListener implements Listener { private final transient IProtect prot; @@ -15,7 +17,7 @@ public class EssentialsProtectWeatherListener extends WeatherListener this.prot = prot; } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onWeatherChange(final WeatherChangeEvent event) { final ProtectHolder settings = prot.getSettings(); @@ -35,7 +37,7 @@ public class EssentialsProtectWeatherListener extends WeatherListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onLightningStrike(final LightningStrikeEvent event) { final ProtectHolder settings = prot.getSettings(); @@ -54,7 +56,7 @@ public class EssentialsProtectWeatherListener extends WeatherListener } } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onThunderChange(final ThunderChangeEvent event) { final ProtectHolder settings = prot.getSettings(); diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java b/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java index fd14eba0e..d57daf319 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/EssentialsSignsPlugin.java @@ -44,7 +44,14 @@ public class EssentialsSignsPlugin extends JavaPlugin final SignEntityListener signEntityListener = new SignEntityListener(ess); pluginManager.registerEvent(Event.Type.ENTITY_EXPLODE, signEntityListener, Event.Priority.Low, this); pluginManager.registerEvent(Event.Type.ENDERMAN_PICKUP, signEntityListener, Event.Priority.Low, this); + //final SignBlockListener signBlockListener = new SignBlockListener(ess); + pluginManager.registerEvents(signBlockListener, this); + //final SignPlayerListener signPlayerListener = new SignPlayerListener(ess); + pluginManager.registerEvents(signPlayerListener, this); + + //final SignEntityListener signEntityListener = new SignEntityListener(ess); + pluginManager.registerEvents(signEntityListener, this); LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), "essentials team")); } diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java index 7cc461782..a072cd038 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -8,10 +8,13 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.*; -public class SignBlockListener extends BlockListener +public class SignBlockListener implements Listener { private final transient IEssentials ess; private final static Logger LOGGER = Logger.getLogger("Minecraft"); @@ -21,7 +24,7 @@ public class SignBlockListener extends BlockListener this.ess = ess; } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onBlockBreak(final BlockBreakEvent event) { if (event.isCancelled()) @@ -73,7 +76,7 @@ public class SignBlockListener extends BlockListener return false; } - @Override + @EventHandler(priority = EventPriority.HIGHEST) public void onSignChange(final SignChangeEvent event) { if (event.isCancelled()) @@ -105,7 +108,7 @@ public class SignBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onBlockPlace(final BlockPlaceEvent event) { if (event.isCancelled()) @@ -139,7 +142,7 @@ public class SignBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onBlockBurn(final BlockBurnEvent event) { if (event.isCancelled()) @@ -168,7 +171,7 @@ public class SignBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onBlockIgnite(final BlockIgniteEvent event) { if (event.isCancelled()) @@ -197,7 +200,7 @@ public class SignBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onBlockPistonExtend(final BlockPistonExtendEvent event) { for (Block block : event.getBlocks()) @@ -223,7 +226,7 @@ public class SignBlockListener extends BlockListener } } - @Override + @EventHandler(priority = EventPriority.LOW) public void onBlockPistonRetract(final BlockPistonRetractEvent event) { if (event.isSticky()) diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java index 12a2fc2f8..2d3413559 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -3,12 +3,14 @@ package com.earth2me.essentials.signs; import com.earth2me.essentials.api.IEssentials; import org.bukkit.Material; import org.bukkit.block.Block; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.entity.EndermanPickupEvent; import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityListener; -public class SignEntityListener extends EntityListener +public class SignEntityListener implements Listener { private final transient IEssentials ess; @@ -17,7 +19,7 @@ public class SignEntityListener extends EntityListener this.ess = ess; } - @Override + @EventHandler(priority = EventPriority.LOW) public void onEntityExplode(final EntityExplodeEvent event) { for (Block block : event.blockList()) @@ -42,8 +44,8 @@ public class SignEntityListener extends EntityListener } } - @Override - public void onEndermanPickup(EndermanPickupEvent event) + @EventHandler(priority = EventPriority.LOW) + public void onEndermanPickup(final EndermanPickupEvent event) { if (event.isCancelled()) { diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java index 9f1a22896..dd2219ef8 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignPlayerListener.java @@ -4,22 +4,24 @@ import com.earth2me.essentials.api.IEssentials; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.Sign; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerListener; -public class SignPlayerListener extends PlayerListener +public class SignPlayerListener implements Listener { private final transient IEssentials ess; - public SignPlayerListener(IEssentials ess) + public SignPlayerListener(final IEssentials ess) { this.ess = ess; } - @Override - public void onPlayerInteract(PlayerInteractEvent event) + @EventHandler(priority = EventPriority.LOW) + public void onPlayerInteract(final PlayerInteractEvent event) { if (event.isCancelled()) { diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java index 2e4b5eaa6..1d73ee4c1 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java @@ -9,7 +9,12 @@ import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.event.Event.Type; +import org.bukkit.event.Event; +import org.bukkit.event.EventException; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.plugin.EventExecutor; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -41,10 +46,22 @@ public class EssentialsSpawn extends JavaPlugin commandHandler = new EssentialsCommandHandler(EssentialsSpawn.class.getClassLoader(), "com.earth2me.essentials.spawn.Command", "essentials.", spawns, ess); final EssentialsSpawnPlayerListener playerListener = new EssentialsSpawnPlayerListener(ess, spawns); - pluginManager.registerEvent(Type.PLAYER_RESPAWN, playerListener, spawns.getRespawnPriority(), this); - pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, spawns.getRespawnPriority(), this); - - LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), "essentials team")); + pluginManager.registerEvent(PlayerRespawnEvent.class, playerListener, spawns.getRespawnPriority(), new EventExecutor() + { + @Override + public void execute(final Listener ll, final Event event) throws EventException + { + ((EssentialsSpawnPlayerListener)ll).onPlayerRespawn((PlayerRespawnEvent)event); + } + }, this); + pluginManager.registerEvent(PlayerJoinEvent.class, playerListener, spawns.getRespawnPriority(), new EventExecutor() + { + @Override + public void execute(final Listener ll, final Event event) throws EventException + { + ((EssentialsSpawnPlayerListener)ll).onPlayerJoin((PlayerJoinEvent)event); + } + }, this); } public void onDisable() diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index 08bb4d739..21bd0d499 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -7,13 +7,13 @@ import com.earth2me.essentials.api.IUser; import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -public class EssentialsSpawnPlayerListener extends PlayerListener +public class EssentialsSpawnPlayerListener implements Listener { private final transient IEssentials ess; private final transient SpawnStorage spawns; @@ -25,7 +25,6 @@ public class EssentialsSpawnPlayerListener extends PlayerListener this.spawns = spawns; } - @Override public void onPlayerRespawn(final PlayerRespawnEvent event) { final IUser user = ess.getUser(event.getPlayer()); @@ -61,7 +60,6 @@ public class EssentialsSpawnPlayerListener extends PlayerListener } } - @Override public void onPlayerJoin(final PlayerJoinEvent event) { final IUser user = ess.getUser(event.getPlayer()); diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/SpawnStorage.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/SpawnStorage.java index 0c351c753..13eb1f7df 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/SpawnStorage.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/SpawnStorage.java @@ -12,6 +12,7 @@ import java.util.Map; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.event.Event.Priority; +import org.bukkit.event.EventPriority; public class SpawnStorage extends AsyncStorageObjectHolder<Spawns> implements IEssentialsModule @@ -90,18 +91,18 @@ public class SpawnStorage extends AsyncStorageObjectHolder<Spawns> implements IE return ess.getServer().getWorlds().get(0).getSpawnLocation(); } - public Priority getRespawnPriority() + public EventPriority getRespawnPriority() { acquireReadLock(); try { - for (Priority priority : Priority.values()) + for (EventPriority priority : EventPriority.values()) { if (priority.toString().equalsIgnoreCase(getData().getRespawnPriority())) { return priority; } } - return Priority.Normal; + return EventPriority.NORMAL; } finally { unlock(); } diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java index cf7fb1814..01e1ce131 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPP.java @@ -12,8 +12,6 @@ import java.util.logging.Logger; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -50,9 +48,7 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP } final EssentialsXMPPPlayerListener playerListener = new EssentialsXMPPPlayerListener(ess); - pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this); - pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Monitor, this); - pluginManager.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this); + pluginManager.registerEvents(playerListener, this); users = new UserManager(this.getDataFolder()); xmpp = new XMPPManager(this); @@ -61,8 +57,6 @@ public class EssentialsXMPP extends JavaPlugin implements IEssentialsXMPP ess.addReloadListener(xmpp); commandHandler = new EssentialsCommandHandler(EssentialsXMPP.class.getClassLoader(), "com.earth2me.essentials.xmpp.Command", "essentials.", ess); - - LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), "essentials team")); } @Override diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPPPlayerListener.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPPPlayerListener.java index 1bf672515..b6daf8114 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPPPlayerListener.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/EssentialsXMPPPlayerListener.java @@ -2,13 +2,15 @@ package com.earth2me.essentials.xmpp; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IUser; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerQuitEvent; -class EssentialsXMPPPlayerListener extends PlayerListener +class EssentialsXMPPPlayerListener implements Listener { private final transient IEssentials ess; @@ -18,21 +20,21 @@ class EssentialsXMPPPlayerListener extends PlayerListener this.ess = ess; } - @Override + @EventHandler(priority= EventPriority.MONITOR) public void onPlayerJoin(final PlayerJoinEvent event) { final IUser user = ess.getUser(event.getPlayer()); sendMessageToSpyUsers("Player " + user.getDisplayName() + " joined the game"); } - @Override + @EventHandler(priority= EventPriority.MONITOR) public void onPlayerChat(final PlayerChatEvent event) { final IUser user = ess.getUser(event.getPlayer()); sendMessageToSpyUsers(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); } - @Override + @EventHandler(priority= EventPriority.MONITOR) public void onPlayerQuit(final PlayerQuitEvent event) { final IUser user = ess.getUser(event.getPlayer()); diff --git a/lib/bukkit.jar b/lib/bukkit.jar Binary files differindex 0dbb054f0..14f2e6e0b 100644 --- a/lib/bukkit.jar +++ b/lib/bukkit.jar diff --git a/lib/craftbukkit.jar b/lib/craftbukkit.jar Binary files differindex 7aac44932..f22af8eca 100644 --- a/lib/craftbukkit.jar +++ b/lib/craftbukkit.jar diff --git a/lib/lombok-0.10.1.jar b/lib/lombok-0.10.8.jar Binary files differindex 993ebc3c2..3737eb096 100644 --- a/lib/lombok-0.10.1.jar +++ b/lib/lombok-0.10.8.jar |