Allow enabling sand duping (#10191)

Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable.

It should be noted that this decision does not promise all future exploits will be configurable.
This commit is contained in:
Owen1212055
2024-03-03 17:05:34 -05:00
parent ae0c893174
commit 7415dcf70e
3 changed files with 8 additions and 40 deletions

View File

@@ -55,7 +55,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
}
this.processPortalCooldown();
+ this.tickEndPortal(); // Paper - make end portalling safe
+ if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowUnsafeEndPortalTeleportation) this.tickEndPortal(); // Paper - make end portalling safe
}
}
@@ -74,12 +74,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- if (entity instanceof ServerPlayer) {
- ((ServerPlayer) entity).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
- return;
- }
- // CraftBukkit end
- entity.changeDimension(worldserver);
+ // Paper start - move all of this logic into portal tick
+ entity.portalWorld = ((ServerLevel)world);
+ entity.portalBlock = pos.immutable();
+ if (io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowUnsafeEndPortalTeleportation) {
+ entity.tickEndPortal();
}
- // CraftBukkit end
- entity.changeDimension(worldserver);
+ // Paper end - move all of this logic into portal tick
}