diff --git a/patches/api/Adds-PlayerArmSwingEvent.patch b/patches/api/Adds-PlayerArmSwingEvent.patch
index 0487f0dde7..0c5d3c1a77 100644
--- a/patches/api/Adds-PlayerArmSwingEvent.patch
+++ b/patches/api/Adds-PlayerArmSwingEvent.patch
@@ -49,23 +49,3 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
   */
  public class PlayerAnimationEvent extends PlayerEvent implements Cancellable {
      private static final HandlerList handlers = new HandlerList();
-@@ -0,0 +0,0 @@ public class PlayerAnimationEvent extends PlayerEvent implements Cancellable {
-      *
-      * @param player The player instance
-      */
-+    @Deprecated // Paper
-     public PlayerAnimationEvent(@NotNull final Player player) {
-         super(player);
- 
-         // Only supported animation type for now:
-         animationType = PlayerAnimationType.ARM_SWING;
-     }
-+    // Paper start
-+    public PlayerAnimationEvent(@NotNull final Player player, @NotNull PlayerAnimationType animationType) {
-+        super(player);
-+        this.animationType = animationType;
-+    }
-+    // Paper end
- 
-     /**
-      * Get the type of this animation event
diff --git a/patches/server/Add-critical-damage-API.patch b/patches/server/Add-critical-damage-API.patch
index d1a0b37983..fcb5dba2d4 100644
--- a/patches/server/Add-critical-damage-API.patch
+++ b/patches/server/Add-critical-damage-API.patch
@@ -85,7 +85,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
              event.setCancelled(cancelled);
  
 @@ -0,0 +0,0 @@ public class CraftEventFactory {
-                 cause = DamageCause.THORNS;
+                 cause = DamageCause.SONIC_BOOM;
              }
  
 -            return CraftEventFactory.callEntityDamageEvent(damager, entity, cause, modifiers, modifierFunctions, cancelled);
diff --git a/patches/server/Add-support-for-Proxy-Protocol.patch b/patches/server/Add-support-for-Proxy-Protocol.patch
index ae949371a7..019d2f7fdc 100644
--- a/patches/server/Add-support-for-Proxy-Protocol.patch
+++ b/patches/server/Add-support-for-Proxy-Protocol.patch
@@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
       */
      implementation("org.apache.logging.log4j:log4j-core:2.17.1") // Paper - implementation
      annotationProcessor("org.apache.logging.log4j:log4j-core:2.17.1") // Paper - Needed to generate meta for our Log4j plugins
-+    implementation("io.netty:netty-codec-haproxy:4.1.76.Final")
++    implementation("io.netty:netty-codec-haproxy:4.1.77.Final")
      // Paper end
      implementation("org.apache.logging.log4j:log4j-iostreams:2.17.1") // Paper
      implementation("org.apache.logging.log4j:log4j-slf4j18-impl:2.17.1") // Paper
diff --git a/patches/server/Adds-PlayerArmSwingEvent.patch b/patches/server/Adds-PlayerArmSwingEvent.patch
index 64cb232206..147aee98fb 100644
--- a/patches/server/Adds-PlayerArmSwingEvent.patch
+++ b/patches/server/Adds-PlayerArmSwingEvent.patch
@@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
          }
  
          // Arm swing animation
--        PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer());
+-        PlayerAnimationEvent event = new PlayerAnimationEvent(this.getCraftPlayer(), (packet.getHand() == InteractionHand.MAIN_HAND) ? PlayerAnimationType.ARM_SWING : PlayerAnimationType.OFF_ARM_SWING);
 +        io.papermc.paper.event.player.PlayerArmSwingEvent event = new io.papermc.paper.event.player.PlayerArmSwingEvent(this.getCraftPlayer(), packet.getHand() == InteractionHand.MAIN_HAND ? org.bukkit.inventory.EquipmentSlot.HAND : org.bukkit.inventory.EquipmentSlot.OFF_HAND); // Paper
          this.cserver.getPluginManager().callEvent(event);
  
diff --git a/patches/server/Setup-Gradle-project.patch b/patches/server/Setup-Gradle-project.patch
index b1d3153d50..e85da1e0d6 100644
--- a/patches/server/Setup-Gradle-project.patch
+++ b/patches/server/Setup-Gradle-project.patch
@@ -288,63 +288,63 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-buffer</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-codec</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-common</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-handler</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-resolver</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-transport</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-transport-classes-epoll</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-transport-native-epoll</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <classifier>linux-x86_64</classifier>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-transport-native-epoll</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <classifier>linux-aarch_64</classifier>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
 -            <groupId>io.netty</groupId>
 -            <artifactId>netty-transport-native-unix-common</artifactId>
--            <version>4.1.76.Final</version>
+-            <version>4.1.77.Final</version>
 -            <scope>compile</scope>
 -        </dependency>
 -        <dependency>
diff --git a/work/Bukkit b/work/Bukkit
index 4b08dbc5ce..0a4b84d68e 160000
--- a/work/Bukkit
+++ b/work/Bukkit
@@ -1 +1 @@
-Subproject commit 4b08dbc5ce3ddb031df2cff7be350842670f1929
+Subproject commit 0a4b84d68e478de6751678238f1d18200ba51bf9
diff --git a/work/CraftBukkit b/work/CraftBukkit
index 50ef122ef8..576a037044 160000
--- a/work/CraftBukkit
+++ b/work/CraftBukkit
@@ -1 +1 @@
-Subproject commit 50ef122ef8f56e7e36860e94e6e0d986165fb30e
+Subproject commit 576a0370445b9c1344b337c02d955142d9004162