diff --git a/patches/server/0042-Limit-map-decoration-text-length.patch b/patches/server/0042-Limit-map-decoration-text-length.patch new file mode 100644 index 0000000..b979d3f --- /dev/null +++ b/patches/server/0042-Limit-map-decoration-text-length.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Luna +Date: Fri, 28 Apr 2023 16:29:23 -0300 +Subject: [PATCH] Limit map decoration text length + + +diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapDecoration.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapDecoration.java +index 347d2914f9560a3ee8cea59444bc0dfbb7cf3456..b225f770869832775c9a8a79ffaf89e98245cc2e 100644 +--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapDecoration.java ++++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapDecoration.java +@@ -2,6 +2,7 @@ package net.minecraft.world.level.saveddata.maps; + + import java.util.Objects; + import javax.annotation.Nullable; ++import net.minecraft.ChatFormatting; + import net.minecraft.network.chat.Component; + import net.minecraft.util.Mth; + +@@ -14,6 +15,12 @@ public class MapDecoration { + private final Component name; + + public MapDecoration(MapDecoration.Type type, byte x, byte z, byte rotation, @Nullable Component text) { ++ // Scissors start - Limit decoration text length ++ if (text != null && text.getString().length() > 32) { ++ text = null; ++ } ++ // Scissors end ++ + this.type = type; + this.x = x; + this.y = z; diff --git a/patches/server/0043-Limit-map-decoration-count.patch b/patches/server/0043-Limit-map-decoration-count.patch new file mode 100644 index 0000000..830b1d3 --- /dev/null +++ b/patches/server/0043-Limit-map-decoration-count.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Luna +Date: Fri, 28 Apr 2023 16:34:15 -0300 +Subject: [PATCH] Limit map decoration count + + +diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +index 25a64250ce57fe4cd90f8b95d1e003d961662152..60e013d418b1aa8c154ca9474186191aa5c9041d 100644 +--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java ++++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +@@ -356,6 +356,12 @@ public class MapItemSavedData extends SavedData { + } + + private void addDecoration(MapDecoration.Type type, @Nullable LevelAccessor world, String key, double x, double z, double rotation, @Nullable Component text) { ++ // Scissors start - Limit decoration count ++ if (this.decorations.size() > 32) { ++ return; ++ } ++ // Scissors end ++ + int i = 1 << this.scale; + float f = (float) (x - (double) this.centerX) / (float) i; + float f1 = (float) (z - (double) this.centerZ) / (float) i; diff --git a/patches/server/0044-Prevent-player-banning-using-duplicate-UUIDs.patch b/patches/server/0044-Prevent-player-banning-using-duplicate-UUIDs.patch new file mode 100644 index 0000000..145dd2f --- /dev/null +++ b/patches/server/0044-Prevent-player-banning-using-duplicate-UUIDs.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Luna +Date: Fri, 28 Apr 2023 16:44:50 -0300 +Subject: [PATCH] Prevent player banning using duplicate UUIDs + + +diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java +index 3bb63a652aca3c23f5f1bbf9cb70fce6540f2e33..934c0d14bd4ac1ece0c0f6add0e3e996e85a9b93 100644 +--- a/src/main/java/net/minecraft/server/level/ServerLevel.java ++++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +@@ -1468,7 +1468,14 @@ public class ServerLevel extends Level implements WorldGenLevel { + if (entity != null) { + ServerLevel.LOGGER.warn("Force-added player with duplicate UUID {}", player.getUUID().toString()); + entity.unRide(); +- this.removePlayerImmediately((ServerPlayer) entity, Entity.RemovalReason.DISCARDED); ++ ++ // Scissors start - Prevent player banning using duplicate UUIDs ++ if (entity instanceof ServerPlayer serverPlayer) { ++ this.removePlayerImmediately(serverPlayer, Entity.RemovalReason.DISCARDED); ++ } else { ++ entity.discard(); ++ } ++ // Scissors end + } + + this.entityLookup.addNewEntity(player); // Paper - rewite chunk system diff --git a/patches/server/0045-Don-t-warn-on-duplicate-entity-UUIDs.patch b/patches/server/0045-Don-t-warn-on-duplicate-entity-UUIDs.patch new file mode 100644 index 0000000..512497e --- /dev/null +++ b/patches/server/0045-Don-t-warn-on-duplicate-entity-UUIDs.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Luna +Date: Fri, 28 Apr 2023 16:46:00 -0300 +Subject: [PATCH] Don't warn on duplicate entity UUIDs + + +diff --git a/src/main/java/io/papermc/paper/chunk/system/entity/EntityLookup.java b/src/main/java/io/papermc/paper/chunk/system/entity/EntityLookup.java +index 61c170555c8854b102c640b0b6a615f9f732edbf..29f46a137584a5f52f3c30b4c352d58ca61488a3 100644 +--- a/src/main/java/io/papermc/paper/chunk/system/entity/EntityLookup.java ++++ b/src/main/java/io/papermc/paper/chunk/system/entity/EntityLookup.java +@@ -366,7 +366,7 @@ public final class EntityLookup implements LevelEntityGetter { + return false; + } + if (this.entityByUUID.containsKey(entity.getUUID())) { +- LOGGER.warn("Entity uuid already exists: " + entity.getUUID() + ", mapped to " + this.entityByUUID.get(entity.getUUID()) + ", can't add " + entity); ++ // Scissors - Don't warn on duplicate entity UUIDs + return false; + } + this.entityById.put(entity.getId(), entity);