mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
2f92d4e00e
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 01bb6ba7 PR-936: Add new PersistentDataContainer methods and clean up docs bc145b90 PR-940: Create registry for banner pattern and cat type CraftBukkit Changes: cb2ea54de SPIGOT-7440, PR-1292: Fire EntityTeleportEvent for end gateways 4fea66e44 PR-1299: Add new PersistentDataContainer methods and clean up docs b483a20db PR-1303: Create registry for banner pattern and cat type 4642dd526 SPIGOT-7535: Fix maps not having an ID and also call MapInitializeEvent in more places
57 lines
2.2 KiB
Diff
57 lines
2.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
|
|
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.
|