diff options
author | KHobbits <rob@khobbits.co.uk> | 2014-08-14 01:48:08 +0100 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2014-08-14 01:50:31 +0100 |
commit | 8890660e203b9437bcb9f314b5092614ffcd789e (patch) | |
tree | 8e417a94204e9354e3f669bec759e2655256fd7c /Essentials/src | |
parent | 0cab5b960145bcc718707257eeb7a3cb82a5a2ea (diff) | |
download | Essentials-8890660e203b9437bcb9f314b5092614ffcd789e.tar Essentials-8890660e203b9437bcb9f314b5092614ffcd789e.tar.gz Essentials-8890660e203b9437bcb9f314b5092614ffcd789e.tar.lz Essentials-8890660e203b9437bcb9f314b5092614ffcd789e.tar.xz Essentials-8890660e203b9437bcb9f314b5092614ffcd789e.zip |
Use quicker ban lookup to reduce /seen lag.
Diffstat (limited to 'Essentials/src')
4 files changed, 45 insertions, 8 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java index 991abab34..1782362c3 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java @@ -1,6 +1,7 @@ package com.earth2me.essentials; import static com.earth2me.essentials.I18n.tl; +import com.earth2me.essentials.craftbukkit.BanLookup; import com.earth2me.essentials.craftbukkit.FakeWorld; import com.earth2me.essentials.settings.Spawns; import com.earth2me.essentials.storage.YamlStorageWriter; @@ -729,7 +730,7 @@ public class EssentialsUpgrade banTimeout = 0L; } - if (ess.getServer().getBanList(BanList.Type.NAME).isBanned(playerName)) + if (BanLookup.isBanned(ess, playerName)) { updateBan(playerName, banReason, banTimeout); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java index e1538338e..35c719cf4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java @@ -4,15 +4,14 @@ import com.earth2me.essentials.CommandSource; import static com.earth2me.essentials.I18n.tl; import com.earth2me.essentials.User; import com.earth2me.essentials.UserMap; +import com.earth2me.essentials.craftbukkit.BanLookup; import com.earth2me.essentials.utils.DateUtil; import com.earth2me.essentials.utils.FormatUtil; import com.earth2me.essentials.utils.StringUtil; -import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.bukkit.BanList; -import org.bukkit.Bukkit; import java.util.UUID; import org.bukkit.BanEntry; import org.bukkit.Location; @@ -64,9 +63,9 @@ public class Commandseen extends EssentialsCommand sender.sendMessage(tl("isIpBanned", args[0])); return; } - else if (ess.getServer().getBanList(BanList.Type.NAME).isBanned(args[0])) + else if (BanLookup.isBanned(ess, args[0])) { - sender.sendMessage(tl("whoisBanned", showBan ? ess.getServer().getBanList(BanList.Type.NAME).getBanEntry(args[0]).getReason() : tl("true"))); + sender.sendMessage(tl("whoisBanned", showBan ? BanLookup.getBanEntry(ess, args[0]).getReason() : tl("true"))); return; } else @@ -145,9 +144,9 @@ public class Commandseen extends EssentialsCommand sender.sendMessage(tl("seenAccounts", StringUtil.joinListSkip(", ", user.getName(), history))); } - if (user.getBase().isBanned()) + if (BanLookup.isBanned(ess, user)) { - final BanEntry banEntry = ess.getServer().getBanList(BanList.Type.NAME).getBanEntry(user.getName()); + final BanEntry banEntry = BanLookup.getBanEntry(ess, user.getName()); final String reason = showBan ? banEntry.getReason() : tl("true"); sender.sendMessage(tl("whoisBanned", reason)); if (banEntry.getExpiration() != null) @@ -161,6 +160,7 @@ public class Commandseen extends EssentialsCommand sender.sendMessage(tl("whoisTempBanned", expireString)); } } + final String location = user.getGeoLocation(); if (location != null && (!(sender.isPlayer()) || ess.getUser(sender.getPlayer()).isAuthorized("essentials.geoip.show"))) { diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/BanLookup.java b/Essentials/src/com/earth2me/essentials/craftbukkit/BanLookup.java new file mode 100644 index 000000000..e5d26667d --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/BanLookup.java @@ -0,0 +1,36 @@ +package com.earth2me.essentials.craftbukkit; + +import com.earth2me.essentials.User; +import java.util.Iterator; +import java.util.Set; +import net.ess3.api.IEssentials; +import org.bukkit.BanEntry; +import org.bukkit.BanList; + + +public class BanLookup +{ + public static Boolean isBanned(IEssentials ess, User user) + { + return isBanned(ess, user.getName()); + } + + public static Boolean isBanned(IEssentials ess, String name) + { + return getBanEntry(ess, name) != null; + } + + public static BanEntry getBanEntry(IEssentials ess, String name) + { + Set<BanEntry> benteries = ess.getServer().getBanList(BanList.Type.NAME).getBanEntries(); + for (BanEntry banEnt : benteries) + { + if (banEnt.getTarget().equals(name)) + { + return banEnt; + } + } + return null; + } + +} diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 64d25eaa4..dc2725d4b 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -229,7 +229,7 @@ commands: mail: description: Manages inter-player, intra-server mail. usage: /<command> [read|clear|send [to] [message]|sendall [message]] - aliases: [email,eemail] + aliases: [email,eemail,memo,ememo] me: description: Describes an action in the context of the player. usage: /<command> <description> |