2022-08-23 02:37:27 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Telesphoreo <me@telesphoreo.me>
|
|
|
|
Date: Mon, 22 Aug 2022 21:33:37 -0500
|
|
|
|
Subject: [PATCH] Fixes out of bounds HangingEntity crash exploit
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java
|
2023-06-09 04:04:37 +00:00
|
|
|
index 66cf0a6cd1525ecf2615809210a26d55f445d07d..74fb79d4ea11f88f2c0de65b492a5fecc49684f1 100644
|
2022-08-23 02:37:27 +00:00
|
|
|
--- a/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/decoration/HangingEntity.java
|
2023-06-09 00:58:46 +00:00
|
|
|
@@ -270,6 +270,13 @@ public abstract class HangingEntity extends Entity {
|
2022-08-23 02:37:27 +00:00
|
|
|
public void readAdditionalSaveData(CompoundTag nbt) {
|
|
|
|
BlockPos blockposition = new BlockPos(nbt.getInt("TileX"), nbt.getInt("TileY"), nbt.getInt("TileZ"));
|
|
|
|
|
|
|
|
+ // Scissors start - Fixes exploit where bad TileX, TileY, and TileZ coordinates can crash servers
|
2023-06-09 04:04:37 +00:00
|
|
|
+ if (level().isLoadedAndInBounds(blockposition))
|
2022-08-23 02:37:27 +00:00
|
|
|
+ {
|
|
|
|
+ this.pos = blockposition;
|
|
|
|
+ }
|
|
|
|
+ // Scissors end
|
|
|
|
+
|
|
|
|
if (!blockposition.closerThan(this.blockPosition(), 16.0D)) {
|
|
|
|
HangingEntity.LOGGER.error("Hanging entity at invalid position: {}", blockposition);
|
|
|
|
} else {
|