diff --git a/README.md b/README.md index b5de452..83d5b01 100644 --- a/README.md +++ b/README.md @@ -287,13 +287,13 @@ chatCommand say Hello from plugin! #### Return -- All chat messsages since the last poll seperated by `|<-->|` +- A list of block of `:` seperated by `𝇉` #### Example ```bash pollChat -Hallo|<-->|A second message|<-->|Last message +Player1:Hallo𝇉Player1:A second message𝇉Player2:Last message ``` ### Command: spawnEntity diff --git a/src/main/java/org/sk/skMinecraft/CentralResourceHandler.java b/src/main/java/org/sk/skMinecraft/CentralResourceHandler.java index f10c394..6dd9dc7 100644 --- a/src/main/java/org/sk/skMinecraft/CentralResourceHandler.java +++ b/src/main/java/org/sk/skMinecraft/CentralResourceHandler.java @@ -1,28 +1,27 @@ package org.sk.skMinecraft; import org.bukkit.entity.Entity; +import org.sk.skMinecraft.data.ChatMessage; -import java.sql.Array; import java.util.ArrayList; import java.util.HashMap; -import java.util.List; public class CentralResourceHandler { - private static ArrayList chatMessages; + private static ArrayList chatMessages; private static HashMap spawnedEntites; public static void init() { CentralResourceHandler.spawnedEntites = new HashMap<>(); - CentralResourceHandler.chatMessages = new ArrayList(); + CentralResourceHandler.chatMessages = new ArrayList(); } - public static synchronized void addChatMessage(String message) { + public static synchronized void addChatMessage(ChatMessage message) { chatMessages.add(message); } - public static ArrayList getChatMessages() { - ArrayList copy = CentralResourceHandler.chatMessages; + public static ArrayList getChatMessages() { + ArrayList copy = CentralResourceHandler.chatMessages; CentralResourceHandler.chatMessages = new ArrayList<>(); return copy; diff --git a/src/main/java/org/sk/skMinecraft/SkMinecraft.java b/src/main/java/org/sk/skMinecraft/SkMinecraft.java index 6911bf5..31956ac 100644 --- a/src/main/java/org/sk/skMinecraft/SkMinecraft.java +++ b/src/main/java/org/sk/skMinecraft/SkMinecraft.java @@ -5,6 +5,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.plugin.java.JavaPlugin; import org.sk.skMinecraft.commands.Command; +import org.sk.skMinecraft.data.ChatMessage; import java.io.BufferedReader; import java.io.IOException; @@ -75,7 +76,8 @@ private void startTcpListener() { @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { - CentralResourceHandler.addChatMessage(event.getMessage()); + ChatMessage message = new ChatMessage(event.getPlayer(), event.getMessage()); + CentralResourceHandler.addChatMessage(message); } private void stopTcpListener() { diff --git a/src/main/java/org/sk/skMinecraft/commands/PollChat.java b/src/main/java/org/sk/skMinecraft/commands/PollChat.java index 2219ee7..0019961 100644 --- a/src/main/java/org/sk/skMinecraft/commands/PollChat.java +++ b/src/main/java/org/sk/skMinecraft/commands/PollChat.java @@ -3,6 +3,7 @@ import org.bukkit.Bukkit; import org.sk.skMinecraft.CentralResourceHandler; import org.sk.skMinecraft.SkMinecraft; +import org.sk.skMinecraft.data.ChatMessage; import java.util.ArrayList; @@ -14,9 +15,11 @@ public PollChat(String s) { @Override public void apply() { Bukkit.getScheduler().runTask(plugin, () -> { - ArrayList messages = CentralResourceHandler.getChatMessages(); + ArrayList messages = CentralResourceHandler.getChatMessages(); + String output = messages.stream() + .map(message -> message.player.getName() + ":" + message.message) + .reduce("", (arg, msg) -> arg == "" ? msg : arg + SkMinecraft.seperator + msg); - String output = String.join(SkMinecraft.seperator, messages); this.writer.println(output); }); } diff --git a/src/main/java/org/sk/skMinecraft/data/ChatMessage.java b/src/main/java/org/sk/skMinecraft/data/ChatMessage.java new file mode 100644 index 0000000..aad73d7 --- /dev/null +++ b/src/main/java/org/sk/skMinecraft/data/ChatMessage.java @@ -0,0 +1,14 @@ +package org.sk.skMinecraft.data; + +import org.bukkit.entity.Player; + +public class ChatMessage { + + public Player player; + public String message; + + public ChatMessage(Player player, String message) { + this.player = player; + this.message = message; + } +} \ No newline at end of file