summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner
diff options
context:
space:
mode:
authorDavid Panić <david@panic.tk>2018-11-10 22:42:49 +0100
committerDavid Panić <david@panic.tk>2018-11-10 22:42:49 +0100
commit0b1c2c69fd0a991ef515ded68eb19163df002a70 (patch)
treec5c77ac8b5d3f5ff67dafd71c427375090c263c0 /src/main/java/com/redstoner
parentfe80557b8a7df5c1d03874931f76e6d88173d302 (diff)
Code cleanup batch 1
Diffstat (limited to 'src/main/java/com/redstoner')
-rw-r--r--src/main/java/com/redstoner/modules/abot/Abot.java36
-rw-r--r--src/main/java/com/redstoner/modules/adminchat/Adminchat.java199
-rw-r--r--src/main/java/com/redstoner/modules/afk/AFK.java235
-rw-r--r--src/main/java/com/redstoner/modules/buildchat/BuildChat.java200
-rw-r--r--src/main/java/com/redstoner/modules/buildteam/BuildTeam.java31
-rw-r--r--src/main/java/com/redstoner/modules/chat/Chat.java179
-rw-r--r--src/main/java/com/redstoner/modules/chatalias/Chatalias.java274
-rw-r--r--src/main/java/com/redstoner/modules/chatgroups/Chatgroups.java375
-rw-r--r--src/main/java/com/redstoner/modules/check/Check.java255
-rw-r--r--src/main/java/com/redstoner/modules/clear/Clear.java28
-rw-r--r--src/main/java/com/redstoner/modules/cycle/Cycle.java116
-rw-r--r--src/main/java/com/redstoner/modules/damnspam/DamnSpam.java298
-rw-r--r--src/main/java/com/redstoner/modules/damnspam/SpamInput.java14
13 files changed, 1040 insertions, 1200 deletions
diff --git a/src/main/java/com/redstoner/modules/abot/Abot.java b/src/main/java/com/redstoner/modules/abot/Abot.java
index 728d61c..1bab739 100644
--- a/src/main/java/com/redstoner/modules/abot/Abot.java
+++ b/src/main/java/com/redstoner/modules/abot/Abot.java
@@ -22,25 +22,21 @@ import com.redstoner.modules.Module;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Abot implements Module, Listener
-{
+public class Abot implements Module, Listener {
private File answerFile = new File(Main.plugin.getDataFolder(), "abot.json");
JSONArray answers;
-
+
@EventHandler
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
- for (Object rawObject : answers)
- {
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
+ for (Object rawObject : answers) {
JSONObject entry = (JSONObject) rawObject;
JSONArray regexes = (JSONArray) entry.get("regex");
- for (Object regex : regexes)
- {
- if (event.getMessage().toLowerCase().matches((String) regex))
- {
+
+ for (Object regex : regexes) {
+ if (event.getMessage().toLowerCase().matches((String) regex)) {
Object hideperm = entry.get("hide-perm");
- if (hideperm == null || !event.getPlayer().hasPermission((String) hideperm))
- {
+
+ if (hideperm == null || !event.getPlayer().hasPermission((String) hideperm)) {
event.setCancelled(true);
getLogger().message(event.getPlayer(), (String) entry.get("message"));
return;
@@ -49,19 +45,17 @@ public class Abot implements Module, Listener
}
}
}
-
+
@Command(hook = "abot_reload")
- public void loadAnswers(CommandSender sender)
- {
+ public void loadAnswers(CommandSender sender) {
answers = JsonManager.getArray(answerFile);
- if (answers == null)
- answers = new JSONArray();
+ if (answers == null) answers = new JSONArray();
+
getLogger().message(sender, "Loaded the abot.json file!");
}
-
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
loadAnswers(Bukkit.getConsoleSender());
return true;
}
diff --git a/src/main/java/com/redstoner/modules/adminchat/Adminchat.java b/src/main/java/com/redstoner/modules/adminchat/Adminchat.java
index d736f8f..7df0374 100644
--- a/src/main/java/com/redstoner/modules/adminchat/Adminchat.java
+++ b/src/main/java/com/redstoner/modules/adminchat/Adminchat.java
@@ -25,190 +25,185 @@ import com.redstoner.modules.Module;
import net.nemez.chatapi.ChatAPI;
-/** AdminChat module. Allows staff to chat to other staff using /ac \<message\> as well as a one char prefix or a toggle.
+/**
+ * AdminChat module. Allows staff to chat to other staff using /ac \<message\>
+ * as well as a one char prefix or a toggle.
*
- * @author Pepich */
+ * @author Pepich
+ */
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Adminchat implements Module, Listener
-{
+public class Adminchat implements Module, Listener {
private static final char defaultKey = ',';
private static final File keysLocation = new File(Main.plugin.getDataFolder(), "adminchat_keys.json");
private ArrayList<UUID> actoggled;
private static JSONObject keys;
-
+
+ private static final BroadcastFilter AC_PERM_BROADCAST_FILTER = new BroadcastFilter() {
+ @Override
+ public boolean sendTo(CommandSender recipient) {
+ return recipient.hasPermission("utils.ac");
+ }
+ };
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
keys = JsonManager.getObject(keysLocation);
- if (keys == null)
- {
+
+ if (keys == null) {
keys = new JSONObject();
saveKeys();
}
+
actoggled = new ArrayList<>();
return true;
}
-
+
@Command(hook = "ac_msg")
- public boolean acSay(CommandSender sender, String message)
- {
+ public boolean acSay(CommandSender sender, String message) {
String name;
- if (sender instanceof Player)
- name = ((Player) sender).getDisplayName();
- else
- name = sender.getName();
- Utils.broadcast("§8[§cAC§8] §9" + name + "§8: §b", ChatAPI.colorify(sender, message), new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- return recipient.hasPermission("utils.ac");
- }
- });
+
+ if (sender instanceof Player) name = ((Player) sender).getDisplayName();
+ else name = sender.getName();
+
+ Utils.broadcast("§8[§cAC§8] §9" + name + "§8: §b", ChatAPI.colorify(sender, message), AC_PERM_BROADCAST_FILTER);
return true;
}
-
+
@Command(hook = "acn_msg")
- public boolean acnSay(CommandSender sender, String name, String message)
- {
- Utils.broadcast("§8[§cAC§8] §9" + name + "§8: §b", ChatAPI.colorify(sender, message), new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- return recipient.hasPermission("utils.ac");
- }
- });
+ public boolean acnSay(CommandSender sender, String name, String message) {
+ Utils.broadcast("§8[§cAC§8] §9" + name + "§8: §b", ChatAPI.colorify(sender, message), AC_PERM_BROADCAST_FILTER);
return true;
}
-
- /** Let's a Player toggle their ac-toglge status to allow for automatically sending chat messages to adminchat.
+
+ /**
+ * Lets a Player toggle their AC toggle status to allow automatically sending
+ * chat messages to admin chat.
*
* @param sender the issuer of the command.
- * @param _void ignored.
- * @return true. */
+ * @param _void ignored.
+ * @return true.
+ */
@Command(hook = "act")
- public boolean acToggleCommand(CommandSender sender)
- {
- if (actoggled.contains(((Player) sender).getUniqueId()))
- {
+ public boolean acToggleCommand(CommandSender sender) {
+ if (actoggled.contains(((Player) sender).getUniqueId())) {
actoggled.remove(((Player) sender).getUniqueId());
getLogger().message(sender, "ACT now §cdisabled");
- }
- else
- {
+ } else {
actoggled.add(((Player) sender).getUniqueId());
getLogger().message(sender, "ACT now §aenabled");
}
+
return true;
}
-
- /** Let's a Player toggle their ac-toglge status to allow for automatically sending chat messages to adminchat.
+
+ /**
+ * Lets a Player toggle their AC toggle status to allow automatically sending
+ * chat messages to admin chat.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "act_on")
- public boolean acToggleOnCommand(CommandSender sender)
- {
- if (!actoggled.contains(((Player) sender).getUniqueId()))
- {
+ public boolean acToggleOnCommand(CommandSender sender) {
+ if (!actoggled.contains(((Player) sender).getUniqueId())) {
actoggled.add(((Player) sender).getUniqueId());
getLogger().message(sender, "ACT now §aenabled");
- }
- else
+ } else {
getLogger().message(sender, "ACT was already enabled");
+ }
+
return true;
}
-
- /** Let's a Player toggle their ac-toglge status to allow for automatically sending chat messages to adminchat.
+
+ /**
+ * Lets a Player toggle their AC toggle status to allow automatically sending chat messages to admin chat.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "act_off")
- public boolean acToggleOffCommand(CommandSender sender)
- {
- if (actoggled.contains(((Player) sender).getUniqueId()))
- {
+ public boolean acToggleOffCommand(CommandSender sender) {
+ if (actoggled.contains(((Player) sender).getUniqueId())) {
actoggled.remove(((Player) sender).getUniqueId());
getLogger().message(sender, "ACT now §cdisabled");
- }
- else
- {
+ } else {
getLogger().message(sender, "ACT was already disabled");
}
+
return true;
}
-
- /** Deals with chat events to allow for ackeys and actoggle.
+
+ /**
+ * Deals with chat events to allow for ackeys and actoggle.
*
- * @param event the chat event containing the player and the message. */
+ * @param event the chat event containing the player and the message.
+ */
@EventHandler
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
- if (!player.hasPermission("utils.ac"))
- return;
- if (event.getMessage().startsWith(getKey(player)))
- {
+
+ if (!player.hasPermission("utils.ac")) return;
+
+ if (event.getMessage().startsWith(getKey(player))) {
event.setCancelled(true);
acSay(event.getPlayer(), event.getMessage().replaceFirst(Pattern.quote(getKey(player)), ""));
- }
- else if (actoggled.contains(event.getPlayer().getUniqueId()))
- {
+ } else if (actoggled.contains(event.getPlayer().getUniqueId())) {
event.setCancelled(true);
acSay(event.getPlayer(), event.getMessage());
}
}
-
- /** Sets the ackey of a Player.
+
+ /**
+ * Sets the ackey of a Player.
*
* @param sender the issuer of the command.
- * @param key the key to be set. Set to NULL or "" to get your current key.
- * @return true. */
+ * @param key the key to be set. Set to NULL or "" to get your current key.
+ * @return true.
+ */
@SuppressWarnings("unchecked")
@Command(hook = "setackey")
- public boolean setAcKey(CommandSender sender, String key)
- {
- if (key.length() > 1)
- {
- getLogger().message(sender, true,
- "Could not set your key to §6" + key + " §7, it can be at most one char.");
+ public boolean setAcKey(CommandSender sender, String key) {
+ if (key.length() > 1) {
+ getLogger().message(sender, true, "Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
- if (key == null || key.length() == 0)
- {
+
+ if (key == null || key.length() == 0) {
getAcKey(sender);
return true;
}
+
getLogger().message(sender, "Set your key to §6" + key);
keys.put(((Player) sender).getUniqueId().toString(), key + "");
+
saveKeys();
return true;
}
-
- /** This method will find the AdminChat key of any player.
+
+ /**
+ * This method will find the AdminChat key of any player.
*
* @param player the player to get the key from.
- * @return the key. */
- public static String getKey(Player player)
- {
+ * @return the key.
+ */
+ public static String getKey(Player player) {
String key = (String) keys.get(player.getUniqueId().toString());
return (key == null ? "" + defaultKey : key);
}
-
- /** Prints a Players ackey to their chat.
+
+ /**
+ * Prints a Player's ackey to their chat.
*
- * @param sender the issuer of the command. */
- public void getAcKey(CommandSender sender)
- {
+ * @param sender the issuer of the command.
+ */
+ public void getAcKey(CommandSender sender) {
getLogger().message(sender, "Your current ackey is §6" + getKey((Player) sender));
}
-
+
/** Saves the keys. */
- private void saveKeys()
- {
+ private void saveKeys() {
JsonManager.save(keys, keysLocation);
}
}
diff --git a/src/main/java/com/redstoner/modules/afk/AFK.java b/src/main/java/com/redstoner/modules/afk/AFK.java
index 9f425ad..23b36ef 100644
--- a/src/main/java/com/redstoner/modules/afk/AFK.java
+++ b/src/main/java/com/redstoner/modules/afk/AFK.java
@@ -1,5 +1,7 @@
package com.redstoner.modules.afk;
+import java.lang.reflect.InvocationTargetException;
+
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -31,205 +33,168 @@ import com.redstoner.modules.datamanager.DataManager;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 0, revision = 6, compatible = 5)
-public class AFK implements Module, Listener
-{
+public class AFK implements Module, Listener {
private CustomListener listener;
- boolean move = true, look = false;
-
+
@Override
- public void firstLoad()
- {
- Module.super.firstLoad();
+ public void firstLoad() {
+ String[] choices = new String[] { "listen", "ignore" };
+
DataManager.setConfig("indicator", "&7[AFK]");
- String[] choices = new String[] {"listen", "ignore"};
+
DataManager.setConfig("move", "listen", choices);
DataManager.setConfig("look", "ignore", choices);
DataManager.setConfig("chat", "listen", choices);
DataManager.setConfig("interact", "listen", choices);
DataManager.setConfig("command", "ignore", choices);
}
-
+
@Override
- public void migrate(Version old)
- {
- Module.super.migrate(old);
- if ((old.major() == 4) && (old.minor() == 0) && (old.revision() == 3))
- {
- String[] choices = new String[] {"listen", "ignore"};
+ public void migrate(Version old) {
+ if (old.major() == 4 && old.minor() == 0 && old.revision() == 3) {
+ String[] choices = new String[] { "listen", "ignore" };
DataManager.setConfig("look", "ignore", choices);
}
}
-
+
@Override
- public void postEnable()
- {
- Module.super.postEnable();
+ public void postEnable() {
listener = new CustomListener();
update_afk_listeners(Bukkit.getConsoleSender());
}
-
+
@Override
- public void onDisable()
- {
- Module.super.onDisable();
+ public void onDisable() {
HandlerList.unregisterAll(listener);
}
-
+
@Command(hook = "afk")
- public boolean afk(CommandSender sender)
- {
+ public boolean afk(CommandSender sender) {
return afk(sender, false, "");
}
-
+
@Command(hook = "afks")
- public boolean afk(CommandSender sender, boolean silent)
- {
+ public boolean afk(CommandSender sender, boolean silent) {
return afk(sender, silent, "");
}
-
- @Command(hook = "afk2")
- public boolean afk(CommandSender sender, boolean silent, String reason)
- {
- if (isafk(sender))
- {
- unafk(sender, silent);
- }
- else
- {
+
+ @Command(hook = "afk2")
+ public boolean afk(CommandSender sender, boolean silent, String reason) {
+ if (AFKUtil.isafk(sender)) {
+ AFKUtil.unafk(sender, silent);
+ } else {
DataManager.setData(sender, "afk_time", System.currentTimeMillis());
DataManager.setData(sender, "afk_reason", reason);
DataManager.setState(sender, "afk_silent", silent);
DataManager.setState(sender, "afk", true);
- if (!silent)
- Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is now AFK", null);
+
+ if (!silent) Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is now AFK", null);
}
+
return true;
}
-
- public void unafk(CommandSender sender, boolean silent)
- {
- DataManager.setState(sender, "afk", false);
- if (!silent)
- Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null);
+
+ private void registerCustomListenerEvent(Class<? extends Event> event) {
+ Bukkit.getPluginManager().registerEvent(event, listener, EventPriority.MONITOR, listener, Main.plugin);
}
-
- public boolean isafk(CommandSender sender)
- {
- return DataManager.getState(sender, "afk");
+
+ /*
+ * This is perfectly valid code. Copied from the source code of the Event class:
+ * "All events require a static method named getHandlerList()"
+ */
+ private void unregisterCustomListenerEvent(Class<? extends Event> clazz) {
+ try {
+ HandlerList list = (HandlerList) clazz.getMethod("getHandlerList").invoke(null);
+ list.unregister(listener);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
+ e.printStackTrace();
+ }
}
-
- public boolean isVanished(Player player)
- {
- return DataManager.getState(player, "vanished");
+
+ private boolean getListenSetting(String name, String def) {
+ return DataManager.getConfigOrDefault(name, def).equals("listen");
}
-
+
+ private void updateCustomListener(boolean listen, Class<? extends Event> clazz) {
+ if (listen) registerCustomListenerEvent(PlayerInteractEvent.class);
+ else unregisterCustomListenerEvent(PlayerInteractEvent.class);
+ }
+
@Command(hook = "update_afk_listeners")
- public boolean update_afk_listeners(CommandSender sender)
- {
- Utils.broadcast(null, "Updating afk listeners...", new BroadcastFilter()
- {
+ public boolean update_afk_listeners(CommandSender sender) {
+ Utils.broadcast(null, "Updating afk listeners...", new BroadcastFilter() {
@Override
- public boolean sendTo(CommandSender recipient)
- {
+ public boolean sendTo(CommandSender recipient) {
return recipient.hasPermission("utils.afk.admin");
}
});
- move = DataManager.getConfigOrDefault("move", "listen").equals("listen");
- look = DataManager.getConfigOrDefault("look", "ignore").equals("listen");
- if (move || look)
- Bukkit.getPluginManager().registerEvent(PlayerMoveEvent.class, listener, EventPriority.MONITOR, listener,
- Main.plugin);
- else
- PlayerMoveEvent.getHandlerList().unregister(listener);
- if (DataManager.getConfigOrDefault("chat", "listen").equals("listen"))
- Bukkit.getPluginManager().registerEvent(PlayerInteractEvent.class, listener, EventPriority.MONITOR,
- listener, Main.plugin);
- else
- PlayerInteractEvent.getHandlerList().unregister(listener);
- if (DataManager.getConfigOrDefault("interact", "listen").equals("listen"))
- Bukkit.getPluginManager().registerEvent(AsyncPlayerChatEvent.class, listener, EventPriority.MONITOR,
- listener, Main.plugin);
- else
- AsyncPlayerChatEvent.getHandlerList().unregister(listener);
- if (DataManager.getConfigOrDefault("command", "ignore").equals("listen"))
- Bukkit.getPluginManager().registerEvent(PlayerCommandPreprocessEvent.class, listener, EventPriority.MONITOR,
- listener, Main.plugin);
- else
- PlayerCommandPreprocessEvent.getHandlerList().unregister(listener);
+
+ updateCustomListener(getListenSetting("move", "listen") || getListenSetting("look", "ignore"), PlayerMoveEvent.class);
+ updateCustomListener(getListenSetting("chat", "listen"), AsyncPlayerChatEvent.class);
+ updateCustomListener(getListenSetting("interact", "listen"), PlayerInteractEvent.class);
+ updateCustomListener(getListenSetting("command", "ignore"), PlayerCommandPreprocessEvent.class);
+
return true;
}
-
+
@EventHandler
- public void onLeave(PlayerQuitEvent event)
- {
+ public void onLeave(PlayerQuitEvent event) {
DataManager.setState(event.getPlayer(), "afk", false);
}
}
-class CustomListener implements Listener, EventExecutor
-{
+class CustomListener implements Listener, EventExecutor {
private boolean move = true, look = false;
-
+
@Override
- public void execute(Listener listener, Event event) throws EventException
- {
- if (event instanceof PlayerEvent)
- {
- if (event instanceof PlayerMoveEvent)
- {
+ public void execute(Listener listener, Event event) throws EventException {
+ if (event instanceof PlayerEvent) {
+ if (event instanceof PlayerMoveEvent) {
PlayerMoveEvent pevent = (PlayerMoveEvent) event;
+
double distance = pevent.getFrom().distance(pevent.getTo());
boolean moved = distance > 0;
- boolean looked = (pevent.getFrom().getPitch() != pevent.getTo().getPitch())
- || (pevent.getFrom().getYaw() != pevent.getTo().getYaw());
- if ((move && moved) || (look && looked))
- {
+ boolean looked = (pevent.getFrom().getPitch() != pevent.getTo().getPitch()) || (pevent.getFrom().getYaw() != pevent.getTo().getYaw());
+
+ if ((move && moved) || (look && looked)) {
Player player = pevent.getPlayer();
- if (isafk(player))
- if (!isVanished(player))
- unafk(player);
+
+ if (AFKUtil.isafk(player) && !AFKUtil.isVanished(player)) AFKUtil.unafk(player, AFKUtil.isSilent(player));
}
- }
- else
- {
+ } else {
PlayerEvent pevent = (PlayerEvent) event;
Player player = pevent.getPlayer();
- if (isafk(player))
- if (!isVanished(player))
- unafk(player);
+
+ if (AFKUtil.isafk(player) && !AFKUtil.isVanished(player)) AFKUtil.unafk(player, AFKUtil.isSilent(player));
}
}
}
-
- public void unafk(CommandSender sender)
- {
+
+ public void listenMove(boolean move) {
+ this.move = move;
+ }
+
+ public void listenLook(boolean look) {
+ this.look = look;
+ }
+}
+
+class AFKUtil {
+ protected static void unafk(CommandSender sender, boolean silent) {
DataManager.setState(sender, "afk", false);
- if ( !isSilent(sender) )
- Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null);
+
+ if (!silent) Utils.broadcast("§7 * ", Utils.getName(sender) + "§7 is no longer AFK", null);
}
-
- public boolean isafk(CommandSender sender)
- {
+
+ protected static boolean isafk(CommandSender sender) {
return DataManager.getState(sender, "afk");
}
-
- public boolean isSilent(CommandSender sender)
- {
- return DataManager.getState(sender, "afk_silent");
- }
-
- public boolean isVanished(Player player)
- {
+
+ protected static boolean isVanished(Player player) {
return DataManager.getState(player, "vanished");
}
-
- public void listenMove(boolean move)
- {
- this.move = move;
- }
-
- public void listenLook(boolean look)
- {
- this.look = look;
+
+ protected static boolean isSilent(CommandSender sender) {
+ return DataManager.getState(sender, "afk_silent");
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/com/redstoner/modules/buildchat/BuildChat.java b/src/main/java/com/redstoner/modules/buildchat/BuildChat.java
index 4ea0779..d19ef2d 100644
--- a/src/main/java/com/redstoner/modules/buildchat/BuildChat.java
+++ b/src/main/java/com/redstoner/modules/buildchat/BuildChat.java
@@ -23,185 +23,181 @@ import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
-/** BuildTeamChat module. Allows the build team to chat privately using /bc \<message\> as well as a one char prefix or a toggle.
+/**
+ * BuildTeamChat module. Allows the build team to chat privately using /bc
+ * \<message\> as well as a one char prefix or a toggle.
*
- * @author Pepich */
+ * @author Pepich
+ */
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class BuildChat implements Module, Listener
-{
+public class BuildChat implements Module, Listener {
private static final char defaultKey = ';';
private static final File keysLocation = new File(Main.plugin.getDataFolder(), "buildchat_keys.json");
private ArrayList<UUID> bctoggled;
private static JSONObject keys;
-
+
+ private static final BroadcastFilter BC_PERM_BROADCAST_FILTER = new BroadcastFilter() {
+ @Override
+ public boolean sendTo(CommandSender recipient) {
+ return recipient.hasPermission("utils.bc");
+ }
+ };
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
keys = JsonManager.getObject(keysLocation);
- if (keys == null)
- {
+
+ if (keys == null) {
keys = new JSONObject();
saveKeys();
}
+
bctoggled = new ArrayList<>();
return true;
}
-
+
@Command(hook = "bc_msg")
- public boolean bcSay(CommandSender sender, String message)
- {
+ public boolean bcSay(CommandSender sender, String message) {
String name;
- if (sender instanceof Player)
- name = ((Player) sender).getDisplayName();
- else
- name = sender.getName();
- Utils.broadcast("§8[§cBC§8] §9" + name + "§8: §b", message, new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- return recipient.hasPermission("utils.bc");
- }
- });
+
+ if (sender instanceof Player) name = ((Player) sender).getDisplayName();
+ else name = sender.getName();
+
+ Utils.broadcast("§8[§cBC§8] §9" + name + "§8: §b", message, BC_PERM_BROADCAST_FILTER);
+
return true;
}
-
+
@Command(hook = "bcn_msg")
- public boolean bcnSay(CommandSender sender, String name, String message)
- {
- Utils.broadcast("§8[§cBC§8] §9" + name + "§8: §b", message, new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- return recipient.hasPermission("utils.bc");
- }
- });
+ public boolean bcnSay(CommandSender sender, String name, String message) {
+ Utils.broadcast("§8[§cBC§8] §9" + name + "§8: §b", message, BC_PERM_BROADCAST_FILTER);
return true;
}
-
- /** Let's a Player toggle their auto-cg status to allow for automatically sending chat messages to their chatgroup.
+
+ /**
+ * Lets a Player toggle their auto-cg status to allow for automatically sending
+ * chat messages to their chatgroup.
*
* @param sender the issuer of the command.
- * @param _void ignored.
- * @return true. */
+ * @param _void ignored.
+ * @return true.
+ */
@Command(hook = "bct")
- public boolean bcToggleCommand(CommandSender sender)
- {
- if (bctoggled.contains(((Player) sender).getUniqueId()))
- {
+ public boolean bcToggleCommand(CommandSender sender) {
+ if (bctoggled.contains(((Player) sender).getUniqueId())) {
bctoggled.remove(((Player) sender).getUniqueId());
getLogger().message(sender, "BCT now §cdisabled");
- }
- else
- {
+ } else {
bctoggled.add(((Player) sender).getUniqueId());
getLogger().message(sender, "BCT now §aenabled");
}
+
return true;
}
-
- /** Let's a Player toggle their auto-cg status to allow for automatically sending chat messages to their chatgroup.
+
+ /**
+ * Lets a Player toggle their auto-cg status to allow for automatically sending
+ * chat messages to their chatgroup.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "bct_on")
- public boolean bcToggleOnCommand(CommandSender sender)
- {
- if (!bctoggled.contains(((Player) sender).getUniqueId()))
- {
+ public boolean bcToggleOnCommand(CommandSender sender) {
+ if (!bctoggled.contains(((Player) sender).getUniqueId())) {
bctoggled.add(((Player) sender).getUniqueId());
getLogger().message(sender, "BCT now §aenabled");
- }
- else
- getLogger().message(sender, "BCT was already enabled");
+ } else getLogger().message(sender, "BCT was already enabled");
+
return true;
}
-
- /** Let's a Player toggle their auto-cg status to allow for automatically sending chat messages to their chatgroup.
+
+ /**
+ * Let's a Player toggle their auto-cg status to allow for automatically sending
+ * chat messages to their chatgroup.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "bct_off")
- public boolean bcToggleOffCommand(CommandSender sender)
- {
- if (bctoggled.remove(((Player) sender).getUniqueId()))
- getLogger().message(sender, "BCT now §cdisabled");
- else
- getLogger().message(sender, "BCT was already disabled");
+ public boolean bcToggleOffCommand(CommandSender sender) {
+ if (bctoggled.remove(((Player) sender).getUniqueId())) getLogger().message(sender, "BCT now §cdisabled");
+ else getLogger().message(sender, "BCT was already disabled");
+
return true;
}
-
- /** Deals with chat events to allow for bckeys and bctoggle.
+
+ /**
+ * Deals with chat events to allow for bckeys and bctoggle.
*
- * @param event the chat event containing the player and the message. */
+ * @param event the chat event containing the player and the message.
+ */
@EventHandler
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
- if (!player.hasPermission("utils.bc"))
- return;
- if (event.getMessage().startsWith(getKey(player)))
- {
+
+ if (!player.hasPermission("utils.bc")) return;
+
+ if (event.getMessage().startsWith(getKey(player))) {
event.setCancelled(true);
bcSay(event.getPlayer(), event.getMessage().replaceFirst(Pattern.quote(getKey(player)), ""));
- }
- else if (bctoggled.contains(event.getPlayer().getUniqueId()))
- {
+ } else if (bctoggled.contains(event.getPlayer().getUniqueId())) {
event.setCancelled(true);
bcSay(event.getPlayer(), event.getMessage());
}
}
-
- /** Sets the bckey of a Player.
+
+ /**
+ * Sets the bckey of a Player.
*
* @param sender the issuer of the command.
- * @param key the key to be set. Set to NULL or "" to get your current key.
- * @return true. */
+ * @param key the key to be set. Set to NULL or "" to get your current key.
+ * @return true.
+ */
@SuppressWarnings("unchecked")
@Command(hook = "setbckey")
- public boolean setBcKey(CommandSender sender, String key)
- {
- if (key.length() > 1)
- {
- getLogger().message(sender, true,
- "Could not set your key to §6" + key + " §7, it can be at most one char.");
+ public boolean setBcKey(CommandSender sender, String key) {
+ if (key.length() > 1) {
+ getLogger().message(sender, true, "Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
- if (key == null || key.length() == 0)
- {
+
+ if (key == null || key.length() == 0) {
getBcKey(sender);
return true;
}
+
getLogger().message(sender, "Set your key to §6" + key);
keys.put(((Player) sender).getUniqueId().toString(), key + "");
saveKeys();
+
return true;
}
-
- /** This method will find the ChatgGroup key of any player.
+
+ /**
+ * This method will find the ChatgGroup key of any player.
*
* @param player the player to get the key from.
- * @return the key. */
- public static String getKey(Player player)
- {
+ * @return the key.
+ */
+ public static String getKey(Player player) {
String key = (String) keys.get(player.getUniqueId().toString());
return (key == null ? "" + defaultKey : key);
}
-
- /** Prints a Players bckey to their chat.
+
+ /**
+ * Prints a Players bckey to their chat.
*
- * @param sender the issuer of the command. */
- public void getBcKey(CommandSender sender)
- {
+ * @param sender the issuer of the command.
+ */
+ public void getBcKey(CommandSender sender) {
getLogger().message(sender, "Your current bckey is §6" + getKey((Player) sender));
}
-
+
/** Saves the keys. */
- private void saveKeys()
- {
+ private void saveKeys() {
JsonManager.save(keys, keysLocation);
}
}
diff --git a/src/main/java/com/redstoner/modules/buildteam/BuildTeam.java b/src/main/java/com/redstoner/modules/buildteam/BuildTeam.java
index 986b41c..f2c0f47 100644
--- a/src/main/java/com/redstoner/modules/buildteam/BuildTeam.java
+++ b/src/main/java/com/redstoner/modules/buildteam/BuildTeam.java
@@ -12,44 +12,41 @@ import com.redstoner.modules.Module;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
-public class BuildTeam implements Module
-{
+public class BuildTeam implements Module {
@Command(hook = "teleport")
- public boolean teleport(CommandSender sender, String target_name)
- {
+ public boolean teleport(CommandSender sender, String target_name) {
final Player player = (Player) sender;
final Player target = Bukkit.getPlayer(target_name);
- if (target == null || !player.hasPermission("utils.buildteam.teleport")
- || !target.getLocation().getWorld().getName().equals("BuildTeam"))
- {
+
+ if (target == null || !player.hasPermission("utils.buildteam.teleport") || !target.getLocation().getWorld().getName().equals("BuildTeam")) {
player.performCommand("essentials:tp " + target_name);
return true;
}
+
player.teleport(target);
getLogger().message(sender, "Teleported you to &e" + target.getDisplayName() + "&7!");
+
return true;
}
-
+
@Command(hook = "team_add")
- public boolean add(CommandSender sender, String target_name)
- {
- if (!target_name.matches("^\\w{2,16}$"))
- {
+ public boolean add(CommandSender sender, String target_name) {
+ if (!target_name.matches("^\\w{2,16}$")) {
getLogger().message(sender, true, "This doesn't look like a valid playername!");
return true;
}
+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target_name + " group add +buildteam");
return true;
}
-
+
@Command(hook = "team_remove")
- public boolean remove(CommandSender sender, String target_name)
- {
- if (!target_name.matches("^\\w{2,16}$"))
- {
+ public boolean remove(CommandSender sender, String target_name) {
+ if (!target_name.matches("^\\w{2,16}$")) {
getLogger().message(sender, true, "This doesn't look like a valid playername!");
return true;
}
+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target_name + " group remove +buildteam");
return true;
}
diff --git a/src/main/java/com/redstoner/modules/chat/Chat.java b/src/main/java/com/redstoner/modules/chat/Chat.java
index 4d32156..71ca6c1 100644
--- a/src/main/java/com/redstoner/modules/chat/Chat.java
+++ b/src/main/java/com/redstoner/modules/chat/Chat.java
@@ -33,13 +33,11 @@ import net.nemez.chatapi.ChatAPI;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 1, compatible = 4)
-public class Chat implements Module, Listener
-{
+public class Chat implements Module, Listener {
private final Map<String, String> defaults = new HashMap<>();
private Set<UUID> chatonly = new HashSet<>();
-
- public Chat()
- {
+
+ public Chat() {
defaults.put("chat", " %n§7%c →§r %m");
defaults.put("me", " §7- %n§7%c ⇦ %m");
defaults.put("action", " §7- %n§7%c ⇦ %m");
@@ -48,11 +46,9 @@ public class Chat implements Module, Listener
defaults.put("print", "%m");
defaults.put("%c", "(c)");
}
-
+
@Override
- public void firstLoad()
- {
- Module.super.firstLoad();
+ public void firstLoad() {
DataManager.setConfig("chat", defaults.get("chat"));
DataManager.setConfig("me", defaults.get("me"));
DataManager.setConfig("action", defaults.get("action"));
@@ -61,184 +57,163 @@ public class Chat implements Module, Listener
DataManager.setConfig("print", defaults.get("print"));
DataManager.setConfig("%c", defaults.get("%c"));
}
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
- if (event.isCancelled())
- return;
+
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
String message = event.getMessage();
+
event.setCancelled(true);
broadcastFormatted("chat", player, message, event);
}
-
+
@EventHandler
- public void onLeave(PlayerQuitEvent event)
- {
+ public void onLeave(PlayerQuitEvent event) {
chatonly.remove(event.getPlayer().getUniqueId());
}
-
+
@Command(hook = "me")
- public boolean me(CommandSender sender, String message)
- {
+ public boolean me(CommandSender sender, String message) {
broadcastFormatted("me", sender, message);
return true;
}
-
+
@Command(hook = "chat")
- public boolean chat(CommandSender sender, String message)
- {
+ public boolean chat(CommandSender sender, String message) {
broadcastFormatted("chat", sender, message);
return true;
}
-
+
@Command(hook = "chatn")
- public boolean chatn(CommandSender sender, String name, String message)
- {
+ public boolean chatn(CommandSender sender, String name, String message) {
broadcastFormatted("chat", sender, message, name);
return true;
}
-
+
@Command(hook = "action")
- public boolean action(CommandSender sender, String message)
- {
+ public boolean action(CommandSender sender, String message) {
broadcastFormatted("action", sender, message);
return true;
}
-
+
@Command(hook = "say")
- public boolean say(CommandSender sender, String message)
- {
+ public boolean say(CommandSender sender, String message) {
String name;
- if (sender instanceof Player)
- name = ((Player) sender).getName();
- else
- name = "§9CONSOLE";
+
+ if (sender instanceof Player) name = ((Player) sender).getName();
+ else name = "§9CONSOLE";
+
broadcastFormatted("say", sender, message, name);
return true;
}
-
+
@Command(hook = "sayn")
- public boolean say(CommandSender sender, String name, String message)
- {
+ public boolean say(CommandSender sender, String name, String message) {
broadcastFormatted("say", sender, message, name);
return true;
}
-
+
@Command(hook = "shrug")
- public boolean shrug(CommandSender sender, String message)
- {
+ public boolean shrug(CommandSender sender, String message) {
broadcastFormatted("shrug", sender, message);
return true;
}
-
+
@Command(hook = "shrugnoarg")
- public boolean shrug(CommandSender sender)
- {
+ public boolean shrug(CommandSender sender) {
broadcastFormatted("shrug", sender, "");
return true;
}
-
+
@Command(hook = "print")
- public boolean print(CommandSender sender, String message)
- {
+ public boolean print(CommandSender sender, String message) {
broadcastFormatted("print", sender, message);
return true;
}
-
+
@Command(hook = "mute")
- public boolean mute(CommandSender sender, String player)
- {
+ public boolean mute(CommandSender sender, String player) {
Player p = Bukkit.getPlayer(player);
- if (p == null)
- {
+
+ if (p == null) {
getLogger().message(sender, true, "That player couldn't be found!");
return true;
}
+
DataManager.setData(p, "muted", true);
+
getLogger().message(sender, "Muted player &e" + Utils.getName(p) + "&7!");
getLogger().message(p, "You have been &cmuted&7!");
+
return true;
}
-
+
@Command(hook = "unmute")
- public boolean unmute(CommandSender sender, String player)
- {
+ public boolean unmute(CommandSender sender, String player) {
Player p = Bukkit.getPlayer(player);
- if (p == null)
- {
+
+ if (p == null) {
getLogger().message(sender, true, "That player couldn't be found!");
return true;
}
+
DataManager.setData(p, "muted", false);
+
getLogger().message(sender, "Unmuted player &e" + Utils.getName(p) + "&7!");
getLogger().message(p, "You have been &aunmuted&7!");
+
return true;
}
-
+
@Command(hook = "chatonly")
- public void chatonly(CommandSender sender)
- {
+ public void chatonly(CommandSender sender) {
UUID uuid = ((Player) sender).getUniqueId();
-
+
if (chatonly.contains(uuid)) {
chatonly.remove(uuid);
getLogger().message(sender, "You are no longer tagged with being only able to chat.");
- }
- else {
+ } else {
chatonly.add(uuid);
getLogger().message(sender, "You are now tagged with being only able to chat.");
}
}
-
- public boolean broadcastFormatted(String format, CommandSender sender, String message)
- {
+
+ public boolean broadcastFormatted(String format, CommandSender sender, String message) {
return broadcastFormatted(format, sender, message, Utils.getName(sender), null);
}
-
- public boolean broadcastFormatted(String format, CommandSender sender, String message, String name)
- {
+
+ public boolean broadcastFormatted(String format, CommandSender sender, String message, String name) {
return broadcastFormatted(format, sender, message, name, null);
}
-
- public boolean broadcastFormatted(String format, CommandSender sender, String message, AsyncPlayerChatEvent event)
- {
+
+ public boolean broadcastFormatted(String format, CommandSender sender, String message, AsyncPlayerChatEvent event) {
return broadcastFormatted(format, sender, message, Utils.getName(sender), event);
}
-
- public boolean broadcastFormatted(String format, CommandSender sender, String message, String name,
- AsyncPlayerChatEvent event)
- {
- boolean isChatOnly = sender instanceof Player && chatonly.contains(((Player)sender).getUniqueId());
- if ((boolean) DataManager.getOrDefault(sender, "muted", false))
- {
+
+ public boolean broadcastFormatted(String format, CommandSender sender, String message, String name, AsyncPlayerChatEvent event) {
+ boolean isChatOnly = sender instanceof Player && chatonly.contains(((Player) sender).getUniqueId());
+
+ if ((boolean) DataManager.getOrDefault(sender, "muted", false)) {
getLogger().message(sender, true, "You have been muted!");
- getLogger().info(" &7User &e" + Utils.getName(sender) + " &7tried to &e" + format + " &7(&e" + message
- + "&7) while being &cmuted&7.");
+ getLogger().info(" &7User &e" + Utils.getName(sender) + " &7tried to &e" + format + " &7(&e" + message + "&7) while being &cmuted&7.");
return false;
}
+
String raw = (String) DataManager.getConfigOrDefault(format, defaults.get(format));
- String formatted = raw.replace("%n", name).replace("%m", message).replace("%c", isChatOnly? (String) DataManager.getConfigOrDefault("%c", defaults.get("%c")) : "");
- Utils.broadcast("", ChatAPI.colorify(sender, formatted),
- wrap(ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null, event));
+ String formatted = raw.replace("%n", name).replace("%m", message).replace("%c", isChatOnly ? (String) DataManager.getConfigOrDefault("%c", defaults.get("%c")) : "");
+ Utils.broadcast("", ChatAPI.colorify(sender, formatted), wrap(ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null, event));
+
return true;
}
-
- public BroadcastFilter wrap(BroadcastFilter filter, AsyncPlayerChatEvent event)
- {
- if (event == null)
- return filter;
- else
- return new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- if (recipient instanceof ConsoleCommandSender || filter == null)
- return true;
- return filter.sendTo(recipient) && event.getRecipients().contains(recipient);
- }
- };
+
+ public BroadcastFilter wrap(BroadcastFilter filter, AsyncPlayerChatEvent event) {
+ if (event == null) return filter;
+ else return new BroadcastFilter() {
+ @Override
+ public boolean sendTo(CommandSender recipient) {
+ if (recipient instanceof ConsoleCommandSender || filter == null) return true;
+ return filter.sendTo(recipient) && event.getRecipients().contains(recipient);
+ }
+ };
}
}
diff --git a/src/main/java/com/redstoner/modules/chatalias/Chatalias.java b/src/main/java/com/redstoner/modules/chatalias/Chatalias.java
index 32e89da..7233f7b 100644
--- a/src/main/java/com/redstoner/modules/chatalias/Chatalias.java
+++ b/src/main/java/com/redstoner/modules/chatalias/Chatalias.java
@@ -3,6 +3,7 @@ package com.redstoner.modules.chatalias;
import java.io.File;
import java.util.Set;
import java.util.UUID;
+import java.util.concurrent.ThreadLocalRandom;
import java.util.regex.Pattern;
import org.bukkit.Bukkit;
@@ -27,321 +28,312 @@ import com.redstoner.misc.JsonManager;
import com.redstoner.misc.Main;
import com.redstoner.modules.Module;
-import io.netty.util.internal.ThreadLocalRandom;
import net.nemez.chatapi.ChatAPI;
import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Chatalias implements Module, Listener
-{
- private final String[] commands = new String[] {"e?r", "e?m .+?", "e?t", "e?w", "e?msg .+?", "e?message .+?",
- "e?whisper .+?", "e?me", "cgsay", "ac", "bc", "say", "sayn .+?", "chat", "shrug", "action", "speak", "chatn", "speakn"};
+public class Chatalias implements Module, Listener {
+ private final String[] commands = new String[] { "e?r", "e?m .+?", "e?t", "e?w", "e?msg .+?", "e?message .+?", "e?whisper .+?", "e?me", "cgsay", "ac", "bc",
+ "say", "sayn .+?", "chat", "shrug", "action", "speak", "chatn", "speakn" };
private JSONObject aliases = new JSONObject();
-
+
@Override
- public boolean onEnable()
- {
- for (Player p : Bukkit.getOnlinePlayers())
- {
+ public boolean onEnable() {
+ for (Player p : Bukkit.getOnlinePlayers()) {
loadAliases(p.getUniqueId());
}
+
return true;
}
-
+
@Override
- public void onDisable()
- {
- for (Object key : aliases.keySet())
- {
+ public void onDisable() {
+ for (Object key : aliases.keySet()) {
UUID uuid = UUID.fromString((String) key);
saveAliases(uuid);
}
}
-
+
@EventHandler
- public void onPlayerJoin(PlayerJoinEvent event)
- {
+ public void onPlayerJoin(PlayerJoinEvent event) {
loadAliases(event.getPlayer().getUniqueId());
}
-
+
@EventHandler
- public void onPlayerLeave(PlayerQuitEvent event)
- {
+ public void onPlayerLeave(PlayerQuitEvent event) {
aliases.remove(event.getPlayer().getUniqueId().toString());
}
-
+
@SuppressWarnings("unchecked")
@EventHandler(priority = EventPriority.LOWEST)
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
- if (!aliases.containsKey(uuid.toString()))
- {
+
+ if (!aliases.containsKey(uuid.toString())) {
loadAliases(player.getUniqueId());
- if (!aliases.containsKey(uuid.toString()))
- return;
+
+ if (!aliases.containsKey(uuid.toString())) return;
}
+
JSONObject playerAliases = (JSONObject) aliases.get(uuid.toString());
boolean changed = false;
- for (Object key : playerAliases.keySet())
- {
+
+ for (Object key : playerAliases.keySet()) {
String keyword = (String) key;
String replacement = (String) playerAliases.get(key);
-
+
if (keyword.startsWith("RND;")) {
keyword = keyword.replace("RND;", "");
String[] results = replacement.split(" \\|\\| ");
+
for (String str : results) {
System.out.println(str);
}
+
int rand = ThreadLocalRandom.current().nextInt(0, results.length);
+
replacement = results[rand];
}
-
-
- if (keyword.startsWith("R: "))
- {
+
+ if (keyword.startsWith("R: ")) {
keyword = keyword.replace("R: ", "");
event.setMessage(event.getMessage().replaceAll(keyword, replacement));
- }
- else
- {
- if (keyword.startsWith("N: "))
- keyword = keyword.replace("N: ", "");
- else
- {
+ } else {
+ if (keyword.startsWith("N: ")) keyword = keyword.replace("N: ", "");
+ else {
changed = true;
playerAliases.put("N: " + key, replacement);
}
+
event.setMessage(event.getMessage().replace(keyword, replacement));
}
+
int maxLength;
- try
- {
+
+ try {
maxLength = Integer.valueOf(getPermissionContent(player, "utils.alias.length."));
- }
- catch (NumberFormatException e)
- {
+ } catch (NumberFormatException e) {
maxLength = 255;
}
- if (event.getMessage().length() > maxLength)
- {
+
+ if (event.getMessage().length() > maxLength) {
getLogger().message(player, true, "The generated message is too long!");
event.setCancelled(true);
return;
}
}
+
event.setMessage(ChatAPI.colorify(event.getPlayer(), event.getMessage()));
- if (changed)
- saveAliases(uuid);
+
+ if (changed) saveAliases(uuid);
}
-
+
@EventHandler(priority = EventPriority.LOWEST)
- public void onPlayerCommand(PlayerCommandPreprocessEvent event)
- {
- if (event.isCancelled())
- return;
+ public void onPlayerCommand(PlayerCommandPreprocessEvent event) {
+ if (event.isCancelled()) return;
+
boolean listening = false;
String command = "";
- for (String s : commands)
- {
+
+ for (String s : commands) {
command = "^\\/(.*:)?" + s + " ";
- if (event.getMessage().matches(command + ".*"))
- {
+
+ if (event.getMessage().matches(command + ".*")) {
listening = true;
break;
}
}
- if (!listening)
- return;
+
+ if (!listening) return;
+
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
JSONObject playerAliases = (JSONObject) aliases.get(uuid.toString());
String temp = event.getMessage().replaceAll(command, "");
+
command = event.getMessage().replaceAll(Pattern.quote(temp) + "$", "");
event.setMessage(event.getMessage().replaceFirst(Pattern.quote(command), ""));
- for (Object key : playerAliases.keySet())
- {
+
+ for (Object key : playerAliases.keySet()) {
String keyword = (String) key;
String replacement = (String) playerAliases.get(key);
-
+
if (keyword.startsWith("RND;")) {
keyword = keyword.replace("RND;", "");
String[] results = replacement.split(" \\|\\| ");
+
for (String str : results) {
System.out.println(str);
}
+
int rand = ThreadLocalRandom.current().nextInt(0, results.length);
+
replacement = results[rand];
}
-
- if (keyword.startsWith("R: "))
- {
+
+ if (keyword.startsWith("R: ")) {
keyword = keyword.replace("R: ", "");
event.setMessage(event.getMessage().replaceAll(keyword, replacement));
- }
- else
- {
- if (keyword.startsWith("N: "))
- keyword = keyword.replace("N: ", "");
+ } else {
+ if (keyword.startsWith("N: ")) keyword = keyword.replace("N: ", "");
event.setMessage(event.getMessage().replace(keyword, replacement));
}
+
int maxLength;
- try
- {
+
+ try {
maxLength = Integer.valueOf(getPermissionContent(player, "utils.alias.length."));
- }
- catch (NumberFormatException e)
- {
+ } catch (NumberFormatException e) {
maxLength = 255;
}
- if (event.getMessage().length() > maxLength)
- {
+
+ if (event.getMessage().length() > maxLength) {
getLogger().message(player, true, "The generated message is too long!");
event.setCancelled(true);
+
return;
}
}
+
event.setMessage(command + event.getMessage());
}
-
+
@SuppressWarnings("unchecked")
@Command(hook = "addalias")
- public boolean addAlias(CommandSender sender, boolean regex, boolean random, String keyword, String replacement)
- {
- if (regex && keyword.equals(".*"))
- {
+ public boolean addAlias(CommandSender sender, boolean regex, boolean random, String keyword, String replacement) {
+ if (regex && keyword.equals(".*")) {
getLogger().message(sender, true, "You may not define the wildcard regex as an alias.");
return true;
}
+
Player player = (Player) sender;
UUID uuid = player.getUniqueId();
JSONObject data = (JSONObject) aliases.get(uuid.toString());
keyword = (random ? "RND;" : "") + (regex ? "R: " : "N: ") + keyword;
- if (!data.containsKey(keyword))
- {
+
+ if (!data.containsKey(keyword)) {
int maxAmount;
- try
- {
+
+ try {
maxAmount = Integer.valueOf(getPermissionContent(player, "utils.alias.amount."));
- }
- catch (NumberFormatException e)
- {
+ } catch (NumberFormatException e) {
maxAmount = 25;
}
- if (data.size() == maxAmount)
- {
+
+ if (data.size() == maxAmount) {
getLogger().message(sender, true, "You already reached your maximum of aliases!");
return true;
}
}
+
data.put(keyword, replacement);
- if (sender.hasPermission("essentials.chat.color"))
- getLogger().message(sender,
- "Successfully created alias " + keyword.substring(random? 7 : 3) + " §7-> " + replacement + " §7for you.");
- else
- getLogger().message(sender,
- "Successfully created alias " + keyword.substring(random? 7 : 3) + " §7-> " + replacement + " §7for you.");
+
+ if (sender.hasPermission("essentials.chat.color")) {
+ getLogger().message(sender, "Successfully created alias " + keyword.substring(random ? 7 : 3) + " §7-> " + replacement + " §7for you.");
+ } else {
+ getLogger().message(sender, "Successfully created alias " + keyword.substring(random ? 7 : 3) + " §7-> " + replacement + " §7for you.");
+ }
+
saveAliases(uuid);
return true;
}
-
+
@Command(hook = "delalias")
- public boolean delAlias(CommandSender sender, boolean regex, boolean random, String keyword)
- {
+ public boolean delAlias(CommandSender sender, boolean regex, boolean random, String keyword) {
Player player = (Player) sender;
UUID uuid = player.getUniqueId();
JSONObject data = (JSONObject) aliases.get(uuid.toString());
+
keyword = (random ? "RND;" : "") + (regex ? "R: " : "N: ") + keyword;
- if (data.remove(keyword) != null)
- {
+
+ if (data.remove(keyword) != null) {
getLogger().message(sender, "Successfully removed the alias!");
saveAliases(uuid);
+
return true;
- }
- else
- {
+ } else {
getLogger().message(sender, true, "That alias doesn't exist! Hint: regex/no regex does matter for this.");
return true;
}
}
-
+
@Command(hook = "listaliases")
- public boolean listAliases(CommandSender sender)
- {
+ public boolean listAliases(CommandSender sender) {
Message m = new Message(sender, null).appendText(getLogger().getHeader());
+
Player player = (Player) sender;
UUID uuid = player.getUniqueId();
JSONObject data = (JSONObject) aliases.get(uuid.toString());
+
for (Object key : data.keySet()) {
String d_key = (String) key;
System.out.println("1" + d_key);
- d_key = d_key.replace("RND;N:", "RND:")
- .replace("RND;R:", "R-RND:");
-
+
+ d_key = d_key.replace("RND;N:", "RND:").replace("RND;R:", "R-RND:");
m.appendText("\n" + d_key + " §7-> " + data.get(key));
}
+
m.send();
return true;
}
-
- private String getPermissionContent(Player player, String permnode)
- {
+
+ private String getPermissionContent(Player player, String permnode) {
Set<PermissionAttachmentInfo> perms = player.getEffectivePermissions();
- for (PermissionAttachmentInfo perm : perms)
- if (perm.getPermission().toString().startsWith(permnode))
- return perm.getPermission().replace(permnode, "");
+
+ for (PermissionAttachmentInfo perm : perms) if (perm.getPermission().toString().startsWith(permnode)) return perm.getPermission().replace(permnode, "");
return null;
}
-
+
@SuppressWarnings("unchecked")
- private void loadAliases(UUID uuid)
- {
+ private void loadAliases(UUID uuid) {
JSONObject defaults = new JSONObject();
defaults.put("dataFormat", "v1");
+
JSONObject data = new JSONObject();
data.put("N: ./", "/");
+
defaults.put("data", data);
- JSONObject playerAliases = JsonManager
- .getObject(new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json"));
- if (playerAliases == null)
- {
+
+ JSONObject playerAliases = JsonManager.getObject(new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json"));
+
+ if (playerAliases == null) {
playerAliases = defaults;
}
+
String dataFormat = (String) playerAliases.get("dataFormat");
- if (dataFormat == null)
- {
+
+ if (dataFormat == null) {
JSONObject temp = new JSONObject();
temp.put("dataFormat", "v1");
+
JSONObject tempAliases = new JSONObject();
- {
- for (Object key : playerAliases.keySet())
- {
- tempAliases.put("N: " + key, playerAliases.get(key));
- }
+
+ for (Object key : playerAliases.keySet()) {
+ tempAliases.put("N: " + key, playerAliases.get(key));
}
+
temp.put("data", tempAliases);
aliases.put(uuid.toString(), temp.get("data"));
- }
- else if (dataFormat.equals("v1"))
+
+ } else if (dataFormat.equals("v1")) {
aliases.put(uuid.toString(), playerAliases.get("data"));
- else
- {
+ } else {
getLogger().error("Unknown data format for alias set of player " + uuid.toString());
aliases.put(uuid.toString(), ((JSONObject) defaults.get("data")).clone());
saveAliases(uuid);
}
}
-
+
@SuppressWarnings("unchecked")
- private void saveAliases(UUID uuid)
- {
+ private void saveAliases(UUID uuid) {
JSONObject temp = new JSONObject();
+
temp.put("dataFormat", "v1");
temp.put("data", aliases.get(uuid.toString()));
+
JsonManager.save(temp, new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json"));
}
}
diff --git a/src/main/java/com/redstoner/modules/chatgroups/Chatgroups.java b/src/main/java/com/redstoner/modules/chatgroups/Chatgroups.java
index 457702c..b96e2b7 100644
--- a/src/main/java/com/redstoner/modules/chatgroups/Chatgroups.java
+++ b/src/main/java/com/redstoner/modules/chatgroups/Chatgroups.java
@@ -29,84 +29,73 @@ import com.redstoner.modules.socialspy.Socialspy;
import net.nemez.chatapi.ChatAPI;
-/** The ChatGroups module. Allows people to have private sub-chats that can be accessed via a single char prefix or a toggle.
+/**
+ * The ChatGroups module. Allows people to have private sub-chats that can be
+ * accessed via a single char prefix or a toggle.
*
- * @author Pepich */
+ * @author Pepich
+ */
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Chatgroups implements Module, Listener
-{
+public class Chatgroups implements Module, Listener {
private static final char defaultKey = ':';
private static final File groupsLocation = new File(Main.plugin.getDataFolder(), "chatgroups.json");
private static final File keysLocation = new File(Main.plugin.getDataFolder(), "chatgroup_keys.json");
private ArrayList<UUID> cgtoggled;
private static JSONObject groups, keys;
-
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
groups = JsonManager.getObject(groupsLocation);
- if (groups == null)
- {
+ if (groups == null) {
groups = new JSONObject();
saveGroups();
}
keys = JsonManager.getObject(keysLocation);
- if (keys == null)
- {
+ if (keys == null) {
keys = new JSONObject();
saveKeys();
}
cgtoggled = new ArrayList<>();
return true;
}
-
+
@Override
- public void onDisable()
- {
+ public void onDisable() {
saveKeys();
saveGroups();
}
-
- /** Prints chatgroup info (like players in the group, groupname) to the sender.
+
+ /**
+ * Prints chatgroup info (like players in the group, groupname) to the sender.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@SuppressWarnings("unchecked")
@Command(hook = "cginfo")
- public boolean cgInfo(CommandSender sender)
- {
+ public boolean cgInfo(CommandSender sender) {
String group = getGroup(sender);
- if (group == null)
- getLogger().message(sender, true, "You are not in a chatgroup!");
- else
- {
+ if (group == null) getLogger().message(sender, true, "You are not in a chatgroup!");
+ else {
ArrayList<String> message = new ArrayList<>();
message.add("§7Your current chatgroup is: §6" + group);
ArrayList<String> players = new ArrayList<>();
Iterator<String> iter = groups.keySet().iterator();
- while (iter.hasNext())
- {
+ while (iter.hasNext()) {
String id = iter.next();
- if (((String) groups.get(id)).equals(group))
- {
- if (!id.equals("CONSOLE"))
- {
+ if (((String) groups.get(id)).equals(group)) {
+ if (!id.equals("CONSOLE")) {
UUID uuid = UUID.fromString(id);
Player p = Bukkit.getPlayer(uuid);
- if (p != null)
- players.add(p.getDisplayName());
- else
- players.add(Bukkit.getOfflinePlayer(UUID.fromString(id)).getName());
- }
- else
- players.add(id);
+ if (p != null) players.add(p.getDisplayName());
+ else players.add(Bukkit.getOfflinePlayer(UUID.fromString(id)).getName());
+ } else players.add(id);
}
}
StringBuilder sb = new StringBuilder("&6Other players in this group: &9");
- for (String player : players)
- {
+ for (String player : players) {
sb.append(player);
sb.append("&7, &9");
}
@@ -116,32 +105,31 @@ public class Chatgroups implements Module, Listener
}
return true;
}
-
- /** Prints a Players cgkey to their chat.
+
+ /**
+ * Prints a Players cgkey to their chat.
*
- * @param sender the issuer of the command. */
- public void getCgKey(CommandSender sender)
- {
+ * @param sender the issuer of the command.
+ */
+ public void getCgKey(CommandSender sender) {
getLogger().message(sender, "Your current cgkey is §6" + getKey((Player) sender));
}
-
- /** Sets the cgkey of a Player.
+
+ /**
+ * Sets the cgkey of a Player.
*
* @param sender the issuer of the command.
- * @param key the key to be set. Set to NULL or "" to get your current key.
- * @return true. */
+ * @param key the key to be set. Set to NULL or "" to get your current key.
+ * @return true.
+ */
@SuppressWarnings("unchecked")
@Command(hook = "setcgkey")
- public boolean setCgKey(CommandSender sender, String key)
- {
- if (key.length() > 1)
- {
- getLogger().message(sender, true,
- "Could not set your key to §6" + key + " §7, it can be at most one char.");
+ public boolean setCgKey(CommandSender sender, String key) {
+ if (key.length() > 1) {
+ getLogger().message(sender, true, "Could not set your key to §6" + key + " §7, it can be at most one char.");
return true;
}
- if (key == null || key.length() == 0)
- {
+ if (key == null || key.length() == 0) {
getCgKey(sender);
return true;
}
@@ -150,251 +138,226 @@ public class Chatgroups implements Module, Listener
saveKeys();
return true;
}
-
- /** Let's a Player toggle their auto-cg status to allow for automatically sending chat messages to their chatgroup.
+
+ /**
+ * Lets a Player toggle their auto-cg status to allow for automatically sending
+ * chat messages to their chatgroup.
*
* @param sender the issuer of the command.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "cgtoggle")
- public boolean cgToggleCommand(CommandSender sender)
- {
- if (getGroup(sender) != null)
- if (cgtoggled.contains(((Player) sender).getUniqueId()))
- {
- cgtoggled.remove(((Player) sender).getUniqueId());
- getLogger().message(sender, "CGT now §cdisabled");
- }
- else
- {
- cgtoggled.add(((Player) sender).getUniqueId());
- getLogger().message(sender, "CGT now §aenabled");
- }
- else
- getLogger().message(sender, true, "You are not in a chatgroup!");
+ public boolean cgToggleCommand(CommandSender sender) {
+ if (getGroup(sender) != null) if (cgtoggled.contains(((Player) sender).getUniqueId())) {
+ cgtoggled.remove(((Player) sender).getUniqueId());
+ getLogger().message(sender, "CGT now §cdisabled");
+ } else {
+ cgtoggled.add(((Player) sender).getUniqueId());
+ getLogger().message(sender, "CGT now §aenabled");
+ }
+ else getLogger().message(sender, true, "You are not in a chatgroup!");
return true;
}
-
- /** Lets a CommandSender leave their group.
+
+ /**
+ * Lets a CommandSender leave their group.
*
* @param sender the command issuer.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "cgleave")
- public boolean cgLeave(CommandSender sender)
- {
+ public boolean cgLeave(CommandSender sender) {
String group = removeGroup(sender);
- if (group == null)
- {
+ if (group == null) {
getLogger().message(sender, true, "You were not in a chatgroup!");
return true;
}
String name = Utils.getName(sender);
sendToGroup(group, "&9" + name + " &7left the group!");
getLogger().message(sender, "Successfully removed you from your group!");
- if (sender instanceof Player)
- cgtoggled.remove(((Player) sender).getUniqueId());
+ if (sender instanceof Player) cgtoggled.remove(((Player) sender).getUniqueId());
return true;
}
-
- /** Lets a CommandSender join a group.
+
+ /**
+ * Lets a CommandSender join a group.
*
* @param sender the command issuer.
- * @param name the name of the group.
- * @return true. */
+ * @param name the name of the group.
+ * @return true.
+ */
@Command(hook = "cgjoin")
- public boolean cgJoin(CommandSender sender, String name)
- {
+ public boolean cgJoin(CommandSender sender, String name) {
String pname = Utils.getName(sender);
String group = getGroup(sender);
- if (group != null && group.equals(name))
- getLogger().message(sender, true, "You were already in group §6" + name);
- else
- {
+ if (group != null && group.equals(name)) getLogger().message(sender, true, "You were already in group §6" + name);
+ else {
setGroup(sender, null);
- if (group != null)
- sendToGroup(group, "&9" + pname + " &7left the group!");
+ if (group != null) sendToGroup(group, "&9" + pname + " &7left the group!");
sendToGroup(name, "&9" + pname + " &7joined the group!");
setGroup(sender, name);
getLogger().message(sender, "Successfully joined group §6" + name);
}
return true;
}
-
- /** Sends a message to a group.
+
+ /**
+ * Sends a message to a group.
*
- * @param sender the sender of the message - the message will be sent to the group of the sender.
+ * @param sender the sender of the message - the message will be sent to the
+ * group of the sender.
* @param message the message to be sent.
- * @return true. */
+ * @return true.
+ */
@Command(hook = "cgsay")
- public boolean cgSay(CommandSender sender, String message)
- {
+ public boolean cgSay(CommandSender sender, String message) {
String group = getGroup(sender);
- if (group != null)
- sendToGroup(sender, message);
- else
- getLogger().message(sender, true, "You are not in a chatgroup right now!");
+ if (group != null) sendToGroup(sender, message);
+ else getLogger().message(sender, true, "You are not in a chatgroup right now!");
return true;
}
-
- /** Deals with chat events to allow for cgkeys and cgtoggle.
+
+ /**
+ * Deals with chat events to allow for cgkeys and cgtoggle.
*
- * @param event the chat event containing the player and the message. */
+ * @param event the chat event containing the player and the message.
+ */
@EventHandler
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
String group = getGroup(event.getPlayer());
Player player = event.getPlayer();
- if (group != null)
- {
- if (event.getMessage().startsWith(getKey(player)))
- {
+ if (group != null) {
+ if (event.getMessage().startsWith(getKey(player))) {
event.setCancelled(true);
sendToGroup(event.getPlayer(), event.getMessage().substring(1));
- }
- else if (cgtoggled.contains(event.getPlayer().getUniqueId()))
- {
+ } else if (cgtoggled.contains(event.getPlayer().getUniqueId())) {
event.setCancelled(true);
sendToGroup(event.getPlayer(), event.getMessage());
}
}
}
-
- /** Finds the group of a CommandSender.
+
+ /**
+ * Finds the group of a CommandSender.
*
* @param target the CommandSender to get the group of.
- * @return the group of the target or NULL if he doesn't have one. */
- public static String getGroup(CommandSender target)
- {
- if (target instanceof Player)
- return (String) groups.get(((Player) target).getUniqueId().toString());
- else
- return (String) groups.get("CONSOLE");
+ * @return the group of the target or NULL if he doesn't have one.
+ */
+ public static String getGroup(CommandSender target) {
+ if (target instanceof Player) return (String) groups.get(((Player) target).getUniqueId().toString());
+ else return (String) groups.get("CONSOLE");
}
-
- /** Sets the group of the CommandSender.
+
+ /**
+ * Sets the group of the CommandSender.
*
* @param target the CommandSender to set the group of.
- * @param group the name of the group to join. */
+ * @param group the name of the group to join.
+ */
@SuppressWarnings("unchecked")
- private void setGroup(CommandSender target, String group)
- {
- if (target instanceof Player)
- groups.put(((Player) target).getUniqueId().toString(), group);
- else
- groups.put("CONSOLE", group);
+ private void setGroup(CommandSender target, String group) {
+ if (target instanceof Player) groups.put(((Player) target).getUniqueId().toString(), group);
+ else groups.put("CONSOLE", group);
saveGroups();
}
-
- /** Removes a CommandSender from their chatgroup. Will also save the groups after finishing
+
+ /**
+ * Removes a CommandSender from their chatgroup. Will also save the groups after
+ * finishing
*
- * @param target the CommandSender to get their group removed. */
- private String removeGroup(CommandSender target)
- {
+ * @param target the CommandSender to get their group removed.
+ */
+ private String removeGroup(CommandSender target) {
String group;
- if (target instanceof Player)
- group = (String) groups.remove(((Player) target).getUniqueId().toString());
- else
- group = (String) groups.remove("CONSOLE");
+ if (target instanceof Player) group = (String) groups.remove(((Player) target).getUniqueId().toString());
+ else group = (String) groups.remove("CONSOLE");
saveGroups();
return group;
}
-
- /** This method will find the ChatgGroup key of any player.
+
+ /**
+ * This method will find the ChatgGroup key of any player.
*
* @param player the player to get the key from.
- * @return the key. */
- public static String getKey(Player player)
- {
+ * @return the key.
+ */
+ public static String getKey(Player player) {
String key = (String) keys.get(player.getUniqueId().toString());
return (key == null ? "" + defaultKey : key);
}
-
- /** This method sends a message to a chatgroup.
+
+ /**
+ * This method sends a message to a chatgroup.
*
- * @param sender the sender of the message. Also defines which group the message will be sent to.
- * @param message the message to be sent. */
- private void sendToGroup(CommandSender sender, String message)
- {
+ * @param sender the sender of the message. Also defines which group the
+ * message will be sent to.
+ * @param message the message to be sent.
+ */
+ private void sendToGroup(CommandSender sender, String message) {
String name = Utils.getName(sender);
String group = getGroup(sender);
message = ChatAPI.colorify(null, message);
-
- BroadcastFilter ignore = ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null;
- Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter()
- {
+
+ BroadcastFilter ignore = ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null;
+ Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter() {
@Override
- public boolean sendTo(CommandSender recipient)
- {
-
+ public boolean sendTo(CommandSender recipient) {
+
String rgroup = getGroup(recipient);
- if ( rgroup != null && (ignore == null? true : ignore.sendTo(recipient)) )
- return rgroup.equals(group);
- else
- return false;
+ if (rgroup != null && (ignore == null ? true : ignore.sendTo(recipient))) return rgroup.equals(group);
+ else return false;
}
});
- if (ModuleLoader.getModule("Socialspy") != null)
- {
- Socialspy.spyBroadcast(sender, "§e" + group + " §a(cg)", message, "/cg", new BroadcastFilter()
- {
+ if (ModuleLoader.getModule("Socialspy") != null) {
+ Socialspy.spyBroadcast(sender, "§e" + group + " §a(cg)", message, "/cg", new BroadcastFilter() {
@Override
- public boolean sendTo(CommandSender recipient)
- {
+ public boolean sendTo(CommandSender recipient) {
return getGroup(recipient) == null || !getGroup(recipient).equals(group);
}
});
}
- if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group))
- {
+ if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group)) {
getLogger().info(name + " in " + group + ": " + message + " §8(hidden)");
}
}
-
- /** This method sends a message to a chatgroup.
+
+ /**
+ * This method sends a message to a chatgroup.
*
- * @param sender the sender of the message. Also defines which group the message will be sent to.
- * @param message the message to be sent. */
- private void sendToGroup(String group, String message)
- {
+ * @param sender the sender of the message. Also defines which group the
+ * message will be sent to.
+ * @param message the message to be sent.
+ */
+ private void sendToGroup(String group, String message) {
message = ChatAPI.colorify(null, message);
- Utils.broadcast(null, message, new BroadcastFilter()
- {
+ Utils.broadcast(null, message, new BroadcastFilter() {
@Override
- public boolean sendTo(CommandSender recipient)
- {
+ public boolean sendTo(CommandSender recipient) {
String rgroup = getGroup(recipient);
- if (rgroup != null)
- return rgroup.equals(group);
- else
- return false;
+ if (rgroup != null) return rgroup.equals(group);
+ else return false;
}
});
- if (ModuleLoader.getModule("Socialspy") != null)
- {
- Socialspy.spyBroadcast(Bukkit.getConsoleSender(), "§e" + group + " §a(cg)", message, "/cg",
- new BroadcastFilter()
- {
- @Override
- public boolean sendTo(CommandSender recipient)
- {
- return getGroup(recipient) == null || !getGroup(recipient).equals(group);
- }
- });
+ if (ModuleLoader.getModule("Socialspy") != null) {
+ Socialspy.spyBroadcast(Bukkit.getConsoleSender(), "§e" + group + " §a(cg)", message, "/cg", new BroadcastFilter() {
+ @Override
+ public boolean sendTo(CommandSender recipient) {
+ return getGroup(recipient) == null || !getGroup(recipient).equals(group);
+ }
+ });
}
- if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group))
- {
+ if (getGroup(Bukkit.getConsoleSender()) == null || !getGroup(Bukkit.getConsoleSender()).equals(group)) {
getLogger().info("In " + group + ": " + message + " §8(hidden)");
}
}
-
+
/** Saves the groups. */
- private void saveGroups()
- {
+ private void saveGroups() {
JsonManager.save(groups, groupsLocation);
}
-
+
/** Saves the keys. */
- private void saveKeys()
- {
+ private void saveKeys() {
JsonManager.save(keys, keysLocation);
}
}
diff --git a/src/main/java/com/redstoner/modules/check/Check.java b/src/main/java/com/redstoner/modules/check/Check.java
index 29f5754..9c599bc 100644
--- a/src/main/java/com/redstoner/modules/check/Check.java
+++ b/src/main/java/com/redstoner/modules/check/Check.java
@@ -37,235 +37,210 @@ import net.nemez.chatapi.click.Message;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 2, revision = 0, compatible = 4)
-public class Check implements Module, Listener
-{
+public class Check implements Module, Listener {
MysqlTable table;
-
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
Map<Serializable, Serializable> config = JSONManager.getConfiguration("check.json");
- if (config == null || !config.containsKey("database") || !config.containsKey("table"))
- {
+
+ if (config == null || !config.containsKey("database") || !config.containsKey("table")) {
getLogger().error("Could not load the Check config file, disabling!");
return false;
}
- try
- {
- MysqlDatabase database = MysqlHandler.INSTANCE
- .getDatabase((String) config.get("database") + "?autoReconnect=true");
+
+ try {
+ MysqlDatabase database = MysqlHandler.INSTANCE.getDatabase((String) config.get("database") + "?autoReconnect=true");
table = database.getTable((String) config.get("table"));
- }
- catch (NullPointerException e)
- {
+ } catch (NullPointerException e) {
getLogger().error("Could not use the Check config, disabling!");
return false;
}
+
return true;
}
-
-
+
@Override
- public void postEnable()
- {
+ public void postEnable() {
CommandManager.registerCommand(getCommandString(), this, Main.plugin);
}
-
+
@SuppressWarnings("deprecation")
@Command(hook = "checkCommand", async = AsyncType.ALWAYS)
- public void checkCommand(final CommandSender sender, final String player)
- {
- OfflinePlayer oPlayer;
- oPlayer = Bukkit.getPlayer(player);
- if (oPlayer == null)
- oPlayer = Bukkit.getServer().getOfflinePlayer(player);
+ public void checkCommand(final CommandSender sender, final String player) {
+ OfflinePlayer oPlayer = Bukkit.getPlayer(player);
+ if (oPlayer == null) oPlayer = Bukkit.getServer().getOfflinePlayer(player);
+
sendData(sender, oPlayer);
- if (ModuleLoader.exists("Tag"))
- Bukkit.dispatchCommand(sender, "tag check " + player);
+
+ if (ModuleLoader.exists("Tag")) Bukkit.dispatchCommand(sender, "tag check " + player);
}
-
- public String read(URL url)
- {
+
+ public String read(URL url) {
String data = "";
- try
- {
+
+ try {
Scanner in = new Scanner(new InputStreamReader(url.openStream()));
- while (in.hasNextLine())
- {
+
+ while (in.hasNextLine()) {
data += in.nextLine();
}
+
in.close();
return data;
- }
- catch (IOException e)
- {}
+ } catch (IOException e) {}
+
return null;
}
-
- public String[] getIpInfo(OfflinePlayer player)
- {
+
+ public String[] getIpInfo(OfflinePlayer player) {
String ip = "";
String[] info = new String[4];
-
- if (player.isOnline())
- {
+
+ if (player.isOnline()) {
ip = player.getPlayer().getAddress().getHostString();
- }
- else
- {
- try
- {
- ip = (String) table.get("last_ip", new MysqlConstraint("uuid", ConstraintOperator.EQUAL,
- player.getUniqueId().toString().replace("-", "")))[0];
- }
- catch (Exception e)
- {
+ } else {
+ try {
+ ip = (String) table.get("last_ip", new MysqlConstraint("uuid", ConstraintOperator.EQUAL, player.getUniqueId().toString().replace("-", "")))[0];
+ } catch (Exception e) {
return null;
}
}
- try
- {
+
+ try {
URL ipinfo = new URL("https://ipapi.co/" + ip + "/json");
- JSONObject json = (JSONObject) new JSONParser().parse( read(ipinfo) );
-
+ JSONObject json = (JSONObject) new JSONParser().parse(read(ipinfo));
+
info[0] = ip;
-
+
Object o_country = json.get("country_name");
Object o_region = json.get("region");
Object o_asn = json.get("asn");
Object o_org = json.get("org");
-
- String country = o_country == null? "Unknown" : (String) o_country;
- String region = o_region == null? "" : ", " + (String) o_region;
- String asn = o_asn == null? "Unknown" : (String) o_asn;
- String org = o_org == null? "Unknown" : (String) o_org;
-
- info[1] = country.equals("")? "Unknown" : country + (region.equals(", ")? "" : region);
- info[3] = asn.equals("")? "Unknown" : asn;
- info[4] = org.equals("")? "Unknown" : org;
+
+ String country = o_country == null ? "Unknown" : (String) o_country;
+ String region = o_region == null ? "" : ", " + (String) o_region;
+ String asn = o_asn == null ? "Unknown" : (String) o_asn;
+ String org = o_org == null ? "Unknown" : (String) o_org;
+
+ info[1] = country.equals("") ? "Unknown" : country + (region.equals(", ") ? "" : region);
+ info[3] = asn.equals("") ? "Unknown" : asn;
+ info[4] = org.equals("") ? "Unknown" : org;
+
return info;
+ } catch (Exception e) {
+ e.printStackTrace();
}
- catch (Exception e)
- {e.printStackTrace();}
+
return null;
}
-
- public String getFirstJoin(OfflinePlayer player)
- {
+
+ public String getFirstJoin(OfflinePlayer player) {
Long firstJoin = player.getFirstPlayed();
Date date = new Date(firstJoin);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
return format.format(date);
}
-
- public String getLastSeen(OfflinePlayer player)
- {
+
+ public String getLastSeen(OfflinePlayer player) {
Long lastSeen = player.getLastPlayed();
Date date = new Date(lastSeen);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
return format.format(date);
}
-
- public Object[] getWebsiteData(OfflinePlayer player)
- {
- MysqlConstraint constraint = new MysqlConstraint("uuid", ConstraintOperator.EQUAL,
- player.getUniqueId().toString().replace("-", ""));
- try
- {
+
+ public Object[] getWebsiteData(OfflinePlayer player) {
+ MysqlConstraint constraint = new MysqlConstraint("uuid", ConstraintOperator.EQUAL, player.getUniqueId().toString().replace("-", ""));
+
+ try {
int id = (int) table.get("id", constraint)[0];
String email = (String) table.get("email", constraint)[0];
boolean confirmed = (boolean) table.get("confirmed", constraint)[0];
- return new Object[] {"https://redstoner.com/users/" + id, email, confirmed};
- }
- catch (Exception e)
- {
- try
- {
+
+ return new Object[] { "https://redstoner.com/users/" + id, email, confirmed };
+ } catch (Exception e) {
+ try {
int id = (int) table.get("id", constraint)[0];
String email = (String) table.get("email", constraint)[0];
boolean confirmed = (boolean) table.get("confirmed", constraint)[0];
- return new Object[] {"https://redstoner.com/users/" + id, email, confirmed};
- }
- catch (Exception e2)
- {}
- return new Object[] {null};
-
+
+ return new Object[] { "https://redstoner.com/users/" + id, email, confirmed };
+ } catch (Exception e2) {}
+
+ return new Object[] { null };
}
}
-
- public String getAllNames(OfflinePlayer player)
- {
+
+ public String getAllNames(OfflinePlayer player) {
String uuid = player.getUniqueId().toString().replace("-", "");
String nameString = "";
- try
- {
+
+ try {
String rawJson = read(new URL("https://api.mojang.com/user/profiles/" + uuid + "/names"));
JSONArray names = (JSONArray) new JSONParser().parse(rawJson);
- for (Object obj : names)
- {
+
+ for (Object obj : names) {
nameString += "&e" + ((JSONObject) obj).get("name") + "&7, ";
}
+
nameString = nameString.substring(0, nameString.length() - 2);
return nameString;
- }
- catch (Exception e)
- {}
+ } catch (Exception e) {}
+
return "None";
}
-
- public void sendData(CommandSender sender, OfflinePlayer player)
- {
- try
- {
+
+ public void sendData(CommandSender sender, OfflinePlayer player) {
+ try {
// data
String uuid = player.getUniqueId().toString();
+
String firstJoin = getFirstJoin(player);
String lastSeen = getLastSeen(player);
firstJoin = (firstJoin.equals("1970-01-01 01:00")) ? "&eNever" : "&7(yyyy-MM-dd hh:mm) &e" + firstJoin;
lastSeen = (lastSeen.equals("1970-1-1 01:00")) ? "&eNever" : "&7(yyyy-MM-dd hh:mm) &e" + lastSeen;
-
+
Object[] websiteData = getWebsiteData(player);
String websiteUrl = (websiteData[0] == null) ? "None" : (String) websiteData[0];
String email = (websiteData[0] == null) ? "Unknown" : (String) websiteData[1];
boolean emailNotConfirmed = (websiteData[0] == null) ? false : !((boolean) websiteData[2]);
-
+
String[] ipInfo = getIpInfo(player);
-
+
String namesUsed = getAllNames(player);
-
- // messages
- Message msg = new Message(sender, null)
- .appendText("\n" + getLogger().getHeader())
- .appendText("\n&7Data provided by redstoner:")
- .appendText("\n&6> UUID: ").appendSuggestHover("&e" + uuid, uuid, "Click to copy!")
- .appendText("\n&6> First joined: &e" + firstJoin)
- .appendText("\n&6> Last Seen: &e" + lastSeen)
- .appendText("\n&6> Website account: &e").appendLink(websiteUrl, websiteUrl)
- .appendText("\n&6> Email: &e" + (emailNotConfirmed ? "\n&6> &cEmail NOT Confirmed!" : ""))
- .appendSuggestHover("&e" + email, email, "Click to copy!")
- .appendText("\n\n&7Data provided by ipapi.co:");
-
- if (ipInfo == null)
+
+ // messages
+ Message msg = new Message(sender, null);
+
+ msg.appendText("\n" + getLogger().getHeader());
+ msg.appendText("\n&7Data provided by redstoner:");
+ msg.appendText("\n&6> UUID: ").appendSuggestHover("&e" + uuid, uuid, "Click to copy!");
+ msg.appendText("\n&6> First joined: &e" + firstJoin);
+ msg.appendText("\n&6> Last Seen: &e" + lastSeen);
+ msg.appendText("\n&6> Website account: &e").appendLink(websiteUrl, websiteUrl);
+ msg.appendText("\n&6> Email: &e" + (emailNotConfirmed ? "\n&6> &cEmail NOT Confirmed!" : "")).appendSuggestHover("&e" + email, email, "Click to copy!");
+ msg.appendText("\n\n&7Data provided by ipapi.co:");
+
+ if (ipInfo == null) {
msg.appendText("\n&6> &cData Unavailable");
- else
- {
+ } else {
String ip = ipInfo[0];
String region = ipInfo[1];
String asn = ipInfo[2];
String org = ipInfo[3];
-
- msg.appendText("\n&6> IP: ").appendSuggestHover("&e" + ip, ip, "Click to copy!")
- .appendText("\n&6> Region: " + region)
- .appendText("\n&6> ASN: ").appendSuggestHover("&e" + asn, asn, "Click to copy!")
- .appendText("\n&6> Org: ").appendSuggestHover("&e" + org, org, "Click to copy!");
+
+ msg.appendText("\n&6> IP: ").appendSuggestHover("&e" + ip, ip, "Click to copy!");
+ msg.appendText("\n&6> Region: " + region);
+ msg.appendText("\n&6> ASN: ").appendSuggestHover("&e" + asn, asn, "Click to copy!");
+ msg.appendText("\n&6> Org: ").appendSuggestHover("&e" + org, org, "Click to copy!");
}
-
- msg.appendText("\n\n&7Data provided by mojang:")
- .appendText("\n&6> All ingame names used so far: &e" + namesUsed)
- .send();
- }
- catch (Exception e)
- {
+
+ msg.appendText("\n\n&7Data provided by mojang:");
+ msg.appendText("\n&6> All ingame names used so far: &e" + namesUsed);
+ msg.send();
+ } catch (Exception e) {
getLogger().message(sender, true, "Sorry, something went wrong while fetching data");
e.printStackTrace();
}
diff --git a/src/main/java/com/redstoner/modules/clear/Clear.java b/src/main/java/com/redstoner/modules/clear/Clear.java
index a6ea86f..a891d2d 100644
--- a/src/main/java/com/redstoner/modules/clear/Clear.java
+++ b/src/main/java/com/redstoner/modules/clear/Clear.java
@@ -13,32 +13,30 @@ import com.redstoner.modules.Module;
@Commands(CommandHolderType.File)
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Clear implements Module
-{
+public class Clear implements Module {
@Command(hook = "clear")
- public boolean clearInventory(CommandSender sender)
- {
+ public boolean clearInventory(CommandSender sender) {
Player player = (Player) sender;
+
Inventory inv = player.getInventory();
- for (int i = 0; i < 36; i++)
- inv.clear(i);
+ for (int i = 0; i < 36; i++) inv.clear(i);
+
getLogger().message(sender, "Cleared your inventory!");
return true;
}
-
+
@Command(hook = "clearother")
- public boolean clearOtherInventory(CommandSender sender, String name)
- {
+ public boolean clearOtherInventory(CommandSender sender, String name) {
Player player = Bukkit.getPlayer(name);
- if (player == null)
- getLogger().message(sender, true, "That player couldn't be found!");
- else
- {
+
+ if (player == null) getLogger().message(sender, true, "That player couldn't be found!");
+ else {
Inventory inv = player.getInventory();
- for (int i = 0; i < 36; i++)
- inv.clear(i);
+ for (int i = 0; i < 36; i++) inv.clear(i);
+
getLogger().message(sender, "Cleared " + player.getDisplayName() + "&7's inventory!");
}
+
return true;
}
}
diff --git a/src/main/java/com/redstoner/modules/cycle/Cycle.java b/src/main/java/com/redstoner/modules/cycle/Cycle.java
index b0a6310..50dfa4e 100644
--- a/src/main/java/com/redstoner/modules/cycle/Cycle.java
+++ b/src/main/java/com/redstoner/modules/cycle/Cycle.java
@@ -25,118 +25,108 @@ import com.redstoner.modules.Module;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class Cycle implements Module, Listener
-{
+public class Cycle implements Module, Listener {
private File cycleFile = new File(Main.plugin.getDataFolder(), "cycle.json");
private JSONArray no_cyclers;
-
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
no_cyclers = JsonManager.getArray(cycleFile);
- if (no_cyclers == null)
- no_cyclers = new JSONArray();
+ if (no_cyclers == null) no_cyclers = new JSONArray();
+
return true;
}
-
+
@Override
- public void onDisable()
- {
+ public void onDisable() {
saveCyclers();
}
-
- private void saveCyclers()
- {
+
+ private void saveCyclers() {
JsonManager.save(no_cyclers, cycleFile);
}
-
+
@Command(hook = "cycle_on")
- public boolean cycleOn(CommandSender sender)
- {
+ public boolean cycleOn(CommandSender sender) {
UUID uid = ((Player) sender).getUniqueId();
- if (no_cyclers.remove(uid.toString()))
- {
+
+ if (no_cyclers.remove(uid.toString())) {
getLogger().message(sender, "Cycle enabled!");
saveCyclers();
- }
- else
- getLogger().message(sender, "Cycle was already enabled!");
+ } else getLogger().message(sender, "Cycle was already enabled!");
+
return true;
}
-
+
@SuppressWarnings("unchecked")
@Command(hook = "cycle_off")
- public boolean cycleOff(CommandSender sender)
- {
+ public boolean cycleOff(CommandSender sender) {
UUID uid = ((Player) sender).getUniqueId();
- if (!no_cyclers.contains(uid.toString()))
- {
+
+ if (!no_cyclers.contains(uid.toString())) {
getLogger().message(sender, "Cycle disabled!");
no_cyclers.add(uid.toString());
saveCyclers();
- }
- else
- getLogger().message(sender, "Cycle was already disabled!");
+ } else getLogger().message(sender, "Cycle was already disabled!");
+
return true;
}
-
+
@EventHandler
- public void onInventoryCycle(PlayerItemHeldEvent event)
- {
+ public void onInventoryCycle(PlayerItemHeldEvent event) {
Player player = event.getPlayer();
UUID uid = player.getUniqueId();
- if (!player.getGameMode().equals(GameMode.CREATIVE) || player.isSneaking()
- || no_cyclers.contains(uid.toString()))
- return;
+
+ if (!player.getGameMode().equals(GameMode.CREATIVE) || player.isSneaking() || no_cyclers.contains(uid.toString())) return;
+
int prev_slot = event.getPreviousSlot();
int new_slot = event.getNewSlot();
- if (prev_slot == 0 && new_slot == 8)
- shift(player, false);
- else if (prev_slot == 8 && new_slot == 0)
- shift(player, true);
+
+ if (prev_slot == 0 && new_slot == 8) shift(player, false);
+ else if (prev_slot == 8 && new_slot == 0) shift(player, true);
}
-
- private void shift(Player player, boolean down)
- {
+
+ private void shift(Player player, boolean down) {
Inventory inv = player.getInventory();
ItemStack[] items = inv.getStorageContents();
+
int shift = down ? -9 : 9;
shift = (shift + items.length) % items.length;
- for (int i = 0; i < 4; i++)
- {
+
+ for (int i = 0; i < 4; i++) {
items = join(subset(items, shift, items.length), subset(items, 0, shift));
+
ItemStack[] hotbar = subset(items, 0, 9);
boolean found = false;
- for (ItemStack item : hotbar)
- if (item != null)
- {
- found = true;
- break;
- }
- if (found)
+
+ for (ItemStack item : hotbar) if (item != null) {
+ found = true;
break;
+ }
+
+ if (found) break;
}
+
inv.setStorageContents(items);
}
-
- private ItemStack[] subset(ItemStack[] items, int start, int end)
- {
+
+ private ItemStack[] subset(ItemStack[] items, int start, int end) {
ItemStack[] result = new ItemStack[end - start];
- for (int i = start; i < end; i++)
- {
+
+ for (int i = start; i < end; i++) {
result[i - start] = items[i];
}
+
return result;
}
-
- private ItemStack[] join(ItemStack[] items1, ItemStack[] items2)
- {
+
+ private ItemStack[] join(ItemStack[] items1, ItemStack[] items2) {
ItemStack[] result = new ItemStack[items1.length + items2.length];
- for (int i = 0; i < items1.length; i++)
- result[i] = items1[i];
+
+ for (int i = 0; i < items1.length; i++) result[i] = items1[i];
int offset = items1.length;
- for (int i = 0; i < items2.length; i++)
- result[i + offset] = items2[i];
+ for (int i = 0; i < items2.length; i++) result[i + offset] = items2[i];
+
return result;
}
}
diff --git a/src/main/java/com/redstoner/modules/damnspam/DamnSpam.java b/src/main/java/com/redstoner/modules/damnspam/DamnSpam.java
index cf61b33..323df09 100644
--- a/src/main/java/com/redstoner/modules/damnspam/DamnSpam.java
+++ b/src/main/java/com/redstoner/modules/damnspam/DamnSpam.java
@@ -40,310 +40,310 @@ import com.redstoner.modules.Module;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 1, revision = 0, compatible = 4)
-public class DamnSpam implements Module, Listener
-{
+public class DamnSpam implements Module, Listener {
File configFile = new File(Main.plugin.getDataFolder(), "DamnSpam.json");
+
Map<String, SpamInput> inputs;
- boolean changingInput = false;
List<Material> acceptedInputs;
+
HashMap<Material, int[][]> attachedBlocks;
HashMap<Player, SpamInput> players;
+
+ boolean changingInput = false;
int maxTimeout = 240;
+
String timeoutErrorString = "The timeout must be -1 or within 0 and " + maxTimeout;
-
+
+ private static final BlockFace[] DIRECTIONS = { BlockFace.DOWN, BlockFace.UP, BlockFace.NORTH, BlockFace.SOUTH, BlockFace.WEST, BlockFace.EAST };
+
+ private static final int[][] LEVER_ATTACHED_BLOCKS = new int[][] { { 0, 7, 8, 15 }, { 5, 6, 13, 14 }, { 4, 12 }, { 3, 11 }, { 2, 10 }, { 1, 9 } };
+ private static final int[][] BUTTON_ATTACHED_BLOCKS = new int[][] { { 0, 8 }, { 5, 6, 7, 13, 14, 15 }, { 4, 12 }, { 3, 11 }, { 2, 10 }, { 1, 9 } };
+
+ // @formatter:off
+ private static final Material[] BUTTONS = {
+ Material.ACACIA_BUTTON,
+ Material.BIRCH_BUTTON,
+ Material.DARK_OAK_BUTTON,
+ Material.JUNGLE_BUTTON,
+ Material.OAK_BUTTON,
+ Material.SPRUCE_BUTTON,
+ Material.STONE_BUTTON
+ };
+ // @formatter:on
+
@Override
- public boolean onEnable()
- {
+ public boolean onEnable() {
loadInputs();
+
acceptedInputs = new ArrayList<Material>();
- Collections.addAll(acceptedInputs, Material.WOOD_BUTTON, Material.STONE_BUTTON, Material.LEVER);
+ acceptedInputs.add(Material.LEVER);
+
+ Collections.addAll(acceptedInputs, BUTTONS);
+
attachedBlocks = new HashMap<Material, int[][]>();
- attachedBlocks.put(Material.LEVER,
- new int[][] {{0, 7, 8, 15}, {5, 6, 13, 14}, {4, 12}, {3, 11}, {2, 10}, {1, 9}});
- attachedBlocks.put(Material.STONE_BUTTON,
- new int[][] {{0, 8}, {5, 6, 7, 13, 14, 15}, {4, 12}, {3, 11}, {2, 10}, {1, 9}});
- attachedBlocks.put(Material.WOOD_BUTTON,
- new int[][] {{0, 8}, {5, 6, 7, 13, 14, 15}, {4, 12}, {3, 11}, {2, 10}, {1, 9}});
+ attachedBlocks.put(Material.LEVER, LEVER_ATTACHED_BLOCKS);
+
+ for (Material button : BUTTONS) {
+ attachedBlocks.put(button, BUTTON_ATTACHED_BLOCKS);
+ }
+
players = new HashMap<Player, SpamInput>();
return true;
}
-
- public void loadInputs()
- {
+
+ public void loadInputs() {
inputs = new HashMap<String, SpamInput>();
- try
- {
+
+ try {
FileReader reader = new FileReader(configFile);
JSONObject json = (JSONObject) new JSONParser().parse(reader);
- for (Object key : json.keySet())
- {
+
+ for (Object key : json.keySet()) {
JSONObject inputData = (JSONObject) json.get(key);
String uuid = (String) inputData.get("creator");
Double timeoutOn = (Double) inputData.get("timeout_on");
Double timeoutOff = (Double) inputData.get("timeout_off");
Double lastTime = (Double) inputData.get("last_time");
+
inputs.put((String) key, new SpamInput(uuid, timeoutOff, timeoutOn, lastTime));
}
- }
- catch (IOException | ParseException e)
- {
+ } catch (IOException | ParseException e) {
e.printStackTrace();
}
}
-
+
@SuppressWarnings("unchecked")
- public void saveInputs()
- {
+ public void saveInputs() {
JSONObject json = new JSONObject();
- for (String key : inputs.keySet())
- {
+
+ for (String key : inputs.keySet()) {
JSONObject jsonInput = new JSONObject();
SpamInput input = inputs.get(key);
+
jsonInput.put("creator", input.player);
jsonInput.put("timeout_on", input.timeoutOn);
jsonInput.put("timeout_off", input.timeoutOff);
jsonInput.put("last_time", input.lastTime);
+
json.put(key, jsonInput);
}
- try
- {
+ try {
PrintWriter writer = new PrintWriter(configFile);
writer.write(json.toJSONString());
writer.close();
- }
- catch (FileNotFoundException e)
- {
+ } catch (FileNotFoundException e) {
e.printStackTrace();
}
}
-
- public String locationString(Location loc)
- {
+
+ public String locationString(Location loc) {
return loc.getWorld().getName() + ";" + loc.getBlockX() + ";" + loc.getBlockY() + ";" + loc.getBlockZ();
}
-
- public boolean isAcceptableTimeout(double timeout)
- {
+
+ public boolean isAcceptableTimeout(double timeout) {
return (timeout > 0 && timeout <= maxTimeout) || timeout == -1;
}
-
- public boolean canBuild(Player player, Block block)
- {
+
+ public boolean canBuild(Player player, Block block) {
BlockBreakEvent event = new BlockBreakEvent(block, player);
Bukkit.getPluginManager().callEvent(event);
+
return !event.isCancelled();
}
-
+
@Command(hook = "damnspamSingle")
- public void damnspam(CommandSender sender, double seconds)
- {
+ public void damnspam(CommandSender sender, double seconds) {
boolean destroyingInput = false;
+
seconds = (double) Math.round(seconds * 100) / 100;
- if (seconds == 0)
- destroyingInput = true;
- else if (!isAcceptableTimeout(seconds))
- {
+
+ if (seconds == 0) destroyingInput = true;
+ else if (!isAcceptableTimeout(seconds)) {
getLogger().message(sender, true, "The timeout must be -1 or within 0 and " + maxTimeout);
return;
}
+
getLogger().message(sender, "Please click the input you would like to set.");
setPlayer((Player) sender, destroyingInput, seconds, seconds);
}
-
+
@Command(hook = "damnspamDouble")
- public void damnspam(CommandSender sender, double secondsOff, double secondsOn)
- {
+ public void damnspam(CommandSender sender, double secondsOff, double secondsOn) {
boolean destroyingInput = false;
+
secondsOn = (double) Math.round(secondsOn * 100) / 100;
secondsOff = (double) Math.round(secondsOff * 100) / 100;
- if (secondsOn == 0 && secondsOff == 0)
- {
+
+ if (secondsOn == 0 && secondsOff == 0) {
destroyingInput = true;
- }
- else if (!(isAcceptableTimeout(secondsOn) && isAcceptableTimeout(secondsOff)))
- {
+ } else if (!(isAcceptableTimeout(secondsOn) && isAcceptableTimeout(secondsOff))) {
getLogger().message(sender, true, "The timeout must be -1 or within 0 and " + maxTimeout);
return;
}
+
getLogger().message(sender, "Please click the input you would like to set.");
setPlayer((Player) sender, destroyingInput, secondsOff, secondsOn);
}
-
- public void setPlayer(Player player, boolean destroying, double timeoutOff, double timeoutOn)
- {
+
+ public void setPlayer(Player player, boolean destroying, double timeoutOff, double timeoutOn) {
SpamInput input = null;
- if (!destroying)
- {
+
+ if (!destroying) {
input = new SpamInput(player.getUniqueId().toString(), timeoutOff, timeoutOn, 0);
}
+
players.put(player, input);
}
-
- public boolean attemptInputRegister(Player player, Block block, Cancellable event)
- {
- if (players.containsKey(player))
- {
- if (!acceptedInputs.contains(block.getType()))
- {
+
+ public boolean attemptInputRegister(Player player, Block block, Cancellable event) {
+ if (players.containsKey(player)) {
+ if (!acceptedInputs.contains(block.getType())) {
getLogger().message(player, true, "That block is not an acceptable input!");
return true;
}
+
String typeStr = block.getType().toString().toLowerCase().replace("_", " ");
String locationStr = locationString(block.getLocation());
+
changingInput = true;
boolean buildCheck = canBuild(player, block);
changingInput = false;
- if (!buildCheck)
- {
- getLogger().message(player, true,
- "Something went wrong trying to change the timeout on this " + typeStr + "!");
+
+ if (!buildCheck) {
+ getLogger().message(player, true, "Something went wrong trying to change the timeout on this " + typeStr + "!");
event.setCancelled(true);
return true;
}
+
SpamInput input = players.get(player);
- if (input == null)
- {
- if (!inputs.containsKey(locationStr))
- {
- getLogger().message(player, true,
- "Something went wrong trying to change the timeout on this " + typeStr + "!");
+
+ if (input == null) {
+ if (!inputs.containsKey(locationStr)) {
+ getLogger().message(player, true, "Something went wrong trying to change the timeout on this " + typeStr + "!");
event.setCancelled(true);
return true;
}
+
inputs.remove(locationStr);
getLogger().message(player, "Successfully removed the timeout for this " + typeStr);
- }
- else
- {
+ } else {
inputs.put(locationStr, players.get(player));
getLogger().message(player, "Successfully set a timeout for this " + typeStr);
}
+
event.setCancelled(true);
players.remove(player);
saveInputs();
+
return true;
}
return false;
}
-
- public void checkBlockBreak(BlockBreakEvent event, Block block)
- {
- if (!acceptedInputs.contains(block.getType()))
- return;
+
+ public void checkBlockBreak(BlockBreakEvent event, Block block) {
+ if (!acceptedInputs.contains(block.getType())) return;
String posStr = locationString(block.getLocation());
- if (!inputs.containsKey(posStr))
- return;
+ if (!inputs.containsKey(posStr)) return;
+
SpamInput input = inputs.get(posStr);
Player sender = event.getPlayer();
+
String typeStr = block.getType().toString().toLowerCase().replace("_", " ");
- String inputStr = (block.getLocation().equals(event.getBlock()) ? "this " + typeStr
- : "the " + typeStr + " attached to that block");
- if (!sender.isSneaking())
- {
+ String inputStr = (block.getLocation().equals(event.getBlock()) ? "this " + typeStr : "the " + typeStr + " attached to that block");
+
+ if (!sender.isSneaking()) {
getLogger().message(sender, true, "You cannot destroy " + inputStr);
getLogger().message(sender, true, "Sneak and break or set the timeout to 0 if you want to remove it.");
+
event.setCancelled(true);
return;
}
- if (sender.hasPermission("damnspam.admin") || sender.getUniqueId().toString().equals(input.player))
- {
+
+ if (sender.hasPermission("damnspam.admin") || sender.getUniqueId().toString().equals(input.player)) {
inputs.remove(posStr);
saveInputs();
getLogger().message(sender, "Succesfully removed " + inputStr);
- }
- else
- {
+ } else {
getLogger().message(sender, true, "You are not allowed to remove " + inputStr);
event.setCancelled(true);
}
}
-
+
@SuppressWarnings("deprecation")
- public List<Block> getAttachedBlocks(Block block)
- {
+ public List<Block> getAttachedBlocks(Block block) {
List<Block> blocks = new ArrayList<Block>();
- BlockFace[] directions = {BlockFace.DOWN, BlockFace.UP, BlockFace.NORTH, BlockFace.SOUTH, BlockFace.WEST,
- BlockFace.EAST};
- for (int i = 0; i < directions.length; i++)
- {
- Block side = block.getRelative(directions[i]);
+
+ for (int i = 0; i < DIRECTIONS.length; i++) {
+ Block side = block.getRelative(DIRECTIONS[i]);
int[][] dvalues = attachedBlocks.get(side.getType());
- if (dvalues != null)
- {
+
+ if (dvalues != null) {
boolean onSide = false;
- for (int val : dvalues[i])
- {
- if (side.getData() == (byte) val)
- {
+
+ for (int val : dvalues[i]) {
+ if (side.getData() == (byte) val) {
onSide = true;
break;
}
}
- if (onSide)
- blocks.add(side);
+
+ if (onSide) blocks.add(side);
}
}
+
return blocks;
}
-
+
@EventHandler(priority = EventPriority.NORMAL)
- public void onBreak(BlockBreakEvent event)
- {
- if (changingInput || event.isCancelled())
- return;
+ public void onBreak(BlockBreakEvent event) {
+ if (changingInput || event.isCancelled()) return;
+
boolean register = attemptInputRegister(event.getPlayer(), event.getBlock(), event);
- if (!register)
- {
+
+ if (!register) {
Block block = event.getBlock();
checkBlockBreak(event, block);
- for (Block affected : getAttachedBlocks(block))
- {
+
+ for (Block affected : getAttachedBlocks(block)) {
checkBlockBreak(event, affected);
}
}
}
-
+
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.HIGHEST)
- public void onInteract(PlayerInteractEvent event)
- {
- if (event.getClickedBlock() == null)
- return;
+ public void onInteract(PlayerInteractEvent event) {
+ if (event.getClickedBlock() == null) return;
boolean register = attemptInputRegister(event.getPlayer(), event.getClickedBlock(), event);
- if (!register && event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && !event.isCancelled())
- {
+
+ if (!register && event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && !event.isCancelled()) {
Player sender = event.getPlayer();
Block block = event.getClickedBlock();
String posStr = locationString(block.getLocation());
SpamInput data = inputs.get(posStr);
- if (data != null)
- {
+
+ if (data != null) {
String btype = block.getType().toString().toLowerCase().replace("_", " ");
double checktime = 0;
- if (btype.equals("lever") && block.getData() < 8)
- checktime = data.timeoutOff;
- else
- checktime = data.timeoutOn;
- double timeLeft = (data.lastTime + checktime)
- - ((double) Math.round((double) System.currentTimeMillis() / 10) / 100);
+
+ if (btype.equals("lever") && block.getData() < 8) checktime = data.timeoutOff;
+ else checktime = data.timeoutOn;
+
+ double timeLeft = (data.lastTime + checktime) - ((double) Math.round((double) System.currentTimeMillis() / 10) / 100);
timeLeft = (double) Math.round(timeLeft * 100) / 100;
- if (checktime == -1)
- {
+
+ if (checktime == -1) {
event.setCancelled(true);
getLogger().message(sender, "This " + btype + " is locked permanently by /damnspam.");
- }
- else if (timeLeft > 0)
- {
+ } else if (timeLeft > 0) {
event.setCancelled(true);
- getLogger().message(sender, "This " + btype + " has a damnspam timeout of " + checktime + ", with "
- + timeLeft + " left.");
- }
- else
- {
+ getLogger().message(sender, "This " + btype + " has a damnspam timeout of " + checktime + ", with " + timeLeft + " left.");
+ } else {
data.lastTime = (double) Math.round((double) System.currentTimeMillis() / 10) / 100;
}
+
inputs.put(posStr, data);
}
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/com/redstoner/modules/damnspam/SpamInput.java b/src/main/java/com/redstoner/modules/damnspam/SpamInput.java
index 9735dd9..59a7017 100644
--- a/src/main/java/com/redstoner/modules/damnspam/SpamInput.java
+++ b/src/main/java/com/redstoner/modules/damnspam/SpamInput.java
@@ -1,17 +1,17 @@
package com.redstoner.modules.damnspam;
public class SpamInput {
-
- protected String player;
- protected double timeoutOn;
- protected double timeoutOff;
- protected double lastTime;
-
+
+ protected String player;
+ protected double timeoutOn;
+ protected double timeoutOff;
+ protected double lastTime;
+
protected SpamInput(String player, double timeoutOff, double timeoutOn, double lastTime) {
this.player = player;
this.timeoutOff = timeoutOff;
this.timeoutOn = timeoutOn;
this.lastTime = lastTime;
}
-
+
}