From 8b45482d0a731bfbb60d388538605a1360fc4ec5 Mon Sep 17 00:00:00 2001 From: JeromSar Date: Thu, 30 Oct 2014 19:44:05 +0100 Subject: [PATCH] [Bleeding] Block listed IPs from being supered. Resolves #201 --- src/config.yml | 4 ++++ .../TotalFreedomMod/Commands/Command_saconfig.java | 6 +++--- .../TotalFreedomMod/Config/TFM_ConfigEntry.java | 1 + .../TotalFreedomMod/HTTPD/Module_schematic.java | 5 ++--- src/me/StevenLawson/TotalFreedomMod/TFM_Admin.java | 8 ++++++++ src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/config.yml b/src/config.yml index a0e1ef4..bc9910e 100644 --- a/src/config.yml +++ b/src/config.yml @@ -233,6 +233,10 @@ unbannable_usernames: - dantdm - gizzy14gazza +# IPs that can not be supered +noadmin_ips: + - 127.0.0.1 + # TwitterBot - Used to allow superadmins to verify themselves using twitter twitterbot: enabled: false diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index 1ea3b12..ed75069 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -3,6 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry; import me.StevenLawson.TotalFreedomMod.TFM_Admin; import me.StevenLawson.TotalFreedomMod.TFM_AdminList; +import me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler; import me.StevenLawson.TotalFreedomMod.TFM_Util; @@ -134,7 +135,7 @@ public class Command_saconfig extends TFM_Command return true; } - player = me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator.getOfflinePlayer(server, superadmin.getLastLoginName()); + player = TFM_DepreciationAggregator.getOfflinePlayer(server, superadmin.getLastLoginName()); } TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list", true); @@ -171,7 +172,7 @@ public class Command_saconfig extends TFM_Command } TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true); - TFM_AdminList.removeSuperadmin(me.StevenLawson.TotalFreedomMod.TFM_DepreciationAggregator.getOfflinePlayer(server, targetName)); + TFM_AdminList.removeSuperadmin(TFM_DepreciationAggregator.getOfflinePlayer(server, targetName)); // Twitterbot if (TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean()) @@ -194,7 +195,6 @@ public class Command_saconfig extends TFM_Command INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2), ADD("add", AdminLevel.SUPER, SourceType.ONLY_CONSOLE, 2, 2), DELETE("delete", AdminLevel.SENIOR, SourceType.ONLY_CONSOLE, 2, 2); - private final String modeName; private final AdminLevel adminLevel; private final SourceType sourceType; diff --git a/src/me/StevenLawson/TotalFreedomMod/Config/TFM_ConfigEntry.java b/src/me/StevenLawson/TotalFreedomMod/Config/TFM_ConfigEntry.java index d8dede3..36337b8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Config/TFM_ConfigEntry.java +++ b/src/me/StevenLawson/TotalFreedomMod/Config/TFM_ConfigEntry.java @@ -76,6 +76,7 @@ public enum TFM_ConfigEntry BLOCKED_COMMANDS(List.class, "blocked_commands"), HOST_SENDER_NAMES(List.class, "host_sender_names"), UNBANNABLE_USERNAMES(List.class, "unbannable_usernames"), + NOADMIN_IPS(List.class, "noadmin_ips"), ADMIN_ONLY_MODE(Boolean.class, "admin_only_mode"), AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"), CONSOLE_IS_SENIOR(Boolean.class, "console_is_senior"); diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java index 1b7df56..01a3394 100644 --- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java +++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java @@ -11,9 +11,9 @@ import java.util.Map; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Method; import me.StevenLawson.TotalFreedomMod.HTTPD.NanoHTTPD.Response; -import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Admin; import me.StevenLawson.TotalFreedomMod.TFM_AdminList; +import me.StevenLawson.TotalFreedomMod.TFM_Log; import net.minecraft.util.org.apache.commons.io.FileUtils; import net.minecraft.util.org.apache.commons.lang3.StringEscapeUtils; import net.minecraft.util.org.apache.commons.lang3.StringUtils; @@ -27,8 +27,7 @@ public class Module_schematic extends TFM_HTTPD_Module { "schematic" }; - private static final String UPLOAD_FORM - = "
\n" + private static final String UPLOAD_FORM = "\n" + "

Select a schematic file to upload. Filenames must be alphanumeric, between 1 and 30 characters long (inclusive), and have a .schematic extension.

\n" + "\n" + "
\n" diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Admin.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Admin.java index be097f9..5443c05 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Admin.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Admin.java @@ -3,8 +3,11 @@ package me.StevenLawson.TotalFreedomMod; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.Iterator; import java.util.List; import java.util.UUID; +import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry; +import me.StevenLawson.TotalFreedomMod.Config.TFM_MainConfig; import net.minecraft.util.org.apache.commons.lang3.StringUtils; import org.bukkit.configuration.ConfigurationSection; @@ -44,6 +47,11 @@ public class TFM_Admin this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false); this.consoleAliases = section.getStringList("console_aliases"); this.isActivated = section.getBoolean("is_activated", true); + + for (Iterator it = TFM_MainConfig.getList(TFM_ConfigEntry.NOADMIN_IPS).iterator(); it.hasNext();) + { + ips.remove((String) it.next()); + } } @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java b/src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java index 5b82444..a6c9bbf 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_AdminList.java @@ -566,7 +566,7 @@ public class TFM_AdminList { superadmin.setLastLogin(new Date()); - if (ip != null) + if (ip != null && !TFM_MainConfig.getList(TFM_ConfigEntry.NOADMIN_IPS).contains(ip)) { superadmin.addIp(ip); }