Archived
0

Removed static accesses as they break updating on runtime

This commit is contained in:
Pepich
2017-05-11 18:59:07 +02:00
parent fb171ff7c1
commit 83ab05780b
2 changed files with 60 additions and 51 deletions

View File

@@ -15,17 +15,18 @@ import org.json.simple.JSONObject;
import com.redstoner.annotations.AutoRegisterListener; import com.redstoner.annotations.AutoRegisterListener;
import com.redstoner.annotations.Version; import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.JsonManager; import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main; import com.redstoner.misc.Main;
import com.redstoner.misc.Utils; import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule; import com.redstoner.modules.CoreModule;
@AutoRegisterListener @AutoRegisterListener
@Version(major = 3, minor = 0, revision = 6, compatible = 3) @Version(major = 3, minor = 0, revision = 7, compatible = 3)
public final class DataManager implements CoreModule, Listener public final class DataManager implements CoreModule, Listener
{ {
private static final File dataFolder = new File(Main.plugin.getDataFolder(), "data"); private final File dataFolder = new File(Main.plugin.getDataFolder(), "data");
private static JSONObject data = new JSONObject(); private JSONObject data = new JSONObject();
@Override @Override
public void postEnable() public void postEnable()
@@ -60,7 +61,7 @@ public final class DataManager implements CoreModule, Listener
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void loadData(UUID id) public void loadData(UUID id)
{ {
JSONObject playerData = JsonManager.getObject(new File(dataFolder, id.toString() + ".json")); JSONObject playerData = JsonManager.getObject(new File(dataFolder, id.toString() + ".json"));
if (playerData == null) if (playerData == null)
@@ -68,24 +69,24 @@ public final class DataManager implements CoreModule, Listener
data.put(id.toString(), playerData); data.put(id.toString(), playerData);
} }
public static Object getOrDefault(CommandSender sender, String key, Object fallback) public Object getOrDefault(CommandSender sender, String key, Object fallback)
{ {
Object o = getData(sender, Utils.getCaller("DataManager"), key); Object o = getData(sender, Utils.getCaller("DataManager"), key);
return o == null ? fallback : o; return o == null ? fallback : o;
} }
public static Object getOrDefault(CommandSender sender, String module, String key, Object fallback) public Object getOrDefault(CommandSender sender, String module, String key, Object fallback)
{ {
Object o = getData(sender, module, key); Object o = getData(sender, module, key);
return o == null ? fallback : o; return o == null ? fallback : o;
} }
public static Object getData(CommandSender sender, String key) public Object getData(CommandSender sender, String key)
{ {
return getData(sender, Utils.getCaller("DataManager"), key); return getData(sender, Utils.getCaller("DataManager"), key);
} }
public static Object getData(CommandSender sender, String module, String key) public Object getData(CommandSender sender, String module, String key)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -103,7 +104,7 @@ public final class DataManager implements CoreModule, Listener
return loadAndGet(id, module, key); return loadAndGet(id, module, key);
} }
private static Object loadAndGet(String id, String module, String key) private Object loadAndGet(String id, String module, String key)
{ {
JSONObject playerData = JsonManager.getObject(new File(dataFolder, id + ".json")); JSONObject playerData = JsonManager.getObject(new File(dataFolder, id + ".json"));
if (playerData == null) if (playerData == null)
@@ -111,13 +112,13 @@ public final class DataManager implements CoreModule, Listener
return ((JSONObject) playerData.get(module)).get(key); return ((JSONObject) playerData.get(module)).get(key);
} }
public static void setData(CommandSender sender, String key, Object value) public void setData(CommandSender sender, String key, Object value)
{ {
setData(sender, Utils.getCaller("DataManager"), key, value); setData(sender, Utils.getCaller("DataManager"), key, value);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void setData(CommandSender sender, String module, String key, Object value) public void setData(CommandSender sender, String module, String key, Object value)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -140,7 +141,7 @@ public final class DataManager implements CoreModule, Listener
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static void loadAndSet(String id, String module, String key, Object value) private void loadAndSet(String id, String module, String key, Object value)
{ {
File dataFile = new File(dataFolder, id + ".json"); File dataFile = new File(dataFolder, id + ".json");
JSONObject playerData = JsonManager.getObject(dataFile); JSONObject playerData = JsonManager.getObject(dataFile);
@@ -156,12 +157,12 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(playerData, dataFile); JsonManager.save(playerData, dataFile);
} }
public static void removeData(CommandSender sender, String key) public void removeData(CommandSender sender, String key)
{ {
removeData(sender, Utils.getCaller("DataManager"), key); removeData(sender, Utils.getCaller("DataManager"), key);
} }
public static void removeData(CommandSender sender, String module, String key) public void removeData(CommandSender sender, String module, String key)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -180,7 +181,7 @@ public final class DataManager implements CoreModule, Listener
loadAndRemove(id, module, key); loadAndRemove(id, module, key);
} }
private static void loadAndRemove(String id, String module, String key) private void loadAndRemove(String id, String module, String key)
{ {
File dataFile = new File(dataFolder, id + ".json"); File dataFile = new File(dataFolder, id + ".json");
JSONObject playerData = JsonManager.getObject(dataFile); JSONObject playerData = JsonManager.getObject(dataFile);
@@ -193,12 +194,12 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(playerData, dataFile); JsonManager.save(playerData, dataFile);
} }
public static void migrateAll(String oldName) public void migrateAll(String oldName)
{ {
migrateAll(oldName, Utils.getCaller("DataManager")); migrateAll(oldName, Utils.getCaller("DataManager"));
} }
public static void migrateAll(String oldName, String newName) public void migrateAll(String oldName, String newName)
{ {
for (String s : dataFolder.list(new FilenameFilter() for (String s : dataFolder.list(new FilenameFilter()
{ {
@@ -213,13 +214,13 @@ public final class DataManager implements CoreModule, Listener
} }
} }
public static void migrate(String id, String oldName) public void migrate(String id, String oldName)
{ {
migrate(id, oldName, Utils.getCaller("DataManager")); migrate(id, oldName, Utils.getCaller("DataManager"));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static void migrate(String id, String oldName, String newName) public void migrate(String id, String oldName, String newName)
{ {
if (data.containsKey(id)) if (data.containsKey(id))
{ {
@@ -232,7 +233,7 @@ public final class DataManager implements CoreModule, Listener
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static void loadAndMigrate(String id, String oldName, String newName) private void loadAndMigrate(String id, String oldName, String newName)
{ {
File dataFile = new File(dataFolder, id + ".json"); File dataFile = new File(dataFolder, id + ".json");
JSONObject data = JsonManager.getObject(dataFile); JSONObject data = JsonManager.getObject(dataFile);
@@ -241,7 +242,7 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(data, dataFile); JsonManager.save(data, dataFile);
} }
public static void save(CommandSender sender) public void save(CommandSender sender)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -251,7 +252,7 @@ public final class DataManager implements CoreModule, Listener
save(id); save(id);
} }
public static void save(String id) public void save(String id)
{ {
Object raw = data.get(id); Object raw = data.get(id);
if (raw == null || ((JSONObject) raw).size() == 0) if (raw == null || ((JSONObject) raw).size() == 0)
@@ -259,7 +260,7 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save((JSONObject) raw, new File(dataFolder, id + ".json")); JsonManager.save((JSONObject) raw, new File(dataFolder, id + ".json"));
} }
private static void saveAndUnload(CommandSender sender) private void saveAndUnload(CommandSender sender)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -269,9 +270,14 @@ public final class DataManager implements CoreModule, Listener
saveAndUnload(id); saveAndUnload(id);
} }
private static void saveAndUnload(String id) private void saveAndUnload(String id)
{ {
save(id); save(id);
data.remove(id); data.remove(id);
} }
public static DataManager getDataManager()
{
return (DataManager) ModuleLoader.getModule("DataManager");
}
} }

View File

@@ -17,7 +17,7 @@ import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule; import com.redstoner.modules.CoreModule;
import com.redstoner.modules.datamanager.DataManager; import com.redstoner.modules.datamanager.DataManager;
@Version(major = 3, minor = 0, revision = 3, compatible = 3) @Version(major = 3, minor = 1, revision = 0, compatible = 3)
public class Socialspy implements CoreModule public class Socialspy implements CoreModule
{ {
@Override @Override
@@ -36,7 +36,7 @@ public class Socialspy implements CoreModule
public boolean prefix(CommandSender sender, String prefix) public boolean prefix(CommandSender sender, String prefix)
{ {
Utils.sendMessage(sender, null, "Set your prefix to: " + prefix); Utils.sendMessage(sender, null, "Set your prefix to: " + prefix);
DataManager.setData(sender, "prefix", prefix); DataManager.getDataManager().setData(sender, "prefix", prefix);
return true; return true;
} }
@@ -50,7 +50,7 @@ public class Socialspy implements CoreModule
public boolean configFormat(CommandSender sender, String format) public boolean configFormat(CommandSender sender, String format)
{ {
Utils.sendMessage(sender, null, "Set your format to: " + format); Utils.sendMessage(sender, null, "Set your format to: " + format);
DataManager.setData(sender, "format", format); DataManager.getDataManager().setData(sender, "format", format);
return true; return true;
} }
@@ -58,7 +58,7 @@ public class Socialspy implements CoreModule
public boolean stripcolorOn(CommandSender sender) public boolean stripcolorOn(CommandSender sender)
{ {
Utils.sendMessage(sender, null, "Enabled stripping colors!"); Utils.sendMessage(sender, null, "Enabled stripping colors!");
DataManager.setData(sender, "stripcolor", true); DataManager.getDataManager().setData(sender, "stripcolor", true);
return true; return true;
} }
@@ -66,16 +66,16 @@ public class Socialspy implements CoreModule
public boolean stripcolorOff(CommandSender sender) public boolean stripcolorOff(CommandSender sender)
{ {
Utils.sendMessage(sender, null, "Disabled stripping colors!"); Utils.sendMessage(sender, null, "Disabled stripping colors!");
DataManager.setData(sender, "stripcolor", false); DataManager.getDataManager().setData(sender, "stripcolor", false);
return true; return true;
} }
@Command(hook = "stripcolor") @Command(hook = "stripcolor")
public boolean stripcolor(CommandSender sender) public boolean stripcolor(CommandSender sender)
{ {
boolean b = (boolean) DataManager.getOrDefault(sender, "stripcolor", true); boolean b = (boolean) DataManager.getDataManager().getOrDefault(sender, "stripcolor", true);
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " stripping colors!"); Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " stripping colors!");
DataManager.setData(sender, "stripcolor", !b); DataManager.getDataManager().setData(sender, "stripcolor", !b);
return true; return true;
} }
@@ -83,7 +83,7 @@ public class Socialspy implements CoreModule
public boolean spyOn(CommandSender sender) public boolean spyOn(CommandSender sender)
{ {
Utils.sendMessage(sender, null, "Enabled socialspy!"); Utils.sendMessage(sender, null, "Enabled socialspy!");
DataManager.setData(sender, "enabled", true); DataManager.getDataManager().setData(sender, "enabled", true);
return true; return true;
} }
@@ -91,16 +91,16 @@ public class Socialspy implements CoreModule
public boolean spyOff(CommandSender sender) public boolean spyOff(CommandSender sender)
{ {
Utils.sendMessage(sender, null, "Disabled socialspy!"); Utils.sendMessage(sender, null, "Disabled socialspy!");
DataManager.setData(sender, "enabled", false); DataManager.getDataManager().setData(sender, "enabled", false);
return true; return true;
} }
@Command(hook = "toggle") @Command(hook = "toggle")
public boolean spyToggle(CommandSender sender) public boolean spyToggle(CommandSender sender)
{ {
boolean b = (boolean) DataManager.getOrDefault(sender, "enabled", false); boolean b = (boolean) DataManager.getDataManager().getOrDefault(sender, "enabled", false);
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " socialspy!"); Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " socialspy!");
DataManager.setData(sender, "enabled", !b); DataManager.getDataManager().setData(sender, "enabled", !b);
return true; return true;
} }
@@ -124,7 +124,8 @@ public class Socialspy implements CoreModule
public boolean commands_list(CommandSender sender) public boolean commands_list(CommandSender sender)
{ {
Utils.sendModuleHeader(sender); Utils.sendModuleHeader(sender);
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList()); JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
if (commands == null || commands.size() == 0) if (commands == null || commands.size() == 0)
Utils.sendErrorMessage(sender, "", "You are not listening to any commands!"); Utils.sendErrorMessage(sender, "", "You are not listening to any commands!");
else else
@@ -149,9 +150,10 @@ public class Socialspy implements CoreModule
@Command(hook = "commands_add") @Command(hook = "commands_add")
public boolean commands_add(CommandSender sender, String command) public boolean commands_add(CommandSender sender, String command)
{ {
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList()); JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
commands.add(command); commands.add(command);
DataManager.setData(sender, "commands", commands); DataManager.getDataManager().setData(sender, "commands", commands);
Utils.sendMessage(sender, null, "You are now spying on &e" + command, '&'); Utils.sendMessage(sender, null, "You are now spying on &e" + command, '&');
return true; return true;
} }
@@ -159,9 +161,10 @@ public class Socialspy implements CoreModule
@Command(hook = "commands_del") @Command(hook = "commands_del")
public boolean commands_del(CommandSender sender, String command) public boolean commands_del(CommandSender sender, String command)
{ {
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList()); JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
commands.remove(command); commands.remove(command);
DataManager.setData(sender, "commands", commands); DataManager.getDataManager().setData(sender, "commands", commands);
Utils.sendMessage(sender, null, "You are no longer spying on &e" + command, '&'); Utils.sendMessage(sender, null, "You are no longer spying on &e" + command, '&');
return true; return true;
} }
@@ -171,14 +174,14 @@ public class Socialspy implements CoreModule
{ {
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
{ {
if ((boolean) DataManager.getOrDefault(p, "enabled", false)) if ((boolean) DataManager.getDataManager().getOrDefault(p, "enabled", false))
if (p.hasPermission("utils.socialspy")) if (p.hasPermission("utils.socialspy"))
{ {
if (filter == null || filter.sendTo(p)) if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command)); Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
} }
else else
DataManager.setData(sender, "enabled", false); DataManager.getDataManager().setData(sender, "enabled", false);
} }
} }
@@ -187,23 +190,23 @@ public class Socialspy implements CoreModule
{ {
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
{ {
if ((boolean) DataManager.getOrDefault(p, "enabled", false)) if ((boolean) DataManager.getDataManager().getOrDefault(p, "enabled", false))
if (p.hasPermission("utils.socialspy")) if (p.hasPermission("utils.socialspy"))
{ {
if (filter == null || filter.sendTo(p)) if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command)); Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
} }
else else
DataManager.setData(sender, "enabled", false); DataManager.getDataManager().setData(sender, "enabled", false);
} }
} }
private static String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, private static String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target,
String message, String command) String message, String command)
{ {
if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false)) if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false))
message = ChatColor.stripColor(message); message = ChatColor.stripColor(message);
String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); String format = (String) DataManager.getDataManager().getOrDefault(formatHolder, "format", getDefaultFormat());
// Replace escaped % with placeholder // Replace escaped % with placeholder
format = format.replace("%%", "§§"); format = format.replace("%%", "§§");
// Sender name // Sender name
@@ -213,7 +216,7 @@ public class Socialspy implements CoreModule
format = format.replace("%t", Utils.getName(target)); format = format.replace("%t", Utils.getName(target));
format = format.replace("%T", target.getName()); format = format.replace("%T", target.getName());
// Prefix // Prefix
String prefix = (String) DataManager.getOrDefault(formatHolder, "prefix", getDefaultPrefix()); String prefix = (String) DataManager.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix());
format = format.replace("%p", prefix); format = format.replace("%p", prefix);
// Apply colors to halfway replaced String // Apply colors to halfway replaced String
format = ChatColor.translateAlternateColorCodes('&', format); format = ChatColor.translateAlternateColorCodes('&', format);
@@ -228,9 +231,9 @@ public class Socialspy implements CoreModule
private static String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message, private static String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message,
String command) String command)
{ {
if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false)) if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false))
message = ChatColor.stripColor(message); message = ChatColor.stripColor(message);
String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); String format = (String) DataManager.getDataManager().getOrDefault(formatHolder, "format", getDefaultFormat());
// Replace escaped % with placeholder // Replace escaped % with placeholder
format = format.replace("%%", "§§"); format = format.replace("%%", "§§");
// Sender name // Sender name
@@ -240,7 +243,7 @@ public class Socialspy implements CoreModule
format = format.replace("%t", target); format = format.replace("%t", target);
format = format.replace("%T", target); format = format.replace("%T", target);
// Prefix // Prefix
String prefix = (String) DataManager.getOrDefault(formatHolder, "prefix", getDefaultPrefix()); String prefix = (String) DataManager.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix());
format = format.replace("%p", prefix); format = format.replace("%p", prefix);
// Apply colors to halfway replaced String // Apply colors to halfway replaced String
format = ChatColor.translateAlternateColorCodes('&', format); format = ChatColor.translateAlternateColorCodes('&', format);
@@ -265,7 +268,7 @@ public class Socialspy implements CoreModule
@Command(hook = "migrate") @Command(hook = "migrate")
public boolean migrate(CommandSender sender) public boolean migrate(CommandSender sender)
{ {
DataManager.migrateAll("Message"); DataManager.getDataManager().migrateAll("Message");
return true; return true;
} }
} }