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.
 +     * <p>
-+     * Independant of {@link #isCancelled()}. If the event is cancelled
++     * Independent of {@link #isCancelled()}. If the event is cancelled
 +     * the item will <b>NOT</b> 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.
 +     * <p>
-+     * Independant of {@link #isCancelled()}. If the event is cancelled
++     * Independent of {@link #isCancelled()}. If the event is cancelled
 +     * the item will <b>NOT</b> 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 <!-- Paper - future note: should wait a mojang input client/server side -->
+      */
++    @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.
++     * <p>
++     * 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.
++     * <p>
++     * 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.
++     * <p>
++     * 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.
++     * <p>
++     * 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.
+-     * <p>
+-     * 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. <!-- Paper Remove notice: wrong place -->
+      *
+      * @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.
+      * <p>
+      * 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<OfflinePlayer> getBannedPlayers();
+ 
+     /**
+-     * Gets a ban list for the supplied type.
+-     * <p>
+-     * 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. <!-- Paper Remove notice: wrong place -->
+      *
+      * @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.
+-     * <p>
+-     * 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.
+      * <p>
+      * 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.
+      * <p>
+      * 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.
+      * <p>
+      * 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.
       * <p>
+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 {
+ 
+     /**
+      * <b>Not applicable to this entity</b>
+-     *
+-     * @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
       * <p>
       * 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 <T> the data based based on the type of the effect
++     * @param <T> the data based on the type of the effect
+      * @param loc the location to play the effect at
+      * @param effect the {@link Effect}
+      * @param data a data bit needed for some effects
 @@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
       *
       * Use supplied alternative character to the section symbol to represent legacy color codes.
@@ -179,6 +455,24 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
       * @param message The message to send
       * @deprecated use {@link #sendActionBar(net.kyori.adventure.text.Component)}
       */
+@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ 
+     /**
+      * Allows this player to see a player that was previously hidden. If
+-     * another another plugin had hidden the player too, then the player will
++     * another plugin had hidden the player too, then the player will
+      * remain hidden until the other plugin calls this method too.
+      *
+      * @param plugin Plugin that wants to show the player
+@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ 
+     /**
+      * Allows this player to see an entity that was previously hidden. If
+-     * another another plugin had hidden the entity too, then the entity will
++     * another plugin had hidden the entity too, then the entity will
+      * remain hidden until the other plugin calls this method too.
+      *
+      * @param plugin Plugin that wants to show the entity
 diff --git a/src/main/java/org/bukkit/entity/Slime.java b/src/main/java/org/bukkit/entity/Slime.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/entity/Slime.java
@@ -200,6 +494,19 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
       * @param sz The new size of the slime.
       */
      public void setSize(int sz);
+diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/entity/Villager.java
++++ b/src/main/java/org/bukkit/entity/Villager.java
+@@ -0,0 +0,0 @@ public interface Villager extends AbstractVillager {
+          */
+         NITWIT,
+         /**
+-         * Sheperd profession. Wears a brown robe. Shepherds primarily trade for
++         * Shepherd profession. Wears a brown robe. Shepherds primarily trade for
+          * wool items, and shears.
+          */
+         SHEPHERD,
 diff --git a/src/main/java/org/bukkit/event/block/BlockExplodeEvent.java b/src/main/java/org/bukkit/event/block/BlockExplodeEvent.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/event/block/BlockExplodeEvent.java
@@ -215,12 +522,56 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
   */
  public class BlockExplodeEvent extends BlockEvent implements Cancellable {
      private static final HandlerList handlers = new HandlerList();
+diff --git a/src/main/java/org/bukkit/event/block/BlockPlaceEvent.java b/src/main/java/org/bukkit/event/block/BlockPlaceEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/block/BlockPlaceEvent.java
++++ b/src/main/java/org/bukkit/event/block/BlockPlaceEvent.java
+@@ -0,0 +0,0 @@ public class BlockPlaceEvent extends BlockEvent implements Cancellable {
+ 
+     /**
+      * Gets the value whether the player would be allowed to build here.
+-     * Defaults to spawn if the server was going to stop them (such as, the
++     * Defaults to false if the server was going to stop them (such as, the
+      * player is in Spawn). Note that this is an entirely different check
+      * than BLOCK_CANBUILD, as this refers to a player, not universe-physics
+      * rule like cactus on dirt.
+diff --git a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
++++ b/src/main/java/org/bukkit/event/enchantment/PrepareItemEnchantEvent.java
+@@ -0,0 +0,0 @@ public class PrepareItemEnchantEvent extends InventoryEvent implements Cancellab
+     /**
+      * Get a list of available {@link EnchantmentOffer} for the player. You can
+      * modify the values to change the available offers for the player. An offer
+-     * may be null, if there isn't a enchantment offer at a specific slot. There
++     * may be null, if there isn't an enchantment offer at a specific slot. There
+      * are 3 slots in the enchantment table available to modify.
+      *
+      * @return list of available enchantment offers
+diff --git a/src/main/java/org/bukkit/event/entity/AreaEffectCloudApplyEvent.java b/src/main/java/org/bukkit/event/entity/AreaEffectCloudApplyEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/entity/AreaEffectCloudApplyEvent.java
++++ b/src/main/java/org/bukkit/event/entity/AreaEffectCloudApplyEvent.java
+@@ -0,0 +0,0 @@ import org.bukkit.event.HandlerList;
+ import org.jetbrains.annotations.NotNull;
+ 
+ /**
+- * Called when a lingering potion applies it's effects. Happens
++ * Called when a lingering potion applies its effects. Happens
+  * once every 5 ticks
+  */
+ public class AreaEffectCloudApplyEvent extends EntityEvent implements Cancellable {
 diff --git a/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java b/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java
 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 --- a/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java
 +++ b/src/main/java/org/bukkit/event/entity/CreatureSpawnEvent.java
 @@ -0,0 +0,0 @@ public class CreatureSpawnEvent extends EntitySpawnEvent {
           */
+         DROWNED,
+         /**
+-         * When an cow is spawned by shearing a mushroom cow
++         * When a cow is spawned by shearing a mushroom cow
+          */
          SHEARED,
          /**
 -         * When eg an effect cloud is spawned as a result of a creeper exploding
@@ -244,6 +595,54 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
   */
  public class EntityExplodeEvent extends EntityEvent implements Cancellable {
      private static final HandlerList handlers = new HandlerList();
+diff --git a/src/main/java/org/bukkit/event/entity/EntityPickupItemEvent.java b/src/main/java/org/bukkit/event/entity/EntityPickupItemEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/entity/EntityPickupItemEvent.java
++++ b/src/main/java/org/bukkit/event/entity/EntityPickupItemEvent.java
+@@ -0,0 +0,0 @@ import org.bukkit.event.HandlerList;
+ import org.jetbrains.annotations.NotNull;
+ 
+ /**
+- * Thrown when a entity picks an item up from the ground
++ * Thrown when an entity picks an item up from the ground
+  */
+ public class EntityPickupItemEvent extends EntityEvent implements Cancellable {
+     private static final HandlerList handlers = new HandlerList();
+diff --git a/src/main/java/org/bukkit/event/entity/EntityPlaceEvent.java b/src/main/java/org/bukkit/event/entity/EntityPlaceEvent.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/event/entity/EntityPlaceEvent.java
++++ b/src/main/java/org/bukkit/event/entity/EntityPlaceEvent.java
+@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
+ import org.jetbrains.annotations.Nullable;
+ 
+ /**
+- * Triggered when a entity is created in the world by a player "placing" an item
++ * Triggered when an entity is created in the world by a player "placing" an item
+  * on a block.
+  * <br>
+  * 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}
++     *
++     * <p>
++     * 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
 +     * <pre>{@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
 +     * }
 +     * }</pre>
       *
@@ -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}.<br>
+-     * 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.<br>
+      * 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<String> getEntries() throws IllegalStateException;
+diff --git a/src/main/java/org/bukkit/util/BoundingBox.java b/src/main/java/org/bukkit/util/BoundingBox.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/util/BoundingBox.java
++++ b/src/main/java/org/bukkit/util/BoundingBox.java
+@@ -0,0 +0,0 @@ public class BoundingBox implements Cloneable, ConfigurationSerializable {
+      * <p>
+      * 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<Score> getScoresFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException;
 +
 +    /**
-+     * Removes all scores for a entity on this Scoreboard
++     * Removes all scores for an entity on this Scoreboard
 +     *
 +     * @param entity the entity to drop all current scores for
 +     * @throws IllegalArgumentException if entity is null
@@ -99,7 +99,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    void resetScoresFor(@NotNull org.bukkit.entity.Entity entity) throws IllegalArgumentException;
 +
 +    /**
-+     * Gets a entity's Team on this Scoreboard
++     * Gets an entity's Team on this Scoreboard
 +     *
 +     * @param entity the entity to search for
 +     * @return the entity's Team or null if the entity is not on a team
diff --git a/patches/api/Inventory-close.patch b/patches/api/Inventory-close.patch
index 7660e64088..d1fe0d3c44 100644
--- a/patches/api/Inventory-close.patch
+++ b/patches/api/Inventory-close.patch
@@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    /**
 +     * Closes the inventory for all viewers.
 +     *
-+     * @return the number if viewers the inventory was closed for
++     * @return the number of viewers the inventory was closed for
 +     */
 +    public int close();
 +    // Paper end
diff --git a/patches/api/Multiple-Entries-with-Scoreboards.patch b/patches/api/Multiple-Entries-with-Scoreboards.patch
index 68f60db216..537c082321 100644
--- a/patches/api/Multiple-Entries-with-Scoreboards.patch
+++ b/patches/api/Multiple-Entries-with-Scoreboards.patch
@@ -75,7 +75,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
  
 +    // Paper start
 +    /**
-+     * Removes a collection of entities from this team  which results in one
++     * Removes a collection of entities from this team which results in one
 +     * packet for the updates rather than a packet-per-entity.
 +     *
 +     * @param entities the entries to remove
@@ -88,7 +88,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    }
 +
 +    /**
-+     * Removes a collection of entities from this team  which results in one
++     * Removes a collection of entities from this team which results in one
 +     * packet for the updates rather than a packet-per-entity.
 +     *
 +     * @param entities the entries to remove
@@ -99,7 +99,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    boolean removeEntities(@NotNull java.util.Collection<org.bukkit.entity.Entity> entities) throws IllegalStateException, IllegalArgumentException;
 +
 +    /**
-+     * Removes a collection of entries from this team  which results in one
++     * Removes a collection of entries from this team which results in one
 +     * packet for the updates rather than a packet-per-entry.
 +     *
 +     * @param entries the entries to remove
@@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    }
 +
 +    /**
-+     * Removes a collection of entries from this team  which results in one
++     * Removes a collection of entries from this team which results in one
 +     * packet for the updates rather than a packet-per-entry.
 +     *
 +     * @param entries the entries to remove
diff --git a/patches/api/PreCreatureSpawnEvent.patch b/patches/api/PreCreatureSpawnEvent.patch
index 299efb2cdd..c4e0841e2d 100644
--- a/patches/api/PreCreatureSpawnEvent.patch
+++ b/patches/api/PreCreatureSpawnEvent.patch
@@ -117,7 +117,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +    }
 +
 +    /**
-+     * Cancelling this event is more effecient than cancelling CreatureSpawnEvent
++     * Cancelling this event is more efficient than cancelling CreatureSpawnEvent
 +     * @param cancel true if you wish to cancel this event, and abort the spawn of this creature
 +     */
 +    @Override
diff --git a/patches/api/Server-Tick-Events.patch b/patches/api/Server-Tick-Events.patch
index a4cdeea8e5..5ed173c913 100644
--- a/patches/api/Server-Tick-Events.patch
+++ b/patches/api/Server-Tick-Events.patch
@@ -52,7 +52,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +     *
 +     * If this value is negative, then that means the server has exceeded the tick time limit and TPS has been lost.
 +     *
-+     * Method will continously return the updated time remaining value. (return value is not static)
++     * Method will continuously return the updated time remaining value. (return value is not static)
 +     *
 +     * @return Amount of nanoseconds remaining before the next tick should start
 +     */
diff --git a/patches/api/Slime-Pathfinder-Events.patch b/patches/api/Slime-Pathfinder-Events.patch
index ecc4de9b21..9859b911e9 100644
--- a/patches/api/Slime-Pathfinder-Events.patch
+++ b/patches/api/Slime-Pathfinder-Events.patch
@@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +import org.jetbrains.annotations.NotNull;
 +
 +/**
-+ * Fired when a Slime decides to change it's facing direction.
++ * Fired when a Slime decides to change its facing direction.
 + * <p>
 + * 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