Fix block data exception when cancelling PortalCreateEvent (#4199)

This commit is contained in:
Shane Freeder 2020-09-10 09:02:22 +01:00
parent 54890033d5
commit 44e822f7cf
1 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,40 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
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<BlockUtil.Rectangle> 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));
}