diff --git a/.editorconfig b/.editorconfig index df706b347c..2874476cf4 100644 --- a/.editorconfig +++ b/.editorconfig @@ -35,3 +35,6 @@ ij_java_use_fq_class_names = false [Paper-Server/src/main/resources/data/**/*.json] indent_size = 2 + +[paper-api-generator/generated/**/*.java] +ij_java_imports_layout = $*,|,* diff --git a/.gitignore b/.gitignore index 29fc656b7d..71fa37fc83 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ paperclip.properties !gradle/wrapper/gradle-wrapper.jar test-plugin.settings.gradle.kts +paper-api-generator.settings.gradle.kts diff --git a/paper-api-generator/build.gradle.kts b/paper-api-generator/build.gradle.kts new file mode 100644 index 0000000000..50cc3c1e59 --- /dev/null +++ b/paper-api-generator/build.gradle.kts @@ -0,0 +1,28 @@ +import org.spongepowered.gradle.vanilla.repository.MinecraftPlatform + +plugins { + java + id("org.spongepowered.gradle.vanilla") version "0.2.1-SNAPSHOT" +} + +minecraft { + version(property("mcVersion").toString()) + platform(MinecraftPlatform.SERVER) + + runs { + server("generate") { + mainClass("io.papermc.generator.Main") + accessWideners(projectDir.toPath().resolve("wideners.at")) + args(projectDir.toPath().resolve("generated").toString()) + } + } +} + +dependencies { + implementation("com.squareup:javapoet:1.13.0") + implementation(project(":paper-api")) +} + +group = "io.papermc.paper" +version = "1.0-SNAPSHOT" + diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java new file mode 100644 index 0000000000..84e6385588 --- /dev/null +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/BiomeKeys.java @@ -0,0 +1,490 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.bukkit.block.Biome; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for {@link RegistryKey#BIOME}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.2") +@ApiStatus.Experimental +public final class BiomeKeys { + /** + * {@code minecraft:badlands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BADLANDS = create(key("badlands")); + + /** + * {@code minecraft:bamboo_jungle} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BAMBOO_JUNGLE = create(key("bamboo_jungle")); + + /** + * {@code minecraft:basalt_deltas} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BASALT_DELTAS = create(key("basalt_deltas")); + + /** + * {@code minecraft:beach} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BEACH = create(key("beach")); + + /** + * {@code minecraft:birch_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BIRCH_FOREST = create(key("birch_forest")); + + /** + * {@code minecraft:cherry_grove} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CHERRY_GROVE = create(key("cherry_grove")); + + /** + * {@code minecraft:cold_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey COLD_OCEAN = create(key("cold_ocean")); + + /** + * {@code minecraft:crimson_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CRIMSON_FOREST = create(key("crimson_forest")); + + /** + * {@code minecraft:dark_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DARK_FOREST = create(key("dark_forest")); + + /** + * {@code minecraft:deep_cold_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEEP_COLD_OCEAN = create(key("deep_cold_ocean")); + + /** + * {@code minecraft:deep_dark} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEEP_DARK = create(key("deep_dark")); + + /** + * {@code minecraft:deep_frozen_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEEP_FROZEN_OCEAN = create(key("deep_frozen_ocean")); + + /** + * {@code minecraft:deep_lukewarm_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEEP_LUKEWARM_OCEAN = create(key("deep_lukewarm_ocean")); + + /** + * {@code minecraft:deep_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEEP_OCEAN = create(key("deep_ocean")); + + /** + * {@code minecraft:desert} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DESERT = create(key("desert")); + + /** + * {@code minecraft:dripstone_caves} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DRIPSTONE_CAVES = create(key("dripstone_caves")); + + /** + * {@code minecraft:end_barrens} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey END_BARRENS = create(key("end_barrens")); + + /** + * {@code minecraft:end_highlands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey END_HIGHLANDS = create(key("end_highlands")); + + /** + * {@code minecraft:end_midlands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey END_MIDLANDS = create(key("end_midlands")); + + /** + * {@code minecraft:eroded_badlands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ERODED_BADLANDS = create(key("eroded_badlands")); + + /** + * {@code minecraft:flower_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FLOWER_FOREST = create(key("flower_forest")); + + /** + * {@code minecraft:forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FOREST = create(key("forest")); + + /** + * {@code minecraft:frozen_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FROZEN_OCEAN = create(key("frozen_ocean")); + + /** + * {@code minecraft:frozen_peaks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FROZEN_PEAKS = create(key("frozen_peaks")); + + /** + * {@code minecraft:frozen_river} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FROZEN_RIVER = create(key("frozen_river")); + + /** + * {@code minecraft:grove} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey GROVE = create(key("grove")); + + /** + * {@code minecraft:ice_spikes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ICE_SPIKES = create(key("ice_spikes")); + + /** + * {@code minecraft:jagged_peaks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JAGGED_PEAKS = create(key("jagged_peaks")); + + /** + * {@code minecraft:jungle} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JUNGLE = create(key("jungle")); + + /** + * {@code minecraft:lukewarm_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LUKEWARM_OCEAN = create(key("lukewarm_ocean")); + + /** + * {@code minecraft:lush_caves} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LUSH_CAVES = create(key("lush_caves")); + + /** + * {@code minecraft:mangrove_swamp} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MANGROVE_SWAMP = create(key("mangrove_swamp")); + + /** + * {@code minecraft:meadow} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MEADOW = create(key("meadow")); + + /** + * {@code minecraft:mushroom_fields} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MUSHROOM_FIELDS = create(key("mushroom_fields")); + + /** + * {@code minecraft:nether_wastes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey NETHER_WASTES = create(key("nether_wastes")); + + /** + * {@code minecraft:ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OCEAN = create(key("ocean")); + + /** + * {@code minecraft:old_growth_birch_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OLD_GROWTH_BIRCH_FOREST = create(key("old_growth_birch_forest")); + + /** + * {@code minecraft:old_growth_pine_taiga} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OLD_GROWTH_PINE_TAIGA = create(key("old_growth_pine_taiga")); + + /** + * {@code minecraft:old_growth_spruce_taiga} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OLD_GROWTH_SPRUCE_TAIGA = create(key("old_growth_spruce_taiga")); + + /** + * {@code minecraft:plains} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey PLAINS = create(key("plains")); + + /** + * {@code minecraft:river} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RIVER = create(key("river")); + + /** + * {@code minecraft:savanna} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SAVANNA = create(key("savanna")); + + /** + * {@code minecraft:savanna_plateau} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SAVANNA_PLATEAU = create(key("savanna_plateau")); + + /** + * {@code minecraft:small_end_islands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SMALL_END_ISLANDS = create(key("small_end_islands")); + + /** + * {@code minecraft:snowy_beach} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SNOWY_BEACH = create(key("snowy_beach")); + + /** + * {@code minecraft:snowy_plains} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SNOWY_PLAINS = create(key("snowy_plains")); + + /** + * {@code minecraft:snowy_slopes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SNOWY_SLOPES = create(key("snowy_slopes")); + + /** + * {@code minecraft:snowy_taiga} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SNOWY_TAIGA = create(key("snowy_taiga")); + + /** + * {@code minecraft:soul_sand_valley} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SOUL_SAND_VALLEY = create(key("soul_sand_valley")); + + /** + * {@code minecraft:sparse_jungle} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SPARSE_JUNGLE = create(key("sparse_jungle")); + + /** + * {@code minecraft:stony_peaks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey STONY_PEAKS = create(key("stony_peaks")); + + /** + * {@code minecraft:stony_shore} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey STONY_SHORE = create(key("stony_shore")); + + /** + * {@code minecraft:sunflower_plains} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SUNFLOWER_PLAINS = create(key("sunflower_plains")); + + /** + * {@code minecraft:swamp} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SWAMP = create(key("swamp")); + + /** + * {@code minecraft:taiga} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TAIGA = create(key("taiga")); + + /** + * {@code minecraft:the_end} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey THE_END = create(key("the_end")); + + /** + * {@code minecraft:the_void} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey THE_VOID = create(key("the_void")); + + /** + * {@code minecraft:warm_ocean} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WARM_OCEAN = create(key("warm_ocean")); + + /** + * {@code minecraft:warped_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WARPED_FOREST = create(key("warped_forest")); + + /** + * {@code minecraft:windswept_forest} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WINDSWEPT_FOREST = create(key("windswept_forest")); + + /** + * {@code minecraft:windswept_gravelly_hills} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WINDSWEPT_GRAVELLY_HILLS = create(key("windswept_gravelly_hills")); + + /** + * {@code minecraft:windswept_hills} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WINDSWEPT_HILLS = create(key("windswept_hills")); + + /** + * {@code minecraft:windswept_savanna} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WINDSWEPT_SAVANNA = create(key("windswept_savanna")); + + /** + * {@code minecraft:wooded_badlands} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WOODED_BADLANDS = create(key("wooded_badlands")); + + private BiomeKeys() { + } + + /** + * Creates a key for {@link Biome} in a registry. + * + * @param key the value's key in the registry + * @return a new typed key + */ + @ApiStatus.Experimental + public static @NotNull TypedKey create(final @NotNull Key key) { + return TypedKey.create(RegistryKey.BIOME, key); + } +} diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java new file mode 100644 index 0000000000..978ed4aed5 --- /dev/null +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/GameEventKeys.java @@ -0,0 +1,462 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.bukkit.GameEvent; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for {@link RegistryKey#GAME_EVENT}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.2") +@ApiStatus.Experimental +public final class GameEventKeys { + /** + * {@code minecraft:block_activate} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_ACTIVATE = create(key("block_activate")); + + /** + * {@code minecraft:block_attach} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_ATTACH = create(key("block_attach")); + + /** + * {@code minecraft:block_change} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_CHANGE = create(key("block_change")); + + /** + * {@code minecraft:block_close} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_CLOSE = create(key("block_close")); + + /** + * {@code minecraft:block_deactivate} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_DEACTIVATE = create(key("block_deactivate")); + + /** + * {@code minecraft:block_destroy} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_DESTROY = create(key("block_destroy")); + + /** + * {@code minecraft:block_detach} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_DETACH = create(key("block_detach")); + + /** + * {@code minecraft:block_open} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_OPEN = create(key("block_open")); + + /** + * {@code minecraft:block_place} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_PLACE = create(key("block_place")); + + /** + * {@code minecraft:container_close} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CONTAINER_CLOSE = create(key("container_close")); + + /** + * {@code minecraft:container_open} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CONTAINER_OPEN = create(key("container_open")); + + /** + * {@code minecraft:drink} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DRINK = create(key("drink")); + + /** + * {@code minecraft:eat} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EAT = create(key("eat")); + + /** + * {@code minecraft:elytra_glide} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ELYTRA_GLIDE = create(key("elytra_glide")); + + /** + * {@code minecraft:entity_damage} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_DAMAGE = create(key("entity_damage")); + + /** + * {@code minecraft:entity_die} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_DIE = create(key("entity_die")); + + /** + * {@code minecraft:entity_dismount} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_DISMOUNT = create(key("entity_dismount")); + + /** + * {@code minecraft:entity_interact} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_INTERACT = create(key("entity_interact")); + + /** + * {@code minecraft:entity_mount} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_MOUNT = create(key("entity_mount")); + + /** + * {@code minecraft:entity_place} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_PLACE = create(key("entity_place")); + + /** + * {@code minecraft:entity_action} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_ACTION = create(key("entity_action")); + + /** + * {@code minecraft:equip} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EQUIP = create(key("equip")); + + /** + * {@code minecraft:explode} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EXPLODE = create(key("explode")); + + /** + * {@code minecraft:flap} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FLAP = create(key("flap")); + + /** + * {@code minecraft:fluid_pickup} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FLUID_PICKUP = create(key("fluid_pickup")); + + /** + * {@code minecraft:fluid_place} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FLUID_PLACE = create(key("fluid_place")); + + /** + * {@code minecraft:hit_ground} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey HIT_GROUND = create(key("hit_ground")); + + /** + * {@code minecraft:instrument_play} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey INSTRUMENT_PLAY = create(key("instrument_play")); + + /** + * {@code minecraft:item_interact_finish} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ITEM_INTERACT_FINISH = create(key("item_interact_finish")); + + /** + * {@code minecraft:item_interact_start} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ITEM_INTERACT_START = create(key("item_interact_start")); + + /** + * {@code minecraft:jukebox_play} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JUKEBOX_PLAY = create(key("jukebox_play")); + + /** + * {@code minecraft:jukebox_stop_play} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JUKEBOX_STOP_PLAY = create(key("jukebox_stop_play")); + + /** + * {@code minecraft:lightning_strike} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LIGHTNING_STRIKE = create(key("lightning_strike")); + + /** + * {@code minecraft:note_block_play} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey NOTE_BLOCK_PLAY = create(key("note_block_play")); + + /** + * {@code minecraft:prime_fuse} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey PRIME_FUSE = create(key("prime_fuse")); + + /** + * {@code minecraft:projectile_land} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey PROJECTILE_LAND = create(key("projectile_land")); + + /** + * {@code minecraft:projectile_shoot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey PROJECTILE_SHOOT = create(key("projectile_shoot")); + + /** + * {@code minecraft:sculk_sensor_tendrils_clicking} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SCULK_SENSOR_TENDRILS_CLICKING = create(key("sculk_sensor_tendrils_clicking")); + + /** + * {@code minecraft:shear} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SHEAR = create(key("shear")); + + /** + * {@code minecraft:shriek} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SHRIEK = create(key("shriek")); + + /** + * {@code minecraft:splash} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SPLASH = create(key("splash")); + + /** + * {@code minecraft:step} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey STEP = create(key("step")); + + /** + * {@code minecraft:swim} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SWIM = create(key("swim")); + + /** + * {@code minecraft:teleport} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TELEPORT = create(key("teleport")); + + /** + * {@code minecraft:unequip} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey UNEQUIP = create(key("unequip")); + + /** + * {@code minecraft:resonate_1} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_1 = create(key("resonate_1")); + + /** + * {@code minecraft:resonate_2} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_2 = create(key("resonate_2")); + + /** + * {@code minecraft:resonate_3} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_3 = create(key("resonate_3")); + + /** + * {@code minecraft:resonate_4} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_4 = create(key("resonate_4")); + + /** + * {@code minecraft:resonate_5} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_5 = create(key("resonate_5")); + + /** + * {@code minecraft:resonate_6} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_6 = create(key("resonate_6")); + + /** + * {@code minecraft:resonate_7} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_7 = create(key("resonate_7")); + + /** + * {@code minecraft:resonate_8} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_8 = create(key("resonate_8")); + + /** + * {@code minecraft:resonate_9} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_9 = create(key("resonate_9")); + + /** + * {@code minecraft:resonate_10} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_10 = create(key("resonate_10")); + + /** + * {@code minecraft:resonate_11} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_11 = create(key("resonate_11")); + + /** + * {@code minecraft:resonate_12} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_12 = create(key("resonate_12")); + + /** + * {@code minecraft:resonate_13} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_13 = create(key("resonate_13")); + + /** + * {@code minecraft:resonate_14} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_14 = create(key("resonate_14")); + + /** + * {@code minecraft:resonate_15} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RESONATE_15 = create(key("resonate_15")); + + private GameEventKeys() { + } + + /** + * Creates a key for {@link GameEvent} in a registry. + * + * @param key the value's key in the registry + * @return a new typed key + */ + @ApiStatus.Experimental + public static @NotNull TypedKey create(final @NotNull Key key) { + return TypedKey.create(RegistryKey.GAME_EVENT, key); + } +} diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java new file mode 100644 index 0000000000..03fc2b494f --- /dev/null +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/StructureTypeKeys.java @@ -0,0 +1,147 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.bukkit.generator.structure.StructureType; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for {@link RegistryKey#STRUCTURE_TYPE}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.2") +@ApiStatus.Experimental +public final class StructureTypeKeys { + /** + * {@code minecraft:buried_treasure} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BURIED_TREASURE = create(key("buried_treasure")); + + /** + * {@code minecraft:desert_pyramid} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DESERT_PYRAMID = create(key("desert_pyramid")); + + /** + * {@code minecraft:end_city} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey END_CITY = create(key("end_city")); + + /** + * {@code minecraft:fortress} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FORTRESS = create(key("fortress")); + + /** + * {@code minecraft:igloo} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey IGLOO = create(key("igloo")); + + /** + * {@code minecraft:jigsaw} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JIGSAW = create(key("jigsaw")); + + /** + * {@code minecraft:jungle_temple} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JUNGLE_TEMPLE = create(key("jungle_temple")); + + /** + * {@code minecraft:mineshaft} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MINESHAFT = create(key("mineshaft")); + + /** + * {@code minecraft:nether_fossil} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey NETHER_FOSSIL = create(key("nether_fossil")); + + /** + * {@code minecraft:ocean_monument} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OCEAN_MONUMENT = create(key("ocean_monument")); + + /** + * {@code minecraft:ocean_ruin} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OCEAN_RUIN = create(key("ocean_ruin")); + + /** + * {@code minecraft:ruined_portal} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RUINED_PORTAL = create(key("ruined_portal")); + + /** + * {@code minecraft:shipwreck} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SHIPWRECK = create(key("shipwreck")); + + /** + * {@code minecraft:stronghold} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey STRONGHOLD = create(key("stronghold")); + + /** + * {@code minecraft:swamp_hut} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SWAMP_HUT = create(key("swamp_hut")); + + /** + * {@code minecraft:woodland_mansion} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WOODLAND_MANSION = create(key("woodland_mansion")); + + private StructureTypeKeys() { + } + + private static @NotNull TypedKey create(final @NotNull Key key) { + return TypedKey.create(RegistryKey.STRUCTURE_TYPE, key); + } +} diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java new file mode 100644 index 0000000000..bb54110ab1 --- /dev/null +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimMaterialKeys.java @@ -0,0 +1,112 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for {@link RegistryKey#TRIM_MATERIAL}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.2") +@ApiStatus.Experimental +public final class TrimMaterialKeys { + /** + * {@code minecraft:amethyst} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey AMETHYST = create(key("amethyst")); + + /** + * {@code minecraft:copper} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey COPPER = create(key("copper")); + + /** + * {@code minecraft:diamond} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DIAMOND = create(key("diamond")); + + /** + * {@code minecraft:emerald} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EMERALD = create(key("emerald")); + + /** + * {@code minecraft:gold} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey GOLD = create(key("gold")); + + /** + * {@code minecraft:iron} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey IRON = create(key("iron")); + + /** + * {@code minecraft:lapis} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LAPIS = create(key("lapis")); + + /** + * {@code minecraft:netherite} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey NETHERITE = create(key("netherite")); + + /** + * {@code minecraft:quartz} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey QUARTZ = create(key("quartz")); + + /** + * {@code minecraft:redstone} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey REDSTONE = create(key("redstone")); + + private TrimMaterialKeys() { + } + + /** + * Creates a key for {@link TrimMaterial} in a registry. + * + * @param key the value's key in the registry + * @return a new typed key + */ + @ApiStatus.Experimental + public static @NotNull TypedKey create(final @NotNull Key key) { + return TypedKey.create(RegistryKey.TRIM_MATERIAL, key); + } +} diff --git a/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java new file mode 100644 index 0000000000..8576ff1669 --- /dev/null +++ b/paper-api-generator/generated/io/papermc/paper/registry/keys/TrimPatternKeys.java @@ -0,0 +1,154 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.bukkit.inventory.meta.trim.TrimPattern; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Vanilla keys for {@link RegistryKey#TRIM_PATTERN}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@GeneratedFrom("1.20.2") +@ApiStatus.Experimental +public final class TrimPatternKeys { + /** + * {@code minecraft:coast} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey COAST = create(key("coast")); + + /** + * {@code minecraft:dune} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DUNE = create(key("dune")); + + /** + * {@code minecraft:eye} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EYE = create(key("eye")); + + /** + * {@code minecraft:host} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey HOST = create(key("host")); + + /** + * {@code minecraft:raiser} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RAISER = create(key("raiser")); + + /** + * {@code minecraft:rib} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RIB = create(key("rib")); + + /** + * {@code minecraft:sentry} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SENTRY = create(key("sentry")); + + /** + * {@code minecraft:shaper} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SHAPER = create(key("shaper")); + + /** + * {@code minecraft:silence} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SILENCE = create(key("silence")); + + /** + * {@code minecraft:snout} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SNOUT = create(key("snout")); + + /** + * {@code minecraft:spire} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SPIRE = create(key("spire")); + + /** + * {@code minecraft:tide} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TIDE = create(key("tide")); + + /** + * {@code minecraft:vex} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey VEX = create(key("vex")); + + /** + * {@code minecraft:ward} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WARD = create(key("ward")); + + /** + * {@code minecraft:wayfinder} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WAYFINDER = create(key("wayfinder")); + + /** + * {@code minecraft:wild} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WILD = create(key("wild")); + + private TrimPatternKeys() { + } + + /** + * Creates a key for {@link TrimPattern} in a registry. + * + * @param key the value's key in the registry + * @return a new typed key + */ + @ApiStatus.Experimental + public static @NotNull TypedKey create(final @NotNull Key key) { + return TypedKey.create(RegistryKey.TRIM_PATTERN, key); + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Main.java b/paper-api-generator/src/main/java/io/papermc/generator/Main.java new file mode 100644 index 0000000000..6e02e0b48f --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/Main.java @@ -0,0 +1,85 @@ +package io.papermc.generator; + +import com.mojang.logging.LogUtils; +import io.papermc.generator.types.GeneratedKeyType; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.paper.registry.RegistryKey; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import net.kyori.adventure.key.Keyed; +import net.minecraft.SharedConstants; +import net.minecraft.core.LayeredRegistryAccess; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.RegistryDataLoader; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.Bootstrap; +import net.minecraft.server.RegistryLayer; +import net.minecraft.server.WorldLoader; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.ServerPacksSource; +import net.minecraft.server.packs.resources.MultiPackResourceManager; +import org.apache.commons.io.file.PathUtils; +import org.bukkit.GameEvent; +import org.bukkit.block.Biome; +import org.bukkit.generator.structure.StructureType; +import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.bukkit.inventory.meta.trim.TrimPattern; +import org.slf4j.Logger; + +public final class Main { + + private static final Logger LOGGER = LogUtils.getLogger(); + public static final RegistryAccess.Frozen REGISTRY_ACCESS; + + static { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + final PackRepository resourceRepository = ServerPacksSource.createVanillaTrustedRepository(); + resourceRepository.reload(); + final MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList()); + LayeredRegistryAccess layers = RegistryLayer.createRegistryAccess(); + layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES); + REGISTRY_ACCESS = layers.compositeAccess().freeze(); + } + + private static final List GENERATORS = List.of( + simpleKey("GameEventKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT, true), + simpleKey("BiomeKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME, true), + simpleKey("TrimMaterialKeys", TrimMaterial.class, Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL, true), + simpleKey("TrimPatternKeys", TrimPattern.class, Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, true), + simpleKey("StructureTypeKeys", StructureType.class, Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, false) + ); + + private static SourceGenerator simpleKey(final String className, final Class apiType, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { + return new GeneratedKeyType<>(className, apiType, "io.papermc.paper.registry.keys", registryKey, apiRegistryKey, publicCreateKeyMethod); + } + + private Main() { + } + + public static void main(final String[] args) { + final Path output = Paths.get(args[0]); + try { + if (Files.exists(output)) { + PathUtils.deleteDirectory(output); + } + Files.createDirectories(output); + + for (final SourceGenerator generator : GENERATORS) { + generator.writeToFile(output); + } + + LOGGER.info("Files written to {}", output.toAbsolutePath()); + } catch (final Exception ex) { + throw new RuntimeException(ex); + } + } + + +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java b/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java new file mode 100644 index 0000000000..342d80454b --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/Annotations.java @@ -0,0 +1,24 @@ +package io.papermc.generator.types; + +import com.squareup.javapoet.AnnotationSpec; +import java.util.List; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +public final class Annotations { + + public static final List EXPERIMENTAL_ANNOTATIONS = List.of( + AnnotationSpec.builder(ApiStatus.Experimental.class).build(), + AnnotationSpec.builder(MinecraftExperimental.class) + .addMember("value", "$S", "update 1.20") + .build() + ); + + @ApiStatus.Experimental + public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); + public static final AnnotationSpec NOT_NULL = AnnotationSpec.builder(NotNull.class).build(); + + private Annotations() { + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java new file mode 100644 index 0000000000..2af1bc8fb6 --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java @@ -0,0 +1,205 @@ +package io.papermc.generator.types; + +import com.squareup.javapoet.AnnotationSpec; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.Main; +import io.papermc.generator.utils.CollectingContext; +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import java.io.IOException; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import net.kyori.adventure.key.Key; +import net.minecraft.SharedConstants; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.resources.ResourceKey; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.framework.qual.DefaultQualifier; + +import static com.squareup.javapoet.TypeSpec.classBuilder; +import static io.papermc.generator.types.Annotations.EXPERIMENTAL_ANNOTATIONS; +import static io.papermc.generator.types.Annotations.EXPERIMENTAL_API_ANNOTATION; +import static io.papermc.generator.types.Annotations.NOT_NULL; +import static java.util.Objects.requireNonNull; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@DefaultQualifier(NonNull.class) +public class GeneratedKeyType implements SourceGenerator { + + // don't exist anymore + // private static final Map>, RegistrySetBuilder.RegistryBootstrap> EXPERIMENTAL_REGISTRY_ENTRIES = UpdateOneTwentyRegistries.BUILDER.entries.stream() + // .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); + private static final Map>, RegistrySetBuilder.RegistryBootstrap> EXPERIMENTAL_REGISTRY_ENTRIES = Collections.emptyMap(); + + private static final Map, String> REGISTRY_KEY_FIELD_NAMES; + static { + final Map, String> map = new HashMap<>(); + try { + for (final Field field : RegistryKey.class.getFields()) { + if (!Modifier.isStatic(field.getModifiers()) || !Modifier.isFinal(field.getModifiers()) || field.getType() != RegistryKey.class) { + continue; + } + map.put((RegistryKey) field.get(null), field.getName()); + } + REGISTRY_KEY_FIELD_NAMES = Map.copyOf(map); + } catch (final ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + } + + private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class) + .addMember("value", "$S", "unused") + .addMember("value", "$S", "SpellCheckingInspection") + .build(); + private static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class) + .addMember("value", "$S", SharedConstants.getCurrentVersion().getName()) + .build(); + private static final String TYPE_JAVADOC = """ + Vanilla keys for {@link $T#$L}. + + @apiNote The fields provided here are a direct representation of + what is available from the vanilla game source. They may be + changed (including removals) on any Minecraft version + bump, so cross-version compatibility is not provided on the + same level as it is on most of the other API. + """; + private static final String FIELD_JAVADOC = """ + {@code $L} + + @apiNote This field is version-dependant and may be removed in future Minecraft versions + """; + private static final String CREATE_JAVADOC = """ + Creates a key for {@link $T} in a registry. + + @param key the value's key in the registry + @return a new typed key + """; + + private final String keysClassName; + private final Class apiType; + private final String pkg; + private final ResourceKey> registryKey; + private final RegistryKey apiRegistryKey; + private final boolean publicCreateKeyMethod; + + public GeneratedKeyType(final String keysClassName, final Class apiType, final String pkg, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { + this.keysClassName = keysClassName; + this.apiType = apiType; + this.pkg = pkg; + this.registryKey = registryKey; + this.apiRegistryKey = apiRegistryKey; + this.publicCreateKeyMethod = publicCreateKeyMethod; + } + + private MethodSpec.Builder createMethod(final TypeName returnType) { + final TypeName keyType = TypeName.get(Key.class).annotated(NOT_NULL); + + final ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build(); + final MethodSpec.Builder create = MethodSpec.methodBuilder("create") + .addModifiers(this.publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC) + .addParameter(keyParam) + .addCode("return $T.create($T.$L, $N);", TypedKey.class, RegistryKey.class, requireNonNull(REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey), "Missing field for " + this.apiRegistryKey), keyParam) + .returns(returnType.annotated(NOT_NULL)); + if (this.publicCreateKeyMethod) { + create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental + create.addJavadoc(CREATE_JAVADOC, this.apiType); + } + return create; + } + + private TypeSpec.Builder keyHolderType() { + return classBuilder(this.keysClassName) + .addModifiers(PUBLIC, FINAL) + .addJavadoc(TYPE_JAVADOC, RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) + .addAnnotation(SUPPRESS_WARNINGS).addAnnotation(GENERATED_FROM) + .addMethod(MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .build() + ); + } + + protected TypeSpec createTypeSpec() { + final TypeName typedKey = ParameterizedTypeName.get(TypedKey.class, this.apiType); + + final TypeSpec.Builder typeBuilder = this.keyHolderType(); + typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API + final MethodSpec.Builder createMethod = this.createMethod(typedKey); + + final Registry registry = Main.REGISTRY_ACCESS.registryOrThrow(this.registryKey); + final List> experimental = this.collectExperimentalKeys(registry); + + boolean allExperimental = true; + for (final T value : registry) { + final ResourceKey key = registry.getResourceKey(value).orElseThrow(); + final String keyPath = key.location().getPath(); + final String fieldName = keyPath.toUpperCase(Locale.ENGLISH).replaceAll("[.-/]", "_"); // replace invalid field name chars + final FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL) + .initializer("$N(key($S))", createMethod.build(), keyPath) + .addJavadoc(FIELD_JAVADOC, key.location().toString()); + if (experimental.contains(key)) { + fieldBuilder.addAnnotations(EXPERIMENTAL_ANNOTATIONS); + } else { + allExperimental = false; + } + typeBuilder.addField(fieldBuilder.build()); + } + if (allExperimental) { + typeBuilder.addAnnotations(EXPERIMENTAL_ANNOTATIONS); + createMethod.addAnnotations(EXPERIMENTAL_ANNOTATIONS); + } + return typeBuilder.addMethod(createMethod.build()).build(); + } + + @SuppressWarnings("unchecked") + private List> collectExperimentalKeys(final Registry registry) { + final RegistrySetBuilder.@Nullable RegistryBootstrap registryBootstrap = (RegistrySetBuilder.RegistryBootstrap) EXPERIMENTAL_REGISTRY_ENTRIES.get(this.registryKey); + if (registryBootstrap == null) { + return Collections.emptyList(); + } + final List> experimental = new ArrayList<>(); + final CollectingContext context = new CollectingContext<>(experimental, registry); + registryBootstrap.run(context); + return experimental; + } + + protected JavaFile createFile() { + return JavaFile.builder(this.pkg, this.createTypeSpec()) + .skipJavaLangImports(true) + .addStaticImport(Key.class, "key") + .indent(" ") + .build(); + } + + @Override + public final String outputString() { + return this.createFile().toString(); + } + + @Override + public void writeToFile(final Path parent) throws IOException { + final Path pkgDir = parent.resolve(this.pkg.replace('.', '/')); + Files.createDirectories(pkgDir); + Files.writeString(pkgDir.resolve(this.keysClassName + ".java"), this.outputString(), StandardCharsets.UTF_8); + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java b/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java new file mode 100644 index 0000000000..50d176e9ea --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java @@ -0,0 +1,11 @@ +package io.papermc.generator.types; + +import java.io.IOException; +import java.nio.file.Path; + +public interface SourceGenerator { + + String outputString(); + + void writeToFile(Path parent) throws IOException; +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java new file mode 100644 index 0000000000..98f707846e --- /dev/null +++ b/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java @@ -0,0 +1,28 @@ +package io.papermc.generator.utils; + +import com.mojang.serialization.Lifecycle; +import io.papermc.generator.Main; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderGetter; +import net.minecraft.core.Registry; +import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.resources.ResourceKey; +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultQualifier; + +@DefaultQualifier(NonNull.class) +public record CollectingContext(List> registered, + Registry registry) implements BootstapContext { + + @Override + public Holder.Reference register(final ResourceKey resourceKey, final @NonNull T t, final Lifecycle lifecycle) { + this.registered.add(resourceKey); + return Holder.Reference.createStandAlone(this.registry.holderOwner(), resourceKey); + } + + @Override + public HolderGetter lookup(final ResourceKey> resourceKey) { + return Main.REGISTRY_ACCESS.registryOrThrow(resourceKey).asLookup(); + } +} diff --git a/paper-api-generator/wideners.at b/paper-api-generator/wideners.at new file mode 100644 index 0000000000..cc899edd9d --- /dev/null +++ b/paper-api-generator/wideners.at @@ -0,0 +1,6 @@ +accessWidener v1 named +accessible method net/minecraft/server/WorldLoader loadAndReplaceLayer (Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/core/LayeredRegistryAccess;Lnet/minecraft/server/RegistryLayer;Ljava/util/List;)Lnet/minecraft/core/LayeredRegistryAccess; + +# for auto-marking experimental stuff +accessible field net/minecraft/core/RegistrySetBuilder entries Ljava/util/List; +accessible class net/minecraft/core/RegistrySetBuilder$RegistryStub diff --git a/patches/api/0004-Code-Generation.patch b/patches/api/0004-Code-Generation.patch new file mode 100644 index 0000000000..a34c9218f5 --- /dev/null +++ b/patches/api/0004-Code-Generation.patch @@ -0,0 +1,251 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Fri, 26 May 2023 18:14:44 -0700 +Subject: [PATCH] Code Generation + +Currently includes generated key holder classes for types +used in the Registry Modification API + +diff --git a/build.gradle.kts b/build.gradle.kts +index 75bfb0ab8049ebbb52240abf661d469de5526767..87e4ee95a8da287b02c13fac5f24f66902bc84c9 100644 +--- a/build.gradle.kts ++++ b/build.gradle.kts +@@ -1,6 +1,7 @@ + plugins { + `java-library` + `maven-publish` ++ idea // Paper + } + + java { +@@ -46,6 +47,22 @@ dependencies { + testImplementation("org.ow2.asm:asm-tree:9.5") + } + ++// Paper start ++val generatedApiPath: java.nio.file.Path = rootProject.projectDir.toPath().resolve("paper-api-generator/generated") ++idea { ++ module { ++ generatedSourceDirs.add(generatedApiPath.toFile()) ++ } ++} ++sourceSets { ++ main { ++ java { ++ srcDir(generatedApiPath) ++ } ++ } ++} ++// Paper end ++ + configure { + publications.create("maven") { + from(components["java"]) +@@ -122,3 +139,14 @@ tasks.check { + dependsOn(scanJar) + } + // Paper end ++// Paper start ++val scanJarForOldGeneratedCode = tasks.register("scanJarForOldGeneratedCode", io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) { ++ mcVersion.set(providers.gradleProperty("mcVersion")) ++ annotation.set("Lio/papermc/paper/generated/GeneratedFrom;") ++ jarToScan.set(tasks.jar.flatMap { it.archiveFile }) ++ classpath.from(configurations.compileClasspath) ++} ++tasks.check { ++ dependsOn(scanJarForOldGeneratedCode) ++} ++// Paper end +diff --git a/src/main/java/io/papermc/paper/generated/GeneratedFrom.java b/src/main/java/io/papermc/paper/generated/GeneratedFrom.java +new file mode 100644 +index 0000000000000000000000000000000000000000..2512dba27edfdccbc4430815b6cba048e3d93484 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/generated/GeneratedFrom.java +@@ -0,0 +1,21 @@ ++package io.papermc.paper.generated; ++ ++import java.lang.annotation.Documented; ++import java.lang.annotation.ElementType; ++import java.lang.annotation.Retention; ++import java.lang.annotation.RetentionPolicy; ++import java.lang.annotation.Target; ++import org.jetbrains.annotations.ApiStatus; ++ ++/** ++ * Used to mark classes which are generated from ++ * a specific version of minecraft. ++ */ ++@ApiStatus.Internal ++@Documented ++@Retention(RetentionPolicy.RUNTIME) ++@Target(ElementType.TYPE) ++public @interface GeneratedFrom { ++ ++ String value(); ++} +diff --git a/src/main/java/io/papermc/paper/registry/RegistryKey.java b/src/main/java/io/papermc/paper/registry/RegistryKey.java +new file mode 100644 +index 0000000000000000000000000000000000000000..5251f922d2d14da35f61098c11694371f591cd2a +--- /dev/null ++++ b/src/main/java/io/papermc/paper/registry/RegistryKey.java +@@ -0,0 +1,61 @@ ++package io.papermc.paper.registry; ++ ++import net.kyori.adventure.key.Keyed; ++import org.bukkit.GameEvent; ++import org.bukkit.block.Biome; ++import org.bukkit.generator.structure.StructureType; ++import org.bukkit.inventory.meta.trim.TrimMaterial; ++import org.bukkit.inventory.meta.trim.TrimPattern; ++import org.jetbrains.annotations.ApiStatus; ++ ++import static io.papermc.paper.registry.RegistryKeyImpl.create; ++ ++/** ++ * Identifier for a specific registry. For use with ++ * {@link TypedKey} and the registry modification API. ++ *

++ * There are 2 types of registries, identified as "built-in" ++ * or "data-driven". The former are not changeable by datapacks (which ++ * doesn't necessarily mean they aren't changeable in the API) and ++ * are loaded first. "Data-driven" registries are all created by ++ * reading in data from the vanilla and other datapacks. ++ * ++ * @param the value type ++ */ ++@SuppressWarnings("unused") ++@ApiStatus.Experimental ++public sealed interface RegistryKey extends Keyed permits RegistryKeyImpl { ++ ++ /* ******************* * ++ * Built-in Registries * ++ * ******************* */ ++ /** ++ * Built-in registry for game events ++ * @see io.papermc.paper.registry.keys.GameEventKeys ++ */ ++ RegistryKey GAME_EVENT = create("game_event"); ++ /** ++ * Built-in registry for structure types. ++ * @see io.papermc.paper.registry.keys.StructureTypeKeys ++ */ ++ RegistryKey STRUCTURE_TYPE = create("worldgen/structure_type"); ++ ++ /* ********************** * ++ * Data-driven Registries * ++ * ********************** */ ++ /** ++ * Data-driven registry for structure types. ++ * @see io.papermc.paper.registry.keys.BiomeKeys ++ */ ++ RegistryKey BIOME = create("worldgen/biome"); ++ /** ++ * Data-driven registry for structure types. ++ * @see io.papermc.paper.registry.keys.TrimMaterialKeys ++ */ ++ RegistryKey TRIM_MATERIAL = create("trim_material"); ++ /** ++ * Data-driven registry for structure types. ++ * @see io.papermc.paper.registry.keys.TrimPatternKeys ++ */ ++ RegistryKey TRIM_PATTERN = create("trim_pattern"); ++} +diff --git a/src/main/java/io/papermc/paper/registry/RegistryKeyImpl.java b/src/main/java/io/papermc/paper/registry/RegistryKeyImpl.java +new file mode 100644 +index 0000000000000000000000000000000000000000..9ad300fa1668cb59bbd85ff8091591db69b8c9dc +--- /dev/null ++++ b/src/main/java/io/papermc/paper/registry/RegistryKeyImpl.java +@@ -0,0 +1,19 @@ ++package io.papermc.paper.registry; ++ ++import com.google.common.collect.Sets; ++import java.util.Set; ++import net.kyori.adventure.key.Key; ++import org.intellij.lang.annotations.Subst; ++import org.jetbrains.annotations.NotNull; ++ ++record RegistryKeyImpl(@NotNull Key key) implements RegistryKey { ++ ++ static final Set> REGISTRY_KEYS = Sets.newIdentityHashSet(); ++ ++ static RegistryKey create(@Subst("some_key") final String key) { ++ final RegistryKey registryKey = new RegistryKeyImpl<>(Key.key(Key.MINECRAFT_NAMESPACE, key)); ++ REGISTRY_KEYS.add(registryKey); ++ return registryKey; ++ } ++ ++} +diff --git a/src/main/java/io/papermc/paper/registry/TypedKey.java b/src/main/java/io/papermc/paper/registry/TypedKey.java +new file mode 100644 +index 0000000000000000000000000000000000000000..271454cd1b92ada4301025b57348ea77da9116a1 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/registry/TypedKey.java +@@ -0,0 +1,44 @@ ++package io.papermc.paper.registry; ++ ++import net.kyori.adventure.key.Key; ++import net.kyori.adventure.key.Keyed; ++import org.jetbrains.annotations.ApiStatus; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Represents a key for a value in a specific registry. ++ * ++ * @param the value type for the registry ++ */ ++@ApiStatus.Experimental ++public sealed interface TypedKey extends Keyed permits TypedKeyImpl { ++ ++ /** ++ * Gets the key for the value in the registry. ++ * ++ * @return the value's key ++ */ ++ @Override ++ @NotNull Key key(); ++ ++ /** ++ * Gets the registry key for the value this key ++ * represents. ++ * ++ * @return the registry key ++ */ ++ @NotNull RegistryKey registryKey(); ++ ++ /** ++ * Create a typed key from a key and a registry key. ++ * ++ * @param registryKey the registry this key is for ++ * @param key the key for the value in the registry ++ * @param value type ++ * @return a new key for the value key and registry key ++ */ ++ @ApiStatus.Experimental ++ static @NotNull TypedKey create(final @NotNull RegistryKey registryKey, final @NotNull Key key) { ++ return new TypedKeyImpl<>(key, registryKey); ++ } ++} +diff --git a/src/main/java/io/papermc/paper/registry/TypedKeyImpl.java b/src/main/java/io/papermc/paper/registry/TypedKeyImpl.java +new file mode 100644 +index 0000000000000000000000000000000000000000..3c3fd73f7742bb8602e2f9164dd4c1208a412255 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/registry/TypedKeyImpl.java +@@ -0,0 +1,8 @@ ++package io.papermc.paper.registry; ++ ++import net.kyori.adventure.key.Key; ++import net.kyori.adventure.key.Keyed; ++import org.jetbrains.annotations.NotNull; ++ ++record TypedKeyImpl(@NotNull Key key, @NotNull RegistryKey registryKey) implements TypedKey { ++} +diff --git a/src/main/java/org/bukkit/MinecraftExperimental.java b/src/main/java/org/bukkit/MinecraftExperimental.java +index 2365a8c620be709b280fb08855752bb0995838fc..b63e24b3c4d2f1a08e39434caa527bb2e0edea22 100644 +--- a/src/main/java/org/bukkit/MinecraftExperimental.java ++++ b/src/main/java/org/bukkit/MinecraftExperimental.java +@@ -24,4 +24,5 @@ import org.jetbrains.annotations.ApiStatus; + }) + @ApiStatus.Internal + public @interface MinecraftExperimental { ++ String value() default ""; // Paper + } diff --git a/patches/api/0004-Add-FastUtil-to-Bukkit.patch b/patches/api/0005-Add-FastUtil-to-Bukkit.patch similarity index 95% rename from patches/api/0004-Add-FastUtil-to-Bukkit.patch rename to patches/api/0005-Add-FastUtil-to-Bukkit.patch index 2498686f3c..5a3f7d83ea 100644 --- a/patches/api/0004-Add-FastUtil-to-Bukkit.patch +++ b/patches/api/0005-Add-FastUtil-to-Bukkit.patch @@ -9,7 +9,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index 75bfb0ab8049ebbb52240abf661d469de5526767..ecba866b84bc5f86a442bf220ab24ed8706aadf9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -22,6 +22,7 @@ dependencies { +@@ -23,6 +23,7 @@ dependencies { api("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false // includes junit } diff --git a/patches/api/0005-Adventure.patch b/patches/api/0006-Adventure.patch similarity index 99% rename from patches/api/0005-Adventure.patch rename to patches/api/0006-Adventure.patch index 901f90e758..e127e5c070 100644 --- a/patches/api/0005-Adventure.patch +++ b/patches/api/0006-Adventure.patch @@ -10,7 +10,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index ecba866b84bc5f86a442bf220ab24ed8706aadf9..2377d476aee8c88d26ca715fdb756dc97749aac8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -10,12 +10,24 @@ java { +@@ -11,12 +11,24 @@ java { val annotationsVersion = "24.0.1" val bungeeCordChatVersion = "1.20-R0.1" @@ -36,7 +36,7 @@ index ecba866b84bc5f86a442bf220ab24ed8706aadf9..2377d476aee8c88d26ca715fdb756dc9 api("org.yaml:snakeyaml:2.2") api("org.joml:joml:1.10.5") // Paper start -@@ -23,6 +35,13 @@ dependencies { +@@ -24,6 +36,13 @@ dependencies { isTransitive = false // includes junit } api("it.unimi.dsi:fastutil:8.5.6") @@ -50,7 +50,7 @@ index ecba866b84bc5f86a442bf220ab24ed8706aadf9..2377d476aee8c88d26ca715fdb756dc9 // Paper end compileOnly("org.apache.maven:maven-resolver-provider:3.8.5") -@@ -83,14 +102,30 @@ tasks.withType { +@@ -100,14 +119,30 @@ tasks.withType { "https://guava.dev/releases/32.1.2-jre/api/docs/", "https://javadoc.io/doc/org.yaml/snakeyaml/2.2/", "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // Paper - we don't want Java 5 annotations diff --git a/patches/api/0006-Paper-Utils.patch b/patches/api/0007-Paper-Utils.patch similarity index 100% rename from patches/api/0006-Paper-Utils.patch rename to patches/api/0007-Paper-Utils.patch diff --git a/patches/api/0007-Use-ASM-for-event-executors.patch b/patches/api/0008-Use-ASM-for-event-executors.patch similarity index 99% rename from patches/api/0007-Use-ASM-for-event-executors.patch rename to patches/api/0008-Use-ASM-for-event-executors.patch index 1bf57e8a2d..115007f17e 100644 --- a/patches/api/0007-Use-ASM-for-event-executors.patch +++ b/patches/api/0008-Use-ASM-for-event-executors.patch @@ -9,7 +9,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index 2377d476aee8c88d26ca715fdb756dc97749aac8..0c6e0bb90fe5ea29c467323a179a47ec122ba0f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -42,6 +42,9 @@ dependencies { +@@ -43,6 +43,9 @@ dependencies { apiAndDocs("net.kyori:adventure-text-serializer-legacy") apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") diff --git a/patches/api/0008-Paper-Plugins.patch b/patches/api/0009-Paper-Plugins.patch similarity index 99% rename from patches/api/0008-Paper-Plugins.patch rename to patches/api/0009-Paper-Plugins.patch index 2729ba9194..223d7015ab 100644 --- a/patches/api/0008-Paper-Plugins.patch +++ b/patches/api/0009-Paper-Plugins.patch @@ -8,7 +8,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index 0c6e0bb90fe5ea29c467323a179a47ec122ba0f6..145f6209a984e74da2d2de03cf725c06c77ef8da 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -47,7 +47,7 @@ dependencies { +@@ -48,7 +48,7 @@ dependencies { implementation("org.ow2.asm:asm-commons:9.4") // Paper end @@ -17,7 +17,7 @@ index 0c6e0bb90fe5ea29c467323a179a47ec122ba0f6..145f6209a984e74da2d2de03cf725c06 compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper -@@ -118,6 +118,7 @@ tasks.withType { +@@ -135,6 +135,7 @@ tasks.withType { "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", // Paper end diff --git a/patches/api/0009-Add-Position.patch b/patches/api/0010-Add-Position.patch similarity index 100% rename from patches/api/0009-Add-Position.patch rename to patches/api/0010-Add-Position.patch diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0011-Timings-v2.patch similarity index 100% rename from patches/api/0010-Timings-v2.patch rename to patches/api/0011-Timings-v2.patch diff --git a/patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch b/patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch similarity index 100% rename from patches/api/0011-Add-command-line-option-to-load-extra-plugin-jars-no.patch rename to patches/api/0012-Add-command-line-option-to-load-extra-plugin-jars-no.patch diff --git a/patches/api/0012-Player-affects-spawning-API.patch b/patches/api/0013-Player-affects-spawning-API.patch similarity index 100% rename from patches/api/0012-Player-affects-spawning-API.patch rename to patches/api/0013-Player-affects-spawning-API.patch diff --git a/patches/api/0013-Add-getTPS-method.patch b/patches/api/0014-Add-getTPS-method.patch similarity index 100% rename from patches/api/0013-Add-getTPS-method.patch rename to patches/api/0014-Add-getTPS-method.patch diff --git a/patches/api/0014-Version-Command-2.0.patch b/patches/api/0015-Version-Command-2.0.patch similarity index 100% rename from patches/api/0014-Version-Command-2.0.patch rename to patches/api/0015-Version-Command-2.0.patch diff --git a/patches/api/0015-Entity-Origin-API.patch b/patches/api/0016-Entity-Origin-API.patch similarity index 100% rename from patches/api/0015-Entity-Origin-API.patch rename to patches/api/0016-Entity-Origin-API.patch diff --git a/patches/api/0016-Add-PlayerLocaleChangeEvent.patch b/patches/api/0017-Add-PlayerLocaleChangeEvent.patch similarity index 100% rename from patches/api/0016-Add-PlayerLocaleChangeEvent.patch rename to patches/api/0017-Add-PlayerLocaleChangeEvent.patch diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0018-Add-view-distance-API.patch similarity index 100% rename from patches/api/0017-Add-view-distance-API.patch rename to patches/api/0018-Add-view-distance-API.patch diff --git a/patches/api/0018-Add-BeaconEffectEvent.patch b/patches/api/0019-Add-BeaconEffectEvent.patch similarity index 100% rename from patches/api/0018-Add-BeaconEffectEvent.patch rename to patches/api/0019-Add-BeaconEffectEvent.patch diff --git a/patches/api/0019-Add-PlayerInitialSpawnEvent.patch b/patches/api/0020-Add-PlayerInitialSpawnEvent.patch similarity index 100% rename from patches/api/0019-Add-PlayerInitialSpawnEvent.patch rename to patches/api/0020-Add-PlayerInitialSpawnEvent.patch diff --git a/patches/api/0020-Expose-server-CommandMap.patch b/patches/api/0021-Expose-server-CommandMap.patch similarity index 100% rename from patches/api/0020-Expose-server-CommandMap.patch rename to patches/api/0021-Expose-server-CommandMap.patch diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch similarity index 100% rename from patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch rename to patches/api/0022-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch diff --git a/patches/api/0022-Add-exception-reporting-event.patch b/patches/api/0023-Add-exception-reporting-event.patch similarity index 100% rename from patches/api/0022-Add-exception-reporting-event.patch rename to patches/api/0023-Add-exception-reporting-event.patch diff --git a/patches/api/0023-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch b/patches/api/0024-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch similarity index 100% rename from patches/api/0023-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch rename to patches/api/0024-Add-BaseComponent-sendMessage-methods-to-CommandSend.patch diff --git a/patches/api/0024-Fix-ServerListPingEvent-flagging-as-Async.patch b/patches/api/0025-Fix-ServerListPingEvent-flagging-as-Async.patch similarity index 100% rename from patches/api/0024-Fix-ServerListPingEvent-flagging-as-Async.patch rename to patches/api/0025-Fix-ServerListPingEvent-flagging-as-Async.patch diff --git a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch b/patches/api/0026-Player-Tab-List-and-Title-APIs.patch similarity index 100% rename from patches/api/0025-Player-Tab-List-and-Title-APIs.patch rename to patches/api/0026-Player-Tab-List-and-Title-APIs.patch diff --git a/patches/api/0026-Add-methods-for-working-with-arrows-stuck-in-living-.patch b/patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch similarity index 100% rename from patches/api/0026-Add-methods-for-working-with-arrows-stuck-in-living-.patch rename to patches/api/0027-Add-methods-for-working-with-arrows-stuck-in-living-.patch diff --git a/patches/api/0027-Complete-resource-pack-API.patch b/patches/api/0028-Complete-resource-pack-API.patch similarity index 100% rename from patches/api/0027-Complete-resource-pack-API.patch rename to patches/api/0028-Complete-resource-pack-API.patch diff --git a/patches/api/0028-Add-a-call-helper-to-Event.patch b/patches/api/0029-Add-a-call-helper-to-Event.patch similarity index 100% rename from patches/api/0028-Add-a-call-helper-to-Event.patch rename to patches/api/0029-Add-a-call-helper-to-Event.patch diff --git a/patches/api/0029-Add-sender-name-to-commands.yml-replacement.patch b/patches/api/0030-Add-sender-name-to-commands.yml-replacement.patch similarity index 100% rename from patches/api/0029-Add-sender-name-to-commands.yml-replacement.patch rename to patches/api/0030-Add-sender-name-to-commands.yml-replacement.patch diff --git a/patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch b/patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch similarity index 100% rename from patches/api/0030-Add-command-to-reload-permissions.yml-and-require-co.patch rename to patches/api/0031-Add-command-to-reload-permissions.yml-and-require-co.patch diff --git a/patches/api/0031-Custom-replacement-for-eaten-items.patch b/patches/api/0032-Custom-replacement-for-eaten-items.patch similarity index 100% rename from patches/api/0031-Custom-replacement-for-eaten-items.patch rename to patches/api/0032-Custom-replacement-for-eaten-items.patch diff --git a/patches/api/0032-Entity-AddTo-RemoveFrom-World-Events.patch b/patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch similarity index 100% rename from patches/api/0032-Entity-AddTo-RemoveFrom-World-Events.patch rename to patches/api/0033-Entity-AddTo-RemoveFrom-World-Events.patch diff --git a/patches/api/0033-EntityPathfindEvent.patch b/patches/api/0034-EntityPathfindEvent.patch similarity index 100% rename from patches/api/0033-EntityPathfindEvent.patch rename to patches/api/0034-EntityPathfindEvent.patch diff --git a/patches/api/0034-Reduce-thread-synchronization-in-MetadataStoreBase.patch b/patches/api/0035-Reduce-thread-synchronization-in-MetadataStoreBase.patch similarity index 100% rename from patches/api/0034-Reduce-thread-synchronization-in-MetadataStoreBase.patch rename to patches/api/0035-Reduce-thread-synchronization-in-MetadataStoreBase.patch diff --git a/patches/api/0035-Add-MetadataStoreBase.removeAll-Plugin.patch b/patches/api/0036-Add-MetadataStoreBase.removeAll-Plugin.patch similarity index 100% rename from patches/api/0035-Add-MetadataStoreBase.removeAll-Plugin.patch rename to patches/api/0036-Add-MetadataStoreBase.removeAll-Plugin.patch diff --git a/patches/api/0036-Add-PlayerUseUnknownEntityEvent.patch b/patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch similarity index 100% rename from patches/api/0036-Add-PlayerUseUnknownEntityEvent.patch rename to patches/api/0037-Add-PlayerUseUnknownEntityEvent.patch diff --git a/patches/api/0037-Add-handshake-event-to-allow-plugins-to-handle-clien.patch b/patches/api/0038-Add-handshake-event-to-allow-plugins-to-handle-clien.patch similarity index 100% rename from patches/api/0037-Add-handshake-event-to-allow-plugins-to-handle-clien.patch rename to patches/api/0038-Add-handshake-event-to-allow-plugins-to-handle-clien.patch diff --git a/patches/api/0038-Arrow-pickup-rule-API.patch b/patches/api/0039-Arrow-pickup-rule-API.patch similarity index 100% rename from patches/api/0038-Arrow-pickup-rule-API.patch rename to patches/api/0039-Arrow-pickup-rule-API.patch diff --git a/patches/api/0039-EntityRegainHealthEvent-isFastRegen-API.patch b/patches/api/0040-EntityRegainHealthEvent-isFastRegen-API.patch similarity index 100% rename from patches/api/0039-EntityRegainHealthEvent-isFastRegen-API.patch rename to patches/api/0040-EntityRegainHealthEvent-isFastRegen-API.patch diff --git a/patches/api/0040-LootTable-API.patch b/patches/api/0041-LootTable-API.patch similarity index 100% rename from patches/api/0040-LootTable-API.patch rename to patches/api/0041-LootTable-API.patch diff --git a/patches/api/0041-Add-EntityZapEvent.patch b/patches/api/0042-Add-EntityZapEvent.patch similarity index 100% rename from patches/api/0041-Add-EntityZapEvent.patch rename to patches/api/0042-Add-EntityZapEvent.patch diff --git a/patches/api/0042-Misc-Utils.patch b/patches/api/0043-Misc-Utils.patch similarity index 100% rename from patches/api/0042-Misc-Utils.patch rename to patches/api/0043-Misc-Utils.patch diff --git a/patches/api/0043-Allow-Reloading-of-Command-Aliases.patch b/patches/api/0044-Allow-Reloading-of-Command-Aliases.patch similarity index 100% rename from patches/api/0043-Allow-Reloading-of-Command-Aliases.patch rename to patches/api/0044-Allow-Reloading-of-Command-Aliases.patch diff --git a/patches/api/0044-Add-source-to-PlayerExpChangeEvent.patch b/patches/api/0045-Add-source-to-PlayerExpChangeEvent.patch similarity index 100% rename from patches/api/0044-Add-source-to-PlayerExpChangeEvent.patch rename to patches/api/0045-Add-source-to-PlayerExpChangeEvent.patch diff --git a/patches/api/0045-Add-ProjectileCollideEvent.patch b/patches/api/0046-Add-ProjectileCollideEvent.patch similarity index 100% rename from patches/api/0045-Add-ProjectileCollideEvent.patch rename to patches/api/0046-Add-ProjectileCollideEvent.patch diff --git a/patches/api/0046-Add-String-based-Action-Bar-API.patch b/patches/api/0047-Add-String-based-Action-Bar-API.patch similarity index 100% rename from patches/api/0046-Add-String-based-Action-Bar-API.patch rename to patches/api/0047-Add-String-based-Action-Bar-API.patch diff --git a/patches/api/0047-Add-API-methods-to-control-if-armour-stands-can-move.patch b/patches/api/0048-Add-API-methods-to-control-if-armour-stands-can-move.patch similarity index 100% rename from patches/api/0047-Add-API-methods-to-control-if-armour-stands-can-move.patch rename to patches/api/0048-Add-API-methods-to-control-if-armour-stands-can-move.patch diff --git a/patches/api/0048-IllegalPacketEvent.patch b/patches/api/0049-IllegalPacketEvent.patch similarity index 100% rename from patches/api/0048-IllegalPacketEvent.patch rename to patches/api/0049-IllegalPacketEvent.patch diff --git a/patches/api/0049-Fireworks-API-s.patch b/patches/api/0050-Fireworks-API-s.patch similarity index 100% rename from patches/api/0049-Fireworks-API-s.patch rename to patches/api/0050-Fireworks-API-s.patch diff --git a/patches/api/0050-PlayerTeleportEndGatewayEvent.patch b/patches/api/0051-PlayerTeleportEndGatewayEvent.patch similarity index 100% rename from patches/api/0050-PlayerTeleportEndGatewayEvent.patch rename to patches/api/0051-PlayerTeleportEndGatewayEvent.patch diff --git a/patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch similarity index 100% rename from patches/api/0051-Provide-E-TE-Chunk-count-stat-methods.patch rename to patches/api/0052-Provide-E-TE-Chunk-count-stat-methods.patch diff --git a/patches/api/0052-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch b/patches/api/0053-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch similarity index 100% rename from patches/api/0052-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch rename to patches/api/0053-ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch diff --git a/patches/api/0053-Expose-WorldBorder-isInBounds-Location-check.patch b/patches/api/0054-Expose-WorldBorder-isInBounds-Location-check.patch similarity index 100% rename from patches/api/0053-Expose-WorldBorder-isInBounds-Location-check.patch rename to patches/api/0054-Expose-WorldBorder-isInBounds-Location-check.patch diff --git a/patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch b/patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch similarity index 100% rename from patches/api/0054-Add-configuration-option-to-prevent-player-names-fro.patch rename to patches/api/0055-Add-configuration-option-to-prevent-player-names-fro.patch diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0056-Fix-upstream-javadocs.patch similarity index 100% rename from patches/api/0055-Fix-upstream-javadocs.patch rename to patches/api/0056-Fix-upstream-javadocs.patch diff --git a/patches/api/0056-Item-canEntityPickup.patch b/patches/api/0057-Item-canEntityPickup.patch similarity index 100% rename from patches/api/0056-Item-canEntityPickup.patch rename to patches/api/0057-Item-canEntityPickup.patch diff --git a/patches/api/0057-PlayerAttemptPickupItemEvent.patch b/patches/api/0058-PlayerAttemptPickupItemEvent.patch similarity index 100% rename from patches/api/0057-PlayerAttemptPickupItemEvent.patch rename to patches/api/0058-PlayerAttemptPickupItemEvent.patch diff --git a/patches/api/0058-Add-UnknownCommandEvent.patch b/patches/api/0059-Add-UnknownCommandEvent.patch similarity index 100% rename from patches/api/0058-Add-UnknownCommandEvent.patch rename to patches/api/0059-Add-UnknownCommandEvent.patch diff --git a/patches/api/0059-Basic-PlayerProfile-API.patch b/patches/api/0060-Basic-PlayerProfile-API.patch similarity index 100% rename from patches/api/0059-Basic-PlayerProfile-API.patch rename to patches/api/0060-Basic-PlayerProfile-API.patch diff --git a/patches/api/0060-PlayerPickupItemEvent-setFlyAtPlayer.patch b/patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch similarity index 100% rename from patches/api/0060-PlayerPickupItemEvent-setFlyAtPlayer.patch rename to patches/api/0061-PlayerPickupItemEvent-setFlyAtPlayer.patch diff --git a/patches/api/0061-Shoulder-Entities-Release-API.patch b/patches/api/0062-Shoulder-Entities-Release-API.patch similarity index 100% rename from patches/api/0061-Shoulder-Entities-Release-API.patch rename to patches/api/0062-Shoulder-Entities-Release-API.patch diff --git a/patches/api/0062-Entity-fromMobSpawner.patch b/patches/api/0063-Entity-fromMobSpawner.patch similarity index 100% rename from patches/api/0062-Entity-fromMobSpawner.patch rename to patches/api/0063-Entity-fromMobSpawner.patch diff --git a/patches/api/0063-Profile-Lookup-Events.patch b/patches/api/0064-Profile-Lookup-Events.patch similarity index 100% rename from patches/api/0063-Profile-Lookup-Events.patch rename to patches/api/0064-Profile-Lookup-Events.patch diff --git a/patches/api/0064-Improve-the-Saddle-API-for-Horses.patch b/patches/api/0065-Improve-the-Saddle-API-for-Horses.patch similarity index 100% rename from patches/api/0064-Improve-the-Saddle-API-for-Horses.patch rename to patches/api/0065-Improve-the-Saddle-API-for-Horses.patch diff --git a/patches/api/0065-Add-getI18NDisplayName-API.patch b/patches/api/0066-Add-getI18NDisplayName-API.patch similarity index 100% rename from patches/api/0065-Add-getI18NDisplayName-API.patch rename to patches/api/0066-Add-getI18NDisplayName-API.patch diff --git a/patches/api/0066-ensureServerConversions-API.patch b/patches/api/0067-ensureServerConversions-API.patch similarity index 100% rename from patches/api/0066-ensureServerConversions-API.patch rename to patches/api/0067-ensureServerConversions-API.patch diff --git a/patches/api/0067-LivingEntity-setKiller.patch b/patches/api/0068-LivingEntity-setKiller.patch similarity index 100% rename from patches/api/0067-LivingEntity-setKiller.patch rename to patches/api/0068-LivingEntity-setKiller.patch diff --git a/patches/api/0068-ProfileWhitelistVerifyEvent.patch b/patches/api/0069-ProfileWhitelistVerifyEvent.patch similarity index 100% rename from patches/api/0068-ProfileWhitelistVerifyEvent.patch rename to patches/api/0069-ProfileWhitelistVerifyEvent.patch diff --git a/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch similarity index 96% rename from patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch rename to patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch index b530e27068..8d10a87ad3 100644 --- a/patches/api/0069-Allow-plugins-to-use-SLF4J-for-logging.patch +++ b/patches/api/0070-Allow-plugins-to-use-SLF4J-for-logging.patch @@ -17,7 +17,7 @@ diff --git a/build.gradle.kts b/build.gradle.kts index 145f6209a984e74da2d2de03cf725c06c77ef8da..639651972fddce4dff63a0f0a7e566a15b9e2dd6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -11,6 +11,8 @@ java { +@@ -12,6 +12,8 @@ java { val annotationsVersion = "24.0.1" val bungeeCordChatVersion = "1.20-R0.1" val adventureVersion = "4.14.0" @@ -26,7 +26,7 @@ index 145f6209a984e74da2d2de03cf725c06c77ef8da..639651972fddce4dff63a0f0a7e566a1 val apiAndDocs: Configuration by configurations.creating { attributes { attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION)) -@@ -42,6 +44,8 @@ dependencies { +@@ -43,6 +45,8 @@ dependencies { apiAndDocs("net.kyori:adventure-text-serializer-legacy") apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") @@ -35,7 +35,7 @@ index 145f6209a984e74da2d2de03cf725c06c77ef8da..639651972fddce4dff63a0f0a7e566a1 implementation("org.ow2.asm:asm:9.4") implementation("org.ow2.asm:asm-commons:9.4") -@@ -117,6 +121,8 @@ tasks.withType { +@@ -134,6 +138,8 @@ tasks.withType { "https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/", "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", diff --git a/patches/api/0070-Handle-plugin-prefixes-in-implementation-logging-con.patch b/patches/api/0071-Handle-plugin-prefixes-in-implementation-logging-con.patch similarity index 100% rename from patches/api/0070-Handle-plugin-prefixes-in-implementation-logging-con.patch rename to patches/api/0071-Handle-plugin-prefixes-in-implementation-logging-con.patch diff --git a/patches/api/0071-Add-PlayerJumpEvent.patch b/patches/api/0072-Add-PlayerJumpEvent.patch similarity index 100% rename from patches/api/0071-Add-PlayerJumpEvent.patch rename to patches/api/0072-Add-PlayerJumpEvent.patch diff --git a/patches/api/0072-Add-workaround-for-plugins-modifying-the-parent-of-t.patch b/patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch similarity index 100% rename from patches/api/0072-Add-workaround-for-plugins-modifying-the-parent-of-t.patch rename to patches/api/0073-Add-workaround-for-plugins-modifying-the-parent-of-t.patch diff --git a/patches/api/0073-Add-PlayerArmorChangeEvent.patch b/patches/api/0074-Add-PlayerArmorChangeEvent.patch similarity index 100% rename from patches/api/0073-Add-PlayerArmorChangeEvent.patch rename to patches/api/0074-Add-PlayerArmorChangeEvent.patch diff --git a/patches/api/0074-API-to-get-a-BlockState-without-a-snapshot.patch b/patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch similarity index 100% rename from patches/api/0074-API-to-get-a-BlockState-without-a-snapshot.patch rename to patches/api/0075-API-to-get-a-BlockState-without-a-snapshot.patch diff --git a/patches/api/0075-AsyncTabCompleteEvent.patch b/patches/api/0076-AsyncTabCompleteEvent.patch similarity index 100% rename from patches/api/0075-AsyncTabCompleteEvent.patch rename to patches/api/0076-AsyncTabCompleteEvent.patch diff --git a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0077-Expose-client-protocol-version-and-virtual-host.patch similarity index 100% rename from patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch rename to patches/api/0077-Expose-client-protocol-version-and-virtual-host.patch diff --git a/patches/api/0077-Display-warning-on-deprecated-recipe-API.patch b/patches/api/0078-Display-warning-on-deprecated-recipe-API.patch similarity index 100% rename from patches/api/0077-Display-warning-on-deprecated-recipe-API.patch rename to patches/api/0078-Display-warning-on-deprecated-recipe-API.patch diff --git a/patches/api/0078-PlayerPickupExperienceEvent.patch b/patches/api/0079-PlayerPickupExperienceEvent.patch similarity index 100% rename from patches/api/0078-PlayerPickupExperienceEvent.patch rename to patches/api/0079-PlayerPickupExperienceEvent.patch diff --git a/patches/api/0079-ExperienceOrbMergeEvent.patch b/patches/api/0080-ExperienceOrbMergeEvent.patch similarity index 100% rename from patches/api/0079-ExperienceOrbMergeEvent.patch rename to patches/api/0080-ExperienceOrbMergeEvent.patch diff --git a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0081-Ability-to-apply-mending-to-XP-API.patch similarity index 100% rename from patches/api/0080-Ability-to-apply-mending-to-XP-API.patch rename to patches/api/0081-Ability-to-apply-mending-to-XP-API.patch diff --git a/patches/api/0081-PreCreatureSpawnEvent.patch b/patches/api/0082-PreCreatureSpawnEvent.patch similarity index 100% rename from patches/api/0081-PreCreatureSpawnEvent.patch rename to patches/api/0082-PreCreatureSpawnEvent.patch diff --git a/patches/api/0082-PlayerNaturallySpawnCreaturesEvent.patch b/patches/api/0083-PlayerNaturallySpawnCreaturesEvent.patch similarity index 100% rename from patches/api/0082-PlayerNaturallySpawnCreaturesEvent.patch rename to patches/api/0083-PlayerNaturallySpawnCreaturesEvent.patch diff --git a/patches/api/0083-Add-setPlayerProfile-API-for-Skulls.patch b/patches/api/0084-Add-setPlayerProfile-API-for-Skulls.patch similarity index 100% rename from patches/api/0083-Add-setPlayerProfile-API-for-Skulls.patch rename to patches/api/0084-Add-setPlayerProfile-API-for-Skulls.patch diff --git a/patches/api/0084-Fill-Profile-Property-Events.patch b/patches/api/0086-Fill-Profile-Property-Events.patch similarity index 100% rename from patches/api/0084-Fill-Profile-Property-Events.patch rename to patches/api/0086-Fill-Profile-Property-Events.patch diff --git a/patches/api/0086-Add-ArmorStand-Item-Meta.patch b/patches/api/0087-Add-ArmorStand-Item-Meta.patch similarity index 100% rename from patches/api/0086-Add-ArmorStand-Item-Meta.patch rename to patches/api/0087-Add-ArmorStand-Item-Meta.patch diff --git a/patches/api/0087-Optimize-Hoppers.patch b/patches/api/0088-Optimize-Hoppers.patch similarity index 100% rename from patches/api/0087-Optimize-Hoppers.patch rename to patches/api/0088-Optimize-Hoppers.patch diff --git a/patches/api/0088-Tameable-getOwnerUniqueId-API.patch b/patches/api/0089-Tameable-getOwnerUniqueId-API.patch similarity index 100% rename from patches/api/0088-Tameable-getOwnerUniqueId-API.patch rename to patches/api/0089-Tameable-getOwnerUniqueId-API.patch diff --git a/patches/api/0089-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch b/patches/api/0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch similarity index 100% rename from patches/api/0089-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch rename to patches/api/0090-Ability-to-change-PlayerProfile-in-AsyncPreLoginEven.patch diff --git a/patches/api/0090-Add-extended-PaperServerListPingEvent.patch b/patches/api/0091-Add-extended-PaperServerListPingEvent.patch similarity index 100% rename from patches/api/0090-Add-extended-PaperServerListPingEvent.patch rename to patches/api/0091-Add-extended-PaperServerListPingEvent.patch diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0092-Player.setPlayerProfile-API.patch similarity index 100% rename from patches/api/0091-Player.setPlayerProfile-API.patch rename to patches/api/0092-Player.setPlayerProfile-API.patch diff --git a/patches/api/0092-getPlayerUniqueId-API.patch b/patches/api/0093-getPlayerUniqueId-API.patch similarity index 100% rename from patches/api/0092-getPlayerUniqueId-API.patch rename to patches/api/0093-getPlayerUniqueId-API.patch diff --git a/patches/api/0093-Add-legacy-ping-support-to-PaperServerListPingEvent.patch b/patches/api/0094-Add-legacy-ping-support-to-PaperServerListPingEvent.patch similarity index 100% rename from patches/api/0093-Add-legacy-ping-support-to-PaperServerListPingEvent.patch rename to patches/api/0094-Add-legacy-ping-support-to-PaperServerListPingEvent.patch diff --git a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch b/patches/api/0095-Add-openSign-method-to-HumanEntity.patch similarity index 100% rename from patches/api/0094-Add-openSign-method-to-HumanEntity.patch rename to patches/api/0095-Add-openSign-method-to-HumanEntity.patch diff --git a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch similarity index 100% rename from patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch rename to patches/api/0096-Add-Ban-Methods-to-Player-Objects.patch diff --git a/patches/api/0096-EndermanEscapeEvent.patch b/patches/api/0097-EndermanEscapeEvent.patch similarity index 100% rename from patches/api/0096-EndermanEscapeEvent.patch rename to patches/api/0097-EndermanEscapeEvent.patch diff --git a/patches/api/0097-Enderman.teleportRandomly.patch b/patches/api/0098-Enderman.teleportRandomly.patch similarity index 100% rename from patches/api/0097-Enderman.teleportRandomly.patch rename to patches/api/0098-Enderman.teleportRandomly.patch diff --git a/patches/api/0098-Additional-world.getNearbyEntities-API-s.patch b/patches/api/0099-Additional-world.getNearbyEntities-API-s.patch similarity index 100% rename from patches/api/0098-Additional-world.getNearbyEntities-API-s.patch rename to patches/api/0099-Additional-world.getNearbyEntities-API-s.patch diff --git a/patches/api/0099-Location.isChunkLoaded-API.patch b/patches/api/0100-Location.isChunkLoaded-API.patch similarity index 100% rename from patches/api/0099-Location.isChunkLoaded-API.patch rename to patches/api/0100-Location.isChunkLoaded-API.patch diff --git a/patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch b/patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch similarity index 100% rename from patches/api/0100-Expand-World.spawnParticle-API-and-add-Builder.patch rename to patches/api/0101-Expand-World.spawnParticle-API-and-add-Builder.patch diff --git a/patches/api/0101-EndermanAttackPlayerEvent.patch b/patches/api/0102-EndermanAttackPlayerEvent.patch similarity index 100% rename from patches/api/0101-EndermanAttackPlayerEvent.patch rename to patches/api/0102-EndermanAttackPlayerEvent.patch diff --git a/patches/api/0102-WitchConsumePotionEvent.patch b/patches/api/0103-WitchConsumePotionEvent.patch similarity index 100% rename from patches/api/0102-WitchConsumePotionEvent.patch rename to patches/api/0103-WitchConsumePotionEvent.patch diff --git a/patches/api/0103-WitchThrowPotionEvent.patch b/patches/api/0104-WitchThrowPotionEvent.patch similarity index 100% rename from patches/api/0103-WitchThrowPotionEvent.patch rename to patches/api/0104-WitchThrowPotionEvent.patch diff --git a/patches/api/0104-Location.toBlockLocation-toCenterLocation.patch b/patches/api/0105-Location.toBlockLocation-toCenterLocation.patch similarity index 100% rename from patches/api/0104-Location.toBlockLocation-toCenterLocation.patch rename to patches/api/0105-Location.toBlockLocation-toCenterLocation.patch diff --git a/patches/api/0105-PotionEffect-clone-methods.patch b/patches/api/0106-PotionEffect-clone-methods.patch similarity index 100% rename from patches/api/0105-PotionEffect-clone-methods.patch rename to patches/api/0106-PotionEffect-clone-methods.patch diff --git a/patches/api/0106-WitchReadyPotionEvent.patch b/patches/api/0107-WitchReadyPotionEvent.patch similarity index 100% rename from patches/api/0106-WitchReadyPotionEvent.patch rename to patches/api/0107-WitchReadyPotionEvent.patch diff --git a/patches/api/0107-ItemStack-getMaxItemUseDuration.patch b/patches/api/0108-ItemStack-getMaxItemUseDuration.patch similarity index 100% rename from patches/api/0107-ItemStack-getMaxItemUseDuration.patch rename to patches/api/0108-ItemStack-getMaxItemUseDuration.patch diff --git a/patches/api/0108-Add-EntityTeleportEndGatewayEvent.patch b/patches/api/0109-Add-EntityTeleportEndGatewayEvent.patch similarity index 100% rename from patches/api/0108-Add-EntityTeleportEndGatewayEvent.patch rename to patches/api/0109-Add-EntityTeleportEndGatewayEvent.patch diff --git a/patches/api/0109-Make-shield-blocking-delay-configurable.patch b/patches/api/0110-Make-shield-blocking-delay-configurable.patch similarity index 100% rename from patches/api/0109-Make-shield-blocking-delay-configurable.patch rename to patches/api/0110-Make-shield-blocking-delay-configurable.patch diff --git a/patches/api/0110-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch similarity index 100% rename from patches/api/0110-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch rename to patches/api/0111-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch diff --git a/patches/api/0111-Add-getNearbyXXX-methods-to-Location.patch b/patches/api/0112-Add-getNearbyXXX-methods-to-Location.patch similarity index 100% rename from patches/api/0111-Add-getNearbyXXX-methods-to-Location.patch rename to patches/api/0112-Add-getNearbyXXX-methods-to-Location.patch diff --git a/patches/api/0112-PlayerReadyArrowEvent.patch b/patches/api/0113-PlayerReadyArrowEvent.patch similarity index 100% rename from patches/api/0112-PlayerReadyArrowEvent.patch rename to patches/api/0113-PlayerReadyArrowEvent.patch diff --git a/patches/api/0113-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch b/patches/api/0114-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch similarity index 100% rename from patches/api/0113-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch rename to patches/api/0114-Add-EntityKnockbackByEntityEvent-and-EntityPushedByE.patch diff --git a/patches/api/0114-Expand-Explosions-API.patch b/patches/api/0115-Expand-Explosions-API.patch similarity index 100% rename from patches/api/0114-Expand-Explosions-API.patch rename to patches/api/0115-Expand-Explosions-API.patch diff --git a/patches/api/0115-ItemStack-API-additions-for-quantity-flags-lore.patch b/patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch similarity index 100% rename from patches/api/0115-ItemStack-API-additions-for-quantity-flags-lore.patch rename to patches/api/0116-ItemStack-API-additions-for-quantity-flags-lore.patch diff --git a/patches/api/0116-LivingEntity-Hand-Raised-Item-Use-API.patch b/patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch similarity index 100% rename from patches/api/0116-LivingEntity-Hand-Raised-Item-Use-API.patch rename to patches/api/0117-LivingEntity-Hand-Raised-Item-Use-API.patch diff --git a/patches/api/0117-RangedEntity-API.patch b/patches/api/0118-RangedEntity-API.patch similarity index 100% rename from patches/api/0117-RangedEntity-API.patch rename to patches/api/0118-RangedEntity-API.patch diff --git a/patches/api/0118-Add-World.getEntity-UUID-API.patch b/patches/api/0119-Add-World.getEntity-UUID-API.patch similarity index 100% rename from patches/api/0118-Add-World.getEntity-UUID-API.patch rename to patches/api/0119-Add-World.getEntity-UUID-API.patch diff --git a/patches/api/0119-InventoryCloseEvent-Reason-API.patch b/patches/api/0120-InventoryCloseEvent-Reason-API.patch similarity index 100% rename from patches/api/0119-InventoryCloseEvent-Reason-API.patch rename to patches/api/0120-InventoryCloseEvent-Reason-API.patch diff --git a/patches/api/0120-Allow-setting-the-vex-s-summoner.patch b/patches/api/0121-Allow-setting-the-vex-s-summoner.patch similarity index 100% rename from patches/api/0120-Allow-setting-the-vex-s-summoner.patch rename to patches/api/0121-Allow-setting-the-vex-s-summoner.patch diff --git a/patches/api/0121-Entity-getChunk-API.patch b/patches/api/0122-Entity-getChunk-API.patch similarity index 100% rename from patches/api/0121-Entity-getChunk-API.patch rename to patches/api/0122-Entity-getChunk-API.patch diff --git a/patches/api/0122-EnderDragon-Events.patch b/patches/api/0123-EnderDragon-Events.patch similarity index 100% rename from patches/api/0122-EnderDragon-Events.patch rename to patches/api/0123-EnderDragon-Events.patch diff --git a/patches/api/0123-PlayerElytraBoostEvent.patch b/patches/api/0124-PlayerElytraBoostEvent.patch similarity index 100% rename from patches/api/0123-PlayerElytraBoostEvent.patch rename to patches/api/0124-PlayerElytraBoostEvent.patch diff --git a/patches/api/0124-PlayerLaunchProjectileEvent.patch b/patches/api/0125-PlayerLaunchProjectileEvent.patch similarity index 100% rename from patches/api/0124-PlayerLaunchProjectileEvent.patch rename to patches/api/0125-PlayerLaunchProjectileEvent.patch diff --git a/patches/api/0125-EntityTransformedEvent.patch b/patches/api/0126-EntityTransformedEvent.patch similarity index 100% rename from patches/api/0125-EntityTransformedEvent.patch rename to patches/api/0126-EntityTransformedEvent.patch diff --git a/patches/api/0126-Allow-disabling-armour-stand-ticking.patch b/patches/api/0127-Allow-disabling-armour-stand-ticking.patch similarity index 100% rename from patches/api/0126-Allow-disabling-armour-stand-ticking.patch rename to patches/api/0127-Allow-disabling-armour-stand-ticking.patch diff --git a/patches/api/0127-SkeletonHorse-Additions.patch b/patches/api/0128-SkeletonHorse-Additions.patch similarity index 100% rename from patches/api/0127-SkeletonHorse-Additions.patch rename to patches/api/0128-SkeletonHorse-Additions.patch diff --git a/patches/api/0128-Expand-Location-Manipulation-API.patch b/patches/api/0129-Expand-Location-Manipulation-API.patch similarity index 100% rename from patches/api/0128-Expand-Location-Manipulation-API.patch rename to patches/api/0129-Expand-Location-Manipulation-API.patch diff --git a/patches/api/0129-Expand-ArmorStand-API.patch b/patches/api/0130-Expand-ArmorStand-API.patch similarity index 100% rename from patches/api/0129-Expand-ArmorStand-API.patch rename to patches/api/0130-Expand-ArmorStand-API.patch diff --git a/patches/api/0130-AnvilDamageEvent.patch b/patches/api/0131-AnvilDamageEvent.patch similarity index 100% rename from patches/api/0130-AnvilDamageEvent.patch rename to patches/api/0131-AnvilDamageEvent.patch diff --git a/patches/api/0131-Add-TNTPrimeEvent.patch b/patches/api/0132-Add-TNTPrimeEvent.patch similarity index 100% rename from patches/api/0131-Add-TNTPrimeEvent.patch rename to patches/api/0132-Add-TNTPrimeEvent.patch diff --git a/patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch b/patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch similarity index 100% rename from patches/api/0132-Provide-Chunk-Coordinates-as-a-Long-API.patch rename to patches/api/0133-Provide-Chunk-Coordinates-as-a-Long-API.patch diff --git a/patches/api/0133-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch b/patches/api/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch similarity index 100% rename from patches/api/0133-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch rename to patches/api/0134-Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch diff --git a/patches/api/0134-Don-t-use-snapshots-for-Timings-Tile-Entity-reports.patch b/patches/api/0135-Don-t-use-snapshots-for-Timings-Tile-Entity-reports.patch similarity index 100% rename from patches/api/0134-Don-t-use-snapshots-for-Timings-Tile-Entity-reports.patch rename to patches/api/0135-Don-t-use-snapshots-for-Timings-Tile-Entity-reports.patch diff --git a/patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch b/patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch similarity index 100% rename from patches/api/0135-Allow-Blocks-to-be-accessed-via-a-long-key.patch rename to patches/api/0136-Allow-Blocks-to-be-accessed-via-a-long-key.patch diff --git a/patches/api/0136-Slime-Pathfinder-Events.patch b/patches/api/0137-Slime-Pathfinder-Events.patch similarity index 100% rename from patches/api/0136-Slime-Pathfinder-Events.patch rename to patches/api/0137-Slime-Pathfinder-Events.patch diff --git a/patches/api/0137-Add-PhantomPreSpawnEvent.patch b/patches/api/0138-Add-PhantomPreSpawnEvent.patch similarity index 100% rename from patches/api/0137-Add-PhantomPreSpawnEvent.patch rename to patches/api/0138-Add-PhantomPreSpawnEvent.patch diff --git a/patches/api/0138-Add-More-Creeper-API.patch b/patches/api/0139-Add-More-Creeper-API.patch similarity index 100% rename from patches/api/0138-Add-More-Creeper-API.patch rename to patches/api/0139-Add-More-Creeper-API.patch diff --git a/patches/api/0139-Inventory-removeItemAnySlot.patch b/patches/api/0140-Inventory-removeItemAnySlot.patch similarity index 100% rename from patches/api/0139-Inventory-removeItemAnySlot.patch rename to patches/api/0140-Inventory-removeItemAnySlot.patch diff --git a/patches/api/0140-isChunkGenerated-API.patch b/patches/api/0141-isChunkGenerated-API.patch similarity index 100% rename from patches/api/0140-isChunkGenerated-API.patch rename to patches/api/0141-isChunkGenerated-API.patch diff --git a/patches/api/0141-Add-source-block-constructor-and-getChangedBlockData.patch b/patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch similarity index 100% rename from patches/api/0141-Add-source-block-constructor-and-getChangedBlockData.patch rename to patches/api/0142-Add-source-block-constructor-and-getChangedBlockData.patch diff --git a/patches/api/0142-Async-Chunks-API.patch b/patches/api/0143-Async-Chunks-API.patch similarity index 100% rename from patches/api/0142-Async-Chunks-API.patch rename to patches/api/0143-Async-Chunks-API.patch diff --git a/patches/api/0143-Add-ray-tracing-methods-to-LivingEntity.patch b/patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch similarity index 100% rename from patches/api/0143-Add-ray-tracing-methods-to-LivingEntity.patch rename to patches/api/0144-Add-ray-tracing-methods-to-LivingEntity.patch diff --git a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch similarity index 100% rename from patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch rename to patches/api/0145-Expose-attack-cooldown-methods-for-Player.patch diff --git a/patches/api/0145-Improve-death-events.patch b/patches/api/0146-Improve-death-events.patch similarity index 100% rename from patches/api/0145-Improve-death-events.patch rename to patches/api/0146-Improve-death-events.patch diff --git a/patches/api/0146-Add-Git-information-to-version-command-on-startup.patch b/patches/api/0147-Add-Git-information-to-version-command-on-startup.patch similarity index 100% rename from patches/api/0146-Add-Git-information-to-version-command-on-startup.patch rename to patches/api/0147-Add-Git-information-to-version-command-on-startup.patch diff --git a/patches/api/0147-Mob-Pathfinding-API.patch b/patches/api/0148-Mob-Pathfinding-API.patch similarity index 100% rename from patches/api/0147-Mob-Pathfinding-API.patch rename to patches/api/0148-Mob-Pathfinding-API.patch diff --git a/patches/api/0148-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch b/patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch similarity index 100% rename from patches/api/0148-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch rename to patches/api/0149-Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch diff --git a/patches/api/0149-Performance-Concurrency-Improvements-to-Permissions.patch b/patches/api/0150-Performance-Concurrency-Improvements-to-Permissions.patch similarity index 100% rename from patches/api/0149-Performance-Concurrency-Improvements-to-Permissions.patch rename to patches/api/0150-Performance-Concurrency-Improvements-to-Permissions.patch diff --git a/patches/api/0150-Add-ItemStackRecipeChoice-Draft-API.patch b/patches/api/0151-Add-ItemStackRecipeChoice-Draft-API.patch similarity index 100% rename from patches/api/0150-Add-ItemStackRecipeChoice-Draft-API.patch rename to patches/api/0151-Add-ItemStackRecipeChoice-Draft-API.patch diff --git a/patches/api/0151-Implement-furnace-cook-speed-multiplier-API.patch b/patches/api/0152-Implement-furnace-cook-speed-multiplier-API.patch similarity index 100% rename from patches/api/0151-Implement-furnace-cook-speed-multiplier-API.patch rename to patches/api/0152-Implement-furnace-cook-speed-multiplier-API.patch diff --git a/patches/api/0152-Material-API-additions.patch b/patches/api/0153-Material-API-additions.patch similarity index 100% rename from patches/api/0152-Material-API-additions.patch rename to patches/api/0153-Material-API-additions.patch diff --git a/patches/api/0153-Add-Material-Tags.patch b/patches/api/0154-Add-Material-Tags.patch similarity index 100% rename from patches/api/0153-Add-Material-Tags.patch rename to patches/api/0154-Add-Material-Tags.patch diff --git a/patches/api/0154-PreSpawnerSpawnEvent.patch b/patches/api/0155-PreSpawnerSpawnEvent.patch similarity index 100% rename from patches/api/0154-PreSpawnerSpawnEvent.patch rename to patches/api/0155-PreSpawnerSpawnEvent.patch diff --git a/patches/api/0155-Add-LivingEntity-getTargetEntity.patch b/patches/api/0156-Add-LivingEntity-getTargetEntity.patch similarity index 100% rename from patches/api/0155-Add-LivingEntity-getTargetEntity.patch rename to patches/api/0156-Add-LivingEntity-getTargetEntity.patch diff --git a/patches/api/0156-Add-sun-related-API.patch b/patches/api/0157-Add-sun-related-API.patch similarity index 100% rename from patches/api/0156-Add-sun-related-API.patch rename to patches/api/0157-Add-sun-related-API.patch diff --git a/patches/api/0157-Turtle-API.patch b/patches/api/0158-Turtle-API.patch similarity index 100% rename from patches/api/0157-Turtle-API.patch rename to patches/api/0158-Turtle-API.patch diff --git a/patches/api/0158-Add-spectator-target-events.patch b/patches/api/0159-Add-spectator-target-events.patch similarity index 100% rename from patches/api/0158-Add-spectator-target-events.patch rename to patches/api/0159-Add-spectator-target-events.patch diff --git a/patches/api/0159-Add-more-Witch-API.patch b/patches/api/0160-Add-more-Witch-API.patch similarity index 100% rename from patches/api/0159-Add-more-Witch-API.patch rename to patches/api/0160-Add-more-Witch-API.patch diff --git a/patches/api/0160-Make-the-default-permission-message-configurable.patch b/patches/api/0161-Make-the-default-permission-message-configurable.patch similarity index 100% rename from patches/api/0160-Make-the-default-permission-message-configurable.patch rename to patches/api/0161-Make-the-default-permission-message-configurable.patch diff --git a/patches/api/0161-Support-cancellation-supression-of-EntityDismount-Ve.patch b/patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch similarity index 100% rename from patches/api/0161-Support-cancellation-supression-of-EntityDismount-Ve.patch rename to patches/api/0162-Support-cancellation-supression-of-EntityDismount-Ve.patch diff --git a/patches/api/0162-Add-more-Zombie-API.patch b/patches/api/0163-Add-more-Zombie-API.patch similarity index 100% rename from patches/api/0162-Add-more-Zombie-API.patch rename to patches/api/0163-Add-more-Zombie-API.patch diff --git a/patches/api/0163-Change-the-reserved-channel-check-to-be-sensible.patch b/patches/api/0164-Change-the-reserved-channel-check-to-be-sensible.patch similarity index 100% rename from patches/api/0163-Change-the-reserved-channel-check-to-be-sensible.patch rename to patches/api/0164-Change-the-reserved-channel-check-to-be-sensible.patch diff --git a/patches/api/0164-Add-PlayerConnectionCloseEvent.patch b/patches/api/0165-Add-PlayerConnectionCloseEvent.patch similarity index 100% rename from patches/api/0164-Add-PlayerConnectionCloseEvent.patch rename to patches/api/0165-Add-PlayerConnectionCloseEvent.patch diff --git a/patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/api/0166-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch similarity index 100% rename from patches/api/0165-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch rename to patches/api/0166-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch diff --git a/patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch b/patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch similarity index 100% rename from patches/api/0166-Add-ItemStack-Recipe-API-helper-methods.patch rename to patches/api/0167-Add-ItemStack-Recipe-API-helper-methods.patch diff --git a/patches/api/0167-BlockDestroyEvent.patch b/patches/api/0168-BlockDestroyEvent.patch similarity index 100% rename from patches/api/0167-BlockDestroyEvent.patch rename to patches/api/0168-BlockDestroyEvent.patch diff --git a/patches/api/0168-Add-WhitelistToggleEvent.patch b/patches/api/0169-Add-WhitelistToggleEvent.patch similarity index 100% rename from patches/api/0168-Add-WhitelistToggleEvent.patch rename to patches/api/0169-Add-WhitelistToggleEvent.patch diff --git a/patches/api/0169-Add-GS4-Query-event.patch b/patches/api/0170-Add-GS4-Query-event.patch similarity index 100% rename from patches/api/0169-Add-GS4-Query-event.patch rename to patches/api/0170-Add-GS4-Query-event.patch diff --git a/patches/api/0170-Add-PlayerPostRespawnEvent.patch b/patches/api/0171-Add-PlayerPostRespawnEvent.patch similarity index 100% rename from patches/api/0170-Add-PlayerPostRespawnEvent.patch rename to patches/api/0171-Add-PlayerPostRespawnEvent.patch diff --git a/patches/api/0171-Entity-getEntitySpawnReason.patch b/patches/api/0172-Entity-getEntitySpawnReason.patch similarity index 100% rename from patches/api/0171-Entity-getEntitySpawnReason.patch rename to patches/api/0172-Entity-getEntitySpawnReason.patch diff --git a/patches/api/0172-Fix-Spigot-annotation-mistakes.patch b/patches/api/0173-Fix-Spigot-annotation-mistakes.patch similarity index 100% rename from patches/api/0172-Fix-Spigot-annotation-mistakes.patch rename to patches/api/0173-Fix-Spigot-annotation-mistakes.patch diff --git a/patches/api/0173-Server-Tick-Events.patch b/patches/api/0174-Server-Tick-Events.patch similarity index 100% rename from patches/api/0173-Server-Tick-Events.patch rename to patches/api/0174-Server-Tick-Events.patch diff --git a/patches/api/0174-PlayerDeathEvent-getItemsToKeep.patch b/patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch similarity index 100% rename from patches/api/0174-PlayerDeathEvent-getItemsToKeep.patch rename to patches/api/0175-PlayerDeathEvent-getItemsToKeep.patch diff --git a/patches/api/0175-Add-Heightmap-API.patch b/patches/api/0176-Add-Heightmap-API.patch similarity index 100% rename from patches/api/0175-Add-Heightmap-API.patch rename to patches/api/0176-Add-Heightmap-API.patch diff --git a/patches/api/0176-Mob-Spawner-API-Enhancements.patch b/patches/api/0177-Mob-Spawner-API-Enhancements.patch similarity index 100% rename from patches/api/0176-Mob-Spawner-API-Enhancements.patch rename to patches/api/0177-Mob-Spawner-API-Enhancements.patch diff --git a/patches/api/0177-Add-BlockSoundGroup-interface.patch b/patches/api/0178-Add-BlockSoundGroup-interface.patch similarity index 100% rename from patches/api/0177-Add-BlockSoundGroup-interface.patch rename to patches/api/0178-Add-BlockSoundGroup-interface.patch diff --git a/patches/api/0178-Amend-PlayerInteractAtEntityEvent-javadoc-for-ArmorS.patch b/patches/api/0179-Amend-PlayerInteractAtEntityEvent-javadoc-for-ArmorS.patch similarity index 100% rename from patches/api/0178-Amend-PlayerInteractAtEntityEvent-javadoc-for-ArmorS.patch rename to patches/api/0179-Amend-PlayerInteractAtEntityEvent-javadoc-for-ArmorS.patch diff --git a/patches/api/0179-Increase-custom-payload-channel-message-size.patch b/patches/api/0180-Increase-custom-payload-channel-message-size.patch similarity index 100% rename from patches/api/0179-Increase-custom-payload-channel-message-size.patch rename to patches/api/0180-Increase-custom-payload-channel-message-size.patch diff --git a/patches/api/0180-Expose-the-internal-current-tick.patch b/patches/api/0181-Expose-the-internal-current-tick.patch similarity index 100% rename from patches/api/0180-Expose-the-internal-current-tick.patch rename to patches/api/0181-Expose-the-internal-current-tick.patch diff --git a/patches/api/0181-Improve-Block-breakNaturally-API.patch b/patches/api/0182-Improve-Block-breakNaturally-API.patch similarity index 100% rename from patches/api/0181-Improve-Block-breakNaturally-API.patch rename to patches/api/0182-Improve-Block-breakNaturally-API.patch diff --git a/patches/api/0182-PlayerDeathEvent-shouldDropExperience.patch b/patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch similarity index 100% rename from patches/api/0182-PlayerDeathEvent-shouldDropExperience.patch rename to patches/api/0183-PlayerDeathEvent-shouldDropExperience.patch diff --git a/patches/api/0183-Add-ThrownEggHatchEvent.patch b/patches/api/0184-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/api/0183-Add-ThrownEggHatchEvent.patch rename to patches/api/0184-Add-ThrownEggHatchEvent.patch diff --git a/patches/api/0184-Entity-Jump-API.patch b/patches/api/0185-Entity-Jump-API.patch similarity index 100% rename from patches/api/0184-Entity-Jump-API.patch rename to patches/api/0185-Entity-Jump-API.patch diff --git a/patches/api/0185-add-hand-to-BlockMultiPlaceEvent.patch b/patches/api/0186-add-hand-to-BlockMultiPlaceEvent.patch similarity index 100% rename from patches/api/0185-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/api/0186-add-hand-to-BlockMultiPlaceEvent.patch diff --git a/patches/api/0186-Add-tick-times-API.patch b/patches/api/0187-Add-tick-times-API.patch similarity index 100% rename from patches/api/0186-Add-tick-times-API.patch rename to patches/api/0187-Add-tick-times-API.patch diff --git a/patches/api/0187-Expose-MinecraftServer-isRunning.patch b/patches/api/0188-Expose-MinecraftServer-isRunning.patch similarity index 100% rename from patches/api/0187-Expose-MinecraftServer-isRunning.patch rename to patches/api/0188-Expose-MinecraftServer-isRunning.patch diff --git a/patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch similarity index 100% rename from patches/api/0188-Add-Raw-Byte-ItemStack-Serialization.patch rename to patches/api/0189-Add-Raw-Byte-ItemStack-Serialization.patch diff --git a/patches/api/0189-Add-Player-Client-Options-API.patch b/patches/api/0190-Add-Player-Client-Options-API.patch similarity index 100% rename from patches/api/0189-Add-Player-Client-Options-API.patch rename to patches/api/0190-Add-Player-Client-Options-API.patch diff --git a/patches/api/0190-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/api/0191-Add-PlayerAttackEntityCooldownResetEvent.patch similarity index 100% rename from patches/api/0190-Add-PlayerAttackEntityCooldownResetEvent.patch rename to patches/api/0191-Add-PlayerAttackEntityCooldownResetEvent.patch diff --git a/patches/api/0191-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch b/patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch similarity index 100% rename from patches/api/0191-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch rename to patches/api/0192-Fix-Potion-toItemStack-swapping-the-extended-and-upg.patch diff --git a/patches/api/0192-Add-item-slot-convenience-methods.patch b/patches/api/0193-Add-item-slot-convenience-methods.patch similarity index 100% rename from patches/api/0192-Add-item-slot-convenience-methods.patch rename to patches/api/0193-Add-item-slot-convenience-methods.patch diff --git a/patches/api/0193-Villager-Restocks-API.patch b/patches/api/0194-Villager-Restocks-API.patch similarity index 100% rename from patches/api/0193-Villager-Restocks-API.patch rename to patches/api/0194-Villager-Restocks-API.patch diff --git a/patches/api/0194-Expose-game-version.patch b/patches/api/0195-Expose-game-version.patch similarity index 100% rename from patches/api/0194-Expose-game-version.patch rename to patches/api/0195-Expose-game-version.patch diff --git a/patches/api/0195-Add-Mob-Goal-API.patch b/patches/api/0196-Add-Mob-Goal-API.patch similarity index 100% rename from patches/api/0195-Add-Mob-Goal-API.patch rename to patches/api/0196-Add-Mob-Goal-API.patch diff --git a/patches/api/0196-Add-villager-reputation-API.patch b/patches/api/0197-Add-villager-reputation-API.patch similarity index 100% rename from patches/api/0196-Add-villager-reputation-API.patch rename to patches/api/0197-Add-villager-reputation-API.patch diff --git a/patches/api/0197-Spawn-Reason-API.patch b/patches/api/0198-Spawn-Reason-API.patch similarity index 100% rename from patches/api/0197-Spawn-Reason-API.patch rename to patches/api/0198-Spawn-Reason-API.patch diff --git a/patches/api/0198-Potential-bed-API.patch b/patches/api/0199-Potential-bed-API.patch similarity index 100% rename from patches/api/0198-Potential-bed-API.patch rename to patches/api/0199-Potential-bed-API.patch diff --git a/patches/api/0199-Inventory-getHolder-method-without-block-snapshot.patch b/patches/api/0200-Inventory-getHolder-method-without-block-snapshot.patch similarity index 100% rename from patches/api/0199-Inventory-getHolder-method-without-block-snapshot.patch rename to patches/api/0200-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/api/0200-Improve-Arrow-API.patch b/patches/api/0201-Improve-Arrow-API.patch similarity index 100% rename from patches/api/0200-Improve-Arrow-API.patch rename to patches/api/0201-Improve-Arrow-API.patch diff --git a/patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch b/patches/api/0202-Add-and-implement-PlayerRecipeBookClickEvent.patch similarity index 100% rename from patches/api/0201-Add-and-implement-PlayerRecipeBookClickEvent.patch rename to patches/api/0202-Add-and-implement-PlayerRecipeBookClickEvent.patch diff --git a/patches/api/0202-Support-components-in-ItemMeta.patch b/patches/api/0203-Support-components-in-ItemMeta.patch similarity index 100% rename from patches/api/0202-Support-components-in-ItemMeta.patch rename to patches/api/0203-Support-components-in-ItemMeta.patch diff --git a/patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch b/patches/api/0204-added-2-new-TargetReasons-for-1.16-mob-behavior.patch similarity index 100% rename from patches/api/0203-added-2-new-TargetReasons-for-1.16-mob-behavior.patch rename to patches/api/0204-added-2-new-TargetReasons-for-1.16-mob-behavior.patch diff --git a/patches/api/0204-Add-entity-liquid-API.patch b/patches/api/0205-Add-entity-liquid-API.patch similarity index 100% rename from patches/api/0204-Add-entity-liquid-API.patch rename to patches/api/0205-Add-entity-liquid-API.patch diff --git a/patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch b/patches/api/0206-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch similarity index 100% rename from patches/api/0205-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch rename to patches/api/0206-Add-PrepareResultEvent-PrepareGrindstoneEvent.patch diff --git a/patches/api/0206-Brand-support.patch b/patches/api/0208-Brand-support.patch similarity index 100% rename from patches/api/0206-Brand-support.patch rename to patches/api/0208-Brand-support.patch diff --git a/patches/api/0208-Add-moon-phase-API.patch b/patches/api/0209-Add-moon-phase-API.patch similarity index 100% rename from patches/api/0208-Add-moon-phase-API.patch rename to patches/api/0209-Add-moon-phase-API.patch diff --git a/patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch b/patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch similarity index 100% rename from patches/api/0209-Add-playPickupItemAnimation-to-LivingEntity.patch rename to patches/api/0210-Add-playPickupItemAnimation-to-LivingEntity.patch diff --git a/patches/api/0210-Add-more-Evoker-API.patch b/patches/api/0211-Add-more-Evoker-API.patch similarity index 100% rename from patches/api/0210-Add-more-Evoker-API.patch rename to patches/api/0211-Add-more-Evoker-API.patch diff --git a/patches/api/0211-Add-methods-to-get-translation-keys.patch b/patches/api/0212-Add-methods-to-get-translation-keys.patch similarity index 100% rename from patches/api/0211-Add-methods-to-get-translation-keys.patch rename to patches/api/0212-Add-methods-to-get-translation-keys.patch diff --git a/patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch similarity index 100% rename from patches/api/0212-Create-HoverEvent-from-ItemStack-Entity.patch rename to patches/api/0213-Create-HoverEvent-from-ItemStack-Entity.patch diff --git a/patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch b/patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch similarity index 100% rename from patches/api/0213-Add-additional-open-container-api-to-HumanEntity.patch rename to patches/api/0214-Add-additional-open-container-api-to-HumanEntity.patch diff --git a/patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch b/patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch similarity index 100% rename from patches/api/0214-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch rename to patches/api/0215-Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch diff --git a/patches/api/0215-Entity-isTicking.patch b/patches/api/0216-Entity-isTicking.patch similarity index 100% rename from patches/api/0215-Entity-isTicking.patch rename to patches/api/0216-Entity-isTicking.patch diff --git a/patches/api/0216-Villager-resetOffers.patch b/patches/api/0217-Villager-resetOffers.patch similarity index 100% rename from patches/api/0216-Villager-resetOffers.patch rename to patches/api/0217-Villager-resetOffers.patch diff --git a/patches/api/0217-Player-elytra-boost-API.patch b/patches/api/0218-Player-elytra-boost-API.patch similarity index 100% rename from patches/api/0217-Player-elytra-boost-API.patch rename to patches/api/0218-Player-elytra-boost-API.patch diff --git a/patches/api/0218-Add-getOfflinePlayerIfCached-String.patch b/patches/api/0219-Add-getOfflinePlayerIfCached-String.patch similarity index 100% rename from patches/api/0218-Add-getOfflinePlayerIfCached-String.patch rename to patches/api/0219-Add-getOfflinePlayerIfCached-String.patch diff --git a/patches/api/0219-Add-ignore-discounts-API.patch b/patches/api/0220-Add-ignore-discounts-API.patch similarity index 100% rename from patches/api/0219-Add-ignore-discounts-API.patch rename to patches/api/0220-Add-ignore-discounts-API.patch diff --git a/patches/api/0220-Item-no-age-no-player-pickup.patch b/patches/api/0221-Item-no-age-no-player-pickup.patch similarity index 100% rename from patches/api/0220-Item-no-age-no-player-pickup.patch rename to patches/api/0221-Item-no-age-no-player-pickup.patch diff --git a/patches/api/0221-Beacon-API-custom-effect-ranges.patch b/patches/api/0222-Beacon-API-custom-effect-ranges.patch similarity index 100% rename from patches/api/0221-Beacon-API-custom-effect-ranges.patch rename to patches/api/0222-Beacon-API-custom-effect-ranges.patch diff --git a/patches/api/0222-Add-API-for-quit-reason.patch b/patches/api/0223-Add-API-for-quit-reason.patch similarity index 100% rename from patches/api/0222-Add-API-for-quit-reason.patch rename to patches/api/0223-Add-API-for-quit-reason.patch diff --git a/patches/api/0223-Add-Destroy-Speed-API.patch b/patches/api/0224-Add-Destroy-Speed-API.patch similarity index 100% rename from patches/api/0223-Add-Destroy-Speed-API.patch rename to patches/api/0224-Add-Destroy-Speed-API.patch diff --git a/patches/api/0224-Add-LivingEntity-clearActiveItem.patch b/patches/api/0225-Add-LivingEntity-clearActiveItem.patch similarity index 100% rename from patches/api/0224-Add-LivingEntity-clearActiveItem.patch rename to patches/api/0225-Add-LivingEntity-clearActiveItem.patch diff --git a/patches/api/0225-Add-PlayerItemCooldownEvent.patch b/patches/api/0226-Add-PlayerItemCooldownEvent.patch similarity index 100% rename from patches/api/0225-Add-PlayerItemCooldownEvent.patch rename to patches/api/0226-Add-PlayerItemCooldownEvent.patch diff --git a/patches/api/0226-More-lightning-API.patch b/patches/api/0227-More-lightning-API.patch similarity index 100% rename from patches/api/0226-More-lightning-API.patch rename to patches/api/0227-More-lightning-API.patch diff --git a/patches/api/0227-Add-PlayerShearBlockEvent.patch b/patches/api/0228-Add-PlayerShearBlockEvent.patch similarity index 100% rename from patches/api/0227-Add-PlayerShearBlockEvent.patch rename to patches/api/0228-Add-PlayerShearBlockEvent.patch diff --git a/patches/api/0228-Player-Chunk-Load-Unload-Events.patch b/patches/api/0229-Player-Chunk-Load-Unload-Events.patch similarity index 100% rename from patches/api/0228-Player-Chunk-Load-Unload-Events.patch rename to patches/api/0229-Player-Chunk-Load-Unload-Events.patch diff --git a/patches/api/0229-Expose-LivingEntity-hurt-direction.patch b/patches/api/0230-Expose-LivingEntity-hurt-direction.patch similarity index 100% rename from patches/api/0229-Expose-LivingEntity-hurt-direction.patch rename to patches/api/0230-Expose-LivingEntity-hurt-direction.patch diff --git a/patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch b/patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch similarity index 100% rename from patches/api/0230-Add-OBSTRUCTED-reason-to-BedEnterResult.patch rename to patches/api/0231-Add-OBSTRUCTED-reason-to-BedEnterResult.patch diff --git a/patches/api/0231-Added-PlayerTradeEvent.patch b/patches/api/0232-Added-PlayerTradeEvent.patch similarity index 100% rename from patches/api/0231-Added-PlayerTradeEvent.patch rename to patches/api/0232-Added-PlayerTradeEvent.patch diff --git a/patches/api/0232-Add-TargetHitEvent-API.patch b/patches/api/0233-Add-TargetHitEvent-API.patch similarity index 100% rename from patches/api/0232-Add-TargetHitEvent-API.patch rename to patches/api/0233-Add-TargetHitEvent-API.patch diff --git a/patches/api/0233-Additional-Block-Material-API-s.patch b/patches/api/0234-Additional-Block-Material-API-s.patch similarity index 100% rename from patches/api/0233-Additional-Block-Material-API-s.patch rename to patches/api/0234-Additional-Block-Material-API-s.patch diff --git a/patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch b/patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch similarity index 100% rename from patches/api/0234-Add-API-to-get-Material-from-Boats-and-Minecarts.patch rename to patches/api/0235-Add-API-to-get-Material-from-Boats-and-Minecarts.patch diff --git a/patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch b/patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch similarity index 100% rename from patches/api/0235-Add-PlayerFlowerPotManipulateEvent.patch rename to patches/api/0236-Add-PlayerFlowerPotManipulateEvent.patch diff --git a/patches/api/0236-Zombie-API-breaking-doors.patch b/patches/api/0237-Zombie-API-breaking-doors.patch similarity index 100% rename from patches/api/0236-Zombie-API-breaking-doors.patch rename to patches/api/0237-Zombie-API-breaking-doors.patch diff --git a/patches/api/0237-Add-EntityLoadCrossbowEvent.patch b/patches/api/0238-Add-EntityLoadCrossbowEvent.patch similarity index 100% rename from patches/api/0237-Add-EntityLoadCrossbowEvent.patch rename to patches/api/0238-Add-EntityLoadCrossbowEvent.patch diff --git a/patches/api/0238-Added-WorldGameRuleChangeEvent.patch b/patches/api/0239-Added-WorldGameRuleChangeEvent.patch similarity index 100% rename from patches/api/0238-Added-WorldGameRuleChangeEvent.patch rename to patches/api/0239-Added-WorldGameRuleChangeEvent.patch diff --git a/patches/api/0239-Added-ServerResourcesReloadedEvent.patch b/patches/api/0240-Added-ServerResourcesReloadedEvent.patch similarity index 100% rename from patches/api/0239-Added-ServerResourcesReloadedEvent.patch rename to patches/api/0240-Added-ServerResourcesReloadedEvent.patch diff --git a/patches/api/0240-Add-BlockFailedDispenseEvent.patch b/patches/api/0241-Add-BlockFailedDispenseEvent.patch similarity index 100% rename from patches/api/0240-Add-BlockFailedDispenseEvent.patch rename to patches/api/0241-Add-BlockFailedDispenseEvent.patch diff --git a/patches/api/0241-Added-PlayerLecternPageChangeEvent.patch b/patches/api/0242-Added-PlayerLecternPageChangeEvent.patch similarity index 100% rename from patches/api/0241-Added-PlayerLecternPageChangeEvent.patch rename to patches/api/0242-Added-PlayerLecternPageChangeEvent.patch diff --git a/patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch b/patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch similarity index 100% rename from patches/api/0242-Added-PlayerLoomPatternSelectEvent.patch rename to patches/api/0243-Added-PlayerLoomPatternSelectEvent.patch diff --git a/patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch b/patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch similarity index 100% rename from patches/api/0243-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch rename to patches/api/0244-Add-API-to-get-exact-interaction-point-in-PlayerInte.patch diff --git a/patches/api/0244-Add-sendOpLevel-API.patch b/patches/api/0245-Add-sendOpLevel-API.patch similarity index 100% rename from patches/api/0244-Add-sendOpLevel-API.patch rename to patches/api/0245-Add-sendOpLevel-API.patch diff --git a/patches/api/0245-Add-PaperRegistry.patch b/patches/api/0246-Add-PaperRegistry.patch similarity index 100% rename from patches/api/0245-Add-PaperRegistry.patch rename to patches/api/0246-Add-PaperRegistry.patch diff --git a/patches/api/0246-Add-StructuresLocateEvent.patch b/patches/api/0247-Add-StructuresLocateEvent.patch similarity index 100% rename from patches/api/0246-Add-StructuresLocateEvent.patch rename to patches/api/0247-Add-StructuresLocateEvent.patch diff --git a/patches/api/0247-Add-BlockPreDispenseEvent.patch b/patches/api/0248-Add-BlockPreDispenseEvent.patch similarity index 100% rename from patches/api/0247-Add-BlockPreDispenseEvent.patch rename to patches/api/0248-Add-BlockPreDispenseEvent.patch diff --git a/patches/api/0248-Added-missing-vanilla-tags.patch b/patches/api/0249-Added-missing-vanilla-tags.patch similarity index 100% rename from patches/api/0248-Added-missing-vanilla-tags.patch rename to patches/api/0249-Added-missing-vanilla-tags.patch diff --git a/patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch b/patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch similarity index 100% rename from patches/api/0249-Added-PlayerChangeBeaconEffectEvent.patch rename to patches/api/0250-Added-PlayerChangeBeaconEffectEvent.patch diff --git a/patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch b/patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch similarity index 100% rename from patches/api/0250-Added-PlayerStonecutterRecipeSelectEvent.patch rename to patches/api/0251-Added-PlayerStonecutterRecipeSelectEvent.patch diff --git a/patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch b/patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch similarity index 100% rename from patches/api/0251-Add-dropLeash-variable-to-EntityUnleashEvent.patch rename to patches/api/0252-Add-dropLeash-variable-to-EntityUnleashEvent.patch diff --git a/patches/api/0252-add-DragonEggFormEvent.patch b/patches/api/0253-add-DragonEggFormEvent.patch similarity index 100% rename from patches/api/0252-add-DragonEggFormEvent.patch rename to patches/api/0253-add-DragonEggFormEvent.patch diff --git a/patches/api/0253-EntityMoveEvent.patch b/patches/api/0254-EntityMoveEvent.patch similarity index 100% rename from patches/api/0253-EntityMoveEvent.patch rename to patches/api/0254-EntityMoveEvent.patch diff --git a/patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch b/patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch similarity index 100% rename from patches/api/0254-Allow-adding-items-to-BlockDropItemEvent.patch rename to patches/api/0255-Allow-adding-items-to-BlockDropItemEvent.patch diff --git a/patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch b/patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch similarity index 100% rename from patches/api/0255-Add-getMainThreadExecutor-to-BukkitScheduler.patch rename to patches/api/0256-Add-getMainThreadExecutor-to-BukkitScheduler.patch diff --git a/patches/api/0256-living-entity-allow-attribute-registration.patch b/patches/api/0257-living-entity-allow-attribute-registration.patch similarity index 100% rename from patches/api/0256-living-entity-allow-attribute-registration.patch rename to patches/api/0257-living-entity-allow-attribute-registration.patch diff --git a/patches/api/0257-Add-missing-effects.patch b/patches/api/0258-Add-missing-effects.patch similarity index 100% rename from patches/api/0257-Add-missing-effects.patch rename to patches/api/0258-Add-missing-effects.patch diff --git a/patches/api/0258-Expose-Tracked-Players.patch b/patches/api/0259-Expose-Tracked-Players.patch similarity index 100% rename from patches/api/0258-Expose-Tracked-Players.patch rename to patches/api/0259-Expose-Tracked-Players.patch diff --git a/patches/api/0259-Cache-the-result-of-Material-isBlock.patch b/patches/api/0260-Cache-the-result-of-Material-isBlock.patch similarity index 100% rename from patches/api/0259-Cache-the-result-of-Material-isBlock.patch rename to patches/api/0260-Cache-the-result-of-Material-isBlock.patch diff --git a/patches/api/0260-Add-worldborder-events.patch b/patches/api/0261-Add-worldborder-events.patch similarity index 100% rename from patches/api/0260-Add-worldborder-events.patch rename to patches/api/0261-Add-worldborder-events.patch diff --git a/patches/api/0261-added-PlayerNameEntityEvent.patch b/patches/api/0262-added-PlayerNameEntityEvent.patch similarity index 100% rename from patches/api/0261-added-PlayerNameEntityEvent.patch rename to patches/api/0262-added-PlayerNameEntityEvent.patch diff --git a/patches/api/0262-Add-recipe-to-cook-events.patch b/patches/api/0263-Add-recipe-to-cook-events.patch similarity index 100% rename from patches/api/0262-Add-recipe-to-cook-events.patch rename to patches/api/0263-Add-recipe-to-cook-events.patch diff --git a/patches/api/0263-Add-Block-isValidTool.patch b/patches/api/0264-Add-Block-isValidTool.patch similarity index 100% rename from patches/api/0263-Add-Block-isValidTool.patch rename to patches/api/0264-Add-Block-isValidTool.patch diff --git a/patches/api/0264-Expand-world-key-API.patch b/patches/api/0265-Expand-world-key-API.patch similarity index 100% rename from patches/api/0264-Expand-world-key-API.patch rename to patches/api/0265-Expand-world-key-API.patch diff --git a/patches/api/0265-Item-Rarity-API.patch b/patches/api/0266-Item-Rarity-API.patch similarity index 100% rename from patches/api/0265-Item-Rarity-API.patch rename to patches/api/0266-Item-Rarity-API.patch diff --git a/patches/api/0266-Expose-protocol-version.patch b/patches/api/0267-Expose-protocol-version.patch similarity index 100% rename from patches/api/0266-Expose-protocol-version.patch rename to patches/api/0267-Expose-protocol-version.patch diff --git a/patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch b/patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch similarity index 100% rename from patches/api/0267-add-isDeeplySleeping-to-HumanEntity.patch rename to patches/api/0268-add-isDeeplySleeping-to-HumanEntity.patch diff --git a/patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch b/patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch similarity index 100% rename from patches/api/0268-add-consumeFuel-to-FurnaceBurnEvent.patch rename to patches/api/0269-add-consumeFuel-to-FurnaceBurnEvent.patch diff --git a/patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch b/patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch similarity index 100% rename from patches/api/0269-add-get-set-drop-chance-to-EntityEquipment.patch rename to patches/api/0270-add-get-set-drop-chance-to-EntityEquipment.patch diff --git a/patches/api/0270-Added-PlayerDeepSleepEvent.patch b/patches/api/0271-Added-PlayerDeepSleepEvent.patch similarity index 100% rename from patches/api/0270-Added-PlayerDeepSleepEvent.patch rename to patches/api/0271-Added-PlayerDeepSleepEvent.patch diff --git a/patches/api/0271-More-World-API.patch b/patches/api/0272-More-World-API.patch similarity index 100% rename from patches/api/0271-More-World-API.patch rename to patches/api/0272-More-World-API.patch diff --git a/patches/api/0272-Added-PlayerBedFailEnterEvent.patch b/patches/api/0273-Added-PlayerBedFailEnterEvent.patch similarity index 100% rename from patches/api/0272-Added-PlayerBedFailEnterEvent.patch rename to patches/api/0273-Added-PlayerBedFailEnterEvent.patch diff --git a/patches/api/0273-Introduce-beacon-activation-deactivation-events.patch b/patches/api/0274-Introduce-beacon-activation-deactivation-events.patch similarity index 100% rename from patches/api/0273-Introduce-beacon-activation-deactivation-events.patch rename to patches/api/0274-Introduce-beacon-activation-deactivation-events.patch diff --git a/patches/api/0274-PlayerMoveEvent-Improvements.patch b/patches/api/0275-PlayerMoveEvent-Improvements.patch similarity index 100% rename from patches/api/0274-PlayerMoveEvent-Improvements.patch rename to patches/api/0275-PlayerMoveEvent-Improvements.patch diff --git a/patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch b/patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch similarity index 100% rename from patches/api/0275-add-RespawnFlags-to-PlayerRespawnEvent.patch rename to patches/api/0276-add-RespawnFlags-to-PlayerRespawnEvent.patch diff --git a/patches/api/0276-Add-more-WanderingTrader-API.patch b/patches/api/0277-Add-more-WanderingTrader-API.patch similarity index 100% rename from patches/api/0276-Add-more-WanderingTrader-API.patch rename to patches/api/0277-Add-more-WanderingTrader-API.patch diff --git a/patches/api/0277-Add-EntityBlockStorage-clearEntities.patch b/patches/api/0278-Add-EntityBlockStorage-clearEntities.patch similarity index 100% rename from patches/api/0277-Add-EntityBlockStorage-clearEntities.patch rename to patches/api/0278-Add-EntityBlockStorage-clearEntities.patch diff --git a/patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch b/patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch similarity index 100% rename from patches/api/0278-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch rename to patches/api/0279-Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch diff --git a/patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/api/0279-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch rename to patches/api/0280-Add-raw-address-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/api/0280-Inventory-close.patch b/patches/api/0281-Inventory-close.patch similarity index 100% rename from patches/api/0280-Inventory-close.patch rename to patches/api/0281-Inventory-close.patch diff --git a/patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch similarity index 100% rename from patches/api/0281-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch rename to patches/api/0282-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch diff --git a/patches/api/0282-Add-basic-Datapack-API.patch b/patches/api/0283-Add-basic-Datapack-API.patch similarity index 100% rename from patches/api/0282-Add-basic-Datapack-API.patch rename to patches/api/0283-Add-basic-Datapack-API.patch diff --git a/patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch b/patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch similarity index 100% rename from patches/api/0283-additions-to-PlayerGameModeChangeEvent.patch rename to patches/api/0284-additions-to-PlayerGameModeChangeEvent.patch diff --git a/patches/api/0284-ItemStack-repair-check-API.patch b/patches/api/0285-ItemStack-repair-check-API.patch similarity index 100% rename from patches/api/0284-ItemStack-repair-check-API.patch rename to patches/api/0285-ItemStack-repair-check-API.patch diff --git a/patches/api/0285-More-Enchantment-API.patch b/patches/api/0286-More-Enchantment-API.patch similarity index 100% rename from patches/api/0285-More-Enchantment-API.patch rename to patches/api/0286-More-Enchantment-API.patch diff --git a/patches/api/0286-Add-Mob-lookAt-API.patch b/patches/api/0287-Add-Mob-lookAt-API.patch similarity index 100% rename from patches/api/0286-Add-Mob-lookAt-API.patch rename to patches/api/0287-Add-Mob-lookAt-API.patch diff --git a/patches/api/0287-ItemStack-editMeta.patch b/patches/api/0288-ItemStack-editMeta.patch similarity index 100% rename from patches/api/0287-ItemStack-editMeta.patch rename to patches/api/0288-ItemStack-editMeta.patch diff --git a/patches/api/0288-Add-EntityInsideBlockEvent.patch b/patches/api/0289-Add-EntityInsideBlockEvent.patch similarity index 100% rename from patches/api/0288-Add-EntityInsideBlockEvent.patch rename to patches/api/0289-Add-EntityInsideBlockEvent.patch diff --git a/patches/api/0289-Attributes-API-for-item-defaults.patch b/patches/api/0290-Attributes-API-for-item-defaults.patch similarity index 100% rename from patches/api/0289-Attributes-API-for-item-defaults.patch rename to patches/api/0290-Attributes-API-for-item-defaults.patch diff --git a/patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch b/patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch similarity index 100% rename from patches/api/0290-Add-cause-to-Weather-ThunderChangeEvents.patch rename to patches/api/0291-Add-cause-to-Weather-ThunderChangeEvents.patch diff --git a/patches/api/0291-More-Lidded-Block-API.patch b/patches/api/0292-More-Lidded-Block-API.patch similarity index 100% rename from patches/api/0291-More-Lidded-Block-API.patch rename to patches/api/0292-More-Lidded-Block-API.patch diff --git a/patches/api/0292-Add-PlayerKickEvent-causes.patch b/patches/api/0293-Add-PlayerKickEvent-causes.patch similarity index 100% rename from patches/api/0292-Add-PlayerKickEvent-causes.patch rename to patches/api/0293-Add-PlayerKickEvent-causes.patch diff --git a/patches/api/0293-Add-PufferFishStateChangeEvent.patch b/patches/api/0294-Add-PufferFishStateChangeEvent.patch similarity index 100% rename from patches/api/0293-Add-PufferFishStateChangeEvent.patch rename to patches/api/0294-Add-PufferFishStateChangeEvent.patch diff --git a/patches/api/0294-Add-BellRevealRaiderEvent.patch b/patches/api/0295-Add-BellRevealRaiderEvent.patch similarity index 100% rename from patches/api/0294-Add-BellRevealRaiderEvent.patch rename to patches/api/0295-Add-BellRevealRaiderEvent.patch diff --git a/patches/api/0295-Add-ElderGuardianAppearanceEvent.patch b/patches/api/0296-Add-ElderGuardianAppearanceEvent.patch similarity index 100% rename from patches/api/0295-Add-ElderGuardianAppearanceEvent.patch rename to patches/api/0296-Add-ElderGuardianAppearanceEvent.patch diff --git a/patches/api/0296-Add-more-line-of-sight-methods.patch b/patches/api/0297-Add-more-line-of-sight-methods.patch similarity index 100% rename from patches/api/0296-Add-more-line-of-sight-methods.patch rename to patches/api/0297-Add-more-line-of-sight-methods.patch diff --git a/patches/api/0297-Add-WaterBottleSplashEvent.patch b/patches/api/0298-Add-WaterBottleSplashEvent.patch similarity index 100% rename from patches/api/0297-Add-WaterBottleSplashEvent.patch rename to patches/api/0298-Add-WaterBottleSplashEvent.patch diff --git a/patches/api/0298-Add-more-LimitedRegion-API.patch b/patches/api/0299-Add-more-LimitedRegion-API.patch similarity index 100% rename from patches/api/0298-Add-more-LimitedRegion-API.patch rename to patches/api/0299-Add-more-LimitedRegion-API.patch diff --git a/patches/api/0299-Missing-Entity-API.patch b/patches/api/0300-Missing-Entity-API.patch similarity index 100% rename from patches/api/0299-Missing-Entity-API.patch rename to patches/api/0300-Missing-Entity-API.patch diff --git a/patches/api/0300-Adds-PlayerArmSwingEvent.patch b/patches/api/0301-Adds-PlayerArmSwingEvent.patch similarity index 100% rename from patches/api/0300-Adds-PlayerArmSwingEvent.patch rename to patches/api/0301-Adds-PlayerArmSwingEvent.patch diff --git a/patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch b/patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch similarity index 100% rename from patches/api/0301-Add-PlayerSignCommandPreprocessEvent.patch rename to patches/api/0302-Add-PlayerSignCommandPreprocessEvent.patch diff --git a/patches/api/0302-fix-empty-array-elements-in-command-arguments.patch b/patches/api/0303-fix-empty-array-elements-in-command-arguments.patch similarity index 100% rename from patches/api/0302-fix-empty-array-elements-in-command-arguments.patch rename to patches/api/0303-fix-empty-array-elements-in-command-arguments.patch diff --git a/patches/api/0303-Stinger-API.patch b/patches/api/0304-Stinger-API.patch similarity index 100% rename from patches/api/0303-Stinger-API.patch rename to patches/api/0304-Stinger-API.patch diff --git a/patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch b/patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch similarity index 100% rename from patches/api/0304-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch rename to patches/api/0305-Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch diff --git a/patches/api/0305-Add-PlayerSetSpawnEvent.patch b/patches/api/0306-Add-PlayerSetSpawnEvent.patch similarity index 100% rename from patches/api/0305-Add-PlayerSetSpawnEvent.patch rename to patches/api/0306-Add-PlayerSetSpawnEvent.patch diff --git a/patches/api/0306-Added-EntityDamageItemEvent.patch b/patches/api/0307-Added-EntityDamageItemEvent.patch similarity index 100% rename from patches/api/0306-Added-EntityDamageItemEvent.patch rename to patches/api/0307-Added-EntityDamageItemEvent.patch diff --git a/patches/api/0307-Make-EntityUnleashEvent-cancellable.patch b/patches/api/0308-Make-EntityUnleashEvent-cancellable.patch similarity index 100% rename from patches/api/0307-Make-EntityUnleashEvent-cancellable.patch rename to patches/api/0308-Make-EntityUnleashEvent-cancellable.patch diff --git a/patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch b/patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch similarity index 100% rename from patches/api/0308-Change-EnderEye-target-without-changing-other-things.patch rename to patches/api/0309-Change-EnderEye-target-without-changing-other-things.patch diff --git a/patches/api/0309-Add-BlockBreakBlockEvent.patch b/patches/api/0310-Add-BlockBreakBlockEvent.patch similarity index 100% rename from patches/api/0309-Add-BlockBreakBlockEvent.patch rename to patches/api/0310-Add-BlockBreakBlockEvent.patch diff --git a/patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch b/patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch similarity index 100% rename from patches/api/0310-Add-helpers-for-left-right-click-to-Action.patch rename to patches/api/0311-Add-helpers-for-left-right-click-to-Action.patch diff --git a/patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch b/patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch similarity index 100% rename from patches/api/0311-Option-to-prevent-NBT-copy-in-smithing-recipes.patch rename to patches/api/0312-Option-to-prevent-NBT-copy-in-smithing-recipes.patch diff --git a/patches/api/0312-More-CommandBlock-API.patch b/patches/api/0313-More-CommandBlock-API.patch similarity index 100% rename from patches/api/0312-More-CommandBlock-API.patch rename to patches/api/0313-More-CommandBlock-API.patch diff --git a/patches/api/0313-Add-missing-team-sidebar-display-slots.patch b/patches/api/0314-Add-missing-team-sidebar-display-slots.patch similarity index 100% rename from patches/api/0313-Add-missing-team-sidebar-display-slots.patch rename to patches/api/0314-Add-missing-team-sidebar-display-slots.patch diff --git a/patches/api/0314-add-back-EntityPortalExitEvent.patch b/patches/api/0315-add-back-EntityPortalExitEvent.patch similarity index 100% rename from patches/api/0314-add-back-EntityPortalExitEvent.patch rename to patches/api/0315-add-back-EntityPortalExitEvent.patch diff --git a/patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch similarity index 100% rename from patches/api/0315-Add-methods-to-find-targets-for-lightning-strikes.patch rename to patches/api/0316-Add-methods-to-find-targets-for-lightning-strikes.patch diff --git a/patches/api/0316-Get-entity-default-attributes.patch b/patches/api/0317-Get-entity-default-attributes.patch similarity index 100% rename from patches/api/0316-Get-entity-default-attributes.patch rename to patches/api/0317-Get-entity-default-attributes.patch diff --git a/patches/api/0317-Left-handed-API.patch b/patches/api/0318-Left-handed-API.patch similarity index 100% rename from patches/api/0317-Left-handed-API.patch rename to patches/api/0318-Left-handed-API.patch diff --git a/patches/api/0318-Add-more-advancement-API.patch b/patches/api/0320-Add-more-advancement-API.patch similarity index 100% rename from patches/api/0318-Add-more-advancement-API.patch rename to patches/api/0320-Add-more-advancement-API.patch diff --git a/patches/api/0320-Fix-issues-with-mob-conversion.patch b/patches/api/0321-Fix-issues-with-mob-conversion.patch similarity index 100% rename from patches/api/0320-Fix-issues-with-mob-conversion.patch rename to patches/api/0321-Fix-issues-with-mob-conversion.patch diff --git a/patches/api/0321-Add-isCollidable-methods-to-various-places.patch b/patches/api/0322-Add-isCollidable-methods-to-various-places.patch similarity index 100% rename from patches/api/0321-Add-isCollidable-methods-to-various-places.patch rename to patches/api/0322-Add-isCollidable-methods-to-various-places.patch diff --git a/patches/api/0322-Goat-ram-API.patch b/patches/api/0323-Goat-ram-API.patch similarity index 100% rename from patches/api/0322-Goat-ram-API.patch rename to patches/api/0323-Goat-ram-API.patch diff --git a/patches/api/0323-Add-API-for-resetting-a-single-score.patch b/patches/api/0324-Add-API-for-resetting-a-single-score.patch similarity index 100% rename from patches/api/0323-Add-API-for-resetting-a-single-score.patch rename to patches/api/0324-Add-API-for-resetting-a-single-score.patch diff --git a/patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch b/patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch similarity index 100% rename from patches/api/0324-Add-Raw-Byte-Entity-Serialization.patch rename to patches/api/0325-Add-Raw-Byte-Entity-Serialization.patch diff --git a/patches/api/0325-Add-PlayerItemFrameChangeEvent.patch b/patches/api/0326-Add-PlayerItemFrameChangeEvent.patch similarity index 100% rename from patches/api/0325-Add-PlayerItemFrameChangeEvent.patch rename to patches/api/0326-Add-PlayerItemFrameChangeEvent.patch diff --git a/patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch similarity index 100% rename from patches/api/0326-Allow-delegation-to-vanilla-chunk-gen.patch rename to patches/api/0327-Allow-delegation-to-vanilla-chunk-gen.patch diff --git a/patches/api/0327-Add-more-Campfire-API.patch b/patches/api/0328-Add-more-Campfire-API.patch similarity index 100% rename from patches/api/0327-Add-more-Campfire-API.patch rename to patches/api/0328-Add-more-Campfire-API.patch diff --git a/patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch b/patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch similarity index 100% rename from patches/api/0328-Move-VehicleCollisionEvent-HandlerList-up.patch rename to patches/api/0329-Move-VehicleCollisionEvent-HandlerList-up.patch diff --git a/patches/api/0329-Improve-scoreboard-entries.patch b/patches/api/0330-Improve-scoreboard-entries.patch similarity index 100% rename from patches/api/0329-Improve-scoreboard-entries.patch rename to patches/api/0330-Improve-scoreboard-entries.patch diff --git a/patches/api/0330-Entity-powdered-snow-API.patch b/patches/api/0331-Entity-powdered-snow-API.patch similarity index 100% rename from patches/api/0330-Entity-powdered-snow-API.patch rename to patches/api/0331-Entity-powdered-snow-API.patch diff --git a/patches/api/0331-Add-API-for-item-entity-health.patch b/patches/api/0332-Add-API-for-item-entity-health.patch similarity index 100% rename from patches/api/0331-Add-API-for-item-entity-health.patch rename to patches/api/0332-Add-API-for-item-entity-health.patch diff --git a/patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch b/patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch similarity index 100% rename from patches/api/0332-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch rename to patches/api/0333-Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch diff --git a/patches/api/0333-Bucketable-API.patch b/patches/api/0334-Bucketable-API.patch similarity index 100% rename from patches/api/0333-Bucketable-API.patch rename to patches/api/0334-Bucketable-API.patch diff --git a/patches/api/0334-System-prop-for-default-config-comment-parsing.patch b/patches/api/0335-System-prop-for-default-config-comment-parsing.patch similarity index 100% rename from patches/api/0334-System-prop-for-default-config-comment-parsing.patch rename to patches/api/0335-System-prop-for-default-config-comment-parsing.patch diff --git a/patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 100% rename from patches/api/0335-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/api/0336-Expose-vanilla-BiomeProvider-from-WorldInfo.patch diff --git a/patches/api/0336-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/api/0337-Add-new-overload-to-PersistentDataContainer-has.patch similarity index 100% rename from patches/api/0336-Add-new-overload-to-PersistentDataContainer-has.patch rename to patches/api/0337-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/api/0337-Multiple-Entries-with-Scoreboards.patch b/patches/api/0338-Multiple-Entries-with-Scoreboards.patch similarity index 100% rename from patches/api/0337-Multiple-Entries-with-Scoreboards.patch rename to patches/api/0338-Multiple-Entries-with-Scoreboards.patch diff --git a/patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/api/0339-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch similarity index 100% rename from patches/api/0338-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename to patches/api/0339-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch diff --git a/patches/api/0339-Warn-on-strange-EventHandler-return-types.patch b/patches/api/0340-Warn-on-strange-EventHandler-return-types.patch similarity index 100% rename from patches/api/0339-Warn-on-strange-EventHandler-return-types.patch rename to patches/api/0340-Warn-on-strange-EventHandler-return-types.patch diff --git a/patches/api/0340-Multi-Block-Change-API.patch b/patches/api/0341-Multi-Block-Change-API.patch similarity index 100% rename from patches/api/0340-Multi-Block-Change-API.patch rename to patches/api/0341-Multi-Block-Change-API.patch diff --git a/patches/api/0341-Fix-NotePlayEvent.patch b/patches/api/0342-Fix-NotePlayEvent.patch similarity index 100% rename from patches/api/0341-Fix-NotePlayEvent.patch rename to patches/api/0342-Fix-NotePlayEvent.patch diff --git a/patches/api/0342-Freeze-Tick-Lock-API.patch b/patches/api/0343-Freeze-Tick-Lock-API.patch similarity index 100% rename from patches/api/0342-Freeze-Tick-Lock-API.patch rename to patches/api/0343-Freeze-Tick-Lock-API.patch diff --git a/patches/api/0343-Dolphin-API.patch b/patches/api/0344-Dolphin-API.patch similarity index 100% rename from patches/api/0343-Dolphin-API.patch rename to patches/api/0344-Dolphin-API.patch diff --git a/patches/api/0344-More-PotionEffectType-API.patch b/patches/api/0345-More-PotionEffectType-API.patch similarity index 100% rename from patches/api/0344-More-PotionEffectType-API.patch rename to patches/api/0345-More-PotionEffectType-API.patch diff --git a/patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/api/0346-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 100% rename from patches/api/0345-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/api/0346-API-for-creating-command-sender-which-forwards-feedb.patch diff --git a/patches/api/0346-Implement-regenerateChunk.patch b/patches/api/0347-Implement-regenerateChunk.patch similarity index 100% rename from patches/api/0346-Implement-regenerateChunk.patch rename to patches/api/0347-Implement-regenerateChunk.patch diff --git a/patches/api/0347-Add-GameEvent-tags.patch b/patches/api/0348-Add-GameEvent-tags.patch similarity index 100% rename from patches/api/0347-Add-GameEvent-tags.patch rename to patches/api/0348-Add-GameEvent-tags.patch diff --git a/patches/api/0348-Furnace-RecipesUsed-API.patch b/patches/api/0349-Furnace-RecipesUsed-API.patch similarity index 100% rename from patches/api/0348-Furnace-RecipesUsed-API.patch rename to patches/api/0349-Furnace-RecipesUsed-API.patch diff --git a/patches/api/0349-Configurable-sculk-sensor-listener-range.patch b/patches/api/0350-Configurable-sculk-sensor-listener-range.patch similarity index 100% rename from patches/api/0349-Configurable-sculk-sensor-listener-range.patch rename to patches/api/0350-Configurable-sculk-sensor-listener-range.patch diff --git a/patches/api/0350-Add-missing-block-data-mins-and-maxes.patch b/patches/api/0351-Add-missing-block-data-mins-and-maxes.patch similarity index 100% rename from patches/api/0350-Add-missing-block-data-mins-and-maxes.patch rename to patches/api/0351-Add-missing-block-data-mins-and-maxes.patch diff --git a/patches/api/0351-Custom-Potion-Mixes.patch b/patches/api/0352-Custom-Potion-Mixes.patch similarity index 100% rename from patches/api/0351-Custom-Potion-Mixes.patch rename to patches/api/0352-Custom-Potion-Mixes.patch diff --git a/patches/api/0352-Expose-furnace-minecart-push-values.patch b/patches/api/0353-Expose-furnace-minecart-push-values.patch similarity index 100% rename from patches/api/0352-Expose-furnace-minecart-push-values.patch rename to patches/api/0353-Expose-furnace-minecart-push-values.patch diff --git a/patches/api/0353-More-Projectile-API.patch b/patches/api/0354-More-Projectile-API.patch similarity index 100% rename from patches/api/0353-More-Projectile-API.patch rename to patches/api/0354-More-Projectile-API.patch diff --git a/patches/api/0354-Add-getComputedBiome-API.patch b/patches/api/0355-Add-getComputedBiome-API.patch similarity index 100% rename from patches/api/0354-Add-getComputedBiome-API.patch rename to patches/api/0355-Add-getComputedBiome-API.patch diff --git a/patches/api/0355-Add-enchantWithLevels-API.patch b/patches/api/0356-Add-enchantWithLevels-API.patch similarity index 100% rename from patches/api/0355-Add-enchantWithLevels-API.patch rename to patches/api/0356-Add-enchantWithLevels-API.patch diff --git a/patches/api/0356-Add-TameableDeathMessageEvent.patch b/patches/api/0357-Add-TameableDeathMessageEvent.patch similarity index 100% rename from patches/api/0356-Add-TameableDeathMessageEvent.patch rename to patches/api/0357-Add-TameableDeathMessageEvent.patch diff --git a/patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch b/patches/api/0358-Allow-to-change-the-podium-of-the-EnderDragon.patch similarity index 100% rename from patches/api/0357-Allow-to-change-the-podium-of-the-EnderDragon.patch rename to patches/api/0358-Allow-to-change-the-podium-of-the-EnderDragon.patch diff --git a/patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch similarity index 100% rename from patches/api/0358-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch rename to patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch diff --git a/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch similarity index 100% rename from patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch rename to patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0360-WorldCreator-keepSpawnLoaded.patch b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch similarity index 100% rename from patches/api/0360-WorldCreator-keepSpawnLoaded.patch rename to patches/api/0361-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch similarity index 100% rename from patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch rename to patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0362-Add-PlayerStopUsingItemEvent.patch b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch similarity index 100% rename from patches/api/0362-Add-PlayerStopUsingItemEvent.patch rename to patches/api/0363-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0363-Expand-FallingBlock-API.patch b/patches/api/0364-Expand-FallingBlock-API.patch similarity index 97% rename from patches/api/0363-Expand-FallingBlock-API.patch rename to patches/api/0364-Expand-FallingBlock-API.patch index 065484cd89..1bd034b64d 100644 --- a/patches/api/0363-Expand-FallingBlock-API.patch +++ b/patches/api/0364-Expand-FallingBlock-API.patch @@ -10,7 +10,7 @@ Subject: [PATCH] Expand FallingBlock API Co-authored-by: Lukas Planz diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6606fa0fb7d8230546e42c51e4cd576118cba751..59c1224cf9b96bde607fa71d89c93a4eae053783 100644 +index 94e6fe6257b30112066b98ec4fdb1561dbcc93c4..bc6630345bb42eb365ba0057a4c52b1e10c6a05a 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -2242,8 +2242,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0364-Keyed-Cat-Type.patch b/patches/api/0365-Keyed-Cat-Type.patch similarity index 100% rename from patches/api/0364-Keyed-Cat-Type.patch rename to patches/api/0365-Keyed-Cat-Type.patch diff --git a/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch similarity index 100% rename from patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch rename to patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch diff --git a/patches/api/0366-Add-WardenAngerChangeEvent.patch b/patches/api/0367-Add-WardenAngerChangeEvent.patch similarity index 100% rename from patches/api/0366-Add-WardenAngerChangeEvent.patch rename to patches/api/0367-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0367-Nameable-Banner-API.patch b/patches/api/0368-Nameable-Banner-API.patch similarity index 100% rename from patches/api/0367-Nameable-Banner-API.patch rename to patches/api/0368-Nameable-Banner-API.patch diff --git a/patches/api/0368-Add-Player-getFishHook.patch b/patches/api/0369-Add-Player-getFishHook.patch similarity index 100% rename from patches/api/0368-Add-Player-getFishHook.patch rename to patches/api/0369-Add-Player-getFishHook.patch diff --git a/patches/api/0369-More-Teleport-API.patch b/patches/api/0370-More-Teleport-API.patch similarity index 100% rename from patches/api/0369-More-Teleport-API.patch rename to patches/api/0370-More-Teleport-API.patch diff --git a/patches/api/0370-Add-EntityPortalReadyEvent.patch b/patches/api/0371-Add-EntityPortalReadyEvent.patch similarity index 100% rename from patches/api/0370-Add-EntityPortalReadyEvent.patch rename to patches/api/0371-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch similarity index 100% rename from patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch rename to patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/api/0372-Collision-API.patch b/patches/api/0373-Collision-API.patch similarity index 100% rename from patches/api/0372-Collision-API.patch rename to patches/api/0373-Collision-API.patch diff --git a/patches/api/0373-Block-Ticking-API.patch b/patches/api/0374-Block-Ticking-API.patch similarity index 100% rename from patches/api/0373-Block-Ticking-API.patch rename to patches/api/0374-Block-Ticking-API.patch diff --git a/patches/api/0374-Add-NamespacedKey-biome-methods.patch b/patches/api/0375-Add-NamespacedKey-biome-methods.patch similarity index 100% rename from patches/api/0374-Add-NamespacedKey-biome-methods.patch rename to patches/api/0375-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0375-Also-load-resources-from-LibraryLoader.patch b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch similarity index 100% rename from patches/api/0375-Also-load-resources-from-LibraryLoader.patch rename to patches/api/0376-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch similarity index 100% rename from patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch rename to patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch similarity index 100% rename from patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch rename to patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch similarity index 100% rename from patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch rename to patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0379-Add-getDrops-to-BlockState.patch b/patches/api/0380-Add-getDrops-to-BlockState.patch similarity index 100% rename from patches/api/0379-Add-getDrops-to-BlockState.patch rename to patches/api/0380-Add-getDrops-to-BlockState.patch diff --git a/patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch similarity index 100% rename from patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch rename to patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0381-Elder-Guardian-appearance-API.patch b/patches/api/0382-Elder-Guardian-appearance-API.patch similarity index 100% rename from patches/api/0381-Elder-Guardian-appearance-API.patch rename to patches/api/0382-Elder-Guardian-appearance-API.patch diff --git a/patches/api/0382-Allow-changing-bed-s-occupied-property.patch b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch similarity index 100% rename from patches/api/0382-Allow-changing-bed-s-occupied-property.patch rename to patches/api/0383-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0383-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch similarity index 100% rename from patches/api/0383-Add-EquipmentSlot-convenience-methods.patch rename to patches/api/0384-Add-EquipmentSlot-convenience-methods.patch diff --git a/patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch similarity index 100% rename from patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch rename to patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch diff --git a/patches/api/0385-Add-entity-knockback-API.patch b/patches/api/0386-Add-entity-knockback-API.patch similarity index 100% rename from patches/api/0385-Add-entity-knockback-API.patch rename to patches/api/0386-Add-entity-knockback-API.patch diff --git a/patches/api/0386-Added-EntityToggleSitEvent.patch b/patches/api/0387-Added-EntityToggleSitEvent.patch similarity index 100% rename from patches/api/0386-Added-EntityToggleSitEvent.patch rename to patches/api/0387-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0387-Add-Moving-Piston-API.patch b/patches/api/0388-Add-Moving-Piston-API.patch similarity index 100% rename from patches/api/0387-Add-Moving-Piston-API.patch rename to patches/api/0388-Add-Moving-Piston-API.patch diff --git a/patches/api/0388-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch similarity index 100% rename from patches/api/0388-Add-PrePlayerAttackEntityEvent.patch rename to patches/api/0389-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0389-Add-Player-Warden-Warning-API.patch b/patches/api/0390-Add-Player-Warden-Warning-API.patch similarity index 100% rename from patches/api/0389-Add-Player-Warden-Warning-API.patch rename to patches/api/0390-Add-Player-Warden-Warning-API.patch diff --git a/patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch similarity index 100% rename from patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch rename to patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0391-Add-paper-dumplisteners-command.patch b/patches/api/0392-Add-paper-dumplisteners-command.patch similarity index 100% rename from patches/api/0391-Add-paper-dumplisteners-command.patch rename to patches/api/0392-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0392-ItemStack-damage-API.patch b/patches/api/0393-ItemStack-damage-API.patch similarity index 100% rename from patches/api/0392-ItemStack-damage-API.patch rename to patches/api/0393-ItemStack-damage-API.patch diff --git a/patches/api/0393-Add-Tick-TemporalUnit.patch b/patches/api/0394-Add-Tick-TemporalUnit.patch similarity index 100% rename from patches/api/0393-Add-Tick-TemporalUnit.patch rename to patches/api/0394-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0394-Friction-API.patch b/patches/api/0395-Friction-API.patch similarity index 100% rename from patches/api/0394-Friction-API.patch rename to patches/api/0395-Friction-API.patch diff --git a/patches/api/0395-Player-Entity-Tracking-Events.patch b/patches/api/0396-Player-Entity-Tracking-Events.patch similarity index 100% rename from patches/api/0395-Player-Entity-Tracking-Events.patch rename to patches/api/0396-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0396-Add-missing-Fluid-type.patch b/patches/api/0397-Add-missing-Fluid-type.patch similarity index 100% rename from patches/api/0396-Add-missing-Fluid-type.patch rename to patches/api/0397-Add-missing-Fluid-type.patch diff --git a/patches/api/0397-fix-Instruments.patch b/patches/api/0398-fix-Instruments.patch similarity index 100% rename from patches/api/0397-fix-Instruments.patch rename to patches/api/0398-fix-Instruments.patch diff --git a/patches/api/0398-Add-BlockLockCheckEvent.patch b/patches/api/0399-Add-BlockLockCheckEvent.patch similarity index 100% rename from patches/api/0398-Add-BlockLockCheckEvent.patch rename to patches/api/0399-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0399-Add-Sneaking-API-for-Entities.patch b/patches/api/0400-Add-Sneaking-API-for-Entities.patch similarity index 100% rename from patches/api/0399-Add-Sneaking-API-for-Entities.patch rename to patches/api/0400-Add-Sneaking-API-for-Entities.patch diff --git a/patches/api/0400-Improve-PortalEvents.patch b/patches/api/0401-Improve-PortalEvents.patch similarity index 100% rename from patches/api/0400-Improve-PortalEvents.patch rename to patches/api/0401-Improve-PortalEvents.patch diff --git a/patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch similarity index 100% rename from patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch rename to patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent-and-En.patch diff --git a/patches/api/0402-Flying-Fall-Damage-API.patch b/patches/api/0403-Flying-Fall-Damage-API.patch similarity index 100% rename from patches/api/0402-Flying-Fall-Damage-API.patch rename to patches/api/0403-Flying-Fall-Damage-API.patch diff --git a/patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch similarity index 100% rename from patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch rename to patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch similarity index 100% rename from patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch rename to patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0405-Win-Screen-API.patch b/patches/api/0406-Win-Screen-API.patch similarity index 100% rename from patches/api/0405-Win-Screen-API.patch rename to patches/api/0406-Win-Screen-API.patch diff --git a/patches/api/0406-Add-Entity-Body-Yaw-API.patch b/patches/api/0407-Add-Entity-Body-Yaw-API.patch similarity index 100% rename from patches/api/0406-Add-Entity-Body-Yaw-API.patch rename to patches/api/0407-Add-Entity-Body-Yaw-API.patch diff --git a/patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch similarity index 100% rename from patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch rename to patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0408-Add-EntityFertilizeEggEvent.patch b/patches/api/0409-Add-EntityFertilizeEggEvent.patch similarity index 100% rename from patches/api/0408-Add-EntityFertilizeEggEvent.patch rename to patches/api/0409-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 100% rename from patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0410-Add-Shearable-API.patch b/patches/api/0411-Add-Shearable-API.patch similarity index 100% rename from patches/api/0410-Add-Shearable-API.patch rename to patches/api/0411-Add-Shearable-API.patch diff --git a/patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0412-Add-Mob-Experience-reward-API.patch b/patches/api/0413-Add-Mob-Experience-reward-API.patch similarity index 100% rename from patches/api/0412-Add-Mob-Experience-reward-API.patch rename to patches/api/0413-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0413-Expand-PlayerItemMendEvent.patch b/patches/api/0414-Expand-PlayerItemMendEvent.patch similarity index 100% rename from patches/api/0413-Expand-PlayerItemMendEvent.patch rename to patches/api/0414-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0414-Add-transient-modifier-API.patch b/patches/api/0415-Add-transient-modifier-API.patch similarity index 100% rename from patches/api/0414-Add-transient-modifier-API.patch rename to patches/api/0415-Add-transient-modifier-API.patch diff --git a/patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch similarity index 100% rename from patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch rename to patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch similarity index 100% rename from patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch rename to patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/api/0417-Folia-scheduler-and-owned-region-API.patch b/patches/api/0418-Folia-scheduler-and-owned-region-API.patch similarity index 100% rename from patches/api/0417-Folia-scheduler-and-owned-region-API.patch rename to patches/api/0418-Folia-scheduler-and-owned-region-API.patch diff --git a/patches/api/0418-Add-event-for-player-editing-sign.patch b/patches/api/0419-Add-event-for-player-editing-sign.patch similarity index 100% rename from patches/api/0418-Add-event-for-player-editing-sign.patch rename to patches/api/0419-Add-event-for-player-editing-sign.patch diff --git a/patches/api/0419-Add-Sign-getInteractableSideFor.patch b/patches/api/0420-Add-Sign-getInteractableSideFor.patch similarity index 100% rename from patches/api/0419-Add-Sign-getInteractableSideFor.patch rename to patches/api/0420-Add-Sign-getInteractableSideFor.patch diff --git a/patches/api/0420-Fix-BanList-API.patch b/patches/api/0421-Fix-BanList-API.patch similarity index 100% rename from patches/api/0420-Fix-BanList-API.patch rename to patches/api/0421-Fix-BanList-API.patch diff --git a/patches/api/0421-Add-whitelist-events.patch b/patches/api/0422-Add-whitelist-events.patch similarity index 100% rename from patches/api/0421-Add-whitelist-events.patch rename to patches/api/0422-Add-whitelist-events.patch diff --git a/patches/api/0422-API-for-updating-recipes-on-clients.patch b/patches/api/0423-API-for-updating-recipes-on-clients.patch similarity index 100% rename from patches/api/0422-API-for-updating-recipes-on-clients.patch rename to patches/api/0423-API-for-updating-recipes-on-clients.patch diff --git a/patches/api/0423-Add-PlayerFailMoveEvent.patch b/patches/api/0424-Add-PlayerFailMoveEvent.patch similarity index 100% rename from patches/api/0423-Add-PlayerFailMoveEvent.patch rename to patches/api/0424-Add-PlayerFailMoveEvent.patch diff --git a/patches/api/0424-Fix-custom-statistic-criteria-creation.patch b/patches/api/0425-Fix-custom-statistic-criteria-creation.patch similarity index 100% rename from patches/api/0424-Fix-custom-statistic-criteria-creation.patch rename to patches/api/0425-Fix-custom-statistic-criteria-creation.patch diff --git a/patches/api/0425-SculkCatalyst-bloom-API.patch b/patches/api/0426-SculkCatalyst-bloom-API.patch similarity index 100% rename from patches/api/0425-SculkCatalyst-bloom-API.patch rename to patches/api/0426-SculkCatalyst-bloom-API.patch diff --git a/patches/api/0426-API-for-an-entity-s-scoreboard-name.patch b/patches/api/0427-API-for-an-entity-s-scoreboard-name.patch similarity index 100% rename from patches/api/0426-API-for-an-entity-s-scoreboard-name.patch rename to patches/api/0427-API-for-an-entity-s-scoreboard-name.patch diff --git a/patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch b/patches/api/0428-Deprecate-and-replace-methods-with-old-StructureType.patch similarity index 100% rename from patches/api/0427-Deprecate-and-replace-methods-with-old-StructureType.patch rename to patches/api/0428-Deprecate-and-replace-methods-with-old-StructureType.patch diff --git a/patches/api/0428-Add-Listing-API-for-Player.patch b/patches/api/0429-Add-Listing-API-for-Player.patch similarity index 100% rename from patches/api/0428-Add-Listing-API-for-Player.patch rename to patches/api/0429-Add-Listing-API-for-Player.patch diff --git a/patches/api/0429-Expose-clicked-BlockFace-during-BlockDamageEvent.patch b/patches/api/0430-Expose-clicked-BlockFace-during-BlockDamageEvent.patch similarity index 100% rename from patches/api/0429-Expose-clicked-BlockFace-during-BlockDamageEvent.patch rename to patches/api/0430-Expose-clicked-BlockFace-during-BlockDamageEvent.patch diff --git a/patches/api/0430-Fix-NPE-on-Boat-getStatus.patch b/patches/api/0431-Fix-NPE-on-Boat-getStatus.patch similarity index 100% rename from patches/api/0430-Fix-NPE-on-Boat-getStatus.patch rename to patches/api/0431-Fix-NPE-on-Boat-getStatus.patch diff --git a/patches/api/0431-Expand-Pose-API.patch b/patches/api/0432-Expand-Pose-API.patch similarity index 100% rename from patches/api/0431-Expand-Pose-API.patch rename to patches/api/0432-Expand-Pose-API.patch diff --git a/patches/api/0432-MerchantRecipe-add-copy-constructor.patch b/patches/api/0433-MerchantRecipe-add-copy-constructor.patch similarity index 100% rename from patches/api/0432-MerchantRecipe-add-copy-constructor.patch rename to patches/api/0433-MerchantRecipe-add-copy-constructor.patch diff --git a/patches/api/0433-More-DragonBattle-API.patch b/patches/api/0434-More-DragonBattle-API.patch similarity index 100% rename from patches/api/0433-More-DragonBattle-API.patch rename to patches/api/0434-More-DragonBattle-API.patch diff --git a/patches/api/0434-Add-PlayerPickItemEvent.patch b/patches/api/0435-Add-PlayerPickItemEvent.patch similarity index 100% rename from patches/api/0434-Add-PlayerPickItemEvent.patch rename to patches/api/0435-Add-PlayerPickItemEvent.patch diff --git a/patches/api/0435-Allow-trident-custom-damage.patch b/patches/api/0436-Allow-trident-custom-damage.patch similarity index 100% rename from patches/api/0435-Allow-trident-custom-damage.patch rename to patches/api/0436-Allow-trident-custom-damage.patch diff --git a/patches/api/0436-Expose-hand-during-BlockCanBuildEvent.patch b/patches/api/0437-Expose-hand-during-BlockCanBuildEvent.patch similarity index 100% rename from patches/api/0436-Expose-hand-during-BlockCanBuildEvent.patch rename to patches/api/0437-Expose-hand-during-BlockCanBuildEvent.patch diff --git a/patches/api/0437-Limit-setBurnTime-to-valid-short-values.patch b/patches/api/0438-Limit-setBurnTime-to-valid-short-values.patch similarity index 100% rename from patches/api/0437-Limit-setBurnTime-to-valid-short-values.patch rename to patches/api/0438-Limit-setBurnTime-to-valid-short-values.patch diff --git a/patches/api/0438-Add-OfflinePlayer-isConnected.patch b/patches/api/0439-Add-OfflinePlayer-isConnected.patch similarity index 100% rename from patches/api/0438-Add-OfflinePlayer-isConnected.patch rename to patches/api/0439-Add-OfflinePlayer-isConnected.patch diff --git a/patches/api/0439-Add-titleOverride-to-InventoryOpenEvent.patch b/patches/api/0440-Add-titleOverride-to-InventoryOpenEvent.patch similarity index 100% rename from patches/api/0439-Add-titleOverride-to-InventoryOpenEvent.patch rename to patches/api/0440-Add-titleOverride-to-InventoryOpenEvent.patch diff --git a/patches/api/0440-Allow-proper-checking-of-empty-item-stacks.patch b/patches/api/0441-Allow-proper-checking-of-empty-item-stacks.patch similarity index 100% rename from patches/api/0440-Allow-proper-checking-of-empty-item-stacks.patch rename to patches/api/0441-Allow-proper-checking-of-empty-item-stacks.patch diff --git a/patches/api/0441-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch b/patches/api/0442-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch similarity index 100% rename from patches/api/0441-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch rename to patches/api/0442-Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch diff --git a/patches/api/0442-Add-player-idle-duration-API.patch b/patches/api/0443-Add-player-idle-duration-API.patch similarity index 100% rename from patches/api/0442-Add-player-idle-duration-API.patch rename to patches/api/0443-Add-player-idle-duration-API.patch diff --git a/patches/api/0443-Add-API-to-get-the-collision-shape-of-a-block-before.patch b/patches/api/0444-Add-API-to-get-the-collision-shape-of-a-block-before.patch similarity index 100% rename from patches/api/0443-Add-API-to-get-the-collision-shape-of-a-block-before.patch rename to patches/api/0444-Add-API-to-get-the-collision-shape-of-a-block-before.patch diff --git a/patches/api/0444-Add-predicate-for-blocks-when-raytracing.patch b/patches/api/0445-Add-predicate-for-blocks-when-raytracing.patch similarity index 98% rename from patches/api/0444-Add-predicate-for-blocks-when-raytracing.patch rename to patches/api/0445-Add-predicate-for-blocks-when-raytracing.patch index 9186690f18..75c666ed7b 100644 --- a/patches/api/0444-Add-predicate-for-blocks-when-raytracing.patch +++ b/patches/api/0445-Add-predicate-for-blocks-when-raytracing.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add predicate for blocks when raytracing diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 91eb95b04094394e8dc1e3a3343efc63690c87e4..17d404d6d1a5b46b58d612fca38f17e71adee92e 100644 +index bc6630345bb42eb365ba0057a4c52b1e10c6a05a..5eb3521f5f91b0684b4beebf4f7ba2c795b41c42 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1714,6 +1714,28 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient diff --git a/patches/api/0445-Expand-LingeringPotion-API.patch b/patches/api/0448-Expand-LingeringPotion-API.patch similarity index 100% rename from patches/api/0445-Expand-LingeringPotion-API.patch rename to patches/api/0448-Expand-LingeringPotion-API.patch diff --git a/patches/server/0004-Test-changes.patch b/patches/server/0004-Test-changes.patch index 887c73f6aa..b7eeceef51 100644 --- a/patches/server/0004-Test-changes.patch +++ b/patches/server/0004-Test-changes.patch @@ -21,6 +21,45 @@ index ff4d0f970990187e9b46324b5cf051fcc546119f..844eff88c9ad95871900c2d8aa3136b3 publishing { publications.create("maven") { artifact(tasks.shadowJar) +diff --git a/src/test/java/io/papermc/paper/registry/RegistryKeyTest.java b/src/test/java/io/papermc/paper/registry/RegistryKeyTest.java +new file mode 100644 +index 0000000000000000000000000000000000000000..e070aa1bb69859224493d958621389ee757f8752 +--- /dev/null ++++ b/src/test/java/io/papermc/paper/registry/RegistryKeyTest.java +@@ -0,0 +1,33 @@ ++package io.papermc.paper.registry; ++ ++import java.util.Optional; ++import java.util.stream.Stream; ++import net.minecraft.core.Registry; ++import net.minecraft.resources.ResourceKey; ++import net.minecraft.resources.ResourceLocation; ++import org.bukkit.support.AbstractTestingBase; ++import org.junit.jupiter.api.BeforeAll; ++import org.junit.jupiter.params.ParameterizedTest; ++import org.junit.jupiter.params.provider.MethodSource; ++ ++import static org.junit.jupiter.api.Assertions.assertTrue; ++ ++class RegistryKeyTest extends AbstractTestingBase { ++ ++ @BeforeAll ++ static void before() throws ClassNotFoundException { ++ Class.forName(RegistryKey.class.getName()); // load all keys so they are found for the test ++ } ++ ++ static Stream> data() { ++ return RegistryKeyImpl.REGISTRY_KEYS.stream(); ++ } ++ ++ @ParameterizedTest ++ @MethodSource("data") ++ void testApiRegistryKeysExist(final RegistryKey key) { ++ final Optional> registry = AbstractTestingBase.REGISTRY_CUSTOM.registry(ResourceKey.createRegistryKey(new ResourceLocation(key.key().asString()))); ++ assertTrue(registry.isPresent(), "Missing vanilla registry for " + key.key().asString()); ++ ++ } ++} diff --git a/src/test/java/io/papermc/paper/util/EmptyTag.java b/src/test/java/io/papermc/paper/util/EmptyTag.java new file mode 100644 index 0000000000000000000000000000000000000000..6eb95a5e2534974c0e52e2b78b04e7c2b2f28525 diff --git a/settings.gradle.kts b/settings.gradle.kts index e8d0e3de4c..f6aac1f56c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -39,9 +39,19 @@ for (name in listOf("Paper-API", "Paper-Server", "Paper-MojangAPI")) { findProject(":$projName")!!.projectDir = file(name) } -val testPlugin = file("test-plugin.settings.gradle.kts") -if (testPlugin.exists()) { - apply(from = testPlugin) -} else { - testPlugin.writeText("// Uncomment to enable the test plugin module\n//include(\":test-plugin\")\n") +mapOf("test-plugin.settings.gradle.kts" to """ + // Uncomment to enable the test plugin module + // include(":test-plugin") + """.trimIndent(), + "paper-api-generator.settings.gradle.kts" to """ + // Uncomment to enable the api generator module + // include(":paper-api-generator") + """.trimIndent() +).forEach { (fileName, text) -> + val settingsFile = file(fileName) + if (settingsFile.exists()) { + apply(from = settingsFile) + } else { + settingsFile.writeText(text + "\n") + } }