Archived
0

Added static wrappers for datamanager and socialspy functions

This commit is contained in:
Pepich
2017-05-11 20:02:37 +02:00
parent dfdabe2307
commit fc485b0fe0
4 changed files with 226 additions and 93 deletions

View File

@@ -29,7 +29,7 @@ import com.redstoner.modules.socialspy.Socialspy;
* *
* @author Pepich */ * @author Pepich */
@AutoRegisterListener @AutoRegisterListener
@Version(major = 2, minor = 1, revision = 1, compatible = 2) @Version(major = 2, minor = 1, revision = 2, compatible = 2)
public class Chatgroups implements Module, Listener public class Chatgroups implements Module, Listener
{ {
private static final char defaultKey = ':'; private static final char defaultKey = ':';
@@ -367,8 +367,7 @@ public class Chatgroups implements Module, Listener
}, '&'); }, '&');
if (ModuleLoader.getModule("Socialspy") != null) if (ModuleLoader.getModule("Socialspy") != null)
{ {
Socialspy.getSocialspy().spyBroadcast(sender, "§e" + group + " §a(cg)", message, "/cg", Socialspy.spyBroadcast(sender, "§e" + group + " §a(cg)", message, "/cg", new BroadcastFilter()
new BroadcastFilter()
{ {
@Override @Override
public boolean sendTo(CommandSender recipient) public boolean sendTo(CommandSender recipient)
@@ -404,7 +403,7 @@ public class Chatgroups implements Module, Listener
}); });
if (ModuleLoader.getModule("Socialspy") != null) if (ModuleLoader.getModule("Socialspy") != null)
{ {
Socialspy.getSocialspy().spyBroadcast(Bukkit.getConsoleSender(), "§e" + group + " §a(cg)", message, "/cg", Socialspy.spyBroadcast(Bukkit.getConsoleSender(), "§e" + group + " §a(cg)", message, "/cg",
new BroadcastFilter() new BroadcastFilter()
{ {
@Override @Override

View File

@@ -2,7 +2,8 @@ package com.redstoner.modules.datamanager;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.util.UUID; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -22,7 +23,7 @@ import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule; import com.redstoner.modules.CoreModule;
@AutoRegisterListener @AutoRegisterListener
@Version(major = 3, minor = 0, revision = 7, compatible = 3) @Version(major = 3, minor = 1, revision = 0, compatible = 3)
public final class DataManager implements CoreModule, Listener public final class DataManager implements CoreModule, Listener
{ {
private final File dataFolder = new File(Main.plugin.getDataFolder(), "data"); private final File dataFolder = new File(Main.plugin.getDataFolder(), "data");
@@ -35,7 +36,7 @@ public final class DataManager implements CoreModule, Listener
dataFolder.mkdirs(); dataFolder.mkdirs();
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
{ {
loadData(p.getUniqueId()); loadData_(p.getUniqueId().toString());
} }
} }
@@ -51,7 +52,7 @@ public final class DataManager implements CoreModule, Listener
@EventHandler @EventHandler
public void onPlayerJoin(PlayerJoinEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
loadData(event.getPlayer().getUniqueId()); loadData_(event.getPlayer().getUniqueId().toString());
} }
@EventHandler @EventHandler
@@ -60,33 +61,71 @@ public final class DataManager implements CoreModule, Listener
saveAndUnload(event.getPlayer()); saveAndUnload(event.getPlayer());
} }
@SuppressWarnings("unchecked") public static void loadData(String id)
public void loadData(UUID id)
{ {
JSONObject playerData = JsonManager.getObject(new File(dataFolder, id.toString() + ".json")); try
{
Method m = DataManager.class.getDeclaredMethod("loadData_", String.class);
m.invoke(ModuleLoader.getModule("DataManager"), id);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
@SuppressWarnings("unchecked")
public void loadData_(String id)
{
JSONObject playerData = JsonManager.getObject(new File(dataFolder, id + ".json"));
if (playerData == null) if (playerData == null)
playerData = new JSONObject(); playerData = new JSONObject();
data.put(id.toString(), playerData); data.put(id.toString(), playerData);
} }
public Object getOrDefault(CommandSender sender, String key, Object fallback) public static Object getOrDefault(CommandSender sender, String key, Object fallback)
{ {
Object o = getData(sender, Utils.getCaller("DataManager"), key); return getOrDefault(sender, Utils.getCaller("DataManager"), key, fallback);
}
public static Object getOrDefault(CommandSender sender, String module, String key, Object fallback)
{
try
{
Method m = DataManager.class.getDeclaredMethod("getOrDefault_", CommandSender.class, String.class,
String.class, Object.class);
return m.invoke(ModuleLoader.getModule("DataManager"), sender, module, key, fallback);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
return fallback;
}
public Object getOrDefault_(CommandSender sender, String module, String key, Object fallback)
{
Object o = getData_(sender, module, key);
return o == null ? fallback : o; return o == null ? fallback : o;
} }
public Object getOrDefault(CommandSender sender, String module, String key, Object fallback) public static Object getData(CommandSender sender, String key)
{
Object o = getData(sender, module, key);
return o == null ? fallback : o;
}
public Object getData(CommandSender sender, String key)
{ {
return getData(sender, Utils.getCaller("DataManager"), key); return getData(sender, Utils.getCaller("DataManager"), key);
} }
public Object getData(CommandSender sender, String module, String key) public static Object getData(CommandSender sender, String module, String key)
{
try
{
Method m = DataManager.class.getDeclaredMethod("getData_", CommandSender.class, String.class, String.class);
return m.invoke(ModuleLoader.getModule("DataManager"), sender, module, key);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
return null;
}
public Object getData_(CommandSender sender, String module, String key)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -112,13 +151,26 @@ public final class DataManager implements CoreModule, Listener
return ((JSONObject) playerData.get(module)).get(key); return ((JSONObject) playerData.get(module)).get(key);
} }
public void setData(CommandSender sender, String key, Object value) public static void setData(CommandSender sender, String key, Object value)
{ {
setData(sender, Utils.getCaller("DataManager"), key, value); setData(sender, Utils.getCaller("DataManager"), key, value);
} }
public static void setData(CommandSender sender, String module, String key, Object value)
{
try
{
Method m = DataManager.class.getDeclaredMethod("setData_", CommandSender.class, String.class, String.class,
Object.class);
m.invoke(ModuleLoader.getModule("DataManager"), sender, module, key, value);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public 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)
@@ -134,7 +186,7 @@ public final class DataManager implements CoreModule, Listener
((JSONObject) data.get(id)).put(module, moduleData); ((JSONObject) data.get(id)).put(module, moduleData);
} }
moduleData.put(key, value); moduleData.put(key, value);
save(sender); save_(sender);
} }
else else
loadAndSet(id, module, key, value); loadAndSet(id, module, key, value);
@@ -157,12 +209,25 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(playerData, dataFile); JsonManager.save(playerData, dataFile);
} }
public void removeData(CommandSender sender, String key) public static void removeData(CommandSender sender, String key)
{ {
removeData(sender, Utils.getCaller("DataManager"), key); removeData(sender, Utils.getCaller("DataManager"), key);
} }
public void removeData(CommandSender sender, String module, String key) public static void removeData(CommandSender sender, String module, String key)
{
try
{
Method m = DataManager.class.getDeclaredMethod("removeData_", CommandSender.class, String.class,
String.class);
m.invoke(ModuleLoader.getModule("DataManager"), sender, module, key);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
public void removeData_(CommandSender sender, String module, String key)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
@@ -175,7 +240,7 @@ public final class DataManager implements CoreModule, Listener
if (moduleData == null) if (moduleData == null)
return; return;
moduleData.remove(key); moduleData.remove(key);
save(sender); save_(sender);
} }
else else
loadAndRemove(id, module, key); loadAndRemove(id, module, key);
@@ -194,12 +259,24 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(playerData, dataFile); JsonManager.save(playerData, dataFile);
} }
public void migrateAll(String oldName) public static void migrateAll(String oldName)
{ {
migrateAll(oldName, Utils.getCaller("DataManager")); migrateAll(oldName, Utils.getCaller("DataManager"));
} }
public void migrateAll(String oldName, String newName) public static void migrateAll(String oldName, String newName)
{
try
{
Method m = DataManager.class.getDeclaredMethod("migrateAll_", String.class, String.class);
m.invoke(ModuleLoader.getModule("DataManager"), oldName, newName);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
public void migrateAll_(String oldName, String newName)
{ {
for (String s : dataFolder.list(new FilenameFilter() for (String s : dataFolder.list(new FilenameFilter()
{ {
@@ -210,23 +287,35 @@ public final class DataManager implements CoreModule, Listener
} }
})) }))
{ {
migrate(s.replace(".json", ""), oldName, newName); migrate_(s.replace(".json", ""), oldName, newName);
} }
} }
public void migrate(String id, String oldName) public static void migrate(String id, String oldName)
{ {
migrate(id, oldName, Utils.getCaller("DataManager")); migrate(id, oldName, Utils.getCaller("DataManager"));
} }
public static void migrate(String id, String oldName, String newName)
{
try
{
Method m = DataManager.class.getDeclaredMethod("migrate_", String.class, String.class, String.class);
m.invoke(ModuleLoader.getModule("DataManager"), id, oldName, newName);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public 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))
{ {
data.put(newName, data.get(oldName)); data.put(newName, data.get(oldName));
data.remove(oldName); data.remove(oldName);
save(id); save_(id);
} }
else else
loadAndMigrate(id, oldName, newName); loadAndMigrate(id, oldName, newName);
@@ -242,17 +331,41 @@ public final class DataManager implements CoreModule, Listener
JsonManager.save(data, dataFile); JsonManager.save(data, dataFile);
} }
public void save(CommandSender sender) public static void save(CommandSender sender)
{
try
{
Method m = DataManager.class.getDeclaredMethod("save_", CommandSender.class);
m.invoke(ModuleLoader.getModule("DataManager"), sender);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
public void save_(CommandSender sender)
{ {
String id; String id;
if (sender instanceof Player) if (sender instanceof Player)
id = ((Player) sender).getUniqueId().toString(); id = ((Player) sender).getUniqueId().toString();
else else
id = "CONSOLE"; id = "CONSOLE";
save(id); save_(id);
} }
public void save(String id) public static void save(String id)
{
try
{
Method m = DataManager.class.getDeclaredMethod("save_", String.class);
m.invoke(ModuleLoader.getModule("DataManager"), id);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
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)
@@ -272,12 +385,7 @@ public final class DataManager implements CoreModule, Listener
private 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.Module; import com.redstoner.modules.Module;
import com.redstoner.modules.socialspy.Socialspy; import com.redstoner.modules.socialspy.Socialspy;
@Version(major = 3, minor = 3, revision = 0, compatible = 3) @Version(major = 3, minor = 3, revision = 1, compatible = 3)
public class Message implements Module public class Message implements Module
{ {
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<CommandSender, CommandSender>(); HashMap<CommandSender, CommandSender> replyTargets = new HashMap<CommandSender, CommandSender>();
@@ -45,7 +45,7 @@ public class Message implements Module
{ {
message = Utils.colorify(message, sender); message = Utils.colorify(message, sender);
if (ModuleLoader.getModule("Socialspy") != null) if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.getSocialspy().spyBroadcast(sender, p, message, "/m", new BroadcastFilter() Socialspy.spyBroadcast(sender, p, message, "/m", new BroadcastFilter()
{ {
@Override @Override
public boolean sendTo(CommandSender recipient) public boolean sendTo(CommandSender recipient)
@@ -74,7 +74,7 @@ public class Message implements Module
{ {
message = Utils.colorify(message, sender); message = Utils.colorify(message, sender);
if (ModuleLoader.getModule("Socialspy") != null) if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.getSocialspy().spyBroadcast(sender, target, message, "/m", new BroadcastFilter() Socialspy.spyBroadcast(sender, target, message, "/m", new BroadcastFilter()
{ {
@Override @Override
public boolean sendTo(CommandSender recipient) public boolean sendTo(CommandSender recipient)

View File

@@ -1,5 +1,7 @@
package com.redstoner.modules.socialspy; package com.redstoner.modules.socialspy;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -18,7 +20,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 = 1, revision = 1, compatible = 3) @Version(major = 3, minor = 1, revision = 3, compatible = 3)
public class Socialspy implements CoreModule public class Socialspy implements CoreModule
{ {
@Override @Override
@@ -37,7 +39,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.getDataManager().setData(sender, "prefix", prefix); DataManager.setData(sender, "prefix", prefix);
return true; return true;
} }
@@ -51,7 +53,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.getDataManager().setData(sender, "format", format); DataManager.setData(sender, "format", format);
return true; return true;
} }
@@ -59,7 +61,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.getDataManager().setData(sender, "stripcolor", true); DataManager.setData(sender, "stripcolor", true);
return true; return true;
} }
@@ -67,16 +69,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.getDataManager().setData(sender, "stripcolor", false); DataManager.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.getDataManager().getOrDefault(sender, "stripcolor", true); boolean b = (boolean) DataManager.getOrDefault(sender, "stripcolor", true);
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " stripping colors!"); Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " stripping colors!");
DataManager.getDataManager().setData(sender, "stripcolor", !b); DataManager.setData(sender, "stripcolor", !b);
return true; return true;
} }
@@ -84,7 +86,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.getDataManager().setData(sender, "enabled", true); DataManager.setData(sender, "enabled", true);
return true; return true;
} }
@@ -92,16 +94,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.getDataManager().setData(sender, "enabled", false); DataManager.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.getDataManager().getOrDefault(sender, "enabled", false); boolean b = (boolean) DataManager.getOrDefault(sender, "enabled", false);
Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " socialspy!"); Utils.sendMessage(sender, null, (b ? "Disabled" : "Enabled") + " socialspy!");
DataManager.getDataManager().setData(sender, "enabled", !b); DataManager.setData(sender, "enabled", !b);
return true; return true;
} }
@@ -125,8 +127,7 @@ 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.getDataManager().getOrDefault(sender, "commands", JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
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
@@ -151,10 +152,9 @@ 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.getDataManager().getOrDefault(sender, "commands", JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
getDefaultCommandList());
commands.add(command); commands.add(command);
DataManager.getDataManager().setData(sender, "commands", commands); DataManager.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;
} }
@@ -162,52 +162,83 @@ 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.getDataManager().getOrDefault(sender, "commands", JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
getDefaultCommandList());
commands.remove(command); commands.remove(command);
DataManager.getDataManager().setData(sender, "commands", commands); DataManager.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;
} }
public void spyBroadcast(CommandSender sender, CommandSender target, String message, String command, public static void spyBroadcast(CommandSender sender, CommandSender target, String message, String command,
BroadcastFilter filter)
{
try
{
Method m = Socialspy.class.getDeclaredMethod("spyBroadcast_", CommandSender.class, CommandSender.class,
String.class, String.class, BroadcastFilter.class);
m.invoke(ModuleLoader.getModule("Socialspy"), sender, target, message, command, filter);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
public void spyBroadcast_(CommandSender sender, CommandSender target, String message, String command,
BroadcastFilter filter) BroadcastFilter filter)
{ {
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
{ {
if ((boolean) DataManager.getDataManager().getOrDefault(p, "enabled", false)) if ((boolean) DataManager.getOrDefault(p, "enabled", false))
if (p.hasPermission("utils.socialspy")) if (p.hasPermission("utils.socialspy"))
{ {
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
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.getDataManager().setData(sender, "enabled", false); DataManager.setData(sender, "enabled", false);
} }
} }
public void spyBroadcast(CommandSender sender, String target, String message, String command, public static void spyBroadcast(CommandSender sender, String target, String message, String command,
BroadcastFilter filter)
{
try
{
Method m = Socialspy.class.getDeclaredMethod("spyBroadcast_", CommandSender.class, String.class,
String.class, String.class, BroadcastFilter.class);
m.invoke(ModuleLoader.getModule("Socialspy"), sender, target, message, command, filter);
}
catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException
| InvocationTargetException e)
{}
}
public void spyBroadcast_(CommandSender sender, String target, String message, String command,
BroadcastFilter filter) BroadcastFilter filter)
{ {
for (Player p : Bukkit.getOnlinePlayers()) for (Player p : Bukkit.getOnlinePlayers())
{ {
if ((boolean) DataManager.getDataManager().getOrDefault(p, "enabled", false)) if ((boolean) DataManager.getOrDefault(p, "enabled", false))
if (p.hasPermission("utils.socialspy")) if (p.hasPermission("utils.socialspy"))
{ {
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
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.getDataManager().setData(sender, "enabled", false); DataManager.setData(sender, "enabled", false);
} }
} }
private String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, String message, private String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, String message,
String command) String command)
{ {
if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false)) if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false))
message = ChatColor.stripColor(message); message = ChatColor.stripColor(message);
String format = (String) DataManager.getDataManager().getOrDefault(formatHolder, "format", getDefaultFormat()); String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat());
// Replace escaped % with placeholder // Replace escaped % with placeholder
format = format.replace("%%", "§§"); format = format.replace("%%", "§§");
// Sender name // Sender name
@@ -217,7 +248,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.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix()); String prefix = (String) DataManager.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);
@@ -232,9 +263,9 @@ public class Socialspy implements CoreModule
private String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message, private String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message,
String command) String command)
{ {
if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false)) if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false))
message = ChatColor.stripColor(message); message = ChatColor.stripColor(message);
String format = (String) DataManager.getDataManager().getOrDefault(formatHolder, "format", getDefaultFormat()); String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat());
// Replace escaped % with placeholder // Replace escaped % with placeholder
format = format.replace("%%", "§§"); format = format.replace("%%", "§§");
// Sender name // Sender name
@@ -244,7 +275,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.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix()); String prefix = (String) DataManager.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);
@@ -269,12 +300,7 @@ public class Socialspy implements CoreModule
@Command(hook = "migrate") @Command(hook = "migrate")
public boolean migrate(CommandSender sender) public boolean migrate(CommandSender sender)
{ {
DataManager.getDataManager().migrateAll("Message"); DataManager.migrateAll("Message");
return true; return true;
} }
public static Socialspy getSocialspy()
{
return (Socialspy) ModuleLoader.getModule("Socialspy");
}
} }