Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,13 +287,13 @@ chatCommand say Hello from plugin!

#### Return

- All chat messsages since the last poll seperated by `|<-->|`
- A list of block of `<playername>:<message>` seperated by `𝇉`

#### Example

```bash
pollChat
Hallo|<-->|A second message|<-->|Last message
Player1:Hallo𝇉Player1:A second message𝇉Player2:Last message
```

### Command: spawnEntity
Expand Down
13 changes: 6 additions & 7 deletions src/main/java/org/sk/skMinecraft/CentralResourceHandler.java
Original file line number Diff line number Diff line change
@@ -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<String> chatMessages;
private static ArrayList<ChatMessage> chatMessages;
private static HashMap<String, Entity> spawnedEntites;

public static void init() {
CentralResourceHandler.spawnedEntites = new HashMap<>();
CentralResourceHandler.chatMessages = new ArrayList<String>();
CentralResourceHandler.chatMessages = new ArrayList<ChatMessage>();
}

public static synchronized void addChatMessage(String message) {
public static synchronized void addChatMessage(ChatMessage message) {
chatMessages.add(message);
}

public static ArrayList<String> getChatMessages() {
ArrayList<String> copy = CentralResourceHandler.chatMessages;
public static ArrayList<ChatMessage> getChatMessages() {
ArrayList<ChatMessage> copy = CentralResourceHandler.chatMessages;
CentralResourceHandler.chatMessages = new ArrayList<>();

return copy;
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/org/sk/skMinecraft/SkMinecraft.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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() {
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/org/sk/skMinecraft/commands/PollChat.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -14,9 +15,11 @@ public PollChat(String s) {
@Override
public void apply() {
Bukkit.getScheduler().runTask(plugin, () -> {
ArrayList<String> messages = CentralResourceHandler.getChatMessages();
ArrayList<ChatMessage> 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);
});
}
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/org/sk/skMinecraft/data/ChatMessage.java
Original file line number Diff line number Diff line change
@@ -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;
}
}