papermc/Spigot-API-Patches/0074-Display-warning-on-deprecated-recipe-API.patch

39 lines
2.3 KiB
Diff
Raw Normal View History

2019-05-06 02:58:04 +00:00
From 6fa61bcbd8768d7501dea34c48490992d4edc2a4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 9 Dec 2017 12:40:25 -0500
Subject: [PATCH] Display warning on deprecated recipe API
Any plugin still using this API will result in the server saving an inconsistent UUID to player data files,
which then triggers warnings such as "Tried to load unrecognized recipe: bukkit:9e5b92f5-e549-4f47-b0a8-9f89390ed77b removed now."
on the players login.
Plugin authors need to define a key to keep it consistent between server restarts.
diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
2019-05-06 02:58:04 +00:00
index d74b3114..d742c405 100644
--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
2019-05-06 02:58:04 +00:00
@@ -25,6 +25,7 @@ public class ShapedRecipe implements Recipe, Keyed {
public ShapedRecipe(@NotNull ItemStack result) {
2019-05-06 02:58:04 +00:00
Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result.");
this.key = NamespacedKey.randomKey();
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace();
this.output = new ItemStack(result);
}
diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
2019-05-06 02:58:04 +00:00
index 68447fb8..84062dd7 100644
--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
2019-05-06 02:58:04 +00:00
@@ -26,6 +26,7 @@ public class ShapelessRecipe implements Recipe, Keyed {
public ShapelessRecipe(@NotNull ItemStack result) {
2019-05-06 02:58:04 +00:00
Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result.");
this.key = NamespacedKey.randomKey();
+ new Throwable("Warning: A plugin is creating a recipe using a Deprecated method. This will cause you to receive warnings stating 'Tried to load unrecognized recipe: bukkit:<ID>'. Please ask the author to give their recipe a static key using NamespacedKey.").printStackTrace();
this.output = new ItemStack(result);
}
--
2.21.0