From 2d655e4009720490a3d4705ca37986bffd92cfc2 Mon Sep 17 00:00:00 2001 From: StevenLawson Date: Fri, 27 Sep 2013 11:01:30 -0400 Subject: [PATCH] Added "isTelnetAdmin" to SA list. --- appinfo.properties | 6 ++-- buildnumber.properties | 4 +-- .../Listener/TFM_CustomListener.java | 13 ++++++++ .../TotalFreedomMod/TFM_Superadmin.java | 18 ++++++----- .../TotalFreedomMod/TFM_SuperadminList.java | 30 +++++++++++++------ 5 files changed, 50 insertions(+), 21 deletions(-) diff --git a/appinfo.properties b/appinfo.properties index e30fed33..1afa4914 100644 --- a/appinfo.properties +++ b/appinfo.properties @@ -1,5 +1,5 @@ -#Fri, 27 Sep 2013 08:45:15 -0400 +#Fri, 27 Sep 2013 10:59:36 -0400 program.VERSION=3.2 -program.BUILDNUM=613 -program.BUILDDATE=09/27/2013 08\:45 AM +program.BUILDNUM=615 +program.BUILDDATE=09/27/2013 10\:59 AM diff --git a/buildnumber.properties b/buildnumber.properties index 2f9becd8..1dbecd55 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri Sep 27 08:45:15 EDT 2013 -build.number=614 +#Fri Sep 27 10:59:36 EDT 2013 +build.number=616 diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_CustomListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_CustomListener.java index ef1a75e9..a30b9151 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_CustomListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_CustomListener.java @@ -1,6 +1,8 @@ package me.StevenLawson.TotalFreedomMod.Listener; import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_Superadmin; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -13,6 +15,17 @@ public class TFM_CustomListener implements Listener String ip = event.getIp(); String name = event.getName(); boolean canBypassPassword = event.canBypassPassword(); + TFM_Log.info("Caught TelnetPreLoginEvent: name: " + name + " - ip: " + ip + " - canBypassPassword: " + canBypassPassword); + + if (ip != null && !ip.isEmpty()) + { + TFM_Superadmin admin = TFM_SuperadminList.getAdminEntryByIP(ip, true); + if (admin != null && (admin.isTelnetAdmin() || admin.isSeniorAdmin())) + { + event.setBypassPassword(true); + event.setName(admin.getName()); + } + } } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Superadmin.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Superadmin.java index e9b6e18a..577fcd92 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Superadmin.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Superadmin.java @@ -10,18 +10,20 @@ public class TFM_Superadmin private final String name; private final String loginMessage; private final boolean isSeniorAdmin; + private final boolean isTelnetAdmin; private final List consoleAliases; - private List ips; + private final List ips; private Date lastLogin; private boolean isActivated; - public TFM_Superadmin(String name, List ips, Date lastLogin, String loginMessage, boolean isSeniorAdmin, List consoleAliases, boolean isActivated) + public TFM_Superadmin(String name, List ips, Date lastLogin, String loginMessage, boolean isSeniorAdmin, boolean isTelnetAdmin, List consoleAliases, boolean isActivated) { this.name = name.toLowerCase(); this.ips = ips; this.lastLogin = lastLogin; this.loginMessage = loginMessage; this.isSeniorAdmin = isSeniorAdmin; + this.isTelnetAdmin = isTelnetAdmin; this.consoleAliases = consoleAliases; this.isActivated = isActivated; } @@ -33,6 +35,7 @@ public class TFM_Superadmin this.lastLogin = TFM_Util.stringToDate(section.getString("last_login", TFM_Util.dateToString(new Date(0L)))); this.loginMessage = section.getString("custom_login_message", ""); this.isSeniorAdmin = section.getBoolean("is_senior_admin", false); + this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false); this.consoleAliases = section.getStringList("console_aliases"); this.isActivated = section.getBoolean("is_activated", true); } @@ -49,6 +52,7 @@ public class TFM_Superadmin output.append("- Last Login: ").append(TFM_Util.dateToString(this.lastLogin)).append("\n"); output.append("- Custom Login Message: ").append(this.loginMessage).append("\n"); output.append("- Is Senior Admin: ").append(this.isSeniorAdmin).append("\n"); + output.append("- Is Telnet Admin: ").append(this.isTelnetAdmin).append("\n"); output.append("- Console Aliases: ").append(StringUtils.join(this.consoleAliases, ", ")).append("\n"); output.append("- Is Activated: ").append(this.isActivated); } @@ -85,16 +89,16 @@ public class TFM_Superadmin return isSeniorAdmin; } + public boolean isTelnetAdmin() + { + return isTelnetAdmin; + } + public List getConsoleAliases() { return consoleAliases; } - public void setIps(List ips) - { - this.ips = ips; - } - public void setLastLogin(Date lastLogin) { this.lastLogin = lastLogin; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java b/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java index d33a3d68..37301ea3 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java @@ -179,15 +179,33 @@ public class TFM_SuperadminList } public static TFM_Superadmin getAdminEntryByIP(String ip) + { + return getAdminEntryByIP(ip, false); + } + + public static TFM_Superadmin getAdminEntryByIP(String needleIP, boolean fuzzy) { Iterator> it = superadminList.entrySet().iterator(); while (it.hasNext()) { Entry pair = it.next(); TFM_Superadmin superadmin = pair.getValue(); - if (superadmin.getIps().contains(ip)) + if (fuzzy) { - return superadmin; + for (String haystackIP : superadmin.getIps()) + { + if (TFM_Util.fuzzyIpMatch(needleIP, haystackIP, 3)) + { + return superadmin; + } + } + } + else + { + if (superadmin.getIps().contains(needleIP)) + { + return superadmin; + } } } return null; @@ -300,7 +318,6 @@ public class TFM_SuperadminList { List ips = entry.getIps(); ips.add(ip); - entry.setIps(ips); saveSuperadminList(); } } @@ -349,12 +366,7 @@ public class TFM_SuperadminList } else { - Date lastLogin = new Date(); - String loginMessage = ""; - boolean isSeniorAdmin = false; - List consoleAliases = new ArrayList(); - - TFM_Superadmin superadmin = new TFM_Superadmin(username, ips, lastLogin, loginMessage, isSeniorAdmin, consoleAliases, true); + TFM_Superadmin superadmin = new TFM_Superadmin(username, ips, new Date(), "", false, false, new ArrayList(), true); superadminList.put(username.toLowerCase(), superadmin); }