Files
Purpur/patches/server/0249-Added-the-ability-to-add-combustible-items.patch
granny 8ea46a7e26 Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@a3dfe6d Updated Upstream (Bukkit/CraftBukkit/Spigot) (#6722)
PaperMC/Paper@fdd5c65 Fix CraftCriteria defaults map (#6723)
PaperMC/Paper@d54e8c5 Support components in command permission msgs (#6676)
PaperMC/Paper@e155002 Fix EntityPortalExitEvent not being called (#5617)
PaperMC/Paper@e4d8c47 Update adventure and fix command perm serialization NPE (#6729)
PaperMC/Paper@0cdeeef Remove unnecessary Velocity repo from server (#6730)
PaperMC/Paper@a419941 Add download link to the /version command (#6482)
PaperMC/Paper@8e661c6 Deprecate API methods added by 'Close Plugin Class Loaders on Disable' (#6737)
PaperMC/Paper@7991c4b Fix upstream block state factories (#6738)
PaperMC/Paper@bfe5622 Fix EntityPortalExitEvent target location
PaperMC/Paper@3391ccf Discard out of bounds chunks during regionfile header recalculation
PaperMC/Paper@cf4af9f Add config setting for logging player ip addresses. (#6342)
PaperMC/Paper@6dfc0f5 Add getChangedBlockData() property to BlockPhysicsEvent to expose BlockData (#6743)
PaperMC/Paper@0d1e187 Fix kicking ops when whitelist is reloaded (MC-171420) (#6742)
PaperMC/Paper@975f2e5 Filter ip address on join if setting is true (#6748)
2021-10-08 01:57:27 -07:00

77 lines
4.0 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: DoctaEnkoda <bierquejason@gmail.com>
Date: Mon, 9 Aug 2021 13:22:20 +0200
Subject: [PATCH] Added the ability to add combustible items
diff --git a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
index 37878812892ea5cdfdd2d76d87bd14e035eab908..a2e1aaed795823d4054414d704404ceb73bf4424 100644
--- a/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
+++ b/src/main/java/net/minecraft/world/inventory/AbstractFurnaceMenu.java
@@ -145,7 +145,13 @@ public abstract class AbstractFurnaceMenu extends RecipeBookMenu<Container> {
} else if (index != 1 && index != 0) {
if (this.canSmelt(itemstack1)) {
if (!this.moveItemStackTo(itemstack1, 0, 1, false)) {
- return ItemStack.EMPTY;
+ // Purpur start - fix #625
+ if (this.isFuel(itemstack1)) {
+ if (!this.moveItemStackTo(itemstack1, 1, 2, false)) {
+ return ItemStack.EMPTY;
+ }
+ }
+ // Purpur end
}
} else if (this.isFuel(itemstack1)) {
if (!this.moveItemStackTo(itemstack1, 1, 2, false)) {
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 c5a6d8da56cb62cb96e2c9975abd32a93441859f..1d08c05181f310bc904f71a0d70853960974690e 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
@@ -205,6 +205,22 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
// Paper end
}
+ // Purpur start
+ public static void addFuel(ItemStack itemStack, Integer burnTime) {
+ Map<Item, Integer> map = Maps.newLinkedHashMap();
+ map.putAll(getFuel());
+ map.put(itemStack.getItem(), burnTime);
+ cachedBurnDurations = com.google.common.collect.ImmutableMap.copyOf(map);
+ }
+
+ public static void removeFuel(ItemStack itemStack) {
+ Map<Item, Integer> map = Maps.newLinkedHashMap();
+ map.putAll(getFuel());
+ map.remove(itemStack.getItem());
+ cachedBurnDurations = com.google.common.collect.ImmutableMap.copyOf(map);
+ }
+ // Purpur End
+
// CraftBukkit start - add fields and methods
private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1cdc15dc93b64887abbc5e7df1a91fc4705df169..f0dd74a839295f6ac9afddc477759859c45ee0c2 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1401,6 +1401,19 @@ public final class CraftServer implements Server {
return true;
}
+ // Purpur Start
+ @Override
+ public void addFuel(org.bukkit.Material material, int burnTime) {
+ Preconditions.checkArgument(burnTime > 0, "BurnTime must be greater than 0");
+ net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.addFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)), burnTime);
+ }
+
+ @Override
+ public void removeFuel(org.bukkit.Material material) {
+ net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.removeFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)));
+ }
+ // Purpur End
+
@Override
public List<Recipe> getRecipesFor(ItemStack result) {
Validate.notNull(result, "Result cannot be null");