Archived
0

Merged Pmtoggle into Message.

This commit is contained in:
minenash
2018-01-21 17:20:16 -05:00
parent be06fe1d96
commit 1b2a5b1407
3 changed files with 72 additions and 103 deletions

View File

@@ -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 <player>.;
type player;
run pmtoggle player;
}
}

View File

@@ -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<CommandSender, CommandSender> replyTargets = new HashMap<>();
HashMap<Player, String> toggles = new HashMap<Player, String>();
@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 <player> 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<Player, String> 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.");
}
}
}

View File

@@ -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<Player, String> toggles = new HashMap<Player, String>();
@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 <player> 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<Player, String> 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 <player>.;\n" +
" type player;\n" +
" run pmtoggle player;\n" +
" }\n" +
"}";
}
// @format
}