From 938557e97b2d7dcf4adc4509bb09a74829041651 Mon Sep 17 00:00:00 2001 From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com> Date: Fri, 31 Mar 2023 06:09:13 +0200 Subject: [PATCH] [ci skip] Correct upstream/paper javadoc (#8286) --- .../Add-Ban-Methods-to-Player-Objects.patch | 4 +- ...reResultEvent-PrepareGrindstoneEvent.patch | 2 +- .../api/Add-exception-reporting-event.patch | 2 +- patches/api/Add-more-advancement-API.patch | 14 +- patches/api/Add-worldborder-events.patch | 2 +- .../Added-PlayerChangeBeaconEffectEvent.patch | 6 +- ...-serialization-deserialization-for-P.patch | 2 +- ...tional-world.getNearbyEntities-API-s.patch | 14 - patches/api/Async-Chunks-API.patch | 36 +- .../api/Beacon-API-custom-effect-ranges.patch | 2 +- .../api/Fix-Spigot-annotation-mistakes.patch | 33 + patches/api/Fix-upstream-javadocs.patch | 616 +++++++++++++++++- patches/api/Improve-death-events.patch | 3 +- patches/api/Improve-scoreboard-entries.patch | 6 +- patches/api/Inventory-close.patch | 2 +- .../Multiple-Entries-with-Scoreboards.patch | 8 +- patches/api/PreCreatureSpawnEvent.patch | 2 +- patches/api/Server-Tick-Events.patch | 2 +- patches/api/Slime-Pathfinder-Events.patch | 2 +- patches/api/WitchReadyPotionEvent.patch | 2 +- ...-TargetReasons-for-1.16-mob-behavior.patch | 4 +- patches/api/ensureServerConversions-API.patch | 4 +- 22 files changed, 700 insertions(+), 68 deletions(-) diff --git a/patches/api/Add-Ban-Methods-to-Player-Objects.patch b/patches/api/Add-Ban-Methods-to-Player-Objects.patch index 80a67b5d1d..cc1a03b8f2 100644 --- a/patches/api/Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/Add-Ban-Methods-to-Player-Objects.patch @@ -211,7 +211,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)} + * @param reason Reason for Ban + * @param expires When to expire the ban -+ * @param source Source of the banm or null for default ++ * @param source Source of the ban or null for default + * @return Ban Entry + */ + @Nullable @@ -224,7 +224,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)} + * @param reason Reason for Ban + * @param expires When to expire the ban -+ * @param source Source of the banm or null for default ++ * @param source Source of the ban or null for default + * @param kickPlayer if the targeted player should be kicked + * @return Ban Entry + */ diff --git a/patches/api/Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/Add-PrepareResultEvent-PrepareGrindstoneEvent.patch index d6f443c481..b561f8820c 100644 --- a/patches/api/Add-PrepareResultEvent-PrepareGrindstoneEvent.patch +++ b/patches/api/Add-PrepareResultEvent-PrepareGrindstoneEvent.patch @@ -103,7 +103,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public PrepareAnvilEvent(@NotNull InventoryView inventory, @Nullable ItemStack result) { super(inventory, result); @@ -0,0 +0,0 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent { - return (AnvilInventory) super.getInventory(); + super.setResult(result); } - @NotNull diff --git a/patches/api/Add-exception-reporting-event.patch b/patches/api/Add-exception-reporting-event.patch index 89475e4f38..adc44eb4cb 100644 --- a/patches/api/Add-exception-reporting-event.patch +++ b/patches/api/Add-exception-reporting-event.patch @@ -364,7 +364,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + /** -+ * Gets the channel to which the error occurred from recieving data from ++ * Gets the channel to which the error occurred from receiving data from + * + * @return exception channel + */ diff --git a/patches/api/Add-more-advancement-API.patch b/patches/api/Add-more-advancement-API.patch index 27753aceae..1b5b1a95c0 100644 --- a/patches/api/Add-more-advancement-API.patch +++ b/patches/api/Add-more-advancement-API.patch @@ -194,8 +194,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * recipes. * - * This includes it's name, description and other visible tags. ++ * This includes its name, description and other visible tags. + * +- * @return a AdvancementDisplay object, or null if not set. + * @return the display info -+ */ + */ +- @Nullable +- AdvancementDisplay getDisplay(); + @org.jetbrains.annotations.Nullable + io.papermc.paper.advancement.AdvancementDisplay getDisplay(); + @@ -205,13 +210,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * completes the advancement. Will return the same as + * {@link io.papermc.paper.advancement.AdvancementDisplay#displayName()} when an + * {@link io.papermc.paper.advancement.AdvancementDisplay} is present. - * -- * @return a AdvancementDisplay object, or null if not set. ++ * + * @return the display name + * @see io.papermc.paper.advancement.AdvancementDisplay#displayName() - */ -- @Nullable -- AdvancementDisplay getDisplay(); ++ */ + @NotNull net.kyori.adventure.text.Component displayName(); + + /** diff --git a/patches/api/Add-worldborder-events.patch b/patches/api/Add-worldborder-events.patch index d657ce7283..86953bb271 100644 --- a/patches/api/Add-worldborder-events.patch +++ b/patches/api/Add-worldborder-events.patch @@ -138,7 +138,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +import org.jetbrains.annotations.NotNull; + +/** -+ * Called when a moving world border has finished it's move. ++ * Called when a moving world border has finished its move. + */ +public class WorldBorderBoundsChangeFinishEvent extends WorldBorderEvent { + diff --git a/patches/api/Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/Added-PlayerChangeBeaconEffectEvent.patch index 1f175094a3..cb548febfc 100644 --- a/patches/api/Added-PlayerChangeBeaconEffectEvent.patch +++ b/patches/api/Added-PlayerChangeBeaconEffectEvent.patch @@ -88,9 +88,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + /** -+ * Gets if the item used to change the beacon will be consume. ++ * Gets if the item used to change the beacon will be consumed. + *
-+ * Independant of {@link #isCancelled()}. If the event is cancelled ++ * Independent of {@link #isCancelled()}. If the event is cancelled + * the item will NOT be consumed. + * + * @return true if item will be consumed @@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + /** + * Sets if the item used to change the beacon should be consumed. + *
-+ * Independant of {@link #isCancelled()}. If the event is cancelled ++ * Independent of {@link #isCancelled()}. If the event is cancelled + * the item will NOT be consumed. + * + * @param consumeItem true if item should be consumed diff --git a/patches/api/Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/Added-byte-array-serialization-deserialization-for-P.patch index 7968caf3e1..e0c2af1974 100644 --- a/patches/api/Added-byte-array-serialization-deserialization-for-P.patch +++ b/patches/api/Added-byte-array-serialization-deserialization-for-P.patch @@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * Serialize this {@link PersistentDataContainer} instance to a + * byte array. + * -+ * @return a binary represenation of this container ++ * @return a binary representation of this container + * @throws java.io.IOException if we fail to write this container to a byte array + */ + byte @NotNull [] serializeToBytes() throws java.io.IOException; diff --git a/patches/api/Additional-world.getNearbyEntities-API-s.patch b/patches/api/Additional-world.getNearbyEntities-API-s.patch index a9a98e66fb..f57a5b08c1 100644 --- a/patches/api/Additional-world.getNearbyEntities-API-s.patch +++ b/patches/api/Additional-world.getNearbyEntities-API-s.patch @@ -276,17 +276,3 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 /** * Get a list of all players in this World * -diff --git a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -+++ b/src/main/java/org/bukkit/event/player/AsyncPlayerPreLoginEvent.java -@@ -0,0 +0,0 @@ public class AsyncPlayerPreLoginEvent extends Event { - return profile; - } - -- /** -- * Changes the PlayerProfile the player will login as -+ /* * Changes the PlayerProfile the player will login as - * @param profile The profile to use - */ - public void setPlayerProfile(@NotNull PlayerProfile profile) { diff --git a/patches/api/Async-Chunks-API.patch b/patches/api/Async-Chunks-API.patch index d85b5b9c0c..ca05877a8c 100644 --- a/patches/api/Async-Chunks-API.patch +++ b/patches/api/Async-Chunks-API.patch @@ -56,8 +56,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * on the main Server Thread. + * + * @deprecated Use either the Future or the Consumer based methods -+ * @param x Chunk X-coordinate of the chunk - (world coordinate / 16) -+ * @param z Chunk Z-coordinate of the chunk - (world coordinate / 16) ++ * @param x Chunk X-coordinate of the chunk - floor(world coordinate / 16) ++ * @param z Chunk Z-coordinate of the chunk - floor(world coordinate / 16) + * @param cb Callback to receive the chunk when it is loaded. + * will be executed synchronously + */ @@ -134,8 +134,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The {@link java.util.function.Consumer} will always be executed synchronously + * on the main Server Thread. + * -+ * @param x Chunk X-coordinate of the chunk - (world coordinate / 16) -+ * @param z Chunk Z-coordinate of the chunk - (world coordinate / 16) ++ * @param x Chunk X-coordinate of the chunk - floor(world coordinate / 16) ++ * @param z Chunk Z-coordinate of the chunk - floor(world coordinate / 16) + * @param cb Callback to receive the chunk when it is loaded. + * will be executed synchronously + */ @@ -159,9 +159,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The {@link java.util.function.Consumer} will always be executed synchronously + * on the main Server Thread. + * -+ * @param x Chunk X-coordinate of the chunk - (world coordinate / 16) -+ * @param z Chunk Z-coordinate of the chunk - (world coordinate / 16) -+ * @param gen Should we generate a chunk if it doesn't exists or not ++ * @param x Chunk X-coordinate of the chunk - floor(world coordinate / 16) ++ * @param z Chunk Z-coordinate of the chunk - floor(world coordinate / 16) ++ * @param gen Should we generate a chunk if it doesn't exist or not + * @param cb Callback to receive the chunk when it is loaded. + * will be executed synchronously + */ @@ -207,7 +207,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * on the main Server Thread. + * + * @param loc Location of the chunk -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @param cb Callback to receive the chunk when it is loaded. + * will be executed synchronously + */ @@ -250,7 +250,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * on the main Server Thread. + * + * @param block Block to get the containing chunk from -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @param cb Callback to receive the chunk when it is loaded. + * will be executed synchronously + */ @@ -291,7 +291,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * @param loc Location to load the corresponding chunk from -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @return Future that will resolve when the chunk is loaded + */ + @NotNull @@ -332,7 +332,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * @param block Block to load the corresponding chunk from -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @return Future that will resolve when the chunk is loaded + */ + @NotNull @@ -353,8 +353,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * -+ * @param x X Coord -+ * @param z Z Coord ++ * @param x Chunk X-coordinate of the chunk - floor(world coordinate / 16) ++ * @param z Chunk Z-coordinate of the chunk - floor(world coordinate / 16) + * @return Future that will resolve when the chunk is loaded + */ + @NotNull @@ -375,9 +375,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * -+ * @param x Chunk X-coordinate of the chunk - (world coordinate / 16) -+ * @param z Chunk Z-coordinate of the chunk - (world coordinate / 16) -+ * @param gen Should we generate a chunk if it doesn't exists or not ++ * @param x Chunk X-coordinate of the chunk - floor(world coordinate / 16) ++ * @param z Chunk Z-coordinate of the chunk - floor(world coordinate / 16) ++ * @param gen Should we generate a chunk if it doesn't exist or not + * @return Future that will resolve when the chunk is loaded + */ + @NotNull @@ -418,7 +418,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * @param loc Location to load the corresponding chunk from -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @return Future that will resolve when the chunk is loaded + */ + @NotNull @@ -459,7 +459,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + * The future will always be executed synchronously + * on the main Server Thread. + * @param block Block to load the corresponding chunk from -+ * @param gen Should the chunk generate ++ * @param gen Should the chunk generate if it doesn't exist + * @return Future that will resolve when the chunk is loaded + */ + @NotNull diff --git a/patches/api/Beacon-API-custom-effect-ranges.patch b/patches/api/Beacon-API-custom-effect-ranges.patch index 02e40fb633..a4ad1e1802 100644 --- a/patches/api/Beacon-API-custom-effect-ranges.patch +++ b/patches/api/Beacon-API-custom-effect-ranges.patch @@ -29,7 +29,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + void setEffectRange(double range); + + /** -+ * Resets the custom range from this beacon and falls back to the range based on the the beacon tier. ++ * Resets the custom range from this beacon and falls back to the range based on the beacon tier. + * Shortcut for setting the effect range to a negative number. + */ + void resetEffectRange(); diff --git a/patches/api/Fix-Spigot-annotation-mistakes.patch b/patches/api/Fix-Spigot-annotation-mistakes.patch index bd4fedd28d..8e72436f37 100644 --- a/patches/api/Fix-Spigot-annotation-mistakes.patch +++ b/patches/api/Fix-Spigot-annotation-mistakes.patch @@ -331,6 +331,20 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 */ +@Deprecated(forRemoval = true) // Paper public interface LingeringPotion extends ThrownPotion { } +diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/entity/LivingEntity.java ++++ b/src/main/java/org/bukkit/entity/LivingEntity.java +@@ -0,0 +0,0 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * This may have unexpected results if the entity is not in water. + * + * @param swimming True if the entity is swimming. ++ * @deprecated This does nothing and is immediately reverted by the server, in the next tick + */ ++ @Deprecated // Paper + public void setSwimming(boolean swimming); + + /** diff --git a/src/main/java/org/bukkit/entity/Minecart.java b/src/main/java/org/bukkit/entity/Minecart.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/entity/Minecart.java @@ -462,6 +476,25 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 return offers; } +diff --git a/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java b/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityToggleSwimEvent.java +@@ -0,0 +0,0 @@ public class EntityToggleSwimEvent extends EntityEvent implements Cancellable { + return cancel; + } + ++ /** ++ * @deprecated This does nothing, the server and the client doesn't work ++ * correctly when the server try to bypass this. A current workaround ++ * exists. If you want to cancel the switch from the ground state to the ++ * swimming state you need to disable the sprinting flag for the player after ++ * the cancel action. ++ */ ++ @Deprecated // Paper + @Override + public void setCancelled(boolean cancel) { + this.cancel = cancel; diff --git a/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java b/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/event/player/PlayerHideEntityEvent.java diff --git a/patches/api/Fix-upstream-javadocs.patch b/patches/api/Fix-upstream-javadocs.patch index da435d3d6c..6441f92427 100644 --- a/patches/api/Fix-upstream-javadocs.patch +++ b/patches/api/Fix-upstream-javadocs.patch @@ -5,10 +5,69 @@ Subject: [PATCH] Fix upstream javadocs Upstream still refuses to use Java 8 with the API so they are likely unaware these are even issues. +diff --git a/src/main/java/org/bukkit/BanList.java b/src/main/java/org/bukkit/BanList.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/BanList.java ++++ b/src/main/java/org/bukkit/BanList.java +@@ -0,0 +0,0 @@ public interface BanList { + + /** + * Gets a {@link BanEntry} by target. ++ *
++ * Bans by name for ban type {@link Type#NAME NAME} are no longer supported and this method will return ++ * null when trying to request them. The replacement is bans by UUID. + * + * @param target entry parameter to search for + * @return the corresponding entry, or null if none found +@@ -0,0 +0,0 @@ public interface BanList { + public BanEntry getBanEntry(@NotNull String target); + + /** +- * Adds a ban to the this list. If a previous ban exists, this will ++ * Adds a ban to this list. If a previous ban exists, this will + * update the previous entry. ++ *
++ * Bans by name for ban type {@link Type#NAME NAME} are no longer supported and this method will return ++ * null when trying to request them. The replacement is bans by UUID. + * + * @param target the target of the ban + * @param reason reason for the ban, null indicates implementation default +@@ -0,0 +0,0 @@ public interface BanList { + /** + * Gets if a {@link BanEntry} exists for the target, indicating an active + * ban status. ++ *
++ * Bans by name for ban type {@link Type#NAME NAME} are no longer supported. ++ * The replacement is bans by UUID. + * + * @param target the target to find + * @return true if a {@link BanEntry} exists for the name, indicating an +@@ -0,0 +0,0 @@ public interface BanList { + /** + * Removes the specified target from this list, therefore indicating a + * "not banned" status. ++ *
++ * Bans by name for ban type {@link Type#NAME NAME} are no longer supported. ++ * The replacement is bans by UUID. + * + * @param target the target to remove from this list + */ diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java +@@ -0,0 +0,0 @@ public final class Bukkit { + } + + /** +- * Gets a ban list for the supplied type. +- *
+- * Bans by name are no longer supported and this method will return +- * null when trying to request them. The replacement is bans by UUID. ++ * Gets a ban list for the supplied type. + * + * @param type the type of list to fetch, cannot be null + * @return a ban list of the specified type @@ -0,0 +0,0 @@ public final class Bukkit { /** @@ -31,6 +90,45 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 * @param z Z-coordinate (0-15) * @return temperature at given coordinate */ +diff --git a/src/main/java/org/bukkit/RegionAccessor.java b/src/main/java/org/bukkit/RegionAccessor.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/RegionAccessor.java ++++ b/src/main/java/org/bukkit/RegionAccessor.java +@@ -0,0 +0,0 @@ public interface RegionAccessor { + * Creates a tree at the given {@link Location} + * + * @param location Location to spawn the tree +- * @param random Random to use to generated the tree ++ * @param random Random to use to generate the tree + * @param type Type of the tree to create + * @return true if the tree was created successfully, otherwise false + */ +@@ -0,0 +0,0 @@ public interface RegionAccessor { + * The provided consumer gets called for every block which gets changed + * as a result of the tree generation. When the consumer gets called no + * modifications to the world are done yet. Which means, that calling +- * {@link #getBlockState(Location)} in the consumer while return the state ++ * {@link #getBlockState(Location)} in the consumer will return the state + * of the block before the generation. + *
+ * Modifications done to the {@link BlockState} in the consumer are respected,
+ * which means that it is not necessary to call {@link BlockState#update()}
+ *
+ * @param location Location to spawn the tree
+- * @param random Random to use to generated the tree
++ * @param random Random to use to generate the tree
+ * @param type Type of the tree to create
+ * @param stateConsumer The consumer which should get called for every block which gets changed
+ * @return true if the tree was created successfully, otherwise false
+@@ -0,0 +0,0 @@ public interface RegionAccessor {
+ * If it returns {@code false} the block won't get set in the world.
+ *
+ * @param location Location to spawn the tree
+- * @param random Random to use to generated the tree
++ * @param random Random to use to generate the tree
+ * @param type Type of the tree to create
+ * @param statePredicate The predicate which should get used to test if a block should be set or not.
+ * @return true if the tree was created successfully, otherwise false
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/Server.java
@@ -50,6 +148,18 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*/
public int getTicksPerSpawns(@NotNull SpawnCategory spawnCategory);
+@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
+ public Set
+- * Bans by name are no longer supported and this method will return
+- * null when trying to request them. The replacement is bans by UUID.
++ * Gets a ban list for the supplied type.
+ *
+ * @param type the type of list to fetch, cannot be null
+ * @return a ban list of the specified type
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
/**
@@ -59,6 +169,50 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @return an array containing all previous players
*/
+diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/World.java
++++ b/src/main/java/org/bukkit/World.java
+@@ -0,0 +0,0 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+
+ /**
+ * Spawn a {@link FallingBlock} entity at the given {@link Location} of
+- * the specified {@link Material}. The material dictates what is falling.
++ * the specified {@link BlockData}. The block data dictates what is falling.
+ * When the FallingBlock hits the ground, it will place that block.
+- *
+- * The Material must be a block type, check with {@link Material#isBlock()
+- * material.isBlock()}. The Material may not be air.
+ *
+ * @param location The {@link Location} to spawn the FallingBlock
+ * @param data The block data
+@@ -0,0 +0,0 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+ /**
+ * Find the closest nearby structure of a given {@link StructureType}.
+ * Finding unexplored structures can, and will, block if the world is
+- * looking in chunks that gave not generated yet. This can lead to the world
++ * looking in chunks that have not generated yet. This can lead to the world
+ * temporarily freezing while locating an unexplored structure.
+ *
+ * The {@code radius} is not a rigid square radius. Each structure may alter
+@@ -0,0 +0,0 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+ /**
+ * Find the closest nearby structure of a given {@link StructureType}.
+ * Finding unexplored structures can, and will, block if the world is
+- * looking in chunks that gave not generated yet. This can lead to the world
++ * looking in chunks that have not generated yet. This can lead to the world
+ * temporarily freezing while locating an unexplored structure.
+ *
+ * The {@code radius} is not a rigid square radius. Each structure may alter
+@@ -0,0 +0,0 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
+ /**
+ * Find the closest nearby structure of a given {@link Structure}. Finding
+ * unexplored structures can, and will, block if the world is looking in
+- * chunks that gave not generated yet. This can lead to the world
++ * chunks that have not generated yet. This can lead to the world
+ * temporarily freezing while locating an unexplored structure.
+ *
+ * The {@code radius} is not a rigid square radius. Each structure may alter
diff --git a/src/main/java/org/bukkit/block/Bed.java b/src/main/java/org/bukkit/block/Bed.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/block/Bed.java
@@ -102,6 +256,67 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*/
@NotNull
Material getPlacementMaterial();
+diff --git a/src/main/java/org/bukkit/block/data/FaceAttachable.java b/src/main/java/org/bukkit/block/data/FaceAttachable.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/data/FaceAttachable.java
++++ b/src/main/java/org/bukkit/block/data/FaceAttachable.java
+@@ -0,0 +0,0 @@ public interface FaceAttachable extends BlockData {
+ */
+ WALL,
+ /**
+- * The switch is mounted to the ceiling and pointing dowanrds.
++ * The switch is mounted to the ceiling and pointing downwards.
+ */
+ CEILING;
+ }
+diff --git a/src/main/java/org/bukkit/block/data/type/CommandBlock.java b/src/main/java/org/bukkit/block/data/type/CommandBlock.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/data/type/CommandBlock.java
++++ b/src/main/java/org/bukkit/block/data/type/CommandBlock.java
+@@ -0,0 +0,0 @@ import org.bukkit.block.data.Directional;
+
+ /**
+ * 'conditional' denotes whether this command block is conditional or not, i.e.
+- * will only execute if the preceeding command block also executed successfully.
++ * will only execute if the preceding command block also executed successfully.
+ */
+ public interface CommandBlock extends Directional {
+
+diff --git a/src/main/java/org/bukkit/block/data/type/Gate.java b/src/main/java/org/bukkit/block/data/type/Gate.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/data/type/Gate.java
++++ b/src/main/java/org/bukkit/block/data/type/Gate.java
+@@ -0,0 +0,0 @@ import org.bukkit.block.data.Openable;
+ import org.bukkit.block.data.Powerable;
+
+ /**
+- * 'in_wall" indicates if the fence gate is attached to a wall, and if true the
++ * 'in_wall' indicates if the fence gate is attached to a wall, and if true the
+ * texture is lowered by a small amount to blend in better.
+ */
+ public interface Gate extends Directional, Openable, Powerable {
+diff --git a/src/main/java/org/bukkit/block/data/type/Switch.java b/src/main/java/org/bukkit/block/data/type/Switch.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/block/data/type/Switch.java
++++ b/src/main/java/org/bukkit/block/data/type/Switch.java
+@@ -0,0 +0,0 @@ public interface Switch extends Directional, FaceAttachable, Powerable {
+ * Sets the value of the 'face' property.
+ *
+ * @param face the new 'face' value
+- * @deprecated use {@link #getAttachedFace()}
++ * @deprecated use {@link #setAttachedFace(AttachedFace)}
+ */
+ @Deprecated
+ void setFace(@NotNull Face face);
+@@ -0,0 +0,0 @@ public interface Switch extends Directional, FaceAttachable, Powerable {
+ */
+ WALL,
+ /**
+- * The switch is mounted to the ceiling and pointing dowanrds.
++ * The switch is mounted to the ceiling and pointing downwards.
+ */
+ CEILING;
+ }
diff --git a/src/main/java/org/bukkit/entity/ArmorStand.java b/src/main/java/org/bukkit/entity/ArmorStand.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/entity/ArmorStand.java
@@ -115,6 +330,32 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ org.bukkit.inventory.@NotNull EntityEquipment getEquipment();
// Paper end
}
+diff --git a/src/main/java/org/bukkit/entity/Arrow.java b/src/main/java/org/bukkit/entity/Arrow.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/Arrow.java
++++ b/src/main/java/org/bukkit/entity/Arrow.java
+@@ -0,0 +0,0 @@ public interface Arrow extends AbstractArrow {
+ * Removes a custom potion effect from this arrow.
+ *
+ * @param type the potion effect type to remove
+- * @return true if the an effect was removed as a result of this call
++ * @return true if the effect was removed as a result of this call
+ * @throws IllegalArgumentException if this operation would leave the Arrow
+ * in a state with no Custom Effects and PotionType.UNCRAFTABLE
+ */
+diff --git a/src/main/java/org/bukkit/entity/EnderDragon.java b/src/main/java/org/bukkit/entity/EnderDragon.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/EnderDragon.java
++++ b/src/main/java/org/bukkit/entity/EnderDragon.java
+@@ -0,0 +0,0 @@ public interface EnderDragon extends ComplexLivingEntity, Boss, Mob, Enemy {
+ */
+ FLY_TO_PORTAL,
+ /**
+- * The dragon will land on on the portal. If the dragon is not near
++ * The dragon will land on the portal. If the dragon is not near
+ * the portal, it will fly to it before mounting.
+ */
+ LAND_ON_PORTAL,
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -131,6 +372,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
* Returns the name of this player
*
+diff --git a/src/main/java/org/bukkit/entity/ItemFrame.java b/src/main/java/org/bukkit/entity/ItemFrame.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/ItemFrame.java
++++ b/src/main/java/org/bukkit/entity/ItemFrame.java
+@@ -0,0 +0,0 @@ public interface ItemFrame extends Hanging {
+ public void setRotation(@NotNull Rotation rotation) throws IllegalArgumentException;
+
+ /**
+- * Returns whether the item frame is be visible or not.
++ * Returns whether the item frame is visible or not.
+ *
+ * @return whether the item frame is visible or not
+ */
diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/entity/Mob.java
@@ -146,6 +400,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
/**
* Instructs this Mob to set the specified LivingEntity as its target.
*
+diff --git a/src/main/java/org/bukkit/entity/PigZombie.java b/src/main/java/org/bukkit/entity/PigZombie.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/PigZombie.java
++++ b/src/main/java/org/bukkit/entity/PigZombie.java
+@@ -0,0 +0,0 @@ public interface PigZombie extends Zombie {
+
+ /**
+ * Not applicable to this entity
+- *
+- * @return UnsuppotedOperationException
+ */
+ @Override
+ public int getConversionTime();
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/entity/Player.java
@@ -170,6 +437,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* Note: This will overwrite the players current inventory, health,
* motion, etc, with the state from the saved dat file.
+@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ /**
+ * Plays an effect to just this player.
+ *
+- * @param
++ * Note: by default custom recipes in anvil are disabled
++ * you should define a repair cost on the anvil inventory
++ * greater or equals to zero in order to allow that.
++ *
++ * @param result result item
++ */
++ public void setResult(@Nullable ItemStack result) {
++ super.setResult(result);
++ }
++
+ @NotNull
+ @Override
+ public HandlerList getHandlers() {
+diff --git a/src/main/java/org/bukkit/generator/ChunkGenerator.java b/src/main/java/org/bukkit/generator/ChunkGenerator.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/generator/ChunkGenerator.java
++++ b/src/main/java/org/bukkit/generator/ChunkGenerator.java
+@@ -0,0 +0,0 @@ public abstract class ChunkGenerator {
+ * Get the biome at x, y, z within chunk being generated
+ *
+ * @param x the x location in the chunk from 0-15 inclusive
+- * @param y the y location in the chunk from minimum (inclusive) -
++ * @param y the y location in the chunk from minHeight (inclusive) -
+ * maxHeight (exclusive)
+ * @param z the z location in the chunk from 0-15 inclusive
+ * @return Biome value
diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/inventory/EntityEquipment.java
@@ -362,9 +838,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ *
+ * Negative values will shrink the bounding box in the corresponding
+ * direction. Shrinking will be limited to the point where the affected
+- * opposite faces would meet if the they shrank at uniform speeds.
++ * opposite faces would meet if they shrank at uniform speeds.
+ *
+ * @param negativeX the amount of expansion in the negative x direction
+ * @param negativeY the amount of expansion in the negative y direction
+diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/util/CachedServerIcon.java
++++ b/src/main/java/org/bukkit/util/CachedServerIcon.java
+@@ -0,0 +0,0 @@ import org.bukkit.event.server.ServerListPingEvent;
+ import org.jetbrains.annotations.Nullable;
+
+ /**
+- * This is a cached version of a server-icon. It's internal representation
++ * This is a cached version of a server-icon. Its internal representation
+ * and implementation is undefined.
+ *
+ * @see Server#getServerIcon()
diff --git a/patches/api/Improve-death-events.patch b/patches/api/Improve-death-events.patch
index 9875c1f674..5bd25b8a61 100644
--- a/patches/api/Improve-death-events.patch
+++ b/patches/api/Improve-death-events.patch
@@ -85,7 +85,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ this.reviveHealth = reviveHealth;
+ }
+
-+
+ /**
+ * Whether or not the death sound should play when the entity dies. If the event is cancelled it does not play!
+ *
@@ -170,7 +169,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+
+ /**
-+ * GSetet the pitch that the death sound should play with.
++ * Set the pitch that the death sound should play with.
+ *
+ * @param pitch The pitch the death sound should play with
+ */
diff --git a/patches/api/Improve-scoreboard-entries.patch b/patches/api/Improve-scoreboard-entries.patch
index e3202ad182..7b7504e9bb 100644
--- a/patches/api/Improve-scoreboard-entries.patch
+++ b/patches/api/Improve-scoreboard-entries.patch
@@ -80,7 +80,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+
+ // Paper start
+ /**
-+ * Gets all scores for a entity on this Scoreboard
++ * Gets all scores for an entity on this Scoreboard
+ *
+ * @param entity the entity whose scores are being retrieved
+ * @return immutable set of all scores tracked for the entity
@@ -90,7 +90,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ @NotNull Set
+ * This event does not fire for the entity's actual movement. Only when it
+ * is choosing to change direction.
diff --git a/patches/api/WitchReadyPotionEvent.patch b/patches/api/WitchReadyPotionEvent.patch
index d90e4609d0..47b260c6e2 100644
--- a/patches/api/WitchReadyPotionEvent.patch
+++ b/patches/api/WitchReadyPotionEvent.patch
@@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+
+ /**
-+ * Fires thee event, returning the desired potion, or air of cancelled
++ * Fires the event, returning the desired potion, or air of cancelled
+ * @param witch the witch whom is readying to use a potion
+ * @param potion the potion to be used
+ * @return The ItemStack to be used
diff --git a/patches/api/added-2-new-TargetReasons-for-1.16-mob-behavior.patch b/patches/api/added-2-new-TargetReasons-for-1.16-mob-behavior.patch
index a6763fd328..99821cadae 100644
--- a/patches/api/added-2-new-TargetReasons-for-1.16-mob-behavior.patch
+++ b/patches/api/added-2-new-TargetReasons-for-1.16-mob-behavior.patch
@@ -9,7 +9,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java
@@ -0,0 +0,0 @@ public class EntityTargetEvent extends EntityEvent implements Cancellable {
- * as wheat in it's hand.
+ * as wheat in its hand.
*/
TEMPT,
+ /**
@@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ */
+ TARGET_OTHER_LEVEL, // Paper
+ /**
-+ * When the target is in creative or spectator mode, or the gamemode is peaceful, or other reasons
++ * When the target is in creative or spectator gamemode, or the difficulty is peaceful, or other reasons
+ */
+ TARGET_INVALID, // Paper
/**
diff --git a/patches/api/ensureServerConversions-API.patch b/patches/api/ensureServerConversions-API.patch
index 43440407a7..191a02053a 100644
--- a/patches/api/ensureServerConversions-API.patch
+++ b/patches/api/ensureServerConversions-API.patch
@@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ /**
+ * Minecraft updates are converting simple item stacks into more complex NBT oriented Item Stacks.
+ *
-+ * Use this method to to ensure any desired data conversions are processed.
++ * Use this method to ensure any desired data conversions are processed.
+ * The input itemstack will not be the same as the returned itemstack.
+ *
+ * @param item The item to process conversions on
@@ -48,7 +48,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ /**
+ * Minecraft updates are converting simple item stacks into more complex NBT oriented Item Stacks.
+ *
-+ * Use this method to to ensure any desired data conversions are processed.
++ * Use this method to ensure any desired data conversions are processed.
+ * The input itemstack will not be the same as the returned itemstack.
+ *
+ * @return A potentially Data Converted ItemStack
+ * Note that this event is currently only fired for four specific placements:
+diff --git a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
++++ b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
+@@ -0,0 +0,0 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable
+ public enum Action {
+
+ /**
+- * When the potion effect is added because the entity didn't have it's
++ * When the potion effect is added because the entity didn't have its
+ * type.
+ */
+ ADDED,
+@@ -0,0 +0,0 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable
+ */
+ SPIDER_SPAWN,
+ /**
+- * When the entity gets effects from a totem item saving it's life.
++ * When the entity gets effects from a totem item saving its life.
+ */
+ TOTEM,
+ /**
diff --git a/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java b/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java
@@ -257,6 +656,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*/
EATING,
/**
+diff --git a/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java b/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java
++++ b/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java
+@@ -0,0 +0,0 @@ public class EntityTargetEvent extends EntityEvent implements Cancellable {
+ FOLLOW_LEADER,
+ /**
+ * When another entity tempts this entity by having a desired item such
+- * as wheat in it's hand.
++ * as wheat in its hand.
+ */
+ TEMPT,
+ /**
diff --git a/src/main/java/org/bukkit/event/entity/PiglinBarterEvent.java b/src/main/java/org/bukkit/event/entity/PiglinBarterEvent.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/org/bukkit/event/entity/PiglinBarterEvent.java
@@ -271,6 +683,70 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*/
public class PiglinBarterEvent extends EntityEvent implements Cancellable {
+diff --git a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
++++ b/src/main/java/org/bukkit/event/inventory/InventoryClickEvent.java
+@@ -0,0 +0,0 @@ public class InventoryClickEvent extends InventoryInteractEvent {
+ /**
+ * Gets the ItemStack currently in the clicked slot.
+ *
+- * @return the item in the clicked
++ * @return the item in the clicked slot
+ */
+ @Nullable
+ public ItemStack getCurrentItem() {
+diff --git a/src/main/java/org/bukkit/event/inventory/InventoryOpenEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryOpenEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/inventory/InventoryOpenEvent.java
++++ b/src/main/java/org/bukkit/event/inventory/InventoryOpenEvent.java
+@@ -0,0 +0,0 @@ import org.bukkit.inventory.InventoryView;
+ import org.jetbrains.annotations.NotNull;
+
+ /**
+- * Represents a player related inventory event
++ * Called when a player opens an inventory
+ */
+ public class InventoryOpenEvent extends InventoryEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+diff --git a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
++++ b/src/main/java/org/bukkit/event/inventory/PrepareAnvilEvent.java
+@@ -0,0 +0,0 @@ public class PrepareAnvilEvent extends PrepareInventoryResultEvent {
+ return (AnvilInventory) super.getInventory();
+ }
+
++ /**
++ * {@inheritDoc}
++ *
++ * {@code
+ * EntityEquipment equipment = entity.getEquipment();
+ * if (equipment instanceof PlayerInventory) {
-+ * equipment.getItemInHand(); // will return a mirror
++ * equipment.getHelmet(); // will return a mirror
+ * } else {
-+ * equipment.getItemInHand(); // will return a copy
++ * equipment.getHelmet(); // will return a copy
+ * }
+ * }
*
@@ -529,3 +1005,139 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
*
* @return the currently held item
* @see #getItemInMainHand()
+diff --git a/src/main/java/org/bukkit/inventory/ShapedRecipe.java b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/ShapedRecipe.java
++++ b/src/main/java/org/bukkit/inventory/ShapedRecipe.java
+@@ -0,0 +0,0 @@ public class ShapedRecipe implements Recipe, Keyed {
+ * @param result The item you want the recipe to create.
+ * @see ShapedRecipe#shape(String...)
+ * @see ShapedRecipe#setIngredient(char, Material)
+- * @see ShapedRecipe#setIngredient(char, Material, int)
+- * @see ShapedRecipe#setIngredient(char, MaterialData)
++ * @see ShapedRecipe#setIngredient(char, RecipeChoice)
+ */
+ public ShapedRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) {
+ Preconditions.checkArgument(key != null, "key");
+diff --git a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
++++ b/src/main/java/org/bukkit/inventory/ShapelessRecipe.java
+@@ -0,0 +0,0 @@ public class ShapelessRecipe implements Recipe, Keyed {
+ * @param key the unique recipe key
+ * @param result The item you want the recipe to create.
+ * @see ShapelessRecipe#addIngredient(Material)
+- * @see ShapelessRecipe#addIngredient(MaterialData)
+- * @see ShapelessRecipe#addIngredient(Material,int)
+ * @see ShapelessRecipe#addIngredient(int,Material)
+- * @see ShapelessRecipe#addIngredient(int,MaterialData)
+- * @see ShapelessRecipe#addIngredient(int,Material,int)
++ * @see ShapelessRecipe#addIngredient(RecipeChoice)
+ */
+ public ShapelessRecipe(@NotNull NamespacedKey key, @NotNull ItemStack result) {
+ Preconditions.checkArgument(result.getType() != Material.AIR, "Recipe must have non-AIR result.");
+@@ -0,0 +0,0 @@ public class ShapelessRecipe implements Recipe, Keyed {
+
+ /**
+ * Removes multiple instances of an ingredient from the list. If there are
+- * less instances then specified, all will be removed. Only removes exact
++ * fewer instances than specified, all will be removed. Only removes exact
+ * matches, with a data value of 0.
+ *
+ * @param count The number of copies to remove.
+diff --git a/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java b/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
++++ b/src/main/java/org/bukkit/inventory/StonecuttingRecipe.java
+@@ -0,0 +0,0 @@ public class StonecuttingRecipe implements Recipe, Keyed {
+ }
+
+ /**
+- * Create a cooking recipe to craft the specified ItemStack.
++ * Create a Stonecutting recipe to craft the specified ItemStack.
+ *
+ * @param key The unique recipe key
+ * @param result The item you want the recipe to create.
+@@ -0,0 +0,0 @@ public class StonecuttingRecipe implements Recipe, Keyed {
+ }
+
+ /**
+- * Sets the input of this cooking recipe.
++ * Sets the input of this Stonecutting recipe.
+ *
+ * @param input The input material.
+ * @return The changed recipe, so you can chain calls.
+@@ -0,0 +0,0 @@ public class StonecuttingRecipe implements Recipe, Keyed {
+ }
+
+ /**
+- * Sets the input of this cooking recipe.
++ * Sets the input of this Stonecutting recipe.
+ *
+ * @param input The input choice.
+ * @return The changed recipe, so you can chain calls.
+diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
++++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable, Persiste
+ /**
+ * Return an immutable copy of all {@link Attribute}s and their
+ * {@link AttributeModifier}s for a given {@link EquipmentSlot}.
+- * Any {@link AttributeModifier} that does have have a given
++ * Any {@link AttributeModifier} that does have a given
+ * {@link EquipmentSlot} will be returned. This is because
+ * AttributeModifiers without a slot are active in any slot.
+ * If there are no attributes set for the given slot, an empty map
+diff --git a/src/main/java/org/bukkit/scoreboard/Objective.java b/src/main/java/org/bukkit/scoreboard/Objective.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/scoreboard/Objective.java
++++ b/src/main/java/org/bukkit/scoreboard/Objective.java
+@@ -0,0 +0,0 @@ public interface Objective {
+ *
+ * @return true if scores are modifiable
+ * @throws IllegalStateException if this objective has been unregistered
+- * @see Criterias#HEALTH
++ * @see Criteria#HEALTH
+ */
+ boolean isModifiable() throws IllegalStateException;
+
+diff --git a/src/main/java/org/bukkit/scoreboard/Team.java b/src/main/java/org/bukkit/scoreboard/Team.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/scoreboard/Team.java
++++ b/src/main/java/org/bukkit/scoreboard/Team.java
+@@ -0,0 +0,0 @@ public interface Team {
+ * Gets the Set of entries on the team
+ *
+ * @return entries on the team
+- * @throws IllegalStateException if this entries has been unregistered\
++ * @throws IllegalStateException if this team has been unregistered
+ */
+ @NotNull
+ Set