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
@@ -1,5 +1,7 @@
package com.redstoner.modules.socialspy;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import org.bukkit.Bukkit;
@@ -18,7 +20,7 @@ import com.redstoner.misc.Utils;
import com.redstoner.modules.CoreModule;
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
{
@Override
@@ -37,7 +39,7 @@ public class Socialspy implements CoreModule
public boolean prefix(CommandSender sender, String prefix)
{
Utils.sendMessage(sender, null, "Set your prefix to: " + prefix);
DataManager.getDataManager().setData(sender, "prefix", prefix);
DataManager.setData(sender, "prefix", prefix);
return true;
}
@@ -51,7 +53,7 @@ public class Socialspy implements CoreModule
public boolean configFormat(CommandSender sender, String format)
{
Utils.sendMessage(sender, null, "Set your format to: " + format);
DataManager.getDataManager().setData(sender, "format", format);
DataManager.setData(sender, "format", format);
return true;
}
@@ -59,7 +61,7 @@ public class Socialspy implements CoreModule
public boolean stripcolorOn(CommandSender sender)
{
Utils.sendMessage(sender, null, "Enabled stripping colors!");
DataManager.getDataManager().setData(sender, "stripcolor", true);
DataManager.setData(sender, "stripcolor", true);
return true;
}
@@ -67,16 +69,16 @@ public class Socialspy implements CoreModule
public boolean stripcolorOff(CommandSender sender)
{
Utils.sendMessage(sender, null, "Disabled stripping colors!");
DataManager.getDataManager().setData(sender, "stripcolor", false);
DataManager.setData(sender, "stripcolor", false);
return true;
}
@Command(hook = "stripcolor")
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!");
DataManager.getDataManager().setData(sender, "stripcolor", !b);
DataManager.setData(sender, "stripcolor", !b);
return true;
}
@@ -84,7 +86,7 @@ public class Socialspy implements CoreModule
public boolean spyOn(CommandSender sender)
{
Utils.sendMessage(sender, null, "Enabled socialspy!");
DataManager.getDataManager().setData(sender, "enabled", true);
DataManager.setData(sender, "enabled", true);
return true;
}
@@ -92,16 +94,16 @@ public class Socialspy implements CoreModule
public boolean spyOff(CommandSender sender)
{
Utils.sendMessage(sender, null, "Disabled socialspy!");
DataManager.getDataManager().setData(sender, "enabled", false);
DataManager.setData(sender, "enabled", false);
return true;
}
@Command(hook = "toggle")
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!");
DataManager.getDataManager().setData(sender, "enabled", !b);
DataManager.setData(sender, "enabled", !b);
return true;
}
@@ -125,8 +127,7 @@ public class Socialspy implements CoreModule
public boolean commands_list(CommandSender sender)
{
Utils.sendModuleHeader(sender);
JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
if (commands == null || commands.size() == 0)
Utils.sendErrorMessage(sender, "", "You are not listening to any commands!");
else
@@ -151,10 +152,9 @@ public class Socialspy implements CoreModule
@Command(hook = "commands_add")
public boolean commands_add(CommandSender sender, String command)
{
JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
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, '&');
return true;
}
@@ -162,52 +162,83 @@ public class Socialspy implements CoreModule
@Command(hook = "commands_del")
public boolean commands_del(CommandSender sender, String command)
{
JSONArray commands = (JSONArray) DataManager.getDataManager().getOrDefault(sender, "commands",
getDefaultCommandList());
JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList());
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, '&');
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)
{
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 (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
}
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)
{
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 (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
if (((JSONArray) DataManager.getOrDefault(p, "commands", getDefaultCommandList()))
.contains(command))
if (filter == null || filter.sendTo(p))
Utils.sendMessage(p, "", formatMessage(p, sender, target, message, command));
}
else
DataManager.getDataManager().setData(sender, "enabled", false);
DataManager.setData(sender, "enabled", false);
}
}
private String formatMessage(CommandSender formatHolder, CommandSender sender, CommandSender target, String message,
String command)
{
if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false))
if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false))
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
format = format.replace("%%", "§§");
// Sender name
@@ -217,7 +248,7 @@ public class Socialspy implements CoreModule
format = format.replace("%t", Utils.getName(target));
format = format.replace("%T", target.getName());
// Prefix
String prefix = (String) DataManager.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix());
String prefix = (String) DataManager.getOrDefault(formatHolder, "prefix", getDefaultPrefix());
format = format.replace("%p", prefix);
// Apply colors to halfway replaced String
format = ChatColor.translateAlternateColorCodes('&', format);
@@ -232,9 +263,9 @@ public class Socialspy implements CoreModule
private String formatMessage(CommandSender formatHolder, CommandSender sender, String target, String message,
String command)
{
if ((boolean) DataManager.getDataManager().getOrDefault(formatHolder, "stripcolor", false))
if ((boolean) DataManager.getOrDefault(formatHolder, "stripcolor", false))
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
format = format.replace("%%", "§§");
// Sender name
@@ -244,7 +275,7 @@ public class Socialspy implements CoreModule
format = format.replace("%t", target);
format = format.replace("%T", target);
// Prefix
String prefix = (String) DataManager.getDataManager().getOrDefault(formatHolder, "prefix", getDefaultPrefix());
String prefix = (String) DataManager.getOrDefault(formatHolder, "prefix", getDefaultPrefix());
format = format.replace("%p", prefix);
// Apply colors to halfway replaced String
format = ChatColor.translateAlternateColorCodes('&', format);
@@ -269,12 +300,7 @@ public class Socialspy implements CoreModule
@Command(hook = "migrate")
public boolean migrate(CommandSender sender)
{
DataManager.getDataManager().migrateAll("Message");
DataManager.migrateAll("Message");
return true;
}
public static Socialspy getSocialspy()
{
return (Socialspy) ModuleLoader.getModule("Socialspy");
}
}