summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-10-05 02:31:19 +0100
committerKHobbits <rob@khobbits.co.uk>2013-10-05 02:31:19 +0100
commitb227a4ef028c7a2afbdb19fa780d262cf6c27302 (patch)
treee353188fe14bf87a31f2a4817b971c04c7bedba2
parente6c17e9e964f4eaf7ea746c710df56b6fe2fda9c (diff)
downloadEssentials-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.java16
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;
}