This commit is contained in:
snowleo 2011-07-05 23:50:50 +02:00
commit f280985dd6
9 changed files with 122 additions and 33 deletions

View file

@ -80,6 +80,11 @@ public class EssentialsPlayerListener extends PlayerListener
it.remove(); it.remove();
} }
} }
if(user.isAfk())
{
user.setAfk(false);
ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName()));
}
} }
@Override @Override
@ -91,6 +96,12 @@ public class EssentialsPlayerListener extends PlayerListener
} }
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
if(user.isAfk())
{
user.setAfk(false);
ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName()));
}
if (!ess.getSettings().getNetherPortalsEnabled()) if (!ess.getSettings().getNetherPortalsEnabled())
{ {
return; return;
@ -617,7 +628,7 @@ public class EssentialsPlayerListener extends PlayerListener
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
{ {
if (event.isCancelled()) return; if (event.isCancelled()) return;
Player commandUser = event.getPlayer(); User user = ess.getUser(event.getPlayer());
String cmd = event.getMessage().toLowerCase(); String cmd = event.getMessage().toLowerCase();
if (("msg".equals(cmd) || "r".equals(cmd) || "mail".equals(cmd))) if (("msg".equals(cmd) || "r".equals(cmd) || "mail".equals(cmd)))
{ {
@ -625,9 +636,14 @@ public class EssentialsPlayerListener extends PlayerListener
{ {
if (ess.getUser(player).isSocialSpyEnabled()) if (ess.getUser(player).isSocialSpyEnabled())
{ {
player.sendMessage(ess.getUser(commandUser).getDisplayName() + " : " + cmd); player.sendMessage(user.getDisplayName() + " : " + cmd);
} }
} }
} }
if(user.isAfk())
{
user.setAfk(false);
ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName()));
}
} }
} }

View file

@ -17,11 +17,29 @@ public class Commandafk extends EssentialsCommand
{ {
charge(user); charge(user);
if (args.length > 0 && user.isAuthorized("essentials.afk.others"))
{
User afkUser = ess.getUser(ess.getServer().matchPlayer(args[0]));
if (afkUser != null)
{
toggleAfk(afkUser);
}
}
else
{
toggleAfk(user);
}
}
private final void toggleAfk(User user)
{
if (!user.toggleAfk()) if (!user.toggleAfk())
{ {
user.sendMessage(Util.i18n("markedAsNotAway")); user.sendMessage(Util.i18n("markedAsNotAway"));
ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName())); ess.broadcastMessage(user.getName(), Util.format("userIsNotAway", user.getDisplayName()));
} else { }
else
{
user.sendMessage(Util.i18n("markedAsAway")); user.sendMessage(Util.i18n("markedAsAway"));
ess.broadcastMessage(user.getName(), Util.format("userIsAway", user.getDisplayName())); ess.broadcastMessage(user.getName(), Util.format("userIsAway", user.getDisplayName()));
} }

View file

@ -27,11 +27,13 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath= endorsed.classpath=
excludes= excludes=
file.reference.bukkit-0.0.1-SNAPSHOT.jar=../lib/bukkit-0.0.1-SNAPSHOT.jar file.reference.bukkit-0.0.1-SNAPSHOT.jar=../lib/bukkit-0.0.1-SNAPSHOT.jar
file.reference.Factions.jar=../lib/Factions.jar
includes=** includes=**
jar.compress=false jar.compress=false
javac.classpath=\ javac.classpath=\
${reference.Essentials.jar}:\ ${reference.Essentials.jar}:\
${file.reference.bukkit-0.0.1-SNAPSHOT.jar} ${file.reference.bukkit-0.0.1-SNAPSHOT.jar}:\
${file.reference.Factions.jar}
# Space-separated list of extra javac options # Space-separated list of extra javac options
javac.compilerargs= javac.compilerargs=
javac.deprecation=false javac.deprecation=false

View file

@ -17,6 +17,9 @@ public class EssentialsChat extends JavaPlugin
public void onEnable() public void onEnable()
{ {
final PluginManager pluginManager = getServer().getPluginManager(); final PluginManager pluginManager = getServer().getPluginManager();
EssentialsChatPlayerListener.checkFactions(pluginManager);
final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer()); final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer());
pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Lowest, this); pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Lowest, this);
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this); pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Highest, this);

View file

@ -13,6 +13,10 @@ import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.mcteam.factions.Factions;
public class EssentialsChatPlayerListener extends PlayerListener public class EssentialsChatPlayerListener extends PlayerListener
@ -20,6 +24,7 @@ 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 = Essentials.getStatic(); private final transient IEssentials ess = Essentials.getStatic();
private final transient Server server; private final transient Server server;
private static Factions factions = null;
public EssentialsChatPlayerListener(final Server server) public EssentialsChatPlayerListener(final Server server)
{ {
@ -48,6 +53,10 @@ public class EssentialsChatPlayerListener extends PlayerListener
{ {
return; return;
} }
if (factions != null && (factions.shouldLetFactionsHandleThisChat(event)))
return;
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
updateDisplayName(user); updateDisplayName(user);
@ -118,8 +127,39 @@ public class EssentialsChatPlayerListener extends PlayerListener
continue; continue;
} }
} }
String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage());
u.sendMessage(String.format(event.getFormat(), user.getDisplayName(), event.getMessage())); if (factions != null)
message = message.replace("{FACTION}", factions.getPlayerFactionTagRelation(event.getPlayer(), p)).replace("{FACTION_TITLE}", factions.getPlayerTitle(event.getPlayer()));
u.sendMessage(message);
} }
} }
protected static void checkFactions(PluginManager pm)
{
if (factions != null)
return;
Plugin factionsPlugin = pm.getPlugin("Factions");
if (factionsPlugin == null)
return;
factions = (Factions)factionsPlugin;
try
{ // make sure Factions is sufficiently up-to-date
if (factions.hookSupportVersion() < 1)
factions = null;
}
catch (NoSuchMethodError ex)
{ // if not, we can't work with it, so don't bother
factions = null;
}
if (factions == null)
return;
// normally a good thing, but we'll skip it to let Factions handle faction tags for global messages
//factions.handleFactionTagExternally(true);
}
} }

View file

@ -7,3 +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]

View file

@ -18,13 +18,18 @@ groups:
permissions: permissions:
- -groupmanager.mantogglesave - -groupmanager.mantogglesave
- essentials - essentials
- essentials.antioch
- essentials.burn
- essentials.clearinventory - essentials.clearinventory
- essentials.cooldown.bypass - essentials.cooldown.bypass
- essentials.deljail - essentials.deljail
- essentials.fireball
- essentials.gc
- essentials.give - essentials.give
- essentials.god - essentials.god
- essentials.heal - essentials.heal
- essentials.heal.others - essentials.heal.others
- essentials.lightning
- essentials.invsee - essentials.invsee
- essentials.item - essentials.item
- essentials.jails - essentials.jails
@ -33,13 +38,12 @@ groups:
- essentials.mute - essentials.mute
- essentials.sell - essentials.sell
- essentials.setjail - essentials.setjail
- essentials.signs.protection.override - essentials.signs.*
- essentials.spawnmob - essentials.spawnmob
- essentials.teleport.cooldown.bypass - essentials.teleport.cooldown.bypass
- essentials.teleport.timer.bypass - essentials.teleport.timer.bypass
- essentials.togglejail - essentials.togglejail
- groupmanager.* - groupmanager.*
- essentials.burn
inheritance: inheritance:
- moderator - moderator
info: info:
@ -50,11 +54,13 @@ groups:
default: false default: false
permissions: permissions:
- essentials.afk - essentials.afk
- essentials.back
- essentials.back.ondeath - essentials.back.ondeath
- essentials.balance - essentials.balance
- essentials.chat.shout - essentials.chat.shout
- essentials.compass - essentials.compass
- essentials.home - essentials.home
- essentials.depth
- essentials.kit - essentials.kit
- essentials.kit.tools - essentials.kit.tools
- essentials.mail - essentials.mail
@ -64,20 +70,18 @@ groups:
- essentials.nick - essentials.nick
- essentials.pay - essentials.pay
- essentials.portal - essentials.portal
- essentials.powertool
- essentials.protect - essentials.protect
- essentials.sethome - essentials.sethome
- essentials.signs.buy.use - essentials.signs.use.*
- essentials.signs.disposal.create - essentials.signs.create.disposal
- essentials.signs.disposal.use - essentials.signs.create.mail
- essentials.signs.free.use - essentials.signs.create.protection
- essentials.signs.heal.use - essentials.signs.create.trade
- essentials.signs.mail.create - essentials.signs.break.disposal
- essentials.signs.mail.use - essentials.signs.break.mail
- essentials.signs.protection.create - essentials.signs.break.protection
- essentials.signs.protection.use - essentials.signs.break.trade
- essentials.signs.sell.use
- essentials.signs.trade.create
- essentials.signs.trade.use
- essentials.suicide - essentials.suicide
- essentials.tpa - essentials.tpa
- essentials.tpaccept - essentials.tpaccept
@ -95,19 +99,23 @@ groups:
Moderator: Moderator:
default: false default: false
permissions: permissions:
- essentials.back
- essentials.ban - essentials.ban
- essentials.banip - essentials.banip
- essentials.broadcast - essentials.broadcast
- essentials.delwarp - essentials.delwarp
- essentials.depth
- essentials.eco - essentials.eco
- essentials.ext
- essentials.getpos - essentials.getpos
- essentials.jump - essentials.jump
- essentials.kick - essentials.kick
- essentials.kill - essentials.kill
- essentials.setwarp - essentials.setwarp
- essentials.signs.create.*
- essentials.signs.break.*
- essentials.spawner
- essentials.thunder
- essentials.time - essentials.time
- essentials.time.world
- essentials.togglejail - essentials.togglejail
- essentials.top - essentials.top
- essentials.tp - essentials.tp
@ -118,6 +126,7 @@ groups:
- essentials.tptoggle - essentials.tptoggle
- essentials.unban - essentials.unban
- essentials.unbanip - essentials.unbanip
- essentials.weather
- essentials.whois - essentials.whois
- essentials.world - essentials.world
- groupmanager.listgroups - groupmanager.listgroups
@ -128,7 +137,6 @@ groups:
- groupmanager.manselect - groupmanager.manselect
- groupmanager.manuadd - groupmanager.manuadd
- groupmanager.manudel - groupmanager.manudel
- essentials.ext
inheritance: inheritance:
- builder - builder
info: info:
@ -139,7 +147,6 @@ groups:
default: false default: false
permissions: permissions:
- '*' - '*'
- -essentials.protect.damage.*
inheritance: inheritance:
- semiadmin - semiadmin
info: info:

View file

@ -14,3 +14,5 @@ Recommended NetBeans plugins:
In the root folder of the repository is a file called settings.zip. It contains the code guidelines settings. Open the preferences of NetBeans and import the zip file. Use "Source > Format" before each commit please. In the root folder of the repository is a file called settings.zip. It contains the code guidelines settings. Open the preferences of NetBeans and import the zip file. Use "Source > Format" before each commit please.
To build all jars, select the BuildAll project and build that. You'll find all jars inside the dist/lib folder of the BuildAll project. To build all jars, select the BuildAll project and build that. You'll find all jars inside the dist/lib folder of the BuildAll project.
If you create pull requests, always make them for the master branch.

BIN
lib/Factions.jar Normal file

Binary file not shown.