summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-05-13 18:58:50 +0100
committerKHobbits <rob@khobbits.co.uk>2012-05-13 18:58:50 +0100
commit3af923d9404adfaba719f15e87133959669df66d (patch)
treee5edf021a745640631dba81782a9445313e628d9
parentf7e038dba1bb11a5981b4fa4a2a2f8179ce91392 (diff)
downloadEssentials-3af923d9404adfaba719f15e87133959669df66d.tar
Essentials-3af923d9404adfaba719f15e87133959669df66d.tar.gz
Essentials-3af923d9404adfaba719f15e87133959669df66d.tar.lz
Essentials-3af923d9404adfaba719f15e87133959669df66d.tar.xz
Essentials-3af923d9404adfaba719f15e87133959669df66d.zip
Try to trim long displaynicks instead of blankly refusing to show them.
Will try trimming prefixes and dropping suffixes before trimming nicknames.
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java67
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java9
2 files changed, 44 insertions, 32 deletions
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 6f3023fbe..14660d8b8 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -263,75 +263,78 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
return teleportRequestHere;
}
- public String getNick(final boolean addprefixsuffix)
+ public String getNick(final boolean longnick)
{
- final StringBuilder nickname = new StringBuilder();
+ final StringBuilder prefix = new StringBuilder();
+ String nickname;
+ String suffix = "§f";
final String nick = getNickname();
if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equals(getName()))
{
- nickname.append(getName());
+ nickname = getName();
}
else
{
- nickname.append(ess.getSettings().getNicknamePrefix()).append(nick);
+ nickname = ess.getSettings().getNicknamePrefix() + nick;
}
- if (addprefixsuffix && isOp())
+ if (isOp())
{
try
{
final String opPrefix = ess.getSettings().getOperatorColor().toString();
if (opPrefix.length() > 0)
{
- nickname.insert(0, opPrefix);
- nickname.append("§f");
+ prefix.insert(0, opPrefix);
}
}
catch (Exception e)
{
}
}
- if (addprefixsuffix && ess.getSettings().addPrefixSuffix())
+
+ if (ess.getSettings().addPrefixSuffix())
{
if (!ess.getSettings().disablePrefix())
{
- final String prefix = ess.getPermissionsHandler().getPrefix(base).replace('&', '§');
- nickname.insert(0, prefix);
+ final String ptext = ess.getPermissionsHandler().getPrefix(base).replace('&', '§');
+ prefix.insert(0, ptext);
}
if (!ess.getSettings().disableSuffix())
{
- final String suffix = ess.getPermissionsHandler().getSuffix(base).replace('&', '§');
- nickname.append(suffix);
- if (suffix.length() < 2 || suffix.charAt(suffix.length() - 2) != '§')
- {
- nickname.append("§f");
- }
- }
- else
- {
- nickname.append("§f");
+ final String stext = ess.getPermissionsHandler().getSuffix(base).replace('&', '§');
+ suffix = stext + "§f";
+ suffix = suffix.replace("§f§f", "§f");
}
}
-
- return nickname.toString();
+ final String strPrefix = prefix.toString();
+ String output = strPrefix + nickname + suffix;
+ if (!longnick && output.length() > 16)
+ {
+ output = strPrefix + nickname;
+ }
+ if (!longnick && output.length() > 16)
+ {
+ output = Util.lastCode(strPrefix) + nickname;
+ }
+ if (!longnick && output.length() > 16)
+ {
+ output = Util.lastCode(strPrefix) + nickname.substring(0, 14);
+ }
+ if (output.charAt(output.length() - 1) == '§') {
+ output = output.substring(0, output.length() - 1);
+ }
+ return output;
}
public void setDisplayNick()
{
if (base.isOnline() && ess.getSettings().changeDisplayName())
{
- String name = getNick(true);
- setDisplayName(name);
- if (name.length() > 16)
- {
- name = getNick(false);
- }
- if (name.length() > 16)
- {
- name = Util.stripFormat(name);
- }
+ setDisplayName(getNick(true));
if (ess.getSettings().changePlayerListName())
{
+ String name = getNick(false);
try
{
setPlayerListName(name);
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index 73817f645..112477ecb 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -510,6 +510,15 @@ public class Util
}
return buf.toString();
}
+
+ public static String lastCode(final String input) {
+ int pos = input.lastIndexOf("§");
+ if (pos == -1 || (pos + 1) == input.length()) {
+ return "";
+ }
+ return input.substring(pos, pos + 2);
+ }
+
private static transient final Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-z]{2,3}(?:/\\S+)?)");
private static transient final Pattern VANILLA_PATTERN = Pattern.compile("\u00A7+[0-9A-FK-ORa-fk-or]");
private static transient final Pattern REPLACE_PATTERN = Pattern.compile("&([0-9a-fk-or])");