diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 36654b91f..d6299f387 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -1,5 +1,8 @@ package com.earth2me.essentials; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.logging.Level; @@ -453,7 +456,8 @@ public class EssentialsPlayerListener extends PlayerListener } final User user = ess.getUser(event.getPlayer()); final String cmd = event.getMessage().toLowerCase().split(" ")[0].replace("/", "").toLowerCase(); - if (("msg".equals(cmd) || "r".equals(cmd) || "mail".equals(cmd))) + final List commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email"); + if (commands.contains(cmd)) { for (Player player : ess.getServer().getOnlinePlayers()) { diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index bba843999..b1392a2e6 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -251,6 +251,10 @@ public class User extends UserData implements Comparable, IReplyTo, IUser nickname.insert(0, prefix); nickname.append(suffix); + if (suffix.length() < 2 || !suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§")) + { + nickname.append("§f"); + } return nickname.toString(); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandmute.java b/Essentials/src/com/earth2me/essentials/commands/Commandmute.java index 8c8c2e6bf..c6022cc5c 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandmute.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandmute.java @@ -22,7 +22,7 @@ public class Commandmute extends EssentialsCommand } User p = getPlayer(server, args, 0, true); - if (p.isAuthorized("essentials.mute.exempt")) + if (!p.isMuted() && p.isAuthorized("essentials.mute.exempt")) { sender.sendMessage(Util.i18n("muteExempt")); return; diff --git a/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java b/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java new file mode 100644 index 000000000..071b61be1 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java @@ -0,0 +1,47 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.User; +import com.earth2me.essentials.commands.Commandspawnmob; + + +public class SignSpawnmob extends EssentialsSign +{ + + public SignSpawnmob() + { + super("Spawnmob"); + } + + @Override + protected boolean onSignCreate(ISign sign, User player, String username, IEssentials ess) throws SignException, ChargeException + { + validateInteger(sign, 1); + validateTrade(sign, 3, ess); + return true; + } + + @Override + protected boolean onSignInteract(ISign sign, User player, String username, IEssentials ess) throws SignException, ChargeException + { + final Trade charge = getTrade(sign, 3, ess); + charge.isAffordableFor(player); + Commandspawnmob command = new Commandspawnmob(); + command.setEssentials(ess); + String[] args = new String[] { + sign.getLine(2), sign.getLine(1) + }; + try + { + command.run(ess.getServer(), player, "spawnmob", args); + } + catch (Exception ex) + { + throw new SignException(ex.getMessage(), ex); + } + charge.charge(player); + return true; + } +} diff --git a/Essentials/src/com/earth2me/essentials/signs/Signs.java b/Essentials/src/com/earth2me/essentials/signs/Signs.java index 18913ff10..53ed1d6b0 100644 --- a/Essentials/src/com/earth2me/essentials/signs/Signs.java +++ b/Essentials/src/com/earth2me/essentials/signs/Signs.java @@ -11,6 +11,7 @@ public enum Signs MAIL(new SignMail()), PROTECTION(new SignProtection()), SELL(new SignSell()), + SPAWNMOB(new SignSpawnmob()), TIME(new SignTime()), TRADE(new SignTrade()), WARP(new SignWarp()), diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 26bcf5806..39dd25a45 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -179,7 +179,7 @@ commands: msg: description: Sends a private message to the specified player. usage: / - aliases: [m,t,emsg] + aliases: [m,t,emsg,tell] mute: description: Mutes or unmutes a player. usage: / [player] diff --git a/lib/VanishNoPickup.jar b/lib/VanishNoPickup.jar new file mode 100644 index 000000000..e3cb1eb76 Binary files /dev/null and b/lib/VanishNoPickup.jar differ