diff --git a/src/chatcolor.yml b/src/chatcolor.yml index 56d63b6..d917dd8 100644 --- a/src/chatcolor.yml +++ b/src/chatcolor.yml @@ -18,6 +18,7 @@ chat_colors: '&d': 'default' '&e': 'default' '&f': 'default' + '&g': '{#11f014}' ############################################### # Chat Color GUI # @@ -86,4 +87,8 @@ color_gui: 'Black': color: '&0' item: 'BLACK_WOOL' - permission: 'ultrachat.chatcolor.black' \ No newline at end of file + permission: 'ultrachat.chatcolor.black' + 'Pumpkin Orange': + color: '{#f59b14}' + item: 'BLACK_WOOL' + permission: 'ultrachat.chatcolor.pumpkinorange' \ No newline at end of file diff --git a/src/config.yml b/src/config.yml index fa2876f..1410c44 100644 --- a/src/config.yml +++ b/src/config.yml @@ -87,10 +87,6 @@ chat_format: 'normal' #The default color that opped players chat in. Do &r for none. Op_Chat_Color: '&c' -#Console Chat Log: (JSON chat only!) -#With json on the chat no longer prints to the console. This option fixes that issue! Set to true if you want it enabled! -console_log: false - #Variables: %prefix% - Gives you the players prefix. %suffix% - gives you the player suffix! #You can use PlaceHolderAPI here! Check out the placeholders here: https://www.spigotmc.org/wiki/placeholderapi-placeholders/ #You can have unlimited custom chat formats. diff --git a/src/me/ryandw11/ultrachat/UltraChat.java b/src/me/ryandw11/ultrachat/UltraChat.java index 6f4fe7e..48f3077 100644 --- a/src/me/ryandw11/ultrachat/UltraChat.java +++ b/src/me/ryandw11/ultrachat/UltraChat.java @@ -1,13 +1,5 @@ package me.ryandw11.ultrachat; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Objects; -import java.util.UUID; - import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.managers.AddonManager; @@ -15,24 +7,14 @@ import me.ryandw11.ultrachat.chatcolor.ChatColorManager; import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Latest; import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Old; import me.ryandw11.ultrachat.chatcolor.ChatColorUtils; -import me.ryandw11.ultrachat.commands.ChannelCmd; -import me.ryandw11.ultrachat.commands.ChatCommand; -import me.ryandw11.ultrachat.commands.CommandTabCompleter; -import me.ryandw11.ultrachat.commands.Global; -import me.ryandw11.ultrachat.commands.StaffChat; -import me.ryandw11.ultrachat.commands.StaffChatToggle; -import me.ryandw11.ultrachat.commands.World; -import me.ryandw11.ultrachat.commands.SpyCommand; +import me.ryandw11.ultrachat.commands.*; import me.ryandw11.ultrachat.formatting.ChannelJSON; import me.ryandw11.ultrachat.formatting.NormalJSON; import me.ryandw11.ultrachat.formatting.RangeJSON; -import me.ryandw11.ultrachat.gui.*; -import me.ryandw11.ultrachat.listner.ConsoleLogChat; -import me.ryandw11.ultrachat.listner.JoinListner; -import me.ryandw11.ultrachat.listner.NoSwear; -import me.ryandw11.ultrachat.listner.Notify; -import me.ryandw11.ultrachat.listner.Spy; -import me.ryandw11.ultrachat.listner.StopChat; +import me.ryandw11.ultrachat.gui.ColorGUI; +import me.ryandw11.ultrachat.gui.ColorGUI_1_15_R1; +import me.ryandw11.ultrachat.gui.ColorGUI_Latest; +import me.ryandw11.ultrachat.listner.*; import me.ryandw11.ultrachat.pluginhooks.AdvancedBanMute; import me.ryandw11.ultrachat.pluginhooks.EssentialsMute; import me.ryandw11.ultrachat.util.Metrics; @@ -41,7 +23,6 @@ import me.ryandw11.ultrachat.util.papi.PAPIEnabled; import me.ryandw11.ultrachat.util.papi.PlaceHolderAPIHook; import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.permission.Permission; - import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; @@ -49,51 +30,49 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.UUID; + /** * Main Class - * + *

Updated for 1.16.1.

+ *

Note: You should access manager classes from the {@link me.ryandw11.ultrachat.api.UltraChatAPI} class.

* @author Ryandw11 - * @version 2.4 - * Updated for 1.14. - * (Very few API methods here) + * @version 2.5 */ public class UltraChat extends JavaPlugin { public static UltraChat plugin; - public Permission perms = null; - public Chat chat = null; - public Boolean chatStop = false; - public ChatType md; - public ArrayList stafftoggle = new ArrayList<>(); - public ArrayList spytoggle = new ArrayList<>(); - - public PlaceHolderAPIHook papi; - - public File datafile = new File(getDataFolder() + "/data/players.yml"); - public FileConfiguration data = YamlConfiguration.loadConfiguration(datafile); - public File channelfile; - public FileConfiguration channel; - - public File chatColorFile = new File(getDataFolder() + "/chatcolor.yml"); - public FileConfiguration chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); - - public String prefix; public static YamlConfiguration LANG; public static File LANG_FILE; - - private ColorGUI colorGUI; + public Permission perms; + public Chat chat; + public Boolean isChatStopped = false; + public ChatType chatType; + public List staffToggle = new ArrayList<>(); + public List spyToggle = new ArrayList<>(); + public PlaceHolderAPIHook papi; + public File dataFile = new File(getDataFolder() + "/data/players.yml"); + public FileConfiguration data = YamlConfiguration.loadConfiguration(dataFile); + public File channelFile; + public FileConfiguration channel; + public File chatColorFile = new File(getDataFolder() + "/chatcolor.yml"); + public FileConfiguration chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); + public String prefix; public ChatColorManager chatColorManager; public AddonManager addonManager; public ChatColorUtils chatColorUtil; - + private ColorGUI colorGUI; @Override public void onEnable() { - - /* - * Plugin setup area - */ plugin = this; if (getServer().getPluginManager().getPlugin("Vault") == null && !setupChat()) { getLogger().info(String.format("[%s] - Vault is not found!", getDescription().getName())); @@ -101,6 +80,7 @@ public class UltraChat extends JavaPlugin { Bukkit.getPluginManager().disablePlugin(this); return; } + if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { getLogger().info("Hooked into PlaceholderAPI! You can use the place holders!"); papi = new PAPIEnabled(); @@ -128,7 +108,6 @@ public class UltraChat extends JavaPlugin { setupFormatting(); loadLang(); if (plugin.getConfig().getBoolean("bstats")) { - @SuppressWarnings("unused") Metrics m = new Metrics(this); } addonManager = new AddonManager(); @@ -136,7 +115,7 @@ public class UltraChat extends JavaPlugin { @Override public void onDisable() { - getLogger().info("[UltraChat] has been disabled correctly!"); + getLogger().info("The plugin has been disabled correctly!"); saveFile(); saveChannel(); } @@ -146,6 +125,7 @@ public class UltraChat extends JavaPlugin { */ public void setupFormatting() { String type = getConfig().getString("chat_format"); + assert type != null; if (type.equals("")) { getLogger().info("UltraChat will not format the chat. To change this go into the config."); return; @@ -154,25 +134,87 @@ public class UltraChat extends JavaPlugin { switch (type.toLowerCase()) { case "channel": Bukkit.getServer().getPluginManager().registerEvents(new ChannelJSON(), this); - md = ChatType.CHANNEL; + chatType = ChatType.CHANNEL; getLogger().info("Channel chat mode enabled."); break; case "range": Bukkit.getServer().getPluginManager().registerEvents(new RangeJSON(), this); - getCommand("global").setExecutor(new Global()); - getCommand("world").setExecutor(new World()); + Objects.requireNonNull(getCommand("global")).setExecutor(new Global()); + Objects.requireNonNull(getCommand("world")).setExecutor(new World()); getLogger().info("Range chat mode enabled. The commands /global and /world are now also active."); - md = ChatType.RANGE; + chatType = ChatType.RANGE; break; default: Bukkit.getServer().getPluginManager().registerEvents(new NormalJSON(), this); - md = ChatType.NORMAL; + chatType = ChatType.NORMAL; getLogger().info("Normal chat mode activated!"); break; } } - //Vault set-up ========================================================= + /** + * Loads all of the Events and Commands. + */ + public void loadMethod() { + Objects.requireNonNull(getCommand("chat")).setExecutor(new NewChatCommand(this)); + Objects.requireNonNull(getCommand("chat")).setTabCompleter(new CommandTabCompleter()); + Objects.requireNonNull(getCommand("sc")).setExecutor(new StaffChat()); + Objects.requireNonNull(getCommand("sctoggle")).setExecutor(new StaffChatToggle()); + Objects.requireNonNull(getCommand("spy")).setExecutor(new SpyCommand()); + Objects.requireNonNull(getCommand("channel")).setExecutor(new ChannelCmd()); + Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); + Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); + Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); + Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); + loadVersions(); + } + + /** + * Loads classes based upon the server version. + */ + private void loadVersions() { + String version; + + try { + + version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; + + } catch (ArrayIndexOutOfBoundsException w0w) { + version = " "; + } + if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { + + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); + colorGUI = new ColorGUI_1_15_R1(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + Objects.requireNonNull(getCommand("color")).setExecutor(new ColorGUI_1_15_R1()); + + this.chatColorUtil = new ChatColorUtil_Old(); + + } else { + + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); + colorGUI = new ColorGUI_Latest(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + + chatColorManager = new ChatColorManager(this, Objects.requireNonNull(chatColorFC.getConfigurationSection("chat_colors"))); + + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + Objects.requireNonNull(getCommand("color")).setExecutor(new ColorGUI_Latest()); + + this.chatColorUtil = new ChatColorUtil_Latest(this); + } + } + + /** + * Get the ColorGUI class for the right version. + * + * @return A class that implements ColorGUI + */ + public ColorGUI getColorGUI() { + return colorGUI; + } private boolean setupChat() { RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Chat.class); @@ -185,14 +227,13 @@ public class UltraChat extends JavaPlugin { perms = rsp.getProvider(); return perms != null; } - //========================================================================= END =============================== /** * Save the data file. */ public void saveFile() { try { - data.save(datafile); + data.save(dataFile); } catch (IOException e) { e.printStackTrace(); @@ -203,9 +244,9 @@ public class UltraChat extends JavaPlugin { * load the data file */ public void loadFile() { - if (datafile.exists()) { + if (dataFile.exists()) { try { - data.load(datafile); + data.load(dataFile); } catch (IOException | InvalidConfigurationException e) { @@ -213,7 +254,7 @@ public class UltraChat extends JavaPlugin { } } else { try { - data.save(datafile); + data.save(dataFile); } catch (IOException e) { e.printStackTrace(); } @@ -239,7 +280,7 @@ public class UltraChat extends JavaPlugin { public void saveChannel() { try { - channel.save(channelfile); + channel.save(channelFile); } catch (IOException e) { e.printStackTrace(); @@ -251,14 +292,14 @@ public class UltraChat extends JavaPlugin { * Load the cannel file. */ public void loadChannel() { - channelfile = new File(getDataFolder(), "channel.yml"); - if (!channelfile.exists()) { - channelfile.getParentFile().mkdirs(); + channelFile = new File(getDataFolder(), "channel.yml"); + if (!channelFile.exists()) { + channelFile.getParentFile().mkdirs(); saveResource("channel.yml", false); } channel = new YamlConfiguration(); try { - channel.load(channelfile); + channel.load(channelFile); } catch (IOException | InvalidConfigurationException e) { @@ -283,9 +324,8 @@ public class UltraChat extends JavaPlugin { } /** - * + * Load the language file. */ - @SuppressWarnings("static-access") public void loadLang() { File lang = new File(getDataFolder(), "lang.yml"); if (!lang.exists()) { @@ -313,8 +353,8 @@ public class UltraChat extends JavaPlugin { } } Lang.setFile(conf); - this.LANG = conf; - this.LANG_FILE = lang; + LANG = conf; + LANG_FILE = lang; try { conf.save(getLangFile()); } catch (IOException e) { @@ -328,93 +368,5 @@ public class UltraChat extends JavaPlugin { saveDefaultConfig(); } - /** - * Loads all of the Events and Commands. - */ - public void loadMethod() { - getCommand("chat").setExecutor(new ChatCommand()); - getCommand("chat").setTabCompleter(new CommandTabCompleter()); - getCommand("sc").setExecutor(new StaffChat()); - getCommand("sctoggle").setExecutor(new StaffChatToggle()); - getCommand("spy").setExecutor(new SpyCommand()); - getCommand("channel").setExecutor(new ChannelCmd()); - Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); - Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); - Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); - Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); - //Bukkit.getServer().getPluginManager().registerEvents(new Format(this), this); - if (getConfig().getBoolean("console_log")) - Bukkit.getServer().getPluginManager().registerEvents(new ConsoleLogChat(), this); - loadVersions(); - } - /** - * Loads classes based upon the server version. - */ - private void loadVersions() { - String version; - - try { - - version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; - - } catch (ArrayIndexOutOfBoundsException w0w) { - version = " "; - } - if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { - - Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); - colorGUI = new ColorGUI_1_15_R1(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); - if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_1_15_R1()); - - this.chatColorUtil = new ChatColorUtil_Old(); - - } else { - - Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); - colorGUI = new ColorGUI_Latest(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); - - chatColorManager = new ChatColorManager(this, Objects.requireNonNull(chatColorFC.getConfigurationSection("chat_colors"))); - - if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_Latest()); - - this.chatColorUtil = new ChatColorUtil_Latest(this); - } - } - - /** - * Get the ColorGUI class for the right version. - * - * @return A class that implements ColorGUI - */ - public ColorGUI getColorGUI() { - return colorGUI; - } - - -} - -//Permmisions: -//ultrachat.stopchat -//ultrachat.stopchat.bypass -//ultrachat.mode -//ultrachat.vipchat -//ultrachat.broadcast -//ultrachat.staffchat -//ultrachat.staffchat.toggle -//ultrachat.spy -//ultrachat.staffmode -//ultrachat.clearchat -//ultrachat.commandblock.bypass -//ultrachat.sjoin -//ultrachat.color -//ultrachat.worldmute -//ultrachat.sjoin.alert -//ultrachat.spy.others -//ultrachat.fakejoin -//ultrachat.fakeleave -//ultrachat.help \ No newline at end of file +} \ No newline at end of file diff --git a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java index b67c7f1..fa6efe6 100644 --- a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java +++ b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java @@ -49,7 +49,7 @@ public class UltraChatAPI{ * @return chat type */ public ChatType getChatType(){ - return plugin.md; + return plugin.chatType; } @@ -121,7 +121,7 @@ public class UltraChatAPI{ * @return The value of the config. */ public ChatType getFormattingType(){ - return plugin.md; + return plugin.chatType; } /** diff --git a/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java b/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java index a2c0068..3039e35 100644 --- a/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java +++ b/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java @@ -83,7 +83,7 @@ public class ChannelBuilder { /** * Set if the channel is always appear - * @param alwaysAppear + * @param alwaysAppear If the channel should always appear. * @return The builder */ public ChannelBuilder setAlwaysAppear(boolean alwaysAppear) { @@ -95,15 +95,15 @@ public class ChannelBuilder { * Build the channel * @return The channel. Note: If the channel name is already used it will return the existing one. */ - @SuppressWarnings("unchecked") public ChatChannel build() { if(UltraChat.plugin.channel.contains(this.name)) { ConfigurationSection cs = UltraChat.plugin.channel.getConfigurationSection(this.name); + assert cs != null; this.setPrefix(cs.getString("prefix")); this.setPermission(cs.getString("permission")); this.setAlwaysAppear(cs.getBoolean("always_appear")); this.setFormat(cs.getString("format")); - this.setJson((ArrayList) cs.get("JSON")); + this.setJson(cs.getStringList("JSON")); } return new ChatChannel(this); } diff --git a/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java b/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java index 3614409..c4c70ae 100644 --- a/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java +++ b/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java @@ -4,6 +4,10 @@ import java.util.List; import me.ryandw11.ultrachat.UltraChat; +/** + * This class is used the manage channels. + *

Note: All set methods automatically call the {@link #update()} method.

+ */ public class ChatChannel { private String name; @@ -15,7 +19,7 @@ public class ChatChannel { /** * For internal use only. Always use the channel builder. - * @param cb + * @param cb The builder that was used to build the channel. */ public ChatChannel(ChannelBuilder cb) { this.name = cb.getName(); @@ -31,9 +35,9 @@ public class ChatChannel { } /** - * Auto calls the update() method. + * Set the name of the channel. *

Note: If this channel is the default channel then you will need to change the default channel name manually

- * @param name + * @param name The name of the channel. */ public void setName(String name) { UltraChat.plugin.channel.set(this.name, null); @@ -41,44 +45,76 @@ public class ChatChannel { update(); } + /** + * Get the prefix of the channel. + * @return The prefix of the channel. + */ public String getPrefix() { return prefix; } + /** + * Set the prefix of the channel. + * @param prefix The prefix of the channel. + */ public void setPrefix(String prefix) { this.prefix = prefix; update(); } + /** + * Get the permission for the channel. + * @return The permission for the channel. + */ public String getPermission() { return permission; } + /** + * Set the permission for the channel. + * @param permission The permission for the channel. + */ public void setPermission(String permission) { this.permission = permission; update(); } + /** + * If the channel always appears. + * @return If the channel always appears. + */ public boolean isAlwaysAppear() { return alwaysAppear; } + /** + * Set if the channel will always appear in chat. + * @param alwaysAppear If the channel will always appear. + */ public void setAlwaysAppear(boolean alwaysAppear) { this.alwaysAppear = alwaysAppear; update(); } + /** + * Get the json of the channel + * @return The json. + */ public List getJson() { return json; } + /** + * Set the json for the channel. + * @param json The json. + */ public void setJson(List json) { this.json = json; update(); } /** - * Call this after every change and after intialization to save the channel to the files. + * Call this after every change and after initialization to save the channel to the files. */ private void update() { UltraChat plugin = UltraChat.plugin; @@ -91,15 +127,24 @@ public class ChatChannel { /** * Delete the channel + * @deprecated It is not recommended to use this. */ public void delete() { UltraChat.plugin.channel.set(this.getName(), null); } - + + /** + * Get the format of the channel. + * @return The format + */ public String getFormat() { return format; } + /** + * Set the format of the channel. + * @param format The format. + */ public void setFormat(String format) { this.format = format; update(); diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java index 56e6288..2477294 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.chatcolor; import me.ryandw11.ultrachat.UltraChat; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public class ChatColorUtil_Latest implements ChatColorUtils { @@ -17,6 +18,16 @@ public class ChatColorUtil_Latest implements ChatColorUtils { return finalMessage; } + @Override + public String translateChatColor(String message, Player p) { + String finalMessage = message; + if(p.hasPermission("ultrachat.chat.hex")) + finalMessage = translateHexColor(message); + if(p.hasPermission("ultrachat.chat.color")) + finalMessage = plugin.chatColorManager.translateMapColors(finalMessage); + return finalMessage; + } + @Override public ChatColor translateChatCode(String code) { if(code.startsWith("&")){ diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java index aee8694..e9e661a 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java @@ -1,6 +1,7 @@ package me.ryandw11.ultrachat.chatcolor; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public class ChatColorUtil_Old implements ChatColorUtils { @@ -9,9 +10,19 @@ public class ChatColorUtil_Old implements ChatColorUtils { return ChatColor.translateAlternateColorCodes('&', message); } + @Override + public String translateChatColor(String message, Player p) { + if(p.hasPermission("ultrachat.chat.color")) + return ChatColor.translateAlternateColorCodes('&', message); + return message; + } + @Override public ChatColor translateChatCode(String code) { - return null; + if(code.startsWith("&")){ + return ChatColor.getByChar(code.replace("&", "").charAt(0)); + } + return ChatColor.RED; } @Override diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java index 543eff0..2963968 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java @@ -1,9 +1,11 @@ package me.ryandw11.ultrachat.chatcolor; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public interface ChatColorUtils { String translateChatColor(String message); + String translateChatColor(String message, Player p); ChatColor translateChatCode(String code); boolean isChatCode(String code); } diff --git a/src/me/ryandw11/ultrachat/commands/ChatCommand.java b/src/me/ryandw11/ultrachat/commands/ChatCommand.java deleted file mode 100644 index 95721a3..0000000 --- a/src/me/ryandw11/ultrachat/commands/ChatCommand.java +++ /dev/null @@ -1,283 +0,0 @@ -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; - } - -} diff --git a/src/me/ryandw11/ultrachat/commands/Global.java b/src/me/ryandw11/ultrachat/commands/Global.java index 8448d43..611f04c 100644 --- a/src/me/ryandw11/ultrachat/commands/Global.java +++ b/src/me/ryandw11/ultrachat/commands/Global.java @@ -54,8 +54,7 @@ public class Global implements CommandExecutor { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(form, p)); - TextComponent ct = new TextComponent(uce.getMessage()); - cb.append(ct); + cb.append(new TextComponent(TextComponent.fromLegacyText(UltraChat.plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); for (Player pl : uce.getRecipients()) { pl.spigot().sendMessage(cb.create()); @@ -65,13 +64,11 @@ public class Global implements CommandExecutor { } private String getMessage(String[] args, Player p) { - String end = ""; + StringBuilder end = new StringBuilder(); for (String s : args) { - end += s + " "; + end.append(s).append(" "); } - if (p.hasPermission("ultrachat.color")) - return ChatColor.translateAlternateColorCodes('&', end); - return end; + return end.toString(); } } diff --git a/src/me/ryandw11/ultrachat/commands/NewChatCommand.java b/src/me/ryandw11/ultrachat/commands/NewChatCommand.java new file mode 100644 index 0000000..f0e8827 --- /dev/null +++ b/src/me/ryandw11/ultrachat/commands/NewChatCommand.java @@ -0,0 +1,231 @@ +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; + } + +} diff --git a/src/me/ryandw11/ultrachat/commands/SpyCommand.java b/src/me/ryandw11/ultrachat/commands/SpyCommand.java index cc701b7..57e2e5d 100644 --- a/src/me/ryandw11/ultrachat/commands/SpyCommand.java +++ b/src/me/ryandw11/ultrachat/commands/SpyCommand.java @@ -39,14 +39,14 @@ public class SpyCommand implements CommandExecutor { } else{ - if(plugin.spytoggle.contains(p.getUniqueId())){ + if(plugin.spyToggle.contains(p.getUniqueId())){ p.sendMessage(Lang.CMD_SPY_OFF.toString()); - plugin.spytoggle.remove(p.getUniqueId()); + plugin.spyToggle.remove(p.getUniqueId()); plugin.data.set(p.getUniqueId().toString() + ".spy", false); plugin.saveFile(); } else{ - plugin.spytoggle.add(p.getUniqueId()); + plugin.spyToggle.add(p.getUniqueId()); p.sendMessage(Lang.CMD_SPY_ON.toString()); plugin.data.set(p.getUniqueId().toString() + ".spy", true); plugin.saveFile(); @@ -58,14 +58,14 @@ public class SpyCommand implements CommandExecutor { else if(args.length == 1){ if(p.hasPermission("ultrachat.spy.others")){ Player pl = (Player) Bukkit.getServer().getPlayer(args[0]); - if(plugin.spytoggle.contains(pl.getUniqueId())){ - plugin.spytoggle.remove(pl.getUniqueId()); + if(plugin.spyToggle.contains(pl.getUniqueId())){ + plugin.spyToggle.remove(pl.getUniqueId()); p.sendMessage(Lang.OTH_CMD_SPY_OFF.toString().replace("%p", args[0])); plugin.data.set(pl.getUniqueId().toString() + ".spy", false); plugin.saveFile(); } else{ - plugin.spytoggle.add(pl.getUniqueId()); + plugin.spyToggle.add(pl.getUniqueId()); p.sendMessage(Lang.OTH_CMD_SPY_ON.toString().replace("%p", args[0])); plugin.data.set(pl.getUniqueId().toString() + ".spy", true); plugin.saveFile(); diff --git a/src/me/ryandw11/ultrachat/commands/StaffChat.java b/src/me/ryandw11/ultrachat/commands/StaffChat.java index f934771..5039bcd 100644 --- a/src/me/ryandw11/ultrachat/commands/StaffChat.java +++ b/src/me/ryandw11/ultrachat/commands/StaffChat.java @@ -43,7 +43,7 @@ public class StaffChat implements CommandExecutor { for(Player p1 : Bukkit.getOnlinePlayers()){ if(p1.hasPermission("ultrachat.staffchat")){ - if(!plugin.stafftoggle.contains(p1.getUniqueId())){ + if(!plugin.staffToggle.contains(p1.getUniqueId())){ if (p instanceof Player) p1.spigot().sendMessage(JComponentManager.formatComponents(Lang.STAFF_CHAT_FORMAT.toString().replace("%p", p.getName()).replace("%s", message), (Player) p)); else diff --git a/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java b/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java index d2affb5..2d3f6b6 100644 --- a/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java +++ b/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java @@ -28,13 +28,13 @@ public class StaffChatToggle implements CommandExecutor { Player p = (Player) sender; if(p.hasPermission("ultrachat.staffchat.toggle")){ - if(plugin.stafftoggle.contains(p.getUniqueId())){ - plugin.stafftoggle.remove(p.getUniqueId()); + if(plugin.staffToggle.contains(p.getUniqueId())){ + plugin.staffToggle.remove(p.getUniqueId()); p.sendMessage(Lang.STAFF_CHAT_ON.toString()); } else{ - plugin.stafftoggle.add(p.getUniqueId()); + plugin.staffToggle.add(p.getUniqueId()); p.sendMessage(Lang.STAFF_CHAT_OFF.toString()); } }//end of perm check diff --git a/src/me/ryandw11/ultrachat/commands/World.java b/src/me/ryandw11/ultrachat/commands/World.java index f22f553..f94bc65 100644 --- a/src/me/ryandw11/ultrachat/commands/World.java +++ b/src/me/ryandw11/ultrachat/commands/World.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.commands; import java.util.HashSet; +import com.sun.istack.internal.NotNull; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -12,7 +13,6 @@ import org.bukkit.entity.Player; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.UltraChatAPI; import me.ryandw11.ultrachat.api.events.UltraChatEvent; import me.ryandw11.ultrachat.api.events.properties.RangeProperties; import me.ryandw11.ultrachat.api.events.properties.RangeType; @@ -24,7 +24,7 @@ import net.md_5.bungee.api.chat.TextComponent; public class World implements CommandExecutor { @Override - public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String s, @NotNull String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "This command is for players only!"); return true; @@ -51,8 +51,7 @@ public class World implements CommandExecutor { .replace("%suffix%", pf.getSuffix()) + pf.getColor(); ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(form, p)); - TextComponent ct = new TextComponent(uce.getMessage()); - cb.append(ct); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + UltraChat.plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); for (Player pl : uce.getRecipients()) { pl.spigot().sendMessage(cb.create()); @@ -63,13 +62,11 @@ public class World implements CommandExecutor { } private String getMessage(String[] args, Player p) { - String end = ""; + StringBuilder end = new StringBuilder(); for (String s : args) { - end += s + " "; + end.append(s).append(" "); } - if (p.hasPermission("ultrachat.color")) - return ChatColor.translateAlternateColorCodes('&', end); - return end; + return end.toString(); } } diff --git a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java index f326d65..436fede 100644 --- a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java @@ -59,7 +59,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(format, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } @@ -80,7 +80,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java index 008816b..9a04640 100644 --- a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java @@ -63,9 +63,11 @@ public class NormalJSON implements Listener { return; } // If the player is not op - for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + for (String key : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + String permission = plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".permission"); + assert permission != null; if (p.hasPermission(permission)) { - String formats = pf.getCustomFormat(permission) + String formats = pf.getCustomFormat(key) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) .replace("%player%", p.getDisplayName()) @@ -74,7 +76,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + plugin.chatColorUtil.translateChatColor(event.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } return; @@ -92,7 +94,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + plugin.chatColorUtil.translateChatColor(event.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java index 545109f..48c3352 100644 --- a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java +++ b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java @@ -24,13 +24,13 @@ public class PlayerFormatting { plugin = UltraChat.plugin; color = plugin.data.getString(p.getUniqueId() + ".color"); - prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(p)); - suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(p)); - formatOp = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))), p); - defaults = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))), p); - global = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))), p); - world = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))), p); - local = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))), p); + prefix = ChatUtil.translateColorCodes( plugin.chat.getPlayerPrefix(p)); + suffix = ChatUtil.translateColorCodes( plugin.chat.getPlayerSuffix(p)); + formatOp = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))), p); + defaults = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))), p); + global = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Global.format"))), p); + world = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("World.format"))), p); + local = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Local.format"))), p); this.p = p; } @@ -72,8 +72,8 @@ public class PlayerFormatting { return defaults; } - public String getCustomFormat(String name) { - return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.permission_format." + name))), p); + public String getCustomFormat(String key) { + return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".format"))), p); } } diff --git a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java index f974c78..7d11b5f 100644 --- a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java @@ -21,6 +21,7 @@ import me.ryandw11.ultrachat.api.events.properties.RangeType; import me.ryandw11.ultrachat.api.managers.JComponentManager; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.scheduler.BukkitScheduler; public class RangeJSON implements Listener { @@ -35,29 +36,33 @@ public class RangeJSON implements Listener { Player p = e.getPlayer(); PlayerFormatting pf = new PlayerFormatting(p); e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); - e.getRecipients().addAll(getNearbyPlayers(p)); - e.getRecipients().add(p); - - RangeProperties rp = new RangeProperties(true, RangeType.LOCAL); + Bukkit.getScheduler().runTask(plugin, () -> { + e.getRecipients().addAll(getNearbyPlayers(p)); + e.getRecipients().add(p); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.RANGE, rp); - Bukkit.getServer().getPluginManager().callEvent(uce); - e.getRecipients().clear(); - if (!uce.isCancelled()) { - for (Player pl : uce.getRecipients()) { - - String formats = pf.getLocal() - .replace("%player%", p.getDisplayName()) - .replace("%prefix%", pf.getPrefix()) - .replace("%suffix%", pf.getSuffix()) - + pf.getColor(); + RangeProperties rp = new RangeProperties(true, RangeType.LOCAL); - ComponentBuilder cb = new ComponentBuilder(""); - cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); - pl.spigot().sendMessage(cb.create()); - } - } + UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.RANGE, rp); + Bukkit.getScheduler().runTaskAsynchronously(plugin, ()->{ + Bukkit.getServer().getPluginManager().callEvent(uce); + e.getRecipients().clear(); + if (!uce.isCancelled()) { + for (Player pl : uce.getRecipients()) { + + String formats = pf.getLocal() + .replace("%player%", p.getDisplayName()) + .replace("%prefix%", pf.getPrefix()) + .replace("%suffix%", pf.getSuffix()) + + pf.getColor(); + + ComponentBuilder cb = new ComponentBuilder(""); + cb.append(JComponentManager.formatComponents(formats, p)); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + pl.spigot().sendMessage(cb.create()); + } + } + }); + }); } private ArrayList getNearbyPlayers(Player pl) { diff --git a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java index 647a033..420d62f 100644 --- a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java +++ b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java @@ -34,18 +34,18 @@ private UltraChat plugin; color = Objects.requireNonNull(plugin.data.getString(ud + ".color")); try { - prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(world, op)); - suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(world, op)); + prefix = ChatUtil.translateColorCodes( plugin.chat.getPlayerPrefix(world, op)); + suffix = ChatUtil.translateColorCodes( plugin.chat.getPlayerSuffix(world, op)); } catch(NullPointerException ex) { prefix = plugin.chat.getPlayerPrefix(world, op); suffix = plugin.chat.getPlayerSuffix(world, op); } - formatOp = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))); - defaults = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))); - global = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))); - this.world = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))); - local = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))); + formatOp = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))); + defaults = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))); + global = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Global.format"))); + this.world = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("World.format"))); + local = ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("Local.format"))); this.op = op; worldName = world; } @@ -89,8 +89,8 @@ private UltraChat plugin; return defaults; } - public String getCustomFormat(String name) { - return plugin.getConfig().getString("Custom_Chat.permission_format." + name); + public String getCustomFormat(String key) { + return plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".format"); } public OfflinePlayer getOfflinePlayer() { @@ -107,9 +107,11 @@ private UltraChat plugin; if(uapi.getChatType() == ChatType.NORMAL) { if(op.isOp()) return this.getOpFormat(); - for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + for (String key : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + String permission = plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".permission"); + assert permission != null; if (plugin.perms.playerHas(worldName, op, plugin.getConfig().getString(permission))) { - return this.getCustomFormat(permission); + return this.getCustomFormat(key); } } return this.getDefaultFormat(); diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java index 1e2b823..46c55a5 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java @@ -185,7 +185,7 @@ public class ColorGUI_Latest implements CommandExecutor, Listener, ColorGUI{ ItemStack item = e.getCurrentItem(); if(!e.getInventory().contains(item)) return; - if(item.equals(getBottomStack()) || item.equals(getCurrentStack(page))) return; + if(item.equals(getBottomStack()) || item.equals(getCurrentStack(page)) || item.equals(getNoPermItem())) return; if(item.equals(getNextStack(page))){ p.closeInventory(); openGUI(p, page+1); diff --git a/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java b/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java deleted file mode 100644 index f8a97f3..0000000 --- a/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.ryandw11.ultrachat.listner; - -import java.util.logging.Level; - -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; - -public class ConsoleLogChat implements Listener{ - - @EventHandler - public void jsonChat(UltraChatEvent e){ - if(!e.getProperties().isComponent()) return; - String msg = e.getMessage(); - String pname = e.getPlayer().getDisplayName(); - Bukkit.getLogger().log(Level.INFO, Lang.CONSOLE_CHAT_LOG.toString().replace("%p", pname).replace("%s", msg).replace('&', '§')); - } - -} diff --git a/src/me/ryandw11/ultrachat/listner/JoinListner.java b/src/me/ryandw11/ultrachat/listner/JoinListner.java index 3bbe342..68312d9 100644 --- a/src/me/ryandw11/ultrachat/listner/JoinListner.java +++ b/src/me/ryandw11/ultrachat/listner/JoinListner.java @@ -1,11 +1,13 @@ package me.ryandw11.ultrachat.listner; import java.util.List; +import java.util.Objects; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.managers.JComponentManager; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -13,116 +15,113 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; + /** * @author Ryandw11 */ public class JoinListner implements Listener { - - private UltraChat plugin; - public JoinListner(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onJoin(PlayerJoinEvent event){ - Player p = event.getPlayer(); - - if(plugin.data.contains(p.getUniqueId().toString())){ - if(!(plugin.channel.contains(plugin.data.getString(p.getUniqueId() + ".channel")))){ - /* - * Fail safe so that if the player joins with an invalid channel it goes back to default. - */ - plugin.data.set(p.getUniqueId() + ".channel", plugin.getConfig().getString("Default_Channel")); - plugin.saveFile(); - - }else if(!(plugin.data.contains(p.getUniqueId().toString() + ".spy"))){ - plugin.data.set(p.getUniqueId().toString() + ".spy", false); - plugin.saveFile(); - } - } - else{ - plugin.data.set(p.getUniqueId().toString() + ".color", "&f"); - plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); - plugin.data.set(p.getUniqueId().toString() + ".spy", false); - plugin.data.set(p.getUniqueId().toString() + ".channel", plugin.getConfig().getString("Default_Channel")); - plugin.saveFile(); - } - - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - event.setJoinMessage(""); - for(Player pl : Bukkit.getOnlinePlayers()){ - if(pl.hasPermission("ultrachat.sjoin.alert")){ - pl.sendMessage(Lang.SILENT_JOIN_MESSAGE.toString().replace("%p", p.getDisplayName())); - } - } - - }else{ - - String Join = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Join_Message").replace("%player%", p.getName())); - event.setJoinMessage(Join); - } - - - } - - /* - * On leave event - */ - @EventHandler - public void onLeave(PlayerQuitEvent event){ - - Player p = event.getPlayer(); - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - event.setQuitMessage(""); - for(Player pl : Bukkit.getOnlinePlayers()){ - if(pl.hasPermission("ultrachat.sjoin.alert")){ - pl.sendMessage(Lang.SILENT_LEAVE_MESSAGE.toString().replace("%p", p.getDisplayName())); - } - } - }else{ - - String leave = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", p.getName())); - event.setQuitMessage(leave); - } - } - - - - - /* - * For MOTD - */ - @EventHandler - public void MOTD(PlayerJoinEvent event){ - Player p = event.getPlayer(); - if(plugin.getConfig().getBoolean("Motd_Enabled")){ - List motd = plugin.getConfig().getStringList("Motd"); - for(String OutPut : motd){ - String message = OutPut; - message = plugin.papi.translatePlaceholders(message, p); - p.spigot().sendMessage(JComponentManager.formatComponents(ChatColor.translateAlternateColorCodes('&', message), p)); - } - } - - } - - /* - * If there is a new player. - */ - - @EventHandler - public void NewPlayer(PlayerJoinEvent event){ - Player p = event.getPlayer(); - if(!(p.hasPlayedBefore()) && !(plugin.getConfig().getString("New_Player").equalsIgnoreCase("none"))){ - String msg = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("New_Player").replace("%player%", p.getDisplayName())); - for(Player pl : Bukkit.getOnlinePlayers()) { - pl.spigot().sendMessage(JComponentManager.formatComponents(msg, p)); - } - } - - } - - - + private UltraChat plugin; + + public JoinListner() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player p = event.getPlayer(); + + if (plugin.data.contains(p.getUniqueId().toString())) { + if (!(plugin.channel.contains(Objects.requireNonNull(plugin.data.getString(p.getUniqueId() + ".channel"))))) { + /* + * Fail safe so that if the player joins with an invalid channel it goes back to default. + */ + plugin.data.set(p.getUniqueId() + ".channel", plugin.getConfig().getString("Default_Channel")); + plugin.saveFile(); + + } else if (!(plugin.data.contains(p.getUniqueId().toString() + ".spy"))) { + plugin.data.set(p.getUniqueId().toString() + ".spy", false); + plugin.saveFile(); + } + } else { + plugin.data.set(p.getUniqueId().toString() + ".color", "&f"); + plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); + plugin.data.set(p.getUniqueId().toString() + ".spy", false); + plugin.data.set(p.getUniqueId().toString() + ".channel", plugin.getConfig().getString("Default_Channel")); + plugin.saveFile(); + } + + if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) { + event.setJoinMessage(""); + for (Player pl : Bukkit.getOnlinePlayers()) { + if (pl.hasPermission("ultrachat.sjoin.alert")) { + pl.sendMessage(Lang.SILENT_JOIN_MESSAGE.toString().replace("%p", p.getDisplayName())); + } + } + + } else { + String Join = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Join_Message")).replace("%player%", p.getName())); + event.setJoinMessage(Join); + } + + + } + + /* + * On leave event + */ + @EventHandler + public void onLeave(PlayerQuitEvent event) { + + Player p = event.getPlayer(); + if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) { + event.setQuitMessage(""); + for (Player pl : Bukkit.getOnlinePlayers()) { + if (pl.hasPermission("ultrachat.sjoin.alert")) { + pl.sendMessage(Lang.SILENT_LEAVE_MESSAGE.toString().replace("%p", p.getDisplayName())); + } + } + } else { + + String leave = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", p.getName())); + event.setQuitMessage(leave); + } + } + + + /* + * For MOTD + */ + @EventHandler + public void MOTD(PlayerJoinEvent event) { + Player p = event.getPlayer(); + if (plugin.getConfig().getBoolean("Motd_Enabled")) { + List motd = plugin.getConfig().getStringList("Motd"); + for (String OutPut : motd) { + String message = OutPut; + message = plugin.papi.translatePlaceholders(message, p); + p.spigot().sendMessage(JComponentManager.formatComponents(plugin.chatColorUtil.translateChatColor(message), p)); + } + + } + + } + + /* + * If there is a new player. + */ + + @EventHandler + public void NewPlayer(PlayerJoinEvent event) { + Player p = event.getPlayer(); + if (!(p.hasPlayedBefore()) && !(Objects.requireNonNull(plugin.getConfig().getString("New_Player")).equalsIgnoreCase("none"))) { + String msg = ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("New_Player")).replace("%player%", p.getDisplayName())); + for (Player pl : Bukkit.getOnlinePlayers()) { + pl.spigot().sendMessage(JComponentManager.formatComponents(msg, p)); + } + } + + } + + } diff --git a/src/me/ryandw11/ultrachat/listner/NoSwear.java b/src/me/ryandw11/ultrachat/listner/NoSwear.java index 7f86910..448aca9 100644 --- a/src/me/ryandw11/ultrachat/listner/NoSwear.java +++ b/src/me/ryandw11/ultrachat/listner/NoSwear.java @@ -9,37 +9,38 @@ import me.ryandw11.ultrachat.api.events.UltraChatEvent; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; + /** * @author Ryandw11 */ public class NoSwear implements Listener { - - private UltraChat plugin; - public NoSwear(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onJsonChat(UltraChatEvent event){ - if(plugin.getConfig().getBoolean("Anti_Swear_Enabled")){ - Player p = event.getPlayer(); - - - List swear = plugin.getConfig().getStringList("Blocked_Words"); - int times = 0; - - String Message = " " + event.getMessage().toLowerCase().replace(".", "") + " "; - - for(String swearWord : swear){ - //Check if world chat is enabled - if(Message.contains(swearWord + " ") && times == 0 || Message.contains(" " + swearWord + " ") && times == 0 || Message.contains(" " + swearWord) && times == 0 || Message.contains(swearWord)){ - //else do this: - event.setCancelled(true); - p.sendMessage(Lang.NO_SWEAR.toString()); - break; - } - } - } - } + + private UltraChat plugin; + + public NoSwear() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onJsonChat(UltraChatEvent event) { + if (plugin.getConfig().getBoolean("Anti_Swear_Enabled")) { + Player p = event.getPlayer(); + + + List swear = plugin.getConfig().getStringList("Blocked_Words"); + + String Message = " " + event.getMessage().toLowerCase().replace(".", "") + " "; + + for (String swearWord : swear) { + //Check if world chat is enabled + if (Message.contains(swearWord + " ") || Message.contains(" " + swearWord + " ") || Message.contains(" " + swearWord) || Message.contains(swearWord)) { + //else do this: + event.setCancelled(true); + p.sendMessage(Lang.NO_SWEAR.toString()); + break; + } + } + } + } } diff --git a/src/me/ryandw11/ultrachat/listner/Notify.java b/src/me/ryandw11/ultrachat/listner/Notify.java index 0683ee9..bb21a8a 100644 --- a/src/me/ryandw11/ultrachat/listner/Notify.java +++ b/src/me/ryandw11/ultrachat/listner/Notify.java @@ -1,30 +1,28 @@ package me.ryandw11.ultrachat.listner; +import me.ryandw11.ultrachat.api.Lang; +import me.ryandw11.ultrachat.api.events.UltraChatEvent; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; /** - * * @author Ryandw11 * Updated for 1.13 - * */ public class Notify implements Listener { - - @EventHandler - public void onJsonChat(UltraChatEvent e){ - for(Player p : Bukkit.getOnlinePlayers()){ - if(e.getMessage().contains("@" + p.getName())){ - p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 10, 0); - p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); - } - } - } - + @EventHandler + public void onJsonChat(UltraChatEvent e) { + for (Player p : Bukkit.getOnlinePlayers()) { + if (e.getMessage().contains("@" + p.getName())) { + p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 10, 0); + p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); + } + } + } + + } diff --git a/src/me/ryandw11/ultrachat/listner/Notify_1_12.java b/src/me/ryandw11/ultrachat/listner/Notify_1_12.java deleted file mode 100644 index 05d946a..0000000 --- a/src/me/ryandw11/ultrachat/listner/Notify_1_12.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.ryandw11.ultrachat.listner; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; - -/** - * For 1.12 and below servers. - */ -public class Notify_1_12 implements Listener { - - @EventHandler - public void onJsonChat(UltraChatEvent e){ - for(Player p : Bukkit.getOnlinePlayers()){ - if(e.getMessage().contains("@" + p.getName())){ - p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); - } - } - } -} diff --git a/src/me/ryandw11/ultrachat/listner/Spy.java b/src/me/ryandw11/ultrachat/listner/Spy.java index 048e2ec..c6af6d1 100644 --- a/src/me/ryandw11/ultrachat/listner/Spy.java +++ b/src/me/ryandw11/ultrachat/listner/Spy.java @@ -9,30 +9,29 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; -public class Spy implements Listener{ - - private UltraChat plugin; - public Spy(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onPlayerCommand(PlayerCommandPreprocessEvent event){ - Player p1 = (Player) event.getPlayer(); - String msg = event.getMessage();//get user name - - for(Player p : Bukkit.getOnlinePlayers()){ - if(plugin.spytoggle.contains(p.getUniqueId())){ - p.sendMessage(Lang.CMD_SPY_FORMAT.toString().replace("%p", p1.getName()).replace("%s", msg)); - }// end of if - - - }//end of for loop - - - - - } - - +public class Spy implements Listener { + + private UltraChat plugin; + + public Spy() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onPlayerCommand(PlayerCommandPreprocessEvent event) { + Player p1 = (Player) event.getPlayer(); + String msg = event.getMessage();//get user name + + for (Player p : Bukkit.getOnlinePlayers()) { + if (plugin.spyToggle.contains(p.getUniqueId())) { + p.sendMessage(Lang.CMD_SPY_FORMAT.toString().replace("%p", p1.getName()).replace("%s", msg)); + }// end of if + + + }//end of for loop + + + } + + } \ No newline at end of file diff --git a/src/me/ryandw11/ultrachat/listner/StopChat.java b/src/me/ryandw11/ultrachat/listner/StopChat.java index 56c1ca9..4d89d40 100644 --- a/src/me/ryandw11/ultrachat/listner/StopChat.java +++ b/src/me/ryandw11/ultrachat/listner/StopChat.java @@ -1,35 +1,35 @@ package me.ryandw11.ultrachat.listner; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.events.UltraChatEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + /** * Prevent players from chatting when the chat is stopped. - * @author Ryandw11 * + * @author Ryandw11 */ public class StopChat implements Listener { - - private UltraChat plugin; - public StopChat(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onChat(UltraChatEvent e){ - Player p = e.getPlayer(); - if(plugin.chatStop){ - if(!p.hasPermission("ultrachat.stopchat.bypass")){ - e.setCancelled(true); - p.sendMessage(Lang.STOP_CHAT_MESSAGE.toString()); - } - } - } - - - + + private UltraChat plugin; + + public StopChat() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onChat(UltraChatEvent e) { + Player p = e.getPlayer(); + if (plugin.isChatStopped) { + if (!p.hasPermission("ultrachat.stopchat.bypass")) { + e.setCancelled(true); + p.sendMessage(Lang.STOP_CHAT_MESSAGE.toString()); + } + } + } + + } diff --git a/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java b/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java index ae26c16..51eabe5 100644 --- a/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java +++ b/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java @@ -15,7 +15,8 @@ public class EssentialsMute implements Listener{ public void jsonChat(UltraChatEvent e){ Player p = e.getPlayer(); Essentials ess = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials"); - if(ess.getUser(p).isMuted()){ + assert ess != null; + if(ess.getUser(p).isMuted()){ e.setCancelled(true); } } diff --git a/src/me/ryandw11/ultrachat/util/ChatUtil.java b/src/me/ryandw11/ultrachat/util/ChatUtil.java index 92b5e90..8539491 100644 --- a/src/me/ryandw11/ultrachat/util/ChatUtil.java +++ b/src/me/ryandw11/ultrachat/util/ChatUtil.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.util; import me.ryandw11.ultrachat.UltraChat; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; /** * This is a utility class to make chat easier. @@ -18,6 +19,10 @@ public class ChatUtil { return UltraChat.plugin.chatColorUtil.translateChatColor(message); } + public static String translateColorCodes(String message, Player p){ + return UltraChat.plugin.chatColorUtil.translateChatColor(message, p); + } + public static ChatColor translateColorCode(String code){ return UltraChat.plugin.chatColorUtil.translateChatCode(code); }