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 ccde0a0c18..a4723e211a 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 c51ea40d00..d9731a77f4 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -1388,6 +1388,11 @@
+
+
+
+
+
@@ -1396,6 +1401,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/spongepowered/api/block/BlockTypes.java b/src/main/java/org/spongepowered/api/block/BlockTypes.java
index 4b74d7886b..fd90f9528a 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"));
@@ -368,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"));
@@ -392,6 +396,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 +482,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 +552,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 +636,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 +802,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 +826,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"));
@@ -948,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"));
@@ -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..576f616b83 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;
@@ -100,20 +102,10 @@ 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);
+
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,10 +246,24 @@ 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);
+ 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/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 3a5d63080a..a2773d6f27 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;
@@ -90,6 +91,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;
@@ -174,6 +177,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;
@@ -224,6 +228,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;
@@ -257,6 +262,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;
@@ -639,6 +645,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.
*/
@@ -794,6 +805,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.
*/
@@ -976,6 +994,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 +3075,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 +3588,17 @@ 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 {@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/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