geforkt von Mirrors/Paper
2873869bb1
Signs no longer have a specific isEdiable state, the entire API in this regard needs updating/deprecation. The boolean field is completely gone, replaced by a uuid (which will need a new setEditingPlayer(UUID) method on the Sign interface), and the current upstream implementation of setEdiable simply flips the is_waxed state. This patch is hence not needed as it neither allows editing (which will be redone in a later patch) nor is required to copy the is_waxed boolean flag as it lives in the signs compound tag and is covered by applyTo.
49 Zeilen
2.8 KiB
Diff
49 Zeilen
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 13 Jan 2022 15:20:47 -0800
|
|
Subject: [PATCH] Furnace RecipesUsed API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
index 3da4616c904d47bbecae0d4cb6970496fbec9a8b..f49bb90e6c30dd928b352c867819b687e4557893 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java
|
|
@@ -93,5 +93,37 @@ public abstract class CraftFurnace<T extends AbstractFurnaceBlockEntity> extends
|
|
snapshot.cookSpeedMultiplier = multiplier;
|
|
snapshot.cookingTotalTime = AbstractFurnaceBlockEntity.getTotalCookTime(this.isPlaced() ? this.world.getHandle() : null, snapshot.recipeType, snapshot, snapshot.cookSpeedMultiplier); // Update the snapshot's current total cook time to scale with the newly set multiplier
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public int getRecipeUsedCount(org.bukkit.NamespacedKey furnaceRecipe) {
|
|
+ return this.getSnapshot().getRecipesUsed().getInt(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(furnaceRecipe));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public boolean hasRecipeUsedCount(org.bukkit.NamespacedKey furnaceRecipe) {
|
|
+ return this.getSnapshot().getRecipesUsed().containsKey(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(furnaceRecipe));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setRecipeUsedCount(org.bukkit.inventory.CookingRecipe<?> furnaceRecipe, int count) {
|
|
+ final net.minecraft.resources.ResourceLocation location = org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(furnaceRecipe.getKey());
|
|
+ java.util.Optional<? extends net.minecraft.world.item.crafting.Recipe<?>> nmsRecipe = (this.isPlaced() ? this.world.getHandle().getRecipeManager() : net.minecraft.server.MinecraftServer.getServer().getRecipeManager()).byKey(location);
|
|
+ com.google.common.base.Preconditions.checkArgument(nmsRecipe.isPresent() && nmsRecipe.get() instanceof net.minecraft.world.item.crafting.AbstractCookingRecipe, furnaceRecipe.getKey() + " is not recognized as a valid and registered furnace recipe");
|
|
+ if (count > 0) {
|
|
+ this.getSnapshot().getRecipesUsed().put(location, count);
|
|
+ } else {
|
|
+ this.getSnapshot().getRecipesUsed().removeInt(location);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void setRecipesUsed(java.util.Map<org.bukkit.inventory.CookingRecipe<?>, Integer> recipesUsed) {
|
|
+ this.getSnapshot().getRecipesUsed().clear();
|
|
+ recipesUsed.forEach((recipe, integer) -> {
|
|
+ if (integer != null) {
|
|
+ this.setRecipeUsedCount(recipe, integer);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
// Paper end
|
|
}
|