diff --git a/.checkstyle/checkstyle-suppressions.xml b/.checkstyle/checkstyle-suppressions.xml
index 5c677e151a1..2bf5687b5dd 100644
--- a/.checkstyle/checkstyle-suppressions.xml
+++ b/.checkstyle/checkstyle-suppressions.xml
@@ -17,4 +17,5 @@
+
diff --git a/.gitignore b/.gitignore
index 1e698d63c71..95d321c54ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,10 @@ MANIFEST.MF
dependency-reduced-pom.xml
.checkstyle
!.checkstyle/
+# We exclude the generated events from git to avoid
+# temptation to edit said generated files.
+src/generated/
+src/main/generated/
# Compiled #
############
diff --git a/build.gradle.kts b/build.gradle.kts
index b4c685ea8cb..33e47fcc60e 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,13 +1,7 @@
import net.ltgt.gradle.errorprone.errorprone
import org.jetbrains.gradle.ext.delegateActions
import org.jetbrains.gradle.ext.settings
-import org.jetbrains.gradle.ext.taskTriggers
-buildscript {
- dependencies {
- classpath(libs.spoon) // bump for EIG
- }
-}
plugins {
eclipse
@@ -16,12 +10,14 @@ plugins {
alias(libs.plugins.indra.crossdoc)
alias(libs.plugins.indra.publishing)
alias(libs.plugins.indra.publishing.sonatype)
- alias(libs.plugins.eventImplGen)
alias(libs.plugins.ideaExt)
alias(libs.plugins.errorprone)
alias(libs.plugins.nexusPublish)
}
+// Enable event generation to be considered part of
+// the main source set
+val generatedEventSourcesDir = project.file("src/main/generated")
val javaTarget: String by project
val ap by sourceSets.registering {
compileClasspath += sourceSets.main.get().compileClasspath + sourceSets.main.get().output
@@ -44,11 +40,32 @@ nexusPublishing {
}
}
+tasks {
+ register("printSourceDirs") {
+ doLast {
+ sourceSets.forEach { set ->
+ println("SourceSet: ${set.name}")
+ println("Java Source Dirs: ${set.java.srcDirs}" )
+ }
+ }
+ }
+}
+
+sourceSets {
+ main {
+ java {
+ srcDirs(generatedEventSourcesDir)
+ }
+ }
+}
+
// Project dependencies
dependencies {
// Directly tied to what's available from Minecraft
api(libs.log4j.api)
api(libs.gson)
+ api(libs.eventImplGen.annotations)
+ annotationProcessor(libs.eventImplGen.processor)
// Adventure
api(platform(libs.adventure.bom))
@@ -139,28 +156,23 @@ dependencies {
testImplementation(libs.mockito)
}
+spotless {
+ java {
+ target("src/main/java/**/*.java")
+ targetExclude("src/main/generated/**/*.java")
+ }
+}
+
tasks {
- genEventImpl {
- sourceCompatibility = "17" // TODO use javaTarget here
- destinationDirectory = project.layout.buildDirectory.dir("generated/event-factory")
-
- outputFactory = "org.spongepowered.api.event.SpongeEventFactory"
- include("org/spongepowered/api/event/*/**/*")
- exclude("org/spongepowered/api/event/action/InteractEvent.java")
- exclude("org/spongepowered/api/event/cause/")
- exclude("org/spongepowered/api/event/entity/AffectEntityEvent.java")
- exclude("org/spongepowered/api/event/filter/")
- exclude("org/spongepowered/api/event/impl/")
- exclude("org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterTagEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java")
- exclude("org/spongepowered/api/event/lifecycle/RegisterWorldEvent.java")
- inclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod")
- exclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod")
+
+ compileJava {
+ options.generatedSourceOutputDirectory = generatedEventSourcesDir
+ options.compilerArgs.addAll(listOf(
+ "-AeventGenInclusiveFolders=org/spongepowered/api/event",
+ "-AeventGenExclusiveFolders=org/spongepowered/api/event/cause,org/spongepowered/api/event/filter,org/spongepowered/api/event/impl,org/spongepowered/api/event/lifecycle",
+ "-AeventGenFactory=org.spongepowered.api.event.SpongeEventFactory",
+ "-AeventGenDebug=true",
+ ))
}
jar {
@@ -176,6 +188,15 @@ tasks {
indraGit.applyVcsInformationToManifest(this)
}
}
+ checkstyleMain {
+ dependsOn(compileJava)
+ }
+ spotlessJava {
+ dependsOn(compileJava)
+ }
+ sourcesJar {
+ dependsOn(compileJava)
+ }
withType(JavaCompile::class).configureEach {
options.apply {
@@ -225,15 +246,12 @@ idea {
delegateBuildRunToGradle = false
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
}
- taskTriggers {
- beforeBuild(tasks.genEventImpl)
- }
}
}
}
eclipse {
- synchronizationTasks(tasks.genEventImpl)
+// synchronizationTasks(tasks.genEventImpl)
}
val organization: String by project
diff --git a/gradle.properties b/gradle.properties
index b12f90482ac..3a648afca71 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
group=org.spongepowered
-version=12.1.0-SNAPSHOT
+version=18.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 395388daf8f..66443a1115d 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -2,7 +2,7 @@
format = { version = "1.1" }
[versions]
-adventure = "4.17.0"
+adventure = "4.26.1"
caffeine = "3.1.8"
checker = "3.42.0"
checkstyle = "10.12.7"
@@ -13,10 +13,10 @@ guice = "5.0.1"
ideaExt = "1.1.8"
indra = "3.1.3"
junit = "5.10.2"
-log4j = "2.22.1"
+log4j = "2.25.2"
math = "2.0.1"
mockito = "5.11.0"
-pluginSpi = "0.4.0"
+pluginSpi = "0.5.2"
[libraries]
adventure-bom = { module = "net.kyori:adventure-bom", version.ref = "adventure" }
@@ -37,13 +37,14 @@ guice = { module = "com.google.inject:guice", version.ref = "guice" }
log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" }
math = { module = "org.spongepowered:math", version.ref = "math" }
pluginSpi = { module = "org.spongepowered:plugin-spi", version.ref = "pluginSpi" }
+eventImplGen-processor = {module = "org.spongepowered:event-impl-gen", version = "8.0.0"}
+eventImplGen-annotations = { module = "org.spongepowered:event-impl-gen-annotations", version = "8.0.0"}
# build-time/annotations
checkerQual = { module = "org.checkerframework:checker-qual", version.ref = "checker" }
errorprone = { module = "com.google.errorprone:error_prone_core", version.ref = "errorprone" }
errorprone-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "errorprone" }
-spoon = { module = "fr.inria.gforge.spoon:spoon-core", version = "10.4.2" } # bump for EIG
# testing
@@ -55,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 fc344bca710..ed9aac2fe37 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -6,6 +6,8 @@
+
+
@@ -17,6 +19,14 @@
+
+
+
+
+
+
+
+
@@ -159,6 +169,14 @@
+
+
+
+
+
+
+
+
@@ -256,6 +274,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -296,6 +338,14 @@
+
+
+
+
+
+
+
+
@@ -351,6 +401,11 @@
+
+
+
+
+
@@ -553,6 +608,14 @@
+
+
+
+
+
+
+
+
@@ -561,6 +624,14 @@
+
+
+
+
+
+
+
+
@@ -756,6 +827,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -838,6 +925,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -854,6 +976,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -876,6 +1030,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -898,6 +1087,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -920,6 +1168,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -942,6 +1225,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -964,6 +1282,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -986,6 +1339,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1103,6 +1491,11 @@
+
+
+
+
+
@@ -1111,6 +1504,14 @@
+
+
+
+
+
+
+
+
@@ -1376,6 +1777,14 @@
+
+
+
+
+
+
+
+
@@ -1420,6 +1829,11 @@
+
+
+
+
+
@@ -1531,6 +1945,9 @@
+
+
+
@@ -1544,6 +1961,9 @@
+
+
+
@@ -1640,6 +2060,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -1750,6 +2180,14 @@
+
+
+
+
+
+
+
+
@@ -1758,6 +2196,14 @@
+
+
+
+
+
+
+
+
@@ -2015,6 +2461,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2213,6 +2691,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2254,6 +2751,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -2276,6 +2783,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/java/org/spongepowered/api/advancement/Advancement.java b/src/main/java/org/spongepowered/api/advancement/Advancement.java
index 98daddb4395..6a45e29c0ec 100644
--- a/src/main/java/org/spongepowered/api/advancement/Advancement.java
+++ b/src/main/java/org/spongepowered/api/advancement/Advancement.java
@@ -26,9 +26,13 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentLike;
+import org.checkerframework.checker.nullness.qual.Nullable;
import org.spongepowered.api.ResourceKey;
+import org.spongepowered.api.Sponge;
import org.spongepowered.api.advancement.criteria.AdvancementCriterion;
-import org.spongepowered.api.data.persistence.DataSerializable;
+import org.spongepowered.api.datapack.DataPackSerializable;
+import org.spongepowered.api.registry.DefaultedRegistryValue;
+import org.spongepowered.api.util.CopyableBuilder;
import java.util.List;
import java.util.Optional;
@@ -36,7 +40,16 @@
/**
* An advancement.
*/
-public interface Advancement extends ComponentLike, DataSerializable {
+public interface Advancement extends DefaultedRegistryValue, ComponentLike, DataPackSerializable {
+
+ /**
+ * Creates a new {@link Builder} to create an {@link Advancement}.
+ *
+ * @return The new builder
+ */
+ static Advancement.Builder builder() {
+ return Sponge.game().builderProvider().provide(Advancement.Builder.class);
+ }
/**
* Gets all the {@link AdvancementCriterion} that should be achieved
@@ -72,4 +85,57 @@ public interface Advancement extends ComponentLike, DataSerializable {
*/
List toToastText();
+ /**
+ * A builder to create {@link Advancement}s.
+ */
+ interface Builder extends org.spongepowered.api.util.Builder, CopyableBuilder {
+
+ /**
+ * Sets the parent {@link Advancement} key.
+ * For the root advancement use {@link #root}
+ *
+ * @param parent The parent advancement
+ * @return This builder, for chaining
+ */
+ Builder parent(ResourceKey parent);
+
+ /**
+ * Sets this advancement as root.
+ *
+ * @return This builder, for chaining
+ */
+ Builder.RootStep root();
+
+ /**
+ * Define root advancement only parameters.
+ */
+ interface RootStep extends Builder {
+
+ /**
+ * Sets the background path..
+ *
+ * @param backgroundPath The {@link AdvancementTree}s background.
+ *
+ * @return This builder, for chaining
+ */
+ Builder background(ResourceKey backgroundPath);
+ }
+
+ /**
+ * Sets the {@link AdvancementCriterion} that should be used
+ * for the advancement. Defaults to {@link AdvancementCriterion#empty()}.
+ *
+ * @param criterion The criterion
+ * @return This builder, for chaining
+ */
+ Builder criterion(AdvancementCriterion criterion);
+
+ /**
+ * Sets the {@link DisplayInfo}. Defaults to {code null}.
+ *
+ * @param displayInfo The display info
+ * @return This builder, for chaining
+ */
+ Builder displayInfo(@Nullable DisplayInfo displayInfo);
+ }
}
diff --git a/src/main/java/org/spongepowered/api/advancement/AdvancementTemplate.java b/src/main/java/org/spongepowered/api/advancement/AdvancementTemplate.java
deleted file mode 100644
index 7388e885696..00000000000
--- a/src/main/java/org/spongepowered/api/advancement/AdvancementTemplate.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.advancement;
-
-import org.checkerframework.checker.nullness.qual.Nullable;
-import org.spongepowered.api.ResourceKey;
-import org.spongepowered.api.Sponge;
-import org.spongepowered.api.advancement.criteria.AdvancementCriterion;
-import org.spongepowered.api.datapack.DataPackEntry;
-import org.spongepowered.api.util.ResourceKeyedBuilder;
-
-import java.util.Optional;
-
-/**
- * A template for an {@link Advancement}.
- */
-public interface AdvancementTemplate extends DataPackEntry {
-
- /**
- * Creates a new {@link Builder} to create {@link Advancement}s.
- *
- * @return The new builder
- */
- static Builder builder() {
- return Sponge.game().builderProvider().provide(Builder.class);
- }
-
- /**
- * Return the advancement
- *
- * @return The advancement
- */
- Advancement advancement();
-
- /**
- * Gets the {@link AdvancementTree} of this advancement
- * will only be present if it is a root advancement.
- *
- * @return The advancement tree
- */
- Optional tree();
-
- /**
- * A builder to create {@link Advancement}s.
- */
- interface Builder extends ResourceKeyedBuilder {
-
- /**
- * Sets the parent {@link Advancement} template.
- * For the root advancement use {@link #root}
- *
- * @param parent The parent advancement
- * @return This builder, for chaining
- */
- Builder parent(AdvancementTemplate parent);
-
- /**
- * Sets the parent {@link Advancement} key.
- * For the root advancement use {@link #root}
- *
- * @param parent The parent advancement
- * @return This builder, for chaining
- */
- Builder parent(ResourceKey parent);
-
- /**
- * Sets this advancement as root.
- *
- * @return This builder, for chaining
- */
- Builder.RootStep root();
-
- /**
- * Define root advancement only parameters.
- */
- interface RootStep extends Builder {
-
- /**
- * Sets the background path..
- *
- * @param backgroundPath The {@link AdvancementTree}s background.
- *
- * @return This builder, for chaining
- */
- Builder background(ResourceKey backgroundPath);
- }
-
- /**
- * Sets the {@link AdvancementCriterion} that should be used
- * for the advancement. Defaults to {@link AdvancementCriterion#empty()}.
- *
- * @param criterion The criterion
- * @return This builder, for chaining
- */
- Builder criterion(AdvancementCriterion criterion);
-
- /**
- * Sets the {@link DisplayInfo}. Defaults to {code null}.
- *
- * @param displayInfo The display info
- * @return This builder, for chaining
- */
- Builder displayInfo(@Nullable DisplayInfo displayInfo);
-
- }
-}
diff --git a/src/main/java/org/spongepowered/api/advancement/AdvancementTree.java b/src/main/java/org/spongepowered/api/advancement/AdvancementTree.java
index a477132c2dd..36121511680 100644
--- a/src/main/java/org/spongepowered/api/advancement/AdvancementTree.java
+++ b/src/main/java/org/spongepowered/api/advancement/AdvancementTree.java
@@ -59,7 +59,7 @@ public interface AdvancementTree extends AdvancementNode {
* @param advancement The advancement
* @return The tree layout element
*/
- Optional layoutElement(AdvancementTemplate advancement);
+ Optional layoutElement(Advancement advancement);
/**
diff --git a/src/main/java/org/spongepowered/api/advancement/AdvancementType.java b/src/main/java/org/spongepowered/api/advancement/AdvancementType.java
index b1d387fcbbf..2b641bf904e 100644
--- a/src/main/java/org/spongepowered/api/advancement/AdvancementType.java
+++ b/src/main/java/org/spongepowered/api/advancement/AdvancementType.java
@@ -25,6 +25,7 @@
package org.spongepowered.api.advancement;
import net.kyori.adventure.text.format.TextColor;
+import org.spongepowered.api.data.type.StringRepresentable;
import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.util.annotation.CatalogedBy;
@@ -33,7 +34,7 @@
* also the appearance in the notifications.
*/
@CatalogedBy(AdvancementTypes.class)
-public interface AdvancementType extends DefaultedRegistryValue {
+public interface AdvancementType extends DefaultedRegistryValue, StringRepresentable {
/**
* Gets the {@link TextColor} of the advancement type.
diff --git a/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Trigger.java b/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Trigger.java
index 10db3ce166f..bcd7a9b15c5 100644
--- a/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Trigger.java
+++ b/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Trigger.java
@@ -53,7 +53,7 @@
*/
@SuppressWarnings("unchecked")
@CatalogedBy(Triggers.class)
-public interface Trigger extends DefaultedRegistryValue {
+public interface Trigger extends DefaultedRegistryValue> {
/**
* Creates a new {@link Builder} which can be used to create
diff --git a/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Triggers.java b/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Triggers.java
index 17f5bd3989e..d2fba1e749b 100644
--- a/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Triggers.java
+++ b/src/main/java/org/spongepowered/api/advancement/criteria/trigger/Triggers.java
@@ -94,7 +94,7 @@ public final class Triggers {
public static final DefaultedRegistryReference> ITEM_USED_ON_BLOCK = Triggers.key(ResourceKey.minecraft("item_used_on_block"));
- public static final DefaultedRegistryReference> KILLED_BY_CROSSBOW = Triggers.key(ResourceKey.minecraft("killed_by_crossbow"));
+ public static final DefaultedRegistryReference> KILLED_BY_ARROW = Triggers.key(ResourceKey.minecraft("killed_by_arrow"));
public static final DefaultedRegistryReference> KILL_MOB_NEAR_SCULK_CATALYST = Triggers.key(ResourceKey.minecraft("kill_mob_near_sculk_catalyst"));
@@ -116,6 +116,8 @@ public final class Triggers {
public static final DefaultedRegistryReference> PLAYER_KILLED_ENTITY = Triggers.key(ResourceKey.minecraft("player_killed_entity"));
+ public static final DefaultedRegistryReference> PLAYER_SHEARED_EQUIPMENT = Triggers.key(ResourceKey.minecraft("player_sheared_equipment"));
+
public static final DefaultedRegistryReference> RECIPE_CRAFTED = Triggers.key(ResourceKey.minecraft("recipe_crafted"));
public static final DefaultedRegistryReference> RECIPE_UNLOCKED = Triggers.key(ResourceKey.minecraft("recipe_unlocked"));
@@ -128,6 +130,8 @@ public final class Triggers {
public static final DefaultedRegistryReference> SLIDE_DOWN_BLOCK = Triggers.key(ResourceKey.minecraft("slide_down_block"));
+ public static final DefaultedRegistryReference> SPEAR_MOBS = Triggers.key(ResourceKey.minecraft("spear_mobs"));
+
public static final DefaultedRegistryReference> STARTED_RIDING = Triggers.key(ResourceKey.minecraft("started_riding"));
public static final DefaultedRegistryReference> SUMMONED_ENTITY = Triggers.key(ResourceKey.minecraft("summoned_entity"));
diff --git a/src/main/java/org/spongepowered/api/adventure/ChatType.java b/src/main/java/org/spongepowered/api/adventure/ChatType.java
index c36b038d422..614cf92e516 100644
--- a/src/main/java/org/spongepowered/api/adventure/ChatType.java
+++ b/src/main/java/org/spongepowered/api/adventure/ChatType.java
@@ -25,16 +25,83 @@
package org.spongepowered.api.adventure;
import net.kyori.adventure.text.format.Style;
+import org.spongepowered.api.Sponge;
+import org.spongepowered.api.datapack.DataPackSerializable;
+import org.spongepowered.api.registry.DefaultedRegistryValue;
+import org.spongepowered.api.util.CopyableBuilder;
import org.spongepowered.api.util.annotation.CatalogedBy;
/**
* A type of chat
*/
@CatalogedBy(ChatTypes.class)
-public interface ChatType extends net.kyori.adventure.chat.ChatType {
+public interface ChatType extends DefaultedRegistryValue, net.kyori.adventure.chat.ChatType, DataPackSerializable {
+ /**
+ * Creates a new {@link Builder} to create a {@link ChatType}.
+ *
+ * @return The new builder
+ */
+ static Builder builder() {
+ return Sponge.game().builderProvider().provide(Builder.class);
+ }
+
+ /**
+ * Gets the translation key that would be used
+ * to display the chat message.
+ *
+ * @return The translation key
+ */
String translationKey();
+ /**
+ * Gets the style that would be used to
+ * display the chat message.
+ *
+ * @return The style
+ */
Style style();
+ /**
+ * A builder to create {@link ChatType}s.
+ */
+ interface Builder extends org.spongepowered.api.util.Builder, CopyableBuilder {
+
+ /**
+ * Sets the translation key or custom format mask.
+ *
+ * @param translationKey The translation key or format mask
+ * @return this builder, for chaining
+ */
+ Builder translationKey(String translationKey);
+
+ /**
+ * Sets the style.
+ *
+ * @param style The style
+ * @return this builder, for chaining
+ */
+ Builder style(Style style);
+
+ /**
+ * Adds a sender parameter.
+ *
+ * @return this builder, for chaining
+ */
+ Builder addSender();
+
+ /**
+ * Adds a content parameter.
+ *
+ * @return this builder, for chaining
+ */
+ Builder addContent();
+
+ /**
+ * Adds a target parameter.
+ *
+ * @return this builder, for chaining
+ */
+ Builder addTarget();
+ }
}
diff --git a/src/main/java/org/spongepowered/api/adventure/ChatTypeTemplate.java b/src/main/java/org/spongepowered/api/adventure/ChatTypeTemplate.java
deleted file mode 100644
index 8f78b954f3f..00000000000
--- a/src/main/java/org/spongepowered/api/adventure/ChatTypeTemplate.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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.adventure;
-
-import net.kyori.adventure.text.format.Style;
-import org.spongepowered.api.Sponge;
-import org.spongepowered.api.datapack.DataPackEntry;
-import org.spongepowered.api.util.DataPackEntryBuilder;
-
-/**
- * A template for {@link ChatType chat types}.
- */
-public interface ChatTypeTemplate extends DataPackEntry {
-
- static Builder builder() {
- return Sponge.game().builderProvider().provide(Builder.class).reset();
- }
-
- /**
- * Returns the chat type
- *
- * @return The chat type
- */
- ChatType type();
-
- interface Builder extends DataPackEntryBuilder {
-
- /**
- * Sets the translation key or custom format mask.
- *
- * @param translationKey The translation key or format mask
- * @return this builder, for chaining
- */
- Builder translationKey(String translationKey);
-
- /**
- * Sets the style.
- *
- * @param style The style
- * @return this builder, for chaining
- */
- Builder style(Style style);
-
- /**
- * Adds a sender parameter.
- *
- * @return this builder, for chaining
- */
- Builder addSender();
-
- /**
- * Adds a content parameter.
- *
- * @return this builder, for chaining
- */
- Builder addContent();
-
- /**
- * Adds a target parameter.
- *
- * @return this builder, for chaining
- */
- Builder addTarget();
-
- }
-}
diff --git a/src/main/java/org/spongepowered/api/adventure/ChatTypes.java b/src/main/java/org/spongepowered/api/adventure/ChatTypes.java
index 5afc963df5c..7784a020b3d 100644
--- a/src/main/java/org/spongepowered/api/adventure/ChatTypes.java
+++ b/src/main/java/org/spongepowered/api/adventure/ChatTypes.java
@@ -98,6 +98,6 @@ public static Registry registry() {
}
public static DefaultedRegistryReference key(final ResourceKey location) {
- return RegistryKey.of(RegistryTypes.CHAT_TYPE, location).asDefaultedReference(Sponge::server);
+ return RegistryKey.of(RegistryTypes.CHAT_TYPE, location).asScopedReference();
}
}
diff --git a/src/main/java/org/spongepowered/api/adventure/ResolveOperation.java b/src/main/java/org/spongepowered/api/adventure/ResolveOperation.java
index 6564a2f613a..d90a4e35c4d 100644
--- a/src/main/java/org/spongepowered/api/adventure/ResolveOperation.java
+++ b/src/main/java/org/spongepowered/api/adventure/ResolveOperation.java
@@ -24,12 +24,13 @@
*/
package org.spongepowered.api.adventure;
+import org.spongepowered.api.registry.DefaultedRegistryValue;
import org.spongepowered.api.util.annotation.CatalogedBy;
/**
* A type of rendering operation that can be performed on a component.
*/
@CatalogedBy(ResolveOperations.class)
-public interface ResolveOperation {
+public interface ResolveOperation extends DefaultedRegistryValue {
}
diff --git a/src/main/java/org/spongepowered/api/adventure/ResolveOperations.java b/src/main/java/org/spongepowered/api/adventure/ResolveOperations.java
index 3c093968ad1..7a04337e09a 100644
--- a/src/main/java/org/spongepowered/api/adventure/ResolveOperations.java
+++ b/src/main/java/org/spongepowered/api/adventure/ResolveOperations.java
@@ -68,6 +68,11 @@ public final class ResolveOperations {
*/
public static final DefaultedRegistryReference CUSTOM_TRANSLATIONS = ResolveOperations.key(ResourceKey.sponge("custom_translations"));
+ /**
+ * Resolves Sponge provided virtual components.
+ */
+ public static final DefaultedRegistryReference VIRTUAL_COMPONENTS = ResolveOperations.key(ResourceKey.sponge("virtual_components"));
+
// SORTFIELDS:OFF
// @formatter:ON
diff --git a/src/main/java/org/spongepowered/api/adventure/SpongeComponents.java b/src/main/java/org/spongepowered/api/adventure/SpongeComponents.java
index 835ed06b0f1..9a9f7ce10d0 100644
--- a/src/main/java/org/spongepowered/api/adventure/SpongeComponents.java
+++ b/src/main/java/org/spongepowered/api/adventure/SpongeComponents.java
@@ -26,6 +26,8 @@
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.ComponentLike;
+import net.kyori.adventure.text.VirtualComponent;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.flattener.ComponentFlattener;
import org.spongepowered.api.Sponge;
@@ -33,6 +35,7 @@
import org.spongepowered.api.registry.DefaultedRegistryReference;
import java.util.function.Consumer;
+import java.util.function.Function;
/**
* Additional SpongeAPI-specific methods for working with {@link Component}s and related.
@@ -111,6 +114,35 @@ public static ComponentFlattener flattener() {
return SpongeComponents.factory().flattener();
}
+ /**
+ * Creates a new {@link VirtualComponent} that will be used to
+ * render each {@link Audience} their own version of
+ * the received message.
+ *
+ * @param apply The function invoked to render
+ * {@link Audience} specific component.
+ * @return The virtual component
+ */
+ public static VirtualComponent receiverVirtualComponent(final Function apply) {
+ return SpongeComponents.receiverVirtualComponent(apply, "");
+ }
+
+ /**
+ * Creates a new {@link VirtualComponent} that will be used to
+ * render each {@link Audience} their own version of
+ * the received message.
+ *
+ * @param apply The function invoked to render
+ * {@link Audience} specific component.
+ * @param fallbackValue The fallback value used when this
+ * component has been serialized without
+ * being rendered.
+ * @return The virtual component
+ */
+ public static VirtualComponent receiverVirtualComponent(final Function apply, final String fallbackValue) {
+ return SpongeComponents.factory().receiverVirtualComponent(apply, fallbackValue);
+ }
+
private static Factory factory() {
return Sponge.game().factoryProvider().provide(Factory.class);
}
@@ -137,5 +169,6 @@ Component render(
ComponentFlattener flattener();
+ VirtualComponent receiverVirtualComponent(Function apply, String fallbackValue);
}
}
diff --git a/src/main/java/org/spongepowered/api/block/BlockType.java b/src/main/java/org/spongepowered/api/block/BlockType.java
index 261cd4229ad..0109500aa80 100644
--- a/src/main/java/org/spongepowered/api/block/BlockType.java
+++ b/src/main/java/org/spongepowered/api/block/BlockType.java
@@ -44,7 +44,7 @@
* via {@link BlockEntity}.
*/
@CatalogedBy(BlockTypes.class)
-public interface BlockType extends DefaultedRegistryValue, ComponentLike, StateContainer, DataHolder.Immutable, Taggable {
+public interface BlockType extends DefaultedRegistryValue, ComponentLike, StateContainer, DataHolder.Immutable, Taggable {
/**
* Return the {@link ItemType} that represents this block.
diff --git a/src/main/java/org/spongepowered/api/block/BlockTypes.java b/src/main/java/org/spongepowered/api/block/BlockTypes.java
index e41e0b38be7..fd90f9528a7 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"));
@@ -336,8 +342,12 @@ public final class BlockTypes {
public static final DefaultedRegistryReference BUDDING_AMETHYST = BlockTypes.key(ResourceKey.minecraft("budding_amethyst"));
+ public static final DefaultedRegistryReference BUSH = BlockTypes.key(ResourceKey.minecraft("bush"));
+
public static final DefaultedRegistryReference CACTUS = BlockTypes.key(ResourceKey.minecraft("cactus"));
+ public static final DefaultedRegistryReference CACTUS_FLOWER = BlockTypes.key(ResourceKey.minecraft("cactus_flower"));
+
public static final DefaultedRegistryReference CAKE = BlockTypes.key(ResourceKey.minecraft("cake"));
public static final DefaultedRegistryReference CALCITE = BlockTypes.key(ResourceKey.minecraft("calcite"));
@@ -364,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"));
@@ -388,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"));
@@ -420,6 +430,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference CHISELED_RED_SANDSTONE = BlockTypes.key(ResourceKey.minecraft("chiseled_red_sandstone"));
+ public static final DefaultedRegistryReference CHISELED_RESIN_BRICKS = BlockTypes.key(ResourceKey.minecraft("chiseled_resin_bricks"));
+
public static final DefaultedRegistryReference CHISELED_SANDSTONE = BlockTypes.key(ResourceKey.minecraft("chiseled_sandstone"));
public static final DefaultedRegistryReference CHISELED_STONE_BRICKS = BlockTypes.key(ResourceKey.minecraft("chiseled_stone_bricks"));
@@ -434,6 +446,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference CLAY = BlockTypes.key(ResourceKey.minecraft("clay"));
+ public static final DefaultedRegistryReference CLOSED_EYEBLOSSOM = BlockTypes.key(ResourceKey.minecraft("closed_eyeblossom"));
+
public static final DefaultedRegistryReference COAL_BLOCK = BlockTypes.key(ResourceKey.minecraft("coal_block"));
public static final DefaultedRegistryReference COAL_ORE = BlockTypes.key(ResourceKey.minecraft("coal_ore"));
@@ -468,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"));
@@ -496,6 +524,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference CRAFTING_TABLE = BlockTypes.key(ResourceKey.minecraft("crafting_table"));
+ public static final DefaultedRegistryReference CREAKING_HEART = BlockTypes.key(ResourceKey.minecraft("creaking_heart"));
+
public static final DefaultedRegistryReference CREEPER_HEAD = BlockTypes.key(ResourceKey.minecraft("creeper_head"));
public static final DefaultedRegistryReference CREEPER_WALL_HEAD = BlockTypes.key(ResourceKey.minecraft("creeper_wall_head"));
@@ -522,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"));
@@ -604,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"));
@@ -730,6 +764,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference DRAGON_WALL_HEAD = BlockTypes.key(ResourceKey.minecraft("dragon_wall_head"));
+ public static final DefaultedRegistryReference DRIED_GHAST = BlockTypes.key(ResourceKey.minecraft("dried_ghast"));
+
public static final DefaultedRegistryReference DRIED_KELP_BLOCK = BlockTypes.key(ResourceKey.minecraft("dried_kelp_block"));
public static final DefaultedRegistryReference DRIPSTONE_BLOCK = BlockTypes.key(ResourceKey.minecraft("dripstone_block"));
@@ -766,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"));
@@ -780,12 +826,16 @@ 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"));
public static final DefaultedRegistryReference FIRE = BlockTypes.key(ResourceKey.minecraft("fire"));
+ public static final DefaultedRegistryReference FIREFLY_BUSH = BlockTypes.key(ResourceKey.minecraft("firefly_bush"));
+
public static final DefaultedRegistryReference FIRE_CORAL = BlockTypes.key(ResourceKey.minecraft("fire_coral"));
public static final DefaultedRegistryReference FIRE_CORAL_BLOCK = BlockTypes.key(ResourceKey.minecraft("fire_coral_block"));
@@ -934,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"));
@@ -966,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"));
@@ -1000,6 +1054,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference LAVA_CAULDRON = BlockTypes.key(ResourceKey.minecraft("lava_cauldron"));
+ public static final DefaultedRegistryReference LEAF_LITTER = BlockTypes.key(ResourceKey.minecraft("leaf_litter"));
+
public static final DefaultedRegistryReference LECTERN = BlockTypes.key(ResourceKey.minecraft("lectern"));
public static final DefaultedRegistryReference LEVER = BlockTypes.key(ResourceKey.minecraft("lever"));
@@ -1156,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"));
@@ -1262,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"));
@@ -1282,6 +1342,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference OCHRE_FROGLIGHT = BlockTypes.key(ResourceKey.minecraft("ochre_froglight"));
+ public static final DefaultedRegistryReference OPEN_EYEBLOSSOM = BlockTypes.key(ResourceKey.minecraft("open_eyeblossom"));
+
public static final DefaultedRegistryReference ORANGE_BANNER = BlockTypes.key(ResourceKey.minecraft("orange_banner"));
public static final DefaultedRegistryReference ORANGE_BED = BlockTypes.key(ResourceKey.minecraft("orange_bed"));
@@ -1318,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"));
@@ -1332,10 +1404,54 @@ 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"));
+ public static final DefaultedRegistryReference PALE_HANGING_MOSS = BlockTypes.key(ResourceKey.minecraft("pale_hanging_moss"));
+
+ public static final DefaultedRegistryReference PALE_MOSS_BLOCK = BlockTypes.key(ResourceKey.minecraft("pale_moss_block"));
+
+ public static final DefaultedRegistryReference PALE_MOSS_CARPET = BlockTypes.key(ResourceKey.minecraft("pale_moss_carpet"));
+
+ public static final DefaultedRegistryReference PALE_OAK_BUTTON = BlockTypes.key(ResourceKey.minecraft("pale_oak_button"));
+
+ public static final DefaultedRegistryReference PALE_OAK_DOOR = BlockTypes.key(ResourceKey.minecraft("pale_oak_door"));
+
+ public static final DefaultedRegistryReference PALE_OAK_FENCE = BlockTypes.key(ResourceKey.minecraft("pale_oak_fence"));
+
+ public static final DefaultedRegistryReference PALE_OAK_FENCE_GATE = BlockTypes.key(ResourceKey.minecraft("pale_oak_fence_gate"));
+
+ public static final DefaultedRegistryReference PALE_OAK_HANGING_SIGN = BlockTypes.key(ResourceKey.minecraft("pale_oak_hanging_sign"));
+
+ public static final DefaultedRegistryReference PALE_OAK_LEAVES = BlockTypes.key(ResourceKey.minecraft("pale_oak_leaves"));
+
+ public static final DefaultedRegistryReference PALE_OAK_LOG = BlockTypes.key(ResourceKey.minecraft("pale_oak_log"));
+
+ public static final DefaultedRegistryReference PALE_OAK_PLANKS = BlockTypes.key(ResourceKey.minecraft("pale_oak_planks"));
+
+ public static final DefaultedRegistryReference PALE_OAK_PRESSURE_PLATE = BlockTypes.key(ResourceKey.minecraft("pale_oak_pressure_plate"));
+
+ 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"));
+
+ public static final DefaultedRegistryReference PALE_OAK_STAIRS = BlockTypes.key(ResourceKey.minecraft("pale_oak_stairs"));
+
+ public static final DefaultedRegistryReference PALE_OAK_TRAPDOOR = BlockTypes.key(ResourceKey.minecraft("pale_oak_trapdoor"));
+
+ public static final DefaultedRegistryReference PALE_OAK_WALL_HANGING_SIGN = BlockTypes.key(ResourceKey.minecraft("pale_oak_wall_hanging_sign"));
+
+ public static final DefaultedRegistryReference PALE_OAK_WALL_SIGN = BlockTypes.key(ResourceKey.minecraft("pale_oak_wall_sign"));
+
+ public static final DefaultedRegistryReference PALE_OAK_WOOD = BlockTypes.key(ResourceKey.minecraft("pale_oak_wood"));
+
public static final DefaultedRegistryReference PEARLESCENT_FROGLIGHT = BlockTypes.key(ResourceKey.minecraft("pearlescent_froglight"));
public static final DefaultedRegistryReference PEONY = BlockTypes.key(ResourceKey.minecraft("peony"));
@@ -1474,6 +1590,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference POTTED_CHERRY_SAPLING = BlockTypes.key(ResourceKey.minecraft("potted_cherry_sapling"));
+ public static final DefaultedRegistryReference POTTED_CLOSED_EYEBLOSSOM = BlockTypes.key(ResourceKey.minecraft("potted_closed_eyeblossom"));
+
public static final DefaultedRegistryReference POTTED_CORNFLOWER = BlockTypes.key(ResourceKey.minecraft("potted_cornflower"));
public static final DefaultedRegistryReference POTTED_CRIMSON_FUNGUS = BlockTypes.key(ResourceKey.minecraft("potted_crimson_fungus"));
@@ -1498,10 +1616,14 @@ public final class BlockTypes {
public static final DefaultedRegistryReference POTTED_OAK_SAPLING = BlockTypes.key(ResourceKey.minecraft("potted_oak_sapling"));
+ public static final DefaultedRegistryReference POTTED_OPEN_EYEBLOSSOM = BlockTypes.key(ResourceKey.minecraft("potted_open_eyeblossom"));
+
public static final DefaultedRegistryReference POTTED_ORANGE_TULIP = BlockTypes.key(ResourceKey.minecraft("potted_orange_tulip"));
public static final DefaultedRegistryReference POTTED_OXEYE_DAISY = BlockTypes.key(ResourceKey.minecraft("potted_oxeye_daisy"));
+ public static final DefaultedRegistryReference POTTED_PALE_OAK_SAPLING = BlockTypes.key(ResourceKey.minecraft("potted_pale_oak_sapling"));
+
public static final DefaultedRegistryReference POTTED_PINK_TULIP = BlockTypes.key(ResourceKey.minecraft("potted_pink_tulip"));
public static final DefaultedRegistryReference POTTED_POPPY = BlockTypes.key(ResourceKey.minecraft("potted_poppy"));
@@ -1670,6 +1792,18 @@ public final class BlockTypes {
public static final DefaultedRegistryReference REPEATING_COMMAND_BLOCK = BlockTypes.key(ResourceKey.minecraft("repeating_command_block"));
+ public static final DefaultedRegistryReference RESIN_BLOCK = BlockTypes.key(ResourceKey.minecraft("resin_block"));
+
+ public static final DefaultedRegistryReference RESIN_BRICKS = BlockTypes.key(ResourceKey.minecraft("resin_bricks"));
+
+ public static final DefaultedRegistryReference RESIN_BRICK_SLAB = BlockTypes.key(ResourceKey.minecraft("resin_brick_slab"));
+
+ public static final DefaultedRegistryReference RESIN_BRICK_STAIRS = BlockTypes.key(ResourceKey.minecraft("resin_brick_stairs"));
+
+ public static final DefaultedRegistryReference RESIN_BRICK_WALL = BlockTypes.key(ResourceKey.minecraft("resin_brick_wall"));
+
+ public static final DefaultedRegistryReference RESIN_CLUMP = BlockTypes.key(ResourceKey.minecraft("resin_clump"));
+
public static final DefaultedRegistryReference RESPAWN_ANCHOR = BlockTypes.key(ResourceKey.minecraft("respawn_anchor"));
public static final DefaultedRegistryReference ROOTED_DIRT = BlockTypes.key(ResourceKey.minecraft("rooted_dirt"));
@@ -1704,6 +1838,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference SEA_PICKLE = BlockTypes.key(ResourceKey.minecraft("sea_pickle"));
+ public static final DefaultedRegistryReference SHORT_DRY_GRASS = BlockTypes.key(ResourceKey.minecraft("short_dry_grass"));
+
public static final DefaultedRegistryReference SHORT_GRASS = BlockTypes.key(ResourceKey.minecraft("short_grass"));
public static final DefaultedRegistryReference SHROOMLIGHT = BlockTypes.key(ResourceKey.minecraft("shroomlight"));
@@ -1794,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"));
@@ -1864,6 +2002,10 @@ public final class BlockTypes {
public static final DefaultedRegistryReference STRIPPED_OAK_WOOD = BlockTypes.key(ResourceKey.minecraft("stripped_oak_wood"));
+ public static final DefaultedRegistryReference STRIPPED_PALE_OAK_LOG = BlockTypes.key(ResourceKey.minecraft("stripped_pale_oak_log"));
+
+ public static final DefaultedRegistryReference STRIPPED_PALE_OAK_WOOD = BlockTypes.key(ResourceKey.minecraft("stripped_pale_oak_wood"));
+
public static final DefaultedRegistryReference STRIPPED_SPRUCE_LOG = BlockTypes.key(ResourceKey.minecraft("stripped_spruce_log"));
public static final DefaultedRegistryReference STRIPPED_SPRUCE_WOOD = BlockTypes.key(ResourceKey.minecraft("stripped_spruce_wood"));
@@ -1886,6 +2028,8 @@ public final class BlockTypes {
public static final DefaultedRegistryReference SWEET_BERRY_BUSH = BlockTypes.key(ResourceKey.minecraft("sweet_berry_bush"));
+ public static final DefaultedRegistryReference TALL_DRY_GRASS = BlockTypes.key(ResourceKey.minecraft("tall_dry_grass"));
+
public static final DefaultedRegistryReference TALL_GRASS = BlockTypes.key(ResourceKey.minecraft("tall_grass"));
public static final DefaultedRegistryReference TALL_SEAGRASS = BlockTypes.key(ResourceKey.minecraft("tall_seagrass"));
@@ -1894,6 +2038,10 @@ public final class BlockTypes {
public static final DefaultedRegistryReference TERRACOTTA = BlockTypes.key(ResourceKey.minecraft("terracotta"));
+ public static final DefaultedRegistryReference TEST_BLOCK = BlockTypes.key(ResourceKey.minecraft("test_block"));
+
+ public static final DefaultedRegistryReference TEST_INSTANCE_BLOCK = BlockTypes.key(ResourceKey.minecraft("test_instance_block"));
+
public static final DefaultedRegistryReference TINTED_GLASS = BlockTypes.key(ResourceKey.minecraft("tinted_glass"));
public static final DefaultedRegistryReference TNT = BlockTypes.key(ResourceKey.minecraft("tnt"));
@@ -1974,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"));
@@ -1996,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"));
@@ -2016,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"));
@@ -2030,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"));
@@ -2048,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"));
@@ -2066,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