UltraChat/src/me/ryandw11/ultrachat/commands/ChatCommand.java

284 lines
11 KiB
Java

package me.ryandw11.ultrachat.commands;
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;
/**
*
* @author Ryandw11
*
*/
public class ChatCommand implements CommandExecutor {
private UltraChat plugin;
public ChatCommand(){
plugin = UltraChat.plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) {
if(!(sender instanceof Player )){
plugin.getLogger().info(ChatColor.RED + "This command is for players only!");
return true;
}
Player p = (Player) sender;
if(args.length == 0){
p.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}==============");
p.sendMessage(ChatColor.BLUE + "Plugin developed by:" + ChatColor.GREEN + " Ryandw11");
p.sendMessage(ChatColor.BLUE + "Version: " + ChatColor.GREEN + String.format("%s", plugin.getDescription().getVersion()));
p.sendMessage(ChatColor.BLUE + "Plugin wiki:" + ChatColor.GREEN + " https://github.com/ryandw11/UltraChat/wiki");
p.sendMessage(ChatColor.BLUE + "Do " + ChatColor.GREEN + " /chat help " + ChatColor.BLUE + "for the list of commands!");
p.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}==============");
}
//Chat Stop Command
else if(args.length == 1 && args[0].equalsIgnoreCase("stop")){
if(p.hasPermission("ultrachat.stopchat")){
if(plugin.chatStop == true){
plugin.chatStop = false;
p.sendMessage(Lang.CHAT_UNSTOP_PERSONAL.toString());
Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_OFF.toString().replace("%p", p.getDisplayName()));
}
else if(plugin.chatStop == false){
plugin.chatStop = true;
p.sendMessage(Lang.CHAT_STOP_PERSONAL.toString());
Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_ON.toString().replace("%p", p.getDisplayName()));
}
else{
p.sendMessage("An error has occured!");
}
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length >= 1 && args[0].equalsIgnoreCase("broadcast")){
if(p.hasPermission("ultrachat.broadcast")){
String Message = "";
for (int i = 1; i < args.length; i++){
Message = Message + " " + args[i];
}
Bukkit.getServer().broadcastMessage(Lang.BROADCAST_PREFIX.toString() + ChatColor.translateAlternateColorCodes('&', Message));
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length == 1 && args[0].equalsIgnoreCase("broadcast")){
if(p.hasPermission("ultrachat.broadcast")){
p.sendMessage(ChatColor.RED + "Invalid Usage: /chat broadcast (broadcast)");
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}//end of broadcast======================================================================================
//
//================================================================================================================
else if(args.length == 1 && args[0].equalsIgnoreCase("clear")){
if(p.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", p.getName()));
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
//========================================================
//==========================================================
else if(args.length == 1 && args[0].equalsIgnoreCase("sjoin")){
if(p.hasPermission("ultrachat.sjoin")){
if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){
p.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();
p.sendMessage(Lang.SJOIN_HIDE.toString());
}
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length == 2 && args[0].equalsIgnoreCase("sjoin")){
if(p.hasPermission("ultrachat.sjoin.others")){
Player pl = (Player) Bukkit.getServer().getPlayer(args[1]);
if(pl == null){p.sendMessage(ChatColor.RED + "Player can not be null!"); return true;}
if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){
p.sendMessage(String.format(Lang.SJOIN_OTHER_SHOW.toString(), pl.getName()));
plugin.data.set(p.getUniqueId().toString() + ".sjoin", false);
plugin.saveFile();
}
else{
plugin.data.set(p.getUniqueId().toString() + ".sjoin", true);
plugin.saveFile();
p.sendMessage(String.format(Lang.SJOIN_OTHER_HIDE.toString(), pl.getName()));
}
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
//======================================================================================================
// Break
//======================================================================================================
else if(args.length == 2 && args[0].equalsIgnoreCase("join")){
if(p.hasPermission("ultrachat.fakejoin")){
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Join_Message").replace("%player%", args[1])));
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}//end of fake join
else if(args.length == 2 && args[0].equalsIgnoreCase("leave")){
if(p.hasPermission("ultrachat.fakeleave")){
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", args[1])));
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}//end of fake leave
//====================================================================
//================================================================
else if(args.length == 1 && args[0].equalsIgnoreCase("help")){
if(!p.hasPermission("ultrachat.help"))
p.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Utlra Chat" + ChatColor.BLUE + "]=-------------------");
p.sendMessage(ChatColor.GREEN + "/chat help" + ChatColor.BLUE + " The help command.");
p.sendMessage(ChatColor.GREEN + "/chat stop" + ChatColor.BLUE + " Stop the chat.");
p.sendMessage(ChatColor.GREEN + "/chat broadcast (message)" + ChatColor.BLUE + " Send a message to every player.");
p.sendMessage(ChatColor.GREEN + "/sc (message)" + ChatColor.BLUE + " Talk in staff chat.");
p.sendMessage(ChatColor.GREEN + "/sctoggle" + ChatColor.BLUE + " Toggle staff chat.");
p.sendMessage(ChatColor.GREEN + "/spy" + ChatColor.BLUE + " Enable or disable command spy.");
p.sendMessage(ChatColor.GREEN + "/chat clear" + ChatColor.BLUE + " Clear the chat.");
p.sendMessage(ChatColor.GREEN + "/chat sjoin" + ChatColor.BLUE + " Silently join and leave the server.");
p.sendMessage(ChatColor.GREEN + "/chat leave (player)" + ChatColor.BLUE + " Send a fake leave message.");
p.sendMessage(ChatColor.GREEN + "/chat join (player) " + ChatColor.BLUE + " Send a fake join message.");
p.sendMessage(ChatColor.BLUE + "Do" + ChatColor.GREEN + " /chat help 2" + ChatColor.BLUE + " for more help pages!");
p.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "1/2" + ChatColor.BLUE + ".");
p.sendMessage(ChatColor.BLUE + "---------------------------------------------------");
}//end of help
else if(args.length == 2 && args[0].equalsIgnoreCase("help")){
if(p.hasPermission("ultrachat.help")){
if(args[1].equals("2")){
p.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Utlra Chat" + ChatColor.BLUE + "]=-------------------");
p.sendMessage(ChatColor.GREEN + "/chat color" + ChatColor.BLUE + " Change your chat color.");
p.sendMessage(ChatColor.GREEN + "/chat raw {Message}" + ChatColor.BLUE + " Send a message in the chat without a prefix.");
p.sendMessage(ChatColor.GREEN + "/chat reload" + ChatColor.BLUE + " Reload the config file.");
p.sendMessage(ChatColor.GREEN + "/chat hooks" + ChatColor.BLUE + " Get the current plugin hooks!");
p.sendMessage(ChatColor.GREEN + "/channels" + ChatColor.BLUE + " The channel command.");
p.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "2/2" + ChatColor.BLUE + ".");
p.sendMessage(ChatColor.BLUE + "---------------------------------------------------");
}
if(!(args[1].equals("1") || args[1].equals("2"))){
p.sendMessage(Lang.HELP_PAGE_ERROR.toString());
}
}
else{
p.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("No_Permission")));
}
}//end of help page ========
else if(args.length > 1 && args[0].equalsIgnoreCase("raw")){
if(p.hasPermission("ultrachat.raw")){
String Message = "";
for (int i = 1; i < args.length; i++){
if(i == 1){
Message = Message + args[i]; // Fixed bugs
}else{
Message = Message + " " + args[i];
}
}
Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', ChatColor.translateAlternateColorCodes('&', Message)));
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length == 1 && args[0].equalsIgnoreCase("reload")){
if(p.hasPermission("ultrachat.reload")){
plugin.reloadConfig();
plugin.loadChannel();
p.sendMessage(Lang.CONFIG_RELOAD.toString());
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length == 1 && args[0].equalsIgnoreCase("color")){
if(p.hasPermission("ultrachat.color")){
plugin.getColorGUI().openGUI(p.getPlayer(), 1);
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
else if(args.length == 1 && args[0].equalsIgnoreCase("hooks")){
if(p.hasPermission("ultrachat.hooks")){
UltraChatAPI uapi = new UltraChatAPI();
p.sendMessage(ChatColor.BLUE + "Ultra Chat Hooks:");
if(uapi.getActiveHooks() == null){
p.sendMessage(ChatColor.GREEN + "No hooks are currently active!");
}else{
for(String st : uapi.getActiveHooks()){
p.sendMessage(ChatColor.GREEN + " - " + st);
}
}
}
else{
p.sendMessage(Lang.NO_PERM.toString());
}
}
//=========================================----------------------------------------===========================================
else{
p.sendMessage(Lang.CHAT_CMD_NOT_VALID.toString());
}
return false;
}
}