Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 7ea8b96b4 #826: Make dispenser trigger fertilize event
34 lines
1.7 KiB
Diff
34 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Mon, 10 Jun 2019 09:36:40 +0100
|
|
Subject: [PATCH] Catch exceptions from dispenser entity spawns
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java b/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java
|
|
index a7d690cb2289a79ee2b8fc665caef58a10ddab3e..50911632341d1b861c00f01077cae43884147fe0 100644
|
|
--- a/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java
|
|
+++ b/src/main/java/net/minecraft/core/dispenser/IDispenseBehavior.java
|
|
@@ -8,6 +8,7 @@ import net.minecraft.core.BlockPosition;
|
|
import net.minecraft.core.EnumDirection;
|
|
import net.minecraft.core.IPosition;
|
|
import net.minecraft.core.ISourceBlock;
|
|
+import net.minecraft.server.MinecraftServer;
|
|
import net.minecraft.server.level.EntityPlayer;
|
|
import net.minecraft.server.level.WorldServer;
|
|
import net.minecraft.sounds.SoundCategory;
|
|
@@ -237,7 +238,14 @@ public interface IDispenseBehavior {
|
|
}
|
|
}
|
|
|
|
+ try { // Paper
|
|
entitytypes.spawnCreature(isourceblock.getWorld(), itemstack, (EntityHuman) null, isourceblock.getBlockPosition().shift(enumdirection), EnumMobSpawn.DISPENSER, enumdirection != EnumDirection.UP, false);
|
|
+ // Paper start
|
|
+ } catch (Exception ex){
|
|
+ MinecraftServer.LOGGER.warn("An exception occurred dispensing entity at {}[{}]", worldserver.getWorld().getName(), isourceblock.getBlockPosition(), ex);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
// itemstack.subtract(1); // Handled during event processing
|
|
// CraftBukkit end
|
|
return itemstack;
|