From 3ba25a67999ba2a15cdbf85314e0bb0ebf8969e0 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:12:11 +0100
Subject: [PATCH 01/10] Regenerate api data

---
 src/main/java/org/spongepowered/api/tag/DamageTypeTags.java | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/org/spongepowered/api/tag/DamageTypeTags.java b/src/main/java/org/spongepowered/api/tag/DamageTypeTags.java
index cab740feb3..237f98db4d 100644
--- a/src/main/java/org/spongepowered/api/tag/DamageTypeTags.java
+++ b/src/main/java/org/spongepowered/api/tag/DamageTypeTags.java
@@ -40,6 +40,8 @@ public final class DamageTypeTags {
     // @formatter:off
     public static final Tag<DamageType> ALWAYS_HURTS_ENDER_DRAGONS = DamageTypeTags.key(ResourceKey.minecraft("always_hurts_ender_dragons"));
 
+    public static final Tag<DamageType> ALWAYS_KILLS_ARMOR_STANDS = DamageTypeTags.key(ResourceKey.minecraft("always_kills_armor_stands"));
+
     public static final Tag<DamageType> ALWAYS_MOST_SIGNIFICANT_FALL = DamageTypeTags.key(ResourceKey.minecraft("always_most_significant_fall"));
 
     public static final Tag<DamageType> ALWAYS_TRIGGERS_SILVERFISH = DamageTypeTags.key(ResourceKey.minecraft("always_triggers_silverfish"));

From b5f8185816594c670b3014806dd58ae35cf57720 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:12:39 +0100
Subject: [PATCH 02/10] Add ArmorMaterials generator

---
 .../org/spongepowered/api/data/type/ArmorMaterials.java     | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java b/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java
index 161c200b1a..1b067997a2 100644
--- a/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java
+++ b/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java
@@ -38,9 +38,7 @@
 public final class ArmorMaterials {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<ArmorMaterial> CHAINMAIL = ArmorMaterials.key(ResourceKey.sponge("chainmail"));
 
     public static final DefaultedRegistryReference<ArmorMaterial> DIAMOND = ArmorMaterials.key(ResourceKey.sponge("diamond"));
@@ -51,12 +49,12 @@ public final class ArmorMaterials {
 
     public static final DefaultedRegistryReference<ArmorMaterial> LEATHER = ArmorMaterials.key(ResourceKey.sponge("leather"));
 
+    public static final DefaultedRegistryReference<ArmorMaterial> NETHERITE = ArmorMaterials.key(ResourceKey.sponge("netherite"));
+
     public static final DefaultedRegistryReference<ArmorMaterial> TURTLE = ArmorMaterials.key(ResourceKey.sponge("turtle"));
 
     // SORTFIELDS:OFF
-
     // @formatter:on
-
     private ArmorMaterials() {
     }
 

From 282d41810175aeb3c955c849de3403a43c1b6328 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:21:40 +0100
Subject: [PATCH 03/10] Add BambooLeavesTypes generator

---
 .../org/spongepowered/api/data/type/BambooLeavesTypes.java    | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/BambooLeavesTypes.java b/src/main/java/org/spongepowered/api/data/type/BambooLeavesTypes.java
index 603aa56981..ecffa37e23 100644
--- a/src/main/java/org/spongepowered/api/data/type/BambooLeavesTypes.java
+++ b/src/main/java/org/spongepowered/api/data/type/BambooLeavesTypes.java
@@ -38,15 +38,13 @@
 public final class BambooLeavesTypes {
 
     // @formatter:off
+    public static final DefaultedRegistryReference<BambooLeavesType> LARGE = BambooLeavesTypes.key(ResourceKey.sponge("large"));
 
     public static final DefaultedRegistryReference<BambooLeavesType> NONE = BambooLeavesTypes.key(ResourceKey.sponge("none"));
 
     public static final DefaultedRegistryReference<BambooLeavesType> SMALL = BambooLeavesTypes.key(ResourceKey.sponge("small"));
 
-    public static final DefaultedRegistryReference<BambooLeavesType> LARGE = BambooLeavesTypes.key(ResourceKey.sponge("large"));
-
     // @formatter:on
-
     private BambooLeavesTypes() {
     }
 

From 990251cc1078a3dc02511fce41fb6ae199ca6c21 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:29:01 +0100
Subject: [PATCH 04/10] Add DyeColors generator

---
 src/main/java/org/spongepowered/api/data/type/DyeColors.java | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/DyeColors.java b/src/main/java/org/spongepowered/api/data/type/DyeColors.java
index 47849e6235..66cf59ba48 100644
--- a/src/main/java/org/spongepowered/api/data/type/DyeColors.java
+++ b/src/main/java/org/spongepowered/api/data/type/DyeColors.java
@@ -41,9 +41,7 @@
 public final class DyeColors {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<DyeColor> BLACK = DyeColors.key(ResourceKey.sponge("black"));
 
     public static final DefaultedRegistryReference<DyeColor> BLUE = DyeColors.key(ResourceKey.sponge("blue"));
@@ -77,9 +75,7 @@ public final class DyeColors {
     public static final DefaultedRegistryReference<DyeColor> YELLOW = DyeColors.key(ResourceKey.sponge("yellow"));
 
     // SORTFIELDS:OFF
-
     // @formatter:on
-
     private DyeColors() {
     }
 

From 7f180480b2d808c487db224cb1733ec50c48f664 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:32:15 +0100
Subject: [PATCH 05/10] Add FoxTypes generator

---
 src/main/java/org/spongepowered/api/data/type/FoxTypes.java | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/FoxTypes.java b/src/main/java/org/spongepowered/api/data/type/FoxTypes.java
index 83c7df6715..6fd233ed4e 100644
--- a/src/main/java/org/spongepowered/api/data/type/FoxTypes.java
+++ b/src/main/java/org/spongepowered/api/data/type/FoxTypes.java
@@ -41,17 +41,13 @@
 public final class FoxTypes {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<FoxType> RED = FoxTypes.key(ResourceKey.sponge("red"));
 
     public static final DefaultedRegistryReference<FoxType> SNOW = FoxTypes.key(ResourceKey.sponge("snow"));
 
     // SORTFIELDS:OFF
-
     // @formatter:on
-
     private FoxTypes() {
     }
 

From ba8ce4ae2ae9d845cb67a13d82f465125d1be357 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:39:21 +0100
Subject: [PATCH 06/10] Add HorseColors generator

---
 .../java/org/spongepowered/api/data/type/HorseColors.java     | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/HorseColors.java b/src/main/java/org/spongepowered/api/data/type/HorseColors.java
index 86507018ae..ba02ac51c5 100644
--- a/src/main/java/org/spongepowered/api/data/type/HorseColors.java
+++ b/src/main/java/org/spongepowered/api/data/type/HorseColors.java
@@ -41,9 +41,7 @@
 public final class HorseColors {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<HorseColor> BLACK = HorseColors.key(ResourceKey.sponge("black"));
 
     public static final DefaultedRegistryReference<HorseColor> BROWN = HorseColors.key(ResourceKey.sponge("brown"));
@@ -59,9 +57,7 @@ public final class HorseColors {
     public static final DefaultedRegistryReference<HorseColor> WHITE = HorseColors.key(ResourceKey.sponge("white"));
 
     // SORTFIELDS:OFF
-
     // @formatter:on
-
     private HorseColors() {
     }
 

From 26789896c032893618019120ea163a02d601767f Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:45:36 +0100
Subject: [PATCH 07/10] Add HorseStyles generator

---
 .../java/org/spongepowered/api/data/type/HorseStyles.java | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/HorseStyles.java b/src/main/java/org/spongepowered/api/data/type/HorseStyles.java
index d76452e363..7b4516f51f 100644
--- a/src/main/java/org/spongepowered/api/data/type/HorseStyles.java
+++ b/src/main/java/org/spongepowered/api/data/type/HorseStyles.java
@@ -41,23 +41,19 @@
 public final class HorseStyles {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<HorseStyle> BLACK_DOTS = HorseStyles.key(ResourceKey.sponge("black_dots"));
 
     public static final DefaultedRegistryReference<HorseStyle> NONE = HorseStyles.key(ResourceKey.sponge("none"));
 
     public static final DefaultedRegistryReference<HorseStyle> WHITE = HorseStyles.key(ResourceKey.sponge("white"));
 
-    public static final DefaultedRegistryReference<HorseStyle> WHITE_FIELD = HorseStyles.key(ResourceKey.sponge("white_field"));
-
     public static final DefaultedRegistryReference<HorseStyle> WHITE_DOTS = HorseStyles.key(ResourceKey.sponge("white_dots"));
 
-    // SORTFIELDS:OFF
+    public static final DefaultedRegistryReference<HorseStyle> WHITE_FIELD = HorseStyles.key(ResourceKey.sponge("white_field"));
 
+    // SORTFIELDS:OFF
     // @formatter:on
-
     private HorseStyles() {
     }
 

From f24e3c353768ac7b9ef577e6f4884a37c32e8256 Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 22:49:33 +0100
Subject: [PATCH 08/10] Add InstrumentTypes generator

---
 .../api/data/type/InstrumentTypes.java        | 22 ++++++++++++++-----
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/InstrumentTypes.java b/src/main/java/org/spongepowered/api/data/type/InstrumentTypes.java
index 8addb97a11..24d933ea84 100644
--- a/src/main/java/org/spongepowered/api/data/type/InstrumentTypes.java
+++ b/src/main/java/org/spongepowered/api/data/type/InstrumentTypes.java
@@ -41,15 +41,13 @@
 public final class InstrumentTypes {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<InstrumentType> BANJO = InstrumentTypes.key(ResourceKey.sponge("banjo"));
 
-    public static final DefaultedRegistryReference<InstrumentType> BASS = InstrumentTypes.key(ResourceKey.sponge("bass"));
-
     public static final DefaultedRegistryReference<InstrumentType> BASE_DRUM = InstrumentTypes.key(ResourceKey.sponge("basedrum"));
 
+    public static final DefaultedRegistryReference<InstrumentType> BASS = InstrumentTypes.key(ResourceKey.sponge("bass"));
+
     public static final DefaultedRegistryReference<InstrumentType> BELL = InstrumentTypes.key(ResourceKey.sponge("bell"));
 
     public static final DefaultedRegistryReference<InstrumentType> BIT = InstrumentTypes.key(ResourceKey.sponge("bit"));
@@ -58,8 +56,14 @@ public final class InstrumentTypes {
 
     public static final DefaultedRegistryReference<InstrumentType> COW_BELL = InstrumentTypes.key(ResourceKey.sponge("cow_bell"));
 
+    public static final DefaultedRegistryReference<InstrumentType> CREEPER = InstrumentTypes.key(ResourceKey.sponge("creeper"));
+
+    public static final DefaultedRegistryReference<InstrumentType> CUSTOM_HEAD = InstrumentTypes.key(ResourceKey.sponge("custom_head"));
+
     public static final DefaultedRegistryReference<InstrumentType> DIDGERIDOO = InstrumentTypes.key(ResourceKey.sponge("didgeridoo"));
 
+    public static final DefaultedRegistryReference<InstrumentType> DRAGON = InstrumentTypes.key(ResourceKey.sponge("dragon"));
+
     public static final DefaultedRegistryReference<InstrumentType> FLUTE = InstrumentTypes.key(ResourceKey.sponge("flute"));
 
     public static final DefaultedRegistryReference<InstrumentType> GUITAR = InstrumentTypes.key(ResourceKey.sponge("guitar"));
@@ -70,16 +74,22 @@ public final class InstrumentTypes {
 
     public static final DefaultedRegistryReference<InstrumentType> IRON_XYLOPHONE = InstrumentTypes.key(ResourceKey.sponge("iron_xylophone"));
 
+    public static final DefaultedRegistryReference<InstrumentType> PIGLIN = InstrumentTypes.key(ResourceKey.sponge("piglin"));
+
     public static final DefaultedRegistryReference<InstrumentType> PLING = InstrumentTypes.key(ResourceKey.sponge("pling"));
 
+    public static final DefaultedRegistryReference<InstrumentType> SKELETON = InstrumentTypes.key(ResourceKey.sponge("skeleton"));
+
     public static final DefaultedRegistryReference<InstrumentType> SNARE = InstrumentTypes.key(ResourceKey.sponge("snare"));
 
+    public static final DefaultedRegistryReference<InstrumentType> WITHER_SKELETON = InstrumentTypes.key(ResourceKey.sponge("wither_skeleton"));
+
     public static final DefaultedRegistryReference<InstrumentType> XYLOPHONE = InstrumentTypes.key(ResourceKey.sponge("xylophone"));
 
-    // SORTFIELDS:OFF
+    public static final DefaultedRegistryReference<InstrumentType> ZOMBIE = InstrumentTypes.key(ResourceKey.sponge("zombie"));
 
+    // SORTFIELDS:OFF
     // @formatter:on
-
     private InstrumentTypes() {
     }
 

From 61eda73a7444a89655610c5902b9a1ad6baa050a Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Sun, 5 Nov 2023 23:00:28 +0100
Subject: [PATCH 09/10] Add TropicalFishShapes generator

---
 .../org/spongepowered/api/data/type/TropicalFishShapes.java   | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/data/type/TropicalFishShapes.java b/src/main/java/org/spongepowered/api/data/type/TropicalFishShapes.java
index 290de413f9..3f5521cca3 100644
--- a/src/main/java/org/spongepowered/api/data/type/TropicalFishShapes.java
+++ b/src/main/java/org/spongepowered/api/data/type/TropicalFishShapes.java
@@ -42,9 +42,7 @@
 public final class TropicalFishShapes {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
     public static final DefaultedRegistryReference<TropicalFishShape> BETTY = TropicalFishShapes.key(ResourceKey.sponge("betty"));
 
     public static final DefaultedRegistryReference<TropicalFishShape> BLOCKFISH = TropicalFishShapes.key(ResourceKey.sponge("blockfish"));
@@ -70,9 +68,7 @@ public final class TropicalFishShapes {
     public static final DefaultedRegistryReference<TropicalFishShape> SUNSTREAK = TropicalFishShapes.key(ResourceKey.sponge("sunstreak"));
 
     // SORTFIELDS:OFF
-
     // @formatter:on
-
     private TropicalFishShapes() {
     }
 

From 6ce622daf1bc9b9347fb071835a7a4aaa8ce6e3d Mon Sep 17 00:00:00 2001
From: ImMorpheus <ImMorpheus@users.noreply.github.com>
Date: Mon, 6 Nov 2023 00:36:32 +0100
Subject: [PATCH 10/10] Add GameRules generator

---
 .../api/world/gamerule/GameRules.java         | 302 ++----------------
 1 file changed, 24 insertions(+), 278 deletions(-)

diff --git a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java
index a474288e6a..7a382dd342 100644
--- a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java
+++ b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java
@@ -26,31 +26,6 @@
 
 import org.spongepowered.api.ResourceKey;
 import org.spongepowered.api.Sponge;
-import org.spongepowered.api.block.BlockTypes;
-import org.spongepowered.api.block.entity.CommandBlock;
-import org.spongepowered.api.entity.living.Agent;
-import org.spongepowered.api.entity.living.Bat;
-import org.spongepowered.api.entity.living.animal.Rabbit;
-import org.spongepowered.api.entity.living.animal.Sheep;
-import org.spongepowered.api.entity.living.golem.SnowGolem;
-import org.spongepowered.api.entity.living.monster.Creeper;
-import org.spongepowered.api.entity.living.monster.Enderman;
-import org.spongepowered.api.entity.living.monster.Ghast;
-import org.spongepowered.api.entity.living.monster.Patroller;
-import org.spongepowered.api.entity.living.monster.Phantom;
-import org.spongepowered.api.entity.living.monster.Silverfish;
-import org.spongepowered.api.entity.living.monster.boss.Wither;
-import org.spongepowered.api.entity.living.monster.boss.dragon.EnderDragon;
-import org.spongepowered.api.entity.living.monster.skeleton.Skeleton;
-import org.spongepowered.api.entity.living.monster.zombie.Zombie;
-import org.spongepowered.api.entity.living.monster.zombie.ZombifiedPiglin;
-import org.spongepowered.api.entity.living.player.Player;
-import org.spongepowered.api.entity.living.player.gamemode.GameModes;
-import org.spongepowered.api.entity.living.trader.Villager;
-import org.spongepowered.api.entity.living.trader.WanderingTrader;
-import org.spongepowered.api.entity.vehicle.Boat;
-import org.spongepowered.api.entity.vehicle.minecart.MinecartLike;
-import org.spongepowered.api.raid.Raid;
 import org.spongepowered.api.registry.DefaultedRegistryReference;
 import org.spongepowered.api.registry.Registry;
 import org.spongepowered.api.registry.RegistryKey;
@@ -66,330 +41,101 @@
 public final class GameRules {
 
     // @formatter:off
-
     // SORTFIELDS:ON
-
-    /**
-     * If advancements should be announced to the server.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> ANNOUNCE_ADVANCEMENTS = GameRules.key(ResourceKey.sponge("announce_advancements"));
 
-    /**
-     * Whether {@link CommandBlock}s should notify admins when
-     * they perform commands.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> BLOCK_EXPLOSION_DROP_DECAY = GameRules.key(ResourceKey.sponge("block_explosion_drop_decay"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> COMMAND_BLOCK_OUTPUT = GameRules.key(ResourceKey.sponge("command_block_output"));
 
-    /**
-     * Whether the server should skip checking player speed when
-     * the player is wearing elytra.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Integer>> COMMAND_MODIFICATION_BLOCK_LIMIT = GameRules.key(ResourceKey.sponge("command_modification_block_limit"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> DISABLE_ELYTRA_MOVEMENT_CHECK = GameRules.key(ResourceKey.sponge("disable_elytra_movement_check"));
 
-    /**
-     * Whether {@link Raid}s are disabled.
-     *
-     * <p>If the value of this game rule is {@code true}, all {@link Raid}s will stop.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DISABLE_RAIDS = GameRules.key(ResourceKey.sponge("disable_raids"));
 
-    /**
-     * Whether the day-night cycle and moon phases progress.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_DAYLIGHT_CYCLE = GameRules.key(ResourceKey.sponge("do_daylight_cycle"));
 
-    /**
-     * Whether entities that are not mobs should have drops.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_ENTITY_DROPS = GameRules.key(ResourceKey.sponge("do_entity_drops"));
 
-    /**
-     * Whether fire should spread and naturally extinguish.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_FIRE_TICK = GameRules.key(ResourceKey.sponge("do_fire_tick"));
 
-    /**
-     * Whether {@link Phantom}s can spawn in the night-time.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
-    public static final DefaultedRegistryReference<GameRule<Boolean>> DO_INSOMNIA = GameRules.key(ResourceKey.sponge("do_insomnia"));
-
-    /**
-     * Whether {@link Player}s should respawn immediately without showing the death screen.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_IMMEDIATE_RESPAWN = GameRules.key(ResourceKey.sponge("do_immediate_respawn"));
 
-    /**
-     * Whether {@link Player}s can only craft recipes they have unlocked.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> DO_INSOMNIA = GameRules.key(ResourceKey.sponge("do_insomnia"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_LIMITED_CRAFTING = GameRules.key(ResourceKey.sponge("do_limited_crafting"));
 
-    /**
-     * Whether {@link Agent}s should drop items.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_MOB_LOOT = GameRules.key(ResourceKey.sponge("do_mob_loot"));
 
-    /**
-     * Whether {@link Agent}s should naturally spawn.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_MOB_SPAWNING = GameRules.key(ResourceKey.sponge("do_mob_spawning"));
 
-    /**
-     * Whether {@link Patroller patrollers} will go out on patrol (typically in a {@link Raid}.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_PATROL_SPAWNING = GameRules.key(ResourceKey.sponge("do_patrol_spawning"));
 
-    /**
-     * Whether blocks should have drops.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_TILE_DROPS = GameRules.key(ResourceKey.sponge("do_tile_drops"));
 
-    /**
-     * Whether {@link WanderingTrader traders} will naturally spawn.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_TRADER_SPAWNING = GameRules.key(ResourceKey.sponge("do_trader_spawning"));
 
-    /**
-     * Whether the weather will change.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> DO_VINES_SPREAD = GameRules.key(ResourceKey.sponge("do_vines_spread"));
+
+    public static final DefaultedRegistryReference<GameRule<Boolean>> DO_WARDEN_SPAWNING = GameRules.key(ResourceKey.sponge("do_warden_spawning"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> DO_WEATHER_CYCLE = GameRules.key(ResourceKey.sponge("do_weather_cycle"));
 
-    /**
-     * Whether entities should take drowning damage.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> DROWNING_DAMAGE = GameRules.key(ResourceKey.sponge("drowning_damage"));
 
-    /**
-     * Whether entities should take fall damage.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> ENDER_PEARLS_VANISH_ON_DEATH = GameRules.key(ResourceKey.sponge("ender_pearls_vanish_on_death"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> FALL_DAMAGE = GameRules.key(ResourceKey.sponge("fall_damage"));
 
-    /**
-     * Whether entities should take fire damage.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> FIRE_DAMAGE = GameRules.key(ResourceKey.sponge("fire_damage"));
 
-    /**
-     * Makes angered neutral mobs stop being angry when the targeted player dies nearby.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> FORGIVE_DEAD_PLAYERS = GameRules.key(ResourceKey.sponge("forgive_dead_players"));
 
-    /**
-     * Whether entities should take freeze damage.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> FREEZE_DAMAGE = GameRules.key(ResourceKey.sponge("freeze_damage"));
 
-    /**
-     * Whether {@link Player}s should keep items in their inventory
-     * after death.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> GLOBAL_SOUND_EVENTS = GameRules.key(ResourceKey.sponge("global_sound_events"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> KEEP_INVENTORY = GameRules.key(ResourceKey.sponge("keep_inventory"));
 
-    /**
-     * Whether to log admin commands to server log.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code true}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> LAVA_SOURCE_CONVERSION = GameRules.key(ResourceKey.sponge("lava_source_conversion"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> LOG_ADMIN_COMMANDS = GameRules.key(ResourceKey.sponge("log_admin_commands"));
 
-    /**
-     * The total number of {@link BlockTypes#CHAIN_COMMAND_BLOCK chain command
-     * blocks} that can run during a single tick.
-     *
-     * <p>This is a numerical game rule, with a default value
-     * of {@code 65536}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Integer>> MAX_COMMAND_CHAIN_LENGTH = GameRules.key(ResourceKey.sponge("max_command_chain_length"));
 
-    /**
-     * The maximum number of other pushable entities a mob or player can push,
-     * before taking 3 suffocation damage per half-second.
-     *
-     * <p>Damage affects {@link GameModes#SURVIVAL survival mode} or
-     * {@link GameModes#ADVENTURE adventure mode} {@link Player}s, and all
-     * mobs but bats. Pushable entities include non-spectator-mode
-     * {@link Player}, any mob except {@link Bat}s, as well as
-     * {@link Boat}s and {@link MinecartLike}.</p>
-     *
-     * <p>Setting to {@code 0} disables the rule.</p>
-     *
-     * <p>This is a numerical game rule, with a default value of {@code 24}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Integer>> MAX_ENTITY_CRAMMING = GameRules.key(ResourceKey.sponge("max_entity_cramming"));
 
-    /**
-     * Whether {@link Agent}s should be able to change blocks, and whether
-     * {@link Agent}s can pick up items.
-     *
-     * <p>In vanilla Minecraft, the following entities can change blocks when
-     * this game rule is {@code true}:
-     * <ul>
-     *     <li>{@link Creeper}</li>
-     *     <li>{@link Zombie}</li>
-     *     <li>{@link Enderman}</li>
-     *     <li>{@link Ghast}</li>
-     *     <li>{@link Wither}</li>
-     *     <li>{@link EnderDragon}</li>
-     *     <li>{@link Rabbit}</li>
-     *     <li>{@link Sheep}</li>
-     *     <li>{@link Villager}</li>
-     *     <li>{@link SnowGolem}</li>
-     *     <li>{@link Silverfish}</li>
-     * </ul>
-     *
-     * <p>In vanilla Minecraft, the following entities can pick up items when
-     * this game rule is {@code true}:
-     * <ul>
-     *     <li>{@link Villager}</li>
-     *     <li>{@link Zombie}</li>
-     *     <li>{@link Skeleton}</li>
-     *     <li>{@link ZombifiedPiglin}</li>
-     * </ul>
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> MOB_EXPLOSION_DROP_DECAY = GameRules.key(ResourceKey.sponge("mob_explosion_drop_decay"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> MOB_GRIEFING = GameRules.key(ResourceKey.sponge("mob_griefing"));
 
-    /**
-     * Whether {@link Player}s can regenerate health naturally if their
-     * hunger is full enough (doesn't affect external healing, such as
-     * golden apples, the Regeneration effect, etc.).
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> NATURAL_REGENERATION = GameRules.key(ResourceKey.sponge("natural_regeneration"));
 
-    /**
-     * What percentage of players must sleep to skip the night.
-     *
-     * <p>This is a numerical game rule, with a default value of {@code 100}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Integer>> PLAYERS_SLEEPING_PERCENTAGE = GameRules.key(ResourceKey.sponge("players_sleeping_percentage"));
 
-    /**
-     * How often a random block tick occurs (such as plant growth,
-     * leaf decay, etc.) per chunk section per game tick.
-     *
-     * <p>0 will disable random ticks, higher numbers will increase random
-     * ticks</p>
-     *
-     * <p>This is a numerical game rule, with a default value of {@code 3}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Integer>> RANDOM_TICK_SPEED = GameRules.key(ResourceKey.sponge("random_tick_speed"));
 
-    /**
-     * Whether the debug screen shows all or reduced information.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> REDUCED_DEBUG_INFO = GameRules.key(ResourceKey.sponge("reduced_debug_info"));
 
-    /**
-     * Whether the feedback from commands executed by a {@link Player}
-     * should show up in chat.
-     *
-     * <p>This game rule affects the default behavior of whether
-     * {@link CommandBlock}s store their output text.</p>
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> SEND_COMMAND_FEEDBACK = GameRules.key(ResourceKey.sponge("send_command_feedback"));
 
-    /**
-     * Whether a message appears in chat when a {@link Player} dies.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> SHOW_DEATH_MESSAGES = GameRules.key(ResourceKey.sponge("show_death_messages"));
 
-    /**
-     * The number of blocks outward from the world spawn coordinates
-     * that a player will spawn in when first joining a server or when
-     * dying without a spawn point.
-     *
-     * <p>This is a numerical game rule, with a default value of {@code 10}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Integer>> SNOW_ACCUMULATION_HEIGHT = GameRules.key(ResourceKey.sponge("snow_accumulation_height"));
+
     public static final DefaultedRegistryReference<GameRule<Integer>> SPAWN_RADIUS = GameRules.key(ResourceKey.sponge("spawn_radius"));
 
-    /**
-     * Whether players in {@link GameModes#SPECTATOR spectator mode} can
-     * generate chunks.
-     *
-     * <p>This is a boolean game rule, with a default value of {@code true}.</p>
-     */
     public static final DefaultedRegistryReference<GameRule<Boolean>> SPECTATORS_GENERATE_CHUNKS = GameRules.key(ResourceKey.sponge("spectators_generate_chunks"));
 
-    /**
-     * Makes angered neutral mobs attack any nearby player, not just the player that angered them.
-     *
-     * <p>This is a boolean game rule, with a default value of
-     * {@code false}.</p>
-     */
+    public static final DefaultedRegistryReference<GameRule<Boolean>> TNT_EXPLOSION_DROP_DECAY = GameRules.key(ResourceKey.sponge("tnt_explosion_drop_decay"));
+
     public static final DefaultedRegistryReference<GameRule<Boolean>> UNIVERSAL_ANGER = GameRules.key(ResourceKey.sponge("universal_anger"));
 
-    // SORTFIELDS:OFF
+    public static final DefaultedRegistryReference<GameRule<Boolean>> WATER_SOURCE_CONVERSION = GameRules.key(ResourceKey.sponge("water_source_conversion"));
 
+    // SORTFIELDS:OFF
     // @formatter:on
-
     private GameRules() {
     }
 
