diff options
| author | Cow <cow@volloeko.de> | 2020-04-28 12:44:09 +0200 |
|---|---|---|
| committer | Cow <cow@volloeko.de> | 2020-04-28 12:44:09 +0200 |
| commit | 38cd6cc98ba320e54754a270c889549b793b6b90 (patch) | |
| tree | afee59b68a33f9ca183fc48c9d58e5fdf0dda95b /src/main/java/eu/olli/cowmoonication/util | |
| parent | 35553dceb9c683000095ce1a62b4e094234304bc (diff) | |
| download | Cowlection-38cd6cc98ba320e54754a270c889549b793b6b90.tar.gz Cowlection-38cd6cc98ba320e54754a270c889549b793b6b90.tar.bz2 Cowlection-38cd6cc98ba320e54754a270c889549b793b6b90.zip | |
Added Tab-completable usernames for various commands
- use /tabcompletablecommand for a full list of valid commands (e.g. party, msg, boop, ...)
- list of supported commands can be modified via config
Diffstat (limited to 'src/main/java/eu/olli/cowmoonication/util')
| -rw-r--r-- | src/main/java/eu/olli/cowmoonication/util/PlayerCache.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/eu/olli/cowmoonication/util/PlayerCache.java b/src/main/java/eu/olli/cowmoonication/util/PlayerCache.java new file mode 100644 index 0000000..1b5251a --- /dev/null +++ b/src/main/java/eu/olli/cowmoonication/util/PlayerCache.java @@ -0,0 +1,46 @@ +package eu.olli.cowmoonication.util; + +import com.google.common.collect.EvictingQueue; +import eu.olli.cowmoonication.Cowmoonication; + +import java.util.Set; +import java.util.TreeSet; + +public class PlayerCache { + @SuppressWarnings("UnstableApiUsage") + private final EvictingQueue<String> nameCache = EvictingQueue.create(50); + @SuppressWarnings("UnstableApiUsage") + private final EvictingQueue<String> bestFriendCache = EvictingQueue.create(50); + private final Cowmoonication main; + + public PlayerCache(Cowmoonication main) { + this.main = main; + } + + public void add(String name) { + // remove old entry (if exists) to 'push' name to the end of the queue + nameCache.remove(name); + nameCache.add(name); + } + + public void addBestFriend(String name) { + // remove old entry (if exists) to 'push' name to the end of the queue + bestFriendCache.remove(name); + bestFriendCache.add(name); + } + + public void removeBestFriend(String name) { + bestFriendCache.remove(name); + } + + public Set<String> getAllNamesSorted() { + Set<String> nameList = new TreeSet<>(bestFriendCache); + nameList.addAll(nameCache); + return nameList; + } + + public void clearAllCaches() { + nameCache.clear(); + bestFriendCache.clear(); + } +} |
