From 4207e6fccb3f32695c303d9040e552c9b16a9928 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Sun, 10 Aug 2025 19:07:58 -0700 Subject: [PATCH 1/8] chore(minecraft): add additions from 25w31a and 25w32a Additions are mostly around CopperGolem and copper items. Breaking Change: - Removed Spawn Chunk Radius gamerule See: https://minecraft.wiki/w/Java_Edition_25w31a#General_2 See: https://minecraft.wiki/w/Java_Edition_25w32a --- gradle.properties | 2 +- gradle/libs.versions.toml | 2 +- gradle/verification-metadata.xml | 26 ++++ .../spongepowered/api/block/BlockTypes.java | 122 +++++++++++++++ .../api/block/entity/BlockEntityTypes.java | 4 + .../api/data/BlockStateKeys.java | 6 + .../spongepowered/api/data/DataManager.java | 2 +- .../java/org/spongepowered/api/data/Keys.java | 16 ++ .../api/data/type/ArmorMaterials.java | 2 + .../api/data/type/ChickenVariant.java | 2 +- .../api/data/type/CopperGolemPose.java | 32 ++++ .../api/data/type/CopperGolemPoses.java | 60 ++++++++ .../api/data/type/CopperOxidation.java | 34 +++++ .../api/data/type/CopperOxidations.java | 60 ++++++++ .../api/data/type/CowVariant.java | 2 +- .../api/data/type/CreakingHeartState.java | 2 +- .../api/data/type/ItemTiers.java | 2 + .../spongepowered/api/data/type/PigType.java | 2 +- .../api/data/type/SideChain.java | 32 ++++ .../api/data/type/SideChains.java | 60 ++++++++ .../api/data/type/TestBlockMode.java | 2 +- .../api/data/type/WolfSoundVariant.java | 2 +- .../spongepowered/api/effect/VanishState.java | 2 +- .../api/effect/particle/ParticleTypes.java | 2 + .../api/effect/sound/SoundTypes.java | 80 ++++++++++ .../spongepowered/api/entity/EntityTypes.java | 3 + .../api/entity/living/golem/CopperGolem.java | 53 +++++++ .../org/spongepowered/api/item/ItemTypes.java | 144 ++++++++++++++++++ .../api/registry/RegistryTypes.java | 9 ++ .../api/state/EnumStateProperties.java | 10 ++ .../spongepowered/api/tag/BlockTypeTags.java | 18 +++ .../spongepowered/api/tag/ItemTypeTags.java | 20 +++ .../api/world/gamerule/GameRules.java | 2 - 33 files changed, 805 insertions(+), 12 deletions(-) create mode 100644 src/main/java/org/spongepowered/api/data/type/CopperGolemPose.java create mode 100644 src/main/java/org/spongepowered/api/data/type/CopperGolemPoses.java create mode 100644 src/main/java/org/spongepowered/api/data/type/CopperOxidation.java create mode 100644 src/main/java/org/spongepowered/api/data/type/CopperOxidations.java create mode 100644 src/main/java/org/spongepowered/api/data/type/SideChain.java create mode 100644 src/main/java/org/spongepowered/api/data/type/SideChains.java create mode 100644 src/main/java/org/spongepowered/api/entity/living/golem/CopperGolem.java diff --git a/gradle.properties b/gradle.properties index 5b6a538ff3..8efe0fa31c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=org.spongepowered -version=16.0.0-SNAPSHOT +version=17.0.0-SNAPSHOT organization=SpongePowered projectUrl=https://www.spongepowered.org projectDescription=A plugin API for Minecraft: Java Edition diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b664d532a..773804930e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -56,7 +56,7 @@ junit-launcher = { module = "org.junit.platform:junit-platform-launcher" } mockito = { module = "org.mockito:mockito-core", version.ref = "mockito" } [plugins] -errorprone = { id = "net.ltgt.errorprone", version = "3.1.0" } +errorprone = { id = "net.ltgt.errorprone", version = "4.3.0" } eventImplGen = { id = "org.spongepowered.gradle.event-impl-gen", version = "7.1.0" } ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExt" } indra-checkstyle = { id = "net.kyori.indra.checkstyle", version.ref = "indra" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 8987d86f10..df7ac5211a 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -1316,6 +1316,11 @@ + + + + + @@ -1324,6 +1329,14 @@ + + + + + + + + @@ -2008,11 +2021,24 @@ + + + + + + + + + + + + + diff --git a/src/main/java/org/spongepowered/api/block/BlockTypes.java b/src/main/java/org/spongepowered/api/block/BlockTypes.java index 4b74d7886b..f55bbdc2fd 100644 --- a/src/main/java/org/spongepowered/api/block/BlockTypes.java +++ b/src/main/java/org/spongepowered/api/block/BlockTypes.java @@ -60,6 +60,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference ACACIA_SAPLING = BlockTypes.key(ResourceKey.minecraft("acacia_sapling")); + public static final DefaultedRegistryReference ACACIA_SHELF = BlockTypes.key(ResourceKey.minecraft("acacia_shelf")); + public static final DefaultedRegistryReference ACACIA_SIGN = BlockTypes.key(ResourceKey.minecraft("acacia_sign")); public static final DefaultedRegistryReference ACACIA_SLAB = BlockTypes.key(ResourceKey.minecraft("acacia_slab")); @@ -132,6 +134,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference BAMBOO_SAPLING = BlockTypes.key(ResourceKey.minecraft("bamboo_sapling")); + public static final DefaultedRegistryReference BAMBOO_SHELF = BlockTypes.key(ResourceKey.minecraft("bamboo_shelf")); + public static final DefaultedRegistryReference BAMBOO_SIGN = BlockTypes.key(ResourceKey.minecraft("bamboo_sign")); public static final DefaultedRegistryReference BAMBOO_SLAB = BlockTypes.key(ResourceKey.minecraft("bamboo_slab")); @@ -186,6 +190,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference BIRCH_SAPLING = BlockTypes.key(ResourceKey.minecraft("birch_sapling")); + public static final DefaultedRegistryReference BIRCH_SHELF = BlockTypes.key(ResourceKey.minecraft("birch_shelf")); + public static final DefaultedRegistryReference BIRCH_SIGN = BlockTypes.key(ResourceKey.minecraft("birch_sign")); public static final DefaultedRegistryReference BIRCH_SLAB = BlockTypes.key(ResourceKey.minecraft("birch_slab")); @@ -392,6 +398,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference CHERRY_SAPLING = BlockTypes.key(ResourceKey.minecraft("cherry_sapling")); + public static final DefaultedRegistryReference CHERRY_SHELF = BlockTypes.key(ResourceKey.minecraft("cherry_shelf")); + public static final DefaultedRegistryReference CHERRY_SIGN = BlockTypes.key(ResourceKey.minecraft("cherry_sign")); public static final DefaultedRegistryReference CHERRY_SLAB = BlockTypes.key(ResourceKey.minecraft("cherry_slab")); @@ -476,18 +484,32 @@ public final class BlockTypes { public static final DefaultedRegistryReference CONDUIT = BlockTypes.key(ResourceKey.minecraft("conduit")); + public static final DefaultedRegistryReference COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("copper_bars")); + public static final DefaultedRegistryReference COPPER_BLOCK = BlockTypes.key(ResourceKey.minecraft("copper_block")); public static final DefaultedRegistryReference COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("copper_bulb")); + public static final DefaultedRegistryReference COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("copper_chain")); + + public static final DefaultedRegistryReference COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("copper_chest")); + public static final DefaultedRegistryReference COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("copper_door")); + public static final DefaultedRegistryReference COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("copper_golem_statue")); + public static final DefaultedRegistryReference COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("copper_grate")); + public static final DefaultedRegistryReference COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("copper_lantern")); + public static final DefaultedRegistryReference COPPER_ORE = BlockTypes.key(ResourceKey.minecraft("copper_ore")); + public static final DefaultedRegistryReference COPPER_TORCH = BlockTypes.key(ResourceKey.minecraft("copper_torch")); + public static final DefaultedRegistryReference COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("copper_trapdoor")); + public static final DefaultedRegistryReference COPPER_WALL_TORCH = BlockTypes.key(ResourceKey.minecraft("copper_wall_torch")); + public static final DefaultedRegistryReference CORNFLOWER = BlockTypes.key(ResourceKey.minecraft("cornflower")); public static final DefaultedRegistryReference CRACKED_DEEPSLATE_BRICKS = BlockTypes.key(ResourceKey.minecraft("cracked_deepslate_bricks")); @@ -532,6 +554,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference CRIMSON_ROOTS = BlockTypes.key(ResourceKey.minecraft("crimson_roots")); + public static final DefaultedRegistryReference CRIMSON_SHELF = BlockTypes.key(ResourceKey.minecraft("crimson_shelf")); + public static final DefaultedRegistryReference CRIMSON_SIGN = BlockTypes.key(ResourceKey.minecraft("crimson_sign")); public static final DefaultedRegistryReference CRIMSON_SLAB = BlockTypes.key(ResourceKey.minecraft("crimson_slab")); @@ -614,6 +638,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference DARK_OAK_SAPLING = BlockTypes.key(ResourceKey.minecraft("dark_oak_sapling")); + public static final DefaultedRegistryReference DARK_OAK_SHELF = BlockTypes.key(ResourceKey.minecraft("dark_oak_shelf")); + public static final DefaultedRegistryReference DARK_OAK_SIGN = BlockTypes.key(ResourceKey.minecraft("dark_oak_sign")); public static final DefaultedRegistryReference DARK_OAK_SLAB = BlockTypes.key(ResourceKey.minecraft("dark_oak_slab")); @@ -778,12 +804,22 @@ public final class BlockTypes { public static final DefaultedRegistryReference EXPOSED_COPPER = BlockTypes.key(ResourceKey.minecraft("exposed_copper")); + public static final DefaultedRegistryReference EXPOSED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("exposed_copper_bars")); + public static final DefaultedRegistryReference EXPOSED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("exposed_copper_bulb")); + public static final DefaultedRegistryReference EXPOSED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("exposed_copper_chain")); + + public static final DefaultedRegistryReference EXPOSED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("exposed_copper_chest")); + public static final DefaultedRegistryReference EXPOSED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("exposed_copper_door")); + public static final DefaultedRegistryReference EXPOSED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("exposed_copper_golem_statue")); + public static final DefaultedRegistryReference EXPOSED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("exposed_copper_grate")); + public static final DefaultedRegistryReference EXPOSED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("exposed_copper_lantern")); + public static final DefaultedRegistryReference EXPOSED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("exposed_copper_trapdoor")); public static final DefaultedRegistryReference EXPOSED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("exposed_cut_copper")); @@ -792,6 +828,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference EXPOSED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("exposed_cut_copper_stairs")); + public static final DefaultedRegistryReference EXPOSED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("exposed_lightning_rod")); + public static final DefaultedRegistryReference FARMLAND = BlockTypes.key(ResourceKey.minecraft("farmland")); public static final DefaultedRegistryReference FERN = BlockTypes.key(ResourceKey.minecraft("fern")); @@ -980,6 +1018,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference JUNGLE_SAPLING = BlockTypes.key(ResourceKey.minecraft("jungle_sapling")); + public static final DefaultedRegistryReference JUNGLE_SHELF = BlockTypes.key(ResourceKey.minecraft("jungle_shelf")); + public static final DefaultedRegistryReference JUNGLE_SIGN = BlockTypes.key(ResourceKey.minecraft("jungle_sign")); public static final DefaultedRegistryReference JUNGLE_SLAB = BlockTypes.key(ResourceKey.minecraft("jungle_slab")); @@ -1172,6 +1212,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference MANGROVE_ROOTS = BlockTypes.key(ResourceKey.minecraft("mangrove_roots")); + public static final DefaultedRegistryReference MANGROVE_SHELF = BlockTypes.key(ResourceKey.minecraft("mangrove_shelf")); + public static final DefaultedRegistryReference MANGROVE_SIGN = BlockTypes.key(ResourceKey.minecraft("mangrove_sign")); public static final DefaultedRegistryReference MANGROVE_SLAB = BlockTypes.key(ResourceKey.minecraft("mangrove_slab")); @@ -1278,6 +1320,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference OAK_SAPLING = BlockTypes.key(ResourceKey.minecraft("oak_sapling")); + public static final DefaultedRegistryReference OAK_SHELF = BlockTypes.key(ResourceKey.minecraft("oak_shelf")); + public static final DefaultedRegistryReference OAK_SIGN = BlockTypes.key(ResourceKey.minecraft("oak_sign")); public static final DefaultedRegistryReference OAK_SLAB = BlockTypes.key(ResourceKey.minecraft("oak_slab")); @@ -1336,12 +1380,22 @@ public final class BlockTypes { public static final DefaultedRegistryReference OXIDIZED_COPPER = BlockTypes.key(ResourceKey.minecraft("oxidized_copper")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_bars")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_bulb")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_chain")); + + public static final DefaultedRegistryReference OXIDIZED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_chest")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_door")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_golem_statue")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_grate")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_lantern")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("oxidized_copper_trapdoor")); public static final DefaultedRegistryReference OXIDIZED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("oxidized_cut_copper")); @@ -1350,6 +1404,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference OXIDIZED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("oxidized_cut_copper_stairs")); + public static final DefaultedRegistryReference OXIDIZED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("oxidized_lightning_rod")); + public static final DefaultedRegistryReference PACKED_ICE = BlockTypes.key(ResourceKey.minecraft("packed_ice")); public static final DefaultedRegistryReference PACKED_MUD = BlockTypes.key(ResourceKey.minecraft("packed_mud")); @@ -1380,6 +1436,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference PALE_OAK_SAPLING = BlockTypes.key(ResourceKey.minecraft("pale_oak_sapling")); + public static final DefaultedRegistryReference PALE_OAK_SHELF = BlockTypes.key(ResourceKey.minecraft("pale_oak_shelf")); + public static final DefaultedRegistryReference PALE_OAK_SIGN = BlockTypes.key(ResourceKey.minecraft("pale_oak_sign")); public static final DefaultedRegistryReference PALE_OAK_SLAB = BlockTypes.key(ResourceKey.minecraft("pale_oak_slab")); @@ -1872,6 +1930,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference SPRUCE_SAPLING = BlockTypes.key(ResourceKey.minecraft("spruce_sapling")); + public static final DefaultedRegistryReference SPRUCE_SHELF = BlockTypes.key(ResourceKey.minecraft("spruce_shelf")); + public static final DefaultedRegistryReference SPRUCE_SIGN = BlockTypes.key(ResourceKey.minecraft("spruce_sign")); public static final DefaultedRegistryReference SPRUCE_SLAB = BlockTypes.key(ResourceKey.minecraft("spruce_slab")); @@ -2062,6 +2122,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference WARPED_ROOTS = BlockTypes.key(ResourceKey.minecraft("warped_roots")); + public static final DefaultedRegistryReference WARPED_SHELF = BlockTypes.key(ResourceKey.minecraft("warped_shelf")); + public static final DefaultedRegistryReference WARPED_SIGN = BlockTypes.key(ResourceKey.minecraft("warped_sign")); public static final DefaultedRegistryReference WARPED_SLAB = BlockTypes.key(ResourceKey.minecraft("warped_slab")); @@ -2084,14 +2146,24 @@ public final class BlockTypes { public static final DefaultedRegistryReference WAXED_CHISELED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_chiseled_copper")); + public static final DefaultedRegistryReference WAXED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("waxed_copper_bars")); + public static final DefaultedRegistryReference WAXED_COPPER_BLOCK = BlockTypes.key(ResourceKey.minecraft("waxed_copper_block")); public static final DefaultedRegistryReference WAXED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("waxed_copper_bulb")); + public static final DefaultedRegistryReference WAXED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("waxed_copper_chain")); + + public static final DefaultedRegistryReference WAXED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("waxed_copper_chest")); + public static final DefaultedRegistryReference WAXED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("waxed_copper_door")); + public static final DefaultedRegistryReference WAXED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("waxed_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("waxed_copper_grate")); + public static final DefaultedRegistryReference WAXED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("waxed_copper_lantern")); + public static final DefaultedRegistryReference WAXED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("waxed_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_cut_copper")); @@ -2104,12 +2176,22 @@ public final class BlockTypes { public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_bars")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_bulb")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_chain")); + + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_chest")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_door")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_grate")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_lantern")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_EXPOSED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_cut_copper")); @@ -2118,16 +2200,30 @@ public final class BlockTypes { public static final DefaultedRegistryReference WAXED_EXPOSED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_EXPOSED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("waxed_exposed_lightning_rod")); + + public static final DefaultedRegistryReference WAXED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("waxed_lightning_rod")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_CHISELED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_chiseled_copper")); public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_bars")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_bulb")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_chain")); + + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_chest")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_door")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_grate")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_lantern")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_OXIDIZED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_cut_copper")); @@ -2136,16 +2232,28 @@ public final class BlockTypes { public static final DefaultedRegistryReference WAXED_OXIDIZED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("waxed_oxidized_lightning_rod")); + public static final DefaultedRegistryReference WAXED_WEATHERED_CHISELED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_chiseled_copper")); public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_bars")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_bulb")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_chain")); + + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_chest")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_door")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_grate")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_lantern")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_WEATHERED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_cut_copper")); @@ -2154,16 +2262,28 @@ public final class BlockTypes { public static final DefaultedRegistryReference WAXED_WEATHERED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_WEATHERED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("waxed_weathered_lightning_rod")); + public static final DefaultedRegistryReference WEATHERED_CHISELED_COPPER = BlockTypes.key(ResourceKey.minecraft("weathered_chiseled_copper")); public static final DefaultedRegistryReference WEATHERED_COPPER = BlockTypes.key(ResourceKey.minecraft("weathered_copper")); + public static final DefaultedRegistryReference WEATHERED_COPPER_BARS = BlockTypes.key(ResourceKey.minecraft("weathered_copper_bars")); + public static final DefaultedRegistryReference WEATHERED_COPPER_BULB = BlockTypes.key(ResourceKey.minecraft("weathered_copper_bulb")); + public static final DefaultedRegistryReference WEATHERED_COPPER_CHAIN = BlockTypes.key(ResourceKey.minecraft("weathered_copper_chain")); + + public static final DefaultedRegistryReference WEATHERED_COPPER_CHEST = BlockTypes.key(ResourceKey.minecraft("weathered_copper_chest")); + public static final DefaultedRegistryReference WEATHERED_COPPER_DOOR = BlockTypes.key(ResourceKey.minecraft("weathered_copper_door")); + public static final DefaultedRegistryReference WEATHERED_COPPER_GOLEM_STATUE = BlockTypes.key(ResourceKey.minecraft("weathered_copper_golem_statue")); + public static final DefaultedRegistryReference WEATHERED_COPPER_GRATE = BlockTypes.key(ResourceKey.minecraft("weathered_copper_grate")); + public static final DefaultedRegistryReference WEATHERED_COPPER_LANTERN = BlockTypes.key(ResourceKey.minecraft("weathered_copper_lantern")); + public static final DefaultedRegistryReference WEATHERED_COPPER_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("weathered_copper_trapdoor")); public static final DefaultedRegistryReference WEATHERED_CUT_COPPER = BlockTypes.key(ResourceKey.minecraft("weathered_cut_copper")); @@ -2172,6 +2292,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference WEATHERED_CUT_COPPER_STAIRS = BlockTypes.key(ResourceKey.minecraft("weathered_cut_copper_stairs")); + public static final DefaultedRegistryReference WEATHERED_LIGHTNING_ROD = BlockTypes.key(ResourceKey.minecraft("weathered_lightning_rod")); + public static final DefaultedRegistryReference WEEPING_VINES = BlockTypes.key(ResourceKey.minecraft("weeping_vines")); public static final DefaultedRegistryReference WEEPING_VINES_PLANT = BlockTypes.key(ResourceKey.minecraft("weeping_vines_plant")); diff --git a/src/main/java/org/spongepowered/api/block/entity/BlockEntityTypes.java b/src/main/java/org/spongepowered/api/block/entity/BlockEntityTypes.java index 8e4414b22b..6bfe5a6b71 100644 --- a/src/main/java/org/spongepowered/api/block/entity/BlockEntityTypes.java +++ b/src/main/java/org/spongepowered/api/block/entity/BlockEntityTypes.java @@ -72,6 +72,8 @@ public final class BlockEntityTypes { public static final DefaultedRegistryReference CONDUIT = BlockEntityTypes.key(ResourceKey.minecraft("conduit")); + public static final DefaultedRegistryReference COPPER_GOLEM_STATUE = BlockEntityTypes.key(ResourceKey.minecraft("copper_golem_statue")); + public static final DefaultedRegistryReference CRAFTER = BlockEntityTypes.key(ResourceKey.minecraft("crafter")); public static final DefaultedRegistryReference CREAKING_HEART = BlockEntityTypes.key(ResourceKey.minecraft("creaking_heart")); @@ -114,6 +116,8 @@ public final class BlockEntityTypes { public static final DefaultedRegistryReference SCULK_SHRIEKER = BlockEntityTypes.key(ResourceKey.minecraft("sculk_shrieker")); + public static final DefaultedRegistryReference SHELF = BlockEntityTypes.key(ResourceKey.minecraft("shelf")); + public static final DefaultedRegistryReference SHULKER_BOX = BlockEntityTypes.key(ResourceKey.minecraft("shulker_box")); public static final DefaultedRegistryReference SIGN = BlockEntityTypes.key(ResourceKey.minecraft("sign")); diff --git a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java index 8795f231b7..3ac8b67c67 100644 --- a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java +++ b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java @@ -30,6 +30,7 @@ import org.spongepowered.api.data.type.BellAttachmentType; import org.spongepowered.api.data.type.ChestAttachmentType; import org.spongepowered.api.data.type.ComparatorMode; +import org.spongepowered.api.data.type.CopperGolemPose; import org.spongepowered.api.data.type.CreakingHeartState; import org.spongepowered.api.data.type.DoorHinge; import org.spongepowered.api.data.type.DripstoneSegment; @@ -39,6 +40,7 @@ import org.spongepowered.api.data.type.PortionType; import org.spongepowered.api.data.type.RailDirection; import org.spongepowered.api.data.type.SculkSensorState; +import org.spongepowered.api.data.type.SideChain; import org.spongepowered.api.data.type.SlabPortion; import org.spongepowered.api.data.type.StairShape; import org.spongepowered.api.data.type.StructureMode; @@ -114,6 +116,8 @@ public final class BlockStateKeys { public static final Key> CONDITIONAL = BlockStateKeys.key(ResourceKey.minecraft("property/conditional"), Boolean.class); + public static final Key> COPPER_GOLEM_POSE = BlockStateKeys.key(ResourceKey.minecraft("property/copper_golem_pose"), CopperGolemPose.class); + public static final Key> CRACKED = BlockStateKeys.key(ResourceKey.minecraft("property/cracked"), Boolean.class); public static final Key> CRAFTING = BlockStateKeys.key(ResourceKey.minecraft("property/crafting"), Boolean.class); @@ -254,6 +258,8 @@ public final class BlockStateKeys { public static final Key> SHRIEKING = BlockStateKeys.key(ResourceKey.minecraft("property/shrieking"), Boolean.class); + public static final Key> SIDE_CHAIN_PART = BlockStateKeys.key(ResourceKey.minecraft("property/side_chain"), SideChain.class); + public static final Key> SIGNAL_FIRE = BlockStateKeys.key(ResourceKey.minecraft("property/signal_fire"), Boolean.class); public static final Key> SLAB_TYPE = BlockStateKeys.key(ResourceKey.minecraft("property/type"), SlabPortion.class); diff --git a/src/main/java/org/spongepowered/api/data/DataManager.java b/src/main/java/org/spongepowered/api/data/DataManager.java index 2156bcc584..face41e8a9 100644 --- a/src/main/java/org/spongepowered/api/data/DataManager.java +++ b/src/main/java/org/spongepowered/api/data/DataManager.java @@ -131,7 +131,7 @@ public interface DataManager { * be read by a plugin-data datastore. * * @param legacyId The legacy id - * @param dataStoreKey The dataStore key set in {@link org.spongepowered.api.data.persistence.DataStore.Builder.HolderStep#pluginData(ResourceKey)} + * @param dataStoreKey The dataStore key set in {@link org.spongepowered.api.data.persistence.DataStore.Builder#pluginData(ResourceKey)} */ void registerLegacyManipulatorIds(String legacyId, ResourceKey dataStoreKey); diff --git a/src/main/java/org/spongepowered/api/data/Keys.java b/src/main/java/org/spongepowered/api/data/Keys.java index 1b3805c0cd..4baf9b6fd2 100644 --- a/src/main/java/org/spongepowered/api/data/Keys.java +++ b/src/main/java/org/spongepowered/api/data/Keys.java @@ -61,6 +61,7 @@ import org.spongepowered.api.data.type.CatType; import org.spongepowered.api.data.type.ChestAttachmentType; import org.spongepowered.api.data.type.ComparatorMode; +import org.spongepowered.api.data.type.CopperOxidation; import org.spongepowered.api.data.type.DoorHinge; import org.spongepowered.api.data.type.DripstoneSegment; import org.spongepowered.api.data.type.DyeColor; @@ -173,6 +174,7 @@ import org.spongepowered.api.entity.living.aquatic.fish.Pufferfish; import org.spongepowered.api.entity.living.aquatic.fish.school.Salmon; import org.spongepowered.api.entity.living.aquatic.fish.school.TropicalFish; +import org.spongepowered.api.entity.living.golem.CopperGolem; import org.spongepowered.api.entity.living.golem.IronGolem; import org.spongepowered.api.entity.living.golem.Shulker; import org.spongepowered.api.entity.living.monster.Blaze; @@ -256,6 +258,7 @@ import org.spongepowered.api.raid.RaidWave; import org.spongepowered.api.registry.DefaultedRegistryType; import org.spongepowered.api.statistic.Statistic; +import org.spongepowered.api.tag.BlockTypeTags; import org.spongepowered.api.tag.Tag; import org.spongepowered.api.util.Axis; import org.spongepowered.api.util.Color; @@ -788,6 +791,13 @@ public final class Keys { */ public static final Key> CONTAINER_ITEM = Keys.key(ResourceKey.sponge("container_item"), ItemType.class); + /** + * The {@link CopperOxidation} state of a {@link BlockState block} + * (given that it applies to the {@link BlockTypeTags#COPPER} tag) or + * a {@link CopperGolem} + */ + public static final Key> COPPER_OXIDATION = Keys.key(ResourceKey.sponge("copper_oxidation"), CopperOxidation.class); + /** * The {@link ItemStack} a food {@link ItemStack} converts to when eaten. */ @@ -3507,6 +3517,12 @@ public final class Keys { */ public static final Key> WATER_FOG_COLOR = Keys.key(ResourceKey.sponge("water_fog_color"), Color.class); + /** + * The state of whether a {@link BlockState} that is a copper block is waxed, or if a {@link CopperGolem} + * is waxed. + */ + public static final Key> WAXED = Keys.key(ResourceKey.sponge("waxed"), Boolean.class); + /** * The weather of a {@link ServerWorldProperties}. */ diff --git a/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java b/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java index 6322d23bf3..9de3827c04 100644 --- a/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java +++ b/src/main/java/org/spongepowered/api/data/type/ArmorMaterials.java @@ -44,6 +44,8 @@ public final class ArmorMaterials { public static final DefaultedRegistryReference CHAINMAIL = ArmorMaterials.key(ResourceKey.minecraft("chainmail")); + public static final DefaultedRegistryReference COPPER = ArmorMaterials.key(ResourceKey.minecraft("copper")); + public static final DefaultedRegistryReference DIAMOND = ArmorMaterials.key(ResourceKey.minecraft("diamond")); public static final DefaultedRegistryReference GOLD = ArmorMaterials.key(ResourceKey.minecraft("gold")); diff --git a/src/main/java/org/spongepowered/api/data/type/ChickenVariant.java b/src/main/java/org/spongepowered/api/data/type/ChickenVariant.java index 539bc7cbf5..9fdce4b68c 100644 --- a/src/main/java/org/spongepowered/api/data/type/ChickenVariant.java +++ b/src/main/java/org/spongepowered/api/data/type/ChickenVariant.java @@ -28,5 +28,5 @@ import org.spongepowered.api.util.annotation.CatalogedBy; @CatalogedBy(ChickenVariants.class) -public interface ChickenVariant extends DefaultedRegistryValue { +public interface ChickenVariant extends DefaultedRegistryValue { } diff --git a/src/main/java/org/spongepowered/api/data/type/CopperGolemPose.java b/src/main/java/org/spongepowered/api/data/type/CopperGolemPose.java new file mode 100644 index 0000000000..fb41d778ff --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/CopperGolemPose.java @@ -0,0 +1,32 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.registry.DefaultedRegistryValue; +import org.spongepowered.api.util.annotation.CatalogedBy; + +@CatalogedBy(CopperGolemPoses.class) +public interface CopperGolemPose extends DefaultedRegistryValue, StringRepresentable, Comparable { +} diff --git a/src/main/java/org/spongepowered/api/data/type/CopperGolemPoses.java b/src/main/java/org/spongepowered/api/data/type/CopperGolemPoses.java new file mode 100644 index 0000000000..581f538833 --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/CopperGolemPoses.java @@ -0,0 +1,60 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.ResourceKey; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.registry.DefaultedRegistryReference; +import org.spongepowered.api.registry.Registry; +import org.spongepowered.api.registry.RegistryKey; +import org.spongepowered.api.registry.RegistryScope; +import org.spongepowered.api.registry.RegistryScopes; +import org.spongepowered.api.registry.RegistryTypes; + +/** + * + */ +@RegistryScopes(scopes = RegistryScope.GAME) +public final class CopperGolemPoses { + + public static final DefaultedRegistryReference RUNNING = CopperGolemPoses.key(ResourceKey.sponge("running")); + + public static final DefaultedRegistryReference SITTING = CopperGolemPoses.key(ResourceKey.sponge("sitting")); + + public static final DefaultedRegistryReference STANDING = CopperGolemPoses.key(ResourceKey.sponge("standing")); + + public static final DefaultedRegistryReference STAR = CopperGolemPoses.key(ResourceKey.sponge("star")); + + private CopperGolemPoses() { + } + + public static Registry registry() { + return Sponge.game().registry(RegistryTypes.COPPER_GOLEM_POSE); + } + + private static DefaultedRegistryReference key(final ResourceKey location) { + return RegistryKey.of(RegistryTypes.COPPER_GOLEM_POSE, location).asDefaultedReference(Sponge::game); + } +} diff --git a/src/main/java/org/spongepowered/api/data/type/CopperOxidation.java b/src/main/java/org/spongepowered/api/data/type/CopperOxidation.java new file mode 100644 index 0000000000..d45ee52cba --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/CopperOxidation.java @@ -0,0 +1,34 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.registry.DefaultedRegistryType; +import org.spongepowered.api.util.Cycleable; +import org.spongepowered.api.util.annotation.CatalogedBy; + +@CatalogedBy(CopperOxidations.class) +public interface CopperOxidation extends DefaultedRegistryType, Comparable, StringRepresentable, Cycleable { + +} diff --git a/src/main/java/org/spongepowered/api/data/type/CopperOxidations.java b/src/main/java/org/spongepowered/api/data/type/CopperOxidations.java new file mode 100644 index 0000000000..ad2814280f --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/CopperOxidations.java @@ -0,0 +1,60 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.ResourceKey; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.registry.DefaultedRegistryReference; +import org.spongepowered.api.registry.Registry; +import org.spongepowered.api.registry.RegistryKey; +import org.spongepowered.api.registry.RegistryScope; +import org.spongepowered.api.registry.RegistryScopes; +import org.spongepowered.api.registry.RegistryTypes; + +/** + * + */ +@RegistryScopes(scopes = RegistryScope.GAME) +public final class CopperOxidations { + + public static final DefaultedRegistryReference EXPOSED = CopperOxidations.key(ResourceKey.sponge("exposed")); + + public static final DefaultedRegistryReference OXIDIZED = CopperOxidations.key(ResourceKey.sponge("oxidized")); + + public static final DefaultedRegistryReference UNAFFECTED = CopperOxidations.key(ResourceKey.sponge("unaffected")); + + public static final DefaultedRegistryReference WEATHERED = CopperOxidations.key(ResourceKey.sponge("weathered")); + + private CopperOxidations() { + } + + public static Registry registry() { + return Sponge.game().registry(RegistryTypes.COPPER_OXIDATION); + } + + private static DefaultedRegistryReference key(final ResourceKey location) { + return RegistryKey.of(RegistryTypes.COPPER_OXIDATION, location).asDefaultedReference(Sponge::game); + } +} diff --git a/src/main/java/org/spongepowered/api/data/type/CowVariant.java b/src/main/java/org/spongepowered/api/data/type/CowVariant.java index 4d9d160a36..8d207b4037 100644 --- a/src/main/java/org/spongepowered/api/data/type/CowVariant.java +++ b/src/main/java/org/spongepowered/api/data/type/CowVariant.java @@ -28,5 +28,5 @@ import org.spongepowered.api.util.annotation.CatalogedBy; @CatalogedBy(CowVariants.class) -public interface CowVariant extends DefaultedRegistryValue { +public interface CowVariant extends DefaultedRegistryValue { } diff --git a/src/main/java/org/spongepowered/api/data/type/CreakingHeartState.java b/src/main/java/org/spongepowered/api/data/type/CreakingHeartState.java index 9fa3be62f7..a2e7053d36 100644 --- a/src/main/java/org/spongepowered/api/data/type/CreakingHeartState.java +++ b/src/main/java/org/spongepowered/api/data/type/CreakingHeartState.java @@ -29,5 +29,5 @@ @CatalogedBy(CreakingHeartStates.class) -public interface CreakingHeartState extends DefaultedRegistryValue, Comparable, StringRepresentable { +public interface CreakingHeartState extends DefaultedRegistryValue, Comparable, StringRepresentable { } diff --git a/src/main/java/org/spongepowered/api/data/type/ItemTiers.java b/src/main/java/org/spongepowered/api/data/type/ItemTiers.java index 089e50f44d..633fdf2da0 100644 --- a/src/main/java/org/spongepowered/api/data/type/ItemTiers.java +++ b/src/main/java/org/spongepowered/api/data/type/ItemTiers.java @@ -40,6 +40,8 @@ @RegistryScopes(scopes = RegistryScope.GAME) public final class ItemTiers { + public static final DefaultedRegistryReference COPPER = ItemTiers.key(ResourceKey.sponge("copper")); + public static final DefaultedRegistryReference DIAMOND = ItemTiers.key(ResourceKey.sponge("diamond")); public static final DefaultedRegistryReference GOLD = ItemTiers.key(ResourceKey.sponge("gold")); diff --git a/src/main/java/org/spongepowered/api/data/type/PigType.java b/src/main/java/org/spongepowered/api/data/type/PigType.java index 121aa46bb9..85863f492a 100644 --- a/src/main/java/org/spongepowered/api/data/type/PigType.java +++ b/src/main/java/org/spongepowered/api/data/type/PigType.java @@ -28,5 +28,5 @@ import org.spongepowered.api.util.annotation.CatalogedBy; @CatalogedBy(PigTypes.class) -public interface PigType extends DefaultedRegistryValue { +public interface PigType extends DefaultedRegistryValue { } diff --git a/src/main/java/org/spongepowered/api/data/type/SideChain.java b/src/main/java/org/spongepowered/api/data/type/SideChain.java new file mode 100644 index 0000000000..7f84925611 --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/SideChain.java @@ -0,0 +1,32 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.registry.DefaultedRegistryValue; +import org.spongepowered.api.util.annotation.CatalogedBy; + +@CatalogedBy(SideChains.class) +public interface SideChain extends DefaultedRegistryValue, StringRepresentable, Comparable { +} diff --git a/src/main/java/org/spongepowered/api/data/type/SideChains.java b/src/main/java/org/spongepowered/api/data/type/SideChains.java new file mode 100644 index 0000000000..f9b823a5f9 --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/SideChains.java @@ -0,0 +1,60 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.ResourceKey; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.registry.DefaultedRegistryReference; +import org.spongepowered.api.registry.Registry; +import org.spongepowered.api.registry.RegistryKey; +import org.spongepowered.api.registry.RegistryScope; +import org.spongepowered.api.registry.RegistryScopes; +import org.spongepowered.api.registry.RegistryTypes; + +/** + * + */ +@RegistryScopes(scopes = RegistryScope.GAME) +public final class SideChains { + + public static final DefaultedRegistryReference CENTER = SideChains.key(ResourceKey.sponge("center")); + + public static final DefaultedRegistryReference LEFT = SideChains.key(ResourceKey.sponge("left")); + + public static final DefaultedRegistryReference RIGHT = SideChains.key(ResourceKey.sponge("right")); + + public static final DefaultedRegistryReference UNCONNECTED = SideChains.key(ResourceKey.sponge("unconnected")); + + private SideChains() { + } + + public static Registry registry() { + return Sponge.game().registry(RegistryTypes.SIDE_CHAIN); + } + + private static DefaultedRegistryReference key(final ResourceKey location) { + return RegistryKey.of(RegistryTypes.SIDE_CHAIN, location).asDefaultedReference(Sponge::game); + } +} diff --git a/src/main/java/org/spongepowered/api/data/type/TestBlockMode.java b/src/main/java/org/spongepowered/api/data/type/TestBlockMode.java index e41557d1cc..611ab98a41 100644 --- a/src/main/java/org/spongepowered/api/data/type/TestBlockMode.java +++ b/src/main/java/org/spongepowered/api/data/type/TestBlockMode.java @@ -28,6 +28,6 @@ import org.spongepowered.api.util.annotation.CatalogedBy; @CatalogedBy(TestBlockModes.class) -public interface TestBlockMode extends Comparable, DefaultedRegistryValue, StringRepresentable { +public interface TestBlockMode extends Comparable, DefaultedRegistryValue, StringRepresentable { } diff --git a/src/main/java/org/spongepowered/api/data/type/WolfSoundVariant.java b/src/main/java/org/spongepowered/api/data/type/WolfSoundVariant.java index cc71a86094..7e5ea9c793 100644 --- a/src/main/java/org/spongepowered/api/data/type/WolfSoundVariant.java +++ b/src/main/java/org/spongepowered/api/data/type/WolfSoundVariant.java @@ -28,5 +28,5 @@ import org.spongepowered.api.util.annotation.CatalogedBy; @CatalogedBy(WolfSoundVariants.class) -public interface WolfSoundVariant extends DefaultedRegistryValue { +public interface WolfSoundVariant extends DefaultedRegistryValue { } diff --git a/src/main/java/org/spongepowered/api/effect/VanishState.java b/src/main/java/org/spongepowered/api/effect/VanishState.java index 822c5d248a..522e5839df 100644 --- a/src/main/java/org/spongepowered/api/effect/VanishState.java +++ b/src/main/java/org/spongepowered/api/effect/VanishState.java @@ -34,7 +34,7 @@ public interface VanishState { /** - * Gets a vanished state via {@link Factory#vanish()} with the following + * Gets a vanished state via {@link Factory#vanished()} with the following * defaults: *
    *
  • {@link VanishState#invisible()} = {@code true}
  • diff --git a/src/main/java/org/spongepowered/api/effect/particle/ParticleTypes.java b/src/main/java/org/spongepowered/api/effect/particle/ParticleTypes.java index ee55946899..1e20d47759 100644 --- a/src/main/java/org/spongepowered/api/effect/particle/ParticleTypes.java +++ b/src/main/java/org/spongepowered/api/effect/particle/ParticleTypes.java @@ -66,6 +66,8 @@ public final class ParticleTypes { public static final DefaultedRegistryReference COMPOSTER = ParticleTypes.key(ResourceKey.minecraft("composter")); + public static final DefaultedRegistryReference COPPER_FIRE_FLAME = ParticleTypes.key(ResourceKey.minecraft("copper_fire_flame")); + public static final DefaultedRegistryReference CRIMSON_SPORE = ParticleTypes.key(ResourceKey.minecraft("crimson_spore")); public static final DefaultedRegistryReference CRIT = ParticleTypes.key(ResourceKey.minecraft("crit")); diff --git a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java index 9337ce6b25..5d7eee1a5c 100644 --- a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java +++ b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java @@ -472,12 +472,34 @@ public final class SoundTypes { public static final DefaultedRegistryReference BLOCK_COPPER_BULB_TURN_ON = SoundTypes.key(ResourceKey.minecraft("block.copper_bulb.turn_on")); + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_CLOSE = SoundTypes.key(ResourceKey.minecraft("block.copper_chest.close")); + + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_OPEN = SoundTypes.key(ResourceKey.minecraft("block.copper_chest.open")); + + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_OXIDIZED_CLOSE = SoundTypes.key(ResourceKey.minecraft("block.copper_chest_oxidized.close")); + + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_OXIDIZED_OPEN = SoundTypes.key(ResourceKey.minecraft("block.copper_chest_oxidized.open")); + + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_WEATHERED_CLOSE = SoundTypes.key(ResourceKey.minecraft("block.copper_chest_weathered.close")); + + public static final DefaultedRegistryReference BLOCK_COPPER_CHEST_WEATHERED_OPEN = SoundTypes.key(ResourceKey.minecraft("block.copper_chest_weathered.open")); + public static final DefaultedRegistryReference BLOCK_COPPER_DOOR_CLOSE = SoundTypes.key(ResourceKey.minecraft("block.copper_door.close")); public static final DefaultedRegistryReference BLOCK_COPPER_DOOR_OPEN = SoundTypes.key(ResourceKey.minecraft("block.copper_door.open")); public static final DefaultedRegistryReference BLOCK_COPPER_FALL = SoundTypes.key(ResourceKey.minecraft("block.copper.fall")); + public static final DefaultedRegistryReference BLOCK_COPPER_GOLEM_STATUE_BREAK = SoundTypes.key(ResourceKey.minecraft("block.copper_golem_statue.break")); + + public static final DefaultedRegistryReference BLOCK_COPPER_GOLEM_STATUE_FALL = SoundTypes.key(ResourceKey.minecraft("block.copper_golem_statue.fall")); + + public static final DefaultedRegistryReference BLOCK_COPPER_GOLEM_STATUE_HIT = SoundTypes.key(ResourceKey.minecraft("block.copper_golem_statue.hit")); + + public static final DefaultedRegistryReference BLOCK_COPPER_GOLEM_STATUE_PLACE = SoundTypes.key(ResourceKey.minecraft("block.copper_golem_statue.place")); + + public static final DefaultedRegistryReference BLOCK_COPPER_GOLEM_STATUE_STEP = SoundTypes.key(ResourceKey.minecraft("block.copper_golem_statue.step")); + public static final DefaultedRegistryReference BLOCK_COPPER_GRATE_BREAK = SoundTypes.key(ResourceKey.minecraft("block.copper_grate.break")); public static final DefaultedRegistryReference BLOCK_COPPER_GRATE_FALL = SoundTypes.key(ResourceKey.minecraft("block.copper_grate.fall")); @@ -1298,6 +1320,26 @@ public final class SoundTypes { public static final DefaultedRegistryReference BLOCK_SCULK_VEIN_STEP = SoundTypes.key(ResourceKey.minecraft("block.sculk_vein.step")); + public static final DefaultedRegistryReference BLOCK_SHELF_ACTIVATE = SoundTypes.key(ResourceKey.minecraft("block.shelf.activate")); + + public static final DefaultedRegistryReference BLOCK_SHELF_BREAK = SoundTypes.key(ResourceKey.minecraft("block.shelf.break")); + + public static final DefaultedRegistryReference BLOCK_SHELF_DEACTIVATE = SoundTypes.key(ResourceKey.minecraft("block.shelf.deactivate")); + + public static final DefaultedRegistryReference BLOCK_SHELF_FALL = SoundTypes.key(ResourceKey.minecraft("block.shelf.fall")); + + public static final DefaultedRegistryReference BLOCK_SHELF_HIT = SoundTypes.key(ResourceKey.minecraft("block.shelf.hit")); + + public static final DefaultedRegistryReference BLOCK_SHELF_MULTI_SWAP = SoundTypes.key(ResourceKey.minecraft("block.shelf.multi_swap")); + + public static final DefaultedRegistryReference BLOCK_SHELF_PLACE = SoundTypes.key(ResourceKey.minecraft("block.shelf.place")); + + public static final DefaultedRegistryReference BLOCK_SHELF_PLACE_ITEM = SoundTypes.key(ResourceKey.minecraft("block.shelf.place_item")); + + public static final DefaultedRegistryReference BLOCK_SHELF_SINGLE_SWAP = SoundTypes.key(ResourceKey.minecraft("block.shelf.single_swap")); + + public static final DefaultedRegistryReference BLOCK_SHELF_STEP = SoundTypes.key(ResourceKey.minecraft("block.shelf.step")); + public static final DefaultedRegistryReference BLOCK_SHROOMLIGHT_BREAK = SoundTypes.key(ResourceKey.minecraft("block.shroomlight.break")); public static final DefaultedRegistryReference BLOCK_SHROOMLIGHT_FALL = SoundTypes.key(ResourceKey.minecraft("block.shroomlight.fall")); @@ -1842,6 +1884,42 @@ public final class SoundTypes { public static final DefaultedRegistryReference ENTITY_COD_HURT = SoundTypes.key(ResourceKey.minecraft("entity.cod.hurt")); + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_BECOME_STATUE = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_become_statue")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_DEATH = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.death")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_HURT = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.hurt")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_ITEM_DROP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.item_drop")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_ITEM_NO_DROP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.item_no_drop")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_NO_ITEM_GET = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.no_item_get")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_NO_ITEM_NO_GET = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.no_item_no_get")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_OXIDIZED_DEATH = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_oxidized.death")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_OXIDIZED_HURT = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_oxidized.hurt")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_OXIDIZED_SPIN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_oxidized.spin")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_OXIDIZED_STEP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_oxidized.step")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_SPAWN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.spawn")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_SPIN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.spin")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_STEP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.step")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_WEATHERED_DEATH = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_weathered.death")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_WEATHERED_HURT = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_weathered.hurt")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_WEATHERED_SPIN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_weathered.spin")); + + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_WEATHERED_STEP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_weathered.step")); + public static final DefaultedRegistryReference ENTITY_COW_AMBIENT = SoundTypes.key(ResourceKey.minecraft("entity.cow.ambient")); public static final DefaultedRegistryReference ENTITY_COW_DEATH = SoundTypes.key(ResourceKey.minecraft("entity.cow.death")); @@ -3170,6 +3248,8 @@ public final class SoundTypes { public static final DefaultedRegistryReference ITEM_ARMOR_EQUIP_CHAIN = SoundTypes.key(ResourceKey.minecraft("item.armor.equip_chain")); + public static final DefaultedRegistryReference ITEM_ARMOR_EQUIP_COPPER = SoundTypes.key(ResourceKey.minecraft("item.armor.equip_copper")); + public static final DefaultedRegistryReference ITEM_ARMOR_EQUIP_DIAMOND = SoundTypes.key(ResourceKey.minecraft("item.armor.equip_diamond")); public static final DefaultedRegistryReference ITEM_ARMOR_EQUIP_ELYTRA = SoundTypes.key(ResourceKey.minecraft("item.armor.equip_elytra")); diff --git a/src/main/java/org/spongepowered/api/entity/EntityTypes.java b/src/main/java/org/spongepowered/api/entity/EntityTypes.java index 2df6418ef1..0e67d03811 100644 --- a/src/main/java/org/spongepowered/api/entity/EntityTypes.java +++ b/src/main/java/org/spongepowered/api/entity/EntityTypes.java @@ -78,6 +78,7 @@ import org.spongepowered.api.entity.living.aquatic.fish.school.Cod; import org.spongepowered.api.entity.living.aquatic.fish.school.Salmon; import org.spongepowered.api.entity.living.aquatic.fish.school.TropicalFish; +import org.spongepowered.api.entity.living.golem.CopperGolem; import org.spongepowered.api.entity.living.golem.IronGolem; import org.spongepowered.api.entity.living.golem.Shulker; import org.spongepowered.api.entity.living.golem.SnowGolem; @@ -223,6 +224,8 @@ public final class EntityTypes { public static final DefaultedRegistryReference> COMMAND_BLOCK_MINECART = EntityTypes.key(ResourceKey.minecraft("command_block_minecart")); + public static final DefaultedRegistryReference> COPPER_GOLEM = EntityTypes.key(ResourceKey.minecraft("copper_golem")); + public static final DefaultedRegistryReference> COW = EntityTypes.key(ResourceKey.minecraft("cow")); public static final DefaultedRegistryReference> CREAKING = EntityTypes.key(ResourceKey.minecraft("creaking")); diff --git a/src/main/java/org/spongepowered/api/entity/living/golem/CopperGolem.java b/src/main/java/org/spongepowered/api/entity/living/golem/CopperGolem.java new file mode 100644 index 0000000000..77624fa893 --- /dev/null +++ b/src/main/java/org/spongepowered/api/entity/living/golem/CopperGolem.java @@ -0,0 +1,53 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.entity.living.golem; + +import org.spongepowered.api.data.Keys; +import org.spongepowered.api.data.type.CopperOxidation; +import org.spongepowered.api.data.value.Value; + +public interface CopperGolem extends Golem { + + /** + * Gets the {@link Value.Mutable} value of the current {@link CopperOxidation} state + * for this golem. + * + * @return The mutable value, to set it back, use {@link #offer(Value)} + * @see Oxidation + */ + default Value.Mutable oxidation() { + return this.requireValue(Keys.COPPER_OXIDATION).asMutable(); + } + + /** + * Gets the {@link Value.Mutable} value of the current waxed state. + * + * @return The mutable value, to set it back, use {@link #offer(Value)} + * @see Waxing + */ + default Value.Mutable waxed() { + return this.requireValue(Keys.WAXED).asMutable(); + } +} diff --git a/src/main/java/org/spongepowered/api/item/ItemTypes.java b/src/main/java/org/spongepowered/api/item/ItemTypes.java index d39976f0b2..29cb2949b1 100644 --- a/src/main/java/org/spongepowered/api/item/ItemTypes.java +++ b/src/main/java/org/spongepowered/api/item/ItemTypes.java @@ -64,6 +64,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference ACACIA_SAPLING = ItemTypes.key(ResourceKey.minecraft("acacia_sapling")); + public static final DefaultedRegistryReference ACACIA_SHELF = ItemTypes.key(ResourceKey.minecraft("acacia_shelf")); + public static final DefaultedRegistryReference ACACIA_SIGN = ItemTypes.key(ResourceKey.minecraft("acacia_sign")); public static final DefaultedRegistryReference ACACIA_SLAB = ItemTypes.key(ResourceKey.minecraft("acacia_slab")); @@ -156,6 +158,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference BAMBOO_RAFT = ItemTypes.key(ResourceKey.minecraft("bamboo_raft")); + public static final DefaultedRegistryReference BAMBOO_SHELF = ItemTypes.key(ResourceKey.minecraft("bamboo_shelf")); + public static final DefaultedRegistryReference BAMBOO_SIGN = ItemTypes.key(ResourceKey.minecraft("bamboo_sign")); public static final DefaultedRegistryReference BAMBOO_SLAB = ItemTypes.key(ResourceKey.minecraft("bamboo_slab")); @@ -218,6 +222,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference BIRCH_SAPLING = ItemTypes.key(ResourceKey.minecraft("birch_sapling")); + public static final DefaultedRegistryReference BIRCH_SHELF = ItemTypes.key(ResourceKey.minecraft("birch_shelf")); + public static final DefaultedRegistryReference BIRCH_SIGN = ItemTypes.key(ResourceKey.minecraft("birch_sign")); public static final DefaultedRegistryReference BIRCH_SLAB = ItemTypes.key(ResourceKey.minecraft("birch_slab")); @@ -480,6 +486,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference CHERRY_SAPLING = ItemTypes.key(ResourceKey.minecraft("cherry_sapling")); + public static final DefaultedRegistryReference CHERRY_SHELF = ItemTypes.key(ResourceKey.minecraft("cherry_shelf")); + public static final DefaultedRegistryReference CHERRY_SIGN = ItemTypes.key(ResourceKey.minecraft("cherry_sign")); public static final DefaultedRegistryReference CHERRY_SLAB = ItemTypes.key(ResourceKey.minecraft("cherry_slab")); @@ -602,18 +610,54 @@ public final class ItemTypes { public static final DefaultedRegistryReference COOKIE = ItemTypes.key(ResourceKey.minecraft("cookie")); + public static final DefaultedRegistryReference COPPER_AXE = ItemTypes.key(ResourceKey.minecraft("copper_axe")); + + public static final DefaultedRegistryReference COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("copper_bars")); + public static final DefaultedRegistryReference COPPER_BLOCK = ItemTypes.key(ResourceKey.minecraft("copper_block")); + public static final DefaultedRegistryReference COPPER_BOOTS = ItemTypes.key(ResourceKey.minecraft("copper_boots")); + public static final DefaultedRegistryReference COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("copper_bulb")); + public static final DefaultedRegistryReference COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("copper_chain")); + + public static final DefaultedRegistryReference COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("copper_chest")); + + public static final DefaultedRegistryReference COPPER_CHESTPLATE = ItemTypes.key(ResourceKey.minecraft("copper_chestplate")); + public static final DefaultedRegistryReference COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("copper_door")); + public static final DefaultedRegistryReference COPPER_GOLEM_SPAWN_EGG = ItemTypes.key(ResourceKey.minecraft("copper_golem_spawn_egg")); + + public static final DefaultedRegistryReference COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("copper_golem_statue")); + public static final DefaultedRegistryReference COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("copper_grate")); + public static final DefaultedRegistryReference COPPER_HELMET = ItemTypes.key(ResourceKey.minecraft("copper_helmet")); + + public static final DefaultedRegistryReference COPPER_HOE = ItemTypes.key(ResourceKey.minecraft("copper_hoe")); + + public static final DefaultedRegistryReference COPPER_HORSE_ARMOR = ItemTypes.key(ResourceKey.minecraft("copper_horse_armor")); + public static final DefaultedRegistryReference COPPER_INGOT = ItemTypes.key(ResourceKey.minecraft("copper_ingot")); + public static final DefaultedRegistryReference COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("copper_lantern")); + + public static final DefaultedRegistryReference COPPER_LEGGINGS = ItemTypes.key(ResourceKey.minecraft("copper_leggings")); + + public static final DefaultedRegistryReference COPPER_NUGGET = ItemTypes.key(ResourceKey.minecraft("copper_nugget")); + public static final DefaultedRegistryReference COPPER_ORE = ItemTypes.key(ResourceKey.minecraft("copper_ore")); + public static final DefaultedRegistryReference COPPER_PICKAXE = ItemTypes.key(ResourceKey.minecraft("copper_pickaxe")); + + public static final DefaultedRegistryReference COPPER_SHOVEL = ItemTypes.key(ResourceKey.minecraft("copper_shovel")); + + public static final DefaultedRegistryReference COPPER_SWORD = ItemTypes.key(ResourceKey.minecraft("copper_sword")); + + public static final DefaultedRegistryReference COPPER_TORCH = ItemTypes.key(ResourceKey.minecraft("copper_torch")); + public static final DefaultedRegistryReference COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("copper_trapdoor")); public static final DefaultedRegistryReference CORNFLOWER = ItemTypes.key(ResourceKey.minecraft("cornflower")); @@ -666,6 +710,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference CRIMSON_ROOTS = ItemTypes.key(ResourceKey.minecraft("crimson_roots")); + public static final DefaultedRegistryReference CRIMSON_SHELF = ItemTypes.key(ResourceKey.minecraft("crimson_shelf")); + public static final DefaultedRegistryReference CRIMSON_SIGN = ItemTypes.key(ResourceKey.minecraft("crimson_sign")); public static final DefaultedRegistryReference CRIMSON_SLAB = ItemTypes.key(ResourceKey.minecraft("crimson_slab")); @@ -754,6 +800,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference DARK_OAK_SAPLING = ItemTypes.key(ResourceKey.minecraft("dark_oak_sapling")); + public static final DefaultedRegistryReference DARK_OAK_SHELF = ItemTypes.key(ResourceKey.minecraft("dark_oak_shelf")); + public static final DefaultedRegistryReference DARK_OAK_SIGN = ItemTypes.key(ResourceKey.minecraft("dark_oak_sign")); public static final DefaultedRegistryReference DARK_OAK_SLAB = ItemTypes.key(ResourceKey.minecraft("dark_oak_slab")); @@ -968,12 +1016,22 @@ public final class ItemTypes { public static final DefaultedRegistryReference EXPOSED_COPPER = ItemTypes.key(ResourceKey.minecraft("exposed_copper")); + public static final DefaultedRegistryReference EXPOSED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("exposed_copper_bars")); + public static final DefaultedRegistryReference EXPOSED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("exposed_copper_bulb")); + public static final DefaultedRegistryReference EXPOSED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("exposed_copper_chain")); + + public static final DefaultedRegistryReference EXPOSED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("exposed_copper_chest")); + public static final DefaultedRegistryReference EXPOSED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("exposed_copper_door")); + public static final DefaultedRegistryReference EXPOSED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("exposed_copper_golem_statue")); + public static final DefaultedRegistryReference EXPOSED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("exposed_copper_grate")); + public static final DefaultedRegistryReference EXPOSED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("exposed_copper_lantern")); + public static final DefaultedRegistryReference EXPOSED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("exposed_copper_trapdoor")); public static final DefaultedRegistryReference EXPOSED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("exposed_cut_copper")); @@ -982,6 +1040,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference EXPOSED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("exposed_cut_copper_stairs")); + public static final DefaultedRegistryReference EXPOSED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("exposed_lightning_rod")); + public static final DefaultedRegistryReference EYE_ARMOR_TRIM_SMITHING_TEMPLATE = ItemTypes.key(ResourceKey.minecraft("eye_armor_trim_smithing_template")); public static final DefaultedRegistryReference FARMLAND = ItemTypes.key(ResourceKey.minecraft("farmland")); @@ -1322,6 +1382,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference JUNGLE_SAPLING = ItemTypes.key(ResourceKey.minecraft("jungle_sapling")); + public static final DefaultedRegistryReference JUNGLE_SHELF = ItemTypes.key(ResourceKey.minecraft("jungle_shelf")); + public static final DefaultedRegistryReference JUNGLE_SIGN = ItemTypes.key(ResourceKey.minecraft("jungle_sign")); public static final DefaultedRegistryReference JUNGLE_SLAB = ItemTypes.key(ResourceKey.minecraft("jungle_slab")); @@ -1546,6 +1608,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference MANGROVE_ROOTS = ItemTypes.key(ResourceKey.minecraft("mangrove_roots")); + public static final DefaultedRegistryReference MANGROVE_SHELF = ItemTypes.key(ResourceKey.minecraft("mangrove_shelf")); + public static final DefaultedRegistryReference MANGROVE_SIGN = ItemTypes.key(ResourceKey.minecraft("mangrove_sign")); public static final DefaultedRegistryReference MANGROVE_SLAB = ItemTypes.key(ResourceKey.minecraft("mangrove_slab")); @@ -1744,6 +1808,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference OAK_SAPLING = ItemTypes.key(ResourceKey.minecraft("oak_sapling")); + public static final DefaultedRegistryReference OAK_SHELF = ItemTypes.key(ResourceKey.minecraft("oak_shelf")); + public static final DefaultedRegistryReference OAK_SIGN = ItemTypes.key(ResourceKey.minecraft("oak_sign")); public static final DefaultedRegistryReference OAK_SLAB = ItemTypes.key(ResourceKey.minecraft("oak_slab")); @@ -1806,12 +1872,22 @@ public final class ItemTypes { public static final DefaultedRegistryReference OXIDIZED_COPPER = ItemTypes.key(ResourceKey.minecraft("oxidized_copper")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_bars")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_bulb")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_chain")); + + public static final DefaultedRegistryReference OXIDIZED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_chest")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_door")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_golem_statue")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_grate")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_lantern")); + public static final DefaultedRegistryReference OXIDIZED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("oxidized_copper_trapdoor")); public static final DefaultedRegistryReference OXIDIZED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("oxidized_cut_copper")); @@ -1820,6 +1896,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference OXIDIZED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("oxidized_cut_copper_stairs")); + public static final DefaultedRegistryReference OXIDIZED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("oxidized_lightning_rod")); + public static final DefaultedRegistryReference PACKED_ICE = ItemTypes.key(ResourceKey.minecraft("packed_ice")); public static final DefaultedRegistryReference PACKED_MUD = ItemTypes.key(ResourceKey.minecraft("packed_mud")); @@ -1856,6 +1934,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference PALE_OAK_SAPLING = ItemTypes.key(ResourceKey.minecraft("pale_oak_sapling")); + public static final DefaultedRegistryReference PALE_OAK_SHELF = ItemTypes.key(ResourceKey.minecraft("pale_oak_shelf")); + public static final DefaultedRegistryReference PALE_OAK_SIGN = ItemTypes.key(ResourceKey.minecraft("pale_oak_sign")); public static final DefaultedRegistryReference PALE_OAK_SLAB = ItemTypes.key(ResourceKey.minecraft("pale_oak_slab")); @@ -2404,6 +2484,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference SPRUCE_SAPLING = ItemTypes.key(ResourceKey.minecraft("spruce_sapling")); + public static final DefaultedRegistryReference SPRUCE_SHELF = ItemTypes.key(ResourceKey.minecraft("spruce_shelf")); + public static final DefaultedRegistryReference SPRUCE_SIGN = ItemTypes.key(ResourceKey.minecraft("spruce_sign")); public static final DefaultedRegistryReference SPRUCE_SLAB = ItemTypes.key(ResourceKey.minecraft("spruce_slab")); @@ -2650,6 +2732,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference WARPED_ROOTS = ItemTypes.key(ResourceKey.minecraft("warped_roots")); + public static final DefaultedRegistryReference WARPED_SHELF = ItemTypes.key(ResourceKey.minecraft("warped_shelf")); + public static final DefaultedRegistryReference WARPED_SIGN = ItemTypes.key(ResourceKey.minecraft("warped_sign")); public static final DefaultedRegistryReference WARPED_SLAB = ItemTypes.key(ResourceKey.minecraft("warped_slab")); @@ -2666,14 +2750,24 @@ public final class ItemTypes { public static final DefaultedRegistryReference WAXED_CHISELED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_chiseled_copper")); + public static final DefaultedRegistryReference WAXED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("waxed_copper_bars")); + public static final DefaultedRegistryReference WAXED_COPPER_BLOCK = ItemTypes.key(ResourceKey.minecraft("waxed_copper_block")); public static final DefaultedRegistryReference WAXED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("waxed_copper_bulb")); + public static final DefaultedRegistryReference WAXED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("waxed_copper_chain")); + + public static final DefaultedRegistryReference WAXED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("waxed_copper_chest")); + public static final DefaultedRegistryReference WAXED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("waxed_copper_door")); + public static final DefaultedRegistryReference WAXED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("waxed_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("waxed_copper_grate")); + public static final DefaultedRegistryReference WAXED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("waxed_copper_lantern")); + public static final DefaultedRegistryReference WAXED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("waxed_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_cut_copper")); @@ -2686,12 +2780,22 @@ public final class ItemTypes { public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_bars")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_bulb")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_chain")); + + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_chest")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_door")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_grate")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_lantern")); + public static final DefaultedRegistryReference WAXED_EXPOSED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_EXPOSED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_cut_copper")); @@ -2700,16 +2804,30 @@ public final class ItemTypes { public static final DefaultedRegistryReference WAXED_EXPOSED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_EXPOSED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("waxed_exposed_lightning_rod")); + + public static final DefaultedRegistryReference WAXED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("waxed_lightning_rod")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_CHISELED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_chiseled_copper")); public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_bars")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_bulb")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_chain")); + + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_chest")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_door")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_grate")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_lantern")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_OXIDIZED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_cut_copper")); @@ -2718,16 +2836,28 @@ public final class ItemTypes { public static final DefaultedRegistryReference WAXED_OXIDIZED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_OXIDIZED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("waxed_oxidized_lightning_rod")); + public static final DefaultedRegistryReference WAXED_WEATHERED_CHISELED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_chiseled_copper")); public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_bars")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_bulb")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_chain")); + + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_chest")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_door")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_golem_statue")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_grate")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_lantern")); + public static final DefaultedRegistryReference WAXED_WEATHERED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_copper_trapdoor")); public static final DefaultedRegistryReference WAXED_WEATHERED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_cut_copper")); @@ -2736,18 +2866,30 @@ public final class ItemTypes { public static final DefaultedRegistryReference WAXED_WEATHERED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_cut_copper_stairs")); + public static final DefaultedRegistryReference WAXED_WEATHERED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("waxed_weathered_lightning_rod")); + public static final DefaultedRegistryReference WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE = ItemTypes.key(ResourceKey.minecraft("wayfinder_armor_trim_smithing_template")); public static final DefaultedRegistryReference WEATHERED_CHISELED_COPPER = ItemTypes.key(ResourceKey.minecraft("weathered_chiseled_copper")); public static final DefaultedRegistryReference WEATHERED_COPPER = ItemTypes.key(ResourceKey.minecraft("weathered_copper")); + public static final DefaultedRegistryReference WEATHERED_COPPER_BARS = ItemTypes.key(ResourceKey.minecraft("weathered_copper_bars")); + public static final DefaultedRegistryReference WEATHERED_COPPER_BULB = ItemTypes.key(ResourceKey.minecraft("weathered_copper_bulb")); + public static final DefaultedRegistryReference WEATHERED_COPPER_CHAIN = ItemTypes.key(ResourceKey.minecraft("weathered_copper_chain")); + + public static final DefaultedRegistryReference WEATHERED_COPPER_CHEST = ItemTypes.key(ResourceKey.minecraft("weathered_copper_chest")); + public static final DefaultedRegistryReference WEATHERED_COPPER_DOOR = ItemTypes.key(ResourceKey.minecraft("weathered_copper_door")); + public static final DefaultedRegistryReference WEATHERED_COPPER_GOLEM_STATUE = ItemTypes.key(ResourceKey.minecraft("weathered_copper_golem_statue")); + public static final DefaultedRegistryReference WEATHERED_COPPER_GRATE = ItemTypes.key(ResourceKey.minecraft("weathered_copper_grate")); + public static final DefaultedRegistryReference WEATHERED_COPPER_LANTERN = ItemTypes.key(ResourceKey.minecraft("weathered_copper_lantern")); + public static final DefaultedRegistryReference WEATHERED_COPPER_TRAPDOOR = ItemTypes.key(ResourceKey.minecraft("weathered_copper_trapdoor")); public static final DefaultedRegistryReference WEATHERED_CUT_COPPER = ItemTypes.key(ResourceKey.minecraft("weathered_cut_copper")); @@ -2756,6 +2898,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference WEATHERED_CUT_COPPER_STAIRS = ItemTypes.key(ResourceKey.minecraft("weathered_cut_copper_stairs")); + public static final DefaultedRegistryReference WEATHERED_LIGHTNING_ROD = ItemTypes.key(ResourceKey.minecraft("weathered_lightning_rod")); + public static final DefaultedRegistryReference WEEPING_VINES = ItemTypes.key(ResourceKey.minecraft("weeping_vines")); public static final DefaultedRegistryReference WET_SPONGE = ItemTypes.key(ResourceKey.minecraft("wet_sponge")); diff --git a/src/main/java/org/spongepowered/api/registry/RegistryTypes.java b/src/main/java/org/spongepowered/api/registry/RegistryTypes.java index 664f255b00..5670d9ac50 100644 --- a/src/main/java/org/spongepowered/api/registry/RegistryTypes.java +++ b/src/main/java/org/spongepowered/api/registry/RegistryTypes.java @@ -56,6 +56,8 @@ import org.spongepowered.api.data.type.ChestAttachmentType; import org.spongepowered.api.data.type.ChickenVariant; import org.spongepowered.api.data.type.ComparatorMode; +import org.spongepowered.api.data.type.CopperGolemPose; +import org.spongepowered.api.data.type.CopperOxidation; import org.spongepowered.api.data.type.CowVariant; import org.spongepowered.api.data.type.CreakingHeartState; import org.spongepowered.api.data.type.DoorHinge; @@ -88,6 +90,7 @@ import org.spongepowered.api.data.type.RailDirection; import org.spongepowered.api.data.type.SalmonSize; import org.spongepowered.api.data.type.SculkSensorState; +import org.spongepowered.api.data.type.SideChain; import org.spongepowered.api.data.type.SkinPart; import org.spongepowered.api.data.type.SlabPortion; import org.spongepowered.api.data.type.SpellType; @@ -347,6 +350,10 @@ public final class RegistryTypes { public static final DefaultedRegistryType COMPARATOR_MODE = RegistryTypes.spongeKeyInGame("comparator_mode"); + public static final DefaultedRegistryType COPPER_GOLEM_POSE = RegistryTypes.spongeKeyInGame("copper_golem_pose"); + + public static final DefaultedRegistryType COPPER_OXIDATION = RegistryTypes.spongeKeyInGame("copper_oxidation"); + public static final DefaultedRegistryType COW_VARIANT = RegistryTypes.minecraftKeyInServer("cow_variant"); public static final DefaultedRegistryType CREAKING_HEART_STATES = RegistryTypes.spongeKeyInGame("creaking_heart_state"); @@ -501,6 +508,8 @@ public final class RegistryTypes { public static final DefaultedRegistryType SCULK_SENSOR_STATE = RegistryTypes.spongeKeyInGame("sculk_sensor_state"); + public static final DefaultedRegistryType SIDE_CHAIN = RegistryTypes.spongeKeyInGame("side_chain"); + public static final DefaultedRegistryType SELECTOR_SORT_ALGORITHM = RegistryTypes.spongeKeyInGame("selector_sort_algorithm"); public static final DefaultedRegistryType SELECTOR_TYPE = RegistryTypes.spongeKeyInGame("selector_type"); diff --git a/src/main/java/org/spongepowered/api/state/EnumStateProperties.java b/src/main/java/org/spongepowered/api/state/EnumStateProperties.java index 60b74b0713..43ee145ad3 100644 --- a/src/main/java/org/spongepowered/api/state/EnumStateProperties.java +++ b/src/main/java/org/spongepowered/api/state/EnumStateProperties.java @@ -29,6 +29,7 @@ import org.spongepowered.api.data.type.BellAttachmentType; import org.spongepowered.api.data.type.ChestAttachmentType; import org.spongepowered.api.data.type.ComparatorMode; +import org.spongepowered.api.data.type.CopperGolemPose; import org.spongepowered.api.data.type.CreakingHeartState; import org.spongepowered.api.data.type.DoorHinge; import org.spongepowered.api.data.type.DripstoneSegment; @@ -38,6 +39,7 @@ import org.spongepowered.api.data.type.PortionType; import org.spongepowered.api.data.type.RailDirection; import org.spongepowered.api.data.type.SculkSensorState; +import org.spongepowered.api.data.type.SideChain; import org.spongepowered.api.data.type.SlabPortion; import org.spongepowered.api.data.type.StairShape; import org.spongepowered.api.data.type.StructureMode; @@ -83,6 +85,10 @@ public static EnumStateProperty property_CHEST_TYPE() { return EnumStateProperty.of("CHEST_TYPE"); } + public static EnumStateProperty property_COPPER_GOLEM_POSE() { + return EnumStateProperty.of("COPPER_GOLEM_POSE"); + } + public static EnumStateProperty property_CREAKING_HEART_STATE() { return EnumStateProperty.of("CREAKING_HEART_STATE"); } @@ -163,6 +169,10 @@ public static EnumStateProperty property_SCULK_SENSOR_PHASE() return EnumStateProperty.of("SCULK_SENSOR_PHASE"); } + public static EnumStateProperty property_SIDE_CHAIN_PART() { + return EnumStateProperty.of("SIDE_CHAIN_PART"); + } + public static EnumStateProperty property_SLAB_TYPE() { return EnumStateProperty.of("SLAB_TYPE"); } diff --git a/src/main/java/org/spongepowered/api/tag/BlockTypeTags.java b/src/main/java/org/spongepowered/api/tag/BlockTypeTags.java index e15876813b..68e6ff49c9 100644 --- a/src/main/java/org/spongepowered/api/tag/BlockTypeTags.java +++ b/src/main/java/org/spongepowered/api/tag/BlockTypeTags.java @@ -67,6 +67,8 @@ public final class BlockTypeTags { public static final DefaultedTag BANNERS = BlockTypeTags.key(ResourceKey.minecraft("banners")); + public static final DefaultedTag BARS = BlockTypeTags.key(ResourceKey.minecraft("bars")); + public static final DefaultedTag BASE_STONE_NETHER = BlockTypeTags.key(ResourceKey.minecraft("base_stone_nether")); public static final DefaultedTag BASE_STONE_OVERWORLD = BlockTypeTags.key(ResourceKey.minecraft("base_stone_overworld")); @@ -107,6 +109,8 @@ public final class BlockTypeTags { public static final DefaultedTag CEILING_HANGING_SIGNS = BlockTypeTags.key(ResourceKey.minecraft("ceiling_hanging_signs")); + public static final DefaultedTag CHAINS = BlockTypeTags.key(ResourceKey.minecraft("chains")); + public static final DefaultedTag CHERRY_LOGS = BlockTypeTags.key(ResourceKey.minecraft("cherry_logs")); public static final DefaultedTag CLIMBABLE = BlockTypeTags.key(ResourceKey.minecraft("climbable")); @@ -121,6 +125,12 @@ public final class BlockTypeTags { public static final DefaultedTag CONVERTABLE_TO_MUD = BlockTypeTags.key(ResourceKey.minecraft("convertable_to_mud")); + public static final DefaultedTag COPPER = BlockTypeTags.key(ResourceKey.minecraft("copper")); + + public static final DefaultedTag COPPER_CHESTS = BlockTypeTags.key(ResourceKey.minecraft("copper_chests")); + + public static final DefaultedTag COPPER_GOLEM_STATUES = BlockTypeTags.key(ResourceKey.minecraft("copper_golem_statues")); + public static final DefaultedTag COPPER_ORES = BlockTypeTags.key(ResourceKey.minecraft("copper_ores")); public static final DefaultedTag CORAL_BLOCKS = BlockTypeTags.key(ResourceKey.minecraft("coral_blocks")); @@ -203,6 +213,8 @@ public final class BlockTypeTags { public static final DefaultedTag IMPERMEABLE = BlockTypeTags.key(ResourceKey.minecraft("impermeable")); + public static final DefaultedTag INCORRECT_FOR_COPPER_TOOL = BlockTypeTags.key(ResourceKey.minecraft("incorrect_for_copper_tool")); + public static final DefaultedTag INCORRECT_FOR_DIAMOND_TOOL = BlockTypeTags.key(ResourceKey.minecraft("incorrect_for_diamond_tool")); public static final DefaultedTag INCORRECT_FOR_GOLD_TOOL = BlockTypeTags.key(ResourceKey.minecraft("incorrect_for_gold_tool")); @@ -229,12 +241,16 @@ public final class BlockTypeTags { public static final DefaultedTag JUNGLE_LOGS = BlockTypeTags.key(ResourceKey.minecraft("jungle_logs")); + public static final DefaultedTag LANTERNS = BlockTypeTags.key(ResourceKey.minecraft("lanterns")); + public static final DefaultedTag LAPIS_ORES = BlockTypeTags.key(ResourceKey.minecraft("lapis_ores")); public static final DefaultedTag LAVA_POOL_STONE_CANNOT_REPLACE = BlockTypeTags.key(ResourceKey.minecraft("lava_pool_stone_cannot_replace")); public static final DefaultedTag LEAVES = BlockTypeTags.key(ResourceKey.minecraft("leaves")); + public static final DefaultedTag LIGHTNING_RODS = BlockTypeTags.key(ResourceKey.minecraft("lightning_rods")); + public static final DefaultedTag LOGS = BlockTypeTags.key(ResourceKey.minecraft("logs")); public static final DefaultedTag LOGS_THAT_BURN = BlockTypeTags.key(ResourceKey.minecraft("logs_that_burn")); @@ -415,6 +431,8 @@ public final class BlockTypeTags { public static final DefaultedTag WOODEN_PRESSURE_PLATES = BlockTypeTags.key(ResourceKey.minecraft("wooden_pressure_plates")); + public static final DefaultedTag WOODEN_SHELVES = BlockTypeTags.key(ResourceKey.minecraft("wooden_shelves")); + public static final DefaultedTag WOODEN_SLABS = BlockTypeTags.key(ResourceKey.minecraft("wooden_slabs")); public static final DefaultedTag WOODEN_STAIRS = BlockTypeTags.key(ResourceKey.minecraft("wooden_stairs")); diff --git a/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java b/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java index 107b7e7126..0479b8c050 100644 --- a/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java +++ b/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java @@ -53,6 +53,8 @@ public final class ItemTypeTags { public static final DefaultedTag BANNERS = ItemTypeTags.key(ResourceKey.minecraft("banners")); + public static final DefaultedTag BARS = ItemTypeTags.key(ResourceKey.minecraft("bars")); + public static final DefaultedTag BEACON_PAYMENT_ITEMS = ItemTypeTags.key(ResourceKey.minecraft("beacon_payment_items")); public static final DefaultedTag BEDS = ItemTypeTags.key(ResourceKey.minecraft("beds")); @@ -81,6 +83,8 @@ public final class ItemTypeTags { public static final DefaultedTag CAT_FOOD = ItemTypeTags.key(ResourceKey.minecraft("cat_food")); + public static final DefaultedTag CHAINS = ItemTypeTags.key(ResourceKey.minecraft("chains")); + public static final DefaultedTag CHERRY_LOGS = ItemTypeTags.key(ResourceKey.minecraft("cherry_logs")); public static final DefaultedTag CHEST_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("chest_armor")); @@ -99,8 +103,16 @@ public final class ItemTypeTags { public static final DefaultedTag COMPLETES_FIND_TREE_TUTORIAL = ItemTypeTags.key(ResourceKey.minecraft("completes_find_tree_tutorial")); + public static final DefaultedTag COPPER = ItemTypeTags.key(ResourceKey.minecraft("copper")); + + public static final DefaultedTag COPPER_CHESTS = ItemTypeTags.key(ResourceKey.minecraft("copper_chests")); + + public static final DefaultedTag COPPER_GOLEM_STATUES = ItemTypeTags.key(ResourceKey.minecraft("copper_golem_statues")); + public static final DefaultedTag COPPER_ORES = ItemTypeTags.key(ResourceKey.minecraft("copper_ores")); + public static final DefaultedTag COPPER_TOOL_MATERIALS = ItemTypeTags.key(ResourceKey.minecraft("copper_tool_materials")); + public static final DefaultedTag COW_FOOD = ItemTypeTags.key(ResourceKey.minecraft("cow_food")); public static final DefaultedTag CREEPER_DROP_MUSIC_DISCS = ItemTypeTags.key(ResourceKey.minecraft("creeper_drop_music_discs")); @@ -225,6 +237,8 @@ public final class ItemTypeTags { public static final DefaultedTag JUNGLE_LOGS = ItemTypeTags.key(ResourceKey.minecraft("jungle_logs")); + public static final DefaultedTag LANTERNS = ItemTypeTags.key(ResourceKey.minecraft("lanterns")); + public static final DefaultedTag LAPIS_ORES = ItemTypeTags.key(ResourceKey.minecraft("lapis_ores")); public static final DefaultedTag LEAVES = ItemTypeTags.key(ResourceKey.minecraft("leaves")); @@ -233,6 +247,8 @@ public final class ItemTypeTags { public static final DefaultedTag LEG_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("leg_armor")); + public static final DefaultedTag LIGHTNING_RODS = ItemTypeTags.key(ResourceKey.minecraft("lightning_rods")); + public static final DefaultedTag LLAMA_FOOD = ItemTypeTags.key(ResourceKey.minecraft("llama_food")); public static final DefaultedTag LLAMA_TEMPT_ITEMS = ItemTypeTags.key(ResourceKey.minecraft("llama_tempt_items")); @@ -293,6 +309,8 @@ public final class ItemTypeTags { public static final DefaultedTag REPAIRS_CHAIN_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("repairs_chain_armor")); + public static final DefaultedTag REPAIRS_COPPER_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("repairs_copper_armor")); + public static final DefaultedTag REPAIRS_DIAMOND_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("repairs_diamond_armor")); public static final DefaultedTag REPAIRS_GOLD_ARMOR = ItemTypeTags.key(ResourceKey.minecraft("repairs_gold_armor")); @@ -383,6 +401,8 @@ public final class ItemTypeTags { public static final DefaultedTag WOODEN_PRESSURE_PLATES = ItemTypeTags.key(ResourceKey.minecraft("wooden_pressure_plates")); + public static final DefaultedTag WOODEN_SHELVES = ItemTypeTags.key(ResourceKey.minecraft("wooden_shelves")); + public static final DefaultedTag WOODEN_SLABS = ItemTypeTags.key(ResourceKey.minecraft("wooden_slabs")); public static final DefaultedTag WOODEN_STAIRS = ItemTypeTags.key(ResourceKey.minecraft("wooden_stairs")); diff --git a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java index 3a41dda626..1be8d71673 100644 --- a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java +++ b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java @@ -138,8 +138,6 @@ public final class GameRules { public static final DefaultedRegistryReference> SNOW_ACCUMULATION_HEIGHT = GameRules.key(ResourceKey.sponge("snow_accumulation_height")); - public static final DefaultedRegistryReference> SPAWN_CHUNK_RADIUS = GameRules.key(ResourceKey.sponge("spawn_chunk_radius")); - public static final DefaultedRegistryReference> SPAWN_RADIUS = GameRules.key(ResourceKey.sponge("spawn_radius")); public static final DefaultedRegistryReference> SPECTATORS_GENERATE_CHUNKS = GameRules.key(ResourceKey.sponge("spectators_generate_chunks")); From 6252dce257b18be1897b5c07d946ff2886fbf79b Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 1 Sep 2025 14:22:16 -0700 Subject: [PATCH 2/8] chore(minecraft): implementation breakages of 25w32a Breaking Change: - Removed Spawn Chunk Radius gamerule - Removed jagged noise generation configuration See: https://minecraft.wiki/w/Java_Edition_25w32a --- .../api/world/generation/config/noise/NoiseRouter.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/org/spongepowered/api/world/generation/config/noise/NoiseRouter.java b/src/main/java/org/spongepowered/api/world/generation/config/noise/NoiseRouter.java index 0485140998..39b11da089 100644 --- a/src/main/java/org/spongepowered/api/world/generation/config/noise/NoiseRouter.java +++ b/src/main/java/org/spongepowered/api/world/generation/config/noise/NoiseRouter.java @@ -100,13 +100,6 @@ public interface NoiseRouter { */ DensityFunction ridges(); - /** - * Returns the density function for initialDensityWithoutJaggedness - * - * @return The density function - */ - DensityFunction initialDensityWithoutJaggedness(); - /** * Returns the density function for finalDensity * From b121463d867d4d0d65b04d77da285fca6beecd37 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 1 Sep 2025 18:02:24 -0700 Subject: [PATCH 3/8] chore(minecraft): update to 25w33a Notes: - Adding new entries, and renaming entries added in previous snapshots See: https://minecraft.wiki/w/Java_Edition_25w33a --- .../api/data/BlockStateKeys.java | 26 +++++----- .../api/effect/sound/SoundTypes.java | 4 ++ .../api/entity/display/ItemDisplayTypes.java | 2 + .../api/state/BooleanStateProperties.java | 52 ++++++++++--------- .../spongepowered/api/tag/EntityTypeTags.java | 6 +++ .../spongepowered/api/tag/ItemTypeTags.java | 2 + 6 files changed, 56 insertions(+), 36 deletions(-) diff --git a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java index 3ac8b67c67..7672af86b3 100644 --- a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java +++ b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java @@ -76,6 +76,8 @@ public final class BlockStateKeys { public static final Key> AGE_7 = BlockStateKeys.key(ResourceKey.minecraft("property/age"), Integer.class); + public static final Key> ALIGN_ITEMS_TO_BOTTOM = BlockStateKeys.key(ResourceKey.minecraft("property/align_items_to_bottom"), Boolean.class); + public static final Key> ATTACHED = BlockStateKeys.key(ResourceKey.minecraft("property/attached"), Boolean.class); public static final Key> ATTACH_FACE = BlockStateKeys.key(ResourceKey.minecraft("property/face"), AttachmentSurface.class); @@ -102,18 +104,6 @@ public final class BlockStateKeys { public static final Key> CHEST_TYPE = BlockStateKeys.key(ResourceKey.minecraft("property/type"), ChestAttachmentType.class); - public static final Key> CHISELED_BOOKSHELF_SLOT_0_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_0_occupied"), Boolean.class); - - public static final Key> CHISELED_BOOKSHELF_SLOT_1_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_1_occupied"), Boolean.class); - - public static final Key> CHISELED_BOOKSHELF_SLOT_2_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_2_occupied"), Boolean.class); - - public static final Key> CHISELED_BOOKSHELF_SLOT_3_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_3_occupied"), Boolean.class); - - public static final Key> CHISELED_BOOKSHELF_SLOT_4_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_4_occupied"), Boolean.class); - - public static final Key> CHISELED_BOOKSHELF_SLOT_5_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_5_occupied"), Boolean.class); - public static final Key> CONDITIONAL = BlockStateKeys.key(ResourceKey.minecraft("property/conditional"), Boolean.class); public static final Key> COPPER_GOLEM_POSE = BlockStateKeys.key(ResourceKey.minecraft("property/copper_golem_pose"), CopperGolemPose.class); @@ -264,6 +254,18 @@ public final class BlockStateKeys { public static final Key> SLAB_TYPE = BlockStateKeys.key(ResourceKey.minecraft("property/type"), SlabPortion.class); + public static final Key> SLOT_0_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_0_occupied"), Boolean.class); + + public static final Key> SLOT_1_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_1_occupied"), Boolean.class); + + public static final Key> SLOT_2_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_2_occupied"), Boolean.class); + + public static final Key> SLOT_3_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_3_occupied"), Boolean.class); + + public static final Key> SLOT_4_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_4_occupied"), Boolean.class); + + public static final Key> SLOT_5_OCCUPIED = BlockStateKeys.key(ResourceKey.minecraft("property/slot_5_occupied"), Boolean.class); + public static final Key> SNOWY = BlockStateKeys.key(ResourceKey.minecraft("property/snowy"), Boolean.class); public static final Key> SOUTH = BlockStateKeys.key(ResourceKey.minecraft("property/south"), Boolean.class); diff --git a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java index 5d7eee1a5c..ee78e673fe 100644 --- a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java +++ b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java @@ -1906,6 +1906,8 @@ public final class SoundTypes { public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_OXIDIZED_STEP = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem_oxidized.step")); + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_SHEAR = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.shear")); + public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_SPAWN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.spawn")); public static final DefaultedRegistryReference ENTITY_COPPER_GOLEM_SPIN = SoundTypes.key(ResourceKey.minecraft("entity.copper_golem.spin")); @@ -3572,6 +3574,8 @@ public final class SoundTypes { public static final DefaultedRegistryReference UI_TOAST_OUT = SoundTypes.key(ResourceKey.minecraft("ui.toast.out")); + public static final DefaultedRegistryReference WEATHER_END_FLASH = SoundTypes.key(ResourceKey.minecraft("weather.end_flash")); + public static final DefaultedRegistryReference WEATHER_RAIN = SoundTypes.key(ResourceKey.minecraft("weather.rain")); public static final DefaultedRegistryReference WEATHER_RAIN_ABOVE = SoundTypes.key(ResourceKey.minecraft("weather.rain.above")); diff --git a/src/main/java/org/spongepowered/api/entity/display/ItemDisplayTypes.java b/src/main/java/org/spongepowered/api/entity/display/ItemDisplayTypes.java index ba0f680a0a..be8222a761 100644 --- a/src/main/java/org/spongepowered/api/entity/display/ItemDisplayTypes.java +++ b/src/main/java/org/spongepowered/api/entity/display/ItemDisplayTypes.java @@ -54,6 +54,8 @@ public final class ItemDisplayTypes { public static final DefaultedRegistryReference NONE = ItemDisplayTypes.key(ResourceKey.sponge("none")); + public static final DefaultedRegistryReference ON_SHELF = ItemDisplayTypes.key(ResourceKey.sponge("on_shelf")); + public static final DefaultedRegistryReference THIRDPERSON_LEFTHAND = ItemDisplayTypes.key(ResourceKey.sponge("thirdperson_lefthand")); public static final DefaultedRegistryReference THIRDPERSON_RIGHTHAND = ItemDisplayTypes.key(ResourceKey.sponge("thirdperson_righthand")); diff --git a/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java b/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java index ddf6732ebb..57fc6ba2e2 100644 --- a/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java +++ b/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java @@ -33,6 +33,10 @@ public final class BooleanStateProperties { private BooleanStateProperties() { } + public static BooleanStateProperty property_ALIGN_ITEMS_TO_BOTTOM() { + return BooleanStateProperty.of("ALIGN_ITEMS_TO_BOTTOM"); + } + public static BooleanStateProperty property_ATTACHED() { return BooleanStateProperty.of("ATTACHED"); } @@ -53,30 +57,6 @@ public static BooleanStateProperty property_CAN_SUMMON() { return BooleanStateProperty.of("CAN_SUMMON"); } - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_0_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_0_OCCUPIED"); - } - - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_1_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_1_OCCUPIED"); - } - - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_2_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_2_OCCUPIED"); - } - - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_3_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_3_OCCUPIED"); - } - - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_4_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_4_OCCUPIED"); - } - - public static BooleanStateProperty property_CHISELED_BOOKSHELF_SLOT_5_OCCUPIED() { - return BooleanStateProperty.of("CHISELED_BOOKSHELF_SLOT_5_OCCUPIED"); - } - public static BooleanStateProperty property_CONDITIONAL() { return BooleanStateProperty.of("CONDITIONAL"); } @@ -197,6 +177,30 @@ public static BooleanStateProperty property_SIGNAL_FIRE() { return BooleanStateProperty.of("SIGNAL_FIRE"); } + public static BooleanStateProperty property_SLOT_0_OCCUPIED() { + return BooleanStateProperty.of("SLOT_0_OCCUPIED"); + } + + public static BooleanStateProperty property_SLOT_1_OCCUPIED() { + return BooleanStateProperty.of("SLOT_1_OCCUPIED"); + } + + public static BooleanStateProperty property_SLOT_2_OCCUPIED() { + return BooleanStateProperty.of("SLOT_2_OCCUPIED"); + } + + public static BooleanStateProperty property_SLOT_3_OCCUPIED() { + return BooleanStateProperty.of("SLOT_3_OCCUPIED"); + } + + public static BooleanStateProperty property_SLOT_4_OCCUPIED() { + return BooleanStateProperty.of("SLOT_4_OCCUPIED"); + } + + public static BooleanStateProperty property_SLOT_5_OCCUPIED() { + return BooleanStateProperty.of("SLOT_5_OCCUPIED"); + } + public static BooleanStateProperty property_SNOWY() { return BooleanStateProperty.of("SNOWY"); } diff --git a/src/main/java/org/spongepowered/api/tag/EntityTypeTags.java b/src/main/java/org/spongepowered/api/tag/EntityTypeTags.java index d185a84af6..d34ade57cb 100644 --- a/src/main/java/org/spongepowered/api/tag/EntityTypeTags.java +++ b/src/main/java/org/spongepowered/api/tag/EntityTypeTags.java @@ -37,6 +37,8 @@ @RegistryScopes(scopes = RegistryScope.GAME) public final class EntityTypeTags { + public static final DefaultedTag> ACCEPTS_IRON_GOLEM_GIFT = EntityTypeTags.key(ResourceKey.minecraft("accepts_iron_golem_gift")); + public static final DefaultedTag> AQUATIC = EntityTypeTags.key(ResourceKey.minecraft("aquatic")); public static final DefaultedTag> ARROWS = EntityTypeTags.key(ResourceKey.minecraft("arrows")); @@ -61,6 +63,10 @@ public final class EntityTypeTags { public static final DefaultedTag> CAN_WEAR_HORSE_ARMOR = EntityTypeTags.key(ResourceKey.minecraft("can_wear_horse_armor")); + public static final DefaultedTag> CANDIDATE_FOR_IRON_GOLEM_GIFT = EntityTypeTags.key(ResourceKey.minecraft("candidate_for_iron_golem_gift")); + + public static final DefaultedTag> CANNOT_BE_PUSHED_ONTO_BOATS = EntityTypeTags.key(ResourceKey.minecraft("cannot_be_pushed_onto_boats")); + public static final DefaultedTag> DEFLECTS_PROJECTILES = EntityTypeTags.key(ResourceKey.minecraft("deflects_projectiles")); public static final DefaultedTag> DISMOUNTS_UNDERWATER = EntityTypeTags.key(ResourceKey.minecraft("dismounts_underwater")); diff --git a/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java b/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java index 0479b8c050..a8ee29f4af 100644 --- a/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java +++ b/src/main/java/org/spongepowered/api/tag/ItemTypeTags.java @@ -329,6 +329,8 @@ public final class ItemTypeTags { public static final DefaultedTag SAPLINGS = ItemTypeTags.key(ResourceKey.minecraft("saplings")); + public static final DefaultedTag SHEARABLE_FROM_COPPER_GOLEM = ItemTypeTags.key(ResourceKey.minecraft("shearable_from_copper_golem")); + public static final DefaultedTag SHEEP_FOOD = ItemTypeTags.key(ResourceKey.minecraft("sheep_food")); public static final DefaultedTag SHOVELS = ItemTypeTags.key(ResourceKey.minecraft("shovels")); From e11889e9800cc3fdb0d4ab0dc7ec1e7b3fc109e2 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 1 Sep 2025 19:11:46 -0700 Subject: [PATCH 4/8] chore(minecraft): update to 25w34a Changes: - property name changes See: https://minecraft.wiki/w/Java_Edition_25w34a --- src/main/java/org/spongepowered/api/data/BlockStateKeys.java | 2 -- .../org/spongepowered/api/state/BooleanStateProperties.java | 4 ---- 2 files changed, 6 deletions(-) diff --git a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java index 7672af86b3..576f616b83 100644 --- a/src/main/java/org/spongepowered/api/data/BlockStateKeys.java +++ b/src/main/java/org/spongepowered/api/data/BlockStateKeys.java @@ -76,8 +76,6 @@ public final class BlockStateKeys { public static final Key> AGE_7 = BlockStateKeys.key(ResourceKey.minecraft("property/age"), Integer.class); - public static final Key> ALIGN_ITEMS_TO_BOTTOM = BlockStateKeys.key(ResourceKey.minecraft("property/align_items_to_bottom"), Boolean.class); - public static final Key> ATTACHED = BlockStateKeys.key(ResourceKey.minecraft("property/attached"), Boolean.class); public static final Key> ATTACH_FACE = BlockStateKeys.key(ResourceKey.minecraft("property/face"), AttachmentSurface.class); diff --git a/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java b/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java index 57fc6ba2e2..acd3d6bf50 100644 --- a/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java +++ b/src/main/java/org/spongepowered/api/state/BooleanStateProperties.java @@ -33,10 +33,6 @@ public final class BooleanStateProperties { private BooleanStateProperties() { } - public static BooleanStateProperty property_ALIGN_ITEMS_TO_BOTTOM() { - return BooleanStateProperty.of("ALIGN_ITEMS_TO_BOTTOM"); - } - public static BooleanStateProperty property_ATTACHED() { return BooleanStateProperty.of("ATTACHED"); } From 687ece5fafacbdb7f669c0b1118144279e4c760b Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Mon, 1 Sep 2025 19:19:24 -0700 Subject: [PATCH 5/8] chore(minecraft): update to 25w35a Additions: - Add formerly server properties as game rules Breaking Change: - Rename CHAIN to IRON_CHAIN See: https://minecraft.wiki/w/Java_Edition_25w35a --- src/main/java/org/spongepowered/api/block/BlockTypes.java | 4 ++-- .../org/spongepowered/api/effect/sound/SoundTypes.java | 2 ++ src/main/java/org/spongepowered/api/item/ItemTypes.java | 4 ++-- .../org/spongepowered/api/world/gamerule/GameRules.java | 8 ++++++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/spongepowered/api/block/BlockTypes.java b/src/main/java/org/spongepowered/api/block/BlockTypes.java index f55bbdc2fd..fd90f9528a 100644 --- a/src/main/java/org/spongepowered/api/block/BlockTypes.java +++ b/src/main/java/org/spongepowered/api/block/BlockTypes.java @@ -374,8 +374,6 @@ public final class BlockTypes { public static final DefaultedRegistryReference CAVE_VINES_PLANT = BlockTypes.key(ResourceKey.minecraft("cave_vines_plant")); - public static final DefaultedRegistryReference CHAIN = BlockTypes.key(ResourceKey.minecraft("chain")); - public static final DefaultedRegistryReference CHAIN_COMMAND_BLOCK = BlockTypes.key(ResourceKey.minecraft("chain_command_block")); public static final DefaultedRegistryReference CHERRY_BUTTON = BlockTypes.key(ResourceKey.minecraft("cherry_button")); @@ -986,6 +984,8 @@ public final class BlockTypes { public static final DefaultedRegistryReference IRON_BLOCK = BlockTypes.key(ResourceKey.minecraft("iron_block")); + public static final DefaultedRegistryReference IRON_CHAIN = BlockTypes.key(ResourceKey.minecraft("iron_chain")); + public static final DefaultedRegistryReference IRON_DOOR = BlockTypes.key(ResourceKey.minecraft("iron_door")); public static final DefaultedRegistryReference IRON_ORE = BlockTypes.key(ResourceKey.minecraft("iron_ore")); diff --git a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java index ee78e673fe..6c694bac1e 100644 --- a/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java +++ b/src/main/java/org/spongepowered/api/effect/sound/SoundTypes.java @@ -1340,6 +1340,8 @@ public final class SoundTypes { public static final DefaultedRegistryReference BLOCK_SHELF_STEP = SoundTypes.key(ResourceKey.minecraft("block.shelf.step")); + public static final DefaultedRegistryReference BLOCK_SHELF_TAKE_ITEM = SoundTypes.key(ResourceKey.minecraft("block.shelf.take_item")); + public static final DefaultedRegistryReference BLOCK_SHROOMLIGHT_BREAK = SoundTypes.key(ResourceKey.minecraft("block.shroomlight.break")); public static final DefaultedRegistryReference BLOCK_SHROOMLIGHT_FALL = SoundTypes.key(ResourceKey.minecraft("block.shroomlight.fall")); diff --git a/src/main/java/org/spongepowered/api/item/ItemTypes.java b/src/main/java/org/spongepowered/api/item/ItemTypes.java index 29cb2949b1..621aa7c678 100644 --- a/src/main/java/org/spongepowered/api/item/ItemTypes.java +++ b/src/main/java/org/spongepowered/api/item/ItemTypes.java @@ -448,8 +448,6 @@ public final class ItemTypes { public static final DefaultedRegistryReference CAVE_SPIDER_SPAWN_EGG = ItemTypes.key(ResourceKey.minecraft("cave_spider_spawn_egg")); - public static final DefaultedRegistryReference CHAIN = ItemTypes.key(ResourceKey.minecraft("chain")); - public static final DefaultedRegistryReference CHAINMAIL_BOOTS = ItemTypes.key(ResourceKey.minecraft("chainmail_boots")); public static final DefaultedRegistryReference CHAINMAIL_CHESTPLATE = ItemTypes.key(ResourceKey.minecraft("chainmail_chestplate")); @@ -1322,6 +1320,8 @@ public final class ItemTypes { public static final DefaultedRegistryReference IRON_BOOTS = ItemTypes.key(ResourceKey.minecraft("iron_boots")); + public static final DefaultedRegistryReference IRON_CHAIN = ItemTypes.key(ResourceKey.minecraft("iron_chain")); + public static final DefaultedRegistryReference IRON_CHESTPLATE = ItemTypes.key(ResourceKey.minecraft("iron_chestplate")); public static final DefaultedRegistryReference IRON_DOOR = ItemTypes.key(ResourceKey.minecraft("iron_door")); diff --git a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java index 1be8d71673..053e81a0f1 100644 --- a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java +++ b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java @@ -40,6 +40,8 @@ @RegistryScopes(scopes = RegistryScope.GAME) public final class GameRules { + public static final DefaultedRegistryReference> ALLOW_ENTERING_NETHER_USING_PORTALS = GameRules.key(ResourceKey.sponge("allow_entering_nether_using_portals")); + public static final DefaultedRegistryReference> ALLOW_FIRE_TICKS_AWAY_FROM_PLAYER = GameRules.key(ResourceKey.sponge("allow_fire_ticks_away_from_player")); public static final DefaultedRegistryReference> ANNOUNCE_ADVANCEMENTS = GameRules.key(ResourceKey.sponge("announce_advancements")); @@ -86,6 +88,8 @@ public final class GameRules { public static final DefaultedRegistryReference> DROWNING_DAMAGE = GameRules.key(ResourceKey.sponge("drowning_damage")); + public static final DefaultedRegistryReference> ENABLE_COMMAND_BLOCKS = GameRules.key(ResourceKey.sponge("enable_command_blocks")); + public static final DefaultedRegistryReference> ENDER_PEARLS_VANISH_ON_DEATH = GameRules.key(ResourceKey.sponge("ender_pearls_vanish_on_death")); public static final DefaultedRegistryReference> FALL_DAMAGE = GameRules.key(ResourceKey.sponge("fall_damage")); @@ -128,6 +132,8 @@ public final class GameRules { public static final DefaultedRegistryReference> PROJECTILES_CAN_BREAK_BLOCKS = GameRules.key(ResourceKey.sponge("projectiles_can_break_blocks")); + public static final DefaultedRegistryReference> PVP = GameRules.key(ResourceKey.sponge("pvp")); + public static final DefaultedRegistryReference> RANDOM_TICK_SPEED = GameRules.key(ResourceKey.sponge("random_tick_speed")); public static final DefaultedRegistryReference> REDUCED_DEBUG_INFO = GameRules.key(ResourceKey.sponge("reduced_debug_info")); @@ -138,6 +144,8 @@ public final class GameRules { public static final DefaultedRegistryReference> SNOW_ACCUMULATION_HEIGHT = GameRules.key(ResourceKey.sponge("snow_accumulation_height")); + public static final DefaultedRegistryReference> SPAWN_MONSTERS = GameRules.key(ResourceKey.sponge("spawn_monsters")); + public static final DefaultedRegistryReference> SPAWN_RADIUS = GameRules.key(ResourceKey.sponge("spawn_radius")); public static final DefaultedRegistryReference> SPECTATORS_GENERATE_CHUNKS = GameRules.key(ResourceKey.sponge("spectators_generate_chunks")); From 9e38f062da88ff1e866393c569392fb5d9ed54b1 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Thu, 4 Sep 2025 23:58:17 -0700 Subject: [PATCH 6/8] feat(minecraft): update to 25w36b Additions: - Added Mannequin entity representation See: https://minecraft.wiki/w/Java_Edition_25w36a See: https://minecraft.wiki/w/Java_Edition_25w36b --- .../spongepowered/api/entity/EntityTypes.java | 2 + .../spongepowered/api/entity/Mannequin.java | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 src/main/java/org/spongepowered/api/entity/Mannequin.java diff --git a/src/main/java/org/spongepowered/api/entity/EntityTypes.java b/src/main/java/org/spongepowered/api/entity/EntityTypes.java index 0e67d03811..6c629b4776 100644 --- a/src/main/java/org/spongepowered/api/entity/EntityTypes.java +++ b/src/main/java/org/spongepowered/api/entity/EntityTypes.java @@ -338,6 +338,8 @@ public final class EntityTypes { public static final DefaultedRegistryReference> MANGROVE_CHEST_BOAT = EntityTypes.key(ResourceKey.minecraft("mangrove_chest_boat")); + public static final DefaultedRegistryReference> MANNEQUIN = EntityTypes.key(ResourceKey.minecraft("mannequin")); + public static final DefaultedRegistryReference> MARKER = EntityTypes.key(ResourceKey.minecraft("marker")); public static final DefaultedRegistryReference> MINECART = EntityTypes.key(ResourceKey.minecraft("minecart")); diff --git a/src/main/java/org/spongepowered/api/entity/Mannequin.java b/src/main/java/org/spongepowered/api/entity/Mannequin.java new file mode 100644 index 0000000000..ca02b9dc56 --- /dev/null +++ b/src/main/java/org/spongepowered/api/entity/Mannequin.java @@ -0,0 +1,42 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.entity; + +import org.spongepowered.api.data.Keys; +import org.spongepowered.api.data.type.HandPreference; +import org.spongepowered.api.data.value.Value; +import org.spongepowered.api.entity.living.Living; + +public interface Mannequin extends Living { + + /** + * {@link Keys#DOMINANT_HAND} + * + * @return The dominant HandPreference of the player + */ + default Value.Mutable dominantHand() { + return this.requireValue(Keys.DOMINANT_HAND).asMutable(); + } +} From fefaa09423ed515119157d8b3ac598ef8b77ae85 Mon Sep 17 00:00:00 2001 From: Gabriel Harris-Rouquette Date: Tue, 23 Sep 2025 21:36:20 -0700 Subject: [PATCH 7/8] feat(minecraft): update to 25w37a Changes: - Changed gamerule tag names See: https://minecraft.wiki/w/Java_Edition_25w37a --- .../org/spongepowered/api/world/gamerule/GameRules.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java index 053e81a0f1..37e5e8bc3e 100644 --- a/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java +++ b/src/main/java/org/spongepowered/api/world/gamerule/GameRules.java @@ -48,6 +48,8 @@ public final class GameRules { public static final DefaultedRegistryReference> BLOCK_EXPLOSION_DROP_DECAY = GameRules.key(ResourceKey.sponge("block_explosion_drop_decay")); + public static final DefaultedRegistryReference> COMMAND_BLOCKS_ENABLED = GameRules.key(ResourceKey.sponge("command_blocks_enabled")); + public static final DefaultedRegistryReference> COMMAND_BLOCK_OUTPUT = GameRules.key(ResourceKey.sponge("command_block_output")); public static final DefaultedRegistryReference> COMMAND_MODIFICATION_BLOCK_LIMIT = GameRules.key(ResourceKey.sponge("command_modification_block_limit")); @@ -88,8 +90,6 @@ public final class GameRules { public static final DefaultedRegistryReference> DROWNING_DAMAGE = GameRules.key(ResourceKey.sponge("drowning_damage")); - public static final DefaultedRegistryReference> ENABLE_COMMAND_BLOCKS = GameRules.key(ResourceKey.sponge("enable_command_blocks")); - public static final DefaultedRegistryReference> ENDER_PEARLS_VANISH_ON_DEATH = GameRules.key(ResourceKey.sponge("ender_pearls_vanish_on_death")); public static final DefaultedRegistryReference> FALL_DAMAGE = GameRules.key(ResourceKey.sponge("fall_damage")); @@ -144,6 +144,8 @@ public final class GameRules { public static final DefaultedRegistryReference> SNOW_ACCUMULATION_HEIGHT = GameRules.key(ResourceKey.sponge("snow_accumulation_height")); + public static final DefaultedRegistryReference> SPAWNER_BLOCKS_ENABLED = GameRules.key(ResourceKey.sponge("spawner_blocks_enabled")); + public static final DefaultedRegistryReference> SPAWN_MONSTERS = GameRules.key(ResourceKey.sponge("spawn_monsters")); public static final DefaultedRegistryReference> SPAWN_RADIUS = GameRules.key(ResourceKey.sponge("spawn_radius")); From 214a97c9174a315b226bc716c77d7a4d7c7091d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ossi=20Erkkil=C3=A4?= <52257907+avaruus1@users.noreply.github.com> Date: Mon, 29 Sep 2025 02:06:53 +0300 Subject: [PATCH 8/8] Expose minecraft:blocks_attacks and minecraft:weapon (#2604) --- .../java/org/spongepowered/api/data/Keys.java | 49 ++++++ .../api/data/type/ShieldDamageReduction.java | 144 ++++++++++++++++++ .../data/type/ShieldItemDamageFunction.java | 114 ++++++++++++++ 3 files changed, 307 insertions(+) create mode 100644 src/main/java/org/spongepowered/api/data/type/ShieldDamageReduction.java create mode 100644 src/main/java/org/spongepowered/api/data/type/ShieldItemDamageFunction.java diff --git a/src/main/java/org/spongepowered/api/data/Keys.java b/src/main/java/org/spongepowered/api/data/Keys.java index 3a5d63080a..1cbb39b599 100644 --- a/src/main/java/org/spongepowered/api/data/Keys.java +++ b/src/main/java/org/spongepowered/api/data/Keys.java @@ -90,6 +90,8 @@ import org.spongepowered.api.data.type.RailDirection; import org.spongepowered.api.data.type.SalmonSize; import org.spongepowered.api.data.type.SculkSensorState; +import org.spongepowered.api.data.type.ShieldDamageReduction; +import org.spongepowered.api.data.type.ShieldItemDamageFunction; import org.spongepowered.api.data.type.SkinPart; import org.spongepowered.api.data.type.SlabPortion; import org.spongepowered.api.data.type.SpellType; @@ -224,6 +226,7 @@ import org.spongepowered.api.entity.vehicle.minecart.Minecart; import org.spongepowered.api.entity.vehicle.minecart.MinecartLike; import org.spongepowered.api.entity.weather.LightningBolt; +import org.spongepowered.api.event.cause.entity.damage.DamageType; import org.spongepowered.api.event.cause.entity.damage.source.DamageSource; import org.spongepowered.api.event.cause.entity.damage.source.DamageSources; import org.spongepowered.api.fluid.FluidStackSnapshot; @@ -639,6 +642,11 @@ public final class Keys { */ public static final Key> BURN_TIME = Keys.key(ResourceKey.sponge("burn_time"), Integer.class); + /** + * The {@link DamageType} tag that bypasses a shield-like {@link ItemStack}. + */ + public static final Key>> BYPASS_DAMAGE_TAG = Keys.key(ResourceKey.sponge("bypass_damage_tag"), new TypeToken<>() {}); + /** * Whether an {@link ItemStack} can always be eaten. */ @@ -976,6 +984,17 @@ public final class Keys { */ public static final Key> DIRECTION = Keys.key(ResourceKey.sponge("direction"), Direction.class); + /** + * The amount of {@link Ticks} this {@link ItemStack} disables blocking with a shield-like {@link ItemStack} on a successful attack. + */ + public static final Key> DISABLE_SHIELD_TICKS = Keys.key(ResourceKey.sponge("disable_shield_ticks"), Ticks.class); + + /** + * The multiplier applied to the cooldown time during which blocking using this shield-like {@link ItemStack} is disabled. + * If set to 0, this item can never be disabled by attacks. + */ + public static final Key> DISABLE_SHIELD_TICKS_SCALE = Keys.key(ResourceKey.sponge("disable_shield_ticks_scale"), Double.class); + /** * The display name of an {@link Entity}, {@link ItemStack} or {@link BlockEntity}. * @@ -3046,6 +3065,31 @@ public final class Keys { */ public static final Key> SHADOW_STRENGTH = Keys.key(ResourceKey.sponge("shadow_strength"), Double.class); + /** + * The sound played when blocking an attack with a shield-like {@link ItemStack}. + */ + public static final Key> SHIELD_BLOCK_SOUND = Keys.key(ResourceKey.sponge("shield_block_sound"), SoundType.class); + + /** + * The amount of attack damage a shield-like {@link ItemStack} reduces for certain {@link DamageType}s + */ + public static final Key>> SHIELD_DAMAGE_REDUCTIONS = Keys.listKey(ResourceKey.sponge("shield_damage_reductions"), new TypeToken<>() {}); + + /** + * The amount of {@link Ticks} player must use this shield-like {@link ItemStack} for to block attacks successfully. + */ + public static final Key> SHIELD_DEPLOY_TICKS = Keys.key(ResourceKey.sponge("shield_deploy_ticks"), Ticks.class); + + /** + * The sound played when a shield-like {@link ItemStack} is disabled. + */ + public static final Key> SHIELD_DISABLE_SOUND = Keys.key(ResourceKey.sponge("shield_disable_sound"), SoundType.class); + + /** + * Function for the amount of {@link Keys#ITEM_DURABILITY} damage a shield-like {@link ItemStack} takes when blocking an attack. + */ + public static final Key>> SHIELD_ITEM_DAMAGE_FUNCTION = Keys.key(ResourceKey.sponge("shield_item_damage_function"), new TypeToken<>() {}); + /** * The shooter of a {@link Projectile}. */ @@ -3534,6 +3578,11 @@ public final class Keys { */ public static final Key> WATER_FOG_COLOR = Keys.key(ResourceKey.sponge("water_fog_color"), Color.class); + /** + * The {@link #ITEM_DURABILITY} damage an {@link ItemStack} takes per attack. + */ + public static final Key> WEAPON_DAMAGE_PER_ATTACK = Keys.key(ResourceKey.sponge("weapon_damage_per_attack"), Integer.class); + /** * The weather of a {@link ServerWorldProperties}. */ diff --git a/src/main/java/org/spongepowered/api/data/type/ShieldDamageReduction.java b/src/main/java/org/spongepowered/api/data/type/ShieldDamageReduction.java new file mode 100644 index 0000000000..a1bda62608 --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/ShieldDamageReduction.java @@ -0,0 +1,144 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.Sponge; +import org.spongepowered.api.event.cause.entity.damage.DamageType; +import org.spongepowered.api.event.cause.entity.damage.source.DamageSource; +import org.spongepowered.api.tag.Tag; +import org.spongepowered.api.util.ResettableBuilder; + +import java.util.Optional; +import java.util.Set; + + +/** + * Defines the amount of damage reduced when blocking with a shield-like {@link org.spongepowered.api.item.inventory.ItemStack}. + */ +public interface ShieldDamageReduction { + + static ShieldDamageReduction of(MultiplyAdd config) { + return Sponge.game().factoryProvider().provide(Factory.class).create(config); + } + + T configuration(); + + double resolve(DamageSource source, double damage, double angle); + + interface Factory { + + ShieldDamageReduction create(MultiplyAdd config); + + } + + /** + * The final amount of blocked damage will be {@code constantReduction + fractionalReduction * damage} + */ + interface MultiplyAdd { + + static Builder builder() { + return Sponge.game().builderProvider().provide(Builder.class); + } + + /** + * Returns the {@link DamageType damage types} this reduction applies to. + * {@link Optional#empty()} means this reduction is not restricted to any given damage type. + * + * @return the affected damage types + */ + Optional> damageTypes(); + + /** + * Returns the maximum angle between the users facing direction and the direction of the incoming attack. + * + * @return the maximum angle + */ + double horizontalBlockingAngle(); + + /** + * Returns the constant amount of damage to be blocked. + * + * @return a constant amount of damage to block + */ + double constantReduction(); + + /** + * Returns fractional amount of damage to block, where a factor of 1 means that all damage is blocked, + * and a factor of 0 that no damage is blocked. + * + * @return fractional amount of damage to block + */ + double fractionalReduction(); + + interface Builder extends ResettableBuilder { + + /** + * Limits the {@link DamageType damage types} this reduction applies to. + * + * @param damageTypes the affected damage types + * @return This builder, for chaining + */ + Builder damageTypes(Set damageTypes); + + /** + * Limits the {@link DamageType damage types} this reduction applies to. + * + * @param tag the tag defining affected damage types + * @return This builder, for chaining + */ + Builder damageTypes(Tag tag); + + /** + * Sets the maximum angle between the users facing direction and the direction of the incoming attack. + * + * @param angle the maximum angle + * @return This builder, for chaining + */ + Builder horizontalBlockingAngle(double angle); + + /** + * Sets the constant amount of damage to be blocked. + * + * @param constant a constant amount of damage to block + * @return This builder, for chaining + */ + Builder constantReduction(double constant); + + /** + * Sets fractional amount of damage to block, where a factor of 1 means that all damage is blocked, + * and a factor of 0 that no damage is blocked. + * + * @param fraction fractional amount of damage to block + * @return This builder, for chaining + */ + Builder fractionalReduction(double fraction); + + MultiplyAdd build(); + + } + + } + +} diff --git a/src/main/java/org/spongepowered/api/data/type/ShieldItemDamageFunction.java b/src/main/java/org/spongepowered/api/data/type/ShieldItemDamageFunction.java new file mode 100644 index 0000000000..5ee106b859 --- /dev/null +++ b/src/main/java/org/spongepowered/api/data/type/ShieldItemDamageFunction.java @@ -0,0 +1,114 @@ +/* + * This file is part of SpongeAPI, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package org.spongepowered.api.data.type; + +import org.spongepowered.api.Sponge; +import org.spongepowered.api.util.ResettableBuilder; + +/** + * Defines the amount of {@link org.spongepowered.api.data.Keys#ITEM_DURABILITY} damage a shield-like + * {@link org.spongepowered.api.item.inventory.ItemStack} takes, when blocking an attack. + */ +public interface ShieldItemDamageFunction { + + static ShieldItemDamageFunction of(MultiplyAdd config) { + return Sponge.game().factoryProvider().provide(Factory.class).create(config); + } + + T configuration(); + + double resolve(double damage); + + interface Factory { + + ShieldItemDamageFunction create(MultiplyAdd config); + + } + + /** + * The final amount of damage will be {@code constantDamage + fractionalDamage * attackDamage} + */ + interface MultiplyAdd { + + static Builder builder() { + return Sponge.game().builderProvider().provide(Builder.class); + } + + /** + * Returns the minimum amount of damage blocked attack must have had, for the item to take damage at all. + * + * @return minimum attack damage required for any durability loss + */ + double minAttackDamage(); + + /** + * Returns the constant amount of damage taken. + * + * @return a constant amount of damage to take + */ + double constantDamage(); + + /** + * Returns fractional amount of damage to take, where a factor of 1 means that the amount of durability lost is equal to attack damage, + * and a factor of 0 that no durability is lost. + * + * @return fractional amount of damage to take + */ + double fractionalDamage(); + + interface Builder extends ResettableBuilder { + + /** + * Sets the minimum amount of damage blocked attack must have had, for the item to take damage at all. + * + * @param minDamage minimum attack damage required for any durability loss + * @return This builder, for chaining + */ + Builder minAttackDamage(double minDamage); + + /** + * Sets the constant amount of damage taken. + * + * @param constantDamage a constant amount of damage to take + * @return This builder, for chaining + */ + Builder constantDamage(double constantDamage); + + /** + * Sets fractional amount of damage to take, where a factor of 1 means that the amount of durability lost is equal to attack damage, + * and a factor of 0 that no durability is lost. + * + * @param fractionalDamage fractional amount of damage to take + * @return This builder, for chaining + */ + Builder fractionalDamage(double fractionalDamage); + + MultiplyAdd build(); + + } + + } + +}