Merge branch 'master' into release

This commit is contained in:
snowleo 2011-07-19 11:42:18 +02:00
commit 5467e502a5
8 changed files with 105 additions and 38 deletions

View File

@ -2,6 +2,8 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.event.Event.Priority; import org.bukkit.event.Event.Priority;
@ -13,15 +15,17 @@ import org.bukkit.plugin.java.JavaPlugin;
public class EssentialsChat extends JavaPlugin public class EssentialsChat extends JavaPlugin
{ {
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private Map<String, IEssentialsChatListener> chatListener;
public void onEnable() public void onEnable()
{ {
final PluginManager pluginManager = getServer().getPluginManager(); final PluginManager pluginManager = getServer().getPluginManager();
final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials"); final IEssentials ess = (IEssentials)pluginManager.getPlugin("Essentials");
EssentialsChatPlayerListener.checkFactions(pluginManager); chatListener = new HashMap<String, IEssentialsChatListener>();
//EssentialsChatPlayerListener.checkFactions(pluginManager);
final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess); final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess, chatListener);
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this); pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this);
if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion()))
{ {
@ -32,5 +36,11 @@ public class EssentialsChat extends JavaPlugin
public void onDisable() public void onDisable()
{ {
chatListener.clear();
}
public void addEssentialsChatListener(String plugin, IEssentialsChatListener listener)
{
chatListener.put(plugin, listener);
} }
} }

View File

@ -3,31 +3,30 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.mcteam.factions.Factions;
//import org.mcteam.factions.Factions;
public class EssentialsChatPlayerListener extends PlayerListener public class EssentialsChatPlayerListener extends PlayerListener
{ {
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient IEssentials ess; private final transient IEssentials ess;
private final transient Server server; private final transient Server server;
private static Factions factions = null; private final transient Map<String, IEssentialsChatListener> listeners;
//private static Factions factions = null;
public EssentialsChatPlayerListener(final Server server, final IEssentials ess) public EssentialsChatPlayerListener(final Server server, final IEssentials ess, final Map<String, IEssentialsChatListener> listeners)
{ {
this.server = server; this.server = server;
this.ess = ess; this.ess = ess;
this.listeners = listeners;
} }
@Override @Override
@ -38,8 +37,15 @@ public class EssentialsChatPlayerListener extends PlayerListener
return; return;
} }
if (factions != null && (factions.shouldLetFactionsHandleThisChat(event))) //if (factions != null && (factions.shouldLetFactionsHandleThisChat(event)))
// return;
for (IEssentialsChatListener listener : listeners.values())
{
if (listener.shouldHandleThisChat(event))
{
return; return;
}
}
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
@ -112,14 +118,19 @@ public class EssentialsChatPlayerListener extends PlayerListener
} }
String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage()); String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage());
if (factions != null) for (IEssentialsChatListener listener : listeners.values())
message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer())); {
message = listener.modifyMessage(event, message);
}
//if (factions != null)
// message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer()));
u.sendMessage(message); u.sendMessage(message);
} }
} }
protected static void checkFactions(PluginManager pm) /*protected static void checkFactions(PluginManager pm)
{ {
if (factions != null) if (factions != null)
return; return;
@ -144,5 +155,5 @@ public class EssentialsChatPlayerListener extends PlayerListener
// normally a good thing, but we'll skip it to let Factions handle faction tags for global messages // normally a good thing, but we'll skip it to let Factions handle faction tags for global messages
//factions.handleFactionTagExternally(true); //factions.handleFactionTagExternally(true);
} }*/
} }

View File

@ -0,0 +1,11 @@
package com.earth2me.essentials.chat;
import org.bukkit.event.player.PlayerChatEvent;
public interface IEssentialsChatListener
{
boolean shouldHandleThisChat(PlayerChatEvent event);
String modifyMessage(PlayerChatEvent event, String message);
}

View File

@ -7,4 +7,4 @@ website: http://www.earth2me.net:8001/
description: Provides chat control features for Essentials. Requires Permissions. description: Provides chat control features for Essentials. Requires Permissions.
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology] authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology]
depend: [Essentials] depend: [Essentials]
softdepend: [Factions] #softdepend: [Factions]

View File

@ -12,7 +12,9 @@ import java.beans.PropertyVetoException;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Filter;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -25,12 +27,26 @@ import org.bukkit.plugin.java.JavaPlugin;
public class EssentialsProtect extends JavaPlugin implements IConf, IProtect public class EssentialsProtect extends JavaPlugin implements IConf, IProtect
{ {
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private static com.mchange.v2.log.MLogger C3P0logger;
private final transient Map<ProtectConfig, Boolean> settingsBoolean = new EnumMap<ProtectConfig, Boolean>(ProtectConfig.class); private final transient Map<ProtectConfig, Boolean> settingsBoolean = new EnumMap<ProtectConfig, Boolean>(ProtectConfig.class);
private final transient Map<ProtectConfig, String> settingsString = new EnumMap<ProtectConfig, String>(ProtectConfig.class); private final transient Map<ProtectConfig, String> settingsString = new EnumMap<ProtectConfig, String>(ProtectConfig.class);
private final transient Map<ProtectConfig, List<Integer>> settingsList = new EnumMap<ProtectConfig, List<Integer>>(ProtectConfig.class); private final transient Map<ProtectConfig, List<Integer>> settingsList = new EnumMap<ProtectConfig, List<Integer>>(ProtectConfig.class);
private transient IProtectedBlock storage = null; private transient IProtectedBlock storage = null;
public transient IEssentials ess = null; public transient IEssentials ess = null;
@Override
public void onLoad()
{
C3P0logger = com.mchange.v2.log.MLog.getLogger(com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.class);
C3P0logger.setFilter(new Filter()
{
public boolean isLoggable(LogRecord lr)
{
return lr.getLevel() != Level.INFO;
}
});
}
public void onEnable() public void onEnable()
{ {
final PluginManager pm = this.getServer().getPluginManager(); final PluginManager pm = this.getServer().getPluginManager();
@ -96,6 +112,10 @@ public class EssentialsProtect extends JavaPlugin implements IConf, IProtect
public void reloadConfig() public void reloadConfig()
{ {
if (storage != null)
{
storage.onPluginDeactivation();
}
for (ProtectConfig protectConfig : ProtectConfig.values()) for (ProtectConfig protectConfig : ProtectConfig.values())
{ {
if (protectConfig.isList()) if (protectConfig.isList())
@ -166,6 +186,10 @@ public class EssentialsProtect extends JavaPlugin implements IConf, IProtect
public void onDisable() public void onDisable()
{ {
if (storage != null)
{
storage.onPluginDeactivation();
}
} }
public IEssentials getEssentials() public IEssentials getEssentials()

View File

@ -11,4 +11,5 @@ public interface IProtectedBlock {
public boolean isProtected(Block block, String playerName); public boolean isProtected(Block block, String playerName);
public List<String> getOwners(Block block); public List<String> getOwners(Block block);
public int unprotectBlock(Block block); public int unprotectBlock(Block block);
public void onPluginDeactivation();
} }

View File

@ -418,4 +418,9 @@ public abstract class ProtectedBlockJDBC implements IProtectedBlock
} }
} }
} }
public void onPluginDeactivation()
{
cpds.close();
}
} }

View File

@ -245,4 +245,9 @@ public class ProtectedBlockMemory implements IProtectedBlock
} }
return id; return id;
} }
public void onPluginDeactivation()
{
storage.onPluginDeactivation();
}
} }