Revamp superadmin list.

TODO: Auto-add.
This commit is contained in:
Steven Lawson 2011-10-30 15:27:06 -04:00
parent 342ece9934
commit 5f9626921d
4 changed files with 144 additions and 54 deletions

View File

@ -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<String> user_ips = new ArrayList<String>();
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);
}
}

View File

@ -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;

View File

@ -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<String> superadmins = new ArrayList<String>();
public List<String> superadmin_ips = new ArrayList<String>();
// public void loadSuperadminConfig()
// {
// TFM_Util.createDefaultConfiguration(SUPERADMIN_FILE, this, getFile());
// FileConfiguration config = YamlConfiguration.loadConfiguration(new File(getDataFolder(), SUPERADMIN_FILE));
//
// superadmins = new ArrayList<String>();
// List<String> 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<String>();
// List<String> 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<String>();
List<String> superadmins_temp = (List<String>) 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<String>();
List<String> superadmin_ips_temp = (List<String>) 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<String> 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);
}

View File

@ -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