mirror of
https://github.com/AtlasMediaGroup/Scissors.git
synced 2024-11-18 03:06:11 +00:00
41e0723e0e
* First pass * Second pass * Limit string tag visitors to 1024 elements * Split configuration patch into multiple patches * Third and final pass * Fix build error
60 lines
3.0 KiB
Diff
60 lines
3.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Video <videogamesm12@gmail.com>
|
|
Date: Sat, 12 Mar 2022 19:34:59 -0700
|
|
Subject: [PATCH] UUID validation
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/nbt/NbtUtils.java b/src/main/java/net/minecraft/nbt/NbtUtils.java
|
|
index 6dac24354192bea79a4b9eb721543110826790b2..a9c3c55eb622b18c74d8a9bd472e4e871d11b2aa 100644
|
|
--- a/src/main/java/net/minecraft/nbt/NbtUtils.java
|
|
+++ b/src/main/java/net/minecraft/nbt/NbtUtils.java
|
|
@@ -78,7 +78,11 @@ public final class NbtUtils {
|
|
}
|
|
// Paper start - support string UUID's
|
|
if (nbt.contains("Id", 8)) {
|
|
- uUID = UUID.fromString(nbt.getString("Id"));
|
|
+ // Scissors start - Validate String UUIDs in game profiles
|
|
+ try {
|
|
+ uUID = UUID.fromString(nbt.getString("Id"));
|
|
+ } catch (Exception ignored) {}
|
|
+ // Scissors end
|
|
}
|
|
// Paper end
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/chat/HoverEvent.java b/src/main/java/net/minecraft/network/chat/HoverEvent.java
|
|
index 3ad05bbab726c59e7b67d9614af4b208d4520cb3..c0633f9553fb5aa52e8ffc863159521d09cb3bd5 100644
|
|
--- a/src/main/java/net/minecraft/network/chat/HoverEvent.java
|
|
+++ b/src/main/java/net/minecraft/network/chat/HoverEvent.java
|
|
@@ -174,7 +174,14 @@ public class HoverEvent {
|
|
} else {
|
|
JsonObject jsonObject = json.getAsJsonObject();
|
|
EntityType<?> entityType = BuiltInRegistries.ENTITY_TYPE.get(new ResourceLocation(GsonHelper.getAsString(jsonObject, "type")));
|
|
- UUID uUID = UUID.fromString(GsonHelper.getAsString(jsonObject, "id"));
|
|
+ // Scissors start
|
|
+ UUID uUID;
|
|
+ try {
|
|
+ uUID = UUID.fromString(GsonHelper.getAsString(jsonObject, "id"));
|
|
+ } catch (Exception ex) {
|
|
+ return null;
|
|
+ }
|
|
+ // Scissors end
|
|
Component component = Component.Serializer.fromJson(jsonObject.get("name"));
|
|
return new HoverEvent.EntityTooltipInfo(entityType, uUID, component);
|
|
}
|
|
@@ -186,7 +193,14 @@ public class HoverEvent {
|
|
CompoundTag compoundTag = TagParser.parseTag(text.getString());
|
|
Component component = Component.Serializer.fromJson(compoundTag.getString("name"));
|
|
EntityType<?> entityType = BuiltInRegistries.ENTITY_TYPE.get(new ResourceLocation(compoundTag.getString("type")));
|
|
- UUID uUID = UUID.fromString(compoundTag.getString("id"));
|
|
+ // Scissors start
|
|
+ UUID uUID;
|
|
+ try {
|
|
+ uUID = UUID.fromString(compoundTag.getString("id"));
|
|
+ } catch (Exception ex) {
|
|
+ return null;
|
|
+ }
|
|
+ // Scissors end
|
|
return new HoverEvent.EntityTooltipInfo(entityType, uUID, component);
|
|
} catch (Exception var5) {
|
|
return null;
|