mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-23 15:00:30 +01:00
Fix crash relating to bad recipes in furnace-like tile entities (#9011)
This commit is contained in:
parent
a13759afcc
commit
ef5fa90932
2 changed files with 37 additions and 0 deletions
|
@ -0,0 +1,19 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Sun, 19 Mar 2023 20:36:22 -0700
|
||||||
|
Subject: [PATCH] Fix crash relating to bad recipes in furnace-like tile
|
||||||
|
entities
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||||
|
index 2a786c9fd29dc2139cf487fa645cd43345d60167..a3f073066f6e2eea8964461ad2b0409ade202f35 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||||
|
@@ -632,6 +632,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||||
|
Entry<ResourceLocation> entry = (Entry) objectiterator.next();
|
||||||
|
|
||||||
|
worldserver.getRecipeManager().byKey((ResourceLocation) entry.getKey()).ifPresent((irecipe) -> {
|
||||||
|
+ if (!(irecipe instanceof AbstractCookingRecipe)) return; // Paper - don't process non-cooking recipes
|
||||||
|
list.add(irecipe);
|
||||||
|
AbstractFurnaceBlockEntity.createExperience(worldserver, vec3d, entry.getIntValue(), ((AbstractCookingRecipe) irecipe).getExperience(), blockposition, entityplayer, itemstack, amount); // CraftBukkit
|
||||||
|
});
|
|
@ -0,0 +1,18 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shane Freeder <theboyetronic@gmail.com>
|
||||||
|
Date: Thu, 30 Mar 2023 03:13:58 +0100
|
||||||
|
Subject: [PATCH] Treat sequence violations like they should be
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index 2d8488b9aa088b6d5f0c7e557b8ad0b29bc4cd88..d587b2c4e39bce7e098aa9fab361230f72770658 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -2124,6 +2124,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
|
public void ackBlockChangesUpTo(int sequence) {
|
||||||
|
if (sequence < 0) {
|
||||||
|
+ this.disconnect("Expected packet sequence nr >= 0", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper
|
||||||
|
throw new IllegalArgumentException("Expected packet sequence nr >= 0");
|
||||||
|
} else {
|
||||||
|
this.ackBlockChangesUpTo = Math.max(sequence, this.ackBlockChangesUpTo);
|
Loading…
Reference in a new issue