From 35fda21ed16f6f9d7fc42e87b20e93a4f6b1c5c6 Mon Sep 17 00:00:00 2001 From: len <40720638+destro174@users.noreply.github.com> Date: Thu, 13 May 2021 20:27:20 +0200 Subject: [PATCH] Plugin Message channal and global chat check --- .../com/alttd/chat/ChatImplementation.java | 3 + .../java/com/alttd/chat/config/Config.java | 5 ++ .../com/alttd/chat/objects/ChatPlayer.java | 2 + .../main/java/com/alttd/chat/ChatPlugin.java | 9 +++ .../com/alttd/chat/commands/GlobalChat.java | 4 + .../com/alttd/chat/handler/ChatHandler.java | 79 +++++++++++++++---- .../alttd/chat/listeners/PluginMessage.java | 25 ++++++ velocity/dependency-reduced-pom.xml | 12 +-- velocity/pom.xml | 6 ++ .../java/com/alttd/chat/VelocityChat.java | 34 ++++---- .../com/alttd/chat/commands/GlobalChat.java | 37 --------- .../com/alttd/chat/config/ServerConfig.java | 4 + .../com/alttd/chat/data/ServerWrapper.java | 29 +++++++ .../alttd/chat/handlers/ServerHandler.java | 47 +++++++++++ .../chat/listeners/PluginMessageListener.java | 16 +++- 15 files changed, 231 insertions(+), 81 deletions(-) create mode 100644 galaxy/src/main/java/com/alttd/chat/listeners/PluginMessage.java delete mode 100644 velocity/src/main/java/com/alttd/chat/commands/GlobalChat.java create mode 100644 velocity/src/main/java/com/alttd/chat/data/ServerWrapper.java create mode 100644 velocity/src/main/java/com/alttd/chat/handlers/ServerHandler.java diff --git a/api/src/main/java/com/alttd/chat/ChatImplementation.java b/api/src/main/java/com/alttd/chat/ChatImplementation.java index b76a7e8..26443a9 100644 --- a/api/src/main/java/com/alttd/chat/ChatImplementation.java +++ b/api/src/main/java/com/alttd/chat/ChatImplementation.java @@ -21,6 +21,9 @@ public class ChatImplementation implements ChatAPI{ public ChatImplementation() { instance = this; Config.init(); + + luckPerms = getLuckPerms(); + //databaseConnection = getDataBase(); // init database // init depends//or set them the first time they are called? } diff --git a/api/src/main/java/com/alttd/chat/config/Config.java b/api/src/main/java/com/alttd/chat/config/Config.java index f7c82a5..933dd2a 100644 --- a/api/src/main/java/com/alttd/chat/config/Config.java +++ b/api/src/main/java/com/alttd/chat/config/Config.java @@ -184,4 +184,9 @@ public final class Config { GACFORMAT = getString("commands.globaladminchat.format", GACFORMAT); } + public static String MESSAGECHANNEL = "altitude:chatplugin"; + private static void messageChannels() { + MESSAGECHANNEL = getString("settings.message-channel", MESSAGECHANNEL); + } + } diff --git a/api/src/main/java/com/alttd/chat/objects/ChatPlayer.java b/api/src/main/java/com/alttd/chat/objects/ChatPlayer.java index 450467a..258f6f2 100644 --- a/api/src/main/java/com/alttd/chat/objects/ChatPlayer.java +++ b/api/src/main/java/com/alttd/chat/objects/ChatPlayer.java @@ -6,6 +6,8 @@ public class ChatPlayer { // todo merge partyuser here, or make party user extend this? // todo gctoggle? + // todo cache prefixes? + private UUID uuid; private UUID replyTarget; private boolean globalChatEnabled; // this vs permission? diff --git a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java index 79b6c7c..2dbecc7 100644 --- a/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java +++ b/galaxy/src/main/java/com/alttd/chat/ChatPlugin.java @@ -1,8 +1,10 @@ package com.alttd.chat; import com.alttd.chat.commands.GlobalChat; +import com.alttd.chat.config.Config; import com.alttd.chat.handler.ChatHandler; import com.alttd.chat.listeners.PlayerListener; +import com.alttd.chat.listeners.PluginMessage; import org.bukkit.command.CommandExecutor; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; @@ -14,6 +16,8 @@ public class ChatPlugin extends JavaPlugin { private ChatAPI chatAPI; private ChatHandler chatHandler; + private String messageChannel; + @Override public void onEnable() { instance = this; @@ -21,6 +25,11 @@ public class ChatPlugin extends JavaPlugin { chatHandler = new ChatHandler(); registerListener(new PlayerListener()); registerCommand("globalchat", new GlobalChat()); + + messageChannel = Config.MESSAGECHANNEL; + getServer().getMessenger().registerOutgoingPluginChannel(this, messageChannel); + getServer().getMessenger().registerIncomingPluginChannel(this, messageChannel, new PluginMessage()); + } @Override diff --git a/galaxy/src/main/java/com/alttd/chat/commands/GlobalChat.java b/galaxy/src/main/java/com/alttd/chat/commands/GlobalChat.java index d34b9d5..efe65f5 100644 --- a/galaxy/src/main/java/com/alttd/chat/commands/GlobalChat.java +++ b/galaxy/src/main/java/com/alttd/chat/commands/GlobalChat.java @@ -5,11 +5,15 @@ import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class GlobalChat implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)) { + return true; + } String message = StringUtils.join(args, " ", 0, args.length); ChatPlugin.getInstance().getChatHandler().globalChat(sender, message); return false; diff --git a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java index a4d12b0..f1fc5d1 100644 --- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java +++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java @@ -2,13 +2,20 @@ package com.alttd.chat.handler; import com.alttd.chat.ChatPlugin; import com.alttd.chat.config.Config; +import com.google.common.io.ByteArrayDataOutput; +import com.google.common.io.ByteStreams; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.Template; import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class ChatHandler { @@ -21,29 +28,71 @@ public class ChatHandler { public void globalChat(CommandSender source, String message) { String senderName, prefix = ""; - Map map = new HashMap<>(); - if (source instanceof Player) { - Player sender = (Player) source; - senderName = sender.getDisplayName(); - prefix = plugin.getChatAPI().getPrefix(sender.getUniqueId()); - } else { - senderName = Config.CONSOLENAME; - } + Player sender = (Player) source; + senderName = sender.getDisplayName(); // TODO this can be a component + prefix = plugin.getChatAPI().getPrefix(sender.getUniqueId()); MiniMessage miniMessage = MiniMessage.get(); if(!source.hasPermission("chat.format")) message = miniMessage.stripTokens(message); + if(message.contains("[i]")) + message = message.replace("[i]", "<[i]>"); - map.put("sender", senderName); - map.put("message", message); - map.put("server", Bukkit.getServerName()); - map.put("prefix", prefix); + List