summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2014-04-18 05:57:47 +0100
committerKHobbits <rob@khobbits.co.uk>2014-04-18 05:57:47 +0100
commitb6c0871daa66fffd9fe1c5acad584ed84228df61 (patch)
tree6ed96d8c3f6a827766ec84e9d4c45c65dcd5dc98
parentb0801878084141328c2da0eaf7a47b9c73f3f265 (diff)
downloadEssentials-b6c0871daa66fffd9fe1c5acad584ed84228df61.tar
Essentials-b6c0871daa66fffd9fe1c5acad584ed84228df61.tar.gz
Essentials-b6c0871daa66fffd9fe1c5acad584ed84228df61.tar.lz
Essentials-b6c0871daa66fffd9fe1c5acad584ed84228df61.tar.xz
Essentials-b6c0871daa66fffd9fe1c5acad584ed84228df61.zip
Format /seen account history list, optimize map loading.
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsConf.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/UUIDMap.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/UserMap.java49
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandseen.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/utils/StringUtil.java34
-rw-r--r--Essentials/src/messages.properties1
-rw-r--r--Essentials/src/messages_cs.properties1
-rw-r--r--Essentials/src/messages_da.properties1
-rw-r--r--Essentials/src/messages_de.properties1
-rw-r--r--Essentials/src/messages_en.properties1
-rw-r--r--Essentials/src/messages_es.properties1
-rw-r--r--Essentials/src/messages_et.properties1
-rw-r--r--Essentials/src/messages_fi.properties1
-rw-r--r--Essentials/src/messages_fr.properties1
-rw-r--r--Essentials/src/messages_hu.properties1
-rw-r--r--Essentials/src/messages_it.properties1
-rw-r--r--Essentials/src/messages_ko.properties1
-rw-r--r--Essentials/src/messages_lt.properties1
-rw-r--r--Essentials/src/messages_nl.properties1
-rw-r--r--Essentials/src/messages_pl.properties1
-rw-r--r--Essentials/src/messages_pt.properties1
-rw-r--r--Essentials/src/messages_ro.properties1
-rw-r--r--Essentials/src/messages_ru.properties1
-rw-r--r--Essentials/src/messages_sv.properties1
-rw-r--r--Essentials/src/messages_tr.properties1
-rw-r--r--Essentials/src/messages_zh.properties1
-rw-r--r--Essentials/src/messages_zh_HK.properties1
-rw-r--r--Essentials/src/messages_zh_TW.properties1
-rw-r--r--nbactions.xml1
29 files changed, 91 insertions, 29 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsConf.java b/Essentials/src/com/earth2me/essentials/EssentialsConf.java
index 3ce2151ea..2d5e550ad 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsConf.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsConf.java
@@ -170,7 +170,6 @@ public class EssentialsConf extends YamlConfiguration
finally
{
inputStream.close();
- save();
}
}
catch (IOException ex)
diff --git a/Essentials/src/com/earth2me/essentials/UUIDMap.java b/Essentials/src/com/earth2me/essentials/UUIDMap.java
index b095b6b8e..ba712752b 100644
--- a/Essentials/src/com/earth2me/essentials/UUIDMap.java
+++ b/Essentials/src/com/earth2me/essentials/UUIDMap.java
@@ -117,6 +117,10 @@ public class UUIDMap
public Future<?> _writeUUIDMap()
{
final ConcurrentSkipListMap<String, UUID> names = ess.getUserMap().getNames().clone();
+ if (names.size() < 1)
+ {
+ return null;
+ }
pendingDiskWrites.incrementAndGet();
Future<?> future = EXECUTOR_SERVICE.submit(new WriteRunner(ess.getDataFolder(), userList, names, pendingDiskWrites));
return future;
diff --git a/Essentials/src/com/earth2me/essentials/UserMap.java b/Essentials/src/com/earth2me/essentials/UserMap.java
index ea20f8979..4983ebcb2 100644
--- a/Essentials/src/com/earth2me/essentials/UserMap.java
+++ b/Essentials/src/com/earth2me/essentials/UserMap.java
@@ -15,6 +15,7 @@ import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.ExecutionException;
import net.ess3.api.IEssentials;
+import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -33,7 +34,6 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
this.ess = ess;
uuidMap = new UUIDMap(ess);
users = CacheBuilder.newBuilder().maximumSize(ess.getSettings().getMaxUserCacheCount()).softValues().build(this);
- loadAllUsersAsync(ess);
}
private void loadAllUsersAsync(final IEssentials ess)
@@ -43,33 +43,34 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
@Override
public void run()
{
- final File userdir = new File(ess.getDataFolder(), "userdata");
- if (!userdir.exists())
- {
- return;
- }
- keys.clear();
- names.clear();
- users.invalidateAll();
- for (String string : userdir.list())
+ synchronized (users)
{
- if (!string.endsWith(".yml"))
- {
- continue;
- }
- final String name = string.substring(0, string.length() - 4);
- try
+ final File userdir = new File(ess.getDataFolder(), "userdata");
+ if (!userdir.exists())
{
- keys.add(UUID.fromString(name));
+ return;
}
- catch (IllegalArgumentException ex)
+ keys.clear();
+ names.clear();
+ users.invalidateAll();
+ for (String string : userdir.list())
{
- //Ignore these users till they rejoin.
+ if (!string.endsWith(".yml"))
+ {
+ continue;
+ }
+ final String name = string.substring(0, string.length() - 4);
+ try
+ {
+ keys.add(UUID.fromString(name));
+ }
+ catch (IllegalArgumentException ex)
+ {
+ //Ignore these users till they rejoin.
+ }
}
+ uuidMap.loadAllUsers(names, history);
}
-
- uuidMap.loadAllUsers(names, history);
-
}
});
}
@@ -164,7 +165,7 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
if (userFile.exists())
{
- player = new OfflinePlayer(uuid, ess.getServer());
+ player = new OfflinePlayer(uuid, ess.getServer());
final User user = new User(player, ess);
((OfflinePlayer)player).setName(user.getLastAccountName());
trackUUID(uuid, user.getName());
@@ -212,7 +213,7 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
{
return history;
}
-
+
public List<String> getUserHistory(final UUID uuid)
{
return history.get(uuid);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
index 4ec1a2594..9bf924e63 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
@@ -74,9 +74,9 @@ public class Commandseen extends EssentialsCommand
sender.sendMessage(tl("seenOnline", user.getDisplayName(), DateUtil.formatDateDiff(user.getLastLogin())));
List<String> history = ess.getUserMap().getUserHistory(user.getBase().getUniqueId());
- if (history.size() > 1)
+ if (history != null && history.size() > 1)
{
- sender.sendMessage("User has also been known as: " + StringUtil.joinList(history)); //TODO: TL
+ sender.sendMessage(tl("seenAccounts", StringUtil.joinListSkip(", ", user.getName(), history)));
}
if (user.isAfk())
@@ -119,9 +119,9 @@ public class Commandseen extends EssentialsCommand
}
List<String> history = ess.getUserMap().getUserHistory(user.getBase().getUniqueId());
- if (history.size() > 1)
+ if (history != null && history.size() > 1)
{
- sender.sendMessage("User has also been known as: " + StringUtil.joinList(history)); //TODO: TL
+ sender.sendMessage(tl("seenAccounts", StringUtil.joinListSkip(", ", user.getName(), history)));
}
if (user.getBase().isBanned())
diff --git a/Essentials/src/com/earth2me/essentials/utils/StringUtil.java b/Essentials/src/com/earth2me/essentials/utils/StringUtil.java
index cd6c579f6..3c0ea9239 100644
--- a/Essentials/src/com/earth2me/essentials/utils/StringUtil.java
+++ b/Essentials/src/com/earth2me/essentials/utils/StringUtil.java
@@ -60,6 +60,40 @@ public class StringUtil
}
return buf.toString();
}
+
+ public static String joinListSkip(String seperator, String skip, Object... list)
+ {
+ StringBuilder buf = new StringBuilder();
+ for (Object each : list)
+ {
+ if (each.toString().equalsIgnoreCase(skip)) {
+ continue;
+ }
+
+ if (buf.length() > 0)
+ {
+ buf.append(seperator);
+ }
+
+ if (each instanceof Collection)
+ {
+ buf.append(joinListSkip(seperator, skip, ((Collection)each).toArray()));
+ }
+ else
+ {
+ try
+ {
+ buf.append(each.toString());
+ }
+ catch (Exception e)
+ {
+ buf.append(each.toString());
+ }
+ }
+ }
+ return buf.toString();
+ }
+
private StringUtil()
{
}
diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties
index 4f8ad02a8..5abc17c15 100644
--- a/Essentials/src/messages.properties
+++ b/Essentials/src/messages.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters.
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties
index 06c8df9fc..ed3a79825 100644
--- a/Essentials/src/messages_cs.properties
+++ b/Essentials/src/messages_cs.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties
index 67bce1408..d33b004f2 100644
--- a/Essentials/src/messages_da.properties
+++ b/Essentials/src/messages_da.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties
index 53a877a64..197240ec1 100644
--- a/Essentials/src/messages_de.properties
+++ b/Essentials/src/messages_de.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties
index 4f8ad02a8..5abc17c15 100644
--- a/Essentials/src/messages_en.properties
+++ b/Essentials/src/messages_en.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters.
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties
index 1aee41a3e..e19c297ea 100644
--- a/Essentials/src/messages_es.properties
+++ b/Essentials/src/messages_es.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_et.properties b/Essentials/src/messages_et.properties
index c8162637e..49b65fd58 100644
--- a/Essentials/src/messages_et.properties
+++ b/Essentials/src/messages_et.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties
index 85f660022..fa01cc3ea 100644
--- a/Essentials/src/messages_fi.properties
+++ b/Essentials/src/messages_fi.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties
index 3fe48b487..8df87422c 100644
--- a/Essentials/src/messages_fr.properties
+++ b/Essentials/src/messages_fr.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties
index 83a5e1350..7fb296deb 100644
--- a/Essentials/src/messages_hu.properties
+++ b/Essentials/src/messages_hu.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties
index 4a6bf21aa..d62baa616 100644
--- a/Essentials/src/messages_it.properties
+++ b/Essentials/src/messages_it.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_ko.properties b/Essentials/src/messages_ko.properties
index 68879257b..3d5fbee08 100644
--- a/Essentials/src/messages_ko.properties
+++ b/Essentials/src/messages_ko.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_lt.properties b/Essentials/src/messages_lt.properties
index 7c6875c43..68ad18671 100644
--- a/Essentials/src/messages_lt.properties
+++ b/Essentials/src/messages_lt.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties
index d27f378b9..b4efc24f4 100644
--- a/Essentials/src/messages_nl.properties
+++ b/Essentials/src/messages_nl.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties
index f47787651..2f3f26c4f 100644
--- a/Essentials/src/messages_pl.properties
+++ b/Essentials/src/messages_pl.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties
index 6090ec3b3..72e6d98ea 100644
--- a/Essentials/src/messages_pt.properties
+++ b/Essentials/src/messages_pt.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_ro.properties b/Essentials/src/messages_ro.properties
index 6c6211f83..5c36f98cb 100644
--- a/Essentials/src/messages_ro.properties
+++ b/Essentials/src/messages_ro.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_ru.properties b/Essentials/src/messages_ru.properties
index 7f31ec99f..dbeace14f 100644
--- a/Essentials/src/messages_ru.properties
+++ b/Essentials/src/messages_ru.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_sv.properties b/Essentials/src/messages_sv.properties
index 7ed3eaa64..3ec26213a 100644
--- a/Essentials/src/messages_sv.properties
+++ b/Essentials/src/messages_sv.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_tr.properties b/Essentials/src/messages_tr.properties
index 34cafa98c..8d80e596f 100644
--- a/Essentials/src/messages_tr.properties
+++ b/Essentials/src/messages_tr.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_zh.properties b/Essentials/src/messages_zh.properties
index 2ba82bce6..2f0947661 100644
--- a/Essentials/src/messages_zh.properties
+++ b/Essentials/src/messages_zh.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_zh_HK.properties b/Essentials/src/messages_zh_HK.properties
index 254ff4e70..82c97bf70 100644
--- a/Essentials/src/messages_zh_HK.properties
+++ b/Essentials/src/messages_zh_HK.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/Essentials/src/messages_zh_TW.properties b/Essentials/src/messages_zh_TW.properties
index 42611ef60..d1f61c169 100644
--- a/Essentials/src/messages_zh_TW.properties
+++ b/Essentials/src/messages_zh_TW.properties
@@ -545,3 +545,4 @@ weatherInvalidWorld=World named {0} not found\!
gameModeInvalid=\u00a74You need to specify a valid player/mode.
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
+seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
diff --git a/nbactions.xml b/nbactions.xml
index 0842d88fd..23a1ac4b6 100644
--- a/nbactions.xml
+++ b/nbactions.xml
@@ -23,6 +23,7 @@
<actionName>build</actionName>
<goals>
<goal>package</goal>
+ <goal>dependency:copy</goal>
</goals>
</action>
</actions>