232 lines
13 KiB
Java
232 lines
13 KiB
Java
package me.ryandw11.ultrachat.commands;
|
|
|
|
import com.sun.istack.internal.NotNull;
|
|
import me.ryandw11.ultrachat.UltraChat;
|
|
import me.ryandw11.ultrachat.api.Lang;
|
|
import me.ryandw11.ultrachat.api.UltraChatAPI;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.util.Objects;
|
|
|
|
/**
|
|
* @author Ryandw11
|
|
*/
|
|
public class NewChatCommand implements CommandExecutor {
|
|
|
|
|
|
private UltraChat plugin;
|
|
|
|
public NewChatCommand(UltraChat plugin) {
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
@Override
|
|
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String s, @NotNull String[] args) {
|
|
// This is not a switch statement since I want to check the argument length along with the sub command name.
|
|
if (args.length == 0) {
|
|
sender.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}==============");
|
|
sender.sendMessage(ChatColor.BLUE + "Plugin developed by:" + ChatColor.GREEN + " Ryandw11");
|
|
sender.sendMessage(ChatColor.BLUE + "Version: " + ChatColor.GREEN + String.format("%s", plugin.getDescription().getVersion()));
|
|
sender.sendMessage(ChatColor.BLUE + "Plugin wiki:" + ChatColor.GREEN + " https://github.com/ryandw11/UltraChat/wiki");
|
|
sender.sendMessage(ChatColor.BLUE + "Do " + ChatColor.GREEN + " /chat help " + ChatColor.BLUE + "for the list of commands!");
|
|
sender.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}==============");
|
|
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("stop")) {
|
|
if (sender.hasPermission("ultrachat.stopchat")) {
|
|
|
|
if (plugin.isChatStopped) {
|
|
plugin.isChatStopped = false;
|
|
sender.sendMessage(Lang.CHAT_UNSTOP_PERSONAL.toString());
|
|
Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_OFF.toString().replace("%p", sender instanceof Player ? ((Player) sender).getDisplayName() :
|
|
"CONSOLE"));
|
|
} else {
|
|
plugin.isChatStopped = true;
|
|
sender.sendMessage(Lang.CHAT_STOP_PERSONAL.toString());
|
|
Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_ON.toString().replace("%p", sender instanceof Player ? ((Player) sender).getDisplayName() :
|
|
"CONSOLE"));
|
|
}
|
|
|
|
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
|
|
|
|
} else if (args.length > 1 && args[0].equalsIgnoreCase("broadcast")) {
|
|
if (sender.hasPermission("ultrachat.broadcast")) {
|
|
StringBuilder message = new StringBuilder();
|
|
for (int i = 1; i < args.length; i++) {
|
|
message.append(" ").append(args[i]);
|
|
}
|
|
Bukkit.getServer().broadcastMessage(Lang.BROADCAST_PREFIX.toString() + ChatColor.translateAlternateColorCodes('&', message.toString()));
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("broadcast")) {
|
|
if (sender.hasPermission("ultrachat.broadcast")) {
|
|
sender.sendMessage(ChatColor.RED + "Invalid Usage: /chat broadcast (broadcast)");
|
|
return true;
|
|
}
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("clear")) {
|
|
if (sender.hasPermission("ultrachat.clearchat")) {
|
|
for (int i = 0; i < 100; i++) {
|
|
for (Player pl : Bukkit.getOnlinePlayers()) {
|
|
pl.sendMessage(" ");
|
|
}
|
|
}
|
|
Bukkit.getServer().broadcastMessage(Lang.CHAT_CLEAR.toString().replace("%p", sender.getName()));
|
|
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("sjoin")) {
|
|
if (!(sender instanceof Player)) {
|
|
sender.sendMessage(ChatColor.RED + "This command is for players only!");
|
|
return true;
|
|
}
|
|
Player p = (Player) sender;
|
|
if (sender.hasPermission("ultrachat.sjoin")) {
|
|
if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) {
|
|
sender.sendMessage(Lang.SJOIN_SHOWN.toString());
|
|
plugin.data.set(p.getUniqueId().toString() + ".sjoin", false);
|
|
plugin.saveFile();
|
|
} else {
|
|
plugin.data.set(p.getUniqueId().toString() + ".sjoin", true);
|
|
plugin.saveFile();
|
|
sender.sendMessage(Lang.SJOIN_HIDE.toString());
|
|
}
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
|
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("sjoin")) {
|
|
if (sender.hasPermission("ultrachat.sjoin.others")) {
|
|
Player pl = Bukkit.getServer().getPlayer(args[1]);
|
|
if (pl == null) {
|
|
sender.sendMessage(ChatColor.RED + "Player can not be null!");
|
|
return true;
|
|
}
|
|
if (plugin.data.getBoolean(pl.getUniqueId().toString() + ".sjoin")) {
|
|
sender.sendMessage(String.format(Lang.SJOIN_OTHER_SHOW.toString(), pl.getName()));
|
|
plugin.data.set(pl.getUniqueId().toString() + ".sjoin", false);
|
|
plugin.saveFile();
|
|
} else {
|
|
plugin.data.set(pl.getUniqueId().toString() + ".sjoin", true);
|
|
plugin.saveFile();
|
|
sender.sendMessage(String.format(Lang.SJOIN_OTHER_HIDE.toString(), pl.getName()));
|
|
}
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
|
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("join")) {
|
|
if (sender.hasPermission("ultrachat.fakejoin")) {
|
|
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Join_Message")).replace("%player%", args[1])));
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("leave")) {
|
|
if (sender.hasPermission("ultrachat.fakeleave")) {
|
|
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Leave_Message")).replace("%player%", args[1])));
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("help")) {
|
|
if (!sender.hasPermission("ultrachat.help")) {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
return true;
|
|
}
|
|
sender.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "]=-------------------");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat help" + ChatColor.BLUE + " The help command.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat stop" + ChatColor.BLUE + " Stop the chat.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat broadcast (message)" + ChatColor.BLUE + " Send a message to every player.");
|
|
sender.sendMessage(ChatColor.GREEN + "/sc (message)" + ChatColor.BLUE + " Talk in staff chat.");
|
|
sender.sendMessage(ChatColor.GREEN + "/sctoggle" + ChatColor.BLUE + " Toggle staff chat.");
|
|
sender.sendMessage(ChatColor.GREEN + "/spy" + ChatColor.BLUE + " Enable or disable command spy.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat clear" + ChatColor.BLUE + " Clear the chat.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat sjoin" + ChatColor.BLUE + " Silently join and leave the server.");
|
|
sender.sendMessage(ChatColor.BLUE + "Do" + ChatColor.GREEN + " /chat help 2" + ChatColor.BLUE + " for more help pages!");
|
|
sender.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "1/2" + ChatColor.BLUE + ".");
|
|
sender.sendMessage(ChatColor.BLUE + "---------------------------------------------------");
|
|
|
|
} else if (args.length == 2 && args[0].equalsIgnoreCase("help")) {
|
|
if (sender.hasPermission("ultrachat.help")) {
|
|
if (args[1].equals("2")) {
|
|
sender.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "]=-------------------");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat leave (player)" + ChatColor.BLUE + " Send a fake leave message.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat join (player) " + ChatColor.BLUE + " Send a fake join message.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat color" + ChatColor.BLUE + " Change your chat color.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat raw {Message}" + ChatColor.BLUE + " Send a message in the chat without a prefix.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat reload" + ChatColor.BLUE + " Reload the config file.");
|
|
sender.sendMessage(ChatColor.GREEN + "/chat hooks" + ChatColor.BLUE + " Get the current plugin hooks!");
|
|
sender.sendMessage(ChatColor.GREEN + "/channels" + ChatColor.BLUE + " The channel command.");
|
|
sender.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "2/2" + ChatColor.BLUE + ".");
|
|
sender.sendMessage(ChatColor.BLUE + "---------------------------------------------------");
|
|
}
|
|
if (!(args[1].equals("1") || args[1].equals("2"))) {
|
|
sender.sendMessage(Lang.HELP_PAGE_ERROR.toString());
|
|
}
|
|
} else {
|
|
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("No_Permission"))));
|
|
}
|
|
} else if (args.length > 1 && args[0].equalsIgnoreCase("raw")) {
|
|
if (sender.hasPermission("ultrachat.raw")) {
|
|
StringBuilder message = new StringBuilder();
|
|
for (int i = 1; i < args.length; i++) {
|
|
if (i == 1) {
|
|
message.append(args[i]);
|
|
} else {
|
|
message.append(" ").append(args[i]);
|
|
}
|
|
}
|
|
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', ChatColor.translateAlternateColorCodes('&', message.toString())));
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("reload")) {
|
|
if (sender.hasPermission("ultrachat.reload")) {
|
|
plugin.reloadConfig();
|
|
plugin.loadChannel();
|
|
sender.sendMessage(Lang.CONFIG_RELOAD.toString());
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("color")) {
|
|
if (!(sender instanceof Player)) {
|
|
sender.sendMessage(ChatColor.RED + "This command is for players only!");
|
|
return true;
|
|
}
|
|
if (sender.hasPermission("ultrachat.color"))
|
|
plugin.getColorGUI().openGUI((Player) sender, 1);
|
|
else
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
} else if (args.length == 1 && args[0].equalsIgnoreCase("hooks")) {
|
|
if (sender.hasPermission("ultrachat.hooks")) {
|
|
UltraChatAPI uapi = new UltraChatAPI();
|
|
sender.sendMessage(ChatColor.BLUE + "Ultra Chat Hooks:");
|
|
if (uapi.getActiveHooks() == null) {
|
|
sender.sendMessage(ChatColor.GREEN + "No hooks are currently active!");
|
|
} else {
|
|
for (String st : uapi.getActiveHooks()) {
|
|
sender.sendMessage(ChatColor.GREEN + " - " + st);
|
|
}
|
|
}
|
|
} else {
|
|
sender.sendMessage(Lang.NO_PERM.toString());
|
|
}
|
|
} else {
|
|
sender.sendMessage(Lang.CHAT_CMD_NOT_VALID.toString());
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
}
|