Archived
0

Code reorganization, added formatting options for all outputs

This commit is contained in:
Pepich
2018-01-26 12:31:29 +01:00
parent d4540e50e7
commit 8a118fd2e1
2 changed files with 94 additions and 28 deletions

View File

@@ -34,4 +34,20 @@ command sayn {
run sayn name message;
help A replacement for the default say command to make the format be more consistant.;
}
}
command mute {
[string:player] {
perm utils.chat.admin;
run mute player;
help Mutes a player.;
}
}
command unmute {
[string:player] {
perm utils.chat.admin;
run unmute player;
help Unmutes a player.;
}
}

View File

@@ -1,5 +1,6 @@
package com.redstoner.modules.chat;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -15,72 +16,121 @@ import com.redstoner.coremods.moduleLoader.ModuleLoader;
import com.redstoner.misc.CommandHolderType;
import com.redstoner.misc.Utils;
import com.redstoner.modules.Module;
import com.redstoner.modules.datamanager.DataManager;
import com.redstoner.modules.ignore.Ignore;
import net.nemez.chatapi.ChatAPI;
@Commands(CommandHolderType.File)
@AutoRegisterListener
@Version(major = 4, minor = 0, revision = 0, compatible = 4)
public class Chat implements Module, Listener{
@Version(major = 4, minor = 0, revision = 1, compatible = 4)
public class Chat implements Module, Listener
{
@Override
public void firstLoad()
{
Module.super.firstLoad();
DataManager.setConfig("chat", " %n §7→§r %m");
DataManager.setConfig("me", " §7- %n §7⇦ %m");
DataManager.setConfig("say", " §7[§9%n§7]:§r %m");
DataManager.setConfig("shrug", " %n §7→§r %m ¯\\_(ツ)_/¯");
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerChat(AsyncPlayerChatEvent event)
{
Player player = event.getPlayer();
String msg = event.getMessage();
String message = event.getMessage();
event.setCancelled(true);
if (player.hasPermission("utils.chat"))
Utils.broadcast(" " + Utils.getName(player), " §7→§r " + ChatAPI.colorify(player, msg),
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(player) : null);
else
player.sendMessage("§8[§cServer§8] You don't have permission to chat.");
broadcastFormatted("chat", player, message);
}
@Command(hook = "me")
public boolean me(CommandSender sender, String text)
public boolean me(CommandSender sender, String message)
{
String name = Utils.getName(sender);
text = ChatAPI.colorify(sender, text);
Utils.broadcast(" §7- " + name + " §7⇦ ", text,
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null);
broadcastFormatted("me", sender, message);
return true;
}
@Command(hook = "chat")
public boolean chat(CommandSender sender, String message)
{
String name = Utils.getName(sender);
Utils.broadcast(" " + name, " §7→§r " + ChatAPI.colorify(sender, message),
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null);
broadcastFormatted("chat", sender, message);
return true;
}
@Command(hook = "say")
public boolean say(CommandSender sender, String message)
{
String name = Utils.getName(sender);
Utils.broadcast(" §7[§9" + name.replaceAll("[^0-9a-zA-Z§&\\[\\]]", "") + "§7]: ",
"§r" + ChatAPI.colorify(null, message),
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null);
String name;
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)
{
Utils.broadcast(" §7[§9" + ChatAPI.colorify(sender, name) + "§7]: ", "§r" + ChatAPI.colorify(null, message),
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null);
broadcastFormatted("say", sender, message, name);
return true;
}
@Command(hook = "shrug")
public boolean shrug(CommandSender sender, String message)
{
String name = Utils.getName(sender);
Utils.broadcast(" " + name, " §7→§r " + ChatAPI.colorify(sender, message) + " ¯\\_(ツ)_/¯",
ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null);
broadcastFormatted("shrug", sender, message);
return true;
}
@Command(hook = "mute")
public boolean mute(CommandSender sender, String player)
{
Player p = Bukkit.getPlayer(player);
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)
{
Player p = Bukkit.getPlayer(player);
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;
}
public boolean broadcastFormatted(String format, CommandSender sender, String message)
{
return broadcastFormatted(format, sender, message, Utils.getName(sender));
}
public boolean broadcastFormatted(String format, CommandSender sender, String message, String name)
{
if ((boolean) DataManager.getOrDefault(sender, "muted", false))
{
Utils.noPerm(sender, "You have been muted!");
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, " %n §7→§r %m");
String formatted = raw.replace("%n", name).replace("%m", message);
Utils.broadcast("", formatted, ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null);
return true;
}
}