From 43ee87cad6bfb854c3141727c6ddb6a5d2fcf369 Mon Sep 17 00:00:00 2001
From: bierdosenhalter <529651+bierdosenhalter@users.noreply.github.com>
Date: Wed, 31 Aug 2022 16:53:14 +0200
Subject: [PATCH] removed message cancelling for chat but removed all
recipients
---
README.md | 4 ----
pom.xml | 2 +-
.../java/org/zeroBzeroT/chatCo/PublicChat.java | 16 ++++++++--------
.../java/org/zeroBzeroT/chatCo/Whispers.java | 6 +-----
4 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/README.md b/README.md
index 9684494..3eed184 100644
--- a/README.md
+++ b/README.md
@@ -75,10 +75,6 @@ You can customize the appearance of whispers.
- Write [SPOILER]text[/SPOILER] to make a spoiler.
- Write /show spoiler [1-5] to view spoilers.
-### Planned Features
-
-- Fully Async Chat
-
### Tested Minecraft Versions
- 1.12.2
diff --git a/pom.xml b/pom.xml
index 3cadfa0..e473d06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.zeroBzeroT.chatCo
ChatCoPlus
- 0.27.3
+ 0.27.4
jar
${project.artifactId}
diff --git a/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java b/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java
index 4702379..3ee076f 100644
--- a/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java
+++ b/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java
@@ -59,11 +59,9 @@ public String replaceInlineColors(String message, final Player player) {
@EventHandler(ignoreCancelled = true)
public void onPlayerChat(final AsyncPlayerChatEvent event) {
// Set format to the plain message, since the player is not needed
+ String oldFormat = event.getFormat();
event.setFormat("%2$s");
- // Cancel the event, because the chat is rewritten to system messages
- event.setCancelled(true);
-
// Plain message
final Player player = event.getPlayer();
String legacyMessage = replacePrefixColors(event.getMessage(), player);
@@ -71,6 +69,7 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) {
// Do not send empty messages
if (ChatColor.stripColor(legacyMessage).trim().length() == 0) {
+ event.setCancelled(true);
return;
}
@@ -91,10 +90,6 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) {
message.addExtra(componentFromLegacyText("> "));
message.addExtra(messageText);
- // Send to console
- if (plugin.getConfig().getBoolean("ChatCo.chatToConsole", true))
- plugin.getLogger().info(message.toLegacyText());
-
// Send to the players
for (Player recipient : event.getRecipients()) {
try {
@@ -104,11 +99,16 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) {
(!chatPlayer.isIgnored(player.getName()) || !plugin.getConfig().getBoolean("ChatCo.ignoresEnabled", true))) {
recipient.spigot().sendMessage(message);
}
-
} catch (NullPointerException e) {
e.printStackTrace();
}
}
+
+ // Do not send it to the players again - no event cancelling, so that other plugins can process the chat
+ event.getRecipients().clear();
+
+ // Write back the old format
+ event.setFormat(oldFormat);
}
@EventHandler
diff --git a/src/main/java/org/zeroBzeroT/chatCo/Whispers.java b/src/main/java/org/zeroBzeroT/chatCo/Whispers.java
index 8617e0e..7e7733b 100644
--- a/src/main/java/org/zeroBzeroT/chatCo/Whispers.java
+++ b/src/main/java/org/zeroBzeroT/chatCo/Whispers.java
@@ -8,7 +8,6 @@
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
@@ -28,10 +27,7 @@ public Whispers(final Main plugin) {
this.plugin = plugin;
}
- /**
- * high event priority (lower rank) makes it easier for other plugins to block commands of this plugin
- */
- @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
+ @EventHandler(ignoreCancelled = true)
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
final String[] args = event.getMessage().split(" ");
final Player sender = event.getPlayer();