From 44e822f7cfd46d8dfbe9f0285ee41191b496295f Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Thu, 10 Sep 2020 09:02:22 +0100 Subject: [PATCH] Fix block data exception when cancelling PortalCreateEvent (#4199) --- ...xception-when-cancelling-PortalCreat.patch | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Spigot-Server-Patches/0578-Fix-block-data-exception-when-cancelling-PortalCreat.patch diff --git a/Spigot-Server-Patches/0578-Fix-block-data-exception-when-cancelling-PortalCreat.patch b/Spigot-Server-Patches/0578-Fix-block-data-exception-when-cancelling-PortalCreat.patch new file mode 100644 index 000000000..8cf7a57e7 --- /dev/null +++ b/Spigot-Server-Patches/0578-Fix-block-data-exception-when-cancelling-PortalCreat.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Shane Freeder +Date: Thu, 10 Sep 2020 09:00:02 +0100 +Subject: [PATCH] Fix block data exception when cancelling PortalCreateEvent + + +diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java +index 8b1e866b3e0362d3a391586bbf14702dc25b8c00..464a606cba532cb96d40e2aef1395972000f1d89 100644 +--- a/src/main/java/net/minecraft/server/EntityPlayer.java ++++ b/src/main/java/net/minecraft/server/EntityPlayer.java +@@ -1028,7 +1028,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { + Optional optional1 = worldserver.getTravelAgent().createPortal(blockposition, enumdirection_enumaxis, this, createRadius); // CraftBukkit + + if (!optional1.isPresent()) { +- EntityPlayer.LOGGER.error("Unable to create a portal, likely target out of worldborder"); ++ //EntityPlayer.LOGGER.error("Unable to create a portal, likely target out of worldborder"); // Paper + } + + return optional1; +diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java +index 205f3f697e9c31674a4ac8db38467bb2e61cfe6b..9273fc22df2c9618efb09a8f95fd7e7f08652f88 100644 +--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java ++++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java +@@ -120,6 +120,7 @@ public class PortalTravelAgent { + EnumDirection enumdirection1 = enumdirection.g(); + + if (!worldborder.a(blockposition1)) { ++ MinecraftServer.LOGGER.error("Unable to create a portal, likely target out of worldborder"); // Paper - restore this message + return Optional.empty(); + } + +@@ -160,7 +161,7 @@ public class PortalTravelAgent { + this.world.getServer().getPluginManager().callEvent(event); + if (!event.isCancelled()) { + blockList.updateList(); +- } ++ } else return Optional.empty(); // Paper + // CraftBukkit end + return Optional.of(new BlockUtil.Rectangle(blockposition1.immutableCopy(), 2, 3)); + }