Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-15 12:30:06 +01:00
2d09115b3a
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
35 Zeilen
2.1 KiB
Diff
35 Zeilen
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 16 Jun 2022 14:22:56 -0700
|
|
Subject: [PATCH] Don't broadcast messages to command blocks
|
|
|
|
Previously the broadcast method would update the last output
|
|
in command blocks, and if called asynchronously, would throw
|
|
an error
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/BaseCommandBlock.java b/src/main/java/net/minecraft/world/level/BaseCommandBlock.java
|
|
index e05eb08a9c229b371887676da510df948b896a85..ceeedbd88c56c08ec8b047c9ca2f14cc581e12ad 100644
|
|
--- a/src/main/java/net/minecraft/world/level/BaseCommandBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/BaseCommandBlock.java
|
|
@@ -172,6 +172,7 @@ public abstract class BaseCommandBlock implements CommandSource {
|
|
@Override
|
|
public void sendSystemMessage(Component message) {
|
|
if (this.trackOutput) {
|
|
+ org.spigotmc.AsyncCatcher.catchOp("sendSystemMessage to a command block"); // Paper
|
|
SimpleDateFormat simpledateformat = BaseCommandBlock.TIME_FORMAT;
|
|
Date date = new Date();
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index a640587213b3c68b46363b1fdd06af37391efa2c..b6e676be787d477c2fe78a0c84a02ae0050f257f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -1789,7 +1789,7 @@ public final class CraftServer implements Server {
|
|
// Paper end
|
|
Set<CommandSender> recipients = new HashSet<>();
|
|
for (Permissible permissible : this.getPluginManager().getPermissionSubscriptions(permission)) {
|
|
- if (permissible instanceof CommandSender && permissible.hasPermission(permission)) {
|
|
+ if (permissible instanceof CommandSender && !(permissible instanceof org.bukkit.command.BlockCommandSender) && permissible.hasPermission(permission)) { // Paper - don't broadcast to BlockCommandSender (specifically Command Blocks)
|
|
recipients.add((CommandSender) permissible);
|
|
}
|
|
}
|