From 5f9626921d17696f0426bd9b3fd578dd1f606f30 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Sun, 30 Oct 2011 15:27:06 -0400 Subject: [PATCH] Revamp superadmin list. TODO: Auto-add. --- .../Commands/Command_saconfig.java | 83 +++++++++++++++--- .../TotalFreedomMod/TFM_Util.java | 22 ++--- .../TotalFreedomMod/TotalFreedomMod.java | 84 ++++++++++++------- src/superadmin.yml | 9 +- 4 files changed, 144 insertions(+), 54 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index d7638ab8..d0919501 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -2,8 +2,9 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.logging.Level; -import java.util.logging.Logger; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -28,6 +29,47 @@ public class Command_saconfig extends TFM_Command return false; } +// if (args[0].equalsIgnoreCase("add")) +// { +// Player p; +// try +// { +// p = getPlayer(args[1]); +// } +// catch (CantFindPlayerException ex) +// { +// sender.sendMessage(ex.getMessage()); +// return true; +// } +// +// String user_name = p.getName().toLowerCase().trim(); +// String user_ip = p.getAddress().getAddress().toString().replaceAll("/", "").trim(); +// +// sender.sendMessage(ChatColor.GRAY + "Adding " + user_name + " as a superadmin, with current IP = " + user_ip); +// +// if (!plugin.superadmins.contains(user_name)) +// { +// plugin.superadmins.add(user_name); +// } +// +// if (!plugin.superadmin_ips.contains(user_ip)) +// { +// plugin.superadmin_ips.add(user_ip); +// } +// +// try +// { +// FileConfiguration config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); +// config.set("superadmins", plugin.superadmins); +// config.set("superadmin_ips", plugin.superadmin_ips); +// config.save(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); +// } +// catch (IOException ex) +// { +// Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); +// } +// } + if (args[0].equalsIgnoreCase("add")) { Player p; @@ -42,30 +84,51 @@ public class Command_saconfig extends TFM_Command } String user_name = p.getName().toLowerCase().trim(); - String user_ip = p.getAddress().getAddress().toString().replaceAll("/", "").trim(); + String new_ip = p.getAddress().getAddress().toString().replaceAll("/", "").trim(); - sender.sendMessage(ChatColor.GRAY + "Adding " + user_name + " as a superadmin, with current IP = " + user_ip); + boolean something_changed = false; if (!plugin.superadmins.contains(user_name)) { plugin.superadmins.add(user_name); + sender.sendMessage("Adding new superadmin: " + user_name); + something_changed = true; } - if (!plugin.superadmin_ips.contains(user_ip)) + if (!plugin.superadmin_ips.contains(new_ip)) { - plugin.superadmin_ips.add(user_ip); + plugin.superadmin_ips.add(new_ip); + sender.sendMessage("Adding new superadmin IP: " + new_ip); + something_changed = true; } + if (!something_changed) + { + sender.sendMessage("That superadmin/superadmin ip pair already exists. Nothing to change!"); + } + + FileConfiguration config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); + + List user_ips = new ArrayList(); + if (config.contains(user_name)) + { + user_ips = config.getStringList(user_name); + } + + if (!user_ips.contains(new_ip)) + { + user_ips.add(new_ip); + } + + config.set(user_name, user_ips); + try { - FileConfiguration sa_config = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); - sa_config.set("superadmins", plugin.superadmins); - sa_config.set("superadmin_ips", plugin.superadmin_ips); - sa_config.save(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); + config.save(new File(plugin.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); } catch (IOException ex) { - Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex); + log.log(Level.SEVERE, null, ex); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index f1b89c78..00d7c9fd 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -290,16 +290,18 @@ public class TFM_Util { tfm.superadmin_ips.add(user_ip); - try - { - FileConfiguration sa_config = YamlConfiguration.loadConfiguration(new File(tfm.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); - sa_config.set("superadmin_ips", tfm.superadmin_ips); - sa_config.save(new File(tfm.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); - } - catch (IOException ex) - { - Logger.getLogger(TFM_Util.class.getName()).log(Level.SEVERE, null, ex); - } + log.severe("TODO: Implement add to superadmin list."); + +// try +// { +// FileConfiguration sa_config = YamlConfiguration.loadConfiguration(new File(tfm.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); +// sa_config.set("superadmin_ips", tfm.superadmin_ips); +// sa_config.save(new File(tfm.getDataFolder(), TotalFreedomMod.SUPERADMIN_FILE)); +// } +// catch (IOException ex) +// { +// Logger.getLogger(TFM_Util.class.getName()).log(Level.SEVERE, null, ex); +// } } return match_found; diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 567391e2..3f5c9e6d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -46,13 +46,13 @@ public class TotalFreedomMod extends JavaPlugin { loadMainConfig(); loadSuperadminConfig(); - + registerEventHandlers(); - + Bukkit.getServer().getScheduler().scheduleAsyncRepeatingTask(this, new TFM_Heartbeat(this), HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L); log.log(Level.INFO, "[" + getDescription().getName() + "] - Enabled! - Version: " + getDescription().getVersion() + " by Madgeek1450"); - + TFM_Util.deleteFolder(new File("./_deleteme")); } @@ -110,7 +110,7 @@ public class TotalFreedomMod extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Command Error: " + ex.getMessage()); } - + dispatcher = null; } catch (Throwable ex) @@ -168,38 +168,62 @@ public class TotalFreedomMod extends JavaPlugin public List superadmins = new ArrayList(); public List superadmin_ips = new ArrayList(); + +// public void loadSuperadminConfig() +// { +// TFM_Util.createDefaultConfiguration(SUPERADMIN_FILE, this, getFile()); +// FileConfiguration config = YamlConfiguration.loadConfiguration(new File(getDataFolder(), SUPERADMIN_FILE)); +// +// superadmins = new ArrayList(); +// List superadmins_temp = config.getStringList("superadmins"); +// if (superadmins_temp == null || superadmins_temp.isEmpty()) +// { +// superadmins.add("Madgeek1450"); +// superadmins.add("markbyron"); +// } +// else +// { +// for (String admin_name : superadmins_temp) +// { +// superadmins.add(admin_name.toLowerCase().trim()); +// } +// } +// +// superadmin_ips = new ArrayList(); +// List superadmin_ips_temp = config.getStringList("superadmin_ips"); +// if (superadmin_ips_temp == null || superadmin_ips_temp.isEmpty()) +// { +// superadmin_ips.add("127.0.0.1"); +// } +// else +// { +// for (String admin_ip : superadmin_ips_temp) +// { +// superadmin_ips.add(admin_ip.toLowerCase().trim()); +// } +// } +// } public void loadSuperadminConfig() { TFM_Util.createDefaultConfiguration(SUPERADMIN_FILE, this, getFile()); - FileConfiguration sa_config = YamlConfiguration.loadConfiguration(new File(getDataFolder(), SUPERADMIN_FILE)); + FileConfiguration config = YamlConfiguration.loadConfiguration(new File(getDataFolder(), SUPERADMIN_FILE)); superadmins = new ArrayList(); - List superadmins_temp = (List) sa_config.getList("superadmins", null); - if (superadmins_temp == null || superadmins_temp.isEmpty()) - { - superadmins.add("Madgeek1450"); - superadmins.add("markbyron"); - } - else - { - for (String admin_name : superadmins_temp) - { - superadmins.add(admin_name.toLowerCase().trim()); - } - } - superadmin_ips = new ArrayList(); - List superadmin_ips_temp = (List) sa_config.getList("superadmin_ips", null); - if (superadmin_ips_temp == null || superadmin_ips_temp.isEmpty()) + + for (String user : config.getKeys(false)) { - superadmin_ips.add("127.0.0.1"); - } - else - { - for (String admin_ip : superadmin_ips_temp) + superadmins.add(user.toLowerCase().trim()); + + List user_ips = config.getStringList(user); + for (String ip : user_ips) { - superadmin_ips.add(admin_ip.toLowerCase().trim()); + ip = ip.toLowerCase().trim(); + if (!superadmin_ips.contains(ip)) + { + superadmin_ips.add(ip); + } } } } @@ -208,11 +232,11 @@ public class TotalFreedomMod extends JavaPlugin private final TFM_BlockListener blockListener = new TFM_BlockListener(this); private final TFM_PlayerListener playerListener = new TFM_PlayerListener(this); private final TFM_WeatherListener weatherListener = new TFM_WeatherListener(this); - + private void registerEventHandlers() { PluginManager pm = this.getServer().getPluginManager(); - + pm.registerEvent(Event.Type.ENTITY_EXPLODE, entityListener, Event.Priority.High, this); pm.registerEvent(Event.Type.ENTITY_COMBUST, entityListener, Event.Priority.High, this); pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Event.Priority.High, this); @@ -231,7 +255,7 @@ public class TotalFreedomMod extends JavaPlugin pm.registerEvent(Event.Type.PLAYER_KICK, playerListener, Event.Priority.Monitor, this); pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Event.Priority.Monitor, this); pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Monitor, this); - + pm.registerEvent(Event.Type.WEATHER_CHANGE, weatherListener, Event.Priority.High, this); pm.registerEvent(Event.Type.THUNDER_CHANGE, weatherListener, Event.Priority.High, this); } diff --git a/src/superadmin.yml b/src/superadmin.yml index b5eb3a3c..07e86535 100644 --- a/src/superadmin.yml +++ b/src/superadmin.yml @@ -1,5 +1,6 @@ -superadmins: - - Madgeek1450 - - markbyron -superadmin_ips: +madgeek1450: - 127.0.0.1 + - 8.8.8.8 +markbyron: + - 74.125.224.72 + - 8.8.4.4