aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch')
-rw-r--r--patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch
new file mode 100644
index 0000000000..f13fdb5601
--- /dev/null
+++ b/patches/api/0385-More-vanilla-friendly-methods-to-update-trades.patch
@@ -0,0 +1,57 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Lulu13022002 <[email protected]>
+Date: Sun, 16 Oct 2022 15:58:38 +0200
+Subject: [PATCH] More vanilla friendly methods to update trades
+
+
+diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
+index 8c8176121cafed0ed09239b6a7b392dc846438e2..3bc24457d143449e6a338d79becf7c39b9f81054 100644
+--- a/src/main/java/org/bukkit/entity/Villager.java
++++ b/src/main/java/org/bukkit/entity/Villager.java
+@@ -60,8 +60,11 @@ public interface Villager extends AbstractVillager {
+ * A villager with a level of 1 and no experience is liable to lose its
+ * profession.
+ *
++ * This doesn't update the trades of this villager.
++ *
+ * @param level the new level
+ * @throws IllegalArgumentException if level not between [1, 5]
++ * @see #increaseLevel(int)
+ */
+ public void setVillagerLevel(int level);
+
+@@ -81,6 +84,34 @@ public interface Villager extends AbstractVillager {
+ public void setVillagerExperience(int experience);
+
+ // Paper start
++ /**
++ * Increases the level of this villager.
++ * The villager will also unlock new recipes unlike the raw
++ * method {@link #setVillagerLevel(int)}.
++ * <p>
++ * A villager with a level of 1 and no experience is liable to lose its
++ * profession.
++ * <p>
++ * A master villager has a level of 5 in its profession and
++ * will unlock 10 trades (2 per level).
++ *
++ * @param amount The amount of level
++ * @return Whether trades are unlocked
++ * @throws IllegalArgumentException if current level plus the amount
++ * isn't between [1, 5] or the amount isn't positive
++ * @see #setVillagerLevel(int)
++ */
++ boolean increaseLevel(int amount);
++
++ /**
++ * Gives to this villager some potential new trades
++ * based to its profession and level.
++ * @param amount The amount of trades to give
++ * @return Whether trades are added
++ * @throws IllegalArgumentException if the amount isn't positive
++ */
++ boolean addTrades(int amount);
++
+ /**
+ * Gets the amount of times a villager has restocked their trades today
+ * @return The amount of trade restocks.