103 lines
3.2 KiB
Java
103 lines
3.2 KiB
Java
package com.redstoner.modules.message;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.OfflinePlayer;
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import com.nemez.cmdmgr.Command;
|
|
import com.nemez.cmdmgr.Command.AsyncType;
|
|
import com.redstoner.annotations.Commands;
|
|
import com.redstoner.annotations.Version;
|
|
import com.redstoner.coremods.moduleLoader.ModuleLoader;
|
|
import com.redstoner.misc.BroadcastFilter;
|
|
import com.redstoner.misc.CommandHolderType;
|
|
import com.redstoner.misc.Utils;
|
|
import com.redstoner.modules.Module;
|
|
import com.redstoner.modules.socialspy.Socialspy;
|
|
|
|
import net.nemez.chatapi.ChatAPI;
|
|
|
|
@Commands(CommandHolderType.File)
|
|
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
|
|
public class Message implements Module
|
|
{
|
|
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<CommandSender, CommandSender>();
|
|
|
|
@Command(hook = "message", async = AsyncType.ALWAYS)
|
|
public boolean message(CommandSender sender, String target, String message)
|
|
{
|
|
CommandSender p;
|
|
if (target.equalsIgnoreCase("console"))
|
|
p = Bukkit.getConsoleSender();
|
|
else
|
|
p = Bukkit.getPlayer(target);
|
|
if (p == null)
|
|
{
|
|
getLogger().message(sender, true, "That player couldn't be found!");
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
message = ChatAPI.colorify(sender, message);
|
|
if (ModuleLoader.getModule("Socialspy") != null)
|
|
Socialspy.spyBroadcast(sender, p, message, "/m", new BroadcastFilter()
|
|
{
|
|
@Override
|
|
public boolean sendTo(CommandSender recipient)
|
|
{
|
|
return !(recipient.equals(sender) || recipient.equals(p));
|
|
}
|
|
});
|
|
|
|
net.nemez.chatapi.click.Message m = new net.nemez.chatapi.click.Message(sender, null);
|
|
m.appendText("&6[&cme &6-> " + Utils.getName(p) + "&6] " + "§f" + message);
|
|
m.send();
|
|
|
|
net.nemez.chatapi.click.Message m2 = new net.nemez.chatapi.click.Message(p, null);
|
|
m2.appendText("&6[" + Utils.getName(sender) + " &6-> &cme&6] " + "§f" + message);
|
|
m2.send();
|
|
|
|
replyTargets.put(sender, p);
|
|
replyTargets.put(p, sender);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Command(hook = "reply", async = AsyncType.ALWAYS)
|
|
public boolean reply(CommandSender sender, String message)
|
|
{
|
|
CommandSender target = replyTargets.get(sender);
|
|
if (target == null || ((target instanceof OfflinePlayer) && !((OfflinePlayer) target).isOnline()))
|
|
{
|
|
getLogger().message(sender, true, "You don't have anyone to reply to!");
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
message = ChatAPI.colorify(sender, message);
|
|
if (ModuleLoader.getModule("Socialspy") != null)
|
|
Socialspy.spyBroadcast(sender, target, message, "/r", new BroadcastFilter()
|
|
{
|
|
@Override
|
|
public boolean sendTo(CommandSender recipient)
|
|
{
|
|
return !(recipient.equals(sender) || recipient.equals(target));
|
|
}
|
|
});
|
|
|
|
net.nemez.chatapi.click.Message m = new net.nemez.chatapi.click.Message(sender, null);
|
|
m.appendText("&6[&cme &6-> " + Utils.getName(target) + "&6] " + "§f" + message);
|
|
m.send();
|
|
|
|
net.nemez.chatapi.click.Message m2 = new net.nemez.chatapi.click.Message(target, null);
|
|
m2.appendText("&6[" + Utils.getName(sender) + " &6-> &cme&6] " + "§f" + message);
|
|
m2.send();
|
|
}
|
|
replyTargets.put(sender, target);
|
|
replyTargets.put(target, sender);
|
|
return true;
|
|
}
|
|
}
|