diff options
author | KHobbits <rob@khobbits.co.uk> | 2013-10-05 02:31:19 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2013-10-05 02:31:19 +0100 |
commit | b227a4ef028c7a2afbdb19fa780d262cf6c27302 (patch) | |
tree | e353188fe14bf87a31f2a4817b971c04c7bedba2 | |
parent | e6c17e9e964f4eaf7ea746c710df56b6fe2fda9c (diff) | |
download | Essentials-b227a4ef028c7a2afbdb19fa780d262cf6c27302.tar Essentials-b227a4ef028c7a2afbdb19fa780d262cf6c27302.tar.gz Essentials-b227a4ef028c7a2afbdb19fa780d262cf6c27302.tar.lz Essentials-b227a4ef028c7a2afbdb19fa780d262cf6c27302.tar.xz Essentials-b227a4ef028c7a2afbdb19fa780d262cf6c27302.zip |
Improve nick validation
Now matches nicks against userdata for conflicts
Now checks for empty string nicknames
-rw-r--r-- | Essentials/src/com/earth2me/essentials/commands/Commandnick.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java index 25c7207a0..c003dcbdd 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java @@ -30,14 +30,15 @@ public class Commandnick extends EssentialsLoopCommand throw new Exception(_("nickDisplayName")); } - final String[] nickname = formatNickname(user, args[1]).split(" "); if (args.length > 1 && user.isAuthorized("essentials.nick.others")) { + final String[] nickname = formatNickname(user, args[1]).split(" "); loopOfflinePlayers(server, user.getBase(), false, args[0], nickname); user.sendMessage(_("nickChanged")); } else { + final String[] nickname = formatNickname(user, args[0]).split(" "); updatePlayer(server, user.getBase(), user, nickname); } } @@ -94,23 +95,30 @@ public class Commandnick extends EssentialsLoopCommand { throw new Exception(_("nickTooLong")); } + else if (FormatUtil.stripFormat(newNick).length() < 1) + { + throw new Exception(_("nickNamesAlpha")); + } return newNick; } private boolean nickInUse(final Server server, final User target, String nick) { - final String lowerNick = nick.toLowerCase(Locale.ENGLISH); + final String lowerNick = FormatUtil.stripFormat(nick.toLowerCase(Locale.ENGLISH)); for (final Player onlinePlayer : server.getOnlinePlayers()) { if (target.getBase() == onlinePlayer) { continue; } - if (lowerNick.equals(onlinePlayer.getDisplayName().toLowerCase(Locale.ENGLISH)) + if (lowerNick.equals(FormatUtil.stripFormat(onlinePlayer.getDisplayName().toLowerCase(Locale.ENGLISH))) || lowerNick.equals(onlinePlayer.getName().toLowerCase(Locale.ENGLISH))) { return true; - } + } + } + if (ess.getUser(lowerNick) != null) { + return true; } return false; } |