diff --git a/src/com/redstoner/modules/message/Message.cmd b/src/com/redstoner/modules/message/Message.cmd index a36918b..382e52e 100644 --- a/src/com/redstoner/modules/message/Message.cmd +++ b/src/com/redstoner/modules/message/Message.cmd @@ -27,4 +27,17 @@ command reply { help Sends a direct message to the last person you talked to.; perm utils.message; } +} + +command pmtoggle { + [empty] { + help Turns off your toggle.; + type player; + run pmtoggle_off; + } + [string:player] { + help Turns on your pmtoggle and locks onto .; + type player; + run pmtoggle player; + } } \ No newline at end of file diff --git a/src/com/redstoner/modules/message/Message.java b/src/com/redstoner/modules/message/Message.java index f318195..ee9da0e 100644 --- a/src/com/redstoner/modules/message/Message.java +++ b/src/com/redstoner/modules/message/Message.java @@ -1,10 +1,15 @@ package com.redstoner.modules.message; import java.util.HashMap; +import java.util.Map.Entry; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerQuitEvent; import com.nemez.cmdmgr.Command; import com.nemez.cmdmgr.Command.AsyncType; @@ -20,10 +25,11 @@ import com.redstoner.modules.ignore.Ignore; import com.redstoner.modules.socialspy.Socialspy; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 2, compatible = 4) +@Version(major = 4, minor = 0, revision = 3, compatible = 4) public class Message implements Module { HashMap replyTargets = new HashMap<>(); + HashMap toggles = new HashMap(); @Command(hook = "message", async = AsyncType.ALWAYS) public boolean message(CommandSender sender, String target, String message) @@ -110,4 +116,56 @@ public class Message implements Module replyTargets.put(target, sender); return true; } + + @Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS) + public boolean pmtoggle_off(CommandSender sender) + { + Player player = (Player) sender; + if (toggles.remove(player) != null) + getLogger().message(player, "Your pmtoggle was removed!"); + else + getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle to enabled it."); + return true; + } + + @Command(hook = "pmtoggle", async = AsyncType.ALWAYS) + public boolean pmtoggle(CommandSender sender, String player) + { + Player p = Bukkit.getPlayer(player); + if (p == null && !player.equals("CONSOLE")) + { + getLogger().message(sender, "§cThat player couldn't be found!"); + return true; + } + toggles.put((Player) sender, player); + getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7."); + return true; + } + + @EventHandler + public void onPlayerChat(AsyncPlayerChatEvent event) + { + Player player = event.getPlayer(); + if (toggles.containsKey(player)) + { + Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage()); + event.setCancelled(true); + } + } + + @SuppressWarnings("unlikely-arg-type") + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) + { + toggles.remove(event.getPlayer()); + String player = event.getPlayer().getName(); + if (toggles.containsValue(player)) + for (Entry entry : toggles.entrySet()) + if (entry.getValue().equals(player)) + { + toggles.remove(player); + getLogger().message(entry.getKey(), + "We removed your pmtoggle for &6" + player + "&7, as they left the game."); + } + } } diff --git a/src/com/redstoner/modules/pmtoggle/Pmtoggle.java b/src/com/redstoner/modules/pmtoggle/Pmtoggle.java deleted file mode 100644 index 3657288..0000000 --- a/src/com/redstoner/modules/pmtoggle/Pmtoggle.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.redstoner.modules.pmtoggle; - -import java.util.HashMap; -import java.util.Map.Entry; - -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerQuitEvent; - -import com.nemez.cmdmgr.Command; -import com.nemez.cmdmgr.Command.AsyncType; -import com.redstoner.annotations.AutoRegisterListener; -import com.redstoner.annotations.Commands; -import com.redstoner.annotations.Version; -import com.redstoner.misc.CommandHolderType; -import com.redstoner.modules.Module; - -@Commands(CommandHolderType.String) -@AutoRegisterListener -@Version(major = 4, minor = 0, revision = 0, compatible = 4) -public class Pmtoggle implements Module, Listener -{ - HashMap toggles = new HashMap(); - - @Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS) - public boolean pmtoggle_off(CommandSender sender) - { - Player player = (Player) sender; - if (toggles.remove(player) != null) - getLogger().message(player, "Your pmtoggle was removed!"); - else - getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle to enabled it."); - return true; - } - - @Command(hook = "pmtoggle", async = AsyncType.ALWAYS) - public boolean pmtoggle(CommandSender sender, String player) - { - Player p = Bukkit.getPlayer(player); - if (p == null && !player.equals("CONSOLE")) - { - getLogger().message(sender, "§cThat player couldn't be found!"); - return true; - } - toggles.put((Player) sender, player); - getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7."); - return true; - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - Player player = event.getPlayer(); - if (toggles.containsKey(player)) - { - Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage()); - event.setCancelled(true); - } - } - - @EventHandler - public void onPlayerQuit(PlayerQuitEvent event) - { - toggles.remove(event.getPlayer()); - String player = event.getPlayer().getName(); - if (toggles.containsValue(player)) - { - for (Entry entry : toggles.entrySet()) - { - if (entry.getValue().equals(player)) - { - toggles.remove(player); - getLogger().message(entry.getKey(), - "We removed your pmtoggle for &6" + player + "&7, as they left the game."); - } - } - } - } - - // @noformat - @Override - public String getCommandString() - { - return "command pmtoggle {\n" + - " [empty] {\n" + - " help Turns off your toggle.;\n" + - " type player;\n" + - " run pmtoggle_off;\n" + - " }\n" + - " [string:player] {\n" + - " help Turns on your pmtoggle and locks onto .;\n" + - " type player;\n" + - " run pmtoggle player;\n" + - " }\n" + - "}"; - } - // @format -}