Archived
0
This repository has been archived on 2024-08-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Modules/src/com/redstoner/modules/message/Message.java

91 lines
2.9 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.nemez.cmdmgr.CommandManager;
import com.redstoner.annotations.Version;
import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.BroadcastFilter;
import com.redstoner.misc.Main;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import com.redstoner.modules.socialspy.Socialspy;
@Version(major = 3, minor = 3, revision = 0, compatible = 3)
public class Message implements Module
{
HashMap<CommandSender, CommandSender> replyTargets = new HashMap<CommandSender, CommandSender>();
@Override
public void postEnable()
{
CommandManager.registerCommand(getClass().getResourceAsStream("Message.cmd"), this, Main.plugin);
}
@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)
{
Utils.sendErrorMessage(sender, null, "That player couldn't be found!");
return true;
}
else
{
message = Utils.colorify(message, sender);
if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.getSocialspy().spyBroadcast(sender, p, message, "/m", new BroadcastFilter()
{
@Override
public boolean sendTo(CommandSender recipient)
{
return !(recipient.equals(sender) || recipient.equals(target));
}
});
Utils.sendMessage(sender, "&6[&cme &6-> " + Utils.getName(p) + "&6] ", "§f" + message, '&');
Utils.sendMessage(p, "&6[" + Utils.getName(sender) + " &6-> &cme&6] ", "§f" + message, '&');
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()))
{
Utils.sendErrorMessage(sender, null, "You don't have anyone to reply to!");
return true;
}
else
{
message = Utils.colorify(message, sender);
if (ModuleLoader.getModule("Socialspy") != null)
Socialspy.getSocialspy().spyBroadcast(sender, target, message, "/m", new BroadcastFilter()
{
@Override
public boolean sendTo(CommandSender recipient)
{
return !(recipient.equals(sender) || recipient.equals(target));
}
});
Utils.sendMessage(sender, "&6[&cme &6-> " + Utils.getName(target) + "&6] ", "§f" + message, '&');
Utils.sendMessage(target, "&6[" + Utils.getName(sender) + " &6-> &cme&6] ", "§f" + message, '&');
}
return true;
}
}