mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Added the ability to add combustible items (#570)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: DoctaEnkoda <bierquejason@gmail.com>
|
||||
Date: Mon, 9 Aug 2021 13:22:03 +0200
|
||||
Subject: [PATCH] Added the ability to add combustible items
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||
index e4ec2a0c15a6ada5bef9671e427cd56413f18d80..390a0d09b78e46cfebe78bfa3d1dd73aedca8256 100644
|
||||
--- a/src/main/java/org/bukkit/Bukkit.java
|
||||
+++ b/src/main/java/org/bukkit/Bukkit.java
|
||||
@@ -2082,5 +2082,24 @@ public final class Bukkit {
|
||||
public static boolean isLagging() {
|
||||
return server.isLagging();
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Add an Item as fuel for furnaces
|
||||
+ *
|
||||
+ * @param material The material that will be the fuel
|
||||
+ * @param burnTime The time (in ticks) this item will burn for
|
||||
+ */
|
||||
+ public static void addFuel(@NotNull Material material, int burnTime) {
|
||||
+ server.addFuel(material, burnTime);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Remove an item as fuel for furnaces
|
||||
+ *
|
||||
+ * @param material The material that will no longer be a fuel
|
||||
+ */
|
||||
+ public static void removeFuel(@NotNull Material material) {
|
||||
+ server.removeFuel(material);
|
||||
+ }
|
||||
// Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 80c70522eecb08c0dbfadcdeb21c9cfac42d7902..faf8cff5c1b586d9404bdecb522d45a09fc7fe92 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -1827,5 +1827,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
* @return True if lagging
|
||||
*/
|
||||
boolean isLagging();
|
||||
+
|
||||
+ /**
|
||||
+ * Add an Item as fuel for furnaces
|
||||
+ *
|
||||
+ * @param material The material that will be the fuel
|
||||
+ * @param burnTime The time (in ticks) this item will burn for
|
||||
+ */
|
||||
+ public void addFuel(@NotNull Material material, int burnTime);
|
||||
+
|
||||
+ /**
|
||||
+ * Remove an item as fuel for furnaces
|
||||
+ *
|
||||
+ * @param material The material that will no longer be a fuel
|
||||
+ */
|
||||
+ public void removeFuel(@NotNull Material material);
|
||||
// Purpur end
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
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/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java
|
||||
index 2c64622577fdb6c2a5746471121403b633bf9042..0bd838b95d87fd2436f3674b7f16155e6c2dd720 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,26 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit
|
||||
// Paper end
|
||||
}
|
||||
|
||||
+ // Purpur start
|
||||
+ public static void addFuel(ItemStack itemStack, Integer burnTime) {
|
||||
+ Map<Item, Integer> map = Maps.newLinkedHashMap();
|
||||
+ if (cachedBurnDurations != null) {
|
||||
+ map.putAll(cachedBurnDurations);
|
||||
+ }
|
||||
+ 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();
|
||||
+ if (cachedBurnDurations != null) {
|
||||
+ map.putAll(cachedBurnDurations);
|
||||
+ }
|
||||
+ 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 c687ab0e629f40e5c0900b27f9243e09b7d217d4..012aa07f2f9e2711fbc4dc3af640bfbc59b8dbce 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -4,7 +4,6 @@ import com.google.common.base.Charsets;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
-import com.google.common.collect.ImmutableSet;
|
||||
import com.google.common.collect.Iterators;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.MapMaker;
|
||||
@@ -18,7 +17,6 @@ import com.mojang.serialization.Lifecycle;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufOutputStream;
|
||||
import io.netty.buffer.Unpooled;
|
||||
-import io.papermc.paper.logging.SysoutCatcher;
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
@@ -100,6 +98,7 @@ import net.minecraft.world.level.GameType;
|
||||
import net.minecraft.world.level.LevelSettings;
|
||||
import net.minecraft.world.level.biome.BiomeManager;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
+import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
|
||||
import net.minecraft.world.level.dimension.DimensionType;
|
||||
import net.minecraft.world.level.dimension.LevelStem;
|
||||
import net.minecraft.world.level.levelgen.PatrolSpawner;
|
||||
@@ -230,6 +229,7 @@ import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.scheduler.BukkitWorker;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.bukkit.util.permissions.DefaultPermissions;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
import org.yaml.snakeyaml.constructor.SafeConstructor;
|
||||
import org.yaml.snakeyaml.error.MarkedYAMLException;
|
||||
@@ -1362,6 +1362,19 @@ public final class CraftServer implements Server {
|
||||
return true;
|
||||
}
|
||||
|
||||
+ // Purpur Start
|
||||
+ @Override
|
||||
+ public void addFuel(@NotNull org.bukkit.Material material, int burnTime) {
|
||||
+ Preconditions.checkArgument(burnTime > 0, "BurnTime must be greater than 0");
|
||||
+ AbstractFurnaceBlockEntity.addFuel(net.minecraft.world.item.ItemStack.fromBukkitCopy(new ItemStack(material)), burnTime);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void removeFuel(@NotNull org.bukkit.Material material) {
|
||||
+ 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");
|
||||
Reference in New Issue
Block a user