1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-09-29 23:59:06 +02:00

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
This commit is contained in:
snowleo
2012-01-24 00:52:08 +01:00
64 changed files with 654 additions and 462 deletions

4
.gitignore vendored
View File

@@ -39,4 +39,6 @@
/.idea
*.iml
/EssentialsSigns/nbproject/private/
/Essentials2Compat/nbproject/private/
/Essentials2Compat/nbproject/private/
/Essentials2Compat/dist/
/Essentials2Compat/build/

View File

@@ -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}:\

View File

@@ -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())
{

View File

@@ -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");
}
}

View File

@@ -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);

View File

@@ -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");

View File

@@ -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;
}

View File

@@ -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.");
}
}

View File

@@ -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.");
}
}

View File

@@ -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();
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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())

View File

@@ -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())

View File

@@ -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.");
}
}

View File

@@ -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())

View File

@@ -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

View File

@@ -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.

View File

@@ -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!

View File

@@ -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.

View File

@@ -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.

View File

@@ -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!

View File

@@ -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.

View File

@@ -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!

View File

@@ -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.");
}
}

View File

@@ -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;
}
}

View File

@@ -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/.");
}
}

View File

@@ -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());

View File

@@ -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"/>

View File

@@ -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());
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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).
- 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.

View File

@@ -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);

View File

@@ -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)

View File

@@ -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!");

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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();

View File

@@ -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) {
public Set<String> getAllPlayersPermissions(String userName, Boolean includeChildren) {
List<String> playerPermArray = new ArrayList<String>();
Set<String> playerPermArray = new HashSet<String>();
for (String perm : ph.getUser(userName).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);
}
}
}
}
}
}
// 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.

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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.");
}
}

View File

@@ -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()

View File

@@ -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.");

View File

@@ -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());

View File

@@ -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())

View File

@@ -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.

View File

@@ -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();

View File

@@ -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"));
}

View File

@@ -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())

View File

@@ -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())
{

View File

@@ -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())
{

View File

@@ -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()

View File

@@ -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());

View File

@@ -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();
}

View File

@@ -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

View File

@@ -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());

Binary file not shown.

Binary file not shown.