mirror of
https://github.com/AtlasMediaGroup/Scissors.git
synced 2024-11-01 12:37:10 +00:00
41 lines
2.0 KiB
Diff
41 lines
2.0 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Telesphoreo <me@telesphoreo.me>
|
||
|
Date: Wed, 8 May 2024 12:08:31 -0500
|
||
|
Subject: [PATCH] Reject oversized components from updating
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/network/chat/ComponentUtils.java b/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
||
|
index 3365aed2b67ae0e4dd0410f5190ba474f146139b..5dea669ed5da073dcdfe4cbbf5521a622242563b 100644
|
||
|
--- a/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
||
|
+++ b/src/main/java/net/minecraft/network/chat/ComponentUtils.java
|
||
|
@@ -1,6 +1,7 @@
|
||
|
package net.minecraft.network.chat;
|
||
|
|
||
|
import com.google.common.collect.Lists;
|
||
|
+import com.google.gson.JsonParser;
|
||
|
import com.mojang.brigadier.Message;
|
||
|
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||
|
import com.mojang.datafixers.DataFixUtils;
|
||
|
@@ -38,8 +39,9 @@ public class ComponentUtils {
|
||
|
}
|
||
|
|
||
|
public static MutableComponent updateForEntity(@Nullable CommandSourceStack source, Component text, @Nullable Entity sender, int depth) throws CommandSyntaxException {
|
||
|
+ MutableComponent result; // Scissors
|
||
|
if (depth > 100) {
|
||
|
- return text.copy();
|
||
|
+ result = text.copy(); // Scissors
|
||
|
} else {
|
||
|
// Paper start - adventure; pass actual vanilla component
|
||
|
if (text instanceof io.papermc.paper.adventure.AdventureComponent adventureComponent) {
|
||
|
@@ -52,8 +54,9 @@ public class ComponentUtils {
|
||
|
mutableComponent.append(updateForEntity(source, component, sender, depth + 1));
|
||
|
}
|
||
|
|
||
|
- return mutableComponent.withStyle(resolveStyle(source, text.getStyle(), sender, depth));
|
||
|
+ result = mutableComponent.withStyle(resolveStyle(source, text.getStyle(), sender, depth));
|
||
|
}
|
||
|
+ return JsonParser.parseString(result.toString()).toString().length() > 65535 ? Component.empty() : result; // Scissors
|
||
|
}
|
||
|
|
||
|
private static Style resolveStyle(@Nullable CommandSourceStack source, Style style, @Nullable Entity sender, int depth) throws CommandSyntaxException {
|