diff --git a/.editorconfig b/.editorconfig index 65898b5181..e1e991896e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,5 @@ +root = true + [*] charset=utf-8 end_of_line=lf @@ -34,11 +36,11 @@ ij_java_method_parameters_right_paren_on_new_line = true ij_java_use_fq_class_names = false ij_java_class_names_in_javadoc = 1 +[paper-{server,api}/src/generated/java/**/*.java] +ij_java_imports_layout = $*, |, * + [paper-server/src/minecraft/java/**/*.java] ij_java_use_fq_class_names = true [paper-server/src/minecraft/resources/data/**/*.json] indent_size = 2 - -[paper-api-generator/generated/**/*.java] -ij_java_imports_layout = $*,|,* diff --git a/.gitignore b/.gitignore index 53a798d16e..e46ae58b18 100644 --- a/.gitignore +++ b/.gitignore @@ -45,7 +45,7 @@ logs/ !gradle/wrapper/gradle-wrapper.jar test-plugin.settings.gradle.kts -paper-api-generator.settings.gradle.kts +paper-generator.settings.gradle.kts # Don't track patched vanilla submodules paper-server/src/minecraft/ diff --git a/paper-api-generator/build.gradle.kts b/paper-api-generator/build.gradle.kts deleted file mode 100644 index 0eab98b0fe..0000000000 --- a/paper-api-generator/build.gradle.kts +++ /dev/null @@ -1,37 +0,0 @@ -import io.papermc.paperweight.util.defaultJavaLauncher - -plugins { - java - id("io.papermc.paperweight.source-generator") -} - -paperweight { - atFile.set(layout.projectDirectory.file("wideners.at")) -} - -dependencies { - minecraftJar(project(":paper-server", "mappedJarOutgoing")) - implementation(project(":paper-server", "macheMinecraftLibraries")) - - implementation("com.squareup:javapoet:1.13.0") - implementation(project(":paper-api")) - implementation("io.github.classgraph:classgraph:4.8.47") - implementation("org.jetbrains:annotations:26.0.1") - testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") -} - -tasks.register("generate") { - dependsOn(tasks.check) - mainClass.set("io.papermc.generator.Main") - classpath(sourceSets.main.map { it.runtimeClasspath }) - args(rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.absolutePath) - javaLauncher = javaToolchains.defaultJavaLauncher(project) -} - -tasks.test { - useJUnitPlatform() -} - -group = "io.papermc.paper" -version = "1.0-SNAPSHOT" diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Generators.java b/paper-api-generator/src/main/java/io/papermc/generator/Generators.java deleted file mode 100644 index 677a1d449e..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/Generators.java +++ /dev/null @@ -1,96 +0,0 @@ -package io.papermc.generator; - -import io.papermc.generator.types.GeneratedKeyType; -import io.papermc.generator.types.GeneratedTagKeyType; -import io.papermc.generator.types.SourceGenerator; -import io.papermc.generator.types.goal.MobGoalGenerator; -import io.papermc.paper.registry.RegistryKey; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceKey; -import org.bukkit.Art; -import org.bukkit.Fluid; -import org.bukkit.GameEvent; -import org.bukkit.JukeboxSong; -import org.bukkit.MusicInstrument; -import org.bukkit.Sound; -import org.bukkit.attribute.Attribute; -import org.bukkit.block.Biome; -import org.bukkit.block.BlockType; -import org.bukkit.block.banner.PatternType; -import org.bukkit.damage.DamageType; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Cat; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Frog; -import org.bukkit.entity.Villager; -import org.bukkit.entity.Wolf; -import org.bukkit.generator.structure.Structure; -import org.bukkit.generator.structure.StructureType; -import org.bukkit.inventory.ItemType; -import org.bukkit.inventory.MenuType; -import org.bukkit.inventory.meta.trim.TrimMaterial; -import org.bukkit.inventory.meta.trim.TrimPattern; -import org.bukkit.map.MapCursor; -import org.bukkit.potion.PotionEffectType; - -public interface Generators { - - SourceGenerator[] API = { - // built-ins - simpleKey("GameEventKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT, true), - simpleKey("StructureTypeKeys", StructureType.class, Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, false), - simpleKey("MobEffectKeys", PotionEffectType.class, Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, false), - simpleKey("BlockTypeKeys", BlockType.class, Registries.BLOCK, RegistryKey.BLOCK, false), - simpleKey("ItemTypeKeys", ItemType.class, Registries.ITEM, RegistryKey.ITEM, false), - simpleKey("CatVariantKeys", Cat.Type.class, Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT, false), - simpleKey("FrogVariantKeys", Frog.Variant.class, Registries.FROG_VARIANT, RegistryKey.FROG_VARIANT, false), - simpleKey("VillagerProfessionKeys", Villager.Profession.class, Registries.VILLAGER_PROFESSION, RegistryKey.VILLAGER_PROFESSION, false), - simpleKey("VillagerTypeKeys", Villager.Type.class, Registries.VILLAGER_TYPE, RegistryKey.VILLAGER_TYPE, false), - simpleKey("MapDecorationTypeKeys", MapCursor.Type.class, Registries.MAP_DECORATION_TYPE, RegistryKey.MAP_DECORATION_TYPE, false), - simpleKey("MenuTypeKeys", MenuType.class, Registries.MENU, RegistryKey.MENU, false), - simpleKey("AttributeKeys", Attribute.class, Registries.ATTRIBUTE, RegistryKey.ATTRIBUTE, false), - simpleKey("FluidKeys", Fluid.class, Registries.FLUID, RegistryKey.FLUID, false), - simpleKey("SoundEventKeys", Sound.class, Registries.SOUND_EVENT, RegistryKey.SOUND_EVENT, false), - - // data-driven - simpleKey("BiomeKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME, true), - simpleKey("StructureKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE, true), - simpleKey("TrimMaterialKeys", TrimMaterial.class, Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL, true), - simpleKey("TrimPatternKeys", TrimPattern.class, Registries.TRIM_PATTERN, RegistryKey.TRIM_PATTERN, true), - simpleKey("DamageTypeKeys", DamageType.class, Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE, true), - simpleKey("WolfVariantKeys", Wolf.Variant.class, Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT, true), - simpleKey("EnchantmentKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT, true), - simpleKey("JukeboxSongKeys", JukeboxSong.class, Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG, true), - simpleKey("BannerPatternKeys", PatternType.class, Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN, true), - simpleKey("PaintingVariantKeys", Art.class, Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT, true), - simpleKey("InstrumentKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT, true), - - // tags - simpleTagKey("GameEventTagKeys", GameEvent.class, Registries.GAME_EVENT, RegistryKey.GAME_EVENT), - simpleTagKey("BlockTypeTagKeys", BlockType.class, Registries.BLOCK, RegistryKey.BLOCK), - simpleTagKey("ItemTypeTagKeys", ItemType.class, Registries.ITEM, RegistryKey.ITEM), - simpleTagKey("CatVariantTagKeys", Cat.Type.class, Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT), - simpleTagKey("FluidTagKeys", Fluid.class, Registries.FLUID, RegistryKey.FLUID), - - simpleTagKey("BiomeTagKeys", Biome.class, Registries.BIOME, RegistryKey.BIOME), - simpleTagKey("StructureTagKeys", Structure.class, Registries.STRUCTURE, RegistryKey.STRUCTURE), - simpleTagKey("DamageTypeTagKeys", DamageType.class, Registries.DAMAGE_TYPE, RegistryKey.DAMAGE_TYPE), - simpleTagKey("EnchantmentTagKeys", Enchantment.class, Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT), - simpleTagKey("BannerPatternTagKeys", PatternType.class, Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN), - simpleTagKey("PaintingVariantTagKeys", Art.class, Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT), - simpleTagKey("InstrumentTagKeys", MusicInstrument.class, Registries.INSTRUMENT, RegistryKey.INSTRUMENT), - - // api only - simpleTagKey("EntityTypeTagKeys", EntityType.class, Registries.ENTITY_TYPE, RegistryKey.ENTITY_TYPE), - new MobGoalGenerator("VanillaGoal", "com.destroystokyo.paper.entity.ai") - }; - - private static SourceGenerator simpleKey(final String className, final Class apiType, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { - return new GeneratedKeyType<>(className, apiType, "io.papermc.paper.registry.keys", registryKey, apiRegistryKey, publicCreateKeyMethod); - } - - private static SourceGenerator simpleTagKey(final String className, final Class apiType, final ResourceKey> registryKey, final RegistryKey apiRegistryKey) { - return new GeneratedTagKeyType<>(className, apiType, "io.papermc.paper.registry.keys.tags", registryKey, apiRegistryKey, true); - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/Main.java b/paper-api-generator/src/main/java/io/papermc/generator/Main.java deleted file mode 100644 index 129009f519..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/Main.java +++ /dev/null @@ -1,93 +0,0 @@ -package io.papermc.generator; - -import com.google.common.util.concurrent.MoreExecutors; -import com.mojang.logging.LogUtils; -import io.papermc.generator.types.SourceGenerator; -import io.papermc.generator.utils.TagCollector; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.Map; -import net.minecraft.SharedConstants; -import net.minecraft.commands.Commands; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.LayeredRegistryAccess; -import net.minecraft.core.Registry; -import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.RegistryDataLoader; -import net.minecraft.server.Bootstrap; -import net.minecraft.server.RegistryLayer; -import net.minecraft.server.ReloadableServerResources; -import net.minecraft.server.packs.PackType; -import net.minecraft.server.packs.repository.Pack; -import net.minecraft.server.packs.repository.PackRepository; -import net.minecraft.server.packs.repository.ServerPacksSource; -import net.minecraft.server.packs.resources.MultiPackResourceManager; -import net.minecraft.tags.TagKey; -import net.minecraft.tags.TagLoader; -import net.minecraft.world.flag.FeatureFlags; -import org.apache.commons.io.file.PathUtils; -import org.slf4j.Logger; - -public final class Main { - - private static final Logger LOGGER = LogUtils.getLogger(); - public static final RegistryAccess.Frozen REGISTRY_ACCESS; - public static final Map, String> EXPERIMENTAL_TAGS; - - static { - SharedConstants.tryDetectVersion(); - Bootstrap.bootStrap(); - Bootstrap.validate(); - - final PackRepository resourceRepository = ServerPacksSource.createVanillaTrustedRepository(); - resourceRepository.reload(); - final MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList()); - LayeredRegistryAccess layers = RegistryLayer.createRegistryAccess(); - final List> pendingTags = TagLoader.loadTagsForExistingRegistries(resourceManager, layers.getLayer(RegistryLayer.STATIC)); - final List> worldGenLayer = TagLoader.buildUpdatedLookups(layers.getAccessForLoading(RegistryLayer.WORLDGEN), pendingTags); - final RegistryAccess.Frozen frozenWorldgenRegistries = RegistryDataLoader.load(resourceManager, worldGenLayer, RegistryDataLoader.WORLDGEN_REGISTRIES); - layers = layers.replaceFrom(RegistryLayer.WORLDGEN, frozenWorldgenRegistries); - REGISTRY_ACCESS = layers.compositeAccess().freeze(); - final ReloadableServerResources reloadableServerResources = ReloadableServerResources.loadResources( - resourceManager, - layers, - pendingTags, - FeatureFlags.VANILLA_SET, - Commands.CommandSelection.DEDICATED, - 0, - MoreExecutors.directExecutor(), - MoreExecutors.directExecutor() - ).join(); - reloadableServerResources.updateStaticRegistryTags(); - EXPERIMENTAL_TAGS = TagCollector.grabExperimental(resourceManager); - } - - private Main() { - } - - public static void main(final String[] args) { - LOGGER.info("Running API generators..."); - generate(Paths.get(args[0]), Generators.API); - // LOGGER.info("Running Server generators..."); - // generate(Paths.get(args[1]), Generators.SERVER); - } - - private static void generate(Path output, SourceGenerator[] generators) { - try { - if (Files.exists(output)) { - PathUtils.deleteDirectory(output); - } - Files.createDirectories(output); - - for (final SourceGenerator generator : generators) { - generator.writeToFile(output); - } - - LOGGER.info("Files written to {}", output.toAbsolutePath()); - } catch (final Exception ex) { - throw new RuntimeException(ex); - } - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java deleted file mode 100644 index 4ef3d3af03..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedKeyType.java +++ /dev/null @@ -1,207 +0,0 @@ -package io.papermc.generator.types; - -import com.google.common.collect.Sets; -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.ParameterSpec; -import com.squareup.javapoet.ParameterizedTypeName; -import com.squareup.javapoet.TypeName; -import com.squareup.javapoet.TypeSpec; -import io.papermc.generator.Main; -import io.papermc.generator.utils.Annotations; -import io.papermc.generator.utils.CollectingContext; -import io.papermc.generator.utils.Formatting; -import io.papermc.generator.utils.Javadocs; -import io.papermc.paper.registry.RegistryKey; -import io.papermc.paper.registry.TypedKey; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.Collections; -import java.util.HashMap; -import java.util.IdentityHashMap; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import javax.lang.model.SourceVersion; -import net.kyori.adventure.key.Key; -import net.minecraft.core.Holder; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.Registry; -import net.minecraft.core.RegistrySetBuilder; -import net.minecraft.core.registries.Registries; -import net.minecraft.data.registries.VanillaRegistries; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.flag.FeatureElement; -import net.minecraft.world.flag.FeatureFlags; -import org.bukkit.MinecraftExperimental; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; -import org.checkerframework.framework.qual.DefaultQualifier; - -import static com.squareup.javapoet.TypeSpec.classBuilder; -import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION; -import static io.papermc.generator.utils.Annotations.experimentalAnnotations; -import static java.util.Objects.requireNonNull; -import static javax.lang.model.element.Modifier.FINAL; -import static javax.lang.model.element.Modifier.PRIVATE; -import static javax.lang.model.element.Modifier.PUBLIC; -import static javax.lang.model.element.Modifier.STATIC; - -@DefaultQualifier(NonNull.class) -public class GeneratedKeyType extends SimpleGenerator { - - private static final Map>, RegistrySetBuilder.RegistryBootstrap> VANILLA_REGISTRY_ENTRIES = VanillaRegistries.BUILDER.entries.stream() - .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); - - private static final Map>, RegistrySetBuilder.RegistryBootstrap> EXPERIMENTAL_REGISTRY_ENTRIES = Map.of(); // Update for Experimental API - private static final Map, String> REGISTRY_KEY_FIELD_NAMES; - static { - final Map, String> map = new HashMap<>(); - try { - for (final Field field : RegistryKey.class.getFields()) { - if (!Modifier.isStatic(field.getModifiers()) || !Modifier.isFinal(field.getModifiers()) || field.getType() != RegistryKey.class) { - continue; - } - map.put((RegistryKey) field.get(null), field.getName()); - } - REGISTRY_KEY_FIELD_NAMES = Map.copyOf(map); - } catch (final ReflectiveOperationException ex) { - throw new RuntimeException(ex); - } - } - - private static final String CREATE_JAVADOC = """ - Creates a key for {@link $T} in the registry {@code $L}. - - @param key the value's key in the registry - @return a new typed key - """; - - private final Class apiType; - private final ResourceKey> registryKey; - private final RegistryKey apiRegistryKey; - private final boolean publicCreateKeyMethod; - - public GeneratedKeyType(final String keysClassName, final Class apiType, final String pkg, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { - super(keysClassName, pkg); - this.apiType = apiType; - this.registryKey = registryKey; - this.apiRegistryKey = apiRegistryKey; - this.publicCreateKeyMethod = publicCreateKeyMethod; - } - - private MethodSpec.Builder createMethod(final TypeName returnType) { - final TypeName keyType = TypeName.get(Key.class); - - final ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build(); - final MethodSpec.Builder create = MethodSpec.methodBuilder("create") - .addModifiers(this.publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC) - .addParameter(keyParam) - .addCode("return $T.create($T.$L, $N);", TypedKey.class, RegistryKey.class, requireNonNull(REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey), "Missing field for " + this.apiRegistryKey), keyParam) - .returns(returnType); - if (this.publicCreateKeyMethod) { - create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental - create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString()); - } - return create; - } - - private TypeSpec.Builder keyHolderType() { - return classBuilder(this.className) - .addModifiers(PUBLIC, FINAL) - .addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) - .addAnnotations(Annotations.CLASS_HEADER) - .addMethod(MethodSpec.constructorBuilder() - .addModifiers(PRIVATE) - .build() - ); - } - - @Deprecated - private static final Map JUKEBOX_SONG_NAMES = Map.of( - "5", "FIVE", - "11", "ELEVEN", - "13", "THIRTEEN" - ); - - @Override - protected TypeSpec getTypeSpec() { - final TypeName typedKey = ParameterizedTypeName.get(TypedKey.class, this.apiType); - - final TypeSpec.Builder typeBuilder = this.keyHolderType(); - final MethodSpec.Builder createMethod = this.createMethod(typedKey); - - final Registry registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey); - final Set> experimental = this.collectExperimentalKeys(registry); - - boolean allExperimental = true; - for (final Holder.Reference reference : registry.listElements().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).toList()) { - final ResourceKey key = reference.key(); - final String keyPath = key.location().getPath(); - String fieldName = Formatting.formatKeyAsField(keyPath); - if (!SourceVersion.isIdentifier(fieldName) && this.registryKey.equals(Registries.JUKEBOX_SONG) && JUKEBOX_SONG_NAMES.containsKey(fieldName)) { - fieldName = JUKEBOX_SONG_NAMES.get(fieldName); - } - - final FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL) - .initializer("$N(key($S))", createMethod.build(), keyPath) - .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), key.location().toString()); - if (experimental.contains(key)) { - fieldBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API - } else { - allExperimental = false; - } - typeBuilder.addField(fieldBuilder.build()); - } - if (allExperimental) { - typeBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API - createMethod.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API - } else { - typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API - } - return typeBuilder.addMethod(createMethod.build()).build(); - } - - // todo at some point this should be per feature data pack not all merged - private Set> collectExperimentalKeys(final Registry registry) { - if (FeatureElement.FILTERED_REGISTRIES.contains(registry.key())) { - return this.collectExperimentalKeysBuiltIn(registry); - } else { - return this.collectExperimentalKeysDataDriven(registry); - } - } - - private Set> collectExperimentalKeysBuiltIn(final Registry registry) { - final HolderLookup.RegistryLookup filteredLookup = registry.filterElements(v -> { - return v instanceof final FeatureElement featureElement && FeatureFlags.isExperimental(featureElement.requiredFeatures()); // Update for Experimental API - }); - return filteredLookup.listElementIds().collect(Collectors.toUnmodifiableSet()); - } - - @SuppressWarnings("unchecked") - private Set> collectExperimentalKeysDataDriven(final Registry registry) { - final RegistrySetBuilder.@Nullable RegistryBootstrap experimentalBootstrap = (RegistrySetBuilder.RegistryBootstrap) EXPERIMENTAL_REGISTRY_ENTRIES.get(this.registryKey); - if (experimentalBootstrap == null) { - return Collections.emptySet(); - } - final Set> experimental = Collections.newSetFromMap(new IdentityHashMap<>()); - final CollectingContext experimentalCollector = new CollectingContext<>(experimental, registry); - experimentalBootstrap.run(experimentalCollector); - - final RegistrySetBuilder.@Nullable RegistryBootstrap vanillaBootstrap = (RegistrySetBuilder.RegistryBootstrap) VANILLA_REGISTRY_ENTRIES.get(this.registryKey); - if (vanillaBootstrap != null) { - final Set> vanilla = Collections.newSetFromMap(new IdentityHashMap<>()); - final CollectingContext vanillaCollector = new CollectingContext<>(vanilla, registry); - vanillaBootstrap.run(vanillaCollector); - return Sets.difference(experimental, vanilla); - } - return experimental; - } - - @Override - protected JavaFile.Builder file(final JavaFile.Builder builder) { - return builder - .addStaticImport(Key.class, "key"); - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java b/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java deleted file mode 100644 index 60e15ea64a..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/GeneratedTagKeyType.java +++ /dev/null @@ -1,138 +0,0 @@ -package io.papermc.generator.types; - -import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; -import com.squareup.javapoet.MethodSpec; -import com.squareup.javapoet.ParameterSpec; -import com.squareup.javapoet.ParameterizedTypeName; -import com.squareup.javapoet.TypeName; -import com.squareup.javapoet.TypeSpec; -import io.papermc.generator.Main; -import io.papermc.generator.utils.Annotations; -import io.papermc.generator.utils.Formatting; -import io.papermc.generator.utils.Javadocs; -import io.papermc.paper.registry.RegistryKey; -import io.papermc.paper.registry.tag.TagKey; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; -import net.kyori.adventure.key.Key; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceKey; -import org.bukkit.MinecraftExperimental; - -import static com.squareup.javapoet.TypeSpec.classBuilder; -import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION; -import static io.papermc.generator.utils.Annotations.experimentalAnnotations; -import static java.util.Objects.requireNonNull; -import static javax.lang.model.element.Modifier.FINAL; -import static javax.lang.model.element.Modifier.PRIVATE; -import static javax.lang.model.element.Modifier.PUBLIC; -import static javax.lang.model.element.Modifier.STATIC; - -public class GeneratedTagKeyType extends SimpleGenerator { - - private static final Map, String> REGISTRY_KEY_FIELD_NAMES; - static { - final Map, String> map = new HashMap<>(); - try { - for (final Field field : RegistryKey.class.getFields()) { - if (!Modifier.isStatic(field.getModifiers()) || !Modifier.isFinal(field.getModifiers()) || field.getType() != RegistryKey.class) { - continue; - } - map.put((RegistryKey) field.get(null), field.getName()); - } - REGISTRY_KEY_FIELD_NAMES = Map.copyOf(map); - } catch (final ReflectiveOperationException ex) { - throw new RuntimeException(ex); - } - } - - private static final String CREATE_JAVADOC = """ - Creates a tag key for {@link $T} in the registry {@code $L}. - - @param key the tag key's key - @return a new tag key - """; - - private final Class apiType; - private final ResourceKey> registryKey; - private final RegistryKey apiRegistryKey; - private final boolean publicCreateKeyMethod; - - public GeneratedTagKeyType(final String keysClassName, final Class apiType, final String pkg, final ResourceKey> registryKey, final RegistryKey apiRegistryKey, final boolean publicCreateKeyMethod) { - super(keysClassName, pkg); - this.apiType = apiType; - this.registryKey = registryKey; - this.apiRegistryKey = apiRegistryKey; - this.publicCreateKeyMethod = publicCreateKeyMethod; - } - - private MethodSpec.Builder createMethod(final TypeName returnType) { - final TypeName keyType = TypeName.get(Key.class); - - final ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build(); - final MethodSpec.Builder create = MethodSpec.methodBuilder("create") - .addModifiers(this.publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC) - .addParameter(keyParam) - .addCode("return $T.create($T.$L, $N);", TagKey.class, RegistryKey.class, requireNonNull(REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey), "Missing field for " + this.apiRegistryKey), keyParam) - .returns(returnType); - if (this.publicCreateKeyMethod) { - create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental - create.addJavadoc(CREATE_JAVADOC, this.apiType, this.registryKey.location().toString()); - } - return create; - } - - private TypeSpec.Builder keyHolderType() { - return classBuilder(this.className) - .addModifiers(PUBLIC, FINAL) - .addJavadoc(Javadocs.getVersionDependentClassHeader("{@link $T#$L}"), RegistryKey.class, REGISTRY_KEY_FIELD_NAMES.get(this.apiRegistryKey)) - .addAnnotations(Annotations.CLASS_HEADER) - .addMethod(MethodSpec.constructorBuilder() - .addModifiers(PRIVATE) - .build() - ); - } - - @Override - protected TypeSpec getTypeSpec() { - final TypeName tagKey = ParameterizedTypeName.get(TagKey.class, this.apiType); - - final TypeSpec.Builder typeBuilder = this.keyHolderType(); - final MethodSpec.Builder createMethod = this.createMethod(tagKey); - - final Registry registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey); - - final AtomicBoolean allExperimental = new AtomicBoolean(true); - registry.listTagIds().sorted(Formatting.alphabeticKeyOrder(nmsTagKey -> nmsTagKey.location().getPath())).forEach(nmsTagKey -> { - final String fieldName = Formatting.formatKeyAsField(nmsTagKey.location().getPath()); - final FieldSpec.Builder fieldBuilder = FieldSpec.builder(tagKey, fieldName, PUBLIC, STATIC, FINAL) - .initializer("$N(key($S))", createMethod.build(), nmsTagKey.location().getPath()) - .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), "#" + nmsTagKey.location()); - final String featureFlagName = Main.EXPERIMENTAL_TAGS.get(nmsTagKey); - if (featureFlagName != null) { - fieldBuilder.addAnnotations(experimentalAnnotations(MinecraftExperimental.Requires.valueOf(featureFlagName.toUpperCase(Locale.ENGLISH)))); // Update for Experimental API - } else { - allExperimental.set(false); - } - typeBuilder.addField(fieldBuilder.build()); - }); - if (allExperimental.get()) { - typeBuilder.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API - createMethod.addAnnotations(experimentalAnnotations(null)); // Update for Experimental API - } else { - typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API - } - return typeBuilder.addMethod(createMethod.build()).build(); - } - - @Override - protected JavaFile.Builder file(final JavaFile.Builder builder) { - return builder - .addStaticImport(Key.class, "key"); - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java deleted file mode 100644 index 977e4a1334..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/Annotations.java +++ /dev/null @@ -1,65 +0,0 @@ -package io.papermc.generator.utils; - -import com.squareup.javapoet.AnnotationSpec; -import java.util.ArrayList; -import java.util.List; - -import io.papermc.paper.generated.GeneratedFrom; -import net.minecraft.SharedConstants; -import org.bukkit.MinecraftExperimental; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Nullable; -import org.jspecify.annotations.NullMarked; - -public final class Annotations { - - public static List experimentalAnnotations(final MinecraftExperimental.@Nullable Requires requiredFeatureFlag) { - final List annotationSpecs = new ArrayList<>(); - annotationSpecs.add(AnnotationSpec.builder(ApiStatus.Experimental.class).build()); - if (requiredFeatureFlag != null) { - annotationSpecs.add(AnnotationSpec.builder(MinecraftExperimental.class) - .addMember("value", "$T.$L", MinecraftExperimental.Requires.class, requiredFeatureFlag.name()) - .build()); - } else { - annotationSpecs.add(AnnotationSpec.builder(MinecraftExperimental.class).build()); - } - return annotationSpecs; - } - - public static AnnotationSpec deprecatedVersioned(final @Nullable String version, final boolean forRemoval) { - final AnnotationSpec.Builder annotationSpec = AnnotationSpec.builder(Deprecated.class); - if (forRemoval) { - annotationSpec.addMember("forRemoval", "$L", true); - } - if (version != null) { - annotationSpec.addMember("since", "$S", version); - } - - return annotationSpec.build(); - } - - public static AnnotationSpec scheduledRemoval(final @Nullable String version) { - return AnnotationSpec.builder(ApiStatus.ScheduledForRemoval.class) - .addMember("inVersion", "$S", version) - .build(); - } - - @ApiStatus.Experimental - public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); - public static final AnnotationSpec NULL_MARKED = AnnotationSpec.builder(NullMarked.class).build(); - private static final AnnotationSpec SUPPRESS_WARNINGS = AnnotationSpec.builder(SuppressWarnings.class) - .addMember("value", "$S", "unused") - .addMember("value", "$S", "SpellCheckingInspection") - .build(); - private static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class) - .addMember("value", "$S", SharedConstants.getCurrentVersion().getName()) - .build(); - public static final Iterable CLASS_HEADER = List.of( - SUPPRESS_WARNINGS, - GENERATED_FROM, - NULL_MARKED - ); - - private Annotations() { - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java deleted file mode 100644 index b703a32455..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/Formatting.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.papermc.generator.utils; - -import java.util.Optional; -import org.apache.commons.lang3.math.NumberUtils; -import java.util.Comparator; -import java.util.Locale; -import java.util.OptionalInt; -import java.util.function.Function; -import java.util.regex.Pattern; - -public final class Formatting { - - private static final Pattern ILLEGAL_FIELD_CHARACTERS = Pattern.compile("[.-/]"); - - public static String formatKeyAsField(String path) { - return ILLEGAL_FIELD_CHARACTERS.matcher(path.toUpperCase(Locale.ROOT)).replaceAll("_"); - } - - public static Optional formatTagKey(String tagDir, String resourcePath) { - int tagsIndex = resourcePath.indexOf(tagDir); - int dotIndex = resourcePath.lastIndexOf('.'); - if (tagsIndex == -1 || dotIndex == -1) { - return Optional.empty(); - } - return Optional.of(resourcePath.substring(tagsIndex + tagDir.length() + 1, dotIndex)); // namespace/tags/registry_key/[tag_key].json - } - - public static Comparator ALPHABETIC_KEY_ORDER = alphabeticKeyOrder(path -> path); - - public static Comparator alphabeticKeyOrder(Function mapper) { - return (o1, o2) -> { - String path1 = mapper.apply(o1); - String path2 = mapper.apply(o2); - - OptionalInt trailingInt1 = tryParseTrailingInt(path1); - OptionalInt trailingInt2 = tryParseTrailingInt(path2); - - if (trailingInt1.isPresent() && trailingInt2.isPresent()) { - return Integer.compare(trailingInt1.getAsInt(), trailingInt2.getAsInt()); - } - - return path1.compareTo(path2); - }; - } - - private static OptionalInt tryParseTrailingInt(String path) { - int delimiterIndex = path.lastIndexOf('_'); - if (delimiterIndex != -1) { - String score = path.substring(delimiterIndex + 1); - if (NumberUtils.isDigits(score)) { - return OptionalInt.of(Integer.parseInt(score)); - } - } - return OptionalInt.empty(); - } - - private Formatting() { - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java deleted file mode 100644 index 33536c8311..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/Javadocs.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.papermc.generator.utils; - -public final class Javadocs { - - public static String getVersionDependentClassHeader(String headerIdentifier) { - return """ - Vanilla keys for %s. - - @apiNote The fields provided here are a direct representation of - what is available from the vanilla game source. They may be - changed (including removals) on any Minecraft version - bump, so cross-version compatibility is not provided on the - same level as it is on most of the other API. - """.formatted(headerIdentifier); - } - - public static String getVersionDependentField(String headerIdentifier) { - return """ - %s - - @apiNote This field is version-dependant and may be removed in future Minecraft versions - """.formatted(headerIdentifier); - } - - private Javadocs() { - } -} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java b/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java deleted file mode 100644 index 546e136b4a..0000000000 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/TagCollector.java +++ /dev/null @@ -1,79 +0,0 @@ -package io.papermc.generator.utils; - -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import com.mojang.logging.LogUtils; -import io.papermc.generator.Main; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.Map; -import java.util.Set; -import java.util.function.BiConsumer; -import net.minecraft.core.Registry; -import net.minecraft.core.RegistryAccess; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceKey; -import net.minecraft.server.packs.PackResources; -import net.minecraft.server.packs.PackType; -import net.minecraft.server.packs.repository.BuiltInPackSource; -import net.minecraft.server.packs.resources.MultiPackResourceManager; -import net.minecraft.tags.TagKey; -import org.slf4j.Logger; - -// collect all the tags by grabbing the json from the data-packs -// another (probably) way is to hook into the data generator like the typed keys generator -public final class TagCollector { - - private static final Logger LOGGER = LogUtils.getLogger(); - - public static Map, String> grabExperimental(final MultiPackResourceManager resourceManager) { - Map, String> result = new IdentityHashMap<>(); - - // collect all vanilla tags - Multimap>, String> vanillaTags = HashMultimap.create(); - PackResources vanillaPack = resourceManager.listPacks() - .filter(packResources -> packResources.packId().equals(BuiltInPackSource.VANILLA_ID)) - .findFirst() - .orElseThrow(); - collectFromPack(vanillaPack, (entry, path) -> vanillaTags.put(entry.key(), path)); - - // then distinct with other data-pack tags to know for sure newly created tags and so experimental one - resourceManager.listPacks().forEach(pack -> { - String packId = pack.packId(); - if (packId.equals(BuiltInPackSource.VANILLA_ID)) return; - - collectFromPack(pack, (entry, path) -> { - if (vanillaTags.get(entry.key()).contains(path)) { - return; - } - - result.put(entry.value().listTagIds() - .filter(tagKey -> tagKey.location().getPath().equals(path)) - .findFirst() - .orElseThrow(), packId); - }); - }); - return Collections.unmodifiableMap(result); - } - - private static void collectFromPack(PackResources pack, BiConsumer, String> output) { - Set namespaces = pack.getNamespaces(PackType.SERVER_DATA); - - for (String namespace : namespaces) { - Main.REGISTRY_ACCESS.registries().forEach(entry -> { - // this is probably expensive but can't find another way around and data-pack loader has similar logic - // the issue is that registry key can have parent/key (and custom folder too) but tag key can also have parent/key so parsing become a mess - // without having at least one of the two values - String tagDir = Registries.tagsDirPath(entry.key()); - pack.listResources(PackType.SERVER_DATA, namespace, tagDir, (id, supplier) -> { - Formatting.formatTagKey(tagDir, id.getPath()).ifPresentOrElse(path -> output.accept(entry, path), () -> { - LOGGER.warn("Unable to parse the path: {}/{}/{}.json in the data-pack {} into a tag key", namespace, tagDir, id.getPath(), pack.packId()); - }); - }); - }); - } - } - - private TagCollector() { - } -} diff --git a/paper-api/build.gradle.kts b/paper-api/build.gradle.kts index e86b16b6ce..e0e42ad1d4 100644 --- a/paper-api/build.gradle.kts +++ b/paper-api/build.gradle.kts @@ -93,16 +93,16 @@ dependencies { testRuntimeOnly("org.junit.platform:junit-platform-launcher") } -val generatedApiPath: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() +val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() idea { module { - generatedSourceDirs.add(generatedApiPath.toFile()) + generatedSourceDirs.add(generatedDir.toFile()) } } sourceSets { main { java { - srcDir(generatedApiPath) + srcDir(generatedDir) } } } @@ -228,21 +228,23 @@ tasks.compileTestJava { options.compilerArgs.add("-parameters") } -val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { +val scanJarForBadCalls by tasks.registering(io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") jarToScan.set(tasks.jar.flatMap { it.archiveFile }) classpath.from(configurations.compileClasspath) } tasks.check { - dependsOn(scanJar) + dependsOn(scanJarForBadCalls) } -val scanJarForOldGeneratedCode = tasks.register("scanJarForOldGeneratedCode", io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) { - mcVersion.set(providers.gradleProperty("mcVersion")) - annotation.set("Lio/papermc/paper/generated/GeneratedFrom;") - jarToScan.set(tasks.jar.flatMap { it.archiveFile }) - classpath.from(configurations.compileClasspath) -} -tasks.check { - dependsOn(scanJarForOldGeneratedCode) +if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) { + val scanJarForOldGeneratedCode by tasks.registering(io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) { + mcVersion.set(providers.gradleProperty("mcVersion")) + annotation.set("Lio/papermc/paper/generated/GeneratedFrom;") + jarToScan.set(tasks.jar.flatMap { it.archiveFile }) + classpath.from(configurations.compileClasspath) + } + tasks.check { + dependsOn(scanJarForOldGeneratedCode) + } } diff --git a/paper-api/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/paper-api/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java index f15a7b4471..dd80d9f8fa 100644 --- a/paper-api/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/paper-api/src/generated/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java @@ -66,8 +66,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") public interface VanillaGoal extends Goal { GoalKey RANDOM_STAND = create("random_stand", AbstractHorse.class); diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/AttributeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/AttributeKeys.java index be67e86206..0e681875d1 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/AttributeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/AttributeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class AttributeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BannerPatternKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BannerPatternKeys.java index 23e1145e04..19634b2cd9 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BannerPatternKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BannerPatternKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BannerPatternKeys { /** @@ -332,7 +332,7 @@ public final class BannerPatternKeys { } /** - * Creates a key for {@link PatternType} in the registry {@code minecraft:banner_pattern}. + * Creates a typed key for {@link PatternType} in the registry {@code minecraft:banner_pattern}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BiomeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BiomeKeys.java index bf0c0f6d9b..f46b6ef849 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BiomeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BiomeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BiomeKeys { /** @@ -486,7 +486,7 @@ public final class BiomeKeys { } /** - * Creates a key for {@link Biome} in the registry {@code minecraft:worldgen/biome}. + * Creates a typed key for {@link Biome} in the registry {@code minecraft:worldgen/biome}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BlockTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BlockTypeKeys.java index b71182ed34..92c1b9261e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/BlockTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/BlockTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BlockTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/CatVariantKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/CatVariantKeys.java index cb3ee5d280..1ca4dc2a2e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/CatVariantKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/CatVariantKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class CatVariantKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/DamageTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/DamageTypeKeys.java index 37476f7b8c..9fcb109a76 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/DamageTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/DamageTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class DamageTypeKeys { /** @@ -374,7 +374,7 @@ public final class DamageTypeKeys { } /** - * Creates a key for {@link DamageType} in the registry {@code minecraft:damage_type}. + * Creates a typed key for {@link DamageType} in the registry {@code minecraft:damage_type}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/DataComponentTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/DataComponentTypeKeys.java new file mode 100644 index 0000000000..b08633e887 --- /dev/null +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/DataComponentTypeKeys.java @@ -0,0 +1,505 @@ +package io.papermc.paper.registry.keys; + +import static net.kyori.adventure.key.Key.key; + +import io.papermc.paper.datacomponent.DataComponentType; +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import net.kyori.adventure.key.Key; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; + +/** + * Vanilla keys for {@link RegistryKey#DATA_COMPONENT_TYPE}. + * + * @apiNote The fields provided here are a direct representation of + * what is available from the vanilla game source. They may be + * changed (including removals) on any Minecraft version + * bump, so cross-version compatibility is not provided on the + * same level as it is on most of the other API. + */ +@SuppressWarnings({ + "unused", + "SpellCheckingInspection" +}) +@NullMarked +@GeneratedFrom("1.21.4") +@ApiStatus.Experimental +public final class DataComponentTypeKeys { + /** + * {@code minecraft:attribute_modifiers} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ATTRIBUTE_MODIFIERS = create(key("attribute_modifiers")); + + /** + * {@code minecraft:banner_patterns} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BANNER_PATTERNS = create(key("banner_patterns")); + + /** + * {@code minecraft:base_color} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BASE_COLOR = create(key("base_color")); + + /** + * {@code minecraft:bees} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BEES = create(key("bees")); + + /** + * {@code minecraft:block_entity_data} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_ENTITY_DATA = create(key("block_entity_data")); + + /** + * {@code minecraft:block_state} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BLOCK_STATE = create(key("block_state")); + + /** + * {@code minecraft:bucket_entity_data} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BUCKET_ENTITY_DATA = create(key("bucket_entity_data")); + + /** + * {@code minecraft:bundle_contents} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey BUNDLE_CONTENTS = create(key("bundle_contents")); + + /** + * {@code minecraft:can_break} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CAN_BREAK = create(key("can_break")); + + /** + * {@code minecraft:can_place_on} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CAN_PLACE_ON = create(key("can_place_on")); + + /** + * {@code minecraft:charged_projectiles} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CHARGED_PROJECTILES = create(key("charged_projectiles")); + + /** + * {@code minecraft:consumable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CONSUMABLE = create(key("consumable")); + + /** + * {@code minecraft:container} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CONTAINER = create(key("container")); + + /** + * {@code minecraft:container_loot} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CONTAINER_LOOT = create(key("container_loot")); + + /** + * {@code minecraft:creative_slot_lock} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CREATIVE_SLOT_LOCK = create(key("creative_slot_lock")); + + /** + * {@code minecraft:custom_data} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CUSTOM_DATA = create(key("custom_data")); + + /** + * {@code minecraft:custom_model_data} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CUSTOM_MODEL_DATA = create(key("custom_model_data")); + + /** + * {@code minecraft:custom_name} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey CUSTOM_NAME = create(key("custom_name")); + + /** + * {@code minecraft:damage} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DAMAGE = create(key("damage")); + + /** + * {@code minecraft:damage_resistant} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DAMAGE_RESISTANT = create(key("damage_resistant")); + + /** + * {@code minecraft:death_protection} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEATH_PROTECTION = create(key("death_protection")); + + /** + * {@code minecraft:debug_stick_state} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DEBUG_STICK_STATE = create(key("debug_stick_state")); + + /** + * {@code minecraft:dyed_color} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey DYED_COLOR = create(key("dyed_color")); + + /** + * {@code minecraft:enchantable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENCHANTABLE = create(key("enchantable")); + + /** + * {@code minecraft:enchantment_glint_override} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENCHANTMENT_GLINT_OVERRIDE = create(key("enchantment_glint_override")); + + /** + * {@code minecraft:enchantments} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENCHANTMENTS = create(key("enchantments")); + + /** + * {@code minecraft:entity_data} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ENTITY_DATA = create(key("entity_data")); + + /** + * {@code minecraft:equippable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey EQUIPPABLE = create(key("equippable")); + + /** + * {@code minecraft:firework_explosion} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FIREWORK_EXPLOSION = create(key("firework_explosion")); + + /** + * {@code minecraft:fireworks} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FIREWORKS = create(key("fireworks")); + + /** + * {@code minecraft:food} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey FOOD = create(key("food")); + + /** + * {@code minecraft:glider} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey GLIDER = create(key("glider")); + + /** + * {@code minecraft:hide_additional_tooltip} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey HIDE_ADDITIONAL_TOOLTIP = create(key("hide_additional_tooltip")); + + /** + * {@code minecraft:hide_tooltip} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey HIDE_TOOLTIP = create(key("hide_tooltip")); + + /** + * {@code minecraft:instrument} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey INSTRUMENT = create(key("instrument")); + + /** + * {@code minecraft:intangible_projectile} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey INTANGIBLE_PROJECTILE = create(key("intangible_projectile")); + + /** + * {@code minecraft:item_model} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ITEM_MODEL = create(key("item_model")); + + /** + * {@code minecraft:item_name} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey ITEM_NAME = create(key("item_name")); + + /** + * {@code minecraft:jukebox_playable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey JUKEBOX_PLAYABLE = create(key("jukebox_playable")); + + /** + * {@code minecraft:lock} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LOCK = create(key("lock")); + + /** + * {@code minecraft:lodestone_tracker} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LODESTONE_TRACKER = create(key("lodestone_tracker")); + + /** + * {@code minecraft:lore} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey LORE = create(key("lore")); + + /** + * {@code minecraft:map_color} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAP_COLOR = create(key("map_color")); + + /** + * {@code minecraft:map_decorations} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAP_DECORATIONS = create(key("map_decorations")); + + /** + * {@code minecraft:map_id} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAP_ID = create(key("map_id")); + + /** + * {@code minecraft:map_post_processing} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAP_POST_PROCESSING = create(key("map_post_processing")); + + /** + * {@code minecraft:max_damage} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAX_DAMAGE = create(key("max_damage")); + + /** + * {@code minecraft:max_stack_size} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey MAX_STACK_SIZE = create(key("max_stack_size")); + + /** + * {@code minecraft:note_block_sound} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey NOTE_BLOCK_SOUND = create(key("note_block_sound")); + + /** + * {@code minecraft:ominous_bottle_amplifier} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey OMINOUS_BOTTLE_AMPLIFIER = create(key("ominous_bottle_amplifier")); + + /** + * {@code minecraft:pot_decorations} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey POT_DECORATIONS = create(key("pot_decorations")); + + /** + * {@code minecraft:potion_contents} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey POTION_CONTENTS = create(key("potion_contents")); + + /** + * {@code minecraft:profile} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey PROFILE = create(key("profile")); + + /** + * {@code minecraft:rarity} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RARITY = create(key("rarity")); + + /** + * {@code minecraft:recipes} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey RECIPES = create(key("recipes")); + + /** + * {@code minecraft:repair_cost} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey REPAIR_COST = create(key("repair_cost")); + + /** + * {@code minecraft:repairable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey REPAIRABLE = create(key("repairable")); + + /** + * {@code minecraft:stored_enchantments} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey STORED_ENCHANTMENTS = create(key("stored_enchantments")); + + /** + * {@code minecraft:suspicious_stew_effects} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey SUSPICIOUS_STEW_EFFECTS = create(key("suspicious_stew_effects")); + + /** + * {@code minecraft:tool} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TOOL = create(key("tool")); + + /** + * {@code minecraft:tooltip_style} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TOOLTIP_STYLE = create(key("tooltip_style")); + + /** + * {@code minecraft:trim} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey TRIM = create(key("trim")); + + /** + * {@code minecraft:unbreakable} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey UNBREAKABLE = create(key("unbreakable")); + + /** + * {@code minecraft:use_cooldown} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey USE_COOLDOWN = create(key("use_cooldown")); + + /** + * {@code minecraft:use_remainder} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey USE_REMAINDER = create(key("use_remainder")); + + /** + * {@code minecraft:writable_book_content} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WRITABLE_BOOK_CONTENT = create(key("writable_book_content")); + + /** + * {@code minecraft:written_book_content} + * + * @apiNote This field is version-dependant and may be removed in future Minecraft versions + */ + public static final TypedKey WRITTEN_BOOK_CONTENT = create(key("written_book_content")); + + private DataComponentTypeKeys() { + } + + private static TypedKey create(final Key key) { + return TypedKey.create(RegistryKey.DATA_COMPONENT_TYPE, key); + } +} diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/EnchantmentKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/EnchantmentKeys.java index 33743dd4fb..5a81131e7f 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/EnchantmentKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/EnchantmentKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class EnchantmentKeys { /** @@ -325,7 +325,7 @@ public final class EnchantmentKeys { } /** - * Creates a key for {@link Enchantment} in the registry {@code minecraft:enchantment}. + * Creates a typed key for {@link Enchantment} in the registry {@code minecraft:enchantment}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/FluidKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/FluidKeys.java index 53b32d9897..9849ccb5a7 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/FluidKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/FluidKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class FluidKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/FrogVariantKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/FrogVariantKeys.java index 0a07c02782..00a19df2a4 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/FrogVariantKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/FrogVariantKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class FrogVariantKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/GameEventKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/GameEventKeys.java index 954f46e8d8..467be722f1 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/GameEventKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/GameEventKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class GameEventKeys { /** @@ -451,7 +451,7 @@ public final class GameEventKeys { } /** - * Creates a key for {@link GameEvent} in the registry {@code minecraft:game_event}. + * Creates a typed key for {@link GameEvent} in the registry {@code minecraft:game_event}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/InstrumentKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/InstrumentKeys.java index 4daa2fac52..b5d194e875 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/InstrumentKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/InstrumentKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class InstrumentKeys { /** @@ -87,7 +87,7 @@ public final class InstrumentKeys { } /** - * Creates a key for {@link MusicInstrument} in the registry {@code minecraft:instrument}. + * Creates a typed key for {@link MusicInstrument} in the registry {@code minecraft:instrument}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/ItemTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/ItemTypeKeys.java index d13da7a453..b8a07bc11e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/ItemTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/ItemTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class ItemTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/JukeboxSongKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/JukeboxSongKeys.java index c2992bec9a..2dc1938376 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/JukeboxSongKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/JukeboxSongKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class JukeboxSongKeys { /** @@ -164,7 +164,7 @@ public final class JukeboxSongKeys { } /** - * Creates a key for {@link JukeboxSong} in the registry {@code minecraft:jukebox_song}. + * Creates a typed key for {@link JukeboxSong} in the registry {@code minecraft:jukebox_song}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java index f849e6602b..15d23e1974 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MapDecorationTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class MapDecorationTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MenuTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MenuTypeKeys.java index e33724921e..024db69506 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MenuTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MenuTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class MenuTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MobEffectKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MobEffectKeys.java index 0ab126f652..2e60a06a0a 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/MobEffectKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/MobEffectKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class MobEffectKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/PaintingVariantKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/PaintingVariantKeys.java index 60c7580f03..c7ba9e9c62 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/PaintingVariantKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/PaintingVariantKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class PaintingVariantKeys { /** @@ -381,7 +381,7 @@ public final class PaintingVariantKeys { } /** - * Creates a key for {@link Art} in the registry {@code minecraft:painting_variant}. + * Creates a typed key for {@link Art} in the registry {@code minecraft:painting_variant}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/SoundEventKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/SoundEventKeys.java index ece998b1e0..67750a578e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/SoundEventKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/SoundEventKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class SoundEventKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureKeys.java index 4a390ebc99..1f5bb99b16 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class StructureKeys { /** @@ -269,7 +269,7 @@ public final class StructureKeys { } /** - * Creates a key for {@link Structure} in the registry {@code minecraft:worldgen/structure}. + * Creates a typed key for {@link Structure} in the registry {@code minecraft:worldgen/structure}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureTypeKeys.java index 469f355dbd..1aea513962 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/StructureTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class StructureTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimMaterialKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimMaterialKeys.java index 226f1dcada..f8e67689f6 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimMaterialKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimMaterialKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class TrimMaterialKeys { /** @@ -108,7 +108,7 @@ public final class TrimMaterialKeys { } /** - * Creates a key for {@link TrimMaterial} in the registry {@code minecraft:trim_material}. + * Creates a typed key for {@link TrimMaterial} in the registry {@code minecraft:trim_material}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimPatternKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimPatternKeys.java index 67ce5f1b38..7cf73082fc 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimPatternKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/TrimPatternKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class TrimPatternKeys { /** @@ -157,7 +157,7 @@ public final class TrimPatternKeys { } /** - * Creates a key for {@link TrimPattern} in the registry {@code minecraft:trim_pattern}. + * Creates a typed key for {@link TrimPattern} in the registry {@code minecraft:trim_pattern}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerProfessionKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerProfessionKeys.java index 30adcd29ed..599aed4f08 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerProfessionKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerProfessionKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class VillagerProfessionKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerTypeKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerTypeKeys.java index 3905a99276..c60af9c193 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerTypeKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/VillagerTypeKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class VillagerTypeKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/WolfVariantKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/WolfVariantKeys.java index 6d59b9bf93..a6836e81f3 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/WolfVariantKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/WolfVariantKeys.java @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class WolfVariantKeys { /** @@ -94,7 +94,7 @@ public final class WolfVariantKeys { } /** - * Creates a key for {@link Wolf.Variant} in the registry {@code minecraft:wolf_variant}. + * Creates a typed key for {@link Wolf.Variant} in the registry {@code minecraft:wolf_variant}. * * @param key the value's key in the registry * @return a new typed key diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java index 5e1c93327d..7ea99ea0d2 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BannerPatternTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#BANNER_PATTERN}. + * Vanilla tag keys for {@link RegistryKey#BANNER_PATTERN}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BannerPatternTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java index acc82a5dfb..7cfd7b2396 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BiomeTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#BIOME}. + * Vanilla tag keys for {@link RegistryKey#BIOME}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BiomeTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java index af2a45f63a..064d491d4d 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/BlockTypeTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#BLOCK}. + * Vanilla tag keys for {@link RegistryKey#BLOCK}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class BlockTypeTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java index 17a43aa9eb..fb1d555d84 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/CatVariantTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#CAT_VARIANT}. + * Vanilla tag keys for {@link RegistryKey#CAT_VARIANT}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class CatVariantTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java index d70cb03974..9056e1781e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/DamageTypeTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#DAMAGE_TYPE}. + * Vanilla tag keys for {@link RegistryKey#DAMAGE_TYPE}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class DamageTypeTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java index cf5a921cdb..9df4e78b7b 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EnchantmentTagKeys.java @@ -12,7 +12,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#ENCHANTMENT}. + * Vanilla tag keys for {@link RegistryKey#ENCHANTMENT}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -24,8 +24,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class EnchantmentTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EntityTypeTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EntityTypeTagKeys.java index 5a671ff8be..5cf82fcaa3 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EntityTypeTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/EntityTypeTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#ENTITY_TYPE}. + * Vanilla tag keys for {@link RegistryKey#ENTITY_TYPE}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class EntityTypeTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/FluidTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/FluidTagKeys.java index 4a33d3e87e..9a9766b414 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/FluidTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/FluidTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#FLUID}. + * Vanilla tag keys for {@link RegistryKey#FLUID}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class FluidTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java index 3cb6d6e1e0..9687694efa 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/GameEventTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#GAME_EVENT}. + * Vanilla tag keys for {@link RegistryKey#GAME_EVENT}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class GameEventTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java index 527fb77610..47efa1e94e 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/InstrumentTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#INSTRUMENT}. + * Vanilla tag keys for {@link RegistryKey#INSTRUMENT}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class InstrumentTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java index bf43d9af90..a03c75eec8 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/ItemTypeTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#ITEM}. + * Vanilla tag keys for {@link RegistryKey#ITEM}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class ItemTypeTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java index 50dac36d1c..3c29df14e3 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/PaintingVariantTagKeys.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#PAINTING_VARIANT}. + * Vanilla tag keys for {@link RegistryKey#PAINTING_VARIANT}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -23,8 +23,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class PaintingVariantTagKeys { /** diff --git a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/StructureTagKeys.java b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/StructureTagKeys.java index 5043b933d3..24de63baad 100644 --- a/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/StructureTagKeys.java +++ b/paper-api/src/generated/java/io/papermc/paper/registry/keys/tags/StructureTagKeys.java @@ -12,7 +12,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jspecify.annotations.NullMarked; /** - * Vanilla keys for {@link RegistryKey#STRUCTURE}. + * Vanilla tag keys for {@link RegistryKey#STRUCTURE}. * * @apiNote The fields provided here are a direct representation of * what is available from the vanilla game source. They may be @@ -24,8 +24,8 @@ import org.jspecify.annotations.NullMarked; "unused", "SpellCheckingInspection" }) -@GeneratedFrom("1.21.4") @NullMarked +@GeneratedFrom("1.21.4") @ApiStatus.Experimental public final class StructureTagKeys { /** diff --git a/paper-api/src/main/java/io/papermc/paper/datacomponent/DataComponentTypes.java b/paper-api/src/main/java/io/papermc/paper/datacomponent/DataComponentTypes.java index aa71271632..c078c04e97 100644 --- a/paper-api/src/main/java/io/papermc/paper/datacomponent/DataComponentTypes.java +++ b/paper-api/src/main/java/io/papermc/paper/datacomponent/DataComponentTypes.java @@ -63,21 +63,76 @@ import static java.util.Objects.requireNonNull; @ApiStatus.Experimental public final class DataComponentTypes { + // Start generate - DataComponentTypes + // @GeneratedFrom 1.21.4 /** - * Controls the maximum stacking size of this item. - *
- * Values greater than 1 are mutually exclusive with the {@link #MAX_DAMAGE} component. + * Holds attribute modifiers applied to any item, + * if not set, has an implicit default value based on the item type's + * default attributes (e.g. attack damage for weapons). */ - public static final DataComponentType.Valued<@IntRange(from = 1, to = 99) Integer> MAX_STACK_SIZE = valued("max_stack_size"); + public static final DataComponentType.Valued ATTRIBUTE_MODIFIERS = valued("attribute_modifiers"); + /** - * Controls the maximum amount of damage than an item can take, - * if not present, the item cannot be damaged. - *
- * Mutually exclusive with the {@link #MAX_STACK_SIZE} component greater than 1. + * Stores the additional patterns applied to a Banner or Shield. + */ + public static final DataComponentType.Valued BANNER_PATTERNS = valued("banner_patterns"); + + /** + * Stores the base color for a Shield. + */ + public static final DataComponentType.Valued BASE_COLOR = valued("base_color"); + + /** + * Holds block state properties to apply when placing a block. + */ + public static final DataComponentType.Valued BLOCK_DATA = valued("block_state"); + + /** + * Holds all items stored inside a Bundle. + * If removed, items cannot be added to the Bundle. + */ + public static final DataComponentType.Valued BUNDLE_CONTENTS = valued("bundle_contents"); + + /** + * Controls which blocks a player in Adventure mode can break with this item. + */ + public static final DataComponentType.Valued CAN_BREAK = valued("can_break"); + + /** + * Controls which blocks a player in Adventure mode can place on with this item. + */ + public static final DataComponentType.Valued CAN_PLACE_ON = valued("can_place_on"); + + /** + * Holds all projectiles that have been loaded into a Crossbow. + * If not present, the Crossbow is not charged. + */ + public static final DataComponentType.Valued CHARGED_PROJECTILES = valued("charged_projectiles"); + + public static final DataComponentType.Valued CONSUMABLE = valued("consumable"); + + /** + * Holds the contents of container blocks (Chests, Shulker Boxes) in item form. + */ + public static final DataComponentType.Valued CONTAINER = valued("container"); + + /** + * Holds the unresolved loot table and seed of a container-like block. + */ + public static final DataComponentType.Valued CONTAINER_LOOT = valued("container_loot"); + + /** + * Controls the minecraft:custom_model_data property in the item model. + */ + public static final DataComponentType.Valued CUSTOM_MODEL_DATA = valued("custom_model_data"); + + /** + * Custom name override for an item (as set by renaming with an Anvil). * - * @see #DAMAGE + * @see #ITEM_NAME */ - public static final DataComponentType.Valued<@Positive Integer> MAX_DAMAGE = valued("max_damage"); + public static final DataComponentType.Valued CUSTOM_NAME = valued("custom_name"); + /** * The amount of durability removed from an item, * for damageable items (with the {@link #MAX_DAMAGE} component), has an implicit default value of: {@code 0}. @@ -85,16 +140,80 @@ public final class DataComponentTypes { * @see #MAX_DAMAGE */ public static final DataComponentType.Valued<@NonNegative Integer> DAMAGE = valued("damage"); + /** - * If set, the item will not lose any durability when used. + * If present, this item will not take damage from the specified damage types. */ - public static final DataComponentType.Valued UNBREAKABLE = valued("unbreakable"); + public static final DataComponentType.Valued DAMAGE_RESISTANT = valued("damage_resistant"); + + public static final DataComponentType.Valued DEATH_PROTECTION = valued("death_protection"); + /** - * Custom name override for an item (as set by renaming with an Anvil). + * Represents a color applied to a dyeable item (in the {@link io.papermc.paper.registry.keys.tags.ItemTypeTagKeys#DYEABLE} item tag). + */ + public static final DataComponentType.Valued DYED_COLOR = valued("dyed_color"); + + public static final DataComponentType.Valued ENCHANTABLE = valued("enchantable"); + + /** + * Overrides the enchantment glint effect on an item. + * If not present, default behaviour is used. + */ + public static final DataComponentType.Valued ENCHANTMENT_GLINT_OVERRIDE = valued("enchantment_glint_override"); + + /** + * Controls the enchantments on an item. + *
+ * If not present on a non-enchantment book, this item will not work in an anvil. * - * @see #ITEM_NAME + * @see #STORED_ENCHANTMENTS */ - public static final DataComponentType.Valued CUSTOM_NAME = valued("custom_name"); + public static final DataComponentType.Valued ENCHANTMENTS = valued("enchantments"); + + public static final DataComponentType.Valued EQUIPPABLE = valued("equippable"); + + /** + * Stores the explosion crafted in a Firework Star. + */ + public static final DataComponentType.Valued FIREWORK_EXPLOSION = valued("firework_explosion"); + + /** + * Stores all explosions crafted into a Firework Rocket, as well as flight duration. + */ + public static final DataComponentType.Valued FIREWORKS = valued("fireworks"); + + /** + * Controls potential food benefits gained when consuming the item the component is applied on. + * Requires the {@link #CONSUMABLE} component to allow consumption in the first place. + */ + public static final DataComponentType.Valued FOOD = valued("food"); + + public static final DataComponentType.NonValued GLIDER = unvalued("glider"); + + /** + * If set, disables 'additional' tooltip part which comes from the item type + * (e.g. content of a shulker). + */ + public static final DataComponentType.NonValued HIDE_ADDITIONAL_TOOLTIP = unvalued("hide_additional_tooltip"); + + /** + * If set, it will completely hide whole item tooltip (that includes item name). + */ + public static final DataComponentType.NonValued HIDE_TOOLTIP = unvalued("hide_tooltip"); + + /** + * Holds the instrument type used by a Goat Horn. + */ + public static final DataComponentType.Valued INSTRUMENT = valued("instrument"); + + /** + * Marks that a projectile item would be intangible when fired + * (i.e. can only be picked up by a creative mode player). + */ + public static final DataComponentType.NonValued INTANGIBLE_PROJECTILE = unvalued("intangible_projectile"); + + public static final DataComponentType.Valued ITEM_MODEL = valued("item_model"); + /** * When present, replaces default item name with contained chat component. *

@@ -109,91 +228,100 @@ public final class DataComponentTypes { * @see #CUSTOM_NAME */ public static final DataComponentType.Valued ITEM_NAME = valued("item_name"); - public static final DataComponentType.Valued ITEM_MODEL = valued("item_model"); + + public static final DataComponentType.Valued JUKEBOX_PLAYABLE = valued("jukebox_playable"); + + /** + * If present, specifies that the Compass is a Lodestone Compass. + */ + public static final DataComponentType.Valued LODESTONE_TRACKER = valued("lodestone_tracker"); + /** * Additional lines to include in an item's tooltip. */ public static final DataComponentType.Valued LORE = valued("lore"); + + /** + * Represents the tint of the decorations on the {@link org.bukkit.inventory.ItemType#FILLED_MAP} item. + */ + public static final DataComponentType.Valued MAP_COLOR = valued("map_color"); + + /** + * Holds a list of markers to be placed on a {@link org.bukkit.inventory.ItemType#FILLED_MAP} (used for Explorer Maps). + */ + public static final DataComponentType.Valued MAP_DECORATIONS = valued("map_decorations"); + + /** + * References the shared map state holding map contents and markers for a {@link org.bukkit.inventory.ItemType#FILLED_MAP}. + */ + public static final DataComponentType.Valued MAP_ID = valued("map_id"); + + /** + * Internal map item state used in the map crafting recipe. + */ + public static final DataComponentType.Valued MAP_POST_PROCESSING = valued("map_post_processing"); + + /** + * Controls the maximum amount of damage than an item can take, + * if not present, the item cannot be damaged. + *
+ * Mutually exclusive with the {@link #MAX_STACK_SIZE} component greater than 1. + * + * @see #DAMAGE + */ + public static final DataComponentType.Valued<@Positive Integer> MAX_DAMAGE = valued("max_damage"); + + /** + * Controls the maximum stacking size of this item. + *
+ * Values greater than 1 are mutually exclusive with the {@link #MAX_DAMAGE} component. + */ + public static final DataComponentType.Valued MAX_STACK_SIZE = valued("max_stack_size"); + + /** + * Controls the sound played by a Player Head when placed on a Note Block. + */ + public static final DataComponentType.Valued NOTE_BLOCK_SOUND = valued("note_block_sound"); + + /** + * Controls the amplifier amount for an Ominous Bottle's Bad Omen effect. + */ + public static final DataComponentType.Valued OMINOUS_BOTTLE_AMPLIFIER = valued("ominous_bottle_amplifier"); + + /** + * Stores the Sherds applied to each side of a Decorated Pot. + */ + public static final DataComponentType.Valued POT_DECORATIONS = valued("pot_decorations"); + + /** + * Holds the contents of a potion (Potion, Splash Potion, Lingering Potion), + * or potion applied to a Tipped Arrow. + */ + public static final DataComponentType.Valued POTION_CONTENTS = valued("potion_contents"); + + /** + * Controls the skin displayed on a Player Head. + */ + public static final DataComponentType.Valued PROFILE = valued("profile"); + /** * Controls the color of the item name. */ public static final DataComponentType.Valued RARITY = valued("rarity"); + /** - * Controls the enchantments on an item. - *
- * If not present on a non-enchantment book, this item will not work in an anvil. - * - * @see #STORED_ENCHANTMENTS + * List of recipes that should be unlocked when using the Knowledge Book item. */ - public static final DataComponentType.Valued ENCHANTMENTS = valued("enchantments"); - /** - * Controls which blocks a player in Adventure mode can place on with this item. - */ - public static final DataComponentType.Valued CAN_PLACE_ON = valued("can_place_on"); - /** - * Controls which blocks a player in Adventure mode can break with this item. - */ - public static final DataComponentType.Valued CAN_BREAK = valued("can_break"); - /** - * Holds attribute modifiers applied to any item, - * if not set, has an implicit default value based on the item type's - * default attributes (e.g. attack damage for weapons). - */ - public static final DataComponentType.Valued ATTRIBUTE_MODIFIERS = valued("attribute_modifiers"); - /** - * Controls the minecraft:custom_model_data property in the item model. - */ - public static final DataComponentType.Valued CUSTOM_MODEL_DATA = valued("custom_model_data"); - /** - * If set, disables 'additional' tooltip part which comes from the item type - * (e.g. content of a shulker). - */ - public static final DataComponentType.NonValued HIDE_ADDITIONAL_TOOLTIP = unvalued("hide_additional_tooltip"); - /** - * If set, it will completely hide whole item tooltip (that includes item name). - */ - public static final DataComponentType.NonValued HIDE_TOOLTIP = unvalued("hide_tooltip"); + public static final DataComponentType.Valued> RECIPES = valued("recipes"); + /** * The additional experience cost required to modify an item in an Anvil. * If not present, has an implicit default value of: {@code 0}. */ public static final DataComponentType.Valued<@NonNegative Integer> REPAIR_COST = valued("repair_cost"); - // /** - // * Causes an item to not be pickable in the creative menu, currently not very useful. - // */ - // public static final DataComponentType.NonValued CREATIVE_SLOT_LOCK = unvalued("creative_slot_lock"); - /** - * Overrides the enchantment glint effect on an item. - * If not present, default behaviour is used. - */ - public static final DataComponentType.Valued ENCHANTMENT_GLINT_OVERRIDE = valued("enchantment_glint_override"); - /** - * Marks that a projectile item would be intangible when fired - * (i.e. can only be picked up by a creative mode player). - */ - public static final DataComponentType.NonValued INTANGIBLE_PROJECTILE = unvalued("intangible_projectile"); - /** - * Controls potential food benefits gained when consuming the item the component is applied on. - * Requires the {@link #CONSUMABLE} component to allow consumption in the first place. - */ - public static final DataComponentType.Valued FOOD = valued("food"); - public static final DataComponentType.Valued CONSUMABLE = valued("consumable"); - public static final DataComponentType.Valued USE_REMAINDER = valued("use_remainder"); - public static final DataComponentType.Valued USE_COOLDOWN = valued("use_cooldown"); - /** - * If present, this item will not take damage from the specified damage types. - */ - public static final DataComponentType.Valued DAMAGE_RESISTANT = valued("damage_resistant"); - /** - * Controls the behavior of the item as a tool. - */ - public static final DataComponentType.Valued TOOL = valued("tool"); - public static final DataComponentType.Valued ENCHANTABLE = valued("enchantable"); - public static final DataComponentType.Valued EQUIPPABLE = valued("equippable"); + public static final DataComponentType.Valued REPAIRABLE = valued("repairable"); - public static final DataComponentType.NonValued GLIDER = unvalued("glider"); - public static final DataComponentType.Valued TOOLTIP_STYLE = valued("tooltip_style"); - public static final DataComponentType.Valued DEATH_PROTECTION = valued("death_protection"); + /** * Stores list of enchantments and their levels for an Enchanted Book. * Unlike {@link #ENCHANTMENTS}, the effects provided by enchantments @@ -208,114 +336,51 @@ public final class DataComponentTypes { * @see #ENCHANTMENTS */ public static final DataComponentType.Valued STORED_ENCHANTMENTS = valued("stored_enchantments"); - /** - * Represents a color applied to a dyeable item (in the {@link io.papermc.paper.registry.keys.tags.ItemTypeTagKeys#DYEABLE} item tag). - */ - public static final DataComponentType.Valued DYED_COLOR = valued("dyed_color"); - /** - * Represents the tint of the decorations on the {@link org.bukkit.inventory.ItemType#FILLED_MAP} item. - */ - public static final DataComponentType.Valued MAP_COLOR = valued("map_color"); - /** - * References the shared map state holding map contents and markers for a {@link org.bukkit.inventory.ItemType#FILLED_MAP}. - */ - public static final DataComponentType.Valued MAP_ID = valued("map_id"); - /** - * Holds a list of markers to be placed on a {@link org.bukkit.inventory.ItemType#FILLED_MAP} (used for Explorer Maps). - */ - public static final DataComponentType.Valued MAP_DECORATIONS = valued("map_decorations"); - /** - * Internal map item state used in the map crafting recipe. - */ - public static final DataComponentType.Valued MAP_POST_PROCESSING = valued("map_post_processing"); - /** - * Holds all projectiles that have been loaded into a Crossbow. - * If not present, the Crossbow is not charged. - */ - public static final DataComponentType.Valued CHARGED_PROJECTILES = valued("charged_projectiles"); - /** - * Holds all items stored inside a Bundle. - * If removed, items cannot be added to the Bundle. - */ - public static final DataComponentType.Valued BUNDLE_CONTENTS = valued("bundle_contents"); - /** - * Holds the contents of a potion (Potion, Splash Potion, Lingering Potion), - * or potion applied to a Tipped Arrow. - */ - public static final DataComponentType.Valued POTION_CONTENTS = valued("potion_contents"); + /** * Holds the effects that will be applied when consuming Suspicious Stew. */ public static final DataComponentType.Valued SUSPICIOUS_STEW_EFFECTS = valued("suspicious_stew_effects"); + /** - * Holds the contents in a Book and Quill. + * Controls the behavior of the item as a tool. */ - public static final DataComponentType.Valued WRITABLE_BOOK_CONTENT = valued("writable_book_content"); - /** - * Holds the contents and metadata of a Written Book. - */ - public static final DataComponentType.Valued WRITTEN_BOOK_CONTENT = valued("written_book_content"); + public static final DataComponentType.Valued TOOL = valued("tool"); + + public static final DataComponentType.Valued TOOLTIP_STYLE = valued("tooltip_style"); + /** * Holds the trims applied to an item in recipes */ public static final DataComponentType.Valued TRIM = valued("trim"); + + /** + * If set, the item will not lose any durability when used. + */ + public static final DataComponentType.Valued UNBREAKABLE = valued("unbreakable"); + + public static final DataComponentType.Valued USE_COOLDOWN = valued("use_cooldown"); + + public static final DataComponentType.Valued USE_REMAINDER = valued("use_remainder"); + + /** + * Holds the contents in a Book and Quill. + */ + public static final DataComponentType.Valued WRITABLE_BOOK_CONTENT = valued("writable_book_content"); + + /** + * Holds the contents and metadata of a Written Book. + */ + public static final DataComponentType.Valued WRITTEN_BOOK_CONTENT = valued("written_book_content"); + // End generate - DataComponentTypes + // /** + // * Causes an item to not be pickable in the creative menu, currently not very useful. + // */ + // public static final DataComponentType.NonValued CREATIVE_SLOT_LOCK = unvalued("creative_slot_lock"); // debug_stick_state - Block Property API // entity_data // bucket_entity_data // block_entity_data - /** - * Holds the instrument type used by a Goat Horn. - */ - public static final DataComponentType.Valued INSTRUMENT = valued("instrument"); - /** - * Controls the amplifier amount for an Ominous Bottle's Bad Omen effect. - */ - public static final DataComponentType.Valued OMINOUS_BOTTLE_AMPLIFIER = valued("ominous_bottle_amplifier"); - public static final DataComponentType.Valued JUKEBOX_PLAYABLE = valued("jukebox_playable"); - /** - * List of recipes that should be unlocked when using the Knowledge Book item. - */ - public static final DataComponentType.Valued> RECIPES = valued("recipes"); - /** - * If present, specifies that the Compass is a Lodestone Compass. - */ - public static final DataComponentType.Valued LODESTONE_TRACKER = valued("lodestone_tracker"); - /** - * Stores the explosion crafted in a Firework Star. - */ - public static final DataComponentType.Valued FIREWORK_EXPLOSION = valued("firework_explosion"); - /** - * Stores all explosions crafted into a Firework Rocket, as well as flight duration. - */ - public static final DataComponentType.Valued FIREWORKS = valued("fireworks"); - /** - * Controls the skin displayed on a Player Head. - */ - public static final DataComponentType.Valued PROFILE = valued("profile"); - /** - * Controls the sound played by a Player Head when placed on a Note Block. - */ - public static final DataComponentType.Valued NOTE_BLOCK_SOUND = valued("note_block_sound"); - /** - * Stores the additional patterns applied to a Banner or Shield. - */ - public static final DataComponentType.Valued BANNER_PATTERNS = valued("banner_patterns"); - /** - * Stores the base color for a Shield. - */ - public static final DataComponentType.Valued BASE_COLOR = valued("base_color"); - /** - * Stores the Sherds applied to each side of a Decorated Pot. - */ - public static final DataComponentType.Valued POT_DECORATIONS = valued("pot_decorations"); - /** - * Holds the contents of container blocks (Chests, Shulker Boxes) in item form. - */ - public static final DataComponentType.Valued CONTAINER = valued("container"); - /** - * Holds block state properties to apply when placing a block. - */ - public static final DataComponentType.Valued BLOCK_DATA = valued("block_state"); // bees // /** // * Holds the lock state of a container-like block, @@ -325,10 +390,6 @@ public final class DataComponentTypes { // * to open this container. // */ // public static final DataComponentType.Valued LOCK = valued("lock"); - /** - * Holds the unresolved loot table and seed of a container-like block. - */ - public static final DataComponentType.Valued CONTAINER_LOOT = valued("container_loot"); private static DataComponentType.NonValued unvalued(final String name) { return (DataComponentType.NonValued) requireNonNull(Registry.DATA_COMPONENT_TYPE.get(NamespacedKey.minecraft(name)), name + " unvalued data component type couldn't be found, this is a bug."); diff --git a/paper-api/src/main/java/io/papermc/paper/datacomponent/item/consumable/ItemUseAnimation.java b/paper-api/src/main/java/io/papermc/paper/datacomponent/item/consumable/ItemUseAnimation.java index f8ffefc1e9..5d26ada105 100644 --- a/paper-api/src/main/java/io/papermc/paper/datacomponent/item/consumable/ItemUseAnimation.java +++ b/paper-api/src/main/java/io/papermc/paper/datacomponent/item/consumable/ItemUseAnimation.java @@ -4,6 +4,8 @@ package io.papermc.paper.datacomponent.item.consumable; * Represents the hand animation that is used when a player is consuming this item. */ public enum ItemUseAnimation { + // Start generate - ItemUseAnimation + // @GeneratedFrom 1.21.4 NONE, EAT, DRINK, @@ -14,5 +16,6 @@ public enum ItemUseAnimation { SPYGLASS, TOOT_HORN, BRUSH, - BUNDLE + BUNDLE; + // End generate - ItemUseAnimation } diff --git a/paper-api/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java b/paper-api/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java index d155815794..13d8a170fe 100644 --- a/paper-api/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java +++ b/paper-api/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java @@ -24,11 +24,14 @@ import static io.papermc.paper.registry.event.RegistryEventProviderImpl.create; @NullMarked public final class RegistryEvents { + // Start generate - RegistryEvents + // @GeneratedFrom 1.21.4 public static final RegistryEventProvider GAME_EVENT = create(RegistryKey.GAME_EVENT); - public static final RegistryEventProvider ENCHANTMENT = create(RegistryKey.ENCHANTMENT); - public static final RegistryEventProvider PAINTING_VARIANT = create(RegistryKey.PAINTING_VARIANT); - public static final RegistryEventProvider BANNER_PATTERN = create(RegistryKey.BANNER_PATTERN); public static final RegistryEventProvider DAMAGE_TYPE = create(RegistryKey.DAMAGE_TYPE); + public static final RegistryEventProvider ENCHANTMENT = create(RegistryKey.ENCHANTMENT); + public static final RegistryEventProvider BANNER_PATTERN = create(RegistryKey.BANNER_PATTERN); + public static final RegistryEventProvider PAINTING_VARIANT = create(RegistryKey.PAINTING_VARIANT); + // End generate - RegistryEvents private RegistryEvents() { } diff --git a/paper-api/src/main/java/org/bukkit/Art.java b/paper-api/src/main/java/org/bukkit/Art.java index 82daa6941c..68e0f9d81a 100644 --- a/paper-api/src/main/java/org/bukkit/Art.java +++ b/paper-api/src/main/java/org/bukkit/Art.java @@ -35,57 +35,109 @@ public interface Art extends OldEnum, Keyed { return InlinedRegistryBuilderProvider.instance().createPaintingVariant(value); } - Art KEBAB = getArt("kebab"); - Art AZTEC = getArt("aztec"); + // Start generate - Art + // @GeneratedFrom 1.21.4 Art ALBAN = getArt("alban"); + + Art AZTEC = getArt("aztec"); + Art AZTEC2 = getArt("aztec2"); - Art BOMB = getArt("bomb"); - Art PLANT = getArt("plant"); - Art WASTELAND = getArt("wasteland"); - Art POOL = getArt("pool"); - Art COURBET = getArt("courbet"); - Art SEA = getArt("sea"); - Art SUNSET = getArt("sunset"); - Art CREEBET = getArt("creebet"); - Art WANDERER = getArt("wanderer"); - Art GRAHAM = getArt("graham"); - Art MATCH = getArt("match"); - Art BUST = getArt("bust"); - Art STAGE = getArt("stage"); - Art VOID = getArt("void"); - Art SKULL_AND_ROSES = getArt("skull_and_roses"); - Art WITHER = getArt("wither"); - Art FIGHTERS = getArt("fighters"); - Art POINTER = getArt("pointer"); - Art PIGSCENE = getArt("pigscene"); - Art BURNING_SKULL = getArt("burning_skull"); - Art SKELETON = getArt("skeleton"); - Art DONKEY_KONG = getArt("donkey_kong"); - Art EARTH = getArt("earth"); - Art WIND = getArt("wind"); - Art WATER = getArt("water"); - Art FIRE = getArt("fire"); - Art BAROQUE = getArt("baroque"); - Art HUMBLE = getArt("humble"); - Art MEDITATIVE = getArt("meditative"); - Art PRAIRIE_RIDE = getArt("prairie_ride"); - Art UNPACKED = getArt("unpacked"); + Art BACKYARD = getArt("backyard"); + + Art BAROQUE = getArt("baroque"); + + Art BOMB = getArt("bomb"); + Art BOUQUET = getArt("bouquet"); + + Art BURNING_SKULL = getArt("burning_skull"); + + Art BUST = getArt("bust"); + Art CAVEBIRD = getArt("cavebird"); + Art CHANGING = getArt("changing"); + Art COTAN = getArt("cotan"); + + Art COURBET = getArt("courbet"); + + Art CREEBET = getArt("creebet"); + + Art DONKEY_KONG = getArt("donkey_kong"); + + Art EARTH = getArt("earth"); + Art ENDBOSS = getArt("endboss"); + Art FERN = getArt("fern"); + + Art FIGHTERS = getArt("fighters"); + Art FINDING = getArt("finding"); + + Art FIRE = getArt("fire"); + + Art GRAHAM = getArt("graham"); + + Art HUMBLE = getArt("humble"); + + Art KEBAB = getArt("kebab"); + Art LOWMIST = getArt("lowmist"); + + Art MATCH = getArt("match"); + + Art MEDITATIVE = getArt("meditative"); + Art ORB = getArt("orb"); + Art OWLEMONS = getArt("owlemons"); + Art PASSAGE = getArt("passage"); + + Art PIGSCENE = getArt("pigscene"); + + Art PLANT = getArt("plant"); + + Art POINTER = getArt("pointer"); + Art POND = getArt("pond"); + + Art POOL = getArt("pool"); + + Art PRAIRIE_RIDE = getArt("prairie_ride"); + + Art SEA = getArt("sea"); + + Art SKELETON = getArt("skeleton"); + + Art SKULL_AND_ROSES = getArt("skull_and_roses"); + + Art STAGE = getArt("stage"); + Art SUNFLOWERS = getArt("sunflowers"); + + Art SUNSET = getArt("sunset"); + Art TIDES = getArt("tides"); + Art UNPACKED = getArt("unpacked"); + + Art VOID = getArt("void"); + + Art WANDERER = getArt("wanderer"); + + Art WASTELAND = getArt("wasteland"); + + Art WATER = getArt("water"); + + Art WIND = getArt("wind"); + + Art WITHER = getArt("wither"); + // End generate - Art + @NotNull private static Art getArt(@NotNull String key) { return RegistryAccess.registryAccess().getRegistry(RegistryKey.PAINTING_VARIANT).getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/FeatureFlag.java b/paper-api/src/main/java/org/bukkit/FeatureFlag.java index a1e093c40c..79664e3bd0 100644 --- a/paper-api/src/main/java/org/bukkit/FeatureFlag.java +++ b/paper-api/src/main/java/org/bukkit/FeatureFlag.java @@ -14,19 +14,19 @@ import org.jetbrains.annotations.ApiStatus; */ public interface FeatureFlag extends Keyed { - // Paper start - overhaul FeatureFlag API - /** - * The {@code vanilla} feature flag. - */ - FeatureFlag VANILLA = create("vanilla"); + // Start generate - FeatureFlag + // @GeneratedFrom 1.21.4 + @ApiStatus.Experimental + FeatureFlag MINECART_IMPROVEMENTS = create("minecart_improvements"); - /** - * AVAILABLE BETWEEN VERSIONS: 1.19.3 - 1.21.1 - * - * @deprecated not available since 1.21.2 - */ - @Deprecated(since = "1.21.2") - FeatureFlag BUNDLE = deprecated("bundle"); + @ApiStatus.Experimental + FeatureFlag REDSTONE_EXPERIMENTS = create("redstone_experiments"); + + @ApiStatus.Experimental + FeatureFlag TRADE_REBALANCE = create("trade_rebalance"); + + FeatureFlag VANILLA = create("vanilla"); + // End generate - FeatureFlag /** * AVAILABLE BETWEEN VERSIONS: 1.19 - 1.19.4 @@ -37,9 +37,6 @@ public interface FeatureFlag extends Keyed { @Deprecated(since = "1.20") FeatureFlag UPDATE_1_20 = deprecated("update_1_20"); - @ApiStatus.Experimental // Paper - add missing annotation - FeatureFlag TRADE_REBALANCE = create("trade_rebalance"); - /** * AVAILABLE BETWEEN VERSIONS: 1.20.5 - 1.20.6 * @@ -48,6 +45,14 @@ public interface FeatureFlag extends Keyed { @Deprecated(since = "1.21") FeatureFlag UPDATE_121 = deprecated("update_1_21"); + /** + * AVAILABLE BETWEEN VERSIONS: 1.19.3 - 1.21.1 + * + * @deprecated not available since 1.21.2 + */ + @Deprecated(since = "1.21.2") + FeatureFlag BUNDLE = deprecated("bundle"); + /** * AVAILABLE BETWEEN VERSIONS: 1.21.2 - 1.21.3 * @@ -56,12 +61,6 @@ public interface FeatureFlag extends Keyed { @Deprecated(since = "1.21.4") FeatureFlag WINTER_DROP = deprecated("winter_drop"); - @ApiStatus.Experimental // Paper - add missing annotation - FeatureFlag REDSTONE_EXPERIMENTS = create("redstone_experiments"); - - @ApiStatus.Experimental // Paper - add missing annotation - FeatureFlag MINECART_IMPROVEMENTS = create("minecart_improvements"); - /** * An index of all feature flags. */ diff --git a/paper-api/src/main/java/org/bukkit/Fluid.java b/paper-api/src/main/java/org/bukkit/Fluid.java index 45a095f16c..19b8078641 100644 --- a/paper-api/src/main/java/org/bukkit/Fluid.java +++ b/paper-api/src/main/java/org/bukkit/Fluid.java @@ -12,27 +12,19 @@ import org.jetbrains.annotations.NotNull; */ public interface Fluid extends OldEnum, Keyed { - /** - * No fluid. - */ + // Start generate - Fluid + // @GeneratedFrom 1.21.4 Fluid EMPTY = getFluid("empty"); - /** - * Stationary water. - */ - Fluid WATER = getFluid("water"); - /** - * Flowing water. - */ - Fluid FLOWING_WATER = getFluid("flowing_water"); - /** - * Stationary lava. - */ - Fluid LAVA = getFluid("lava"); - /** - * Flowing lava. - */ + Fluid FLOWING_LAVA = getFluid("flowing_lava"); + Fluid FLOWING_WATER = getFluid("flowing_water"); + + Fluid LAVA = getFluid("lava"); + + Fluid WATER = getFluid("water"); + // End generate - Fluid + @NotNull private static Fluid getFluid(@NotNull String key) { return Registry.FLUID.getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/GameEvent.java b/paper-api/src/main/java/org/bukkit/GameEvent.java index ac2601db73..ad9f893d46 100644 --- a/paper-api/src/main/java/org/bukkit/GameEvent.java +++ b/paper-api/src/main/java/org/bukkit/GameEvent.java @@ -11,107 +11,229 @@ import org.jetbrains.annotations.Nullable; */ public abstract class GameEvent implements Keyed { + // Start generate - GameEvent + // @GeneratedFrom 1.21.4 public static final GameEvent BLOCK_ACTIVATE = getEvent("block_activate"); + public static final GameEvent BLOCK_ATTACH = getEvent("block_attach"); + public static final GameEvent BLOCK_CHANGE = getEvent("block_change"); + public static final GameEvent BLOCK_CLOSE = getEvent("block_close"); + public static final GameEvent BLOCK_DEACTIVATE = getEvent("block_deactivate"); + public static final GameEvent BLOCK_DESTROY = getEvent("block_destroy"); + public static final GameEvent BLOCK_DETACH = getEvent("block_detach"); + public static final GameEvent BLOCK_OPEN = getEvent("block_open"); + public static final GameEvent BLOCK_PLACE = getEvent("block_place"); - @Deprecated(since = "1.19") - public static final GameEvent BLOCK_PRESS = getEvent("block_activate"); - @Deprecated(since = "1.19") - public static final GameEvent BLOCK_SWITCH = getEvent("block_activate"); - @Deprecated(since = "1.19") - public static final GameEvent BLOCK_UNPRESS = getEvent("block_deactivate"); - @Deprecated(since = "1.19") - public static final GameEvent BLOCK_UNSWITCH = getEvent("block_deactivate"); + public static final GameEvent CONTAINER_CLOSE = getEvent("container_close"); + public static final GameEvent CONTAINER_OPEN = getEvent("container_open"); - @Deprecated(since = "1.20") - public static final GameEvent DISPENSE_FAIL = getEvent("block_activate"); + public static final GameEvent DRINK = getEvent("drink"); - @Deprecated(since = "1.19") - public static final GameEvent DRINKING_FINISH = getEvent("drink"); + public static final GameEvent EAT = getEvent("eat"); - @Deprecated(since = "1.19") - public static final GameEvent ELYTRA_FREE_FALL = getEvent("elytra_glide"); + public static final GameEvent ELYTRA_GLIDE = getEvent("elytra_glide"); - public static final GameEvent ENTITY_DAMAGE = getEvent("entity_damage"); - @Deprecated(since = "1.19") - public static final GameEvent ENTITY_DAMAGED = getEvent("entity_damage"); - public static final GameEvent ENTITY_DIE = getEvent("entity_die"); - public static final GameEvent ENTITY_DISMOUNT = getEvent("entity_dismount"); - @Deprecated(since = "1.19") - public static final GameEvent ENTITY_DYING = getEvent("entity_die"); - public static final GameEvent ENTITY_INTERACT = getEvent("entity_interact"); - public static final GameEvent ENTITY_MOUNT = getEvent("entity_mount"); - @Deprecated(since = "1.19") - public static final GameEvent ENTITY_KILLED = getEvent("entity_die"); - public static final GameEvent ENTITY_PLACE = getEvent("entity_place"); + public static final GameEvent ENTITY_ACTION = getEvent("entity_action"); - @Deprecated(since = "1.20.2") - public static final GameEvent ENTITY_ROAR = getEvent("entity_action"); - @Deprecated(since = "1.20.2") - public static final GameEvent ENTITY_SHAKE = getEvent("entity_action"); + + public static final GameEvent ENTITY_DAMAGE = getEvent("entity_damage"); + + public static final GameEvent ENTITY_DIE = getEvent("entity_die"); + + public static final GameEvent ENTITY_DISMOUNT = getEvent("entity_dismount"); + + public static final GameEvent ENTITY_INTERACT = getEvent("entity_interact"); + + public static final GameEvent ENTITY_MOUNT = getEvent("entity_mount"); + + public static final GameEvent ENTITY_PLACE = getEvent("entity_place"); + public static final GameEvent EQUIP = getEvent("equip"); + public static final GameEvent EXPLODE = getEvent("explode"); + public static final GameEvent FLAP = getEvent("flap"); + public static final GameEvent FLUID_PICKUP = getEvent("fluid_pickup"); + public static final GameEvent FLUID_PLACE = getEvent("fluid_place"); + public static final GameEvent HIT_GROUND = getEvent("hit_ground"); + public static final GameEvent INSTRUMENT_PLAY = getEvent("instrument_play"); + public static final GameEvent ITEM_INTERACT_FINISH = getEvent("item_interact_finish"); + public static final GameEvent ITEM_INTERACT_START = getEvent("item_interact_start"); + public static final GameEvent JUKEBOX_PLAY = getEvent("jukebox_play"); + public static final GameEvent JUKEBOX_STOP_PLAY = getEvent("jukebox_stop_play"); + public static final GameEvent LIGHTNING_STRIKE = getEvent("lightning_strike"); - @Deprecated(since = "1.19") - public static final GameEvent MOB_INTERACT = getEvent("entity_interact"); + public static final GameEvent NOTE_BLOCK_PLAY = getEvent("note_block_play"); - @Deprecated(since = "1.20") - public static final GameEvent PISTON_CONTRACT = getEvent("block_deactivate"); - @Deprecated(since = "1.20") - public static final GameEvent PISTON_EXTEND = getEvent("block_activate"); + public static final GameEvent PRIME_FUSE = getEvent("prime_fuse"); + public static final GameEvent PROJECTILE_LAND = getEvent("projectile_land"); + public static final GameEvent PROJECTILE_SHOOT = getEvent("projectile_shoot"); - @Deprecated(since = "1.19") - public static final GameEvent RAVAGER_ROAR = getEvent("entity_action"); - @Deprecated(since = "1.19") - public static final GameEvent RING_BELL = getEvent("block_change"); - public static final GameEvent SCULK_SENSOR_TENDRILS_CLICKING = getEvent("sculk_sensor_tendrils_clicking"); - public static final GameEvent SHEAR = getEvent("shear"); - public static final GameEvent SHRIEK = getEvent("shriek"); - @Deprecated(since = "1.19") - public static final GameEvent SHULKER_CLOSE = getEvent("container_close"); - @Deprecated(since = "1.19") - public static final GameEvent SHULKER_OPEN = getEvent("container_open"); - public static final GameEvent SPLASH = getEvent("splash"); - public static final GameEvent STEP = getEvent("step"); - public static final GameEvent SWIM = getEvent("swim"); - public static final GameEvent TELEPORT = getEvent("teleport"); - public static final GameEvent UNEQUIP = getEvent("unequip"); - @Deprecated(since = "1.19") - public static final GameEvent WOLF_SHAKING = getEvent("entity_action"); + public static final GameEvent RESONATE_1 = getEvent("resonate_1"); + public static final GameEvent RESONATE_2 = getEvent("resonate_2"); + public static final GameEvent RESONATE_3 = getEvent("resonate_3"); + public static final GameEvent RESONATE_4 = getEvent("resonate_4"); + public static final GameEvent RESONATE_5 = getEvent("resonate_5"); + public static final GameEvent RESONATE_6 = getEvent("resonate_6"); + public static final GameEvent RESONATE_7 = getEvent("resonate_7"); + public static final GameEvent RESONATE_8 = getEvent("resonate_8"); + public static final GameEvent RESONATE_9 = getEvent("resonate_9"); + public static final GameEvent RESONATE_10 = getEvent("resonate_10"); + public static final GameEvent RESONATE_11 = getEvent("resonate_11"); + public static final GameEvent RESONATE_12 = getEvent("resonate_12"); + public static final GameEvent RESONATE_13 = getEvent("resonate_13"); + public static final GameEvent RESONATE_14 = getEvent("resonate_14"); + public static final GameEvent RESONATE_15 = getEvent("resonate_15"); + public static final GameEvent SCULK_SENSOR_TENDRILS_CLICKING = getEvent("sculk_sensor_tendrils_clicking"); + + public static final GameEvent SHEAR = getEvent("shear"); + + public static final GameEvent SHRIEK = getEvent("shriek"); + + public static final GameEvent SPLASH = getEvent("splash"); + + public static final GameEvent STEP = getEvent("step"); + + public static final GameEvent SWIM = getEvent("swim"); + + public static final GameEvent TELEPORT = getEvent("teleport"); + + public static final GameEvent UNEQUIP = getEvent("unequip"); + // End generate - GameEvent + /** + * @deprecated in favor of {@link #BLOCK_ACTIVATE} + */ + @Deprecated(since = "1.19") + public static final GameEvent BLOCK_PRESS = BLOCK_ACTIVATE; + /** + * @deprecated in favor of {@link #BLOCK_ACTIVATE} + */ + @Deprecated(since = "1.19") + public static final GameEvent BLOCK_SWITCH = BLOCK_ACTIVATE; + /** + * @deprecated in favor of {@link #BLOCK_DEACTIVATE} + */ + @Deprecated(since = "1.19") + public static final GameEvent BLOCK_UNPRESS = BLOCK_DEACTIVATE; + /** + * @deprecated in favor of {@link #BLOCK_DEACTIVATE} + */ + @Deprecated(since = "1.19") + public static final GameEvent BLOCK_UNSWITCH = BLOCK_DEACTIVATE; + /** + * @deprecated in favor of {@link #BLOCK_ACTIVATE} + */ + @Deprecated(since = "1.20") + public static final GameEvent DISPENSE_FAIL = BLOCK_ACTIVATE; + /** + * @deprecated in favor of {@link #DRINK} + */ + @Deprecated(since = "1.19") + public static final GameEvent DRINKING_FINISH = DRINK; + /** + * @deprecated in favor of {@link #ELYTRA_GLIDE} + */ + @Deprecated(since = "1.19") + public static final GameEvent ELYTRA_FREE_FALL = ELYTRA_GLIDE; + /** + * @deprecated in favor of {@link #ENTITY_DAMAGE} + */ + @Deprecated(since = "1.19") + public static final GameEvent ENTITY_DAMAGED = ENTITY_DAMAGE; + /** + * @deprecated in favor of {@link #ENTITY_DIE} + */ + @Deprecated(since = "1.19") + public static final GameEvent ENTITY_DYING = ENTITY_DIE; + /** + * @deprecated in favor of {@link #ENTITY_DIE} + */ + @Deprecated(since = "1.19") + public static final GameEvent ENTITY_KILLED = ENTITY_DIE; + /** + * @deprecated in favor of {@link #ENTITY_ACTION} + */ + @Deprecated(since = "1.20.2") + public static final GameEvent ENTITY_ROAR = ENTITY_ACTION; + /** + * @deprecated in favor of {@link #ENTITY_ACTION} + */ + @Deprecated(since = "1.20.2") + public static final GameEvent ENTITY_SHAKE = ENTITY_ACTION; + /** + * @deprecated in favor of {@link #ENTITY_INTERACT} + */ + @Deprecated(since = "1.19") + public static final GameEvent MOB_INTERACT = ENTITY_INTERACT; + /** + * @deprecated in favor of {@link #BLOCK_DEACTIVATE} + */ + @Deprecated(since = "1.20") + public static final GameEvent PISTON_CONTRACT = BLOCK_DEACTIVATE; + /** + * @deprecated in favor of {@link #BLOCK_ACTIVATE} + */ + @Deprecated(since = "1.20") + public static final GameEvent PISTON_EXTEND = BLOCK_ACTIVATE; + /** + * @deprecated in favor of {@link #ENTITY_ACTION} + */ + @Deprecated(since = "1.19") + public static final GameEvent RAVAGER_ROAR = ENTITY_ACTION; + /** + * @deprecated in favor of {@link #BLOCK_CHANGE} + */ + @Deprecated(since = "1.19") + public static final GameEvent RING_BELL = BLOCK_CHANGE; + /** + * @deprecated in favor of {@link #CONTAINER_CLOSE} + */ + @Deprecated(since = "1.19") + public static final GameEvent SHULKER_CLOSE = CONTAINER_CLOSE; + /** + * @deprecated in favor of {@link #CONTAINER_OPEN} + */ + @Deprecated(since = "1.19") + public static final GameEvent SHULKER_OPEN = CONTAINER_OPEN; + /** + * @deprecated in favor of {@link #ENTITY_ACTION} + */ + @Deprecated(since = "1.19") + public static final GameEvent WOLF_SHAKING = ENTITY_ACTION; + /** * Returns a {@link GameEvent} by a {@link NamespacedKey}. * diff --git a/paper-api/src/main/java/org/bukkit/JukeboxSong.java b/paper-api/src/main/java/org/bukkit/JukeboxSong.java index 7e3dca5023..a1e894543b 100644 --- a/paper-api/src/main/java/org/bukkit/JukeboxSong.java +++ b/paper-api/src/main/java/org/bukkit/JukeboxSong.java @@ -11,25 +11,46 @@ import org.jetbrains.annotations.NotNull; @ApiStatus.Experimental public interface JukeboxSong extends Keyed, Translatable { - public static final JukeboxSong THIRTEEN = get("13"); - public static final JukeboxSong CAT = get("cat"); - public static final JukeboxSong BLOCKS = get("blocks"); - public static final JukeboxSong CHIRP = get("chirp"); - public static final JukeboxSong FAR = get("far"); - public static final JukeboxSong MALL = get("mall"); - public static final JukeboxSong MELLOHI = get("mellohi"); - public static final JukeboxSong STAL = get("stal"); - public static final JukeboxSong STRAD = get("strad"); - public static final JukeboxSong WARD = get("ward"); - public static final JukeboxSong ELEVEN = get("11"); - public static final JukeboxSong WAIT = get("wait"); - public static final JukeboxSong PIGSTEP = get("pigstep"); - public static final JukeboxSong OTHERSIDE = get("otherside"); - public static final JukeboxSong FIVE = get("5"); - public static final JukeboxSong RELIC = get("relic"); - public static final JukeboxSong PRECIPICE = get("precipice"); - public static final JukeboxSong CREATOR = get("creator"); - public static final JukeboxSong CREATOR_MUSIC_BOX = get("creator_music_box"); + // Start generate - JukeboxSong + // @GeneratedFrom 1.21.4 + JukeboxSong ELEVEN = get("11"); + + JukeboxSong THIRTEEN = get("13"); + + JukeboxSong FIVE = get("5"); + + JukeboxSong BLOCKS = get("blocks"); + + JukeboxSong CAT = get("cat"); + + JukeboxSong CHIRP = get("chirp"); + + JukeboxSong CREATOR = get("creator"); + + JukeboxSong CREATOR_MUSIC_BOX = get("creator_music_box"); + + JukeboxSong FAR = get("far"); + + JukeboxSong MALL = get("mall"); + + JukeboxSong MELLOHI = get("mellohi"); + + JukeboxSong OTHERSIDE = get("otherside"); + + JukeboxSong PIGSTEP = get("pigstep"); + + JukeboxSong PRECIPICE = get("precipice"); + + JukeboxSong RELIC = get("relic"); + + JukeboxSong STAL = get("stal"); + + JukeboxSong STRAD = get("strad"); + + JukeboxSong WAIT = get("wait"); + + JukeboxSong WARD = get("ward"); + // End generate - JukeboxSong @NotNull private static JukeboxSong get(@NotNull String key) { diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index 9afafc00e4..327dd6b380 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -9,6 +9,8 @@ import java.util.Locale; import java.util.Map; import java.util.function.Consumer; import java.util.function.Supplier; +import io.papermc.paper.datacomponent.DataComponentTypes; +import io.papermc.paper.datacomponent.item.Equippable; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; import org.bukkit.block.Block; @@ -138,3682 +140,1549 @@ import org.jetbrains.annotations.Nullable; @SuppressWarnings({"DeprecatedIsStillUsed", "deprecation"}) // Paper public enum Material implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper // - AIR(9648, 64), // Paper - air stacks to 64 - STONE(22948), - GRANITE(21091), - POLISHED_GRANITE(5477), - DIORITE(24688), - POLISHED_DIORITE(31615), - ANDESITE(25975), - POLISHED_ANDESITE(8335), - /** - * BlockData: {@link Orientable} - */ - DEEPSLATE(26842, Orientable.class), - COBBLED_DEEPSLATE(8021), - POLISHED_DEEPSLATE(31772), - CALCITE(20311), - TUFF(24364), - /** - * BlockData: {@link Slab} - */ - TUFF_SLAB(19305, Slab.class), - /** - * BlockData: {@link Stairs} - */ - TUFF_STAIRS(11268, Stairs.class), - /** - * BlockData: {@link Wall} - */ - TUFF_WALL(24395, Wall.class), - CHISELED_TUFF(15831), - POLISHED_TUFF(17801), - /** - * BlockData: {@link Slab} - */ - POLISHED_TUFF_SLAB(31096, Slab.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_TUFF_STAIRS(7964, Stairs.class), - /** - * BlockData: {@link Wall} - */ - POLISHED_TUFF_WALL(28886, Wall.class), - TUFF_BRICKS(26276), - /** - * BlockData: {@link Slab} - */ - TUFF_BRICK_SLAB(11843, Slab.class), - /** - * BlockData: {@link Stairs} - */ - TUFF_BRICK_STAIRS(30753, Stairs.class), - /** - * BlockData: {@link Wall} - */ - TUFF_BRICK_WALL(11761, Wall.class), - CHISELED_TUFF_BRICKS(8601), - DRIPSTONE_BLOCK(26227), - /** - * BlockData: {@link Snowable} - */ - GRASS_BLOCK(28346, Snowable.class), - DIRT(10580), - COARSE_DIRT(15411), - /** - * BlockData: {@link Snowable} - */ - PODZOL(24068, Snowable.class), - ROOTED_DIRT(11410), - MUD(32418), - CRIMSON_NYLIUM(18139), - WARPED_NYLIUM(26396), - COBBLESTONE(32147), - OAK_PLANKS(14905), - SPRUCE_PLANKS(14593), - BIRCH_PLANKS(29322), - JUNGLE_PLANKS(26445), - ACACIA_PLANKS(31312), - CHERRY_PLANKS(8354), - DARK_OAK_PLANKS(20869), - PALE_OAK_PLANKS(21660), - MANGROVE_PLANKS(7078), - BAMBOO_PLANKS(8520), - CRIMSON_PLANKS(18812), - WARPED_PLANKS(16045), - BAMBOO_MOSAIC(10715), - /** - * BlockData: {@link Sapling} - */ - OAK_SAPLING(9636, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - SPRUCE_SAPLING(19874, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - BIRCH_SAPLING(31533, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - JUNGLE_SAPLING(17951, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - ACACIA_SAPLING(20806, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - CHERRY_SAPLING(25204, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - DARK_OAK_SAPLING(14933, Sapling.class), - /** - * BlockData: {@link Sapling} - */ - PALE_OAK_SAPLING(15508, Sapling.class), - /** - * BlockData: {@link MangrovePropagule} - */ - MANGROVE_PROPAGULE(18688, MangrovePropagule.class), - BEDROCK(23130), - SAND(11542), - /** - * BlockData: {@link Brushable} - */ - SUSPICIOUS_SAND(18410, Brushable.class), - /** - * BlockData: {@link Brushable} - */ - SUSPICIOUS_GRAVEL(7353, Brushable.class), - RED_SAND(16279), - GRAVEL(7804), - COAL_ORE(30965), - DEEPSLATE_COAL_ORE(16823), - IRON_ORE(19834), - DEEPSLATE_IRON_ORE(26021), - COPPER_ORE(32666), - DEEPSLATE_COPPER_ORE(6588), - GOLD_ORE(32625), - DEEPSLATE_GOLD_ORE(13582), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_ORE(10887, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - DEEPSLATE_REDSTONE_ORE(6331, Lightable.class), - EMERALD_ORE(16630), - DEEPSLATE_EMERALD_ORE(5299), - LAPIS_ORE(22934), - DEEPSLATE_LAPIS_ORE(13598), - DIAMOND_ORE(9292), - DEEPSLATE_DIAMOND_ORE(17792), - NETHER_GOLD_ORE(4185), - NETHER_QUARTZ_ORE(4807), - ANCIENT_DEBRIS(18198), - COAL_BLOCK(27968), - RAW_IRON_BLOCK(32210), - RAW_COPPER_BLOCK(17504), - RAW_GOLD_BLOCK(23246), - /** - * BlockData: {@link Waterlogged} - */ - HEAVY_CORE(15788, Waterlogged.class), - AMETHYST_BLOCK(18919), - BUDDING_AMETHYST(13963), - IRON_BLOCK(24754), - COPPER_BLOCK(12880), - GOLD_BLOCK(27392), - DIAMOND_BLOCK(5944), - NETHERITE_BLOCK(6527), - EXPOSED_COPPER(28488), - WEATHERED_COPPER(19699), - OXIDIZED_COPPER(19490), - CHISELED_COPPER(12143), - EXPOSED_CHISELED_COPPER(4570), - WEATHERED_CHISELED_COPPER(30876), - OXIDIZED_CHISELED_COPPER(27719), - CUT_COPPER(32519), - EXPOSED_CUT_COPPER(18000), - WEATHERED_CUT_COPPER(21158), - OXIDIZED_CUT_COPPER(5382), - /** - * BlockData: {@link Stairs} - */ - CUT_COPPER_STAIRS(25925, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - EXPOSED_CUT_COPPER_STAIRS(31621, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - WEATHERED_CUT_COPPER_STAIRS(5851, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - OXIDIZED_CUT_COPPER_STAIRS(25379, Stairs.class), - /** - * BlockData: {@link Slab} - */ - CUT_COPPER_SLAB(28988, Slab.class), - /** - * BlockData: {@link Slab} - */ - EXPOSED_CUT_COPPER_SLAB(26694, Slab.class), - /** - * BlockData: {@link Slab} - */ - WEATHERED_CUT_COPPER_SLAB(4602, Slab.class), - /** - * BlockData: {@link Slab} - */ - OXIDIZED_CUT_COPPER_SLAB(29642, Slab.class), - WAXED_COPPER_BLOCK(14638), - WAXED_EXPOSED_COPPER(27989), - WAXED_WEATHERED_COPPER(5960), - WAXED_OXIDIZED_COPPER(25626), - WAXED_CHISELED_COPPER(7500), - WAXED_EXPOSED_CHISELED_COPPER(30658), - WAXED_WEATHERED_CHISELED_COPPER(5970), - WAXED_OXIDIZED_CHISELED_COPPER(7735), - WAXED_CUT_COPPER(11030), - WAXED_EXPOSED_CUT_COPPER(30043), - WAXED_WEATHERED_CUT_COPPER(13823), - WAXED_OXIDIZED_CUT_COPPER(22582), - /** - * BlockData: {@link Stairs} - */ - WAXED_CUT_COPPER_STAIRS(23125, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - WAXED_EXPOSED_CUT_COPPER_STAIRS(15532, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - WAXED_WEATHERED_CUT_COPPER_STAIRS(29701, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - WAXED_OXIDIZED_CUT_COPPER_STAIRS(9842, Stairs.class), - /** - * BlockData: {@link Slab} - */ - WAXED_CUT_COPPER_SLAB(6271, Slab.class), - /** - * BlockData: {@link Slab} - */ - WAXED_EXPOSED_CUT_COPPER_SLAB(22091, Slab.class), - /** - * BlockData: {@link Slab} - */ - WAXED_WEATHERED_CUT_COPPER_SLAB(20035, Slab.class), - /** - * BlockData: {@link Slab} - */ - WAXED_OXIDIZED_CUT_COPPER_SLAB(11202, Slab.class), - /** - * BlockData: {@link Orientable} - */ - OAK_LOG(26723, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - SPRUCE_LOG(9726, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - BIRCH_LOG(26727, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - JUNGLE_LOG(20721, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - ACACIA_LOG(8385, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - CHERRY_LOG(20847, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - PALE_OAK_LOG(13346, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - DARK_OAK_LOG(14831, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - MANGROVE_LOG(23890, Orientable.class), - /** - * BlockData: {@link Waterlogged} - */ - MANGROVE_ROOTS(22124, Waterlogged.class), - /** - * BlockData: {@link Orientable} - */ - MUDDY_MANGROVE_ROOTS(23244, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - CRIMSON_STEM(27920, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - WARPED_STEM(28920, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - BAMBOO_BLOCK(20770, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_OAK_LOG(20523, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_SPRUCE_LOG(6140, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_BIRCH_LOG(8838, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_JUNGLE_LOG(15476, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_ACACIA_LOG(18167, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_CHERRY_LOG(18061, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_DARK_OAK_LOG(6492, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_PALE_OAK_LOG(25375, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_MANGROVE_LOG(15197, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_CRIMSON_STEM(16882, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_WARPED_STEM(15627, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_OAK_WOOD(31455, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_SPRUCE_WOOD(6467, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_BIRCH_WOOD(22350, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_JUNGLE_WOOD(30315, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_ACACIA_WOOD(27193, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_CHERRY_WOOD(19647, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_DARK_OAK_WOOD(16000, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_PALE_OAK_WOOD(20330, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_MANGROVE_WOOD(4828, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_CRIMSON_HYPHAE(27488, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_WARPED_HYPHAE(7422, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - STRIPPED_BAMBOO_BLOCK(14799, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - OAK_WOOD(7378, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - SPRUCE_WOOD(32328, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - BIRCH_WOOD(20913, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - JUNGLE_WOOD(10341, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - ACACIA_WOOD(9541, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - CHERRY_WOOD(9826, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - PALE_OAK_WOOD(29429, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - DARK_OAK_WOOD(16995, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - MANGROVE_WOOD(25484, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - CRIMSON_HYPHAE(6550, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - WARPED_HYPHAE(18439, Orientable.class), - /** - * BlockData: {@link Leaves} - */ - OAK_LEAVES(4385, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - SPRUCE_LEAVES(20039, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - BIRCH_LEAVES(12601, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - JUNGLE_LEAVES(5133, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - ACACIA_LEAVES(16606, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - CHERRY_LEAVES(20856, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - DARK_OAK_LEAVES(22254, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - PALE_OAK_LEAVES(6408, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - MANGROVE_LEAVES(15310, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - AZALEA_LEAVES(23001, Leaves.class), - /** - * BlockData: {@link Leaves} - */ - FLOWERING_AZALEA_LEAVES(7139, Leaves.class), - SPONGE(15860), - WET_SPONGE(9043), - GLASS(6195), - TINTED_GLASS(19154), - LAPIS_BLOCK(14485), - SANDSTONE(13141), - CHISELED_SANDSTONE(31763), - CUT_SANDSTONE(6118), - COBWEB(9469), - SHORT_GRASS(16335), - FERN(15794), - AZALEA(29386), - FLOWERING_AZALEA(28270), - DEAD_BUSH(22888), - SEAGRASS(23942), - /** - * BlockData: {@link SeaPickle} - */ - SEA_PICKLE(19562, SeaPickle.class), - WHITE_WOOL(8624), - ORANGE_WOOL(23957), - MAGENTA_WOOL(11853), - LIGHT_BLUE_WOOL(21073), - YELLOW_WOOL(29507), - LIME_WOOL(10443), - PINK_WOOL(7611), - GRAY_WOOL(27209), - LIGHT_GRAY_WOOL(22936), - CYAN_WOOL(12221), - PURPLE_WOOL(11922), - BLUE_WOOL(15738), - BROWN_WOOL(32638), - GREEN_WOOL(25085), - RED_WOOL(11621), - BLACK_WOOL(16693), - DANDELION(30558), - OPEN_EYEBLOSSOM(31238), - CLOSED_EYEBLOSSOM(29262), - POPPY(12851), - BLUE_ORCHID(13432), - ALLIUM(6871), - AZURE_BLUET(17608), - RED_TULIP(16781), - ORANGE_TULIP(26038), - WHITE_TULIP(31495), - PINK_TULIP(27319), - OXEYE_DAISY(11709), - CORNFLOWER(15405), - LILY_OF_THE_VALLEY(7185), - WITHER_ROSE(8619), - TORCHFLOWER(4501), - /** - * BlockData: {@link Bisected} - */ - PITCHER_PLANT(28172, Bisected.class), - SPORE_BLOSSOM(20627), - BROWN_MUSHROOM(9665), - RED_MUSHROOM(19728), - CRIMSON_FUNGUS(26268), - WARPED_FUNGUS(19799), - CRIMSON_ROOTS(14064), - WARPED_ROOTS(13932), - NETHER_SPROUTS(10431), - /** - * BlockData: {@link Ageable} - */ - WEEPING_VINES(29267, Ageable.class), - /** - * BlockData: {@link Ageable} - */ - TWISTING_VINES(27283, Ageable.class), - /** - * BlockData: {@link Ageable} - */ - SUGAR_CANE(7726, Ageable.class), - /** - * BlockData: {@link Ageable} - */ - KELP(21916, Ageable.class), - /** - * BlockData: {@link PinkPetals} - */ - PINK_PETALS(10420, PinkPetals.class), - MOSS_CARPET(8221), - MOSS_BLOCK(9175), - /** - * BlockData: {@link MossyCarpet} - */ - PALE_MOSS_CARPET(24824, MossyCarpet.class), - /** - * BlockData: {@link HangingMoss} - */ - PALE_HANGING_MOSS(13108, HangingMoss.class), - PALE_MOSS_BLOCK(5318), - /** - * BlockData: {@link Waterlogged} - */ - HANGING_ROOTS(15498, Waterlogged.class), - /** - * BlockData: {@link BigDripleaf} - */ - BIG_DRIPLEAF(26173, BigDripleaf.class), - /** - * BlockData: {@link SmallDripleaf} - */ - SMALL_DRIPLEAF(17540, SmallDripleaf.class), - /** - * BlockData: {@link Bamboo} - */ - BAMBOO(18728, Bamboo.class), - /** - * BlockData: {@link Slab} - */ - OAK_SLAB(12002, Slab.class), - /** - * BlockData: {@link Slab} - */ - SPRUCE_SLAB(28798, Slab.class), - /** - * BlockData: {@link Slab} - */ - BIRCH_SLAB(13807, Slab.class), - /** - * BlockData: {@link Slab} - */ - JUNGLE_SLAB(19117, Slab.class), - /** - * BlockData: {@link Slab} - */ - ACACIA_SLAB(23730, Slab.class), - /** - * BlockData: {@link Slab} - */ - CHERRY_SLAB(16673, Slab.class), - /** - * BlockData: {@link Slab} - */ - DARK_OAK_SLAB(28852, Slab.class), - /** - * BlockData: {@link Slab} - */ - PALE_OAK_SLAB(22048, Slab.class), - /** - * BlockData: {@link Slab} - */ - MANGROVE_SLAB(13704, Slab.class), - /** - * BlockData: {@link Slab} - */ - BAMBOO_SLAB(17798, Slab.class), - /** - * BlockData: {@link Slab} - */ - BAMBOO_MOSAIC_SLAB(22118, Slab.class), - /** - * BlockData: {@link Slab} - */ - CRIMSON_SLAB(4691, Slab.class), - /** - * BlockData: {@link Slab} - */ - WARPED_SLAB(27150, Slab.class), - /** - * BlockData: {@link Slab} - */ - STONE_SLAB(19838, Slab.class), - /** - * BlockData: {@link Slab} - */ - SMOOTH_STONE_SLAB(24129, Slab.class), - /** - * BlockData: {@link Slab} - */ - SANDSTONE_SLAB(29830, Slab.class), - /** - * BlockData: {@link Slab} - */ - CUT_SANDSTONE_SLAB(30944, Slab.class), - /** - * BlockData: {@link Slab} - */ - PETRIFIED_OAK_SLAB(18658, Slab.class), - /** - * BlockData: {@link Slab} - */ - COBBLESTONE_SLAB(6340, Slab.class), - /** - * BlockData: {@link Slab} - */ - BRICK_SLAB(26333, Slab.class), - /** - * BlockData: {@link Slab} - */ - STONE_BRICK_SLAB(19676, Slab.class), - /** - * BlockData: {@link Slab} - */ - MUD_BRICK_SLAB(10611, Slab.class), - /** - * BlockData: {@link Slab} - */ - NETHER_BRICK_SLAB(26586, Slab.class), - /** - * BlockData: {@link Slab} - */ - QUARTZ_SLAB(4423, Slab.class), - /** - * BlockData: {@link Slab} - */ - RED_SANDSTONE_SLAB(17550, Slab.class), - /** - * BlockData: {@link Slab} - */ - CUT_RED_SANDSTONE_SLAB(7220, Slab.class), - /** - * BlockData: {@link Slab} - */ - PURPUR_SLAB(11487, Slab.class), - /** - * BlockData: {@link Slab} - */ - PRISMARINE_SLAB(31323, Slab.class), - /** - * BlockData: {@link Slab} - */ - PRISMARINE_BRICK_SLAB(25624, Slab.class), - /** - * BlockData: {@link Slab} - */ - DARK_PRISMARINE_SLAB(7577, Slab.class), - SMOOTH_QUARTZ(14415), - SMOOTH_RED_SANDSTONE(25180), - SMOOTH_SANDSTONE(30039), - SMOOTH_STONE(21910), - BRICKS(14165), - BOOKSHELF(10069), - /** - * BlockData: {@link ChiseledBookshelf} - */ - CHISELED_BOOKSHELF(8099, ChiseledBookshelf.class), - /** - * BlockData: {@link DecoratedPot} - */ - DECORATED_POT(8720, DecoratedPot.class), - MOSSY_COBBLESTONE(21900), - OBSIDIAN(32723), - TORCH(6063), - /** - * BlockData: {@link Directional} - */ - END_ROD(24832, Directional.class), - /** - * BlockData: {@link MultipleFacing} - */ - CHORUS_PLANT(28243, MultipleFacing.class), - /** - * BlockData: {@link Ageable} - */ - CHORUS_FLOWER(28542, Ageable.class), - PURPUR_BLOCK(7538), - /** - * BlockData: {@link Orientable} - */ - PURPUR_PILLAR(26718, Orientable.class), - /** - * BlockData: {@link Stairs} - */ - PURPUR_STAIRS(8921, Stairs.class), - SPAWNER(7018), - /** - * BlockData: {@link CreakingHeart} - */ - CREAKING_HEART(11442, CreakingHeart.class), - /** - * BlockData: {@link Chest} - */ - CHEST(22969, Chest.class), - CRAFTING_TABLE(20706), - /** - * BlockData: {@link Farmland} - */ - FARMLAND(31166, Farmland.class), - /** - * BlockData: {@link Furnace} - */ - FURNACE(8133, Furnace.class), - /** - * BlockData: {@link Ladder} - */ - LADDER(23599, Ladder.class), - /** - * BlockData: {@link Stairs} - */ - COBBLESTONE_STAIRS(24715, Stairs.class), - /** - * BlockData: {@link Snow} - */ - SNOW(14146, Snow.class), - ICE(30428), - SNOW_BLOCK(19913), - /** - * BlockData: {@link Ageable} - */ - CACTUS(12191, Ageable.class), - CLAY(27880), - /** - * BlockData: {@link Jukebox} - */ - JUKEBOX(19264, Jukebox.class), - /** - * BlockData: {@link Fence} - */ - OAK_FENCE(6442, Fence.class), - /** - * BlockData: {@link Fence} - */ - SPRUCE_FENCE(25416, Fence.class), - /** - * BlockData: {@link Fence} - */ - BIRCH_FENCE(17347, Fence.class), - /** - * BlockData: {@link Fence} - */ - JUNGLE_FENCE(14358, Fence.class), - /** - * BlockData: {@link Fence} - */ - ACACIA_FENCE(4569, Fence.class), - /** - * BlockData: {@link Fence} - */ - CHERRY_FENCE(32047, Fence.class), - /** - * BlockData: {@link Fence} - */ - DARK_OAK_FENCE(21767, Fence.class), - /** - * BlockData: {@link Fence} - */ - PALE_OAK_FENCE(10547, Fence.class), - /** - * BlockData: {@link Fence} - */ - MANGROVE_FENCE(15021, Fence.class), - /** - * BlockData: {@link Fence} - */ - BAMBOO_FENCE(17207, Fence.class), - /** - * BlockData: {@link Fence} - */ - CRIMSON_FENCE(21075, Fence.class), - /** - * BlockData: {@link Fence} - */ - WARPED_FENCE(18438, Fence.class), - PUMPKIN(19170), - /** - * BlockData: {@link Directional} - */ - CARVED_PUMPKIN(25833, Directional.class), - /** - * BlockData: {@link Directional} - */ - JACK_O_LANTERN(13758, Directional.class), - NETHERRACK(23425), - SOUL_SAND(16841), - SOUL_SOIL(31140), - /** - * BlockData: {@link Orientable} - */ - BASALT(28478, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - POLISHED_BASALT(11659, Orientable.class), - SMOOTH_BASALT(13617), - SOUL_TORCH(14292), - GLOWSTONE(32713), - INFESTED_STONE(18440), - INFESTED_COBBLESTONE(4348), - INFESTED_STONE_BRICKS(19749), - INFESTED_MOSSY_STONE_BRICKS(9850), - INFESTED_CRACKED_STONE_BRICKS(7476), - INFESTED_CHISELED_STONE_BRICKS(4728), - /** - * BlockData: {@link Orientable} - */ - INFESTED_DEEPSLATE(9472, Orientable.class), - STONE_BRICKS(6962), - MOSSY_STONE_BRICKS(16415), - CRACKED_STONE_BRICKS(27869), - CHISELED_STONE_BRICKS(9087), - PACKED_MUD(7472), - MUD_BRICKS(29168), - DEEPSLATE_BRICKS(13193), - CRACKED_DEEPSLATE_BRICKS(17105), - DEEPSLATE_TILES(11250), - CRACKED_DEEPSLATE_TILES(26249), - CHISELED_DEEPSLATE(23825), - REINFORCED_DEEPSLATE(10949), - /** - * BlockData: {@link MultipleFacing} - */ - BROWN_MUSHROOM_BLOCK(6291, MultipleFacing.class), - /** - * BlockData: {@link MultipleFacing} - */ - RED_MUSHROOM_BLOCK(20766, MultipleFacing.class), - /** - * BlockData: {@link MultipleFacing} - */ - MUSHROOM_STEM(16543, MultipleFacing.class), - /** - * BlockData: {@link Fence} - */ - IRON_BARS(9378, Fence.class), - /** - * BlockData: {@link Chain} - */ - CHAIN(28265, Chain.class), - /** - * BlockData: {@link Fence} - */ - GLASS_PANE(5709, Fence.class), - MELON(25172), - /** - * BlockData: {@link MultipleFacing} - */ - VINE(14564, MultipleFacing.class), - /** - * BlockData: {@link GlowLichen} - */ - GLOW_LICHEN(19165, GlowLichen.class), - /** - * BlockData: {@link ResinClump} - */ - RESIN_CLUMP(28662, ResinClump.class), - RESIN_BLOCK(26344), - RESIN_BRICKS(8331), - /** - * BlockData: {@link Stairs} - */ - RESIN_BRICK_STAIRS(31170, Stairs.class), - /** - * BlockData: {@link Slab} - */ - RESIN_BRICK_SLAB(25553, Slab.class), - /** - * BlockData: {@link Wall} - */ - RESIN_BRICK_WALL(8538, Wall.class), - CHISELED_RESIN_BRICKS(5529), - /** - * BlockData: {@link Stairs} - */ - BRICK_STAIRS(21534, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - STONE_BRICK_STAIRS(27032, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - MUD_BRICK_STAIRS(13620, Stairs.class), - /** - * BlockData: {@link Snowable} - */ - MYCELIUM(9913, Snowable.class), - LILY_PAD(19271), - NETHER_BRICKS(27802), - CRACKED_NETHER_BRICKS(10888), - CHISELED_NETHER_BRICKS(21613), - /** - * BlockData: {@link Fence} - */ - NETHER_BRICK_FENCE(5286, Fence.class), - /** - * BlockData: {@link Stairs} - */ - NETHER_BRICK_STAIRS(12085, Stairs.class), - SCULK(17870), - /** - * BlockData: {@link SculkVein} - */ - SCULK_VEIN(11615, SculkVein.class), - /** - * BlockData: {@link SculkCatalyst} - */ - SCULK_CATALYST(12017, SculkCatalyst.class), - /** - * BlockData: {@link SculkShrieker} - */ - SCULK_SHRIEKER(20985, SculkShrieker.class), - ENCHANTING_TABLE(16255), - /** - * BlockData: {@link EndPortalFrame} - */ - END_PORTAL_FRAME(15480, EndPortalFrame.class), - END_STONE(29686), - END_STONE_BRICKS(20314), - DRAGON_EGG(29946), - /** - * BlockData: {@link Stairs} - */ - SANDSTONE_STAIRS(18474, Stairs.class), - /** - * BlockData: {@link EnderChest} - */ - ENDER_CHEST(32349, EnderChest.class), - EMERALD_BLOCK(9914), - /** - * BlockData: {@link Stairs} - */ - OAK_STAIRS(5449, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - SPRUCE_STAIRS(11192, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - BIRCH_STAIRS(7657, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - JUNGLE_STAIRS(20636, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - ACACIA_STAIRS(17453, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - CHERRY_STAIRS(18380, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - DARK_OAK_STAIRS(22921, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - PALE_OAK_STAIRS(20755, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - MANGROVE_STAIRS(27641, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - BAMBOO_STAIRS(25674, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - BAMBOO_MOSAIC_STAIRS(20977, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - CRIMSON_STAIRS(32442, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - WARPED_STAIRS(17721, Stairs.class), - /** - * BlockData: {@link CommandBlock} - */ - COMMAND_BLOCK(4355, CommandBlock.class), - BEACON(6608), - /** - * BlockData: {@link Wall} - */ - COBBLESTONE_WALL(12616, Wall.class), - /** - * BlockData: {@link Wall} - */ - MOSSY_COBBLESTONE_WALL(11536, Wall.class), - /** - * BlockData: {@link Wall} - */ - BRICK_WALL(18995, Wall.class), - /** - * BlockData: {@link Wall} - */ - PRISMARINE_WALL(18184, Wall.class), - /** - * BlockData: {@link Wall} - */ - RED_SANDSTONE_WALL(4753, Wall.class), - /** - * BlockData: {@link Wall} - */ - MOSSY_STONE_BRICK_WALL(18259, Wall.class), - /** - * BlockData: {@link Wall} - */ - GRANITE_WALL(23279, Wall.class), - /** - * BlockData: {@link Wall} - */ - STONE_BRICK_WALL(29073, Wall.class), - /** - * BlockData: {@link Wall} - */ - MUD_BRICK_WALL(18292, Wall.class), - /** - * BlockData: {@link Wall} - */ - NETHER_BRICK_WALL(10398, Wall.class), - /** - * BlockData: {@link Wall} - */ - ANDESITE_WALL(14938, Wall.class), - /** - * BlockData: {@link Wall} - */ - RED_NETHER_BRICK_WALL(4580, Wall.class), - /** - * BlockData: {@link Wall} - */ - SANDSTONE_WALL(18470, Wall.class), - /** - * BlockData: {@link Wall} - */ - END_STONE_BRICK_WALL(27225, Wall.class), - /** - * BlockData: {@link Wall} - */ - DIORITE_WALL(17412, Wall.class), - /** - * BlockData: {@link Wall} - */ - BLACKSTONE_WALL(17327, Wall.class), - /** - * BlockData: {@link Wall} - */ - POLISHED_BLACKSTONE_WALL(15119, Wall.class), - /** - * BlockData: {@link Wall} - */ - POLISHED_BLACKSTONE_BRICK_WALL(9540, Wall.class), - /** - * BlockData: {@link Wall} - */ - COBBLED_DEEPSLATE_WALL(21893, Wall.class), - /** - * BlockData: {@link Wall} - */ - POLISHED_DEEPSLATE_WALL(6574, Wall.class), - /** - * BlockData: {@link Wall} - */ - DEEPSLATE_BRICK_WALL(13304, Wall.class), - /** - * BlockData: {@link Wall} - */ - DEEPSLATE_TILE_WALL(17077, Wall.class), - /** - * BlockData: {@link Directional} - */ - ANVIL(18718, Directional.class), - /** - * BlockData: {@link Directional} - */ - CHIPPED_ANVIL(10623, Directional.class), - /** - * BlockData: {@link Directional} - */ - DAMAGED_ANVIL(10274, Directional.class), - CHISELED_QUARTZ_BLOCK(30964), - QUARTZ_BLOCK(11987), - QUARTZ_BRICKS(23358), - /** - * BlockData: {@link Orientable} - */ - QUARTZ_PILLAR(16452, Orientable.class), - /** - * BlockData: {@link Stairs} - */ - QUARTZ_STAIRS(24079, Stairs.class), - WHITE_TERRACOTTA(20975), - ORANGE_TERRACOTTA(18684), - MAGENTA_TERRACOTTA(25900), - LIGHT_BLUE_TERRACOTTA(31779), - YELLOW_TERRACOTTA(32129), - LIME_TERRACOTTA(24013), - PINK_TERRACOTTA(23727), - GRAY_TERRACOTTA(18004), - LIGHT_GRAY_TERRACOTTA(26388), - CYAN_TERRACOTTA(25940), - PURPLE_TERRACOTTA(10387), - BLUE_TERRACOTTA(5236), - BROWN_TERRACOTTA(23664), - GREEN_TERRACOTTA(4105), - RED_TERRACOTTA(5086), - BLACK_TERRACOTTA(26691), - /** - * BlockData: {@link Waterlogged} - */ - BARRIER(26453, Waterlogged.class), - /** - * BlockData: {@link Light} - */ - LIGHT(17829, Light.class), - /** - * BlockData: {@link Orientable} - */ - HAY_BLOCK(17461, Orientable.class), - WHITE_CARPET(15117), - ORANGE_CARPET(24752), - MAGENTA_CARPET(6180), - LIGHT_BLUE_CARPET(21194), - YELLOW_CARPET(18149), - LIME_CARPET(15443), - PINK_CARPET(27381), - GRAY_CARPET(26991), - LIGHT_GRAY_CARPET(11317), - CYAN_CARPET(9742), - PURPLE_CARPET(5574), - BLUE_CARPET(13292), - BROWN_CARPET(23352), - GREEN_CARPET(7780), - RED_CARPET(5424), - BLACK_CARPET(6056), - TERRACOTTA(16544), - PACKED_ICE(28993), - DIRT_PATH(10846), - /** - * BlockData: {@link Bisected} - */ - SUNFLOWER(7408, Bisected.class), - /** - * BlockData: {@link Bisected} - */ - LILAC(22837, Bisected.class), - /** - * BlockData: {@link Bisected} - */ - ROSE_BUSH(6080, Bisected.class), - /** - * BlockData: {@link Bisected} - */ - PEONY(21155, Bisected.class), - /** - * BlockData: {@link Bisected} - */ - TALL_GRASS(21559, Bisected.class), - /** - * BlockData: {@link Bisected} - */ - LARGE_FERN(30177, Bisected.class), - WHITE_STAINED_GLASS(31190), - ORANGE_STAINED_GLASS(25142), - MAGENTA_STAINED_GLASS(26814), - LIGHT_BLUE_STAINED_GLASS(17162), - YELLOW_STAINED_GLASS(12182), - LIME_STAINED_GLASS(24266), - PINK_STAINED_GLASS(16164), - GRAY_STAINED_GLASS(29979), - LIGHT_GRAY_STAINED_GLASS(5843), - CYAN_STAINED_GLASS(30604), - PURPLE_STAINED_GLASS(21845), - BLUE_STAINED_GLASS(7107), - BROWN_STAINED_GLASS(20945), - GREEN_STAINED_GLASS(22503), - RED_STAINED_GLASS(9717), - BLACK_STAINED_GLASS(13941), - /** - * BlockData: {@link GlassPane} - */ - WHITE_STAINED_GLASS_PANE(10557, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - ORANGE_STAINED_GLASS_PANE(21089, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - MAGENTA_STAINED_GLASS_PANE(14082, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - LIGHT_BLUE_STAINED_GLASS_PANE(18721, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - YELLOW_STAINED_GLASS_PANE(20298, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - LIME_STAINED_GLASS_PANE(10610, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - PINK_STAINED_GLASS_PANE(24637, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - GRAY_STAINED_GLASS_PANE(25272, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - LIGHT_GRAY_STAINED_GLASS_PANE(19008, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - CYAN_STAINED_GLASS_PANE(11784, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - PURPLE_STAINED_GLASS_PANE(10948, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - BLUE_STAINED_GLASS_PANE(28484, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - BROWN_STAINED_GLASS_PANE(17557, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - GREEN_STAINED_GLASS_PANE(4767, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - RED_STAINED_GLASS_PANE(8630, GlassPane.class), - /** - * BlockData: {@link GlassPane} - */ - BLACK_STAINED_GLASS_PANE(13201, GlassPane.class), - PRISMARINE(7539), - PRISMARINE_BRICKS(29118), - DARK_PRISMARINE(19940), - /** - * BlockData: {@link Stairs} - */ - PRISMARINE_STAIRS(19217, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - PRISMARINE_BRICK_STAIRS(15445, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - DARK_PRISMARINE_STAIRS(26511, Stairs.class), - SEA_LANTERN(20780), - RED_SANDSTONE(9092), - CHISELED_RED_SANDSTONE(15529), - CUT_RED_SANDSTONE(29108), - /** - * BlockData: {@link Stairs} - */ - RED_SANDSTONE_STAIRS(25466, Stairs.class), - /** - * BlockData: {@link CommandBlock} - */ - REPEATING_COMMAND_BLOCK(12405, CommandBlock.class), - /** - * BlockData: {@link CommandBlock} - */ - CHAIN_COMMAND_BLOCK(26798, CommandBlock.class), - MAGMA_BLOCK(25927), - NETHER_WART_BLOCK(15486), - WARPED_WART_BLOCK(15463), - RED_NETHER_BRICKS(18056), - /** - * BlockData: {@link Orientable} - */ - BONE_BLOCK(17312, Orientable.class), - STRUCTURE_VOID(30806), - /** - * BlockData: {@link Directional} - */ - SHULKER_BOX(7776, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - WHITE_SHULKER_BOX(31750, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - ORANGE_SHULKER_BOX(21673, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - MAGENTA_SHULKER_BOX(21566, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_BLUE_SHULKER_BOX(18226, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - YELLOW_SHULKER_BOX(28700, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIME_SHULKER_BOX(28360, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - PINK_SHULKER_BOX(24968, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - GRAY_SHULKER_BOX(12754, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_GRAY_SHULKER_BOX(21345, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - CYAN_SHULKER_BOX(28123, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - PURPLE_SHULKER_BOX(10373, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLUE_SHULKER_BOX(11476, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - BROWN_SHULKER_BOX(24230, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - GREEN_SHULKER_BOX(9377, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - RED_SHULKER_BOX(32448, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLACK_SHULKER_BOX(24076, 1, Directional.class), - /** - * BlockData: {@link Directional} - */ - WHITE_GLAZED_TERRACOTTA(11326, Directional.class), - /** - * BlockData: {@link Directional} - */ - ORANGE_GLAZED_TERRACOTTA(27451, Directional.class), - /** - * BlockData: {@link Directional} - */ - MAGENTA_GLAZED_TERRACOTTA(8067, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_BLUE_GLAZED_TERRACOTTA(4336, Directional.class), - /** - * BlockData: {@link Directional} - */ - YELLOW_GLAZED_TERRACOTTA(10914, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIME_GLAZED_TERRACOTTA(13861, Directional.class), - /** - * BlockData: {@link Directional} - */ - PINK_GLAZED_TERRACOTTA(10260, Directional.class), - /** - * BlockData: {@link Directional} - */ - GRAY_GLAZED_TERRACOTTA(6256, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_GRAY_GLAZED_TERRACOTTA(10707, Directional.class), - /** - * BlockData: {@link Directional} - */ - CYAN_GLAZED_TERRACOTTA(9550, Directional.class), - /** - * BlockData: {@link Directional} - */ - PURPLE_GLAZED_TERRACOTTA(4818, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLUE_GLAZED_TERRACOTTA(23823, Directional.class), - /** - * BlockData: {@link Directional} - */ - BROWN_GLAZED_TERRACOTTA(5655, Directional.class), - /** - * BlockData: {@link Directional} - */ - GREEN_GLAZED_TERRACOTTA(6958, Directional.class), - /** - * BlockData: {@link Directional} - */ - RED_GLAZED_TERRACOTTA(24989, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLACK_GLAZED_TERRACOTTA(29678, Directional.class), - WHITE_CONCRETE(6281), - ORANGE_CONCRETE(19914), - MAGENTA_CONCRETE(20591), - LIGHT_BLUE_CONCRETE(29481), - YELLOW_CONCRETE(15722), - LIME_CONCRETE(5863), - PINK_CONCRETE(5227), - GRAY_CONCRETE(13959), - LIGHT_GRAY_CONCRETE(14453), - CYAN_CONCRETE(26522), - PURPLE_CONCRETE(20623), - BLUE_CONCRETE(18756), - BROWN_CONCRETE(19006), - GREEN_CONCRETE(17949), - RED_CONCRETE(8032), - BLACK_CONCRETE(13338), - WHITE_CONCRETE_POWDER(10363), - ORANGE_CONCRETE_POWDER(30159), - MAGENTA_CONCRETE_POWDER(8272), - LIGHT_BLUE_CONCRETE_POWDER(31206), - YELLOW_CONCRETE_POWDER(10655), - LIME_CONCRETE_POWDER(28859), - PINK_CONCRETE_POWDER(6421), - GRAY_CONCRETE_POWDER(13031), - LIGHT_GRAY_CONCRETE_POWDER(21589), - CYAN_CONCRETE_POWDER(15734), - PURPLE_CONCRETE_POWDER(26808), - BLUE_CONCRETE_POWDER(17773), - BROWN_CONCRETE_POWDER(21485), - GREEN_CONCRETE_POWDER(6904), - RED_CONCRETE_POWDER(13286), - BLACK_CONCRETE_POWDER(16150), - /** - * BlockData: {@link TurtleEgg} - */ - TURTLE_EGG(32101, TurtleEgg.class), - /** - * BlockData: {@link Hatchable} - */ - SNIFFER_EGG(12980, Hatchable.class), - DEAD_TUBE_CORAL_BLOCK(28350), - DEAD_BRAIN_CORAL_BLOCK(12979), - DEAD_BUBBLE_CORAL_BLOCK(28220), - DEAD_FIRE_CORAL_BLOCK(5307), - DEAD_HORN_CORAL_BLOCK(15103), - TUBE_CORAL_BLOCK(23723), - BRAIN_CORAL_BLOCK(30618), - BUBBLE_CORAL_BLOCK(15437), - FIRE_CORAL_BLOCK(12119), - HORN_CORAL_BLOCK(19958), - /** - * BlockData: {@link Waterlogged} - */ - TUBE_CORAL(23048, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - BRAIN_CORAL(31316, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - BUBBLE_CORAL(12464, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - FIRE_CORAL(29151, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - HORN_CORAL(19511, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_BRAIN_CORAL(9116, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_BUBBLE_CORAL(30583, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_FIRE_CORAL(8365, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_HORN_CORAL(5755, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_TUBE_CORAL(18028, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - TUBE_CORAL_FAN(19929, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - BRAIN_CORAL_FAN(13849, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - BUBBLE_CORAL_FAN(10795, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - FIRE_CORAL_FAN(11112, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - HORN_CORAL_FAN(13610, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_TUBE_CORAL_FAN(17628, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_BRAIN_CORAL_FAN(26150, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_BUBBLE_CORAL_FAN(17322, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_FIRE_CORAL_FAN(27073, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - DEAD_HORN_CORAL_FAN(11387, Waterlogged.class), - BLUE_ICE(22449), - /** - * BlockData: {@link Waterlogged} - */ - CONDUIT(5148, Waterlogged.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_GRANITE_STAIRS(29588, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - SMOOTH_RED_SANDSTONE_STAIRS(17561, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - MOSSY_STONE_BRICK_STAIRS(27578, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_DIORITE_STAIRS(4625, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - MOSSY_COBBLESTONE_STAIRS(29210, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - END_STONE_BRICK_STAIRS(28831, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - STONE_STAIRS(23784, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - SMOOTH_SANDSTONE_STAIRS(21183, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - SMOOTH_QUARTZ_STAIRS(19560, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - GRANITE_STAIRS(21840, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - ANDESITE_STAIRS(17747, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - RED_NETHER_BRICK_STAIRS(26374, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_ANDESITE_STAIRS(7573, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - DIORITE_STAIRS(13134, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - COBBLED_DEEPSLATE_STAIRS(20699, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_DEEPSLATE_STAIRS(19513, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - DEEPSLATE_BRICK_STAIRS(29624, Stairs.class), - /** - * BlockData: {@link Stairs} - */ - DEEPSLATE_TILE_STAIRS(6361, Stairs.class), - /** - * BlockData: {@link Slab} - */ - POLISHED_GRANITE_SLAB(4521, Slab.class), - /** - * BlockData: {@link Slab} - */ - SMOOTH_RED_SANDSTONE_SLAB(16304, Slab.class), - /** - * BlockData: {@link Slab} - */ - MOSSY_STONE_BRICK_SLAB(14002, Slab.class), - /** - * BlockData: {@link Slab} - */ - POLISHED_DIORITE_SLAB(18303, Slab.class), - /** - * BlockData: {@link Slab} - */ - MOSSY_COBBLESTONE_SLAB(12139, Slab.class), - /** - * BlockData: {@link Slab} - */ - END_STONE_BRICK_SLAB(23239, Slab.class), - /** - * BlockData: {@link Slab} - */ - SMOOTH_SANDSTONE_SLAB(9030, Slab.class), - /** - * BlockData: {@link Slab} - */ - SMOOTH_QUARTZ_SLAB(26543, Slab.class), - /** - * BlockData: {@link Slab} - */ - GRANITE_SLAB(10901, Slab.class), - /** - * BlockData: {@link Slab} - */ - ANDESITE_SLAB(32124, Slab.class), - /** - * BlockData: {@link Slab} - */ - RED_NETHER_BRICK_SLAB(12462, Slab.class), - /** - * BlockData: {@link Slab} - */ - POLISHED_ANDESITE_SLAB(24573, Slab.class), - /** - * BlockData: {@link Slab} - */ - DIORITE_SLAB(25526, Slab.class), - /** - * BlockData: {@link Slab} - */ - COBBLED_DEEPSLATE_SLAB(17388, Slab.class), - /** - * BlockData: {@link Slab} - */ - POLISHED_DEEPSLATE_SLAB(32201, Slab.class), - /** - * BlockData: {@link Slab} - */ - DEEPSLATE_BRICK_SLAB(23910, Slab.class), - /** - * BlockData: {@link Slab} - */ - DEEPSLATE_TILE_SLAB(13315, Slab.class), - /** - * BlockData: {@link Scaffolding} - */ - SCAFFOLDING(15757, Scaffolding.class), - REDSTONE(11233), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_TORCH(22547, Lightable.class), - REDSTONE_BLOCK(19496), - /** - * BlockData: {@link Repeater} - */ - REPEATER(28823, Repeater.class), - /** - * BlockData: {@link Comparator} - */ - COMPARATOR(18911, Comparator.class), - /** - * BlockData: {@link Piston} - */ - PISTON(21130, Piston.class), - /** - * BlockData: {@link Piston} - */ - STICKY_PISTON(18127, Piston.class), - SLIME_BLOCK(31892), - HONEY_BLOCK(30615), - /** - * BlockData: {@link Observer} - */ - OBSERVER(10726, Observer.class), - /** - * BlockData: {@link Hopper} - */ - HOPPER(31974, Hopper.class), - /** - * BlockData: {@link Dispenser} - */ - DISPENSER(20871, Dispenser.class), - /** - * BlockData: {@link Dispenser} - */ - DROPPER(31273, Dispenser.class), - /** - * BlockData: {@link Lectern} - */ - LECTERN(23490, Lectern.class), - /** - * BlockData: {@link AnaloguePowerable} - */ - TARGET(22637, AnaloguePowerable.class), - /** - * BlockData: {@link Switch} - */ - LEVER(15319, Switch.class), - /** - * BlockData: {@link LightningRod} - */ - LIGHTNING_ROD(30770, LightningRod.class), - /** - * BlockData: {@link DaylightDetector} - */ - DAYLIGHT_DETECTOR(8864, DaylightDetector.class), - /** - * BlockData: {@link SculkSensor} - */ - SCULK_SENSOR(5598, SculkSensor.class), - /** - * BlockData: {@link CalibratedSculkSensor} - */ - CALIBRATED_SCULK_SENSOR(21034, CalibratedSculkSensor.class), - /** - * BlockData: {@link TripwireHook} - */ - TRIPWIRE_HOOK(8130, TripwireHook.class), - /** - * BlockData: {@link Chest} - */ - TRAPPED_CHEST(18970, Chest.class), - /** - * BlockData: {@link TNT} - */ - TNT(7896, TNT.class), - /** - * BlockData: {@link Lightable} - */ - REDSTONE_LAMP(8217, Lightable.class), - /** - * BlockData: {@link NoteBlock} - */ - NOTE_BLOCK(20979, NoteBlock.class), - /** - * BlockData: {@link Switch} - */ - STONE_BUTTON(12279, Switch.class), - /** - * BlockData: {@link Switch} - */ - POLISHED_BLACKSTONE_BUTTON(20760, Switch.class), - /** - * BlockData: {@link Switch} - */ - OAK_BUTTON(13510, Switch.class), - /** - * BlockData: {@link Switch} - */ - SPRUCE_BUTTON(23281, Switch.class), - /** - * BlockData: {@link Switch} - */ - BIRCH_BUTTON(26934, Switch.class), - /** - * BlockData: {@link Switch} - */ - JUNGLE_BUTTON(25317, Switch.class), - /** - * BlockData: {@link Switch} - */ - ACACIA_BUTTON(13993, Switch.class), - /** - * BlockData: {@link Switch} - */ - CHERRY_BUTTON(9058, Switch.class), - /** - * BlockData: {@link Switch} - */ - DARK_OAK_BUTTON(6214, Switch.class), - /** - * BlockData: {@link Switch} - */ - PALE_OAK_BUTTON(5238, Switch.class), - /** - * BlockData: {@link Switch} - */ - MANGROVE_BUTTON(9838, Switch.class), - /** - * BlockData: {@link Switch} - */ - BAMBOO_BUTTON(21810, Switch.class), - /** - * BlockData: {@link Switch} - */ - CRIMSON_BUTTON(26799, Switch.class), - /** - * BlockData: {@link Switch} - */ - WARPED_BUTTON(25264, Switch.class), - /** - * BlockData: {@link Powerable} - */ - STONE_PRESSURE_PLATE(22591, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - POLISHED_BLACKSTONE_PRESSURE_PLATE(32340, Powerable.class), - /** - * BlockData: {@link AnaloguePowerable} - */ - LIGHT_WEIGHTED_PRESSURE_PLATE(14875, AnaloguePowerable.class), - /** - * BlockData: {@link AnaloguePowerable} - */ - HEAVY_WEIGHTED_PRESSURE_PLATE(16970, AnaloguePowerable.class), - /** - * BlockData: {@link Powerable} - */ - OAK_PRESSURE_PLATE(20108, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - SPRUCE_PRESSURE_PLATE(15932, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - BIRCH_PRESSURE_PLATE(9664, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - JUNGLE_PRESSURE_PLATE(11376, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - ACACIA_PRESSURE_PLATE(17586, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - CHERRY_PRESSURE_PLATE(8651, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - DARK_OAK_PRESSURE_PLATE(31375, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - PALE_OAK_PRESSURE_PLATE(30527, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - MANGROVE_PRESSURE_PLATE(9748, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - BAMBOO_PRESSURE_PLATE(26740, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - CRIMSON_PRESSURE_PLATE(18316, Powerable.class), - /** - * BlockData: {@link Powerable} - */ - WARPED_PRESSURE_PLATE(29516, Powerable.class), - /** - * BlockData: {@link Door} - */ - IRON_DOOR(4788, Door.class), - /** - * BlockData: {@link Door} - */ - OAK_DOOR(20341, Door.class), - /** - * BlockData: {@link Door} - */ - SPRUCE_DOOR(10642, Door.class), - /** - * BlockData: {@link Door} - */ - BIRCH_DOOR(14759, Door.class), - /** - * BlockData: {@link Door} - */ - JUNGLE_DOOR(28163, Door.class), - /** - * BlockData: {@link Door} - */ - ACACIA_DOOR(23797, Door.class), - /** - * BlockData: {@link Door} - */ - CHERRY_DOOR(12684, Door.class), - /** - * BlockData: {@link Door} - */ - DARK_OAK_DOOR(10669, Door.class), - /** - * BlockData: {@link Door} - */ - PALE_OAK_DOOR(23817, Door.class), - /** - * BlockData: {@link Door} - */ - MANGROVE_DOOR(18964, Door.class), - /** - * BlockData: {@link Door} - */ - BAMBOO_DOOR(19971, Door.class), - /** - * BlockData: {@link Door} - */ - CRIMSON_DOOR(19544, Door.class), - /** - * BlockData: {@link Door} - */ - WARPED_DOOR(15062, Door.class), - /** - * BlockData: {@link Door} - */ - COPPER_DOOR(26809, Door.class), - /** - * BlockData: {@link Door} - */ - EXPOSED_COPPER_DOOR(13236, Door.class), - /** - * BlockData: {@link Door} - */ - WEATHERED_COPPER_DOOR(10208, Door.class), - /** - * BlockData: {@link Door} - */ - OXIDIZED_COPPER_DOOR(5348, Door.class), - /** - * BlockData: {@link Door} - */ - WAXED_COPPER_DOOR(9954, Door.class), - /** - * BlockData: {@link Door} - */ - WAXED_EXPOSED_COPPER_DOOR(20748, Door.class), - /** - * BlockData: {@link Door} - */ - WAXED_WEATHERED_COPPER_DOOR(25073, Door.class), - /** - * BlockData: {@link Door} - */ - WAXED_OXIDIZED_COPPER_DOOR(23888, Door.class), - /** - * BlockData: {@link TrapDoor} - */ - IRON_TRAPDOOR(17095, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - OAK_TRAPDOOR(16927, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - SPRUCE_TRAPDOOR(10289, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - BIRCH_TRAPDOOR(32585, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - JUNGLE_TRAPDOOR(8626, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - ACACIA_TRAPDOOR(18343, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - CHERRY_TRAPDOOR(6293, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - DARK_OAK_TRAPDOOR(10355, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - PALE_OAK_TRAPDOOR(20647, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - MANGROVE_TRAPDOOR(17066, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - BAMBOO_TRAPDOOR(9174, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - CRIMSON_TRAPDOOR(25056, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WARPED_TRAPDOOR(7708, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - COPPER_TRAPDOOR(12110, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - EXPOSED_COPPER_TRAPDOOR(19219, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WEATHERED_COPPER_TRAPDOOR(28254, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - OXIDIZED_COPPER_TRAPDOOR(26518, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WAXED_COPPER_TRAPDOOR(12626, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WAXED_EXPOSED_COPPER_TRAPDOOR(11010, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WAXED_WEATHERED_COPPER_TRAPDOOR(30709, TrapDoor.class), - /** - * BlockData: {@link TrapDoor} - */ - WAXED_OXIDIZED_COPPER_TRAPDOOR(21450, TrapDoor.class), - /** - * BlockData: {@link Gate} - */ - OAK_FENCE_GATE(16689, Gate.class), - /** - * BlockData: {@link Gate} - */ - SPRUCE_FENCE_GATE(26423, Gate.class), - /** - * BlockData: {@link Gate} - */ - BIRCH_FENCE_GATE(6322, Gate.class), - /** - * BlockData: {@link Gate} - */ - JUNGLE_FENCE_GATE(21360, Gate.class), - /** - * BlockData: {@link Gate} - */ - ACACIA_FENCE_GATE(14145, Gate.class), - /** - * BlockData: {@link Gate} - */ - CHERRY_FENCE_GATE(28222, Gate.class), - /** - * BlockData: {@link Gate} - */ - DARK_OAK_FENCE_GATE(10679, Gate.class), - /** - * BlockData: {@link Gate} - */ - PALE_OAK_FENCE_GATE(21221, Gate.class), - /** - * BlockData: {@link Gate} - */ - MANGROVE_FENCE_GATE(28476, Gate.class), - /** - * BlockData: {@link Gate} - */ - BAMBOO_FENCE_GATE(14290, Gate.class), - /** - * BlockData: {@link Gate} - */ - CRIMSON_FENCE_GATE(15602, Gate.class), - /** - * BlockData: {@link Gate} - */ - WARPED_FENCE_GATE(11115, Gate.class), - /** - * BlockData: {@link RedstoneRail} - */ - POWERED_RAIL(11064, RedstoneRail.class), - /** - * BlockData: {@link RedstoneRail} - */ - DETECTOR_RAIL(13475, RedstoneRail.class), - /** - * BlockData: {@link Rail} - */ - RAIL(13285, Rail.class), - /** - * BlockData: {@link RedstoneRail} - */ - ACTIVATOR_RAIL(5834, RedstoneRail.class), - SADDLE(30206, 1), - MINECART(14352, 1), - CHEST_MINECART(4497, 1), - FURNACE_MINECART(14196, 1), - TNT_MINECART(4277, 1), - HOPPER_MINECART(19024, 1), - CARROT_ON_A_STICK(27809, 1, 25), - WARPED_FUNGUS_ON_A_STICK(11706, 1, 100), - PHANTOM_MEMBRANE(18398), - ELYTRA(23829, 1, 432), - OAK_BOAT(17570, 1), - OAK_CHEST_BOAT(7765, 1), - SPRUCE_BOAT(31427, 1), - SPRUCE_CHEST_BOAT(30841, 1), - BIRCH_BOAT(28104, 1), - BIRCH_CHEST_BOAT(18546, 1), - JUNGLE_BOAT(4495, 1), - JUNGLE_CHEST_BOAT(20133, 1), - ACACIA_BOAT(27326, 1), - ACACIA_CHEST_BOAT(28455, 1), - CHERRY_BOAT(13628, 1), - CHERRY_CHEST_BOAT(7165, 1), - DARK_OAK_BOAT(28618, 1), - DARK_OAK_CHEST_BOAT(8733, 1), - PALE_OAK_BOAT(18534, 1), - PALE_OAK_CHEST_BOAT(26297, 1), - MANGROVE_BOAT(20792, 1), - MANGROVE_CHEST_BOAT(18572, 1), - BAMBOO_RAFT(25901, 1), - BAMBOO_CHEST_RAFT(20056, 1), - /** - * BlockData: {@link StructureBlock} - */ - STRUCTURE_BLOCK(26831, StructureBlock.class), - /** - * BlockData: {@link Jigsaw} - */ - JIGSAW(17398, Jigsaw.class), - TURTLE_HELMET(30120, 1, 275), - TURTLE_SCUTE(6766), - ARMADILLO_SCUTE(11497), - WOLF_ARMOR(17138, 1, 64), - FLINT_AND_STEEL(28620, 1, 64), - BOWL(32661), - APPLE(7720), - BOW(8745, 1, 384), - ARROW(31091), - COAL(29067), - CHARCOAL(5390), - DIAMOND(20865), - EMERALD(5654), - LAPIS_LAZULI(11075), - QUARTZ(23608), - AMETHYST_SHARD(7613), - RAW_IRON(5329), - IRON_INGOT(24895), - RAW_COPPER(6162), - COPPER_INGOT(12611), - RAW_GOLD(19564), - GOLD_INGOT(28927), - NETHERITE_INGOT(32457), - NETHERITE_SCRAP(29331), - WOODEN_SWORD(7175, 1, 59), - WOODEN_SHOVEL(28432, 1, 59), - WOODEN_PICKAXE(12792, 1, 59), - WOODEN_AXE(6292, 1, 59), - WOODEN_HOE(16043, 1, 59), - STONE_SWORD(25084, 1, 131), - STONE_SHOVEL(9520, 1, 131), - STONE_PICKAXE(14611, 1, 131), - STONE_AXE(6338, 1, 131), - STONE_HOE(22855, 1, 131), - GOLDEN_SWORD(10505, 1, 32), - GOLDEN_SHOVEL(15597, 1, 32), - GOLDEN_PICKAXE(25898, 1, 32), - GOLDEN_AXE(4878, 1, 32), - GOLDEN_HOE(19337, 1, 32), - IRON_SWORD(10904, 1, 250), - IRON_SHOVEL(30045, 1, 250), - IRON_PICKAXE(8842, 1, 250), - IRON_AXE(15894, 1, 250), - IRON_HOE(11339, 1, 250), - DIAMOND_SWORD(27707, 1, 1561), - DIAMOND_SHOVEL(25415, 1, 1561), - DIAMOND_PICKAXE(24291, 1, 1561), - DIAMOND_AXE(27277, 1, 1561), - DIAMOND_HOE(24050, 1, 1561), - NETHERITE_SWORD(23871, 1, 2031), - NETHERITE_SHOVEL(29728, 1, 2031), - NETHERITE_PICKAXE(9930, 1, 2031), - NETHERITE_AXE(29533, 1, 2031), - NETHERITE_HOE(27385, 1, 2031), - STICK(9773), - MUSHROOM_STEW(16336, 1), - STRING(12806), - FEATHER(30548), - GUNPOWDER(29974), - WHEAT_SEEDS(28742), - /** - * BlockData: {@link Ageable} - */ - WHEAT(27709, Ageable.class), - BREAD(32049), - LEATHER_HELMET(11624, 1, 55), - LEATHER_CHESTPLATE(29275, 1, 80), - LEATHER_LEGGINGS(28210, 1, 75), - LEATHER_BOOTS(15282, 1, 65), - CHAINMAIL_HELMET(26114, 1, 165), - CHAINMAIL_CHESTPLATE(23602, 1, 240), - CHAINMAIL_LEGGINGS(19087, 1, 225), - CHAINMAIL_BOOTS(17953, 1, 195), - IRON_HELMET(12025, 1, 165), - IRON_CHESTPLATE(28112, 1, 240), - IRON_LEGGINGS(18951, 1, 225), - IRON_BOOTS(8531, 1, 195), - DIAMOND_HELMET(10755, 1, 363), - DIAMOND_CHESTPLATE(32099, 1, 528), - DIAMOND_LEGGINGS(26500, 1, 495), - DIAMOND_BOOTS(16522, 1, 429), - GOLDEN_HELMET(7945, 1, 77), - GOLDEN_CHESTPLATE(4507, 1, 112), - GOLDEN_LEGGINGS(21002, 1, 105), - GOLDEN_BOOTS(7859, 1, 91), - NETHERITE_HELMET(15907, 1, 407), - NETHERITE_CHESTPLATE(6106, 1, 592), - NETHERITE_LEGGINGS(25605, 1, 555), - NETHERITE_BOOTS(8923, 1, 481), - FLINT(23596), - PORKCHOP(30896), - COOKED_PORKCHOP(27231), - PAINTING(23945), - GOLDEN_APPLE(27732), - ENCHANTED_GOLDEN_APPLE(8280), - /** - * BlockData: {@link Sign} - */ - OAK_SIGN(8192, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - SPRUCE_SIGN(21502, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - BIRCH_SIGN(11351, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - JUNGLE_SIGN(24717, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - ACACIA_SIGN(29808, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - CHERRY_SIGN(16520, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - DARK_OAK_SIGN(15127, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - PALE_OAK_SIGN(12116, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - MANGROVE_SIGN(21975, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - BAMBOO_SIGN(26139, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - CRIMSON_SIGN(12162, 16, Sign.class), - /** - * BlockData: {@link Sign} - */ - WARPED_SIGN(10407, 16, Sign.class), - /** - * BlockData: {@link HangingSign} - */ - OAK_HANGING_SIGN(20116, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - SPRUCE_HANGING_SIGN(24371, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - BIRCH_HANGING_SIGN(17938, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - JUNGLE_HANGING_SIGN(27671, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - ACACIA_HANGING_SIGN(30257, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - CHERRY_HANGING_SIGN(5088, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - DARK_OAK_HANGING_SIGN(23360, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - PALE_OAK_HANGING_SIGN(7097, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - MANGROVE_HANGING_SIGN(25106, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - BAMBOO_HANGING_SIGN(4726, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - CRIMSON_HANGING_SIGN(20696, 16, HangingSign.class), - /** - * BlockData: {@link HangingSign} - */ - WARPED_HANGING_SIGN(8195, 16, HangingSign.class), - BUCKET(15215, 16), - WATER_BUCKET(8802, 1), - LAVA_BUCKET(9228, 1), - POWDER_SNOW_BUCKET(31101, 1), - SNOWBALL(19487, 16), - LEATHER(16414), - MILK_BUCKET(9680, 1), - PUFFERFISH_BUCKET(8861, 1), - SALMON_BUCKET(9606, 1), - COD_BUCKET(28601, 1), - TROPICAL_FISH_BUCKET(29995, 1), - AXOLOTL_BUCKET(20669, 1), - TADPOLE_BUCKET(9731, 1), - BRICK(6820), - CLAY_BALL(24603), - DRIED_KELP_BLOCK(12966), - PAPER(9923), - BOOK(23097), - SLIME_BALL(5242), - EGG(21603, 16), - COMPASS(24139), - RECOVERY_COMPASS(12710), - BUNDLE(16835, 1), - WHITE_BUNDLE(12072, 1), - ORANGE_BUNDLE(18288, 1), - MAGENTA_BUNDLE(15328, 1), - LIGHT_BLUE_BUNDLE(18639, 1), - YELLOW_BUNDLE(27749, 1), - LIME_BUNDLE(30093, 1), - PINK_BUNDLE(21400, 1), - GRAY_BUNDLE(21262, 1), - LIGHT_GRAY_BUNDLE(26338, 1), - CYAN_BUNDLE(8942, 1), - PURPLE_BUNDLE(10319, 1), - BLUE_BUNDLE(31501, 1), - BROWN_BUNDLE(15464, 1), - GREEN_BUNDLE(4597, 1), - RED_BUNDLE(19986, 1), - BLACK_BUNDLE(22519, 1), - FISHING_ROD(4167, 1, 64), - CLOCK(14980), - SPYGLASS(27490, 1), - GLOWSTONE_DUST(6665), - COD(24691), - SALMON(18516), - TROPICAL_FISH(24879), - PUFFERFISH(8115), - COOKED_COD(9681), - COOKED_SALMON(5615), - INK_SAC(7184), - GLOW_INK_SAC(9686), - COCOA_BEANS(30186), - WHITE_DYE(10758), - ORANGE_DYE(13866), - MAGENTA_DYE(11788), - LIGHT_BLUE_DYE(28738), - YELLOW_DYE(5952), - LIME_DYE(6147), - PINK_DYE(31151), - GRAY_DYE(9184), - LIGHT_GRAY_DYE(27643), - CYAN_DYE(8043), - PURPLE_DYE(6347), - BLUE_DYE(11588), - BROWN_DYE(7648), - GREEN_DYE(23215), - RED_DYE(5728), - BLACK_DYE(6202), - BONE_MEAL(32458), - BONE(5686), - SUGAR(30638), - /** - * BlockData: {@link Cake} - */ - CAKE(27048, 1, Cake.class), - /** - * BlockData: {@link Bed} - */ - WHITE_BED(8185, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - ORANGE_BED(11194, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - MAGENTA_BED(20061, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - LIGHT_BLUE_BED(20957, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - YELLOW_BED(30410, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - LIME_BED(27860, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - PINK_BED(13795, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - GRAY_BED(15745, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - LIGHT_GRAY_BED(5090, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - CYAN_BED(16746, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - PURPLE_BED(29755, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - BLUE_BED(12714, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - BROWN_BED(26672, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - GREEN_BED(13797, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - RED_BED(30910, 1, Bed.class), - /** - * BlockData: {@link Bed} - */ - BLACK_BED(20490, 1, Bed.class), - COOKIE(27431), - /** - * BlockData: {@link Crafter} - */ - CRAFTER(25243, Crafter.class), - FILLED_MAP(23504), - SHEARS(27971, 1, 238), - MELON_SLICE(5347), - DRIED_KELP(21042), - PUMPKIN_SEEDS(28985), - MELON_SEEDS(18340), - BEEF(4803), - COOKED_BEEF(21595), - CHICKEN(17281), - COOKED_CHICKEN(16984), - ROTTEN_FLESH(21591), - ENDER_PEARL(5259, 16), - BLAZE_ROD(8289), - GHAST_TEAR(18222), - GOLD_NUGGET(28814), - /** - * BlockData: {@link Ageable} - */ - NETHER_WART(29227, Ageable.class), - GLASS_BOTTLE(6116), - POTION(24020, 1), - SPIDER_EYE(9318), - FERMENTED_SPIDER_EYE(19386), - BLAZE_POWDER(18941), - MAGMA_CREAM(25097), - /** - * BlockData: {@link BrewingStand} - */ - BREWING_STAND(14539, BrewingStand.class), - CAULDRON(26531), - ENDER_EYE(24860), - GLISTERING_MELON_SLICE(20158), - ARMADILLO_SPAWN_EGG(22098), - ALLAY_SPAWN_EGG(7909), - AXOLOTL_SPAWN_EGG(30381), - BAT_SPAWN_EGG(14607), - BEE_SPAWN_EGG(22924), - BLAZE_SPAWN_EGG(4759), - BOGGED_SPAWN_EGG(12042), - BREEZE_SPAWN_EGG(7580), - CAT_SPAWN_EGG(29583), - CAMEL_SPAWN_EGG(14760), - CAVE_SPIDER_SPAWN_EGG(23341), - CHICKEN_SPAWN_EGG(5462), - COD_SPAWN_EGG(27248), - COW_SPAWN_EGG(14761), - CREEPER_SPAWN_EGG(9653), - DOLPHIN_SPAWN_EGG(20787), - DONKEY_SPAWN_EGG(14513), - DROWNED_SPAWN_EGG(19368), - ELDER_GUARDIAN_SPAWN_EGG(11418), - ENDER_DRAGON_SPAWN_EGG(28092), - ENDERMAN_SPAWN_EGG(29488), - ENDERMITE_SPAWN_EGG(16617), - EVOKER_SPAWN_EGG(21271), - FOX_SPAWN_EGG(22376), - FROG_SPAWN_EGG(26682), - GHAST_SPAWN_EGG(9970), - GLOW_SQUID_SPAWN_EGG(31578), - GOAT_SPAWN_EGG(30639), - GUARDIAN_SPAWN_EGG(20113), - HOGLIN_SPAWN_EGG(14088), - HORSE_SPAWN_EGG(25981), - HUSK_SPAWN_EGG(20178), - IRON_GOLEM_SPAWN_EGG(12781), - LLAMA_SPAWN_EGG(23640), - MAGMA_CUBE_SPAWN_EGG(26638), - MOOSHROOM_SPAWN_EGG(22125), - MULE_SPAWN_EGG(11229), - OCELOT_SPAWN_EGG(30080), - PANDA_SPAWN_EGG(23759), - PARROT_SPAWN_EGG(23614), - PHANTOM_SPAWN_EGG(24648), - PIG_SPAWN_EGG(22584), - PIGLIN_SPAWN_EGG(16193), - PIGLIN_BRUTE_SPAWN_EGG(30230), - PILLAGER_SPAWN_EGG(28659), - POLAR_BEAR_SPAWN_EGG(17015), - PUFFERFISH_SPAWN_EGG(24570), - RABBIT_SPAWN_EGG(26496), - RAVAGER_SPAWN_EGG(8726), - SALMON_SPAWN_EGG(18739), - SHEEP_SPAWN_EGG(24488), - SHULKER_SPAWN_EGG(31848), - SILVERFISH_SPAWN_EGG(14537), - SKELETON_SPAWN_EGG(15261), - SKELETON_HORSE_SPAWN_EGG(21356), - SLIME_SPAWN_EGG(17196), - SNIFFER_SPAWN_EGG(27473), - SNOW_GOLEM_SPAWN_EGG(24732), - SPIDER_SPAWN_EGG(14984), - SQUID_SPAWN_EGG(10682), - STRAY_SPAWN_EGG(30153), - STRIDER_SPAWN_EGG(6203), - TADPOLE_SPAWN_EGG(32467), - TRADER_LLAMA_SPAWN_EGG(8439), - TROPICAL_FISH_SPAWN_EGG(19713), - TURTLE_SPAWN_EGG(17324), - VEX_SPAWN_EGG(27751), - VILLAGER_SPAWN_EGG(30348), - VINDICATOR_SPAWN_EGG(25324), - WANDERING_TRADER_SPAWN_EGG(17904), - WARDEN_SPAWN_EGG(27553), - WITCH_SPAWN_EGG(11837), - WITHER_SPAWN_EGG(8024), - WITHER_SKELETON_SPAWN_EGG(10073), - WOLF_SPAWN_EGG(21692), - ZOGLIN_SPAWN_EGG(7442), - CREAKING_SPAWN_EGG(9598), - ZOMBIE_SPAWN_EGG(5814), - ZOMBIE_HORSE_SPAWN_EGG(4275), - ZOMBIE_VILLAGER_SPAWN_EGG(10311), - ZOMBIFIED_PIGLIN_SPAWN_EGG(6626), - EXPERIENCE_BOTTLE(12858), - FIRE_CHARGE(4842), - WIND_CHARGE(23928), - WRITABLE_BOOK(13393, 1), - WRITTEN_BOOK(24164, 16), - BREEZE_ROD(14281), - MACE(4771, 1, 500), - ITEM_FRAME(27318), - GLOW_ITEM_FRAME(26473), - FLOWER_POT(30567), - CARROT(22824), - POTATO(21088), - BAKED_POTATO(14624), - POISONOUS_POTATO(32640), - MAP(21655), - GOLDEN_CARROT(5300), - /** - * BlockData: {@link Skull} - */ - SKELETON_SKULL(13270, Skull.class), - /** - * BlockData: {@link Skull} - */ - WITHER_SKELETON_SKULL(31487, Skull.class), - /** - * BlockData: {@link Skull} - */ - PLAYER_HEAD(21174, Skull.class), - /** - * BlockData: {@link Skull} - */ - ZOMBIE_HEAD(9304, Skull.class), - /** - * BlockData: {@link Skull} - */ - CREEPER_HEAD(29146, Skull.class), - /** - * BlockData: {@link Skull} - */ - DRAGON_HEAD(20084, Skull.class), - /** - * BlockData: {@link Skull} - */ - PIGLIN_HEAD(5512, Skull.class), - NETHER_STAR(12469), - PUMPKIN_PIE(28725), - FIREWORK_ROCKET(23841), - FIREWORK_STAR(12190), - ENCHANTED_BOOK(11741, 1), - NETHER_BRICK(19996), - RESIN_BRICK(19050), - PRISMARINE_SHARD(10993), - PRISMARINE_CRYSTALS(31546), - RABBIT(23068), - COOKED_RABBIT(4454), - RABBIT_STEW(25318, 1), - RABBIT_FOOT(13864), - RABBIT_HIDE(12467), - ARMOR_STAND(12852, 16), - IRON_HORSE_ARMOR(30108, 1), - GOLDEN_HORSE_ARMOR(7996, 1), - DIAMOND_HORSE_ARMOR(10321, 1), - LEATHER_HORSE_ARMOR(30667, 1), - LEAD(29539), - NAME_TAG(30731), - COMMAND_BLOCK_MINECART(7992, 1), - MUTTON(4792), - COOKED_MUTTON(31447), - /** - * BlockData: {@link Rotatable} - */ - WHITE_BANNER(17562, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - ORANGE_BANNER(4839, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - MAGENTA_BANNER(15591, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - LIGHT_BLUE_BANNER(18060, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - YELLOW_BANNER(30382, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - LIME_BANNER(18887, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - PINK_BANNER(19439, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - GRAY_BANNER(12053, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - LIGHT_GRAY_BANNER(11417, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - CYAN_BANNER(9839, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - PURPLE_BANNER(29027, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - BLUE_BANNER(18481, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - BROWN_BANNER(11481, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - GREEN_BANNER(10698, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - RED_BANNER(26961, 16, Rotatable.class), - /** - * BlockData: {@link Rotatable} - */ - BLACK_BANNER(9365, 16, Rotatable.class), - END_CRYSTAL(19090), - CHORUS_FRUIT(7652), - POPPED_CHORUS_FRUIT(27844), - TORCHFLOWER_SEEDS(18153), - PITCHER_POD(7977), - BEETROOT(23305), - BEETROOT_SEEDS(21282), - BEETROOT_SOUP(16036, 1), - DRAGON_BREATH(20154), - SPLASH_POTION(30248, 1), - SPECTRAL_ARROW(4568), - TIPPED_ARROW(25164), - LINGERING_POTION(25857, 1), - SHIELD(29943, 1, 336), - TOTEM_OF_UNDYING(10139, 1), - SHULKER_SHELL(27848), - IRON_NUGGET(13715), - KNOWLEDGE_BOOK(12646, 1), - DEBUG_STICK(24562, 1), - MUSIC_DISC_13(16359, 1), - MUSIC_DISC_CAT(16246, 1), - MUSIC_DISC_BLOCKS(26667, 1), - MUSIC_DISC_CHIRP(19436, 1), - MUSIC_DISC_CREATOR(20345, 1), - MUSIC_DISC_CREATOR_MUSIC_BOX(7202, 1), - MUSIC_DISC_FAR(31742, 1), - MUSIC_DISC_MALL(11517, 1), - MUSIC_DISC_MELLOHI(26117, 1), - MUSIC_DISC_STAL(14989, 1), - MUSIC_DISC_STRAD(16785, 1), - MUSIC_DISC_WARD(24026, 1), - MUSIC_DISC_11(27426, 1), - MUSIC_DISC_WAIT(26499, 1), - MUSIC_DISC_OTHERSIDE(12974, 1), - MUSIC_DISC_RELIC(8200, 1), - MUSIC_DISC_5(9212, 1), - MUSIC_DISC_PIGSTEP(21323, 1), - MUSIC_DISC_PRECIPICE(28677, 1), - DISC_FRAGMENT_5(29729), - TRIDENT(7534, 1, 250), - NAUTILUS_SHELL(19989), - HEART_OF_THE_SEA(11807), - CROSSBOW(4340, 1, 465), - SUSPICIOUS_STEW(8173, 1), - /** - * BlockData: {@link Directional} - */ - LOOM(14276, Directional.class), - FLOWER_BANNER_PATTERN(5762, 1), - CREEPER_BANNER_PATTERN(15774, 1), - SKULL_BANNER_PATTERN(7680, 1), - MOJANG_BANNER_PATTERN(11903, 1), - GLOBE_BANNER_PATTERN(27753, 1), - PIGLIN_BANNER_PATTERN(22028, 1), - FLOW_BANNER_PATTERN(32683, 1), - GUSTER_BANNER_PATTERN(27267, 1), - FIELD_MASONED_BANNER_PATTERN(19157, 1), - BORDURE_INDENTED_BANNER_PATTERN(25850, 1), - GOAT_HORN(28237, 1), - /** - * BlockData: {@link Levelled} - */ - COMPOSTER(31247, Levelled.class), - /** - * BlockData: {@link Barrel} - */ - BARREL(22396, Barrel.class), - /** - * BlockData: {@link Furnace} - */ - SMOKER(24781, Furnace.class), - /** - * BlockData: {@link Furnace} - */ - BLAST_FURNACE(31157, Furnace.class), - CARTOGRAPHY_TABLE(28529), - FLETCHING_TABLE(30838), - /** - * BlockData: {@link Grindstone} - */ - GRINDSTONE(26260, Grindstone.class), - SMITHING_TABLE(9082), - /** - * BlockData: {@link Directional} - */ - STONECUTTER(25170, Directional.class), - /** - * BlockData: {@link Bell} - */ - BELL(20000, Bell.class), - /** - * BlockData: {@link Lantern} - */ - LANTERN(5992, Lantern.class), - /** - * BlockData: {@link Lantern} - */ - SOUL_LANTERN(27778, Lantern.class), - SWEET_BERRIES(19747), - GLOW_BERRIES(11584), - /** - * BlockData: {@link Campfire} - */ - CAMPFIRE(8488, Campfire.class), - /** - * BlockData: {@link Campfire} - */ - SOUL_CAMPFIRE(4238, Campfire.class), - SHROOMLIGHT(20424), - HONEYCOMB(9482), - /** - * BlockData: {@link Beehive} - */ - BEE_NEST(8825, Beehive.class), - /** - * BlockData: {@link Beehive} - */ - BEEHIVE(11830, Beehive.class), - HONEY_BOTTLE(22927, 16), - HONEYCOMB_BLOCK(28780), - LODESTONE(23127), - CRYING_OBSIDIAN(31545), - BLACKSTONE(7354), - /** - * BlockData: {@link Slab} - */ - BLACKSTONE_SLAB(11948, Slab.class), - /** - * BlockData: {@link Stairs} - */ - BLACKSTONE_STAIRS(14646, Stairs.class), - GILDED_BLACKSTONE(8498), - POLISHED_BLACKSTONE(18144), - /** - * BlockData: {@link Slab} - */ - POLISHED_BLACKSTONE_SLAB(23430, Slab.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_BLACKSTONE_STAIRS(8653, Stairs.class), - CHISELED_POLISHED_BLACKSTONE(21942), - POLISHED_BLACKSTONE_BRICKS(19844), - /** - * BlockData: {@link Slab} - */ - POLISHED_BLACKSTONE_BRICK_SLAB(12219, Slab.class), - /** - * BlockData: {@link Stairs} - */ - POLISHED_BLACKSTONE_BRICK_STAIRS(17983, Stairs.class), - CRACKED_POLISHED_BLACKSTONE_BRICKS(16846), - /** - * BlockData: {@link RespawnAnchor} - */ - RESPAWN_ANCHOR(4099, RespawnAnchor.class), - /** - * BlockData: {@link Candle} - */ - CANDLE(16122, Candle.class), - /** - * BlockData: {@link Candle} - */ - WHITE_CANDLE(26410, Candle.class), - /** - * BlockData: {@link Candle} - */ - ORANGE_CANDLE(22668, Candle.class), - /** - * BlockData: {@link Candle} - */ - MAGENTA_CANDLE(25467, Candle.class), - /** - * BlockData: {@link Candle} - */ - LIGHT_BLUE_CANDLE(28681, Candle.class), - /** - * BlockData: {@link Candle} - */ - YELLOW_CANDLE(14351, Candle.class), - /** - * BlockData: {@link Candle} - */ - LIME_CANDLE(21778, Candle.class), - /** - * BlockData: {@link Candle} - */ - PINK_CANDLE(28259, Candle.class), - /** - * BlockData: {@link Candle} - */ - GRAY_CANDLE(10721, Candle.class), - /** - * BlockData: {@link Candle} - */ - LIGHT_GRAY_CANDLE(10031, Candle.class), - /** - * BlockData: {@link Candle} - */ - CYAN_CANDLE(24765, Candle.class), - /** - * BlockData: {@link Candle} - */ - PURPLE_CANDLE(19606, Candle.class), - /** - * BlockData: {@link Candle} - */ - BLUE_CANDLE(29047, Candle.class), - /** - * BlockData: {@link Candle} - */ - BROWN_CANDLE(26145, Candle.class), - /** - * BlockData: {@link Candle} - */ - GREEN_CANDLE(29756, Candle.class), - /** - * BlockData: {@link Candle} - */ - RED_CANDLE(4214, Candle.class), - /** - * BlockData: {@link Candle} - */ - BLACK_CANDLE(12617, Candle.class), - /** - * BlockData: {@link AmethystCluster} - */ - SMALL_AMETHYST_BUD(14958, AmethystCluster.class), - /** - * BlockData: {@link AmethystCluster} - */ - MEDIUM_AMETHYST_BUD(8429, AmethystCluster.class), - /** - * BlockData: {@link AmethystCluster} - */ - LARGE_AMETHYST_BUD(7279, AmethystCluster.class), - /** - * BlockData: {@link AmethystCluster} - */ - AMETHYST_CLUSTER(13142, AmethystCluster.class), - /** - * BlockData: {@link PointedDripstone} - */ - POINTED_DRIPSTONE(18755, PointedDripstone.class), - /** - * BlockData: {@link Orientable} - */ - OCHRE_FROGLIGHT(25330, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - VERDANT_FROGLIGHT(22793, Orientable.class), - /** - * BlockData: {@link Orientable} - */ - PEARLESCENT_FROGLIGHT(21441, Orientable.class), - FROGSPAWN(8350), - ECHO_SHARD(12529), - BRUSH(30569, 1, 64), - NETHERITE_UPGRADE_SMITHING_TEMPLATE(7615), - SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE(16124), - DUNE_ARMOR_TRIM_SMITHING_TEMPLATE(30925), - COAST_ARMOR_TRIM_SMITHING_TEMPLATE(25501), - WILD_ARMOR_TRIM_SMITHING_TEMPLATE(5870), - WARD_ARMOR_TRIM_SMITHING_TEMPLATE(24534), - EYE_ARMOR_TRIM_SMITHING_TEMPLATE(14663), - VEX_ARMOR_TRIM_SMITHING_TEMPLATE(25818), - TIDE_ARMOR_TRIM_SMITHING_TEMPLATE(20420), - SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE(14386), - RIB_ARMOR_TRIM_SMITHING_TEMPLATE(6010), - SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE(29143), - WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE(4957), - SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE(20537), - SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(7070), - RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(29116), - HOST_ARMOR_TRIM_SMITHING_TEMPLATE(12165), - FLOW_ARMOR_TRIM_SMITHING_TEMPLATE(29175), - BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(9698), - ANGLER_POTTERY_SHERD(9952), - ARCHER_POTTERY_SHERD(21629), - ARMS_UP_POTTERY_SHERD(5484), - BLADE_POTTERY_SHERD(25079), - BREWER_POTTERY_SHERD(23429), - BURN_POTTERY_SHERD(21259), - DANGER_POTTERY_SHERD(30506), - EXPLORER_POTTERY_SHERD(5124), - FLOW_POTTERY_SHERD(4896), - FRIEND_POTTERY_SHERD(18221), - GUSTER_POTTERY_SHERD(28193), - HEART_POTTERY_SHERD(17607), - HEARTBREAK_POTTERY_SHERD(21108), - HOWL_POTTERY_SHERD(24900), - MINER_POTTERY_SHERD(30602), - MOURNER_POTTERY_SHERD(23993), - PLENTY_POTTERY_SHERD(28236), - PRIZE_POTTERY_SHERD(4341), - SCRAPE_POTTERY_SHERD(30034), - SHEAF_POTTERY_SHERD(23652), - SHELTER_POTTERY_SHERD(28390), - SKULL_POTTERY_SHERD(16980), - SNORT_POTTERY_SHERD(15921), - /** - * BlockData: {@link Waterlogged} - */ - COPPER_GRATE(16221, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - EXPOSED_COPPER_GRATE(7783, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - WEATHERED_COPPER_GRATE(24954, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - OXIDIZED_COPPER_GRATE(14122, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - WAXED_COPPER_GRATE(11230, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - WAXED_EXPOSED_COPPER_GRATE(20520, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - WAXED_WEATHERED_COPPER_GRATE(16533, Waterlogged.class), - /** - * BlockData: {@link Waterlogged} - */ - WAXED_OXIDIZED_COPPER_GRATE(32010, Waterlogged.class), - /** - * BlockData: {@link CopperBulb} - */ - COPPER_BULB(21370, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - EXPOSED_COPPER_BULB(11944, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - WEATHERED_COPPER_BULB(10800, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - OXIDIZED_COPPER_BULB(22421, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - WAXED_COPPER_BULB(23756, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - WAXED_EXPOSED_COPPER_BULB(5530, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - WAXED_WEATHERED_COPPER_BULB(13239, CopperBulb.class), - /** - * BlockData: {@link CopperBulb} - */ - WAXED_OXIDIZED_COPPER_BULB(26892, CopperBulb.class), - /** - * BlockData: {@link TrialSpawner} - */ - TRIAL_SPAWNER(19902, TrialSpawner.class), - TRIAL_KEY(12725), - OMINOUS_TRIAL_KEY(4986), - /** - * BlockData: {@link Vault} - */ - VAULT(6288, Vault.class), - OMINOUS_BOTTLE(26321), - /** - * BlockData: {@link Levelled} - */ - WATER(24998, Levelled.class), - /** - * BlockData: {@link Levelled} - */ - LAVA(8415, Levelled.class), - /** - * BlockData: {@link Bisected} - */ - TALL_SEAGRASS(27189, Bisected.class), - /** - * BlockData: {@link PistonHead} - */ - PISTON_HEAD(30226, PistonHead.class), - /** - * BlockData: {@link TechnicalPiston} - */ - MOVING_PISTON(13831, TechnicalPiston.class), - /** - * BlockData: {@link Directional} - */ - WALL_TORCH(25890, Directional.class), - /** - * BlockData: {@link Fire} - */ - FIRE(16396, Fire.class), - SOUL_FIRE(30163), - /** - * BlockData: {@link RedstoneWire} - */ - REDSTONE_WIRE(25984, RedstoneWire.class), - /** - * BlockData: {@link WallSign} - */ - OAK_WALL_SIGN(12984, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - SPRUCE_WALL_SIGN(7352, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - BIRCH_WALL_SIGN(9887, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - ACACIA_WALL_SIGN(20316, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - CHERRY_WALL_SIGN(20188, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - JUNGLE_WALL_SIGN(29629, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - DARK_OAK_WALL_SIGN(9508, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - PALE_OAK_WALL_SIGN(23103, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - MANGROVE_WALL_SIGN(27203, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - BAMBOO_WALL_SIGN(18857, 16, WallSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - OAK_WALL_HANGING_SIGN(15637, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - SPRUCE_WALL_HANGING_SIGN(18833, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - BIRCH_WALL_HANGING_SIGN(15937, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - ACACIA_WALL_HANGING_SIGN(22477, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - CHERRY_WALL_HANGING_SIGN(10953, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - JUNGLE_WALL_HANGING_SIGN(16691, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - DARK_OAK_WALL_HANGING_SIGN(14296, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - PALE_OAK_WALL_HANGING_SIGN(23484, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - MANGROVE_WALL_HANGING_SIGN(16974, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - CRIMSON_WALL_HANGING_SIGN(28982, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - WARPED_WALL_HANGING_SIGN(20605, WallHangingSign.class), - /** - * BlockData: {@link WallHangingSign} - */ - BAMBOO_WALL_HANGING_SIGN(6669, WallHangingSign.class), - /** - * BlockData: {@link RedstoneWallTorch} - */ - REDSTONE_WALL_TORCH(7595, RedstoneWallTorch.class), - /** - * BlockData: {@link Directional} - */ - SOUL_WALL_TORCH(27500, Directional.class), - /** - * BlockData: {@link Orientable} - */ - NETHER_PORTAL(19469, Orientable.class), - /** - * BlockData: {@link Directional} - */ - ATTACHED_PUMPKIN_STEM(12724, Directional.class), - /** - * BlockData: {@link Directional} - */ - ATTACHED_MELON_STEM(30882, Directional.class), - /** - * BlockData: {@link Ageable} - */ - PUMPKIN_STEM(19021, Ageable.class), - /** - * BlockData: {@link Ageable} - */ - MELON_STEM(8247, Ageable.class), - /** - * BlockData: {@link Levelled} - */ - WATER_CAULDRON(32008, Levelled.class), - LAVA_CAULDRON(4514), - /** - * BlockData: {@link Levelled} - */ - POWDER_SNOW_CAULDRON(31571, Levelled.class), - END_PORTAL(16782), - /** - * BlockData: {@link Cocoa} - */ - COCOA(29709, Cocoa.class), - /** - * BlockData: {@link Tripwire} - */ - TRIPWIRE(8810, Tripwire.class), - POTTED_TORCHFLOWER(21278), - POTTED_OAK_SAPLING(11905), - POTTED_SPRUCE_SAPLING(29498), - POTTED_BIRCH_SAPLING(32484), - POTTED_JUNGLE_SAPLING(7525), - POTTED_ACACIA_SAPLING(14096), - POTTED_CHERRY_SAPLING(30785), - POTTED_DARK_OAK_SAPLING(6486), - POTTED_PALE_OAK_SAPLING(15538), - POTTED_MANGROVE_PROPAGULE(22003), - POTTED_FERN(23315), - POTTED_DANDELION(9727), - POTTED_POPPY(7457), - POTTED_BLUE_ORCHID(6599), - POTTED_ALLIUM(13184), - POTTED_AZURE_BLUET(8754), - POTTED_RED_TULIP(28594), - POTTED_ORANGE_TULIP(28807), - POTTED_WHITE_TULIP(24330), - POTTED_PINK_TULIP(10089), - POTTED_OXEYE_DAISY(19707), - POTTED_CORNFLOWER(28917), - POTTED_LILY_OF_THE_VALLEY(9364), - POTTED_WITHER_ROSE(26876), - POTTED_RED_MUSHROOM(22881), - POTTED_BROWN_MUSHROOM(14481), - POTTED_DEAD_BUSH(13020), - POTTED_CACTUS(8777), - /** - * BlockData: {@link Ageable} - */ - CARROTS(17258, Ageable.class), - /** - * BlockData: {@link Ageable} - */ - POTATOES(10879, Ageable.class), - /** - * BlockData: {@link WallSkull} - */ - SKELETON_WALL_SKULL(31650, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - WITHER_SKELETON_WALL_SKULL(9326, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - ZOMBIE_WALL_HEAD(16296, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - PLAYER_WALL_HEAD(13164, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - CREEPER_WALL_HEAD(30123, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - DRAGON_WALL_HEAD(19818, WallSkull.class), - /** - * BlockData: {@link WallSkull} - */ - PIGLIN_WALL_HEAD(4446, WallSkull.class), - /** - * BlockData: {@link Directional} - */ - WHITE_WALL_BANNER(15967, Directional.class), - /** - * BlockData: {@link Directional} - */ - ORANGE_WALL_BANNER(9936, Directional.class), - /** - * BlockData: {@link Directional} - */ - MAGENTA_WALL_BANNER(23291, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_BLUE_WALL_BANNER(12011, Directional.class), - /** - * BlockData: {@link Directional} - */ - YELLOW_WALL_BANNER(32004, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIME_WALL_BANNER(21422, Directional.class), - /** - * BlockData: {@link Directional} - */ - PINK_WALL_BANNER(9421, Directional.class), - /** - * BlockData: {@link Directional} - */ - GRAY_WALL_BANNER(24275, Directional.class), - /** - * BlockData: {@link Directional} - */ - LIGHT_GRAY_WALL_BANNER(31088, Directional.class), - /** - * BlockData: {@link Directional} - */ - CYAN_WALL_BANNER(10889, Directional.class), - /** - * BlockData: {@link Directional} - */ - PURPLE_WALL_BANNER(14298, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLUE_WALL_BANNER(17757, Directional.class), - /** - * BlockData: {@link Directional} - */ - BROWN_WALL_BANNER(14731, Directional.class), - /** - * BlockData: {@link Directional} - */ - GREEN_WALL_BANNER(15046, Directional.class), - /** - * BlockData: {@link Directional} - */ - RED_WALL_BANNER(4378, Directional.class), - /** - * BlockData: {@link Directional} - */ - BLACK_WALL_BANNER(4919, Directional.class), - /** - * BlockData: {@link Ageable} - */ - TORCHFLOWER_CROP(28460, Ageable.class), - /** - * BlockData: {@link PitcherCrop} - */ - PITCHER_CROP(15420, PitcherCrop.class), - /** - * BlockData: {@link Ageable} - */ - BEETROOTS(22075, Ageable.class), - END_GATEWAY(26605), - /** - * BlockData: {@link Ageable} - */ - FROSTED_ICE(21814, Ageable.class), - KELP_PLANT(29697), - /** - * BlockData: {@link CoralWallFan} - */ - DEAD_TUBE_CORAL_WALL_FAN(5128, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - DEAD_BRAIN_CORAL_WALL_FAN(23718, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - DEAD_BUBBLE_CORAL_WALL_FAN(18453, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - DEAD_FIRE_CORAL_WALL_FAN(23375, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - DEAD_HORN_CORAL_WALL_FAN(27550, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - TUBE_CORAL_WALL_FAN(25282, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - BRAIN_CORAL_WALL_FAN(22685, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - BUBBLE_CORAL_WALL_FAN(20382, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - FIRE_CORAL_WALL_FAN(20100, CoralWallFan.class), - /** - * BlockData: {@link CoralWallFan} - */ - HORN_CORAL_WALL_FAN(28883, CoralWallFan.class), - BAMBOO_SAPLING(8478), - POTTED_BAMBOO(22542), - VOID_AIR(13668), - CAVE_AIR(17422), - /** - * BlockData: {@link BubbleColumn} - */ - BUBBLE_COLUMN(31612, BubbleColumn.class), - /** - * BlockData: {@link Ageable} - */ - SWEET_BERRY_BUSH(11958, Ageable.class), - WEEPING_VINES_PLANT(19437), - TWISTING_VINES_PLANT(25338), - /** - * BlockData: {@link WallSign} - */ - CRIMSON_WALL_SIGN(19242, 16, WallSign.class), - /** - * BlockData: {@link WallSign} - */ - WARPED_WALL_SIGN(13534, 16, WallSign.class), - POTTED_CRIMSON_FUNGUS(5548), - POTTED_WARPED_FUNGUS(30800), - POTTED_CRIMSON_ROOTS(13852), - POTTED_WARPED_ROOTS(6403), - /** - * BlockData: {@link Lightable} - */ - CANDLE_CAKE(25423, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - WHITE_CANDLE_CAKE(12674, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - ORANGE_CANDLE_CAKE(24982, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - MAGENTA_CANDLE_CAKE(11022, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - LIGHT_BLUE_CANDLE_CAKE(7787, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - YELLOW_CANDLE_CAKE(17157, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - LIME_CANDLE_CAKE(14309, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - PINK_CANDLE_CAKE(20405, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - GRAY_CANDLE_CAKE(6777, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - LIGHT_GRAY_CANDLE_CAKE(11318, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - CYAN_CANDLE_CAKE(21202, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - PURPLE_CANDLE_CAKE(22663, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - BLUE_CANDLE_CAKE(26425, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - BROWN_CANDLE_CAKE(26024, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - GREEN_CANDLE_CAKE(16334, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - RED_CANDLE_CAKE(24151, Lightable.class), - /** - * BlockData: {@link Lightable} - */ - BLACK_CANDLE_CAKE(15191, Lightable.class), - POWDER_SNOW(24077), - /** - * BlockData: {@link CaveVines} - */ - CAVE_VINES(7339, CaveVines.class), - /** - * BlockData: {@link CaveVinesPlant} - */ - CAVE_VINES_PLANT(30645, CaveVinesPlant.class), - /** - * BlockData: {@link Dripleaf} - */ - BIG_DRIPLEAF_STEM(13167, Dripleaf.class), - POTTED_AZALEA_BUSH(20430), - POTTED_FLOWERING_AZALEA_BUSH(10609), - POTTED_OPEN_EYEBLOSSOM(24999), - POTTED_CLOSED_EYEBLOSSOM(16694), + // Start generate - Items + // @GeneratedFrom 1.21.4 + ACACIA_BOAT(-1, 1), + ACACIA_CHEST_BOAT(-1, 1), + AIR(-1), + ALLAY_SPAWN_EGG(-1), + AMETHYST_SHARD(-1), + ANGLER_POTTERY_SHERD(-1), + APPLE(-1), + ARCHER_POTTERY_SHERD(-1), + ARMADILLO_SCUTE(-1), + ARMADILLO_SPAWN_EGG(-1), + ARMOR_STAND(-1, 16), + ARMS_UP_POTTERY_SHERD(-1), + ARROW(-1), + AXOLOTL_BUCKET(-1, 1), + AXOLOTL_SPAWN_EGG(-1), + BAKED_POTATO(-1), + BAMBOO_CHEST_RAFT(-1, 1), + BAMBOO_RAFT(-1, 1), + BAT_SPAWN_EGG(-1), + BEE_SPAWN_EGG(-1), + BEEF(-1), + BEETROOT(-1), + BEETROOT_SEEDS(-1), + BEETROOT_SOUP(-1, 1), + BIRCH_BOAT(-1, 1), + BIRCH_CHEST_BOAT(-1, 1), + BLACK_BUNDLE(-1, 1), + BLACK_DYE(-1), + BLADE_POTTERY_SHERD(-1), + BLAZE_POWDER(-1), + BLAZE_ROD(-1), + BLAZE_SPAWN_EGG(-1), + BLUE_BUNDLE(-1, 1), + BLUE_DYE(-1), + BOGGED_SPAWN_EGG(-1), + BOLT_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + BONE(-1), + BONE_MEAL(-1), + BOOK(-1), + BORDURE_INDENTED_BANNER_PATTERN(-1, 1), + BOW(-1, 1, 384), + BOWL(-1), + BREAD(-1), + BREEZE_ROD(-1), + BREEZE_SPAWN_EGG(-1), + BREWER_POTTERY_SHERD(-1), + BRICK(-1), + BROWN_BUNDLE(-1, 1), + BROWN_DYE(-1), + BRUSH(-1, 1, 64), + BUCKET(-1, 16), + BUNDLE(-1, 1), + BURN_POTTERY_SHERD(-1), + CAMEL_SPAWN_EGG(-1), + CARROT(-1), + CARROT_ON_A_STICK(-1, 1, 25), + CAT_SPAWN_EGG(-1), + CAVE_SPIDER_SPAWN_EGG(-1), + CHAINMAIL_BOOTS(-1, 1, 195), + CHAINMAIL_CHESTPLATE(-1, 1, 240), + CHAINMAIL_HELMET(-1, 1, 165), + CHAINMAIL_LEGGINGS(-1, 1, 225), + CHARCOAL(-1), + CHERRY_BOAT(-1, 1), + CHERRY_CHEST_BOAT(-1, 1), + CHEST_MINECART(-1, 1), + CHICKEN(-1), + CHICKEN_SPAWN_EGG(-1), + CHORUS_FRUIT(-1), + CLAY_BALL(-1), + CLOCK(-1), + COAL(-1), + COAST_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + COCOA_BEANS(-1), + COD(-1), + COD_BUCKET(-1, 1), + COD_SPAWN_EGG(-1), + COMMAND_BLOCK_MINECART(-1, 1), + COMPASS(-1), + COOKED_BEEF(-1), + COOKED_CHICKEN(-1), + COOKED_COD(-1), + COOKED_MUTTON(-1), + COOKED_PORKCHOP(-1), + COOKED_RABBIT(-1), + COOKED_SALMON(-1), + COOKIE(-1), + COPPER_INGOT(-1), + COW_SPAWN_EGG(-1), + CREAKING_SPAWN_EGG(-1), + CREEPER_BANNER_PATTERN(-1, 1), + CREEPER_SPAWN_EGG(-1), + CROSSBOW(-1, 1, 465), + CYAN_BUNDLE(-1, 1), + CYAN_DYE(-1), + DANGER_POTTERY_SHERD(-1), + DARK_OAK_BOAT(-1, 1), + DARK_OAK_CHEST_BOAT(-1, 1), + DEBUG_STICK(-1, 1), + DIAMOND(-1), + DIAMOND_AXE(-1, 1, 1561), + DIAMOND_BOOTS(-1, 1, 429), + DIAMOND_CHESTPLATE(-1, 1, 528), + DIAMOND_HELMET(-1, 1, 363), + DIAMOND_HOE(-1, 1, 1561), + DIAMOND_HORSE_ARMOR(-1, 1), + DIAMOND_LEGGINGS(-1, 1, 495), + DIAMOND_PICKAXE(-1, 1, 1561), + DIAMOND_SHOVEL(-1, 1, 1561), + DIAMOND_SWORD(-1, 1, 1561), + DRAGON_BREATH(-1), + END_CRYSTAL(-1), + FIELD_MASONED_BANNER_PATTERN(-1, 1), + FLOW_BANNER_PATTERN(-1, 1), + GLOBE_BANNER_PATTERN(-1, 1), + GOAT_HORN(-1, 1), + IRON_NUGGET(-1), + KNOWLEDGE_BOOK(-1, 1), + LINGERING_POTION(-1, 1), + MUSIC_DISC_5(-1, 1), + DISC_FRAGMENT_5(-1), + DOLPHIN_SPAWN_EGG(-1), + DONKEY_SPAWN_EGG(-1), + DRIED_KELP(-1), + DROWNED_SPAWN_EGG(-1), + DUNE_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + ECHO_SHARD(-1), + EGG(-1, 16), + ELDER_GUARDIAN_SPAWN_EGG(-1), + ELYTRA(-1, 1, 432), + EMERALD(-1), + ENCHANTED_BOOK(-1, 1), + ENCHANTED_GOLDEN_APPLE(-1), + ENDER_DRAGON_SPAWN_EGG(-1), + ENDER_EYE(-1), + ENDER_PEARL(-1, 16), + ENDERMAN_SPAWN_EGG(-1), + ENDERMITE_SPAWN_EGG(-1), + EVOKER_SPAWN_EGG(-1), + EXPERIENCE_BOTTLE(-1), + EXPLORER_POTTERY_SHERD(-1), + EYE_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + FEATHER(-1), + FERMENTED_SPIDER_EYE(-1), + FILLED_MAP(-1), + FIRE_CHARGE(-1), + FIREWORK_ROCKET(-1), + FIREWORK_STAR(-1), + FISHING_ROD(-1, 1, 64), + FLINT(-1), + FLINT_AND_STEEL(-1, 1, 64), + FLOW_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + FLOW_POTTERY_SHERD(-1), + FLOWER_BANNER_PATTERN(-1, 1), + FOX_SPAWN_EGG(-1), + FRIEND_POTTERY_SHERD(-1), + FROG_SPAWN_EGG(-1), + FURNACE_MINECART(-1, 1), + GHAST_SPAWN_EGG(-1), + GHAST_TEAR(-1), + GLASS_BOTTLE(-1), + GLISTERING_MELON_SLICE(-1), + GLOW_BERRIES(-1), + GLOW_INK_SAC(-1), + GLOW_ITEM_FRAME(-1), + GLOW_SQUID_SPAWN_EGG(-1), + GLOWSTONE_DUST(-1), + GOAT_SPAWN_EGG(-1), + GOLD_INGOT(-1), + GOLD_NUGGET(-1), + GOLDEN_APPLE(-1), + GOLDEN_AXE(-1, 1, 32), + GOLDEN_BOOTS(-1, 1, 91), + GOLDEN_CARROT(-1), + GOLDEN_CHESTPLATE(-1, 1, 112), + GOLDEN_HELMET(-1, 1, 77), + GOLDEN_HOE(-1, 1, 32), + GOLDEN_HORSE_ARMOR(-1, 1), + GOLDEN_LEGGINGS(-1, 1, 105), + GOLDEN_PICKAXE(-1, 1, 32), + GOLDEN_SHOVEL(-1, 1, 32), + GOLDEN_SWORD(-1, 1, 32), + GRAY_BUNDLE(-1, 1), + GRAY_DYE(-1), + GREEN_BUNDLE(-1, 1), + GREEN_DYE(-1), + GUARDIAN_SPAWN_EGG(-1), + GUNPOWDER(-1), + GUSTER_BANNER_PATTERN(-1, 1), + GUSTER_POTTERY_SHERD(-1), + HEART_OF_THE_SEA(-1), + HEART_POTTERY_SHERD(-1), + HEARTBREAK_POTTERY_SHERD(-1), + HOGLIN_SPAWN_EGG(-1), + HONEY_BOTTLE(-1, 16), + HONEYCOMB(-1), + HOPPER_MINECART(-1, 1), + HORSE_SPAWN_EGG(-1), + HOST_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + HOWL_POTTERY_SHERD(-1), + HUSK_SPAWN_EGG(-1), + INK_SAC(-1), + IRON_AXE(-1, 1, 250), + IRON_BOOTS(-1, 1, 195), + IRON_CHESTPLATE(-1, 1, 240), + IRON_GOLEM_SPAWN_EGG(-1), + IRON_HELMET(-1, 1, 165), + IRON_HOE(-1, 1, 250), + IRON_HORSE_ARMOR(-1, 1), + IRON_INGOT(-1), + IRON_LEGGINGS(-1, 1, 225), + IRON_PICKAXE(-1, 1, 250), + IRON_SHOVEL(-1, 1, 250), + IRON_SWORD(-1, 1, 250), + ITEM_FRAME(-1), + JUNGLE_BOAT(-1, 1), + JUNGLE_CHEST_BOAT(-1, 1), + LAPIS_LAZULI(-1), + LAVA_BUCKET(-1, 1), + LEAD(-1), + LEATHER(-1), + LEATHER_BOOTS(-1, 1, 65), + LEATHER_CHESTPLATE(-1, 1, 80), + LEATHER_HELMET(-1, 1, 55), + LEATHER_HORSE_ARMOR(-1, 1), + LEATHER_LEGGINGS(-1, 1, 75), + LIGHT_BLUE_BUNDLE(-1, 1), + LIGHT_BLUE_DYE(-1), + LIGHT_GRAY_BUNDLE(-1, 1), + LIGHT_GRAY_DYE(-1), + LIME_BUNDLE(-1, 1), + LIME_DYE(-1), + LLAMA_SPAWN_EGG(-1), + MACE(-1, 1, 500), + MAGENTA_BUNDLE(-1, 1), + MAGENTA_DYE(-1), + MAGMA_CREAM(-1), + MAGMA_CUBE_SPAWN_EGG(-1), + MANGROVE_BOAT(-1, 1), + MANGROVE_CHEST_BOAT(-1, 1), + MAP(-1), + MELON_SEEDS(-1), + MELON_SLICE(-1), + MILK_BUCKET(-1, 1), + MINECART(-1, 1), + MINER_POTTERY_SHERD(-1), + MOJANG_BANNER_PATTERN(-1, 1), + MOOSHROOM_SPAWN_EGG(-1), + MOURNER_POTTERY_SHERD(-1), + MULE_SPAWN_EGG(-1), + MUSHROOM_STEW(-1, 1), + MUSIC_DISC_11(-1, 1), + MUSIC_DISC_13(-1, 1), + MUSIC_DISC_BLOCKS(-1, 1), + MUSIC_DISC_CAT(-1, 1), + MUSIC_DISC_CHIRP(-1, 1), + MUSIC_DISC_CREATOR(-1, 1), + MUSIC_DISC_CREATOR_MUSIC_BOX(-1, 1), + MUSIC_DISC_FAR(-1, 1), + MUSIC_DISC_MALL(-1, 1), + MUSIC_DISC_MELLOHI(-1, 1), + MUSIC_DISC_OTHERSIDE(-1, 1), + MUSIC_DISC_PIGSTEP(-1, 1), + MUSIC_DISC_PRECIPICE(-1, 1), + MUSIC_DISC_RELIC(-1, 1), + MUSIC_DISC_STAL(-1, 1), + MUSIC_DISC_STRAD(-1, 1), + MUSIC_DISC_WAIT(-1, 1), + MUSIC_DISC_WARD(-1, 1), + MUTTON(-1), + NAME_TAG(-1), + NAUTILUS_SHELL(-1), + NETHER_BRICK(-1), + NETHER_STAR(-1), + NETHERITE_AXE(-1, 1, 2031), + NETHERITE_BOOTS(-1, 1, 481), + NETHERITE_CHESTPLATE(-1, 1, 592), + NETHERITE_HELMET(-1, 1, 407), + NETHERITE_HOE(-1, 1, 2031), + NETHERITE_INGOT(-1), + NETHERITE_LEGGINGS(-1, 1, 555), + NETHERITE_PICKAXE(-1, 1, 2031), + NETHERITE_SCRAP(-1), + NETHERITE_SHOVEL(-1, 1, 2031), + NETHERITE_SWORD(-1, 1, 2031), + NETHERITE_UPGRADE_SMITHING_TEMPLATE(-1), + OAK_BOAT(-1, 1), + OAK_CHEST_BOAT(-1, 1), + OCELOT_SPAWN_EGG(-1), + OMINOUS_BOTTLE(-1), + OMINOUS_TRIAL_KEY(-1), + ORANGE_BUNDLE(-1, 1), + ORANGE_DYE(-1), + PAINTING(-1), + PALE_OAK_BOAT(-1, 1), + PALE_OAK_CHEST_BOAT(-1, 1), + PANDA_SPAWN_EGG(-1), + PAPER(-1), + PARROT_SPAWN_EGG(-1), + PHANTOM_MEMBRANE(-1), + PHANTOM_SPAWN_EGG(-1), + PIG_SPAWN_EGG(-1), + PIGLIN_BANNER_PATTERN(-1, 1), + PIGLIN_BRUTE_SPAWN_EGG(-1), + PIGLIN_SPAWN_EGG(-1), + PILLAGER_SPAWN_EGG(-1), + PINK_BUNDLE(-1, 1), + PINK_DYE(-1), + PITCHER_POD(-1), + PLENTY_POTTERY_SHERD(-1), + POISONOUS_POTATO(-1), + POLAR_BEAR_SPAWN_EGG(-1), + POPPED_CHORUS_FRUIT(-1), + PORKCHOP(-1), + POTATO(-1), + POTION(-1, 1), + POWDER_SNOW_BUCKET(-1, 1), + PRISMARINE_CRYSTALS(-1), + PRISMARINE_SHARD(-1), + PRIZE_POTTERY_SHERD(-1), + PUFFERFISH(-1), + PUFFERFISH_BUCKET(-1, 1), + PUFFERFISH_SPAWN_EGG(-1), + PUMPKIN_PIE(-1), + PUMPKIN_SEEDS(-1), + PURPLE_BUNDLE(-1, 1), + PURPLE_DYE(-1), + QUARTZ(-1), + RABBIT(-1), + RABBIT_FOOT(-1), + RABBIT_HIDE(-1), + RABBIT_SPAWN_EGG(-1), + RABBIT_STEW(-1, 1), + RAISER_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + RAVAGER_SPAWN_EGG(-1), + RAW_COPPER(-1), + RAW_GOLD(-1), + RAW_IRON(-1), + RECOVERY_COMPASS(-1), + RED_BUNDLE(-1, 1), + RED_DYE(-1), + REDSTONE(-1), + RESIN_BRICK(-1), + RIB_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + ROTTEN_FLESH(-1), + SADDLE(-1, 1), + SALMON(-1), + SALMON_BUCKET(-1, 1), + SALMON_SPAWN_EGG(-1), + SCRAPE_POTTERY_SHERD(-1), + SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + SHEAF_POTTERY_SHERD(-1), + SHEARS(-1, 1, 238), + SHEEP_SPAWN_EGG(-1), + SHELTER_POTTERY_SHERD(-1), + SHIELD(-1, 1, 336), + SHULKER_SHELL(-1), + SHULKER_SPAWN_EGG(-1), + SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + SILVERFISH_SPAWN_EGG(-1), + SKELETON_HORSE_SPAWN_EGG(-1), + SKELETON_SPAWN_EGG(-1), + SKULL_BANNER_PATTERN(-1, 1), + SKULL_POTTERY_SHERD(-1), + SLIME_BALL(-1), + SLIME_SPAWN_EGG(-1), + SNIFFER_SPAWN_EGG(-1), + SNORT_POTTERY_SHERD(-1), + SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + SNOW_GOLEM_SPAWN_EGG(-1), + SNOWBALL(-1, 16), + SPECTRAL_ARROW(-1), + SPIDER_EYE(-1), + SPIDER_SPAWN_EGG(-1), + SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + SPLASH_POTION(-1, 1), + SPRUCE_BOAT(-1, 1), + SPRUCE_CHEST_BOAT(-1, 1), + SPYGLASS(-1, 1), + SQUID_SPAWN_EGG(-1), + STICK(-1), + STONE_AXE(-1, 1, 131), + STONE_HOE(-1, 1, 131), + STONE_PICKAXE(-1, 1, 131), + STONE_SHOVEL(-1, 1, 131), + STONE_SWORD(-1, 1, 131), + STRAY_SPAWN_EGG(-1), + STRIDER_SPAWN_EGG(-1), + STRING(-1), + SUGAR(-1), + SUSPICIOUS_STEW(-1, 1), + SWEET_BERRIES(-1), + TADPOLE_BUCKET(-1, 1), + TADPOLE_SPAWN_EGG(-1), + TIDE_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + TIPPED_ARROW(-1), + TNT_MINECART(-1, 1), + TORCHFLOWER_SEEDS(-1), + TOTEM_OF_UNDYING(-1, 1), + TRADER_LLAMA_SPAWN_EGG(-1), + TRIAL_KEY(-1), + TRIDENT(-1, 1, 250), + TROPICAL_FISH(-1), + TROPICAL_FISH_BUCKET(-1, 1), + TROPICAL_FISH_SPAWN_EGG(-1), + TURTLE_HELMET(-1, 1, 275), + TURTLE_SCUTE(-1), + TURTLE_SPAWN_EGG(-1), + VEX_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + VEX_SPAWN_EGG(-1), + VILLAGER_SPAWN_EGG(-1), + VINDICATOR_SPAWN_EGG(-1), + WANDERING_TRADER_SPAWN_EGG(-1), + WARD_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + WARDEN_SPAWN_EGG(-1), + WARPED_FUNGUS_ON_A_STICK(-1, 1, 100), + WATER_BUCKET(-1, 1), + WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + WHEAT_SEEDS(-1), + WHITE_BUNDLE(-1, 1), + WHITE_DYE(-1), + WILD_ARMOR_TRIM_SMITHING_TEMPLATE(-1), + WIND_CHARGE(-1), + WITCH_SPAWN_EGG(-1), + WITHER_SKELETON_SPAWN_EGG(-1), + WITHER_SPAWN_EGG(-1), + WOLF_ARMOR(-1, 1, 64), + WOLF_SPAWN_EGG(-1), + WOODEN_AXE(-1, 1, 59), + WOODEN_HOE(-1, 1, 59), + WOODEN_PICKAXE(-1, 1, 59), + WOODEN_SHOVEL(-1, 1, 59), + WOODEN_SWORD(-1, 1, 59), + WRITABLE_BOOK(-1, 1), + WRITTEN_BOOK(-1, 16), + YELLOW_BUNDLE(-1, 1), + YELLOW_DYE(-1), + ZOGLIN_SPAWN_EGG(-1), + ZOMBIE_HORSE_SPAWN_EGG(-1), + ZOMBIE_SPAWN_EGG(-1), + ZOMBIE_VILLAGER_SPAWN_EGG(-1), + ZOMBIFIED_PIGLIN_SPAWN_EGG(-1), + // End generate - Items + // Start generate - Blocks + // @GeneratedFrom 1.21.4 + ACACIA_BUTTON(-1, Switch.class), + ACACIA_DOOR(-1, Door.class), + ACACIA_FENCE(-1, Fence.class), + ACACIA_FENCE_GATE(-1, Gate.class), + ACACIA_HANGING_SIGN(-1, 16, HangingSign.class), + ACACIA_LEAVES(-1, Leaves.class), + ACACIA_LOG(-1, Orientable.class), + ACACIA_PLANKS(-1), + ACACIA_PRESSURE_PLATE(-1, Powerable.class), + ACACIA_SAPLING(-1, Sapling.class), + ACACIA_SIGN(-1, 16, Sign.class), + ACACIA_SLAB(-1, Slab.class), + ACACIA_STAIRS(-1, Stairs.class), + ACACIA_TRAPDOOR(-1, TrapDoor.class), + ACACIA_WALL_HANGING_SIGN(-1, WallHangingSign.class), + ACACIA_WALL_SIGN(-1, 16, WallSign.class), + ACACIA_WOOD(-1, Orientable.class), + ACTIVATOR_RAIL(-1, RedstoneRail.class), + ALLIUM(-1), + AMETHYST_BLOCK(-1), + AMETHYST_CLUSTER(-1, AmethystCluster.class), + ANCIENT_DEBRIS(-1), + ANDESITE(-1), + ANDESITE_SLAB(-1, Slab.class), + ANDESITE_STAIRS(-1, Stairs.class), + ANDESITE_WALL(-1, Wall.class), + ANVIL(-1, Directional.class), + ATTACHED_MELON_STEM(-1, Directional.class), + ATTACHED_PUMPKIN_STEM(-1, Directional.class), + AZALEA(-1), + AZALEA_LEAVES(-1, Leaves.class), + AZURE_BLUET(-1), + BAMBOO(-1, Bamboo.class), + BAMBOO_BLOCK(-1, Orientable.class), + BAMBOO_BUTTON(-1, Switch.class), + BAMBOO_DOOR(-1, Door.class), + BAMBOO_FENCE(-1, Fence.class), + BAMBOO_FENCE_GATE(-1, Gate.class), + BAMBOO_HANGING_SIGN(-1, 16, HangingSign.class), + BAMBOO_MOSAIC(-1), + BAMBOO_MOSAIC_SLAB(-1, Slab.class), + BAMBOO_MOSAIC_STAIRS(-1, Stairs.class), + BAMBOO_PLANKS(-1), + BAMBOO_PRESSURE_PLATE(-1, Powerable.class), + BAMBOO_SAPLING(-1), + BAMBOO_SIGN(-1, 16, Sign.class), + BAMBOO_SLAB(-1, Slab.class), + BAMBOO_STAIRS(-1, Stairs.class), + BAMBOO_TRAPDOOR(-1, TrapDoor.class), + BAMBOO_WALL_HANGING_SIGN(-1, WallHangingSign.class), + BAMBOO_WALL_SIGN(-1, 16, WallSign.class), + BARREL(-1, Barrel.class), + BARRIER(-1, Waterlogged.class), + BASALT(-1, Orientable.class), + BEACON(-1), + BEDROCK(-1), + BEE_NEST(-1, Beehive.class), + BEEHIVE(-1, Beehive.class), + BEETROOTS(-1, Ageable.class), + BELL(-1, Bell.class), + BIG_DRIPLEAF(-1, BigDripleaf.class), + BIG_DRIPLEAF_STEM(-1, Dripleaf.class), + BIRCH_BUTTON(-1, Switch.class), + BIRCH_DOOR(-1, Door.class), + BIRCH_FENCE(-1, Fence.class), + BIRCH_FENCE_GATE(-1, Gate.class), + BIRCH_HANGING_SIGN(-1, 16, HangingSign.class), + BIRCH_LEAVES(-1, Leaves.class), + BIRCH_LOG(-1, Orientable.class), + BIRCH_PLANKS(-1), + BIRCH_PRESSURE_PLATE(-1, Powerable.class), + BIRCH_SAPLING(-1, Sapling.class), + BIRCH_SIGN(-1, 16, Sign.class), + BIRCH_SLAB(-1, Slab.class), + BIRCH_STAIRS(-1, Stairs.class), + BIRCH_TRAPDOOR(-1, TrapDoor.class), + BIRCH_WALL_HANGING_SIGN(-1, WallHangingSign.class), + BIRCH_WALL_SIGN(-1, 16, WallSign.class), + BIRCH_WOOD(-1, Orientable.class), + BLACK_BANNER(-1, 16, Rotatable.class), + BLACK_BED(-1, 1, Bed.class), + BLACK_CANDLE(-1, Candle.class), + BLACK_CANDLE_CAKE(-1, Lightable.class), + BLACK_CARPET(-1), + BLACK_CONCRETE(-1), + BLACK_CONCRETE_POWDER(-1), + BLACK_GLAZED_TERRACOTTA(-1, Directional.class), + BLACK_SHULKER_BOX(-1, 1, Directional.class), + BLACK_STAINED_GLASS(-1), + BLACK_STAINED_GLASS_PANE(-1, GlassPane.class), + BLACK_TERRACOTTA(-1), + BLACK_WALL_BANNER(-1, Directional.class), + BLACK_WOOL(-1), + BLACKSTONE(-1), + BLACKSTONE_SLAB(-1, Slab.class), + BLACKSTONE_STAIRS(-1, Stairs.class), + BLACKSTONE_WALL(-1, Wall.class), + BLAST_FURNACE(-1, Furnace.class), + BLUE_BANNER(-1, 16, Rotatable.class), + BLUE_BED(-1, 1, Bed.class), + BLUE_CANDLE(-1, Candle.class), + BLUE_CANDLE_CAKE(-1, Lightable.class), + BLUE_CARPET(-1), + BLUE_CONCRETE(-1), + BLUE_CONCRETE_POWDER(-1), + BLUE_GLAZED_TERRACOTTA(-1, Directional.class), + BLUE_ICE(-1), + BLUE_ORCHID(-1), + BLUE_SHULKER_BOX(-1, 1, Directional.class), + BLUE_STAINED_GLASS(-1), + BLUE_STAINED_GLASS_PANE(-1, GlassPane.class), + BLUE_TERRACOTTA(-1), + BLUE_WALL_BANNER(-1, Directional.class), + BLUE_WOOL(-1), + BONE_BLOCK(-1, Orientable.class), + BOOKSHELF(-1), + BRAIN_CORAL(-1, Waterlogged.class), + BRAIN_CORAL_BLOCK(-1), + BRAIN_CORAL_FAN(-1, Waterlogged.class), + BRAIN_CORAL_WALL_FAN(-1, CoralWallFan.class), + BREWING_STAND(-1, BrewingStand.class), + BRICK_SLAB(-1, Slab.class), + BRICK_STAIRS(-1, Stairs.class), + BRICK_WALL(-1, Wall.class), + BRICKS(-1), + BROWN_BANNER(-1, 16, Rotatable.class), + BROWN_BED(-1, 1, Bed.class), + BROWN_CANDLE(-1, Candle.class), + BROWN_CANDLE_CAKE(-1, Lightable.class), + BROWN_CARPET(-1), + BROWN_CONCRETE(-1), + BROWN_CONCRETE_POWDER(-1), + BROWN_GLAZED_TERRACOTTA(-1, Directional.class), + BROWN_MUSHROOM(-1), + BROWN_MUSHROOM_BLOCK(-1, MultipleFacing.class), + BROWN_SHULKER_BOX(-1, 1, Directional.class), + BROWN_STAINED_GLASS(-1), + BROWN_STAINED_GLASS_PANE(-1, GlassPane.class), + BROWN_TERRACOTTA(-1), + BROWN_WALL_BANNER(-1, Directional.class), + BROWN_WOOL(-1), + BUBBLE_COLUMN(-1, BubbleColumn.class), + BUBBLE_CORAL(-1, Waterlogged.class), + BUBBLE_CORAL_BLOCK(-1), + BUBBLE_CORAL_FAN(-1, Waterlogged.class), + BUBBLE_CORAL_WALL_FAN(-1, CoralWallFan.class), + BUDDING_AMETHYST(-1), + CACTUS(-1, Ageable.class), + CAKE(-1, 1, Cake.class), + CALCITE(-1), + CALIBRATED_SCULK_SENSOR(-1, CalibratedSculkSensor.class), + CAMPFIRE(-1, Campfire.class), + CANDLE(-1, Candle.class), + CANDLE_CAKE(-1, Lightable.class), + CARROTS(-1, Ageable.class), + CARTOGRAPHY_TABLE(-1), + CARVED_PUMPKIN(-1, Directional.class), + CAULDRON(-1), + CAVE_AIR(-1), + CAVE_VINES(-1, CaveVines.class), + CAVE_VINES_PLANT(-1, CaveVinesPlant.class), + CHAIN(-1, Chain.class), + CHAIN_COMMAND_BLOCK(-1, CommandBlock.class), + CHERRY_BUTTON(-1, Switch.class), + CHERRY_DOOR(-1, Door.class), + CHERRY_FENCE(-1, Fence.class), + CHERRY_FENCE_GATE(-1, Gate.class), + CHERRY_HANGING_SIGN(-1, 16, HangingSign.class), + CHERRY_LEAVES(-1, Leaves.class), + CHERRY_LOG(-1, Orientable.class), + CHERRY_PLANKS(-1), + CHERRY_PRESSURE_PLATE(-1, Powerable.class), + CHERRY_SAPLING(-1, Sapling.class), + CHERRY_SIGN(-1, 16, Sign.class), + CHERRY_SLAB(-1, Slab.class), + CHERRY_STAIRS(-1, Stairs.class), + CHERRY_TRAPDOOR(-1, TrapDoor.class), + CHERRY_WALL_HANGING_SIGN(-1, WallHangingSign.class), + CHERRY_WALL_SIGN(-1, 16, WallSign.class), + CHERRY_WOOD(-1, Orientable.class), + CHEST(-1, Chest.class), + CHIPPED_ANVIL(-1, Directional.class), + CHISELED_BOOKSHELF(-1, ChiseledBookshelf.class), + CHISELED_COPPER(-1), + CHISELED_DEEPSLATE(-1), + CHISELED_NETHER_BRICKS(-1), + CHISELED_POLISHED_BLACKSTONE(-1), + CHISELED_QUARTZ_BLOCK(-1), + CHISELED_RED_SANDSTONE(-1), + CHISELED_RESIN_BRICKS(-1), + CHISELED_SANDSTONE(-1), + CHISELED_STONE_BRICKS(-1), + CHISELED_TUFF(-1), + CHISELED_TUFF_BRICKS(-1), + CHORUS_FLOWER(-1, Ageable.class), + CHORUS_PLANT(-1, MultipleFacing.class), + CLAY(-1), + CLOSED_EYEBLOSSOM(-1), + COAL_BLOCK(-1), + COAL_ORE(-1), + COARSE_DIRT(-1), + COBBLED_DEEPSLATE(-1), + COBBLED_DEEPSLATE_SLAB(-1, Slab.class), + COBBLED_DEEPSLATE_STAIRS(-1, Stairs.class), + COBBLED_DEEPSLATE_WALL(-1, Wall.class), + COBBLESTONE(-1), + COBBLESTONE_SLAB(-1, Slab.class), + COBBLESTONE_STAIRS(-1, Stairs.class), + COBBLESTONE_WALL(-1, Wall.class), + COBWEB(-1), + COCOA(-1, Cocoa.class), + COMMAND_BLOCK(-1, CommandBlock.class), + COMPARATOR(-1, Comparator.class), + COMPOSTER(-1, Levelled.class), + CONDUIT(-1, Waterlogged.class), + COPPER_BLOCK(-1), + COPPER_BULB(-1, CopperBulb.class), + COPPER_DOOR(-1, Door.class), + COPPER_GRATE(-1, Waterlogged.class), + COPPER_ORE(-1), + COPPER_TRAPDOOR(-1, TrapDoor.class), + CORNFLOWER(-1), + CRACKED_DEEPSLATE_BRICKS(-1), + CRACKED_DEEPSLATE_TILES(-1), + CRACKED_NETHER_BRICKS(-1), + CRACKED_POLISHED_BLACKSTONE_BRICKS(-1), + CRACKED_STONE_BRICKS(-1), + CRAFTER(-1, Crafter.class), + CRAFTING_TABLE(-1), + CREAKING_HEART(-1, CreakingHeart.class), + CREEPER_HEAD(-1, Skull.class), + CREEPER_WALL_HEAD(-1, WallSkull.class), + CRIMSON_BUTTON(-1, Switch.class), + CRIMSON_DOOR(-1, Door.class), + CRIMSON_FENCE(-1, Fence.class), + CRIMSON_FENCE_GATE(-1, Gate.class), + CRIMSON_FUNGUS(-1), + CRIMSON_HANGING_SIGN(-1, 16, HangingSign.class), + CRIMSON_HYPHAE(-1, Orientable.class), + CRIMSON_NYLIUM(-1), + CRIMSON_PLANKS(-1), + CRIMSON_PRESSURE_PLATE(-1, Powerable.class), + CRIMSON_ROOTS(-1), + CRIMSON_SIGN(-1, 16, Sign.class), + CRIMSON_SLAB(-1, Slab.class), + CRIMSON_STAIRS(-1, Stairs.class), + CRIMSON_STEM(-1, Orientable.class), + CRIMSON_TRAPDOOR(-1, TrapDoor.class), + CRIMSON_WALL_HANGING_SIGN(-1, WallHangingSign.class), + CRIMSON_WALL_SIGN(-1, 16, WallSign.class), + CRYING_OBSIDIAN(-1), + CUT_COPPER(-1), + CUT_COPPER_SLAB(-1, Slab.class), + CUT_COPPER_STAIRS(-1, Stairs.class), + CUT_RED_SANDSTONE(-1), + CUT_RED_SANDSTONE_SLAB(-1, Slab.class), + CUT_SANDSTONE(-1), + CUT_SANDSTONE_SLAB(-1, Slab.class), + CYAN_BANNER(-1, 16, Rotatable.class), + CYAN_BED(-1, 1, Bed.class), + CYAN_CANDLE(-1, Candle.class), + CYAN_CANDLE_CAKE(-1, Lightable.class), + CYAN_CARPET(-1), + CYAN_CONCRETE(-1), + CYAN_CONCRETE_POWDER(-1), + CYAN_GLAZED_TERRACOTTA(-1, Directional.class), + CYAN_SHULKER_BOX(-1, 1, Directional.class), + CYAN_STAINED_GLASS(-1), + CYAN_STAINED_GLASS_PANE(-1, GlassPane.class), + CYAN_TERRACOTTA(-1), + CYAN_WALL_BANNER(-1, Directional.class), + CYAN_WOOL(-1), + DAMAGED_ANVIL(-1, Directional.class), + DANDELION(-1), + DARK_OAK_BUTTON(-1, Switch.class), + DARK_OAK_DOOR(-1, Door.class), + DARK_OAK_FENCE(-1, Fence.class), + DARK_OAK_FENCE_GATE(-1, Gate.class), + DARK_OAK_HANGING_SIGN(-1, 16, HangingSign.class), + DARK_OAK_LEAVES(-1, Leaves.class), + DARK_OAK_LOG(-1, Orientable.class), + DARK_OAK_PLANKS(-1), + DARK_OAK_PRESSURE_PLATE(-1, Powerable.class), + DARK_OAK_SAPLING(-1, Sapling.class), + DARK_OAK_SIGN(-1, 16, Sign.class), + DARK_OAK_SLAB(-1, Slab.class), + DARK_OAK_STAIRS(-1, Stairs.class), + DARK_OAK_TRAPDOOR(-1, TrapDoor.class), + DARK_OAK_WALL_HANGING_SIGN(-1, WallHangingSign.class), + DARK_OAK_WALL_SIGN(-1, 16, WallSign.class), + DARK_OAK_WOOD(-1, Orientable.class), + DARK_PRISMARINE(-1), + DARK_PRISMARINE_SLAB(-1, Slab.class), + DARK_PRISMARINE_STAIRS(-1, Stairs.class), + DAYLIGHT_DETECTOR(-1, DaylightDetector.class), + DEAD_BRAIN_CORAL(-1, Waterlogged.class), + DEAD_BRAIN_CORAL_BLOCK(-1), + DEAD_BRAIN_CORAL_FAN(-1, Waterlogged.class), + DEAD_BRAIN_CORAL_WALL_FAN(-1, CoralWallFan.class), + DEAD_BUBBLE_CORAL(-1, Waterlogged.class), + DEAD_BUBBLE_CORAL_BLOCK(-1), + DEAD_BUBBLE_CORAL_FAN(-1, Waterlogged.class), + DEAD_BUBBLE_CORAL_WALL_FAN(-1, CoralWallFan.class), + DEAD_BUSH(-1), + DEAD_FIRE_CORAL(-1, Waterlogged.class), + DEAD_FIRE_CORAL_BLOCK(-1), + DEAD_FIRE_CORAL_FAN(-1, Waterlogged.class), + DEAD_FIRE_CORAL_WALL_FAN(-1, CoralWallFan.class), + DEAD_HORN_CORAL(-1, Waterlogged.class), + DEAD_HORN_CORAL_BLOCK(-1), + DEAD_HORN_CORAL_FAN(-1, Waterlogged.class), + DEAD_HORN_CORAL_WALL_FAN(-1, CoralWallFan.class), + DEAD_TUBE_CORAL(-1, Waterlogged.class), + DEAD_TUBE_CORAL_BLOCK(-1), + DEAD_TUBE_CORAL_FAN(-1, Waterlogged.class), + DEAD_TUBE_CORAL_WALL_FAN(-1, CoralWallFan.class), + DECORATED_POT(-1, DecoratedPot.class), + DEEPSLATE(-1, Orientable.class), + DEEPSLATE_BRICK_SLAB(-1, Slab.class), + DEEPSLATE_BRICK_STAIRS(-1, Stairs.class), + DEEPSLATE_BRICK_WALL(-1, Wall.class), + DEEPSLATE_BRICKS(-1), + DEEPSLATE_COAL_ORE(-1), + DEEPSLATE_COPPER_ORE(-1), + DEEPSLATE_DIAMOND_ORE(-1), + DEEPSLATE_EMERALD_ORE(-1), + DEEPSLATE_GOLD_ORE(-1), + DEEPSLATE_IRON_ORE(-1), + DEEPSLATE_LAPIS_ORE(-1), + DEEPSLATE_REDSTONE_ORE(-1, Lightable.class), + DEEPSLATE_TILE_SLAB(-1, Slab.class), + DEEPSLATE_TILE_STAIRS(-1, Stairs.class), + DEEPSLATE_TILE_WALL(-1, Wall.class), + DEEPSLATE_TILES(-1), + DETECTOR_RAIL(-1, RedstoneRail.class), + DIAMOND_BLOCK(-1), + DIAMOND_ORE(-1), + DIORITE(-1), + DIORITE_SLAB(-1, Slab.class), + DIORITE_STAIRS(-1, Stairs.class), + DIORITE_WALL(-1, Wall.class), + DIRT(-1), + DIRT_PATH(-1), + DISPENSER(-1, Dispenser.class), + DRAGON_EGG(-1), + DRAGON_HEAD(-1, Skull.class), + DRAGON_WALL_HEAD(-1, WallSkull.class), + DRIED_KELP_BLOCK(-1), + DRIPSTONE_BLOCK(-1), + DROPPER(-1, Dispenser.class), + EMERALD_BLOCK(-1), + EMERALD_ORE(-1), + ENCHANTING_TABLE(-1), + END_GATEWAY(-1), + END_PORTAL(-1), + END_PORTAL_FRAME(-1, EndPortalFrame.class), + END_ROD(-1, Directional.class), + END_STONE(-1), + END_STONE_BRICK_SLAB(-1, Slab.class), + END_STONE_BRICK_STAIRS(-1, Stairs.class), + END_STONE_BRICK_WALL(-1, Wall.class), + END_STONE_BRICKS(-1), + ENDER_CHEST(-1, EnderChest.class), + EXPOSED_CHISELED_COPPER(-1), + EXPOSED_COPPER(-1), + EXPOSED_COPPER_BULB(-1, CopperBulb.class), + EXPOSED_COPPER_DOOR(-1, Door.class), + EXPOSED_COPPER_GRATE(-1, Waterlogged.class), + EXPOSED_COPPER_TRAPDOOR(-1, TrapDoor.class), + EXPOSED_CUT_COPPER(-1), + EXPOSED_CUT_COPPER_SLAB(-1, Slab.class), + EXPOSED_CUT_COPPER_STAIRS(-1, Stairs.class), + FARMLAND(-1, Farmland.class), + FERN(-1), + FIRE(-1, Fire.class), + FIRE_CORAL(-1, Waterlogged.class), + FIRE_CORAL_BLOCK(-1), + FIRE_CORAL_FAN(-1, Waterlogged.class), + FIRE_CORAL_WALL_FAN(-1, CoralWallFan.class), + FLETCHING_TABLE(-1), + FLOWER_POT(-1), + FLOWERING_AZALEA(-1), + FLOWERING_AZALEA_LEAVES(-1, Leaves.class), + FROGSPAWN(-1), + FROSTED_ICE(-1, Ageable.class), + FURNACE(-1, Furnace.class), + GILDED_BLACKSTONE(-1), + GLASS(-1), + GLASS_PANE(-1, Fence.class), + GLOW_LICHEN(-1, GlowLichen.class), + GLOWSTONE(-1), + GOLD_BLOCK(-1), + GOLD_ORE(-1), + GRANITE(-1), + GRANITE_SLAB(-1, Slab.class), + GRANITE_STAIRS(-1, Stairs.class), + GRANITE_WALL(-1, Wall.class), + GRASS_BLOCK(-1, Snowable.class), + GRAVEL(-1), + GRAY_BANNER(-1, 16, Rotatable.class), + GRAY_BED(-1, 1, Bed.class), + GRAY_CANDLE(-1, Candle.class), + GRAY_CANDLE_CAKE(-1, Lightable.class), + GRAY_CARPET(-1), + GRAY_CONCRETE(-1), + GRAY_CONCRETE_POWDER(-1), + GRAY_GLAZED_TERRACOTTA(-1, Directional.class), + GRAY_SHULKER_BOX(-1, 1, Directional.class), + GRAY_STAINED_GLASS(-1), + GRAY_STAINED_GLASS_PANE(-1, GlassPane.class), + GRAY_TERRACOTTA(-1), + GRAY_WALL_BANNER(-1, Directional.class), + GRAY_WOOL(-1), + GREEN_BANNER(-1, 16, Rotatable.class), + GREEN_BED(-1, 1, Bed.class), + GREEN_CANDLE(-1, Candle.class), + GREEN_CANDLE_CAKE(-1, Lightable.class), + GREEN_CARPET(-1), + GREEN_CONCRETE(-1), + GREEN_CONCRETE_POWDER(-1), + GREEN_GLAZED_TERRACOTTA(-1, Directional.class), + GREEN_SHULKER_BOX(-1, 1, Directional.class), + GREEN_STAINED_GLASS(-1), + GREEN_STAINED_GLASS_PANE(-1, GlassPane.class), + GREEN_TERRACOTTA(-1), + GREEN_WALL_BANNER(-1, Directional.class), + GREEN_WOOL(-1), + GRINDSTONE(-1, Grindstone.class), + HANGING_ROOTS(-1, Waterlogged.class), + HAY_BLOCK(-1, Orientable.class), + HEAVY_CORE(-1, Waterlogged.class), + HEAVY_WEIGHTED_PRESSURE_PLATE(-1, AnaloguePowerable.class), + HONEY_BLOCK(-1), + HONEYCOMB_BLOCK(-1), + HOPPER(-1, Hopper.class), + HORN_CORAL(-1, Waterlogged.class), + HORN_CORAL_BLOCK(-1), + HORN_CORAL_FAN(-1, Waterlogged.class), + HORN_CORAL_WALL_FAN(-1, CoralWallFan.class), + ICE(-1), + INFESTED_CHISELED_STONE_BRICKS(-1), + INFESTED_COBBLESTONE(-1), + INFESTED_CRACKED_STONE_BRICKS(-1), + INFESTED_DEEPSLATE(-1, Orientable.class), + INFESTED_MOSSY_STONE_BRICKS(-1), + INFESTED_STONE(-1), + INFESTED_STONE_BRICKS(-1), + IRON_BARS(-1, Fence.class), + IRON_BLOCK(-1), + IRON_DOOR(-1, Door.class), + IRON_ORE(-1), + IRON_TRAPDOOR(-1, TrapDoor.class), + JACK_O_LANTERN(-1, Directional.class), + JIGSAW(-1, Jigsaw.class), + JUKEBOX(-1, Jukebox.class), + JUNGLE_BUTTON(-1, Switch.class), + JUNGLE_DOOR(-1, Door.class), + JUNGLE_FENCE(-1, Fence.class), + JUNGLE_FENCE_GATE(-1, Gate.class), + JUNGLE_HANGING_SIGN(-1, 16, HangingSign.class), + JUNGLE_LEAVES(-1, Leaves.class), + JUNGLE_LOG(-1, Orientable.class), + JUNGLE_PLANKS(-1), + JUNGLE_PRESSURE_PLATE(-1, Powerable.class), + JUNGLE_SAPLING(-1, Sapling.class), + JUNGLE_SIGN(-1, 16, Sign.class), + JUNGLE_SLAB(-1, Slab.class), + JUNGLE_STAIRS(-1, Stairs.class), + JUNGLE_TRAPDOOR(-1, TrapDoor.class), + JUNGLE_WALL_HANGING_SIGN(-1, WallHangingSign.class), + JUNGLE_WALL_SIGN(-1, 16, WallSign.class), + JUNGLE_WOOD(-1, Orientable.class), + KELP(-1, Ageable.class), + KELP_PLANT(-1), + LADDER(-1, Ladder.class), + LANTERN(-1, Lantern.class), + LAPIS_BLOCK(-1), + LAPIS_ORE(-1), + LARGE_AMETHYST_BUD(-1, AmethystCluster.class), + LARGE_FERN(-1, Bisected.class), + LAVA(-1, Levelled.class), + LAVA_CAULDRON(-1), + LECTERN(-1, Lectern.class), + LEVER(-1, Switch.class), + LIGHT(-1, Light.class), + LIGHT_BLUE_BANNER(-1, 16, Rotatable.class), + LIGHT_BLUE_BED(-1, 1, Bed.class), + LIGHT_BLUE_CANDLE(-1, Candle.class), + LIGHT_BLUE_CANDLE_CAKE(-1, Lightable.class), + LIGHT_BLUE_CARPET(-1), + LIGHT_BLUE_CONCRETE(-1), + LIGHT_BLUE_CONCRETE_POWDER(-1), + LIGHT_BLUE_GLAZED_TERRACOTTA(-1, Directional.class), + LIGHT_BLUE_SHULKER_BOX(-1, 1, Directional.class), + LIGHT_BLUE_STAINED_GLASS(-1), + LIGHT_BLUE_STAINED_GLASS_PANE(-1, GlassPane.class), + LIGHT_BLUE_TERRACOTTA(-1), + LIGHT_BLUE_WALL_BANNER(-1, Directional.class), + LIGHT_BLUE_WOOL(-1), + LIGHT_GRAY_BANNER(-1, 16, Rotatable.class), + LIGHT_GRAY_BED(-1, 1, Bed.class), + LIGHT_GRAY_CANDLE(-1, Candle.class), + LIGHT_GRAY_CANDLE_CAKE(-1, Lightable.class), + LIGHT_GRAY_CARPET(-1), + LIGHT_GRAY_CONCRETE(-1), + LIGHT_GRAY_CONCRETE_POWDER(-1), + LIGHT_GRAY_GLAZED_TERRACOTTA(-1, Directional.class), + LIGHT_GRAY_SHULKER_BOX(-1, 1, Directional.class), + LIGHT_GRAY_STAINED_GLASS(-1), + LIGHT_GRAY_STAINED_GLASS_PANE(-1, GlassPane.class), + LIGHT_GRAY_TERRACOTTA(-1), + LIGHT_GRAY_WALL_BANNER(-1, Directional.class), + LIGHT_GRAY_WOOL(-1), + LIGHT_WEIGHTED_PRESSURE_PLATE(-1, AnaloguePowerable.class), + LIGHTNING_ROD(-1, LightningRod.class), + LILAC(-1, Bisected.class), + LILY_OF_THE_VALLEY(-1), + LILY_PAD(-1), + LIME_BANNER(-1, 16, Rotatable.class), + LIME_BED(-1, 1, Bed.class), + LIME_CANDLE(-1, Candle.class), + LIME_CANDLE_CAKE(-1, Lightable.class), + LIME_CARPET(-1), + LIME_CONCRETE(-1), + LIME_CONCRETE_POWDER(-1), + LIME_GLAZED_TERRACOTTA(-1, Directional.class), + LIME_SHULKER_BOX(-1, 1, Directional.class), + LIME_STAINED_GLASS(-1), + LIME_STAINED_GLASS_PANE(-1, GlassPane.class), + LIME_TERRACOTTA(-1), + LIME_WALL_BANNER(-1, Directional.class), + LIME_WOOL(-1), + LODESTONE(-1), + LOOM(-1, Directional.class), + MAGENTA_BANNER(-1, 16, Rotatable.class), + MAGENTA_BED(-1, 1, Bed.class), + MAGENTA_CANDLE(-1, Candle.class), + MAGENTA_CANDLE_CAKE(-1, Lightable.class), + MAGENTA_CARPET(-1), + MAGENTA_CONCRETE(-1), + MAGENTA_CONCRETE_POWDER(-1), + MAGENTA_GLAZED_TERRACOTTA(-1, Directional.class), + MAGENTA_SHULKER_BOX(-1, 1, Directional.class), + MAGENTA_STAINED_GLASS(-1), + MAGENTA_STAINED_GLASS_PANE(-1, GlassPane.class), + MAGENTA_TERRACOTTA(-1), + MAGENTA_WALL_BANNER(-1, Directional.class), + MAGENTA_WOOL(-1), + MAGMA_BLOCK(-1), + MANGROVE_BUTTON(-1, Switch.class), + MANGROVE_DOOR(-1, Door.class), + MANGROVE_FENCE(-1, Fence.class), + MANGROVE_FENCE_GATE(-1, Gate.class), + MANGROVE_HANGING_SIGN(-1, 16, HangingSign.class), + MANGROVE_LEAVES(-1, Leaves.class), + MANGROVE_LOG(-1, Orientable.class), + MANGROVE_PLANKS(-1), + MANGROVE_PRESSURE_PLATE(-1, Powerable.class), + MANGROVE_PROPAGULE(-1, MangrovePropagule.class), + MANGROVE_ROOTS(-1, Waterlogged.class), + MANGROVE_SIGN(-1, 16, Sign.class), + MANGROVE_SLAB(-1, Slab.class), + MANGROVE_STAIRS(-1, Stairs.class), + MANGROVE_TRAPDOOR(-1, TrapDoor.class), + MANGROVE_WALL_HANGING_SIGN(-1, WallHangingSign.class), + MANGROVE_WALL_SIGN(-1, 16, WallSign.class), + MANGROVE_WOOD(-1, Orientable.class), + MEDIUM_AMETHYST_BUD(-1, AmethystCluster.class), + MELON(-1), + MELON_STEM(-1, Ageable.class), + MOSS_BLOCK(-1), + MOSS_CARPET(-1), + MOSSY_COBBLESTONE(-1), + MOSSY_COBBLESTONE_SLAB(-1, Slab.class), + MOSSY_COBBLESTONE_STAIRS(-1, Stairs.class), + MOSSY_COBBLESTONE_WALL(-1, Wall.class), + MOSSY_STONE_BRICK_SLAB(-1, Slab.class), + MOSSY_STONE_BRICK_STAIRS(-1, Stairs.class), + MOSSY_STONE_BRICK_WALL(-1, Wall.class), + MOSSY_STONE_BRICKS(-1), + MOVING_PISTON(-1, TechnicalPiston.class), + MUD(-1), + MUD_BRICK_SLAB(-1, Slab.class), + MUD_BRICK_STAIRS(-1, Stairs.class), + MUD_BRICK_WALL(-1, Wall.class), + MUD_BRICKS(-1), + MUDDY_MANGROVE_ROOTS(-1, Orientable.class), + MUSHROOM_STEM(-1, MultipleFacing.class), + MYCELIUM(-1, Snowable.class), + NETHER_BRICK_FENCE(-1, Fence.class), + NETHER_BRICK_SLAB(-1, Slab.class), + NETHER_BRICK_STAIRS(-1, Stairs.class), + NETHER_BRICK_WALL(-1, Wall.class), + NETHER_BRICKS(-1), + NETHER_GOLD_ORE(-1), + NETHER_PORTAL(-1, Orientable.class), + NETHER_QUARTZ_ORE(-1), + NETHER_SPROUTS(-1), + NETHER_WART(-1, Ageable.class), + NETHER_WART_BLOCK(-1), + NETHERITE_BLOCK(-1), + NETHERRACK(-1), + NOTE_BLOCK(-1, NoteBlock.class), + OAK_BUTTON(-1, Switch.class), + OAK_DOOR(-1, Door.class), + OAK_FENCE(-1, Fence.class), + OAK_FENCE_GATE(-1, Gate.class), + OAK_HANGING_SIGN(-1, 16, HangingSign.class), + OAK_LEAVES(-1, Leaves.class), + OAK_LOG(-1, Orientable.class), + OAK_PLANKS(-1), + OAK_PRESSURE_PLATE(-1, Powerable.class), + OAK_SAPLING(-1, Sapling.class), + OAK_SIGN(-1, 16, Sign.class), + OAK_SLAB(-1, Slab.class), + OAK_STAIRS(-1, Stairs.class), + OAK_TRAPDOOR(-1, TrapDoor.class), + OAK_WALL_HANGING_SIGN(-1, WallHangingSign.class), + OAK_WALL_SIGN(-1, 16, WallSign.class), + OAK_WOOD(-1, Orientable.class), + OBSERVER(-1, Observer.class), + OBSIDIAN(-1), + OCHRE_FROGLIGHT(-1, Orientable.class), + OPEN_EYEBLOSSOM(-1), + ORANGE_BANNER(-1, 16, Rotatable.class), + ORANGE_BED(-1, 1, Bed.class), + ORANGE_CANDLE(-1, Candle.class), + ORANGE_CANDLE_CAKE(-1, Lightable.class), + ORANGE_CARPET(-1), + ORANGE_CONCRETE(-1), + ORANGE_CONCRETE_POWDER(-1), + ORANGE_GLAZED_TERRACOTTA(-1, Directional.class), + ORANGE_SHULKER_BOX(-1, 1, Directional.class), + ORANGE_STAINED_GLASS(-1), + ORANGE_STAINED_GLASS_PANE(-1, GlassPane.class), + ORANGE_TERRACOTTA(-1), + ORANGE_TULIP(-1), + ORANGE_WALL_BANNER(-1, Directional.class), + ORANGE_WOOL(-1), + OXEYE_DAISY(-1), + OXIDIZED_CHISELED_COPPER(-1), + OXIDIZED_COPPER(-1), + OXIDIZED_COPPER_BULB(-1, CopperBulb.class), + OXIDIZED_COPPER_DOOR(-1, Door.class), + OXIDIZED_COPPER_GRATE(-1, Waterlogged.class), + OXIDIZED_COPPER_TRAPDOOR(-1, TrapDoor.class), + OXIDIZED_CUT_COPPER(-1), + OXIDIZED_CUT_COPPER_SLAB(-1, Slab.class), + OXIDIZED_CUT_COPPER_STAIRS(-1, Stairs.class), + PACKED_ICE(-1), + PACKED_MUD(-1), + PALE_HANGING_MOSS(-1, HangingMoss.class), + PALE_MOSS_BLOCK(-1), + PALE_MOSS_CARPET(-1, MossyCarpet.class), + PALE_OAK_BUTTON(-1, Switch.class), + PALE_OAK_DOOR(-1, Door.class), + PALE_OAK_FENCE(-1, Fence.class), + PALE_OAK_FENCE_GATE(-1, Gate.class), + PALE_OAK_HANGING_SIGN(-1, 16, HangingSign.class), + PALE_OAK_LEAVES(-1, Leaves.class), + PALE_OAK_LOG(-1, Orientable.class), + PALE_OAK_PLANKS(-1), + PALE_OAK_PRESSURE_PLATE(-1, Powerable.class), + PALE_OAK_SAPLING(-1, Sapling.class), + PALE_OAK_SIGN(-1, 16, Sign.class), + PALE_OAK_SLAB(-1, Slab.class), + PALE_OAK_STAIRS(-1, Stairs.class), + PALE_OAK_TRAPDOOR(-1, TrapDoor.class), + PALE_OAK_WALL_HANGING_SIGN(-1, WallHangingSign.class), + PALE_OAK_WALL_SIGN(-1, 16, WallSign.class), + PALE_OAK_WOOD(-1, Orientable.class), + PEARLESCENT_FROGLIGHT(-1, Orientable.class), + PEONY(-1, Bisected.class), + PETRIFIED_OAK_SLAB(-1, Slab.class), + PIGLIN_HEAD(-1, Skull.class), + PIGLIN_WALL_HEAD(-1, WallSkull.class), + PINK_BANNER(-1, 16, Rotatable.class), + PINK_BED(-1, 1, Bed.class), + PINK_CANDLE(-1, Candle.class), + PINK_CANDLE_CAKE(-1, Lightable.class), + PINK_CARPET(-1), + PINK_CONCRETE(-1), + PINK_CONCRETE_POWDER(-1), + PINK_GLAZED_TERRACOTTA(-1, Directional.class), + PINK_PETALS(-1, PinkPetals.class), + PINK_SHULKER_BOX(-1, 1, Directional.class), + PINK_STAINED_GLASS(-1), + PINK_STAINED_GLASS_PANE(-1, GlassPane.class), + PINK_TERRACOTTA(-1), + PINK_TULIP(-1), + PINK_WALL_BANNER(-1, Directional.class), + PINK_WOOL(-1), + PISTON(-1, Piston.class), + PISTON_HEAD(-1, PistonHead.class), + PITCHER_CROP(-1, PitcherCrop.class), + PITCHER_PLANT(-1, Bisected.class), + PLAYER_HEAD(-1, Skull.class), + PLAYER_WALL_HEAD(-1, WallSkull.class), + PODZOL(-1, Snowable.class), + POINTED_DRIPSTONE(-1, PointedDripstone.class), + POLISHED_ANDESITE(-1), + POLISHED_ANDESITE_SLAB(-1, Slab.class), + POLISHED_ANDESITE_STAIRS(-1, Stairs.class), + POLISHED_BASALT(-1, Orientable.class), + POLISHED_BLACKSTONE(-1), + POLISHED_BLACKSTONE_BRICK_SLAB(-1, Slab.class), + POLISHED_BLACKSTONE_BRICK_STAIRS(-1, Stairs.class), + POLISHED_BLACKSTONE_BRICK_WALL(-1, Wall.class), + POLISHED_BLACKSTONE_BRICKS(-1), + POLISHED_BLACKSTONE_BUTTON(-1, Switch.class), + POLISHED_BLACKSTONE_PRESSURE_PLATE(-1, Powerable.class), + POLISHED_BLACKSTONE_SLAB(-1, Slab.class), + POLISHED_BLACKSTONE_STAIRS(-1, Stairs.class), + POLISHED_BLACKSTONE_WALL(-1, Wall.class), + POLISHED_DEEPSLATE(-1), + POLISHED_DEEPSLATE_SLAB(-1, Slab.class), + POLISHED_DEEPSLATE_STAIRS(-1, Stairs.class), + POLISHED_DEEPSLATE_WALL(-1, Wall.class), + POLISHED_DIORITE(-1), + POLISHED_DIORITE_SLAB(-1, Slab.class), + POLISHED_DIORITE_STAIRS(-1, Stairs.class), + POLISHED_GRANITE(-1), + POLISHED_GRANITE_SLAB(-1, Slab.class), + POLISHED_GRANITE_STAIRS(-1, Stairs.class), + POLISHED_TUFF(-1), + POLISHED_TUFF_SLAB(-1, Slab.class), + POLISHED_TUFF_STAIRS(-1, Stairs.class), + POLISHED_TUFF_WALL(-1, Wall.class), + POPPY(-1), + POTATOES(-1, Ageable.class), + POTTED_ACACIA_SAPLING(-1), + POTTED_ALLIUM(-1), + POTTED_AZALEA_BUSH(-1), + POTTED_AZURE_BLUET(-1), + POTTED_BAMBOO(-1), + POTTED_BIRCH_SAPLING(-1), + POTTED_BLUE_ORCHID(-1), + POTTED_BROWN_MUSHROOM(-1), + POTTED_CACTUS(-1), + POTTED_CHERRY_SAPLING(-1), + POTTED_CLOSED_EYEBLOSSOM(-1), + POTTED_CORNFLOWER(-1), + POTTED_CRIMSON_FUNGUS(-1), + POTTED_CRIMSON_ROOTS(-1), + POTTED_DANDELION(-1), + POTTED_DARK_OAK_SAPLING(-1), + POTTED_DEAD_BUSH(-1), + POTTED_FERN(-1), + POTTED_FLOWERING_AZALEA_BUSH(-1), + POTTED_JUNGLE_SAPLING(-1), + POTTED_LILY_OF_THE_VALLEY(-1), + POTTED_MANGROVE_PROPAGULE(-1), + POTTED_OAK_SAPLING(-1), + POTTED_OPEN_EYEBLOSSOM(-1), + POTTED_ORANGE_TULIP(-1), + POTTED_OXEYE_DAISY(-1), + POTTED_PALE_OAK_SAPLING(-1), + POTTED_PINK_TULIP(-1), + POTTED_POPPY(-1), + POTTED_RED_MUSHROOM(-1), + POTTED_RED_TULIP(-1), + POTTED_SPRUCE_SAPLING(-1), + POTTED_TORCHFLOWER(-1), + POTTED_WARPED_FUNGUS(-1), + POTTED_WARPED_ROOTS(-1), + POTTED_WHITE_TULIP(-1), + POTTED_WITHER_ROSE(-1), + POWDER_SNOW(-1), + POWDER_SNOW_CAULDRON(-1, Levelled.class), + POWERED_RAIL(-1, RedstoneRail.class), + PRISMARINE(-1), + PRISMARINE_BRICK_SLAB(-1, Slab.class), + PRISMARINE_BRICK_STAIRS(-1, Stairs.class), + PRISMARINE_BRICKS(-1), + PRISMARINE_SLAB(-1, Slab.class), + PRISMARINE_STAIRS(-1, Stairs.class), + PRISMARINE_WALL(-1, Wall.class), + PUMPKIN(-1), + PUMPKIN_STEM(-1, Ageable.class), + PURPLE_BANNER(-1, 16, Rotatable.class), + PURPLE_BED(-1, 1, Bed.class), + PURPLE_CANDLE(-1, Candle.class), + PURPLE_CANDLE_CAKE(-1, Lightable.class), + PURPLE_CARPET(-1), + PURPLE_CONCRETE(-1), + PURPLE_CONCRETE_POWDER(-1), + PURPLE_GLAZED_TERRACOTTA(-1, Directional.class), + PURPLE_SHULKER_BOX(-1, 1, Directional.class), + PURPLE_STAINED_GLASS(-1), + PURPLE_STAINED_GLASS_PANE(-1, GlassPane.class), + PURPLE_TERRACOTTA(-1), + PURPLE_WALL_BANNER(-1, Directional.class), + PURPLE_WOOL(-1), + PURPUR_BLOCK(-1), + PURPUR_PILLAR(-1, Orientable.class), + PURPUR_SLAB(-1, Slab.class), + PURPUR_STAIRS(-1, Stairs.class), + QUARTZ_BLOCK(-1), + QUARTZ_BRICKS(-1), + QUARTZ_PILLAR(-1, Orientable.class), + QUARTZ_SLAB(-1, Slab.class), + QUARTZ_STAIRS(-1, Stairs.class), + RAIL(-1, Rail.class), + RAW_COPPER_BLOCK(-1), + RAW_GOLD_BLOCK(-1), + RAW_IRON_BLOCK(-1), + RED_BANNER(-1, 16, Rotatable.class), + RED_BED(-1, 1, Bed.class), + RED_CANDLE(-1, Candle.class), + RED_CANDLE_CAKE(-1, Lightable.class), + RED_CARPET(-1), + RED_CONCRETE(-1), + RED_CONCRETE_POWDER(-1), + RED_GLAZED_TERRACOTTA(-1, Directional.class), + RED_MUSHROOM(-1), + RED_MUSHROOM_BLOCK(-1, MultipleFacing.class), + RED_NETHER_BRICK_SLAB(-1, Slab.class), + RED_NETHER_BRICK_STAIRS(-1, Stairs.class), + RED_NETHER_BRICK_WALL(-1, Wall.class), + RED_NETHER_BRICKS(-1), + RED_SAND(-1), + RED_SANDSTONE(-1), + RED_SANDSTONE_SLAB(-1, Slab.class), + RED_SANDSTONE_STAIRS(-1, Stairs.class), + RED_SANDSTONE_WALL(-1, Wall.class), + RED_SHULKER_BOX(-1, 1, Directional.class), + RED_STAINED_GLASS(-1), + RED_STAINED_GLASS_PANE(-1, GlassPane.class), + RED_TERRACOTTA(-1), + RED_TULIP(-1), + RED_WALL_BANNER(-1, Directional.class), + RED_WOOL(-1), + REDSTONE_BLOCK(-1), + REDSTONE_LAMP(-1, Lightable.class), + REDSTONE_ORE(-1, Lightable.class), + REDSTONE_TORCH(-1, Lightable.class), + REDSTONE_WALL_TORCH(-1, RedstoneWallTorch.class), + REDSTONE_WIRE(-1, RedstoneWire.class), + REINFORCED_DEEPSLATE(-1), + REPEATER(-1, Repeater.class), + REPEATING_COMMAND_BLOCK(-1, CommandBlock.class), + RESIN_BLOCK(-1), + RESIN_BRICK_SLAB(-1, Slab.class), + RESIN_BRICK_STAIRS(-1, Stairs.class), + RESIN_BRICK_WALL(-1, Wall.class), + RESIN_BRICKS(-1), + RESIN_CLUMP(-1, ResinClump.class), + RESPAWN_ANCHOR(-1, RespawnAnchor.class), + ROOTED_DIRT(-1), + ROSE_BUSH(-1, Bisected.class), + SAND(-1), + SANDSTONE(-1), + SANDSTONE_SLAB(-1, Slab.class), + SANDSTONE_STAIRS(-1, Stairs.class), + SANDSTONE_WALL(-1, Wall.class), + SCAFFOLDING(-1, Scaffolding.class), + SCULK(-1), + SCULK_CATALYST(-1, SculkCatalyst.class), + SCULK_SENSOR(-1, SculkSensor.class), + SCULK_SHRIEKER(-1, SculkShrieker.class), + SCULK_VEIN(-1, SculkVein.class), + SEA_LANTERN(-1), + SEA_PICKLE(-1, SeaPickle.class), + SEAGRASS(-1), + SHORT_GRASS(-1), + SHROOMLIGHT(-1), + SHULKER_BOX(-1, 1, Directional.class), + SKELETON_SKULL(-1, Skull.class), + SKELETON_WALL_SKULL(-1, WallSkull.class), + SLIME_BLOCK(-1), + SMALL_AMETHYST_BUD(-1, AmethystCluster.class), + SMALL_DRIPLEAF(-1, SmallDripleaf.class), + SMITHING_TABLE(-1), + SMOKER(-1, Furnace.class), + SMOOTH_BASALT(-1), + SMOOTH_QUARTZ(-1), + SMOOTH_QUARTZ_SLAB(-1, Slab.class), + SMOOTH_QUARTZ_STAIRS(-1, Stairs.class), + SMOOTH_RED_SANDSTONE(-1), + SMOOTH_RED_SANDSTONE_SLAB(-1, Slab.class), + SMOOTH_RED_SANDSTONE_STAIRS(-1, Stairs.class), + SMOOTH_SANDSTONE(-1), + SMOOTH_SANDSTONE_SLAB(-1, Slab.class), + SMOOTH_SANDSTONE_STAIRS(-1, Stairs.class), + SMOOTH_STONE(-1), + SMOOTH_STONE_SLAB(-1, Slab.class), + SNIFFER_EGG(-1, Hatchable.class), + SNOW(-1, Snow.class), + SNOW_BLOCK(-1), + SOUL_CAMPFIRE(-1, Campfire.class), + SOUL_FIRE(-1), + SOUL_LANTERN(-1, Lantern.class), + SOUL_SAND(-1), + SOUL_SOIL(-1), + SOUL_TORCH(-1), + SOUL_WALL_TORCH(-1, Directional.class), + SPAWNER(-1), + SPONGE(-1), + SPORE_BLOSSOM(-1), + SPRUCE_BUTTON(-1, Switch.class), + SPRUCE_DOOR(-1, Door.class), + SPRUCE_FENCE(-1, Fence.class), + SPRUCE_FENCE_GATE(-1, Gate.class), + SPRUCE_HANGING_SIGN(-1, 16, HangingSign.class), + SPRUCE_LEAVES(-1, Leaves.class), + SPRUCE_LOG(-1, Orientable.class), + SPRUCE_PLANKS(-1), + SPRUCE_PRESSURE_PLATE(-1, Powerable.class), + SPRUCE_SAPLING(-1, Sapling.class), + SPRUCE_SIGN(-1, 16, Sign.class), + SPRUCE_SLAB(-1, Slab.class), + SPRUCE_STAIRS(-1, Stairs.class), + SPRUCE_TRAPDOOR(-1, TrapDoor.class), + SPRUCE_WALL_HANGING_SIGN(-1, WallHangingSign.class), + SPRUCE_WALL_SIGN(-1, 16, WallSign.class), + SPRUCE_WOOD(-1, Orientable.class), + STICKY_PISTON(-1, Piston.class), + STONE(-1), + STONE_BRICK_SLAB(-1, Slab.class), + STONE_BRICK_STAIRS(-1, Stairs.class), + STONE_BRICK_WALL(-1, Wall.class), + STONE_BRICKS(-1), + STONE_BUTTON(-1, Switch.class), + STONE_PRESSURE_PLATE(-1, Powerable.class), + STONE_SLAB(-1, Slab.class), + STONE_STAIRS(-1, Stairs.class), + STONECUTTER(-1, Directional.class), + STRIPPED_ACACIA_LOG(-1, Orientable.class), + STRIPPED_ACACIA_WOOD(-1, Orientable.class), + STRIPPED_BAMBOO_BLOCK(-1, Orientable.class), + STRIPPED_BIRCH_LOG(-1, Orientable.class), + STRIPPED_BIRCH_WOOD(-1, Orientable.class), + STRIPPED_CHERRY_LOG(-1, Orientable.class), + STRIPPED_CHERRY_WOOD(-1, Orientable.class), + STRIPPED_CRIMSON_HYPHAE(-1, Orientable.class), + STRIPPED_CRIMSON_STEM(-1, Orientable.class), + STRIPPED_DARK_OAK_LOG(-1, Orientable.class), + STRIPPED_DARK_OAK_WOOD(-1, Orientable.class), + STRIPPED_JUNGLE_LOG(-1, Orientable.class), + STRIPPED_JUNGLE_WOOD(-1, Orientable.class), + STRIPPED_MANGROVE_LOG(-1, Orientable.class), + STRIPPED_MANGROVE_WOOD(-1, Orientable.class), + STRIPPED_OAK_LOG(-1, Orientable.class), + STRIPPED_OAK_WOOD(-1, Orientable.class), + STRIPPED_PALE_OAK_LOG(-1, Orientable.class), + STRIPPED_PALE_OAK_WOOD(-1, Orientable.class), + STRIPPED_SPRUCE_LOG(-1, Orientable.class), + STRIPPED_SPRUCE_WOOD(-1, Orientable.class), + STRIPPED_WARPED_HYPHAE(-1, Orientable.class), + STRIPPED_WARPED_STEM(-1, Orientable.class), + STRUCTURE_BLOCK(-1, StructureBlock.class), + STRUCTURE_VOID(-1), + SUGAR_CANE(-1, Ageable.class), + SUNFLOWER(-1, Bisected.class), + SUSPICIOUS_GRAVEL(-1, Brushable.class), + SUSPICIOUS_SAND(-1, Brushable.class), + SWEET_BERRY_BUSH(-1, Ageable.class), + TALL_GRASS(-1, Bisected.class), + TALL_SEAGRASS(-1, Bisected.class), + TARGET(-1, AnaloguePowerable.class), + TERRACOTTA(-1), + TINTED_GLASS(-1), + TNT(-1, TNT.class), + TORCH(-1), + TORCHFLOWER(-1), + TORCHFLOWER_CROP(-1, Ageable.class), + TRAPPED_CHEST(-1, Chest.class), + TRIAL_SPAWNER(-1, TrialSpawner.class), + TRIPWIRE(-1, Tripwire.class), + TRIPWIRE_HOOK(-1, TripwireHook.class), + TUBE_CORAL(-1, Waterlogged.class), + TUBE_CORAL_BLOCK(-1), + TUBE_CORAL_FAN(-1, Waterlogged.class), + TUBE_CORAL_WALL_FAN(-1, CoralWallFan.class), + TUFF(-1), + TUFF_BRICK_SLAB(-1, Slab.class), + TUFF_BRICK_STAIRS(-1, Stairs.class), + TUFF_BRICK_WALL(-1, Wall.class), + TUFF_BRICKS(-1), + TUFF_SLAB(-1, Slab.class), + TUFF_STAIRS(-1, Stairs.class), + TUFF_WALL(-1, Wall.class), + TURTLE_EGG(-1, TurtleEgg.class), + TWISTING_VINES(-1, Ageable.class), + TWISTING_VINES_PLANT(-1), + VAULT(-1, Vault.class), + VERDANT_FROGLIGHT(-1, Orientable.class), + VINE(-1, MultipleFacing.class), + VOID_AIR(-1), + WALL_TORCH(-1, Directional.class), + WARPED_BUTTON(-1, Switch.class), + WARPED_DOOR(-1, Door.class), + WARPED_FENCE(-1, Fence.class), + WARPED_FENCE_GATE(-1, Gate.class), + WARPED_FUNGUS(-1), + WARPED_HANGING_SIGN(-1, 16, HangingSign.class), + WARPED_HYPHAE(-1, Orientable.class), + WARPED_NYLIUM(-1), + WARPED_PLANKS(-1), + WARPED_PRESSURE_PLATE(-1, Powerable.class), + WARPED_ROOTS(-1), + WARPED_SIGN(-1, 16, Sign.class), + WARPED_SLAB(-1, Slab.class), + WARPED_STAIRS(-1, Stairs.class), + WARPED_STEM(-1, Orientable.class), + WARPED_TRAPDOOR(-1, TrapDoor.class), + WARPED_WALL_HANGING_SIGN(-1, WallHangingSign.class), + WARPED_WALL_SIGN(-1, 16, WallSign.class), + WARPED_WART_BLOCK(-1), + WATER(-1, Levelled.class), + WATER_CAULDRON(-1, Levelled.class), + WAXED_CHISELED_COPPER(-1), + WAXED_COPPER_BLOCK(-1), + WAXED_COPPER_BULB(-1, CopperBulb.class), + WAXED_COPPER_DOOR(-1, Door.class), + WAXED_COPPER_GRATE(-1, Waterlogged.class), + WAXED_COPPER_TRAPDOOR(-1, TrapDoor.class), + WAXED_CUT_COPPER(-1), + WAXED_CUT_COPPER_SLAB(-1, Slab.class), + WAXED_CUT_COPPER_STAIRS(-1, Stairs.class), + WAXED_EXPOSED_CHISELED_COPPER(-1), + WAXED_EXPOSED_COPPER(-1), + WAXED_EXPOSED_COPPER_BULB(-1, CopperBulb.class), + WAXED_EXPOSED_COPPER_DOOR(-1, Door.class), + WAXED_EXPOSED_COPPER_GRATE(-1, Waterlogged.class), + WAXED_EXPOSED_COPPER_TRAPDOOR(-1, TrapDoor.class), + WAXED_EXPOSED_CUT_COPPER(-1), + WAXED_EXPOSED_CUT_COPPER_SLAB(-1, Slab.class), + WAXED_EXPOSED_CUT_COPPER_STAIRS(-1, Stairs.class), + WAXED_OXIDIZED_CHISELED_COPPER(-1), + WAXED_OXIDIZED_COPPER(-1), + WAXED_OXIDIZED_COPPER_BULB(-1, CopperBulb.class), + WAXED_OXIDIZED_COPPER_DOOR(-1, Door.class), + WAXED_OXIDIZED_COPPER_GRATE(-1, Waterlogged.class), + WAXED_OXIDIZED_COPPER_TRAPDOOR(-1, TrapDoor.class), + WAXED_OXIDIZED_CUT_COPPER(-1), + WAXED_OXIDIZED_CUT_COPPER_SLAB(-1, Slab.class), + WAXED_OXIDIZED_CUT_COPPER_STAIRS(-1, Stairs.class), + WAXED_WEATHERED_CHISELED_COPPER(-1), + WAXED_WEATHERED_COPPER(-1), + WAXED_WEATHERED_COPPER_BULB(-1, CopperBulb.class), + WAXED_WEATHERED_COPPER_DOOR(-1, Door.class), + WAXED_WEATHERED_COPPER_GRATE(-1, Waterlogged.class), + WAXED_WEATHERED_COPPER_TRAPDOOR(-1, TrapDoor.class), + WAXED_WEATHERED_CUT_COPPER(-1), + WAXED_WEATHERED_CUT_COPPER_SLAB(-1, Slab.class), + WAXED_WEATHERED_CUT_COPPER_STAIRS(-1, Stairs.class), + WEATHERED_CHISELED_COPPER(-1), + WEATHERED_COPPER(-1), + WEATHERED_COPPER_BULB(-1, CopperBulb.class), + WEATHERED_COPPER_DOOR(-1, Door.class), + WEATHERED_COPPER_GRATE(-1, Waterlogged.class), + WEATHERED_COPPER_TRAPDOOR(-1, TrapDoor.class), + WEATHERED_CUT_COPPER(-1), + WEATHERED_CUT_COPPER_SLAB(-1, Slab.class), + WEATHERED_CUT_COPPER_STAIRS(-1, Stairs.class), + WEEPING_VINES(-1, Ageable.class), + WEEPING_VINES_PLANT(-1), + WET_SPONGE(-1), + WHEAT(-1, Ageable.class), + WHITE_BANNER(-1, 16, Rotatable.class), + WHITE_BED(-1, 1, Bed.class), + WHITE_CANDLE(-1, Candle.class), + WHITE_CANDLE_CAKE(-1, Lightable.class), + WHITE_CARPET(-1), + WHITE_CONCRETE(-1), + WHITE_CONCRETE_POWDER(-1), + WHITE_GLAZED_TERRACOTTA(-1, Directional.class), + WHITE_SHULKER_BOX(-1, 1, Directional.class), + WHITE_STAINED_GLASS(-1), + WHITE_STAINED_GLASS_PANE(-1, GlassPane.class), + WHITE_TERRACOTTA(-1), + WHITE_TULIP(-1), + WHITE_WALL_BANNER(-1, Directional.class), + WHITE_WOOL(-1), + WITHER_ROSE(-1), + WITHER_SKELETON_SKULL(-1, Skull.class), + WITHER_SKELETON_WALL_SKULL(-1, WallSkull.class), + YELLOW_BANNER(-1, 16, Rotatable.class), + YELLOW_BED(-1, 1, Bed.class), + YELLOW_CANDLE(-1, Candle.class), + YELLOW_CANDLE_CAKE(-1, Lightable.class), + YELLOW_CARPET(-1), + YELLOW_CONCRETE(-1), + YELLOW_CONCRETE_POWDER(-1), + YELLOW_GLAZED_TERRACOTTA(-1, Directional.class), + YELLOW_SHULKER_BOX(-1, 1, Directional.class), + YELLOW_STAINED_GLASS(-1), + YELLOW_STAINED_GLASS_PANE(-1, GlassPane.class), + YELLOW_TERRACOTTA(-1), + YELLOW_WALL_BANNER(-1, Directional.class), + YELLOW_WOOL(-1), + ZOMBIE_HEAD(-1, Skull.class), + ZOMBIE_WALL_HEAD(-1, WallSkull.class), + // End generate - Blocks // ----- Legacy Separator ----- @Deprecated(since = "1.13") LEGACY_AIR(0, 0), @@ -5174,6 +3043,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla } switch (this) { // + // Start generate - Material#isTransparent case ACACIA_BUTTON: case ACACIA_SAPLING: case ACTIVATOR_RAIL: @@ -5301,6 +3171,7 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla case YELLOW_CARPET: case ZOMBIE_HEAD: case ZOMBIE_WALL_HEAD: + // End generate - Material#isTransparent // ----- Legacy Separator ----- case LEGACY_AIR: case LEGACY_SAPLING: @@ -5528,75 +3399,10 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla */ @NotNull public EquipmentSlot getEquipmentSlot() { - Preconditions.checkArgument(isItem(), "The Material is not an item!"); - switch (this) { - // - case CARVED_PUMPKIN: - case CHAINMAIL_HELMET: - case CREEPER_HEAD: - case DIAMOND_HELMET: - case DRAGON_HEAD: - case GOLDEN_HELMET: - case IRON_HELMET: - case LEATHER_HELMET: - case NETHERITE_HELMET: - case PLAYER_HEAD: - case PIGLIN_HEAD: - case SKELETON_SKULL: - case TURTLE_HELMET: - case WITHER_SKELETON_SKULL: - case ZOMBIE_HEAD: - return EquipmentSlot.HEAD; - case CHAINMAIL_CHESTPLATE: - case DIAMOND_CHESTPLATE: - case ELYTRA: - case GOLDEN_CHESTPLATE: - case IRON_CHESTPLATE: - case LEATHER_CHESTPLATE: - case NETHERITE_CHESTPLATE: - return EquipmentSlot.CHEST; - case CHAINMAIL_LEGGINGS: - case DIAMOND_LEGGINGS: - case GOLDEN_LEGGINGS: - case IRON_LEGGINGS: - case LEATHER_LEGGINGS: - case NETHERITE_LEGGINGS: - return EquipmentSlot.LEGS; - case CHAINMAIL_BOOTS: - case DIAMOND_BOOTS: - case GOLDEN_BOOTS: - case IRON_BOOTS: - case LEATHER_BOOTS: - case NETHERITE_BOOTS: - return EquipmentSlot.FEET; - case SHIELD: - return EquipmentSlot.OFF_HAND; - case BLACK_CARPET: - case BLUE_CARPET: - case BROWN_CARPET: - case CYAN_CARPET: - case DIAMOND_HORSE_ARMOR: - case GOLDEN_HORSE_ARMOR: - case GRAY_CARPET: - case GREEN_CARPET: - case IRON_HORSE_ARMOR: - case LEATHER_HORSE_ARMOR: - case LIGHT_BLUE_CARPET: - case LIGHT_GRAY_CARPET: - case LIME_CARPET: - case MAGENTA_CARPET: - case ORANGE_CARPET: - case PINK_CARPET: - case PURPLE_CARPET: - case RED_CARPET: - case WHITE_CARPET: - case WOLF_ARMOR: - case YELLOW_CARPET: - return EquipmentSlot.BODY; - default: - return EquipmentSlot.HAND; - // - } + ItemType type = asItemType(); + Preconditions.checkArgument(type != null, "The Material is not an item!"); + Equippable equippable = type.getDefaultData(DataComponentTypes.EQUIPPABLE); + return equippable == null ? EquipmentSlot.HAND : equippable.slot(); } // Paper start - improve default item attribute API diff --git a/paper-api/src/main/java/org/bukkit/MusicInstrument.java b/paper-api/src/main/java/org/bukkit/MusicInstrument.java index bfe64b367d..bc36eb879c 100644 --- a/paper-api/src/main/java/org/bukkit/MusicInstrument.java +++ b/paper-api/src/main/java/org/bukkit/MusicInstrument.java @@ -10,15 +10,25 @@ import org.jetbrains.annotations.Nullable; public abstract class MusicInstrument implements Keyed, net.kyori.adventure.translation.Translatable { // Paper - translation keys - public static final MusicInstrument PONDER_GOAT_HORN = getInstrument("ponder_goat_horn"); - public static final MusicInstrument SING_GOAT_HORN = getInstrument("sing_goat_horn"); - public static final MusicInstrument SEEK_GOAT_HORN = getInstrument("seek_goat_horn"); - public static final MusicInstrument FEEL_GOAT_HORN = getInstrument("feel_goat_horn"); + // Start generate - MusicInstrument + // @GeneratedFrom 1.21.4 public static final MusicInstrument ADMIRE_GOAT_HORN = getInstrument("admire_goat_horn"); + public static final MusicInstrument CALL_GOAT_HORN = getInstrument("call_goat_horn"); - public static final MusicInstrument YEARN_GOAT_HORN = getInstrument("yearn_goat_horn"); + public static final MusicInstrument DREAM_GOAT_HORN = getInstrument("dream_goat_horn"); + public static final MusicInstrument FEEL_GOAT_HORN = getInstrument("feel_goat_horn"); + + public static final MusicInstrument PONDER_GOAT_HORN = getInstrument("ponder_goat_horn"); + + public static final MusicInstrument SEEK_GOAT_HORN = getInstrument("seek_goat_horn"); + + public static final MusicInstrument SING_GOAT_HORN = getInstrument("sing_goat_horn"); + + public static final MusicInstrument YEARN_GOAT_HORN = getInstrument("yearn_goat_horn"); + // End generate - MusicInstrument + /** * Returns a {@link MusicInstrument} by a {@link NamespacedKey}. * diff --git a/paper-api/src/main/java/org/bukkit/Registry.java b/paper-api/src/main/java/org/bukkit/Registry.java index 50eea29671..03658f0126 100644 --- a/paper-api/src/main/java/org/bukkit/Registry.java +++ b/paper-api/src/main/java/org/bukkit/Registry.java @@ -291,15 +291,15 @@ public interface Registry extends Iterable { * * @see MemoryKey */ - Registry MEMORY_MODULE_TYPE = new NotARegistry<>() { + Registry> MEMORY_MODULE_TYPE = new NotARegistry<>() { @Override - public Iterator iterator() { + public Iterator> iterator() { return MemoryKey.values().iterator(); } @Override - public @Nullable MemoryKey get(final NamespacedKey key) { + public @Nullable MemoryKey get(final NamespacedKey key) { return MemoryKey.getByKey(key); } }; diff --git a/paper-api/src/main/java/org/bukkit/Sound.java b/paper-api/src/main/java/org/bukkit/Sound.java index e2fb7cfba4..e1d5b2d916 100644 --- a/paper-api/src/main/java/org/bukkit/Sound.java +++ b/paper-api/src/main/java/org/bukkit/Sound.java @@ -23,1657 +23,3310 @@ import org.jetbrains.annotations.NotNull; */ public interface Sound extends OldEnum, Keyed, net.kyori.adventure.sound.Sound.Type { // Paper - implement Sound.Type + // Start generate - Sound + // @GeneratedFrom 1.21.4 Sound AMBIENT_BASALT_DELTAS_ADDITIONS = getSound("ambient.basalt_deltas.additions"); + Sound AMBIENT_BASALT_DELTAS_LOOP = getSound("ambient.basalt_deltas.loop"); + Sound AMBIENT_BASALT_DELTAS_MOOD = getSound("ambient.basalt_deltas.mood"); + Sound AMBIENT_CAVE = getSound("ambient.cave"); + Sound AMBIENT_CRIMSON_FOREST_ADDITIONS = getSound("ambient.crimson_forest.additions"); + Sound AMBIENT_CRIMSON_FOREST_LOOP = getSound("ambient.crimson_forest.loop"); + Sound AMBIENT_CRIMSON_FOREST_MOOD = getSound("ambient.crimson_forest.mood"); + Sound AMBIENT_NETHER_WASTES_ADDITIONS = getSound("ambient.nether_wastes.additions"); + Sound AMBIENT_NETHER_WASTES_LOOP = getSound("ambient.nether_wastes.loop"); + Sound AMBIENT_NETHER_WASTES_MOOD = getSound("ambient.nether_wastes.mood"); + Sound AMBIENT_SOUL_SAND_VALLEY_ADDITIONS = getSound("ambient.soul_sand_valley.additions"); + Sound AMBIENT_SOUL_SAND_VALLEY_LOOP = getSound("ambient.soul_sand_valley.loop"); + Sound AMBIENT_SOUL_SAND_VALLEY_MOOD = getSound("ambient.soul_sand_valley.mood"); + Sound AMBIENT_UNDERWATER_ENTER = getSound("ambient.underwater.enter"); + Sound AMBIENT_UNDERWATER_EXIT = getSound("ambient.underwater.exit"); + Sound AMBIENT_UNDERWATER_LOOP = getSound("ambient.underwater.loop"); + Sound AMBIENT_UNDERWATER_LOOP_ADDITIONS = getSound("ambient.underwater.loop.additions"); + Sound AMBIENT_UNDERWATER_LOOP_ADDITIONS_RARE = getSound("ambient.underwater.loop.additions.rare"); + Sound AMBIENT_UNDERWATER_LOOP_ADDITIONS_ULTRA_RARE = getSound("ambient.underwater.loop.additions.ultra_rare"); + Sound AMBIENT_WARPED_FOREST_ADDITIONS = getSound("ambient.warped_forest.additions"); + Sound AMBIENT_WARPED_FOREST_LOOP = getSound("ambient.warped_forest.loop"); + Sound AMBIENT_WARPED_FOREST_MOOD = getSound("ambient.warped_forest.mood"); + Sound BLOCK_AMETHYST_BLOCK_BREAK = getSound("block.amethyst_block.break"); + Sound BLOCK_AMETHYST_BLOCK_CHIME = getSound("block.amethyst_block.chime"); + Sound BLOCK_AMETHYST_BLOCK_FALL = getSound("block.amethyst_block.fall"); + Sound BLOCK_AMETHYST_BLOCK_HIT = getSound("block.amethyst_block.hit"); + Sound BLOCK_AMETHYST_BLOCK_PLACE = getSound("block.amethyst_block.place"); + Sound BLOCK_AMETHYST_BLOCK_RESONATE = getSound("block.amethyst_block.resonate"); + Sound BLOCK_AMETHYST_BLOCK_STEP = getSound("block.amethyst_block.step"); + Sound BLOCK_AMETHYST_CLUSTER_BREAK = getSound("block.amethyst_cluster.break"); + Sound BLOCK_AMETHYST_CLUSTER_FALL = getSound("block.amethyst_cluster.fall"); + Sound BLOCK_AMETHYST_CLUSTER_HIT = getSound("block.amethyst_cluster.hit"); + Sound BLOCK_AMETHYST_CLUSTER_PLACE = getSound("block.amethyst_cluster.place"); + Sound BLOCK_AMETHYST_CLUSTER_STEP = getSound("block.amethyst_cluster.step"); + Sound BLOCK_ANCIENT_DEBRIS_BREAK = getSound("block.ancient_debris.break"); + Sound BLOCK_ANCIENT_DEBRIS_FALL = getSound("block.ancient_debris.fall"); + Sound BLOCK_ANCIENT_DEBRIS_HIT = getSound("block.ancient_debris.hit"); + Sound BLOCK_ANCIENT_DEBRIS_PLACE = getSound("block.ancient_debris.place"); + Sound BLOCK_ANCIENT_DEBRIS_STEP = getSound("block.ancient_debris.step"); + Sound BLOCK_ANVIL_BREAK = getSound("block.anvil.break"); + Sound BLOCK_ANVIL_DESTROY = getSound("block.anvil.destroy"); + Sound BLOCK_ANVIL_FALL = getSound("block.anvil.fall"); + Sound BLOCK_ANVIL_HIT = getSound("block.anvil.hit"); + Sound BLOCK_ANVIL_LAND = getSound("block.anvil.land"); + Sound BLOCK_ANVIL_PLACE = getSound("block.anvil.place"); + Sound BLOCK_ANVIL_STEP = getSound("block.anvil.step"); + Sound BLOCK_ANVIL_USE = getSound("block.anvil.use"); + Sound BLOCK_AZALEA_BREAK = getSound("block.azalea.break"); + Sound BLOCK_AZALEA_FALL = getSound("block.azalea.fall"); + Sound BLOCK_AZALEA_HIT = getSound("block.azalea.hit"); - Sound BLOCK_AZALEA_LEAVES_BREAK = getSound("block.azalea_leaves.break"); - Sound BLOCK_AZALEA_LEAVES_FALL = getSound("block.azalea_leaves.fall"); - Sound BLOCK_AZALEA_LEAVES_HIT = getSound("block.azalea_leaves.hit"); - Sound BLOCK_AZALEA_LEAVES_PLACE = getSound("block.azalea_leaves.place"); - Sound BLOCK_AZALEA_LEAVES_STEP = getSound("block.azalea_leaves.step"); + Sound BLOCK_AZALEA_PLACE = getSound("block.azalea.place"); + Sound BLOCK_AZALEA_STEP = getSound("block.azalea.step"); + + Sound BLOCK_AZALEA_LEAVES_BREAK = getSound("block.azalea_leaves.break"); + + Sound BLOCK_AZALEA_LEAVES_FALL = getSound("block.azalea_leaves.fall"); + + Sound BLOCK_AZALEA_LEAVES_HIT = getSound("block.azalea_leaves.hit"); + + Sound BLOCK_AZALEA_LEAVES_PLACE = getSound("block.azalea_leaves.place"); + + Sound BLOCK_AZALEA_LEAVES_STEP = getSound("block.azalea_leaves.step"); + Sound BLOCK_BAMBOO_BREAK = getSound("block.bamboo.break"); + Sound BLOCK_BAMBOO_FALL = getSound("block.bamboo.fall"); + Sound BLOCK_BAMBOO_HIT = getSound("block.bamboo.hit"); + Sound BLOCK_BAMBOO_PLACE = getSound("block.bamboo.place"); - Sound BLOCK_BAMBOO_SAPLING_BREAK = getSound("block.bamboo_sapling.break"); - Sound BLOCK_BAMBOO_SAPLING_HIT = getSound("block.bamboo_sapling.hit"); - Sound BLOCK_BAMBOO_SAPLING_PLACE = getSound("block.bamboo_sapling.place"); + Sound BLOCK_BAMBOO_STEP = getSound("block.bamboo.step"); + + Sound BLOCK_BAMBOO_SAPLING_BREAK = getSound("block.bamboo_sapling.break"); + + Sound BLOCK_BAMBOO_SAPLING_HIT = getSound("block.bamboo_sapling.hit"); + + Sound BLOCK_BAMBOO_SAPLING_PLACE = getSound("block.bamboo_sapling.place"); + Sound BLOCK_BAMBOO_WOOD_BREAK = getSound("block.bamboo_wood.break"); - Sound BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF = getSound("block.bamboo_wood_button.click_off"); - Sound BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON = getSound("block.bamboo_wood_button.click_on"); - Sound BLOCK_BAMBOO_WOOD_DOOR_CLOSE = getSound("block.bamboo_wood_door.close"); - Sound BLOCK_BAMBOO_WOOD_DOOR_OPEN = getSound("block.bamboo_wood_door.open"); + Sound BLOCK_BAMBOO_WOOD_FALL = getSound("block.bamboo_wood.fall"); - Sound BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE = getSound("block.bamboo_wood_fence_gate.close"); - Sound BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN = getSound("block.bamboo_wood_fence_gate.open"); - Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK = getSound("block.bamboo_wood_hanging_sign.break"); - Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL = getSound("block.bamboo_wood_hanging_sign.fall"); - Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT = getSound("block.bamboo_wood_hanging_sign.hit"); - Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE = getSound("block.bamboo_wood_hanging_sign.place"); - Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP = getSound("block.bamboo_wood_hanging_sign.step"); + Sound BLOCK_BAMBOO_WOOD_HIT = getSound("block.bamboo_wood.hit"); + Sound BLOCK_BAMBOO_WOOD_PLACE = getSound("block.bamboo_wood.place"); - Sound BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.bamboo_wood_pressure_plate.click_off"); - Sound BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.bamboo_wood_pressure_plate.click_on"); + Sound BLOCK_BAMBOO_WOOD_STEP = getSound("block.bamboo_wood.step"); + + Sound BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF = getSound("block.bamboo_wood_button.click_off"); + + Sound BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON = getSound("block.bamboo_wood_button.click_on"); + + Sound BLOCK_BAMBOO_WOOD_DOOR_CLOSE = getSound("block.bamboo_wood_door.close"); + + Sound BLOCK_BAMBOO_WOOD_DOOR_OPEN = getSound("block.bamboo_wood_door.open"); + + Sound BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE = getSound("block.bamboo_wood_fence_gate.close"); + + Sound BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN = getSound("block.bamboo_wood_fence_gate.open"); + + Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK = getSound("block.bamboo_wood_hanging_sign.break"); + + Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL = getSound("block.bamboo_wood_hanging_sign.fall"); + + Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT = getSound("block.bamboo_wood_hanging_sign.hit"); + + Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE = getSound("block.bamboo_wood_hanging_sign.place"); + + Sound BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP = getSound("block.bamboo_wood_hanging_sign.step"); + + Sound BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.bamboo_wood_pressure_plate.click_off"); + + Sound BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.bamboo_wood_pressure_plate.click_on"); + Sound BLOCK_BAMBOO_WOOD_TRAPDOOR_CLOSE = getSound("block.bamboo_wood_trapdoor.close"); + Sound BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN = getSound("block.bamboo_wood_trapdoor.open"); + Sound BLOCK_BARREL_CLOSE = getSound("block.barrel.close"); + Sound BLOCK_BARREL_OPEN = getSound("block.barrel.open"); + Sound BLOCK_BASALT_BREAK = getSound("block.basalt.break"); + Sound BLOCK_BASALT_FALL = getSound("block.basalt.fall"); + Sound BLOCK_BASALT_HIT = getSound("block.basalt.hit"); + Sound BLOCK_BASALT_PLACE = getSound("block.basalt.place"); + Sound BLOCK_BASALT_STEP = getSound("block.basalt.step"); + Sound BLOCK_BEACON_ACTIVATE = getSound("block.beacon.activate"); + Sound BLOCK_BEACON_AMBIENT = getSound("block.beacon.ambient"); + Sound BLOCK_BEACON_DEACTIVATE = getSound("block.beacon.deactivate"); + Sound BLOCK_BEACON_POWER_SELECT = getSound("block.beacon.power_select"); + Sound BLOCK_BEEHIVE_DRIP = getSound("block.beehive.drip"); + Sound BLOCK_BEEHIVE_ENTER = getSound("block.beehive.enter"); + Sound BLOCK_BEEHIVE_EXIT = getSound("block.beehive.exit"); + Sound BLOCK_BEEHIVE_SHEAR = getSound("block.beehive.shear"); + Sound BLOCK_BEEHIVE_WORK = getSound("block.beehive.work"); + Sound BLOCK_BELL_RESONATE = getSound("block.bell.resonate"); + Sound BLOCK_BELL_USE = getSound("block.bell.use"); + Sound BLOCK_BIG_DRIPLEAF_BREAK = getSound("block.big_dripleaf.break"); + Sound BLOCK_BIG_DRIPLEAF_FALL = getSound("block.big_dripleaf.fall"); + Sound BLOCK_BIG_DRIPLEAF_HIT = getSound("block.big_dripleaf.hit"); + Sound BLOCK_BIG_DRIPLEAF_PLACE = getSound("block.big_dripleaf.place"); + Sound BLOCK_BIG_DRIPLEAF_STEP = getSound("block.big_dripleaf.step"); + Sound BLOCK_BIG_DRIPLEAF_TILT_DOWN = getSound("block.big_dripleaf.tilt_down"); + Sound BLOCK_BIG_DRIPLEAF_TILT_UP = getSound("block.big_dripleaf.tilt_up"); + Sound BLOCK_BLASTFURNACE_FIRE_CRACKLE = getSound("block.blastfurnace.fire_crackle"); + Sound BLOCK_BONE_BLOCK_BREAK = getSound("block.bone_block.break"); + Sound BLOCK_BONE_BLOCK_FALL = getSound("block.bone_block.fall"); + Sound BLOCK_BONE_BLOCK_HIT = getSound("block.bone_block.hit"); + Sound BLOCK_BONE_BLOCK_PLACE = getSound("block.bone_block.place"); + Sound BLOCK_BONE_BLOCK_STEP = getSound("block.bone_block.step"); + Sound BLOCK_BREWING_STAND_BREW = getSound("block.brewing_stand.brew"); + Sound BLOCK_BUBBLE_COLUMN_BUBBLE_POP = getSound("block.bubble_column.bubble_pop"); + Sound BLOCK_BUBBLE_COLUMN_UPWARDS_AMBIENT = getSound("block.bubble_column.upwards_ambient"); + Sound BLOCK_BUBBLE_COLUMN_UPWARDS_INSIDE = getSound("block.bubble_column.upwards_inside"); + Sound BLOCK_BUBBLE_COLUMN_WHIRLPOOL_AMBIENT = getSound("block.bubble_column.whirlpool_ambient"); + Sound BLOCK_BUBBLE_COLUMN_WHIRLPOOL_INSIDE = getSound("block.bubble_column.whirlpool_inside"); + Sound BLOCK_CAKE_ADD_CANDLE = getSound("block.cake.add_candle"); + Sound BLOCK_CALCITE_BREAK = getSound("block.calcite.break"); + Sound BLOCK_CALCITE_FALL = getSound("block.calcite.fall"); + Sound BLOCK_CALCITE_HIT = getSound("block.calcite.hit"); + Sound BLOCK_CALCITE_PLACE = getSound("block.calcite.place"); + Sound BLOCK_CALCITE_STEP = getSound("block.calcite.step"); + Sound BLOCK_CAMPFIRE_CRACKLE = getSound("block.campfire.crackle"); + Sound BLOCK_CANDLE_AMBIENT = getSound("block.candle.ambient"); + Sound BLOCK_CANDLE_BREAK = getSound("block.candle.break"); + Sound BLOCK_CANDLE_EXTINGUISH = getSound("block.candle.extinguish"); + Sound BLOCK_CANDLE_FALL = getSound("block.candle.fall"); + Sound BLOCK_CANDLE_HIT = getSound("block.candle.hit"); + Sound BLOCK_CANDLE_PLACE = getSound("block.candle.place"); + Sound BLOCK_CANDLE_STEP = getSound("block.candle.step"); + Sound BLOCK_CAVE_VINES_BREAK = getSound("block.cave_vines.break"); + Sound BLOCK_CAVE_VINES_FALL = getSound("block.cave_vines.fall"); + Sound BLOCK_CAVE_VINES_HIT = getSound("block.cave_vines.hit"); + Sound BLOCK_CAVE_VINES_PICK_BERRIES = getSound("block.cave_vines.pick_berries"); + Sound BLOCK_CAVE_VINES_PLACE = getSound("block.cave_vines.place"); + Sound BLOCK_CAVE_VINES_STEP = getSound("block.cave_vines.step"); + Sound BLOCK_CHAIN_BREAK = getSound("block.chain.break"); + Sound BLOCK_CHAIN_FALL = getSound("block.chain.fall"); + Sound BLOCK_CHAIN_HIT = getSound("block.chain.hit"); + Sound BLOCK_CHAIN_PLACE = getSound("block.chain.place"); + Sound BLOCK_CHAIN_STEP = getSound("block.chain.step"); + Sound BLOCK_CHERRY_LEAVES_BREAK = getSound("block.cherry_leaves.break"); + Sound BLOCK_CHERRY_LEAVES_FALL = getSound("block.cherry_leaves.fall"); + Sound BLOCK_CHERRY_LEAVES_HIT = getSound("block.cherry_leaves.hit"); + Sound BLOCK_CHERRY_LEAVES_PLACE = getSound("block.cherry_leaves.place"); + Sound BLOCK_CHERRY_LEAVES_STEP = getSound("block.cherry_leaves.step"); + Sound BLOCK_CHERRY_SAPLING_BREAK = getSound("block.cherry_sapling.break"); + Sound BLOCK_CHERRY_SAPLING_FALL = getSound("block.cherry_sapling.fall"); + Sound BLOCK_CHERRY_SAPLING_HIT = getSound("block.cherry_sapling.hit"); + Sound BLOCK_CHERRY_SAPLING_PLACE = getSound("block.cherry_sapling.place"); + Sound BLOCK_CHERRY_SAPLING_STEP = getSound("block.cherry_sapling.step"); + Sound BLOCK_CHERRY_WOOD_BREAK = getSound("block.cherry_wood.break"); - Sound BLOCK_CHERRY_WOOD_BUTTON_CLICK_OFF = getSound("block.cherry_wood_button.click_off"); - Sound BLOCK_CHERRY_WOOD_BUTTON_CLICK_ON = getSound("block.cherry_wood_button.click_on"); - Sound BLOCK_CHERRY_WOOD_DOOR_CLOSE = getSound("block.cherry_wood_door.close"); - Sound BLOCK_CHERRY_WOOD_DOOR_OPEN = getSound("block.cherry_wood_door.open"); + Sound BLOCK_CHERRY_WOOD_FALL = getSound("block.cherry_wood.fall"); - Sound BLOCK_CHERRY_WOOD_FENCE_GATE_CLOSE = getSound("block.cherry_wood_fence_gate.close"); - Sound BLOCK_CHERRY_WOOD_FENCE_GATE_OPEN = getSound("block.cherry_wood_fence_gate.open"); - Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_BREAK = getSound("block.cherry_wood_hanging_sign.break"); - Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_FALL = getSound("block.cherry_wood_hanging_sign.fall"); - Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_HIT = getSound("block.cherry_wood_hanging_sign.hit"); - Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_PLACE = getSound("block.cherry_wood_hanging_sign.place"); - Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_STEP = getSound("block.cherry_wood_hanging_sign.step"); + Sound BLOCK_CHERRY_WOOD_HIT = getSound("block.cherry_wood.hit"); + Sound BLOCK_CHERRY_WOOD_PLACE = getSound("block.cherry_wood.place"); - Sound BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.cherry_wood_pressure_plate.click_off"); - Sound BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.cherry_wood_pressure_plate.click_on"); + Sound BLOCK_CHERRY_WOOD_STEP = getSound("block.cherry_wood.step"); + + Sound BLOCK_CHERRY_WOOD_BUTTON_CLICK_OFF = getSound("block.cherry_wood_button.click_off"); + + Sound BLOCK_CHERRY_WOOD_BUTTON_CLICK_ON = getSound("block.cherry_wood_button.click_on"); + + Sound BLOCK_CHERRY_WOOD_DOOR_CLOSE = getSound("block.cherry_wood_door.close"); + + Sound BLOCK_CHERRY_WOOD_DOOR_OPEN = getSound("block.cherry_wood_door.open"); + + Sound BLOCK_CHERRY_WOOD_FENCE_GATE_CLOSE = getSound("block.cherry_wood_fence_gate.close"); + + Sound BLOCK_CHERRY_WOOD_FENCE_GATE_OPEN = getSound("block.cherry_wood_fence_gate.open"); + + Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_BREAK = getSound("block.cherry_wood_hanging_sign.break"); + + Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_FALL = getSound("block.cherry_wood_hanging_sign.fall"); + + Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_HIT = getSound("block.cherry_wood_hanging_sign.hit"); + + Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_PLACE = getSound("block.cherry_wood_hanging_sign.place"); + + Sound BLOCK_CHERRY_WOOD_HANGING_SIGN_STEP = getSound("block.cherry_wood_hanging_sign.step"); + + Sound BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.cherry_wood_pressure_plate.click_off"); + + Sound BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.cherry_wood_pressure_plate.click_on"); + Sound BLOCK_CHERRY_WOOD_TRAPDOOR_CLOSE = getSound("block.cherry_wood_trapdoor.close"); + Sound BLOCK_CHERRY_WOOD_TRAPDOOR_OPEN = getSound("block.cherry_wood_trapdoor.open"); + Sound BLOCK_CHEST_CLOSE = getSound("block.chest.close"); + Sound BLOCK_CHEST_LOCKED = getSound("block.chest.locked"); + Sound BLOCK_CHEST_OPEN = getSound("block.chest.open"); + Sound BLOCK_CHISELED_BOOKSHELF_BREAK = getSound("block.chiseled_bookshelf.break"); + Sound BLOCK_CHISELED_BOOKSHELF_FALL = getSound("block.chiseled_bookshelf.fall"); + Sound BLOCK_CHISELED_BOOKSHELF_HIT = getSound("block.chiseled_bookshelf.hit"); + Sound BLOCK_CHISELED_BOOKSHELF_INSERT = getSound("block.chiseled_bookshelf.insert"); + Sound BLOCK_CHISELED_BOOKSHELF_INSERT_ENCHANTED = getSound("block.chiseled_bookshelf.insert.enchanted"); + Sound BLOCK_CHISELED_BOOKSHELF_PICKUP = getSound("block.chiseled_bookshelf.pickup"); + Sound BLOCK_CHISELED_BOOKSHELF_PICKUP_ENCHANTED = getSound("block.chiseled_bookshelf.pickup.enchanted"); + Sound BLOCK_CHISELED_BOOKSHELF_PLACE = getSound("block.chiseled_bookshelf.place"); + Sound BLOCK_CHISELED_BOOKSHELF_STEP = getSound("block.chiseled_bookshelf.step"); + Sound BLOCK_CHORUS_FLOWER_DEATH = getSound("block.chorus_flower.death"); + Sound BLOCK_CHORUS_FLOWER_GROW = getSound("block.chorus_flower.grow"); + Sound BLOCK_COBWEB_BREAK = getSound("block.cobweb.break"); + Sound BLOCK_COBWEB_FALL = getSound("block.cobweb.fall"); + Sound BLOCK_COBWEB_HIT = getSound("block.cobweb.hit"); + Sound BLOCK_COBWEB_PLACE = getSound("block.cobweb.place"); + Sound BLOCK_COBWEB_STEP = getSound("block.cobweb.step"); + Sound BLOCK_COMPARATOR_CLICK = getSound("block.comparator.click"); + Sound BLOCK_COMPOSTER_EMPTY = getSound("block.composter.empty"); + Sound BLOCK_COMPOSTER_FILL = getSound("block.composter.fill"); + Sound BLOCK_COMPOSTER_FILL_SUCCESS = getSound("block.composter.fill_success"); + Sound BLOCK_COMPOSTER_READY = getSound("block.composter.ready"); + Sound BLOCK_CONDUIT_ACTIVATE = getSound("block.conduit.activate"); + Sound BLOCK_CONDUIT_AMBIENT = getSound("block.conduit.ambient"); + Sound BLOCK_CONDUIT_AMBIENT_SHORT = getSound("block.conduit.ambient.short"); + Sound BLOCK_CONDUIT_ATTACK_TARGET = getSound("block.conduit.attack.target"); + Sound BLOCK_CONDUIT_DEACTIVATE = getSound("block.conduit.deactivate"); + Sound BLOCK_COPPER_BREAK = getSound("block.copper.break"); - Sound BLOCK_COPPER_BULB_BREAK = getSound("block.copper_bulb.break"); - Sound BLOCK_COPPER_BULB_FALL = getSound("block.copper_bulb.fall"); - Sound BLOCK_COPPER_BULB_HIT = getSound("block.copper_bulb.hit"); - Sound BLOCK_COPPER_BULB_PLACE = getSound("block.copper_bulb.place"); - Sound BLOCK_COPPER_BULB_STEP = getSound("block.copper_bulb.step"); - Sound BLOCK_COPPER_BULB_TURN_OFF = getSound("block.copper_bulb.turn_off"); - Sound BLOCK_COPPER_BULB_TURN_ON = getSound("block.copper_bulb.turn_on"); - Sound BLOCK_COPPER_DOOR_CLOSE = getSound("block.copper_door.close"); - Sound BLOCK_COPPER_DOOR_OPEN = getSound("block.copper_door.open"); + Sound BLOCK_COPPER_FALL = getSound("block.copper.fall"); - Sound BLOCK_COPPER_GRATE_BREAK = getSound("block.copper_grate.break"); - Sound BLOCK_COPPER_GRATE_FALL = getSound("block.copper_grate.fall"); - Sound BLOCK_COPPER_GRATE_HIT = getSound("block.copper_grate.hit"); - Sound BLOCK_COPPER_GRATE_PLACE = getSound("block.copper_grate.place"); - Sound BLOCK_COPPER_GRATE_STEP = getSound("block.copper_grate.step"); + Sound BLOCK_COPPER_HIT = getSound("block.copper.hit"); + Sound BLOCK_COPPER_PLACE = getSound("block.copper.place"); + Sound BLOCK_COPPER_STEP = getSound("block.copper.step"); + + Sound BLOCK_COPPER_BULB_BREAK = getSound("block.copper_bulb.break"); + + Sound BLOCK_COPPER_BULB_FALL = getSound("block.copper_bulb.fall"); + + Sound BLOCK_COPPER_BULB_HIT = getSound("block.copper_bulb.hit"); + + Sound BLOCK_COPPER_BULB_PLACE = getSound("block.copper_bulb.place"); + + Sound BLOCK_COPPER_BULB_STEP = getSound("block.copper_bulb.step"); + + Sound BLOCK_COPPER_BULB_TURN_OFF = getSound("block.copper_bulb.turn_off"); + + Sound BLOCK_COPPER_BULB_TURN_ON = getSound("block.copper_bulb.turn_on"); + + Sound BLOCK_COPPER_DOOR_CLOSE = getSound("block.copper_door.close"); + + Sound BLOCK_COPPER_DOOR_OPEN = getSound("block.copper_door.open"); + + Sound BLOCK_COPPER_GRATE_BREAK = getSound("block.copper_grate.break"); + + Sound BLOCK_COPPER_GRATE_FALL = getSound("block.copper_grate.fall"); + + Sound BLOCK_COPPER_GRATE_HIT = getSound("block.copper_grate.hit"); + + Sound BLOCK_COPPER_GRATE_PLACE = getSound("block.copper_grate.place"); + + Sound BLOCK_COPPER_GRATE_STEP = getSound("block.copper_grate.step"); + Sound BLOCK_COPPER_TRAPDOOR_CLOSE = getSound("block.copper_trapdoor.close"); + Sound BLOCK_COPPER_TRAPDOOR_OPEN = getSound("block.copper_trapdoor.open"); + Sound BLOCK_CORAL_BLOCK_BREAK = getSound("block.coral_block.break"); + Sound BLOCK_CORAL_BLOCK_FALL = getSound("block.coral_block.fall"); + Sound BLOCK_CORAL_BLOCK_HIT = getSound("block.coral_block.hit"); + Sound BLOCK_CORAL_BLOCK_PLACE = getSound("block.coral_block.place"); + Sound BLOCK_CORAL_BLOCK_STEP = getSound("block.coral_block.step"); + Sound BLOCK_CRAFTER_CRAFT = getSound("block.crafter.craft"); + Sound BLOCK_CRAFTER_FAIL = getSound("block.crafter.fail"); + Sound BLOCK_CREAKING_HEART_BREAK = getSound("block.creaking_heart.break"); + Sound BLOCK_CREAKING_HEART_FALL = getSound("block.creaking_heart.fall"); + Sound BLOCK_CREAKING_HEART_HIT = getSound("block.creaking_heart.hit"); + Sound BLOCK_CREAKING_HEART_HURT = getSound("block.creaking_heart.hurt"); + Sound BLOCK_CREAKING_HEART_IDLE = getSound("block.creaking_heart.idle"); + Sound BLOCK_CREAKING_HEART_PLACE = getSound("block.creaking_heart.place"); + Sound BLOCK_CREAKING_HEART_SPAWN = getSound("block.creaking_heart.spawn"); + Sound BLOCK_CREAKING_HEART_STEP = getSound("block.creaking_heart.step"); + Sound BLOCK_CROP_BREAK = getSound("block.crop.break"); + Sound BLOCK_DECORATED_POT_BREAK = getSound("block.decorated_pot.break"); + Sound BLOCK_DECORATED_POT_FALL = getSound("block.decorated_pot.fall"); + Sound BLOCK_DECORATED_POT_HIT = getSound("block.decorated_pot.hit"); + Sound BLOCK_DECORATED_POT_INSERT = getSound("block.decorated_pot.insert"); + Sound BLOCK_DECORATED_POT_INSERT_FAIL = getSound("block.decorated_pot.insert_fail"); + Sound BLOCK_DECORATED_POT_PLACE = getSound("block.decorated_pot.place"); + Sound BLOCK_DECORATED_POT_SHATTER = getSound("block.decorated_pot.shatter"); + Sound BLOCK_DECORATED_POT_STEP = getSound("block.decorated_pot.step"); + Sound BLOCK_DEEPSLATE_BREAK = getSound("block.deepslate.break"); - Sound BLOCK_DEEPSLATE_BRICKS_BREAK = getSound("block.deepslate_bricks.break"); - Sound BLOCK_DEEPSLATE_BRICKS_FALL = getSound("block.deepslate_bricks.fall"); - Sound BLOCK_DEEPSLATE_BRICKS_HIT = getSound("block.deepslate_bricks.hit"); - Sound BLOCK_DEEPSLATE_BRICKS_PLACE = getSound("block.deepslate_bricks.place"); - Sound BLOCK_DEEPSLATE_BRICKS_STEP = getSound("block.deepslate_bricks.step"); + Sound BLOCK_DEEPSLATE_FALL = getSound("block.deepslate.fall"); + Sound BLOCK_DEEPSLATE_HIT = getSound("block.deepslate.hit"); + Sound BLOCK_DEEPSLATE_PLACE = getSound("block.deepslate.place"); + Sound BLOCK_DEEPSLATE_STEP = getSound("block.deepslate.step"); + + Sound BLOCK_DEEPSLATE_BRICKS_BREAK = getSound("block.deepslate_bricks.break"); + + Sound BLOCK_DEEPSLATE_BRICKS_FALL = getSound("block.deepslate_bricks.fall"); + + Sound BLOCK_DEEPSLATE_BRICKS_HIT = getSound("block.deepslate_bricks.hit"); + + Sound BLOCK_DEEPSLATE_BRICKS_PLACE = getSound("block.deepslate_bricks.place"); + + Sound BLOCK_DEEPSLATE_BRICKS_STEP = getSound("block.deepslate_bricks.step"); + Sound BLOCK_DEEPSLATE_TILES_BREAK = getSound("block.deepslate_tiles.break"); + Sound BLOCK_DEEPSLATE_TILES_FALL = getSound("block.deepslate_tiles.fall"); + Sound BLOCK_DEEPSLATE_TILES_HIT = getSound("block.deepslate_tiles.hit"); + Sound BLOCK_DEEPSLATE_TILES_PLACE = getSound("block.deepslate_tiles.place"); + Sound BLOCK_DEEPSLATE_TILES_STEP = getSound("block.deepslate_tiles.step"); + Sound BLOCK_DISPENSER_DISPENSE = getSound("block.dispenser.dispense"); + Sound BLOCK_DISPENSER_FAIL = getSound("block.dispenser.fail"); + Sound BLOCK_DISPENSER_LAUNCH = getSound("block.dispenser.launch"); + Sound BLOCK_DRIPSTONE_BLOCK_BREAK = getSound("block.dripstone_block.break"); + Sound BLOCK_DRIPSTONE_BLOCK_FALL = getSound("block.dripstone_block.fall"); + Sound BLOCK_DRIPSTONE_BLOCK_HIT = getSound("block.dripstone_block.hit"); + Sound BLOCK_DRIPSTONE_BLOCK_PLACE = getSound("block.dripstone_block.place"); + Sound BLOCK_DRIPSTONE_BLOCK_STEP = getSound("block.dripstone_block.step"); + Sound BLOCK_ENCHANTMENT_TABLE_USE = getSound("block.enchantment_table.use"); - Sound BLOCK_ENDER_CHEST_CLOSE = getSound("block.ender_chest.close"); - Sound BLOCK_ENDER_CHEST_OPEN = getSound("block.ender_chest.open"); + Sound BLOCK_END_GATEWAY_SPAWN = getSound("block.end_gateway.spawn"); - Sound BLOCK_END_PORTAL_FRAME_FILL = getSound("block.end_portal_frame.fill"); + Sound BLOCK_END_PORTAL_SPAWN = getSound("block.end_portal.spawn"); + + Sound BLOCK_END_PORTAL_FRAME_FILL = getSound("block.end_portal_frame.fill"); + + Sound BLOCK_ENDER_CHEST_CLOSE = getSound("block.ender_chest.close"); + + Sound BLOCK_ENDER_CHEST_OPEN = getSound("block.ender_chest.open"); + Sound BLOCK_EYEBLOSSOM_CLOSE = getSound("block.eyeblossom.close"); + Sound BLOCK_EYEBLOSSOM_CLOSE_LONG = getSound("block.eyeblossom.close_long"); + Sound BLOCK_EYEBLOSSOM_IDLE = getSound("block.eyeblossom.idle"); + Sound BLOCK_EYEBLOSSOM_OPEN = getSound("block.eyeblossom.open"); + Sound BLOCK_EYEBLOSSOM_OPEN_LONG = getSound("block.eyeblossom.open_long"); + Sound BLOCK_FENCE_GATE_CLOSE = getSound("block.fence_gate.close"); + Sound BLOCK_FENCE_GATE_OPEN = getSound("block.fence_gate.open"); + Sound BLOCK_FIRE_AMBIENT = getSound("block.fire.ambient"); + Sound BLOCK_FIRE_EXTINGUISH = getSound("block.fire.extinguish"); + Sound BLOCK_FLOWERING_AZALEA_BREAK = getSound("block.flowering_azalea.break"); + Sound BLOCK_FLOWERING_AZALEA_FALL = getSound("block.flowering_azalea.fall"); + Sound BLOCK_FLOWERING_AZALEA_HIT = getSound("block.flowering_azalea.hit"); + Sound BLOCK_FLOWERING_AZALEA_PLACE = getSound("block.flowering_azalea.place"); + Sound BLOCK_FLOWERING_AZALEA_STEP = getSound("block.flowering_azalea.step"); + Sound BLOCK_FROGLIGHT_BREAK = getSound("block.froglight.break"); + Sound BLOCK_FROGLIGHT_FALL = getSound("block.froglight.fall"); + Sound BLOCK_FROGLIGHT_HIT = getSound("block.froglight.hit"); + Sound BLOCK_FROGLIGHT_PLACE = getSound("block.froglight.place"); + Sound BLOCK_FROGLIGHT_STEP = getSound("block.froglight.step"); + Sound BLOCK_FROGSPAWN_BREAK = getSound("block.frogspawn.break"); + Sound BLOCK_FROGSPAWN_FALL = getSound("block.frogspawn.fall"); + Sound BLOCK_FROGSPAWN_HATCH = getSound("block.frogspawn.hatch"); + Sound BLOCK_FROGSPAWN_HIT = getSound("block.frogspawn.hit"); + Sound BLOCK_FROGSPAWN_PLACE = getSound("block.frogspawn.place"); + Sound BLOCK_FROGSPAWN_STEP = getSound("block.frogspawn.step"); + Sound BLOCK_FUNGUS_BREAK = getSound("block.fungus.break"); + Sound BLOCK_FUNGUS_FALL = getSound("block.fungus.fall"); + Sound BLOCK_FUNGUS_HIT = getSound("block.fungus.hit"); + Sound BLOCK_FUNGUS_PLACE = getSound("block.fungus.place"); + Sound BLOCK_FUNGUS_STEP = getSound("block.fungus.step"); + Sound BLOCK_FURNACE_FIRE_CRACKLE = getSound("block.furnace.fire_crackle"); + Sound BLOCK_GILDED_BLACKSTONE_BREAK = getSound("block.gilded_blackstone.break"); + Sound BLOCK_GILDED_BLACKSTONE_FALL = getSound("block.gilded_blackstone.fall"); + Sound BLOCK_GILDED_BLACKSTONE_HIT = getSound("block.gilded_blackstone.hit"); + Sound BLOCK_GILDED_BLACKSTONE_PLACE = getSound("block.gilded_blackstone.place"); + Sound BLOCK_GILDED_BLACKSTONE_STEP = getSound("block.gilded_blackstone.step"); + Sound BLOCK_GLASS_BREAK = getSound("block.glass.break"); + Sound BLOCK_GLASS_FALL = getSound("block.glass.fall"); + Sound BLOCK_GLASS_HIT = getSound("block.glass.hit"); + Sound BLOCK_GLASS_PLACE = getSound("block.glass.place"); + Sound BLOCK_GLASS_STEP = getSound("block.glass.step"); + Sound BLOCK_GRASS_BREAK = getSound("block.grass.break"); + Sound BLOCK_GRASS_FALL = getSound("block.grass.fall"); + Sound BLOCK_GRASS_HIT = getSound("block.grass.hit"); + Sound BLOCK_GRASS_PLACE = getSound("block.grass.place"); + Sound BLOCK_GRASS_STEP = getSound("block.grass.step"); + Sound BLOCK_GRAVEL_BREAK = getSound("block.gravel.break"); + Sound BLOCK_GRAVEL_FALL = getSound("block.gravel.fall"); + Sound BLOCK_GRAVEL_HIT = getSound("block.gravel.hit"); + Sound BLOCK_GRAVEL_PLACE = getSound("block.gravel.place"); + Sound BLOCK_GRAVEL_STEP = getSound("block.gravel.step"); + Sound BLOCK_GRINDSTONE_USE = getSound("block.grindstone.use"); + Sound BLOCK_GROWING_PLANT_CROP = getSound("block.growing_plant.crop"); + Sound BLOCK_HANGING_ROOTS_BREAK = getSound("block.hanging_roots.break"); + Sound BLOCK_HANGING_ROOTS_FALL = getSound("block.hanging_roots.fall"); + Sound BLOCK_HANGING_ROOTS_HIT = getSound("block.hanging_roots.hit"); + Sound BLOCK_HANGING_ROOTS_PLACE = getSound("block.hanging_roots.place"); + Sound BLOCK_HANGING_ROOTS_STEP = getSound("block.hanging_roots.step"); + Sound BLOCK_HANGING_SIGN_BREAK = getSound("block.hanging_sign.break"); + Sound BLOCK_HANGING_SIGN_FALL = getSound("block.hanging_sign.fall"); + Sound BLOCK_HANGING_SIGN_HIT = getSound("block.hanging_sign.hit"); + Sound BLOCK_HANGING_SIGN_PLACE = getSound("block.hanging_sign.place"); + Sound BLOCK_HANGING_SIGN_STEP = getSound("block.hanging_sign.step"); + Sound BLOCK_HANGING_SIGN_WAXED_INTERACT_FAIL = getSound("block.hanging_sign.waxed_interact_fail"); + Sound BLOCK_HEAVY_CORE_BREAK = getSound("block.heavy_core.break"); + Sound BLOCK_HEAVY_CORE_FALL = getSound("block.heavy_core.fall"); + Sound BLOCK_HEAVY_CORE_HIT = getSound("block.heavy_core.hit"); + Sound BLOCK_HEAVY_CORE_PLACE = getSound("block.heavy_core.place"); + Sound BLOCK_HEAVY_CORE_STEP = getSound("block.heavy_core.step"); + Sound BLOCK_HONEY_BLOCK_BREAK = getSound("block.honey_block.break"); + Sound BLOCK_HONEY_BLOCK_FALL = getSound("block.honey_block.fall"); + Sound BLOCK_HONEY_BLOCK_HIT = getSound("block.honey_block.hit"); + Sound BLOCK_HONEY_BLOCK_PLACE = getSound("block.honey_block.place"); + Sound BLOCK_HONEY_BLOCK_SLIDE = getSound("block.honey_block.slide"); + Sound BLOCK_HONEY_BLOCK_STEP = getSound("block.honey_block.step"); + Sound BLOCK_IRON_DOOR_CLOSE = getSound("block.iron_door.close"); + Sound BLOCK_IRON_DOOR_OPEN = getSound("block.iron_door.open"); + Sound BLOCK_IRON_TRAPDOOR_CLOSE = getSound("block.iron_trapdoor.close"); + Sound BLOCK_IRON_TRAPDOOR_OPEN = getSound("block.iron_trapdoor.open"); + Sound BLOCK_LADDER_BREAK = getSound("block.ladder.break"); + Sound BLOCK_LADDER_FALL = getSound("block.ladder.fall"); + Sound BLOCK_LADDER_HIT = getSound("block.ladder.hit"); + Sound BLOCK_LADDER_PLACE = getSound("block.ladder.place"); + Sound BLOCK_LADDER_STEP = getSound("block.ladder.step"); + Sound BLOCK_LANTERN_BREAK = getSound("block.lantern.break"); + Sound BLOCK_LANTERN_FALL = getSound("block.lantern.fall"); + Sound BLOCK_LANTERN_HIT = getSound("block.lantern.hit"); + Sound BLOCK_LANTERN_PLACE = getSound("block.lantern.place"); + Sound BLOCK_LANTERN_STEP = getSound("block.lantern.step"); + Sound BLOCK_LARGE_AMETHYST_BUD_BREAK = getSound("block.large_amethyst_bud.break"); + Sound BLOCK_LARGE_AMETHYST_BUD_PLACE = getSound("block.large_amethyst_bud.place"); + Sound BLOCK_LAVA_AMBIENT = getSound("block.lava.ambient"); + Sound BLOCK_LAVA_EXTINGUISH = getSound("block.lava.extinguish"); + Sound BLOCK_LAVA_POP = getSound("block.lava.pop"); + Sound BLOCK_LEVER_CLICK = getSound("block.lever.click"); + Sound BLOCK_LILY_PAD_PLACE = getSound("block.lily_pad.place"); + Sound BLOCK_LODESTONE_BREAK = getSound("block.lodestone.break"); + Sound BLOCK_LODESTONE_FALL = getSound("block.lodestone.fall"); + Sound BLOCK_LODESTONE_HIT = getSound("block.lodestone.hit"); + Sound BLOCK_LODESTONE_PLACE = getSound("block.lodestone.place"); + Sound BLOCK_LODESTONE_STEP = getSound("block.lodestone.step"); + Sound BLOCK_MANGROVE_ROOTS_BREAK = getSound("block.mangrove_roots.break"); + Sound BLOCK_MANGROVE_ROOTS_FALL = getSound("block.mangrove_roots.fall"); + Sound BLOCK_MANGROVE_ROOTS_HIT = getSound("block.mangrove_roots.hit"); + Sound BLOCK_MANGROVE_ROOTS_PLACE = getSound("block.mangrove_roots.place"); + Sound BLOCK_MANGROVE_ROOTS_STEP = getSound("block.mangrove_roots.step"); + Sound BLOCK_MEDIUM_AMETHYST_BUD_BREAK = getSound("block.medium_amethyst_bud.break"); + Sound BLOCK_MEDIUM_AMETHYST_BUD_PLACE = getSound("block.medium_amethyst_bud.place"); + Sound BLOCK_METAL_BREAK = getSound("block.metal.break"); + Sound BLOCK_METAL_FALL = getSound("block.metal.fall"); + Sound BLOCK_METAL_HIT = getSound("block.metal.hit"); + Sound BLOCK_METAL_PLACE = getSound("block.metal.place"); - Sound BLOCK_METAL_PRESSURE_PLATE_CLICK_OFF = getSound("block.metal_pressure_plate.click_off"); - Sound BLOCK_METAL_PRESSURE_PLATE_CLICK_ON = getSound("block.metal_pressure_plate.click_on"); + Sound BLOCK_METAL_STEP = getSound("block.metal.step"); + + Sound BLOCK_METAL_PRESSURE_PLATE_CLICK_OFF = getSound("block.metal_pressure_plate.click_off"); + + Sound BLOCK_METAL_PRESSURE_PLATE_CLICK_ON = getSound("block.metal_pressure_plate.click_on"); + Sound BLOCK_MOSS_BREAK = getSound("block.moss.break"); - Sound BLOCK_MOSS_CARPET_BREAK = getSound("block.moss_carpet.break"); - Sound BLOCK_MOSS_CARPET_FALL = getSound("block.moss_carpet.fall"); - Sound BLOCK_MOSS_CARPET_HIT = getSound("block.moss_carpet.hit"); - Sound BLOCK_MOSS_CARPET_PLACE = getSound("block.moss_carpet.place"); - Sound BLOCK_MOSS_CARPET_STEP = getSound("block.moss_carpet.step"); + Sound BLOCK_MOSS_FALL = getSound("block.moss.fall"); + Sound BLOCK_MOSS_HIT = getSound("block.moss.hit"); + Sound BLOCK_MOSS_PLACE = getSound("block.moss.place"); + Sound BLOCK_MOSS_STEP = getSound("block.moss.step"); - Sound BLOCK_MUDDY_MANGROVE_ROOTS_BREAK = getSound("block.muddy_mangrove_roots.break"); - Sound BLOCK_MUDDY_MANGROVE_ROOTS_FALL = getSound("block.muddy_mangrove_roots.fall"); - Sound BLOCK_MUDDY_MANGROVE_ROOTS_HIT = getSound("block.muddy_mangrove_roots.hit"); - Sound BLOCK_MUDDY_MANGROVE_ROOTS_PLACE = getSound("block.muddy_mangrove_roots.place"); - Sound BLOCK_MUDDY_MANGROVE_ROOTS_STEP = getSound("block.muddy_mangrove_roots.step"); + + Sound BLOCK_MOSS_CARPET_BREAK = getSound("block.moss_carpet.break"); + + Sound BLOCK_MOSS_CARPET_FALL = getSound("block.moss_carpet.fall"); + + Sound BLOCK_MOSS_CARPET_HIT = getSound("block.moss_carpet.hit"); + + Sound BLOCK_MOSS_CARPET_PLACE = getSound("block.moss_carpet.place"); + + Sound BLOCK_MOSS_CARPET_STEP = getSound("block.moss_carpet.step"); + Sound BLOCK_MUD_BREAK = getSound("block.mud.break"); - Sound BLOCK_MUD_BRICKS_BREAK = getSound("block.mud_bricks.break"); - Sound BLOCK_MUD_BRICKS_FALL = getSound("block.mud_bricks.fall"); - Sound BLOCK_MUD_BRICKS_HIT = getSound("block.mud_bricks.hit"); - Sound BLOCK_MUD_BRICKS_PLACE = getSound("block.mud_bricks.place"); - Sound BLOCK_MUD_BRICKS_STEP = getSound("block.mud_bricks.step"); + Sound BLOCK_MUD_FALL = getSound("block.mud.fall"); + Sound BLOCK_MUD_HIT = getSound("block.mud.hit"); + Sound BLOCK_MUD_PLACE = getSound("block.mud.place"); + Sound BLOCK_MUD_STEP = getSound("block.mud.step"); - Sound BLOCK_NETHERITE_BLOCK_BREAK = getSound("block.netherite_block.break"); - Sound BLOCK_NETHERITE_BLOCK_FALL = getSound("block.netherite_block.fall"); - Sound BLOCK_NETHERITE_BLOCK_HIT = getSound("block.netherite_block.hit"); - Sound BLOCK_NETHERITE_BLOCK_PLACE = getSound("block.netherite_block.place"); - Sound BLOCK_NETHERITE_BLOCK_STEP = getSound("block.netherite_block.step"); - Sound BLOCK_NETHERRACK_BREAK = getSound("block.netherrack.break"); - Sound BLOCK_NETHERRACK_FALL = getSound("block.netherrack.fall"); - Sound BLOCK_NETHERRACK_HIT = getSound("block.netherrack.hit"); - Sound BLOCK_NETHERRACK_PLACE = getSound("block.netherrack.place"); - Sound BLOCK_NETHERRACK_STEP = getSound("block.netherrack.step"); + + Sound BLOCK_MUD_BRICKS_BREAK = getSound("block.mud_bricks.break"); + + Sound BLOCK_MUD_BRICKS_FALL = getSound("block.mud_bricks.fall"); + + Sound BLOCK_MUD_BRICKS_HIT = getSound("block.mud_bricks.hit"); + + Sound BLOCK_MUD_BRICKS_PLACE = getSound("block.mud_bricks.place"); + + Sound BLOCK_MUD_BRICKS_STEP = getSound("block.mud_bricks.step"); + + Sound BLOCK_MUDDY_MANGROVE_ROOTS_BREAK = getSound("block.muddy_mangrove_roots.break"); + + Sound BLOCK_MUDDY_MANGROVE_ROOTS_FALL = getSound("block.muddy_mangrove_roots.fall"); + + Sound BLOCK_MUDDY_MANGROVE_ROOTS_HIT = getSound("block.muddy_mangrove_roots.hit"); + + Sound BLOCK_MUDDY_MANGROVE_ROOTS_PLACE = getSound("block.muddy_mangrove_roots.place"); + + Sound BLOCK_MUDDY_MANGROVE_ROOTS_STEP = getSound("block.muddy_mangrove_roots.step"); + Sound BLOCK_NETHER_BRICKS_BREAK = getSound("block.nether_bricks.break"); + Sound BLOCK_NETHER_BRICKS_FALL = getSound("block.nether_bricks.fall"); + Sound BLOCK_NETHER_BRICKS_HIT = getSound("block.nether_bricks.hit"); + Sound BLOCK_NETHER_BRICKS_PLACE = getSound("block.nether_bricks.place"); + Sound BLOCK_NETHER_BRICKS_STEP = getSound("block.nether_bricks.step"); + Sound BLOCK_NETHER_GOLD_ORE_BREAK = getSound("block.nether_gold_ore.break"); + Sound BLOCK_NETHER_GOLD_ORE_FALL = getSound("block.nether_gold_ore.fall"); + Sound BLOCK_NETHER_GOLD_ORE_HIT = getSound("block.nether_gold_ore.hit"); + Sound BLOCK_NETHER_GOLD_ORE_PLACE = getSound("block.nether_gold_ore.place"); + Sound BLOCK_NETHER_GOLD_ORE_STEP = getSound("block.nether_gold_ore.step"); + Sound BLOCK_NETHER_ORE_BREAK = getSound("block.nether_ore.break"); + Sound BLOCK_NETHER_ORE_FALL = getSound("block.nether_ore.fall"); + Sound BLOCK_NETHER_ORE_HIT = getSound("block.nether_ore.hit"); + Sound BLOCK_NETHER_ORE_PLACE = getSound("block.nether_ore.place"); + Sound BLOCK_NETHER_ORE_STEP = getSound("block.nether_ore.step"); + Sound BLOCK_NETHER_SPROUTS_BREAK = getSound("block.nether_sprouts.break"); + Sound BLOCK_NETHER_SPROUTS_FALL = getSound("block.nether_sprouts.fall"); + Sound BLOCK_NETHER_SPROUTS_HIT = getSound("block.nether_sprouts.hit"); + Sound BLOCK_NETHER_SPROUTS_PLACE = getSound("block.nether_sprouts.place"); + Sound BLOCK_NETHER_SPROUTS_STEP = getSound("block.nether_sprouts.step"); + Sound BLOCK_NETHER_WART_BREAK = getSound("block.nether_wart.break"); + Sound BLOCK_NETHER_WOOD_BREAK = getSound("block.nether_wood.break"); - Sound BLOCK_NETHER_WOOD_BUTTON_CLICK_OFF = getSound("block.nether_wood_button.click_off"); - Sound BLOCK_NETHER_WOOD_BUTTON_CLICK_ON = getSound("block.nether_wood_button.click_on"); - Sound BLOCK_NETHER_WOOD_DOOR_CLOSE = getSound("block.nether_wood_door.close"); - Sound BLOCK_NETHER_WOOD_DOOR_OPEN = getSound("block.nether_wood_door.open"); + Sound BLOCK_NETHER_WOOD_FALL = getSound("block.nether_wood.fall"); - Sound BLOCK_NETHER_WOOD_FENCE_GATE_CLOSE = getSound("block.nether_wood_fence_gate.close"); - Sound BLOCK_NETHER_WOOD_FENCE_GATE_OPEN = getSound("block.nether_wood_fence_gate.open"); - Sound BLOCK_NETHER_WOOD_HANGING_SIGN_BREAK = getSound("block.nether_wood_hanging_sign.break"); - Sound BLOCK_NETHER_WOOD_HANGING_SIGN_FALL = getSound("block.nether_wood_hanging_sign.fall"); - Sound BLOCK_NETHER_WOOD_HANGING_SIGN_HIT = getSound("block.nether_wood_hanging_sign.hit"); - Sound BLOCK_NETHER_WOOD_HANGING_SIGN_PLACE = getSound("block.nether_wood_hanging_sign.place"); - Sound BLOCK_NETHER_WOOD_HANGING_SIGN_STEP = getSound("block.nether_wood_hanging_sign.step"); + Sound BLOCK_NETHER_WOOD_HIT = getSound("block.nether_wood.hit"); + Sound BLOCK_NETHER_WOOD_PLACE = getSound("block.nether_wood.place"); - Sound BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.nether_wood_pressure_plate.click_off"); - Sound BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.nether_wood_pressure_plate.click_on"); + Sound BLOCK_NETHER_WOOD_STEP = getSound("block.nether_wood.step"); + + Sound BLOCK_NETHER_WOOD_BUTTON_CLICK_OFF = getSound("block.nether_wood_button.click_off"); + + Sound BLOCK_NETHER_WOOD_BUTTON_CLICK_ON = getSound("block.nether_wood_button.click_on"); + + Sound BLOCK_NETHER_WOOD_DOOR_CLOSE = getSound("block.nether_wood_door.close"); + + Sound BLOCK_NETHER_WOOD_DOOR_OPEN = getSound("block.nether_wood_door.open"); + + Sound BLOCK_NETHER_WOOD_FENCE_GATE_CLOSE = getSound("block.nether_wood_fence_gate.close"); + + Sound BLOCK_NETHER_WOOD_FENCE_GATE_OPEN = getSound("block.nether_wood_fence_gate.open"); + + Sound BLOCK_NETHER_WOOD_HANGING_SIGN_BREAK = getSound("block.nether_wood_hanging_sign.break"); + + Sound BLOCK_NETHER_WOOD_HANGING_SIGN_FALL = getSound("block.nether_wood_hanging_sign.fall"); + + Sound BLOCK_NETHER_WOOD_HANGING_SIGN_HIT = getSound("block.nether_wood_hanging_sign.hit"); + + Sound BLOCK_NETHER_WOOD_HANGING_SIGN_PLACE = getSound("block.nether_wood_hanging_sign.place"); + + Sound BLOCK_NETHER_WOOD_HANGING_SIGN_STEP = getSound("block.nether_wood_hanging_sign.step"); + + Sound BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_OFF = getSound("block.nether_wood_pressure_plate.click_off"); + + Sound BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_ON = getSound("block.nether_wood_pressure_plate.click_on"); + Sound BLOCK_NETHER_WOOD_TRAPDOOR_CLOSE = getSound("block.nether_wood_trapdoor.close"); + Sound BLOCK_NETHER_WOOD_TRAPDOOR_OPEN = getSound("block.nether_wood_trapdoor.open"); + + Sound BLOCK_NETHERITE_BLOCK_BREAK = getSound("block.netherite_block.break"); + + Sound BLOCK_NETHERITE_BLOCK_FALL = getSound("block.netherite_block.fall"); + + Sound BLOCK_NETHERITE_BLOCK_HIT = getSound("block.netherite_block.hit"); + + Sound BLOCK_NETHERITE_BLOCK_PLACE = getSound("block.netherite_block.place"); + + Sound BLOCK_NETHERITE_BLOCK_STEP = getSound("block.netherite_block.step"); + + Sound BLOCK_NETHERRACK_BREAK = getSound("block.netherrack.break"); + + Sound BLOCK_NETHERRACK_FALL = getSound("block.netherrack.fall"); + + Sound BLOCK_NETHERRACK_HIT = getSound("block.netherrack.hit"); + + Sound BLOCK_NETHERRACK_PLACE = getSound("block.netherrack.place"); + + Sound BLOCK_NETHERRACK_STEP = getSound("block.netherrack.step"); + Sound BLOCK_NOTE_BLOCK_BANJO = getSound("block.note_block.banjo"); + Sound BLOCK_NOTE_BLOCK_BASEDRUM = getSound("block.note_block.basedrum"); + Sound BLOCK_NOTE_BLOCK_BASS = getSound("block.note_block.bass"); + Sound BLOCK_NOTE_BLOCK_BELL = getSound("block.note_block.bell"); + Sound BLOCK_NOTE_BLOCK_BIT = getSound("block.note_block.bit"); + Sound BLOCK_NOTE_BLOCK_CHIME = getSound("block.note_block.chime"); + Sound BLOCK_NOTE_BLOCK_COW_BELL = getSound("block.note_block.cow_bell"); + Sound BLOCK_NOTE_BLOCK_DIDGERIDOO = getSound("block.note_block.didgeridoo"); + Sound BLOCK_NOTE_BLOCK_FLUTE = getSound("block.note_block.flute"); + Sound BLOCK_NOTE_BLOCK_GUITAR = getSound("block.note_block.guitar"); + Sound BLOCK_NOTE_BLOCK_HARP = getSound("block.note_block.harp"); + Sound BLOCK_NOTE_BLOCK_HAT = getSound("block.note_block.hat"); + Sound BLOCK_NOTE_BLOCK_IMITATE_CREEPER = getSound("block.note_block.imitate.creeper"); + Sound BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON = getSound("block.note_block.imitate.ender_dragon"); + Sound BLOCK_NOTE_BLOCK_IMITATE_PIGLIN = getSound("block.note_block.imitate.piglin"); + Sound BLOCK_NOTE_BLOCK_IMITATE_SKELETON = getSound("block.note_block.imitate.skeleton"); + Sound BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON = getSound("block.note_block.imitate.wither_skeleton"); + Sound BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE = getSound("block.note_block.imitate.zombie"); + Sound BLOCK_NOTE_BLOCK_IRON_XYLOPHONE = getSound("block.note_block.iron_xylophone"); + Sound BLOCK_NOTE_BLOCK_PLING = getSound("block.note_block.pling"); + Sound BLOCK_NOTE_BLOCK_SNARE = getSound("block.note_block.snare"); + Sound BLOCK_NOTE_BLOCK_XYLOPHONE = getSound("block.note_block.xylophone"); + Sound BLOCK_NYLIUM_BREAK = getSound("block.nylium.break"); + Sound BLOCK_NYLIUM_FALL = getSound("block.nylium.fall"); + Sound BLOCK_NYLIUM_HIT = getSound("block.nylium.hit"); + Sound BLOCK_NYLIUM_PLACE = getSound("block.nylium.place"); + Sound BLOCK_NYLIUM_STEP = getSound("block.nylium.step"); + Sound BLOCK_PACKED_MUD_BREAK = getSound("block.packed_mud.break"); + Sound BLOCK_PACKED_MUD_FALL = getSound("block.packed_mud.fall"); + Sound BLOCK_PACKED_MUD_HIT = getSound("block.packed_mud.hit"); + Sound BLOCK_PACKED_MUD_PLACE = getSound("block.packed_mud.place"); + Sound BLOCK_PACKED_MUD_STEP = getSound("block.packed_mud.step"); + Sound BLOCK_PALE_HANGING_MOSS_IDLE = getSound("block.pale_hanging_moss.idle"); + Sound BLOCK_PINK_PETALS_BREAK = getSound("block.pink_petals.break"); + Sound BLOCK_PINK_PETALS_FALL = getSound("block.pink_petals.fall"); + Sound BLOCK_PINK_PETALS_HIT = getSound("block.pink_petals.hit"); + Sound BLOCK_PINK_PETALS_PLACE = getSound("block.pink_petals.place"); + Sound BLOCK_PINK_PETALS_STEP = getSound("block.pink_petals.step"); + Sound BLOCK_PISTON_CONTRACT = getSound("block.piston.contract"); + Sound BLOCK_PISTON_EXTEND = getSound("block.piston.extend"); + Sound BLOCK_POINTED_DRIPSTONE_BREAK = getSound("block.pointed_dripstone.break"); + Sound BLOCK_POINTED_DRIPSTONE_DRIP_LAVA = getSound("block.pointed_dripstone.drip_lava"); + Sound BLOCK_POINTED_DRIPSTONE_DRIP_LAVA_INTO_CAULDRON = getSound("block.pointed_dripstone.drip_lava_into_cauldron"); + Sound BLOCK_POINTED_DRIPSTONE_DRIP_WATER = getSound("block.pointed_dripstone.drip_water"); + Sound BLOCK_POINTED_DRIPSTONE_DRIP_WATER_INTO_CAULDRON = getSound("block.pointed_dripstone.drip_water_into_cauldron"); + Sound BLOCK_POINTED_DRIPSTONE_FALL = getSound("block.pointed_dripstone.fall"); + Sound BLOCK_POINTED_DRIPSTONE_HIT = getSound("block.pointed_dripstone.hit"); + Sound BLOCK_POINTED_DRIPSTONE_LAND = getSound("block.pointed_dripstone.land"); + Sound BLOCK_POINTED_DRIPSTONE_PLACE = getSound("block.pointed_dripstone.place"); + Sound BLOCK_POINTED_DRIPSTONE_STEP = getSound("block.pointed_dripstone.step"); + Sound BLOCK_POLISHED_DEEPSLATE_BREAK = getSound("block.polished_deepslate.break"); + Sound BLOCK_POLISHED_DEEPSLATE_FALL = getSound("block.polished_deepslate.fall"); + Sound BLOCK_POLISHED_DEEPSLATE_HIT = getSound("block.polished_deepslate.hit"); + Sound BLOCK_POLISHED_DEEPSLATE_PLACE = getSound("block.polished_deepslate.place"); + Sound BLOCK_POLISHED_DEEPSLATE_STEP = getSound("block.polished_deepslate.step"); + Sound BLOCK_POLISHED_TUFF_BREAK = getSound("block.polished_tuff.break"); + Sound BLOCK_POLISHED_TUFF_FALL = getSound("block.polished_tuff.fall"); + Sound BLOCK_POLISHED_TUFF_HIT = getSound("block.polished_tuff.hit"); + Sound BLOCK_POLISHED_TUFF_PLACE = getSound("block.polished_tuff.place"); + Sound BLOCK_POLISHED_TUFF_STEP = getSound("block.polished_tuff.step"); + Sound BLOCK_PORTAL_AMBIENT = getSound("block.portal.ambient"); + Sound BLOCK_PORTAL_TRAVEL = getSound("block.portal.travel"); + Sound BLOCK_PORTAL_TRIGGER = getSound("block.portal.trigger"); + Sound BLOCK_POWDER_SNOW_BREAK = getSound("block.powder_snow.break"); + Sound BLOCK_POWDER_SNOW_FALL = getSound("block.powder_snow.fall"); + Sound BLOCK_POWDER_SNOW_HIT = getSound("block.powder_snow.hit"); + Sound BLOCK_POWDER_SNOW_PLACE = getSound("block.powder_snow.place"); + Sound BLOCK_POWDER_SNOW_STEP = getSound("block.powder_snow.step"); + Sound BLOCK_PUMPKIN_CARVE = getSound("block.pumpkin.carve"); + Sound BLOCK_REDSTONE_TORCH_BURNOUT = getSound("block.redstone_torch.burnout"); + Sound BLOCK_RESIN_BREAK = getSound("block.resin.break"); - Sound BLOCK_RESIN_BRICKS_BREAK = getSound("block.resin_bricks.break"); - Sound BLOCK_RESIN_BRICKS_FALL = getSound("block.resin_bricks.fall"); - Sound BLOCK_RESIN_BRICKS_HIT = getSound("block.resin_bricks.hit"); - Sound BLOCK_RESIN_BRICKS_PLACE = getSound("block.resin_bricks.place"); - Sound BLOCK_RESIN_BRICKS_STEP = getSound("block.resin_bricks.step"); + Sound BLOCK_RESIN_FALL = getSound("block.resin.fall"); + Sound BLOCK_RESIN_PLACE = getSound("block.resin.place"); + Sound BLOCK_RESIN_STEP = getSound("block.resin.step"); + + Sound BLOCK_RESIN_BRICKS_BREAK = getSound("block.resin_bricks.break"); + + Sound BLOCK_RESIN_BRICKS_FALL = getSound("block.resin_bricks.fall"); + + Sound BLOCK_RESIN_BRICKS_HIT = getSound("block.resin_bricks.hit"); + + Sound BLOCK_RESIN_BRICKS_PLACE = getSound("block.resin_bricks.place"); + + Sound BLOCK_RESIN_BRICKS_STEP = getSound("block.resin_bricks.step"); + Sound BLOCK_RESPAWN_ANCHOR_AMBIENT = getSound("block.respawn_anchor.ambient"); + Sound BLOCK_RESPAWN_ANCHOR_CHARGE = getSound("block.respawn_anchor.charge"); + Sound BLOCK_RESPAWN_ANCHOR_DEPLETE = getSound("block.respawn_anchor.deplete"); + Sound BLOCK_RESPAWN_ANCHOR_SET_SPAWN = getSound("block.respawn_anchor.set_spawn"); + Sound BLOCK_ROOTED_DIRT_BREAK = getSound("block.rooted_dirt.break"); + Sound BLOCK_ROOTED_DIRT_FALL = getSound("block.rooted_dirt.fall"); + Sound BLOCK_ROOTED_DIRT_HIT = getSound("block.rooted_dirt.hit"); + Sound BLOCK_ROOTED_DIRT_PLACE = getSound("block.rooted_dirt.place"); + Sound BLOCK_ROOTED_DIRT_STEP = getSound("block.rooted_dirt.step"); + Sound BLOCK_ROOTS_BREAK = getSound("block.roots.break"); + Sound BLOCK_ROOTS_FALL = getSound("block.roots.fall"); + Sound BLOCK_ROOTS_HIT = getSound("block.roots.hit"); + Sound BLOCK_ROOTS_PLACE = getSound("block.roots.place"); + Sound BLOCK_ROOTS_STEP = getSound("block.roots.step"); + Sound BLOCK_SAND_BREAK = getSound("block.sand.break"); + Sound BLOCK_SAND_FALL = getSound("block.sand.fall"); + Sound BLOCK_SAND_HIT = getSound("block.sand.hit"); + Sound BLOCK_SAND_PLACE = getSound("block.sand.place"); + Sound BLOCK_SAND_STEP = getSound("block.sand.step"); + Sound BLOCK_SCAFFOLDING_BREAK = getSound("block.scaffolding.break"); + Sound BLOCK_SCAFFOLDING_FALL = getSound("block.scaffolding.fall"); + Sound BLOCK_SCAFFOLDING_HIT = getSound("block.scaffolding.hit"); + Sound BLOCK_SCAFFOLDING_PLACE = getSound("block.scaffolding.place"); + Sound BLOCK_SCAFFOLDING_STEP = getSound("block.scaffolding.step"); + Sound BLOCK_SCULK_BREAK = getSound("block.sculk.break"); - Sound BLOCK_SCULK_CATALYST_BLOOM = getSound("block.sculk_catalyst.bloom"); - Sound BLOCK_SCULK_CATALYST_BREAK = getSound("block.sculk_catalyst.break"); - Sound BLOCK_SCULK_CATALYST_FALL = getSound("block.sculk_catalyst.fall"); - Sound BLOCK_SCULK_CATALYST_HIT = getSound("block.sculk_catalyst.hit"); - Sound BLOCK_SCULK_CATALYST_PLACE = getSound("block.sculk_catalyst.place"); - Sound BLOCK_SCULK_CATALYST_STEP = getSound("block.sculk_catalyst.step"); + Sound BLOCK_SCULK_CHARGE = getSound("block.sculk.charge"); + Sound BLOCK_SCULK_FALL = getSound("block.sculk.fall"); + Sound BLOCK_SCULK_HIT = getSound("block.sculk.hit"); + Sound BLOCK_SCULK_PLACE = getSound("block.sculk.place"); - Sound BLOCK_SCULK_SENSOR_BREAK = getSound("block.sculk_sensor.break"); - Sound BLOCK_SCULK_SENSOR_CLICKING = getSound("block.sculk_sensor.clicking"); - Sound BLOCK_SCULK_SENSOR_CLICKING_STOP = getSound("block.sculk_sensor.clicking_stop"); - Sound BLOCK_SCULK_SENSOR_FALL = getSound("block.sculk_sensor.fall"); - Sound BLOCK_SCULK_SENSOR_HIT = getSound("block.sculk_sensor.hit"); - Sound BLOCK_SCULK_SENSOR_PLACE = getSound("block.sculk_sensor.place"); - Sound BLOCK_SCULK_SENSOR_STEP = getSound("block.sculk_sensor.step"); - Sound BLOCK_SCULK_SHRIEKER_BREAK = getSound("block.sculk_shrieker.break"); - Sound BLOCK_SCULK_SHRIEKER_FALL = getSound("block.sculk_shrieker.fall"); - Sound BLOCK_SCULK_SHRIEKER_HIT = getSound("block.sculk_shrieker.hit"); - Sound BLOCK_SCULK_SHRIEKER_PLACE = getSound("block.sculk_shrieker.place"); - Sound BLOCK_SCULK_SHRIEKER_SHRIEK = getSound("block.sculk_shrieker.shriek"); - Sound BLOCK_SCULK_SHRIEKER_STEP = getSound("block.sculk_shrieker.step"); + Sound BLOCK_SCULK_SPREAD = getSound("block.sculk.spread"); + Sound BLOCK_SCULK_STEP = getSound("block.sculk.step"); + + Sound BLOCK_SCULK_CATALYST_BLOOM = getSound("block.sculk_catalyst.bloom"); + + Sound BLOCK_SCULK_CATALYST_BREAK = getSound("block.sculk_catalyst.break"); + + Sound BLOCK_SCULK_CATALYST_FALL = getSound("block.sculk_catalyst.fall"); + + Sound BLOCK_SCULK_CATALYST_HIT = getSound("block.sculk_catalyst.hit"); + + Sound BLOCK_SCULK_CATALYST_PLACE = getSound("block.sculk_catalyst.place"); + + Sound BLOCK_SCULK_CATALYST_STEP = getSound("block.sculk_catalyst.step"); + + Sound BLOCK_SCULK_SENSOR_BREAK = getSound("block.sculk_sensor.break"); + + Sound BLOCK_SCULK_SENSOR_CLICKING = getSound("block.sculk_sensor.clicking"); + + Sound BLOCK_SCULK_SENSOR_CLICKING_STOP = getSound("block.sculk_sensor.clicking_stop"); + + Sound BLOCK_SCULK_SENSOR_FALL = getSound("block.sculk_sensor.fall"); + + Sound BLOCK_SCULK_SENSOR_HIT = getSound("block.sculk_sensor.hit"); + + Sound BLOCK_SCULK_SENSOR_PLACE = getSound("block.sculk_sensor.place"); + + Sound BLOCK_SCULK_SENSOR_STEP = getSound("block.sculk_sensor.step"); + + Sound BLOCK_SCULK_SHRIEKER_BREAK = getSound("block.sculk_shrieker.break"); + + Sound BLOCK_SCULK_SHRIEKER_FALL = getSound("block.sculk_shrieker.fall"); + + Sound BLOCK_SCULK_SHRIEKER_HIT = getSound("block.sculk_shrieker.hit"); + + Sound BLOCK_SCULK_SHRIEKER_PLACE = getSound("block.sculk_shrieker.place"); + + Sound BLOCK_SCULK_SHRIEKER_SHRIEK = getSound("block.sculk_shrieker.shriek"); + + Sound BLOCK_SCULK_SHRIEKER_STEP = getSound("block.sculk_shrieker.step"); + Sound BLOCK_SCULK_VEIN_BREAK = getSound("block.sculk_vein.break"); + Sound BLOCK_SCULK_VEIN_FALL = getSound("block.sculk_vein.fall"); + Sound BLOCK_SCULK_VEIN_HIT = getSound("block.sculk_vein.hit"); + Sound BLOCK_SCULK_VEIN_PLACE = getSound("block.sculk_vein.place"); + Sound BLOCK_SCULK_VEIN_STEP = getSound("block.sculk_vein.step"); + Sound BLOCK_SHROOMLIGHT_BREAK = getSound("block.shroomlight.break"); + Sound BLOCK_SHROOMLIGHT_FALL = getSound("block.shroomlight.fall"); + Sound BLOCK_SHROOMLIGHT_HIT = getSound("block.shroomlight.hit"); + Sound BLOCK_SHROOMLIGHT_PLACE = getSound("block.shroomlight.place"); + Sound BLOCK_SHROOMLIGHT_STEP = getSound("block.shroomlight.step"); + Sound BLOCK_SHULKER_BOX_CLOSE = getSound("block.shulker_box.close"); + Sound BLOCK_SHULKER_BOX_OPEN = getSound("block.shulker_box.open"); + Sound BLOCK_SIGN_WAXED_INTERACT_FAIL = getSound("block.sign.waxed_interact_fail"); + Sound BLOCK_SLIME_BLOCK_BREAK = getSound("block.slime_block.break"); + Sound BLOCK_SLIME_BLOCK_FALL = getSound("block.slime_block.fall"); + Sound BLOCK_SLIME_BLOCK_HIT = getSound("block.slime_block.hit"); + Sound BLOCK_SLIME_BLOCK_PLACE = getSound("block.slime_block.place"); + Sound BLOCK_SLIME_BLOCK_STEP = getSound("block.slime_block.step"); + Sound BLOCK_SMALL_AMETHYST_BUD_BREAK = getSound("block.small_amethyst_bud.break"); + Sound BLOCK_SMALL_AMETHYST_BUD_PLACE = getSound("block.small_amethyst_bud.place"); + Sound BLOCK_SMALL_DRIPLEAF_BREAK = getSound("block.small_dripleaf.break"); + Sound BLOCK_SMALL_DRIPLEAF_FALL = getSound("block.small_dripleaf.fall"); + Sound BLOCK_SMALL_DRIPLEAF_HIT = getSound("block.small_dripleaf.hit"); + Sound BLOCK_SMALL_DRIPLEAF_PLACE = getSound("block.small_dripleaf.place"); + Sound BLOCK_SMALL_DRIPLEAF_STEP = getSound("block.small_dripleaf.step"); + Sound BLOCK_SMITHING_TABLE_USE = getSound("block.smithing_table.use"); + Sound BLOCK_SMOKER_SMOKE = getSound("block.smoker.smoke"); + Sound BLOCK_SNIFFER_EGG_CRACK = getSound("block.sniffer_egg.crack"); + Sound BLOCK_SNIFFER_EGG_HATCH = getSound("block.sniffer_egg.hatch"); + Sound BLOCK_SNIFFER_EGG_PLOP = getSound("block.sniffer_egg.plop"); + Sound BLOCK_SNOW_BREAK = getSound("block.snow.break"); + Sound BLOCK_SNOW_FALL = getSound("block.snow.fall"); + Sound BLOCK_SNOW_HIT = getSound("block.snow.hit"); + Sound BLOCK_SNOW_PLACE = getSound("block.snow.place"); + Sound BLOCK_SNOW_STEP = getSound("block.snow.step"); + Sound BLOCK_SOUL_SAND_BREAK = getSound("block.soul_sand.break"); + Sound BLOCK_SOUL_SAND_FALL = getSound("block.soul_sand.fall"); + Sound BLOCK_SOUL_SAND_HIT = getSound("block.soul_sand.hit"); + Sound BLOCK_SOUL_SAND_PLACE = getSound("block.soul_sand.place"); + Sound BLOCK_SOUL_SAND_STEP = getSound("block.soul_sand.step"); + Sound BLOCK_SOUL_SOIL_BREAK = getSound("block.soul_soil.break"); + Sound BLOCK_SOUL_SOIL_FALL = getSound("block.soul_soil.fall"); + Sound BLOCK_SOUL_SOIL_HIT = getSound("block.soul_soil.hit"); + Sound BLOCK_SOUL_SOIL_PLACE = getSound("block.soul_soil.place"); + Sound BLOCK_SOUL_SOIL_STEP = getSound("block.soul_soil.step"); + Sound BLOCK_SPAWNER_BREAK = getSound("block.spawner.break"); + Sound BLOCK_SPAWNER_FALL = getSound("block.spawner.fall"); + Sound BLOCK_SPAWNER_HIT = getSound("block.spawner.hit"); + Sound BLOCK_SPAWNER_PLACE = getSound("block.spawner.place"); + Sound BLOCK_SPAWNER_STEP = getSound("block.spawner.step"); + Sound BLOCK_SPONGE_ABSORB = getSound("block.sponge.absorb"); + Sound BLOCK_SPONGE_BREAK = getSound("block.sponge.break"); + Sound BLOCK_SPONGE_FALL = getSound("block.sponge.fall"); + Sound BLOCK_SPONGE_HIT = getSound("block.sponge.hit"); + Sound BLOCK_SPONGE_PLACE = getSound("block.sponge.place"); + Sound BLOCK_SPONGE_STEP = getSound("block.sponge.step"); + Sound BLOCK_SPORE_BLOSSOM_BREAK = getSound("block.spore_blossom.break"); + Sound BLOCK_SPORE_BLOSSOM_FALL = getSound("block.spore_blossom.fall"); + Sound BLOCK_SPORE_BLOSSOM_HIT = getSound("block.spore_blossom.hit"); + Sound BLOCK_SPORE_BLOSSOM_PLACE = getSound("block.spore_blossom.place"); + Sound BLOCK_SPORE_BLOSSOM_STEP = getSound("block.spore_blossom.step"); + Sound BLOCK_STEM_BREAK = getSound("block.stem.break"); + Sound BLOCK_STEM_FALL = getSound("block.stem.fall"); + Sound BLOCK_STEM_HIT = getSound("block.stem.hit"); + Sound BLOCK_STEM_PLACE = getSound("block.stem.place"); + Sound BLOCK_STEM_STEP = getSound("block.stem.step"); + Sound BLOCK_STONE_BREAK = getSound("block.stone.break"); - Sound BLOCK_STONE_BUTTON_CLICK_OFF = getSound("block.stone_button.click_off"); - Sound BLOCK_STONE_BUTTON_CLICK_ON = getSound("block.stone_button.click_on"); + Sound BLOCK_STONE_FALL = getSound("block.stone.fall"); + Sound BLOCK_STONE_HIT = getSound("block.stone.hit"); + Sound BLOCK_STONE_PLACE = getSound("block.stone.place"); - Sound BLOCK_STONE_PRESSURE_PLATE_CLICK_OFF = getSound("block.stone_pressure_plate.click_off"); - Sound BLOCK_STONE_PRESSURE_PLATE_CLICK_ON = getSound("block.stone_pressure_plate.click_on"); + Sound BLOCK_STONE_STEP = getSound("block.stone.step"); + + Sound BLOCK_STONE_BUTTON_CLICK_OFF = getSound("block.stone_button.click_off"); + + Sound BLOCK_STONE_BUTTON_CLICK_ON = getSound("block.stone_button.click_on"); + + Sound BLOCK_STONE_PRESSURE_PLATE_CLICK_OFF = getSound("block.stone_pressure_plate.click_off"); + + Sound BLOCK_STONE_PRESSURE_PLATE_CLICK_ON = getSound("block.stone_pressure_plate.click_on"); + Sound BLOCK_SUSPICIOUS_GRAVEL_BREAK = getSound("block.suspicious_gravel.break"); + Sound BLOCK_SUSPICIOUS_GRAVEL_FALL = getSound("block.suspicious_gravel.fall"); + Sound BLOCK_SUSPICIOUS_GRAVEL_HIT = getSound("block.suspicious_gravel.hit"); + Sound BLOCK_SUSPICIOUS_GRAVEL_PLACE = getSound("block.suspicious_gravel.place"); + Sound BLOCK_SUSPICIOUS_GRAVEL_STEP = getSound("block.suspicious_gravel.step"); + Sound BLOCK_SUSPICIOUS_SAND_BREAK = getSound("block.suspicious_sand.break"); + Sound BLOCK_SUSPICIOUS_SAND_FALL = getSound("block.suspicious_sand.fall"); + Sound BLOCK_SUSPICIOUS_SAND_HIT = getSound("block.suspicious_sand.hit"); + Sound BLOCK_SUSPICIOUS_SAND_PLACE = getSound("block.suspicious_sand.place"); + Sound BLOCK_SUSPICIOUS_SAND_STEP = getSound("block.suspicious_sand.step"); + Sound BLOCK_SWEET_BERRY_BUSH_BREAK = getSound("block.sweet_berry_bush.break"); + Sound BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES = getSound("block.sweet_berry_bush.pick_berries"); + Sound BLOCK_SWEET_BERRY_BUSH_PLACE = getSound("block.sweet_berry_bush.place"); + Sound BLOCK_TRIAL_SPAWNER_ABOUT_TO_SPAWN_ITEM = getSound("block.trial_spawner.about_to_spawn_item"); + Sound BLOCK_TRIAL_SPAWNER_AMBIENT = getSound("block.trial_spawner.ambient"); + Sound BLOCK_TRIAL_SPAWNER_AMBIENT_OMINOUS = getSound("block.trial_spawner.ambient_ominous"); + Sound BLOCK_TRIAL_SPAWNER_BREAK = getSound("block.trial_spawner.break"); + Sound BLOCK_TRIAL_SPAWNER_CLOSE_SHUTTER = getSound("block.trial_spawner.close_shutter"); + Sound BLOCK_TRIAL_SPAWNER_DETECT_PLAYER = getSound("block.trial_spawner.detect_player"); + Sound BLOCK_TRIAL_SPAWNER_EJECT_ITEM = getSound("block.trial_spawner.eject_item"); + Sound BLOCK_TRIAL_SPAWNER_FALL = getSound("block.trial_spawner.fall"); + Sound BLOCK_TRIAL_SPAWNER_HIT = getSound("block.trial_spawner.hit"); + Sound BLOCK_TRIAL_SPAWNER_OMINOUS_ACTIVATE = getSound("block.trial_spawner.ominous_activate"); + Sound BLOCK_TRIAL_SPAWNER_OPEN_SHUTTER = getSound("block.trial_spawner.open_shutter"); + Sound BLOCK_TRIAL_SPAWNER_PLACE = getSound("block.trial_spawner.place"); + Sound BLOCK_TRIAL_SPAWNER_SPAWN_ITEM = getSound("block.trial_spawner.spawn_item"); + Sound BLOCK_TRIAL_SPAWNER_SPAWN_ITEM_BEGIN = getSound("block.trial_spawner.spawn_item_begin"); + Sound BLOCK_TRIAL_SPAWNER_SPAWN_MOB = getSound("block.trial_spawner.spawn_mob"); + Sound BLOCK_TRIAL_SPAWNER_STEP = getSound("block.trial_spawner.step"); + Sound BLOCK_TRIPWIRE_ATTACH = getSound("block.tripwire.attach"); + Sound BLOCK_TRIPWIRE_CLICK_OFF = getSound("block.tripwire.click_off"); + Sound BLOCK_TRIPWIRE_CLICK_ON = getSound("block.tripwire.click_on"); + Sound BLOCK_TRIPWIRE_DETACH = getSound("block.tripwire.detach"); + Sound BLOCK_TUFF_BREAK = getSound("block.tuff.break"); - Sound BLOCK_TUFF_BRICKS_BREAK = getSound("block.tuff_bricks.break"); - Sound BLOCK_TUFF_BRICKS_FALL = getSound("block.tuff_bricks.fall"); - Sound BLOCK_TUFF_BRICKS_HIT = getSound("block.tuff_bricks.hit"); - Sound BLOCK_TUFF_BRICKS_PLACE = getSound("block.tuff_bricks.place"); - Sound BLOCK_TUFF_BRICKS_STEP = getSound("block.tuff_bricks.step"); + Sound BLOCK_TUFF_FALL = getSound("block.tuff.fall"); + Sound BLOCK_TUFF_HIT = getSound("block.tuff.hit"); + Sound BLOCK_TUFF_PLACE = getSound("block.tuff.place"); + Sound BLOCK_TUFF_STEP = getSound("block.tuff.step"); + + Sound BLOCK_TUFF_BRICKS_BREAK = getSound("block.tuff_bricks.break"); + + Sound BLOCK_TUFF_BRICKS_FALL = getSound("block.tuff_bricks.fall"); + + Sound BLOCK_TUFF_BRICKS_HIT = getSound("block.tuff_bricks.hit"); + + Sound BLOCK_TUFF_BRICKS_PLACE = getSound("block.tuff_bricks.place"); + + Sound BLOCK_TUFF_BRICKS_STEP = getSound("block.tuff_bricks.step"); + Sound BLOCK_VAULT_ACTIVATE = getSound("block.vault.activate"); + Sound BLOCK_VAULT_AMBIENT = getSound("block.vault.ambient"); + Sound BLOCK_VAULT_BREAK = getSound("block.vault.break"); + Sound BLOCK_VAULT_CLOSE_SHUTTER = getSound("block.vault.close_shutter"); + Sound BLOCK_VAULT_DEACTIVATE = getSound("block.vault.deactivate"); + Sound BLOCK_VAULT_EJECT_ITEM = getSound("block.vault.eject_item"); + Sound BLOCK_VAULT_FALL = getSound("block.vault.fall"); + Sound BLOCK_VAULT_HIT = getSound("block.vault.hit"); + Sound BLOCK_VAULT_INSERT_ITEM = getSound("block.vault.insert_item"); + Sound BLOCK_VAULT_INSERT_ITEM_FAIL = getSound("block.vault.insert_item_fail"); + Sound BLOCK_VAULT_OPEN_SHUTTER = getSound("block.vault.open_shutter"); + Sound BLOCK_VAULT_PLACE = getSound("block.vault.place"); + Sound BLOCK_VAULT_REJECT_REWARDED_PLAYER = getSound("block.vault.reject_rewarded_player"); + Sound BLOCK_VAULT_STEP = getSound("block.vault.step"); + Sound BLOCK_VINE_BREAK = getSound("block.vine.break"); + Sound BLOCK_VINE_FALL = getSound("block.vine.fall"); + Sound BLOCK_VINE_HIT = getSound("block.vine.hit"); + Sound BLOCK_VINE_PLACE = getSound("block.vine.place"); + Sound BLOCK_VINE_STEP = getSound("block.vine.step"); + Sound BLOCK_WART_BLOCK_BREAK = getSound("block.wart_block.break"); + Sound BLOCK_WART_BLOCK_FALL = getSound("block.wart_block.fall"); + Sound BLOCK_WART_BLOCK_HIT = getSound("block.wart_block.hit"); + Sound BLOCK_WART_BLOCK_PLACE = getSound("block.wart_block.place"); + Sound BLOCK_WART_BLOCK_STEP = getSound("block.wart_block.step"); + Sound BLOCK_WATER_AMBIENT = getSound("block.water.ambient"); + Sound BLOCK_WEEPING_VINES_BREAK = getSound("block.weeping_vines.break"); + Sound BLOCK_WEEPING_VINES_FALL = getSound("block.weeping_vines.fall"); + Sound BLOCK_WEEPING_VINES_HIT = getSound("block.weeping_vines.hit"); + Sound BLOCK_WEEPING_VINES_PLACE = getSound("block.weeping_vines.place"); + Sound BLOCK_WEEPING_VINES_STEP = getSound("block.weeping_vines.step"); + Sound BLOCK_WET_GRASS_BREAK = getSound("block.wet_grass.break"); + Sound BLOCK_WET_GRASS_FALL = getSound("block.wet_grass.fall"); + Sound BLOCK_WET_GRASS_HIT = getSound("block.wet_grass.hit"); + Sound BLOCK_WET_GRASS_PLACE = getSound("block.wet_grass.place"); + Sound BLOCK_WET_GRASS_STEP = getSound("block.wet_grass.step"); + Sound BLOCK_WET_SPONGE_BREAK = getSound("block.wet_sponge.break"); + Sound BLOCK_WET_SPONGE_DRIES = getSound("block.wet_sponge.dries"); + Sound BLOCK_WET_SPONGE_FALL = getSound("block.wet_sponge.fall"); + Sound BLOCK_WET_SPONGE_HIT = getSound("block.wet_sponge.hit"); + Sound BLOCK_WET_SPONGE_PLACE = getSound("block.wet_sponge.place"); + Sound BLOCK_WET_SPONGE_STEP = getSound("block.wet_sponge.step"); - Sound BLOCK_WOODEN_BUTTON_CLICK_OFF = getSound("block.wooden_button.click_off"); - Sound BLOCK_WOODEN_BUTTON_CLICK_ON = getSound("block.wooden_button.click_on"); - Sound BLOCK_WOODEN_DOOR_CLOSE = getSound("block.wooden_door.close"); - Sound BLOCK_WOODEN_DOOR_OPEN = getSound("block.wooden_door.open"); - Sound BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF = getSound("block.wooden_pressure_plate.click_off"); - Sound BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON = getSound("block.wooden_pressure_plate.click_on"); - Sound BLOCK_WOODEN_TRAPDOOR_CLOSE = getSound("block.wooden_trapdoor.close"); - Sound BLOCK_WOODEN_TRAPDOOR_OPEN = getSound("block.wooden_trapdoor.open"); + Sound BLOCK_WOOD_BREAK = getSound("block.wood.break"); + Sound BLOCK_WOOD_FALL = getSound("block.wood.fall"); + Sound BLOCK_WOOD_HIT = getSound("block.wood.hit"); + Sound BLOCK_WOOD_PLACE = getSound("block.wood.place"); + Sound BLOCK_WOOD_STEP = getSound("block.wood.step"); + + Sound BLOCK_WOODEN_BUTTON_CLICK_OFF = getSound("block.wooden_button.click_off"); + + Sound BLOCK_WOODEN_BUTTON_CLICK_ON = getSound("block.wooden_button.click_on"); + + Sound BLOCK_WOODEN_DOOR_CLOSE = getSound("block.wooden_door.close"); + + Sound BLOCK_WOODEN_DOOR_OPEN = getSound("block.wooden_door.open"); + + Sound BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF = getSound("block.wooden_pressure_plate.click_off"); + + Sound BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON = getSound("block.wooden_pressure_plate.click_on"); + + Sound BLOCK_WOODEN_TRAPDOOR_CLOSE = getSound("block.wooden_trapdoor.close"); + + Sound BLOCK_WOODEN_TRAPDOOR_OPEN = getSound("block.wooden_trapdoor.open"); + Sound BLOCK_WOOL_BREAK = getSound("block.wool.break"); + Sound BLOCK_WOOL_FALL = getSound("block.wool.fall"); + Sound BLOCK_WOOL_HIT = getSound("block.wool.hit"); + Sound BLOCK_WOOL_PLACE = getSound("block.wool.place"); + Sound BLOCK_WOOL_STEP = getSound("block.wool.step"); + Sound ENCHANT_THORNS_HIT = getSound("enchant.thorns.hit"); - Sound ENTITY_ALLAY_AMBIENT_WITHOUT_ITEM = getSound("entity.allay.ambient_without_item"); + Sound ENTITY_ALLAY_AMBIENT_WITH_ITEM = getSound("entity.allay.ambient_with_item"); + + Sound ENTITY_ALLAY_AMBIENT_WITHOUT_ITEM = getSound("entity.allay.ambient_without_item"); + Sound ENTITY_ALLAY_DEATH = getSound("entity.allay.death"); + Sound ENTITY_ALLAY_HURT = getSound("entity.allay.hurt"); + Sound ENTITY_ALLAY_ITEM_GIVEN = getSound("entity.allay.item_given"); + Sound ENTITY_ALLAY_ITEM_TAKEN = getSound("entity.allay.item_taken"); + Sound ENTITY_ALLAY_ITEM_THROWN = getSound("entity.allay.item_thrown"); + Sound ENTITY_ARMADILLO_AMBIENT = getSound("entity.armadillo.ambient"); + Sound ENTITY_ARMADILLO_BRUSH = getSound("entity.armadillo.brush"); + Sound ENTITY_ARMADILLO_DEATH = getSound("entity.armadillo.death"); + Sound ENTITY_ARMADILLO_EAT = getSound("entity.armadillo.eat"); + Sound ENTITY_ARMADILLO_HURT = getSound("entity.armadillo.hurt"); + Sound ENTITY_ARMADILLO_HURT_REDUCED = getSound("entity.armadillo.hurt_reduced"); + Sound ENTITY_ARMADILLO_LAND = getSound("entity.armadillo.land"); + Sound ENTITY_ARMADILLO_PEEK = getSound("entity.armadillo.peek"); + Sound ENTITY_ARMADILLO_ROLL = getSound("entity.armadillo.roll"); + Sound ENTITY_ARMADILLO_SCUTE_DROP = getSound("entity.armadillo.scute_drop"); + Sound ENTITY_ARMADILLO_STEP = getSound("entity.armadillo.step"); + Sound ENTITY_ARMADILLO_UNROLL_FINISH = getSound("entity.armadillo.unroll_finish"); + Sound ENTITY_ARMADILLO_UNROLL_START = getSound("entity.armadillo.unroll_start"); + Sound ENTITY_ARMOR_STAND_BREAK = getSound("entity.armor_stand.break"); + Sound ENTITY_ARMOR_STAND_FALL = getSound("entity.armor_stand.fall"); + Sound ENTITY_ARMOR_STAND_HIT = getSound("entity.armor_stand.hit"); + Sound ENTITY_ARMOR_STAND_PLACE = getSound("entity.armor_stand.place"); + Sound ENTITY_ARROW_HIT = getSound("entity.arrow.hit"); + Sound ENTITY_ARROW_HIT_PLAYER = getSound("entity.arrow.hit_player"); + Sound ENTITY_ARROW_SHOOT = getSound("entity.arrow.shoot"); + Sound ENTITY_AXOLOTL_ATTACK = getSound("entity.axolotl.attack"); + Sound ENTITY_AXOLOTL_DEATH = getSound("entity.axolotl.death"); + Sound ENTITY_AXOLOTL_HURT = getSound("entity.axolotl.hurt"); + Sound ENTITY_AXOLOTL_IDLE_AIR = getSound("entity.axolotl.idle_air"); + Sound ENTITY_AXOLOTL_IDLE_WATER = getSound("entity.axolotl.idle_water"); + Sound ENTITY_AXOLOTL_SPLASH = getSound("entity.axolotl.splash"); + Sound ENTITY_AXOLOTL_SWIM = getSound("entity.axolotl.swim"); + Sound ENTITY_BAT_AMBIENT = getSound("entity.bat.ambient"); + Sound ENTITY_BAT_DEATH = getSound("entity.bat.death"); + Sound ENTITY_BAT_HURT = getSound("entity.bat.hurt"); + Sound ENTITY_BAT_LOOP = getSound("entity.bat.loop"); + Sound ENTITY_BAT_TAKEOFF = getSound("entity.bat.takeoff"); + Sound ENTITY_BEE_DEATH = getSound("entity.bee.death"); + Sound ENTITY_BEE_HURT = getSound("entity.bee.hurt"); + Sound ENTITY_BEE_LOOP = getSound("entity.bee.loop"); + Sound ENTITY_BEE_LOOP_AGGRESSIVE = getSound("entity.bee.loop_aggressive"); + Sound ENTITY_BEE_POLLINATE = getSound("entity.bee.pollinate"); + Sound ENTITY_BEE_STING = getSound("entity.bee.sting"); + Sound ENTITY_BLAZE_AMBIENT = getSound("entity.blaze.ambient"); + Sound ENTITY_BLAZE_BURN = getSound("entity.blaze.burn"); + Sound ENTITY_BLAZE_DEATH = getSound("entity.blaze.death"); + Sound ENTITY_BLAZE_HURT = getSound("entity.blaze.hurt"); + Sound ENTITY_BLAZE_SHOOT = getSound("entity.blaze.shoot"); + Sound ENTITY_BOAT_PADDLE_LAND = getSound("entity.boat.paddle_land"); + Sound ENTITY_BOAT_PADDLE_WATER = getSound("entity.boat.paddle_water"); + Sound ENTITY_BOGGED_AMBIENT = getSound("entity.bogged.ambient"); + Sound ENTITY_BOGGED_DEATH = getSound("entity.bogged.death"); + Sound ENTITY_BOGGED_HURT = getSound("entity.bogged.hurt"); + Sound ENTITY_BOGGED_SHEAR = getSound("entity.bogged.shear"); + Sound ENTITY_BOGGED_STEP = getSound("entity.bogged.step"); + Sound ENTITY_BREEZE_CHARGE = getSound("entity.breeze.charge"); + Sound ENTITY_BREEZE_DEATH = getSound("entity.breeze.death"); + Sound ENTITY_BREEZE_DEFLECT = getSound("entity.breeze.deflect"); + Sound ENTITY_BREEZE_HURT = getSound("entity.breeze.hurt"); + Sound ENTITY_BREEZE_IDLE_AIR = getSound("entity.breeze.idle_air"); + Sound ENTITY_BREEZE_IDLE_GROUND = getSound("entity.breeze.idle_ground"); + Sound ENTITY_BREEZE_INHALE = getSound("entity.breeze.inhale"); + Sound ENTITY_BREEZE_JUMP = getSound("entity.breeze.jump"); + Sound ENTITY_BREEZE_LAND = getSound("entity.breeze.land"); + Sound ENTITY_BREEZE_SHOOT = getSound("entity.breeze.shoot"); + Sound ENTITY_BREEZE_SLIDE = getSound("entity.breeze.slide"); + Sound ENTITY_BREEZE_WHIRL = getSound("entity.breeze.whirl"); + Sound ENTITY_BREEZE_WIND_BURST = getSound("entity.breeze.wind_burst"); + Sound ENTITY_CAMEL_AMBIENT = getSound("entity.camel.ambient"); + Sound ENTITY_CAMEL_DASH = getSound("entity.camel.dash"); + Sound ENTITY_CAMEL_DASH_READY = getSound("entity.camel.dash_ready"); + Sound ENTITY_CAMEL_DEATH = getSound("entity.camel.death"); + Sound ENTITY_CAMEL_EAT = getSound("entity.camel.eat"); + Sound ENTITY_CAMEL_HURT = getSound("entity.camel.hurt"); + Sound ENTITY_CAMEL_SADDLE = getSound("entity.camel.saddle"); + Sound ENTITY_CAMEL_SIT = getSound("entity.camel.sit"); + Sound ENTITY_CAMEL_STAND = getSound("entity.camel.stand"); + Sound ENTITY_CAMEL_STEP = getSound("entity.camel.step"); + Sound ENTITY_CAMEL_STEP_SAND = getSound("entity.camel.step_sand"); + Sound ENTITY_CAT_AMBIENT = getSound("entity.cat.ambient"); + Sound ENTITY_CAT_BEG_FOR_FOOD = getSound("entity.cat.beg_for_food"); + Sound ENTITY_CAT_DEATH = getSound("entity.cat.death"); + Sound ENTITY_CAT_EAT = getSound("entity.cat.eat"); + Sound ENTITY_CAT_HISS = getSound("entity.cat.hiss"); + Sound ENTITY_CAT_HURT = getSound("entity.cat.hurt"); + Sound ENTITY_CAT_PURR = getSound("entity.cat.purr"); + Sound ENTITY_CAT_PURREOW = getSound("entity.cat.purreow"); + Sound ENTITY_CAT_STRAY_AMBIENT = getSound("entity.cat.stray_ambient"); + Sound ENTITY_CHICKEN_AMBIENT = getSound("entity.chicken.ambient"); + Sound ENTITY_CHICKEN_DEATH = getSound("entity.chicken.death"); + Sound ENTITY_CHICKEN_EGG = getSound("entity.chicken.egg"); + Sound ENTITY_CHICKEN_HURT = getSound("entity.chicken.hurt"); + Sound ENTITY_CHICKEN_STEP = getSound("entity.chicken.step"); + Sound ENTITY_COD_AMBIENT = getSound("entity.cod.ambient"); + Sound ENTITY_COD_DEATH = getSound("entity.cod.death"); + Sound ENTITY_COD_FLOP = getSound("entity.cod.flop"); + Sound ENTITY_COD_HURT = getSound("entity.cod.hurt"); + Sound ENTITY_COW_AMBIENT = getSound("entity.cow.ambient"); + Sound ENTITY_COW_DEATH = getSound("entity.cow.death"); + Sound ENTITY_COW_HURT = getSound("entity.cow.hurt"); + Sound ENTITY_COW_MILK = getSound("entity.cow.milk"); + Sound ENTITY_COW_STEP = getSound("entity.cow.step"); + Sound ENTITY_CREAKING_ACTIVATE = getSound("entity.creaking.activate"); + Sound ENTITY_CREAKING_AMBIENT = getSound("entity.creaking.ambient"); + Sound ENTITY_CREAKING_ATTACK = getSound("entity.creaking.attack"); + Sound ENTITY_CREAKING_DEACTIVATE = getSound("entity.creaking.deactivate"); + Sound ENTITY_CREAKING_DEATH = getSound("entity.creaking.death"); + Sound ENTITY_CREAKING_FREEZE = getSound("entity.creaking.freeze"); + Sound ENTITY_CREAKING_SPAWN = getSound("entity.creaking.spawn"); + Sound ENTITY_CREAKING_STEP = getSound("entity.creaking.step"); + Sound ENTITY_CREAKING_SWAY = getSound("entity.creaking.sway"); + Sound ENTITY_CREAKING_TWITCH = getSound("entity.creaking.twitch"); + Sound ENTITY_CREAKING_UNFREEZE = getSound("entity.creaking.unfreeze"); + Sound ENTITY_CREEPER_DEATH = getSound("entity.creeper.death"); + Sound ENTITY_CREEPER_HURT = getSound("entity.creeper.hurt"); + Sound ENTITY_CREEPER_PRIMED = getSound("entity.creeper.primed"); + Sound ENTITY_DOLPHIN_AMBIENT = getSound("entity.dolphin.ambient"); + Sound ENTITY_DOLPHIN_AMBIENT_WATER = getSound("entity.dolphin.ambient_water"); + Sound ENTITY_DOLPHIN_ATTACK = getSound("entity.dolphin.attack"); + Sound ENTITY_DOLPHIN_DEATH = getSound("entity.dolphin.death"); + Sound ENTITY_DOLPHIN_EAT = getSound("entity.dolphin.eat"); + Sound ENTITY_DOLPHIN_HURT = getSound("entity.dolphin.hurt"); + Sound ENTITY_DOLPHIN_JUMP = getSound("entity.dolphin.jump"); + Sound ENTITY_DOLPHIN_PLAY = getSound("entity.dolphin.play"); + Sound ENTITY_DOLPHIN_SPLASH = getSound("entity.dolphin.splash"); + Sound ENTITY_DOLPHIN_SWIM = getSound("entity.dolphin.swim"); + Sound ENTITY_DONKEY_AMBIENT = getSound("entity.donkey.ambient"); + Sound ENTITY_DONKEY_ANGRY = getSound("entity.donkey.angry"); + Sound ENTITY_DONKEY_CHEST = getSound("entity.donkey.chest"); + Sound ENTITY_DONKEY_DEATH = getSound("entity.donkey.death"); + Sound ENTITY_DONKEY_EAT = getSound("entity.donkey.eat"); + Sound ENTITY_DONKEY_HURT = getSound("entity.donkey.hurt"); + Sound ENTITY_DONKEY_JUMP = getSound("entity.donkey.jump"); + Sound ENTITY_DRAGON_FIREBALL_EXPLODE = getSound("entity.dragon_fireball.explode"); + Sound ENTITY_DROWNED_AMBIENT = getSound("entity.drowned.ambient"); + Sound ENTITY_DROWNED_AMBIENT_WATER = getSound("entity.drowned.ambient_water"); + Sound ENTITY_DROWNED_DEATH = getSound("entity.drowned.death"); + Sound ENTITY_DROWNED_DEATH_WATER = getSound("entity.drowned.death_water"); + Sound ENTITY_DROWNED_HURT = getSound("entity.drowned.hurt"); + Sound ENTITY_DROWNED_HURT_WATER = getSound("entity.drowned.hurt_water"); + Sound ENTITY_DROWNED_SHOOT = getSound("entity.drowned.shoot"); + Sound ENTITY_DROWNED_STEP = getSound("entity.drowned.step"); + Sound ENTITY_DROWNED_SWIM = getSound("entity.drowned.swim"); + Sound ENTITY_EGG_THROW = getSound("entity.egg.throw"); + Sound ENTITY_ELDER_GUARDIAN_AMBIENT = getSound("entity.elder_guardian.ambient"); + Sound ENTITY_ELDER_GUARDIAN_AMBIENT_LAND = getSound("entity.elder_guardian.ambient_land"); + Sound ENTITY_ELDER_GUARDIAN_CURSE = getSound("entity.elder_guardian.curse"); + Sound ENTITY_ELDER_GUARDIAN_DEATH = getSound("entity.elder_guardian.death"); + Sound ENTITY_ELDER_GUARDIAN_DEATH_LAND = getSound("entity.elder_guardian.death_land"); + Sound ENTITY_ELDER_GUARDIAN_FLOP = getSound("entity.elder_guardian.flop"); + Sound ENTITY_ELDER_GUARDIAN_HURT = getSound("entity.elder_guardian.hurt"); + Sound ENTITY_ELDER_GUARDIAN_HURT_LAND = getSound("entity.elder_guardian.hurt_land"); - Sound ENTITY_ENDERMAN_AMBIENT = getSound("entity.enderman.ambient"); - Sound ENTITY_ENDERMAN_DEATH = getSound("entity.enderman.death"); - Sound ENTITY_ENDERMAN_HURT = getSound("entity.enderman.hurt"); - Sound ENTITY_ENDERMAN_SCREAM = getSound("entity.enderman.scream"); - Sound ENTITY_ENDERMAN_STARE = getSound("entity.enderman.stare"); - Sound ENTITY_ENDERMAN_TELEPORT = getSound("entity.enderman.teleport"); - Sound ENTITY_ENDERMITE_AMBIENT = getSound("entity.endermite.ambient"); - Sound ENTITY_ENDERMITE_DEATH = getSound("entity.endermite.death"); - Sound ENTITY_ENDERMITE_HURT = getSound("entity.endermite.hurt"); - Sound ENTITY_ENDERMITE_STEP = getSound("entity.endermite.step"); + Sound ENTITY_ENDER_DRAGON_AMBIENT = getSound("entity.ender_dragon.ambient"); + Sound ENTITY_ENDER_DRAGON_DEATH = getSound("entity.ender_dragon.death"); + Sound ENTITY_ENDER_DRAGON_FLAP = getSound("entity.ender_dragon.flap"); + Sound ENTITY_ENDER_DRAGON_GROWL = getSound("entity.ender_dragon.growl"); + Sound ENTITY_ENDER_DRAGON_HURT = getSound("entity.ender_dragon.hurt"); + Sound ENTITY_ENDER_DRAGON_SHOOT = getSound("entity.ender_dragon.shoot"); + Sound ENTITY_ENDER_EYE_DEATH = getSound("entity.ender_eye.death"); + Sound ENTITY_ENDER_EYE_LAUNCH = getSound("entity.ender_eye.launch"); + Sound ENTITY_ENDER_PEARL_THROW = getSound("entity.ender_pearl.throw"); + + Sound ENTITY_ENDERMAN_AMBIENT = getSound("entity.enderman.ambient"); + + Sound ENTITY_ENDERMAN_DEATH = getSound("entity.enderman.death"); + + Sound ENTITY_ENDERMAN_HURT = getSound("entity.enderman.hurt"); + + Sound ENTITY_ENDERMAN_SCREAM = getSound("entity.enderman.scream"); + + Sound ENTITY_ENDERMAN_STARE = getSound("entity.enderman.stare"); + + Sound ENTITY_ENDERMAN_TELEPORT = getSound("entity.enderman.teleport"); + + Sound ENTITY_ENDERMITE_AMBIENT = getSound("entity.endermite.ambient"); + + Sound ENTITY_ENDERMITE_DEATH = getSound("entity.endermite.death"); + + Sound ENTITY_ENDERMITE_HURT = getSound("entity.endermite.hurt"); + + Sound ENTITY_ENDERMITE_STEP = getSound("entity.endermite.step"); + Sound ENTITY_EVOKER_AMBIENT = getSound("entity.evoker.ambient"); + Sound ENTITY_EVOKER_CAST_SPELL = getSound("entity.evoker.cast_spell"); + Sound ENTITY_EVOKER_CELEBRATE = getSound("entity.evoker.celebrate"); + Sound ENTITY_EVOKER_DEATH = getSound("entity.evoker.death"); - Sound ENTITY_EVOKER_FANGS_ATTACK = getSound("entity.evoker_fangs.attack"); + Sound ENTITY_EVOKER_HURT = getSound("entity.evoker.hurt"); + Sound ENTITY_EVOKER_PREPARE_ATTACK = getSound("entity.evoker.prepare_attack"); + Sound ENTITY_EVOKER_PREPARE_SUMMON = getSound("entity.evoker.prepare_summon"); + Sound ENTITY_EVOKER_PREPARE_WOLOLO = getSound("entity.evoker.prepare_wololo"); + + Sound ENTITY_EVOKER_FANGS_ATTACK = getSound("entity.evoker_fangs.attack"); + Sound ENTITY_EXPERIENCE_BOTTLE_THROW = getSound("entity.experience_bottle.throw"); + Sound ENTITY_EXPERIENCE_ORB_PICKUP = getSound("entity.experience_orb.pickup"); + Sound ENTITY_FIREWORK_ROCKET_BLAST = getSound("entity.firework_rocket.blast"); + Sound ENTITY_FIREWORK_ROCKET_BLAST_FAR = getSound("entity.firework_rocket.blast_far"); + Sound ENTITY_FIREWORK_ROCKET_LARGE_BLAST = getSound("entity.firework_rocket.large_blast"); + Sound ENTITY_FIREWORK_ROCKET_LARGE_BLAST_FAR = getSound("entity.firework_rocket.large_blast_far"); + Sound ENTITY_FIREWORK_ROCKET_LAUNCH = getSound("entity.firework_rocket.launch"); + Sound ENTITY_FIREWORK_ROCKET_SHOOT = getSound("entity.firework_rocket.shoot"); + Sound ENTITY_FIREWORK_ROCKET_TWINKLE = getSound("entity.firework_rocket.twinkle"); + Sound ENTITY_FIREWORK_ROCKET_TWINKLE_FAR = getSound("entity.firework_rocket.twinkle_far"); - Sound ENTITY_FISHING_BOBBER_RETRIEVE = getSound("entity.fishing_bobber.retrieve"); - Sound ENTITY_FISHING_BOBBER_SPLASH = getSound("entity.fishing_bobber.splash"); - Sound ENTITY_FISHING_BOBBER_THROW = getSound("entity.fishing_bobber.throw"); + Sound ENTITY_FISH_SWIM = getSound("entity.fish.swim"); + + Sound ENTITY_FISHING_BOBBER_RETRIEVE = getSound("entity.fishing_bobber.retrieve"); + + Sound ENTITY_FISHING_BOBBER_SPLASH = getSound("entity.fishing_bobber.splash"); + + Sound ENTITY_FISHING_BOBBER_THROW = getSound("entity.fishing_bobber.throw"); + Sound ENTITY_FOX_AGGRO = getSound("entity.fox.aggro"); + Sound ENTITY_FOX_AMBIENT = getSound("entity.fox.ambient"); + Sound ENTITY_FOX_BITE = getSound("entity.fox.bite"); + Sound ENTITY_FOX_DEATH = getSound("entity.fox.death"); + Sound ENTITY_FOX_EAT = getSound("entity.fox.eat"); + Sound ENTITY_FOX_HURT = getSound("entity.fox.hurt"); + Sound ENTITY_FOX_SCREECH = getSound("entity.fox.screech"); + Sound ENTITY_FOX_SLEEP = getSound("entity.fox.sleep"); + Sound ENTITY_FOX_SNIFF = getSound("entity.fox.sniff"); + Sound ENTITY_FOX_SPIT = getSound("entity.fox.spit"); + Sound ENTITY_FOX_TELEPORT = getSound("entity.fox.teleport"); + Sound ENTITY_FROG_AMBIENT = getSound("entity.frog.ambient"); + Sound ENTITY_FROG_DEATH = getSound("entity.frog.death"); + Sound ENTITY_FROG_EAT = getSound("entity.frog.eat"); + Sound ENTITY_FROG_HURT = getSound("entity.frog.hurt"); + Sound ENTITY_FROG_LAY_SPAWN = getSound("entity.frog.lay_spawn"); + Sound ENTITY_FROG_LONG_JUMP = getSound("entity.frog.long_jump"); + Sound ENTITY_FROG_STEP = getSound("entity.frog.step"); + Sound ENTITY_FROG_TONGUE = getSound("entity.frog.tongue"); + Sound ENTITY_GENERIC_BIG_FALL = getSound("entity.generic.big_fall"); + Sound ENTITY_GENERIC_BURN = getSound("entity.generic.burn"); + Sound ENTITY_GENERIC_DEATH = getSound("entity.generic.death"); + Sound ENTITY_GENERIC_DRINK = getSound("entity.generic.drink"); + Sound ENTITY_GENERIC_EAT = getSound("entity.generic.eat"); + Sound ENTITY_GENERIC_EXPLODE = getSound("entity.generic.explode"); + Sound ENTITY_GENERIC_EXTINGUISH_FIRE = getSound("entity.generic.extinguish_fire"); + Sound ENTITY_GENERIC_HURT = getSound("entity.generic.hurt"); + Sound ENTITY_GENERIC_SMALL_FALL = getSound("entity.generic.small_fall"); + Sound ENTITY_GENERIC_SPLASH = getSound("entity.generic.splash"); + Sound ENTITY_GENERIC_SWIM = getSound("entity.generic.swim"); + Sound ENTITY_GHAST_AMBIENT = getSound("entity.ghast.ambient"); + Sound ENTITY_GHAST_DEATH = getSound("entity.ghast.death"); + Sound ENTITY_GHAST_HURT = getSound("entity.ghast.hurt"); + Sound ENTITY_GHAST_SCREAM = getSound("entity.ghast.scream"); + Sound ENTITY_GHAST_SHOOT = getSound("entity.ghast.shoot"); + Sound ENTITY_GHAST_WARN = getSound("entity.ghast.warn"); + Sound ENTITY_GLOW_ITEM_FRAME_ADD_ITEM = getSound("entity.glow_item_frame.add_item"); + Sound ENTITY_GLOW_ITEM_FRAME_BREAK = getSound("entity.glow_item_frame.break"); + Sound ENTITY_GLOW_ITEM_FRAME_PLACE = getSound("entity.glow_item_frame.place"); + Sound ENTITY_GLOW_ITEM_FRAME_REMOVE_ITEM = getSound("entity.glow_item_frame.remove_item"); + Sound ENTITY_GLOW_ITEM_FRAME_ROTATE_ITEM = getSound("entity.glow_item_frame.rotate_item"); + Sound ENTITY_GLOW_SQUID_AMBIENT = getSound("entity.glow_squid.ambient"); + Sound ENTITY_GLOW_SQUID_DEATH = getSound("entity.glow_squid.death"); + Sound ENTITY_GLOW_SQUID_HURT = getSound("entity.glow_squid.hurt"); + Sound ENTITY_GLOW_SQUID_SQUIRT = getSound("entity.glow_squid.squirt"); + Sound ENTITY_GOAT_AMBIENT = getSound("entity.goat.ambient"); + Sound ENTITY_GOAT_DEATH = getSound("entity.goat.death"); + Sound ENTITY_GOAT_EAT = getSound("entity.goat.eat"); + Sound ENTITY_GOAT_HORN_BREAK = getSound("entity.goat.horn_break"); + Sound ENTITY_GOAT_HURT = getSound("entity.goat.hurt"); + Sound ENTITY_GOAT_LONG_JUMP = getSound("entity.goat.long_jump"); + Sound ENTITY_GOAT_MILK = getSound("entity.goat.milk"); + Sound ENTITY_GOAT_PREPARE_RAM = getSound("entity.goat.prepare_ram"); + Sound ENTITY_GOAT_RAM_IMPACT = getSound("entity.goat.ram_impact"); + Sound ENTITY_GOAT_SCREAMING_AMBIENT = getSound("entity.goat.screaming.ambient"); + Sound ENTITY_GOAT_SCREAMING_DEATH = getSound("entity.goat.screaming.death"); + Sound ENTITY_GOAT_SCREAMING_EAT = getSound("entity.goat.screaming.eat"); + Sound ENTITY_GOAT_SCREAMING_HURT = getSound("entity.goat.screaming.hurt"); + Sound ENTITY_GOAT_SCREAMING_LONG_JUMP = getSound("entity.goat.screaming.long_jump"); + Sound ENTITY_GOAT_SCREAMING_MILK = getSound("entity.goat.screaming.milk"); + Sound ENTITY_GOAT_SCREAMING_PREPARE_RAM = getSound("entity.goat.screaming.prepare_ram"); + Sound ENTITY_GOAT_SCREAMING_RAM_IMPACT = getSound("entity.goat.screaming.ram_impact"); + Sound ENTITY_GOAT_STEP = getSound("entity.goat.step"); + Sound ENTITY_GUARDIAN_AMBIENT = getSound("entity.guardian.ambient"); + Sound ENTITY_GUARDIAN_AMBIENT_LAND = getSound("entity.guardian.ambient_land"); + Sound ENTITY_GUARDIAN_ATTACK = getSound("entity.guardian.attack"); + Sound ENTITY_GUARDIAN_DEATH = getSound("entity.guardian.death"); + Sound ENTITY_GUARDIAN_DEATH_LAND = getSound("entity.guardian.death_land"); + Sound ENTITY_GUARDIAN_FLOP = getSound("entity.guardian.flop"); + Sound ENTITY_GUARDIAN_HURT = getSound("entity.guardian.hurt"); + Sound ENTITY_GUARDIAN_HURT_LAND = getSound("entity.guardian.hurt_land"); + Sound ENTITY_HOGLIN_AMBIENT = getSound("entity.hoglin.ambient"); + Sound ENTITY_HOGLIN_ANGRY = getSound("entity.hoglin.angry"); + Sound ENTITY_HOGLIN_ATTACK = getSound("entity.hoglin.attack"); + Sound ENTITY_HOGLIN_CONVERTED_TO_ZOMBIFIED = getSound("entity.hoglin.converted_to_zombified"); + Sound ENTITY_HOGLIN_DEATH = getSound("entity.hoglin.death"); + Sound ENTITY_HOGLIN_HURT = getSound("entity.hoglin.hurt"); + Sound ENTITY_HOGLIN_RETREAT = getSound("entity.hoglin.retreat"); + Sound ENTITY_HOGLIN_STEP = getSound("entity.hoglin.step"); + Sound ENTITY_HORSE_AMBIENT = getSound("entity.horse.ambient"); + Sound ENTITY_HORSE_ANGRY = getSound("entity.horse.angry"); + Sound ENTITY_HORSE_ARMOR = getSound("entity.horse.armor"); + Sound ENTITY_HORSE_BREATHE = getSound("entity.horse.breathe"); + Sound ENTITY_HORSE_DEATH = getSound("entity.horse.death"); + Sound ENTITY_HORSE_EAT = getSound("entity.horse.eat"); + Sound ENTITY_HORSE_GALLOP = getSound("entity.horse.gallop"); + Sound ENTITY_HORSE_HURT = getSound("entity.horse.hurt"); + Sound ENTITY_HORSE_JUMP = getSound("entity.horse.jump"); + Sound ENTITY_HORSE_LAND = getSound("entity.horse.land"); + Sound ENTITY_HORSE_SADDLE = getSound("entity.horse.saddle"); + Sound ENTITY_HORSE_STEP = getSound("entity.horse.step"); + Sound ENTITY_HORSE_STEP_WOOD = getSound("entity.horse.step_wood"); + Sound ENTITY_HOSTILE_BIG_FALL = getSound("entity.hostile.big_fall"); + Sound ENTITY_HOSTILE_DEATH = getSound("entity.hostile.death"); + Sound ENTITY_HOSTILE_HURT = getSound("entity.hostile.hurt"); + Sound ENTITY_HOSTILE_SMALL_FALL = getSound("entity.hostile.small_fall"); + Sound ENTITY_HOSTILE_SPLASH = getSound("entity.hostile.splash"); + Sound ENTITY_HOSTILE_SWIM = getSound("entity.hostile.swim"); + Sound ENTITY_HUSK_AMBIENT = getSound("entity.husk.ambient"); + Sound ENTITY_HUSK_CONVERTED_TO_ZOMBIE = getSound("entity.husk.converted_to_zombie"); + Sound ENTITY_HUSK_DEATH = getSound("entity.husk.death"); + Sound ENTITY_HUSK_HURT = getSound("entity.husk.hurt"); + Sound ENTITY_HUSK_STEP = getSound("entity.husk.step"); + Sound ENTITY_ILLUSIONER_AMBIENT = getSound("entity.illusioner.ambient"); + Sound ENTITY_ILLUSIONER_CAST_SPELL = getSound("entity.illusioner.cast_spell"); + Sound ENTITY_ILLUSIONER_DEATH = getSound("entity.illusioner.death"); + Sound ENTITY_ILLUSIONER_HURT = getSound("entity.illusioner.hurt"); + Sound ENTITY_ILLUSIONER_MIRROR_MOVE = getSound("entity.illusioner.mirror_move"); + Sound ENTITY_ILLUSIONER_PREPARE_BLINDNESS = getSound("entity.illusioner.prepare_blindness"); + Sound ENTITY_ILLUSIONER_PREPARE_MIRROR = getSound("entity.illusioner.prepare_mirror"); + Sound ENTITY_IRON_GOLEM_ATTACK = getSound("entity.iron_golem.attack"); + Sound ENTITY_IRON_GOLEM_DAMAGE = getSound("entity.iron_golem.damage"); + Sound ENTITY_IRON_GOLEM_DEATH = getSound("entity.iron_golem.death"); + Sound ENTITY_IRON_GOLEM_HURT = getSound("entity.iron_golem.hurt"); + Sound ENTITY_IRON_GOLEM_REPAIR = getSound("entity.iron_golem.repair"); + Sound ENTITY_IRON_GOLEM_STEP = getSound("entity.iron_golem.step"); + Sound ENTITY_ITEM_BREAK = getSound("entity.item.break"); - Sound ENTITY_ITEM_FRAME_ADD_ITEM = getSound("entity.item_frame.add_item"); - Sound ENTITY_ITEM_FRAME_BREAK = getSound("entity.item_frame.break"); - Sound ENTITY_ITEM_FRAME_PLACE = getSound("entity.item_frame.place"); - Sound ENTITY_ITEM_FRAME_REMOVE_ITEM = getSound("entity.item_frame.remove_item"); - Sound ENTITY_ITEM_FRAME_ROTATE_ITEM = getSound("entity.item_frame.rotate_item"); + Sound ENTITY_ITEM_PICKUP = getSound("entity.item.pickup"); + + Sound ENTITY_ITEM_FRAME_ADD_ITEM = getSound("entity.item_frame.add_item"); + + Sound ENTITY_ITEM_FRAME_BREAK = getSound("entity.item_frame.break"); + + Sound ENTITY_ITEM_FRAME_PLACE = getSound("entity.item_frame.place"); + + Sound ENTITY_ITEM_FRAME_REMOVE_ITEM = getSound("entity.item_frame.remove_item"); + + Sound ENTITY_ITEM_FRAME_ROTATE_ITEM = getSound("entity.item_frame.rotate_item"); + Sound ENTITY_LEASH_KNOT_BREAK = getSound("entity.leash_knot.break"); + Sound ENTITY_LEASH_KNOT_PLACE = getSound("entity.leash_knot.place"); + Sound ENTITY_LIGHTNING_BOLT_IMPACT = getSound("entity.lightning_bolt.impact"); + Sound ENTITY_LIGHTNING_BOLT_THUNDER = getSound("entity.lightning_bolt.thunder"); + Sound ENTITY_LINGERING_POTION_THROW = getSound("entity.lingering_potion.throw"); + Sound ENTITY_LLAMA_AMBIENT = getSound("entity.llama.ambient"); + Sound ENTITY_LLAMA_ANGRY = getSound("entity.llama.angry"); + Sound ENTITY_LLAMA_CHEST = getSound("entity.llama.chest"); + Sound ENTITY_LLAMA_DEATH = getSound("entity.llama.death"); + Sound ENTITY_LLAMA_EAT = getSound("entity.llama.eat"); + Sound ENTITY_LLAMA_HURT = getSound("entity.llama.hurt"); + Sound ENTITY_LLAMA_SPIT = getSound("entity.llama.spit"); + Sound ENTITY_LLAMA_STEP = getSound("entity.llama.step"); + Sound ENTITY_LLAMA_SWAG = getSound("entity.llama.swag"); + Sound ENTITY_MAGMA_CUBE_DEATH = getSound("entity.magma_cube.death"); + Sound ENTITY_MAGMA_CUBE_DEATH_SMALL = getSound("entity.magma_cube.death_small"); + Sound ENTITY_MAGMA_CUBE_HURT = getSound("entity.magma_cube.hurt"); + Sound ENTITY_MAGMA_CUBE_HURT_SMALL = getSound("entity.magma_cube.hurt_small"); + Sound ENTITY_MAGMA_CUBE_JUMP = getSound("entity.magma_cube.jump"); + Sound ENTITY_MAGMA_CUBE_SQUISH = getSound("entity.magma_cube.squish"); + Sound ENTITY_MAGMA_CUBE_SQUISH_SMALL = getSound("entity.magma_cube.squish_small"); + Sound ENTITY_MINECART_INSIDE = getSound("entity.minecart.inside"); + Sound ENTITY_MINECART_INSIDE_UNDERWATER = getSound("entity.minecart.inside.underwater"); + Sound ENTITY_MINECART_RIDING = getSound("entity.minecart.riding"); + Sound ENTITY_MOOSHROOM_CONVERT = getSound("entity.mooshroom.convert"); + Sound ENTITY_MOOSHROOM_EAT = getSound("entity.mooshroom.eat"); + Sound ENTITY_MOOSHROOM_MILK = getSound("entity.mooshroom.milk"); + Sound ENTITY_MOOSHROOM_SHEAR = getSound("entity.mooshroom.shear"); + Sound ENTITY_MOOSHROOM_SUSPICIOUS_MILK = getSound("entity.mooshroom.suspicious_milk"); + Sound ENTITY_MULE_AMBIENT = getSound("entity.mule.ambient"); + Sound ENTITY_MULE_ANGRY = getSound("entity.mule.angry"); + Sound ENTITY_MULE_CHEST = getSound("entity.mule.chest"); + Sound ENTITY_MULE_DEATH = getSound("entity.mule.death"); + Sound ENTITY_MULE_EAT = getSound("entity.mule.eat"); + Sound ENTITY_MULE_HURT = getSound("entity.mule.hurt"); + Sound ENTITY_MULE_JUMP = getSound("entity.mule.jump"); + Sound ENTITY_OCELOT_AMBIENT = getSound("entity.ocelot.ambient"); + Sound ENTITY_OCELOT_DEATH = getSound("entity.ocelot.death"); + Sound ENTITY_OCELOT_HURT = getSound("entity.ocelot.hurt"); + Sound ENTITY_PAINTING_BREAK = getSound("entity.painting.break"); + Sound ENTITY_PAINTING_PLACE = getSound("entity.painting.place"); + Sound ENTITY_PANDA_AGGRESSIVE_AMBIENT = getSound("entity.panda.aggressive_ambient"); + Sound ENTITY_PANDA_AMBIENT = getSound("entity.panda.ambient"); + Sound ENTITY_PANDA_BITE = getSound("entity.panda.bite"); + Sound ENTITY_PANDA_CANT_BREED = getSound("entity.panda.cant_breed"); + Sound ENTITY_PANDA_DEATH = getSound("entity.panda.death"); + Sound ENTITY_PANDA_EAT = getSound("entity.panda.eat"); + Sound ENTITY_PANDA_HURT = getSound("entity.panda.hurt"); + Sound ENTITY_PANDA_PRE_SNEEZE = getSound("entity.panda.pre_sneeze"); + Sound ENTITY_PANDA_SNEEZE = getSound("entity.panda.sneeze"); + Sound ENTITY_PANDA_STEP = getSound("entity.panda.step"); + Sound ENTITY_PANDA_WORRIED_AMBIENT = getSound("entity.panda.worried_ambient"); + Sound ENTITY_PARROT_AMBIENT = getSound("entity.parrot.ambient"); + Sound ENTITY_PARROT_DEATH = getSound("entity.parrot.death"); + Sound ENTITY_PARROT_EAT = getSound("entity.parrot.eat"); + Sound ENTITY_PARROT_FLY = getSound("entity.parrot.fly"); + Sound ENTITY_PARROT_HURT = getSound("entity.parrot.hurt"); + Sound ENTITY_PARROT_IMITATE_BLAZE = getSound("entity.parrot.imitate.blaze"); + Sound ENTITY_PARROT_IMITATE_BOGGED = getSound("entity.parrot.imitate.bogged"); + Sound ENTITY_PARROT_IMITATE_BREEZE = getSound("entity.parrot.imitate.breeze"); + Sound ENTITY_PARROT_IMITATE_CREAKING = getSound("entity.parrot.imitate.creaking"); + Sound ENTITY_PARROT_IMITATE_CREEPER = getSound("entity.parrot.imitate.creeper"); + Sound ENTITY_PARROT_IMITATE_DROWNED = getSound("entity.parrot.imitate.drowned"); + Sound ENTITY_PARROT_IMITATE_ELDER_GUARDIAN = getSound("entity.parrot.imitate.elder_guardian"); - Sound ENTITY_PARROT_IMITATE_ENDERMITE = getSound("entity.parrot.imitate.endermite"); + Sound ENTITY_PARROT_IMITATE_ENDER_DRAGON = getSound("entity.parrot.imitate.ender_dragon"); + + Sound ENTITY_PARROT_IMITATE_ENDERMITE = getSound("entity.parrot.imitate.endermite"); + Sound ENTITY_PARROT_IMITATE_EVOKER = getSound("entity.parrot.imitate.evoker"); + Sound ENTITY_PARROT_IMITATE_GHAST = getSound("entity.parrot.imitate.ghast"); + Sound ENTITY_PARROT_IMITATE_GUARDIAN = getSound("entity.parrot.imitate.guardian"); + Sound ENTITY_PARROT_IMITATE_HOGLIN = getSound("entity.parrot.imitate.hoglin"); + Sound ENTITY_PARROT_IMITATE_HUSK = getSound("entity.parrot.imitate.husk"); + Sound ENTITY_PARROT_IMITATE_ILLUSIONER = getSound("entity.parrot.imitate.illusioner"); + Sound ENTITY_PARROT_IMITATE_MAGMA_CUBE = getSound("entity.parrot.imitate.magma_cube"); + Sound ENTITY_PARROT_IMITATE_PHANTOM = getSound("entity.parrot.imitate.phantom"); + Sound ENTITY_PARROT_IMITATE_PIGLIN = getSound("entity.parrot.imitate.piglin"); + Sound ENTITY_PARROT_IMITATE_PIGLIN_BRUTE = getSound("entity.parrot.imitate.piglin_brute"); + Sound ENTITY_PARROT_IMITATE_PILLAGER = getSound("entity.parrot.imitate.pillager"); + Sound ENTITY_PARROT_IMITATE_RAVAGER = getSound("entity.parrot.imitate.ravager"); + Sound ENTITY_PARROT_IMITATE_SHULKER = getSound("entity.parrot.imitate.shulker"); + Sound ENTITY_PARROT_IMITATE_SILVERFISH = getSound("entity.parrot.imitate.silverfish"); + Sound ENTITY_PARROT_IMITATE_SKELETON = getSound("entity.parrot.imitate.skeleton"); + Sound ENTITY_PARROT_IMITATE_SLIME = getSound("entity.parrot.imitate.slime"); + Sound ENTITY_PARROT_IMITATE_SPIDER = getSound("entity.parrot.imitate.spider"); + Sound ENTITY_PARROT_IMITATE_STRAY = getSound("entity.parrot.imitate.stray"); + Sound ENTITY_PARROT_IMITATE_VEX = getSound("entity.parrot.imitate.vex"); + Sound ENTITY_PARROT_IMITATE_VINDICATOR = getSound("entity.parrot.imitate.vindicator"); + Sound ENTITY_PARROT_IMITATE_WARDEN = getSound("entity.parrot.imitate.warden"); + Sound ENTITY_PARROT_IMITATE_WITCH = getSound("entity.parrot.imitate.witch"); + Sound ENTITY_PARROT_IMITATE_WITHER = getSound("entity.parrot.imitate.wither"); + Sound ENTITY_PARROT_IMITATE_WITHER_SKELETON = getSound("entity.parrot.imitate.wither_skeleton"); + Sound ENTITY_PARROT_IMITATE_ZOGLIN = getSound("entity.parrot.imitate.zoglin"); + Sound ENTITY_PARROT_IMITATE_ZOMBIE = getSound("entity.parrot.imitate.zombie"); + Sound ENTITY_PARROT_IMITATE_ZOMBIE_VILLAGER = getSound("entity.parrot.imitate.zombie_villager"); + Sound ENTITY_PARROT_STEP = getSound("entity.parrot.step"); + Sound ENTITY_PHANTOM_AMBIENT = getSound("entity.phantom.ambient"); + Sound ENTITY_PHANTOM_BITE = getSound("entity.phantom.bite"); + Sound ENTITY_PHANTOM_DEATH = getSound("entity.phantom.death"); + Sound ENTITY_PHANTOM_FLAP = getSound("entity.phantom.flap"); + Sound ENTITY_PHANTOM_HURT = getSound("entity.phantom.hurt"); + Sound ENTITY_PHANTOM_SWOOP = getSound("entity.phantom.swoop"); - Sound ENTITY_PIGLIN_ADMIRING_ITEM = getSound("entity.piglin.admiring_item"); - Sound ENTITY_PIGLIN_AMBIENT = getSound("entity.piglin.ambient"); - Sound ENTITY_PIGLIN_ANGRY = getSound("entity.piglin.angry"); - Sound ENTITY_PIGLIN_BRUTE_AMBIENT = getSound("entity.piglin_brute.ambient"); - Sound ENTITY_PIGLIN_BRUTE_ANGRY = getSound("entity.piglin_brute.angry"); - Sound ENTITY_PIGLIN_BRUTE_CONVERTED_TO_ZOMBIFIED = getSound("entity.piglin_brute.converted_to_zombified"); - Sound ENTITY_PIGLIN_BRUTE_DEATH = getSound("entity.piglin_brute.death"); - Sound ENTITY_PIGLIN_BRUTE_HURT = getSound("entity.piglin_brute.hurt"); - Sound ENTITY_PIGLIN_BRUTE_STEP = getSound("entity.piglin_brute.step"); - Sound ENTITY_PIGLIN_CELEBRATE = getSound("entity.piglin.celebrate"); - Sound ENTITY_PIGLIN_CONVERTED_TO_ZOMBIFIED = getSound("entity.piglin.converted_to_zombified"); - Sound ENTITY_PIGLIN_DEATH = getSound("entity.piglin.death"); - Sound ENTITY_PIGLIN_HURT = getSound("entity.piglin.hurt"); - Sound ENTITY_PIGLIN_JEALOUS = getSound("entity.piglin.jealous"); - Sound ENTITY_PIGLIN_RETREAT = getSound("entity.piglin.retreat"); - Sound ENTITY_PIGLIN_STEP = getSound("entity.piglin.step"); + Sound ENTITY_PIG_AMBIENT = getSound("entity.pig.ambient"); + Sound ENTITY_PIG_DEATH = getSound("entity.pig.death"); + Sound ENTITY_PIG_HURT = getSound("entity.pig.hurt"); + Sound ENTITY_PIG_SADDLE = getSound("entity.pig.saddle"); + Sound ENTITY_PIG_STEP = getSound("entity.pig.step"); + + Sound ENTITY_PIGLIN_ADMIRING_ITEM = getSound("entity.piglin.admiring_item"); + + Sound ENTITY_PIGLIN_AMBIENT = getSound("entity.piglin.ambient"); + + Sound ENTITY_PIGLIN_ANGRY = getSound("entity.piglin.angry"); + + Sound ENTITY_PIGLIN_CELEBRATE = getSound("entity.piglin.celebrate"); + + Sound ENTITY_PIGLIN_CONVERTED_TO_ZOMBIFIED = getSound("entity.piglin.converted_to_zombified"); + + Sound ENTITY_PIGLIN_DEATH = getSound("entity.piglin.death"); + + Sound ENTITY_PIGLIN_HURT = getSound("entity.piglin.hurt"); + + Sound ENTITY_PIGLIN_JEALOUS = getSound("entity.piglin.jealous"); + + Sound ENTITY_PIGLIN_RETREAT = getSound("entity.piglin.retreat"); + + Sound ENTITY_PIGLIN_STEP = getSound("entity.piglin.step"); + + Sound ENTITY_PIGLIN_BRUTE_AMBIENT = getSound("entity.piglin_brute.ambient"); + + Sound ENTITY_PIGLIN_BRUTE_ANGRY = getSound("entity.piglin_brute.angry"); + + Sound ENTITY_PIGLIN_BRUTE_CONVERTED_TO_ZOMBIFIED = getSound("entity.piglin_brute.converted_to_zombified"); + + Sound ENTITY_PIGLIN_BRUTE_DEATH = getSound("entity.piglin_brute.death"); + + Sound ENTITY_PIGLIN_BRUTE_HURT = getSound("entity.piglin_brute.hurt"); + + Sound ENTITY_PIGLIN_BRUTE_STEP = getSound("entity.piglin_brute.step"); + Sound ENTITY_PILLAGER_AMBIENT = getSound("entity.pillager.ambient"); + Sound ENTITY_PILLAGER_CELEBRATE = getSound("entity.pillager.celebrate"); + Sound ENTITY_PILLAGER_DEATH = getSound("entity.pillager.death"); + Sound ENTITY_PILLAGER_HURT = getSound("entity.pillager.hurt"); + Sound ENTITY_PLAYER_ATTACK_CRIT = getSound("entity.player.attack.crit"); + Sound ENTITY_PLAYER_ATTACK_KNOCKBACK = getSound("entity.player.attack.knockback"); + Sound ENTITY_PLAYER_ATTACK_NODAMAGE = getSound("entity.player.attack.nodamage"); + Sound ENTITY_PLAYER_ATTACK_STRONG = getSound("entity.player.attack.strong"); + Sound ENTITY_PLAYER_ATTACK_SWEEP = getSound("entity.player.attack.sweep"); + Sound ENTITY_PLAYER_ATTACK_WEAK = getSound("entity.player.attack.weak"); + Sound ENTITY_PLAYER_BIG_FALL = getSound("entity.player.big_fall"); + Sound ENTITY_PLAYER_BREATH = getSound("entity.player.breath"); + Sound ENTITY_PLAYER_BURP = getSound("entity.player.burp"); + Sound ENTITY_PLAYER_DEATH = getSound("entity.player.death"); + Sound ENTITY_PLAYER_HURT = getSound("entity.player.hurt"); + Sound ENTITY_PLAYER_HURT_DROWN = getSound("entity.player.hurt_drown"); + Sound ENTITY_PLAYER_HURT_FREEZE = getSound("entity.player.hurt_freeze"); + Sound ENTITY_PLAYER_HURT_ON_FIRE = getSound("entity.player.hurt_on_fire"); + Sound ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH = getSound("entity.player.hurt_sweet_berry_bush"); + Sound ENTITY_PLAYER_LEVELUP = getSound("entity.player.levelup"); + Sound ENTITY_PLAYER_SMALL_FALL = getSound("entity.player.small_fall"); + Sound ENTITY_PLAYER_SPLASH = getSound("entity.player.splash"); + Sound ENTITY_PLAYER_SPLASH_HIGH_SPEED = getSound("entity.player.splash.high_speed"); + Sound ENTITY_PLAYER_SWIM = getSound("entity.player.swim"); + Sound ENTITY_PLAYER_TELEPORT = getSound("entity.player.teleport"); + Sound ENTITY_POLAR_BEAR_AMBIENT = getSound("entity.polar_bear.ambient"); + Sound ENTITY_POLAR_BEAR_AMBIENT_BABY = getSound("entity.polar_bear.ambient_baby"); + Sound ENTITY_POLAR_BEAR_DEATH = getSound("entity.polar_bear.death"); + Sound ENTITY_POLAR_BEAR_HURT = getSound("entity.polar_bear.hurt"); + Sound ENTITY_POLAR_BEAR_STEP = getSound("entity.polar_bear.step"); + Sound ENTITY_POLAR_BEAR_WARNING = getSound("entity.polar_bear.warning"); + Sound ENTITY_PUFFER_FISH_AMBIENT = getSound("entity.puffer_fish.ambient"); + Sound ENTITY_PUFFER_FISH_BLOW_OUT = getSound("entity.puffer_fish.blow_out"); + Sound ENTITY_PUFFER_FISH_BLOW_UP = getSound("entity.puffer_fish.blow_up"); + Sound ENTITY_PUFFER_FISH_DEATH = getSound("entity.puffer_fish.death"); + Sound ENTITY_PUFFER_FISH_FLOP = getSound("entity.puffer_fish.flop"); + Sound ENTITY_PUFFER_FISH_HURT = getSound("entity.puffer_fish.hurt"); + Sound ENTITY_PUFFER_FISH_STING = getSound("entity.puffer_fish.sting"); + Sound ENTITY_RABBIT_AMBIENT = getSound("entity.rabbit.ambient"); + Sound ENTITY_RABBIT_ATTACK = getSound("entity.rabbit.attack"); + Sound ENTITY_RABBIT_DEATH = getSound("entity.rabbit.death"); + Sound ENTITY_RABBIT_HURT = getSound("entity.rabbit.hurt"); + Sound ENTITY_RABBIT_JUMP = getSound("entity.rabbit.jump"); + Sound ENTITY_RAVAGER_AMBIENT = getSound("entity.ravager.ambient"); + Sound ENTITY_RAVAGER_ATTACK = getSound("entity.ravager.attack"); + Sound ENTITY_RAVAGER_CELEBRATE = getSound("entity.ravager.celebrate"); + Sound ENTITY_RAVAGER_DEATH = getSound("entity.ravager.death"); + Sound ENTITY_RAVAGER_HURT = getSound("entity.ravager.hurt"); + Sound ENTITY_RAVAGER_ROAR = getSound("entity.ravager.roar"); + Sound ENTITY_RAVAGER_STEP = getSound("entity.ravager.step"); + Sound ENTITY_RAVAGER_STUNNED = getSound("entity.ravager.stunned"); + Sound ENTITY_SALMON_AMBIENT = getSound("entity.salmon.ambient"); + Sound ENTITY_SALMON_DEATH = getSound("entity.salmon.death"); + Sound ENTITY_SALMON_FLOP = getSound("entity.salmon.flop"); + Sound ENTITY_SALMON_HURT = getSound("entity.salmon.hurt"); + Sound ENTITY_SHEEP_AMBIENT = getSound("entity.sheep.ambient"); + Sound ENTITY_SHEEP_DEATH = getSound("entity.sheep.death"); + Sound ENTITY_SHEEP_HURT = getSound("entity.sheep.hurt"); + Sound ENTITY_SHEEP_SHEAR = getSound("entity.sheep.shear"); + Sound ENTITY_SHEEP_STEP = getSound("entity.sheep.step"); + Sound ENTITY_SHULKER_AMBIENT = getSound("entity.shulker.ambient"); - Sound ENTITY_SHULKER_BULLET_HIT = getSound("entity.shulker_bullet.hit"); - Sound ENTITY_SHULKER_BULLET_HURT = getSound("entity.shulker_bullet.hurt"); + Sound ENTITY_SHULKER_CLOSE = getSound("entity.shulker.close"); + Sound ENTITY_SHULKER_DEATH = getSound("entity.shulker.death"); + Sound ENTITY_SHULKER_HURT = getSound("entity.shulker.hurt"); + Sound ENTITY_SHULKER_HURT_CLOSED = getSound("entity.shulker.hurt_closed"); + Sound ENTITY_SHULKER_OPEN = getSound("entity.shulker.open"); + Sound ENTITY_SHULKER_SHOOT = getSound("entity.shulker.shoot"); + Sound ENTITY_SHULKER_TELEPORT = getSound("entity.shulker.teleport"); + + Sound ENTITY_SHULKER_BULLET_HIT = getSound("entity.shulker_bullet.hit"); + + Sound ENTITY_SHULKER_BULLET_HURT = getSound("entity.shulker_bullet.hurt"); + Sound ENTITY_SILVERFISH_AMBIENT = getSound("entity.silverfish.ambient"); + Sound ENTITY_SILVERFISH_DEATH = getSound("entity.silverfish.death"); + Sound ENTITY_SILVERFISH_HURT = getSound("entity.silverfish.hurt"); + Sound ENTITY_SILVERFISH_STEP = getSound("entity.silverfish.step"); + Sound ENTITY_SKELETON_AMBIENT = getSound("entity.skeleton.ambient"); + Sound ENTITY_SKELETON_CONVERTED_TO_STRAY = getSound("entity.skeleton.converted_to_stray"); + Sound ENTITY_SKELETON_DEATH = getSound("entity.skeleton.death"); - Sound ENTITY_SKELETON_HORSE_AMBIENT = getSound("entity.skeleton_horse.ambient"); - Sound ENTITY_SKELETON_HORSE_AMBIENT_WATER = getSound("entity.skeleton_horse.ambient_water"); - Sound ENTITY_SKELETON_HORSE_DEATH = getSound("entity.skeleton_horse.death"); - Sound ENTITY_SKELETON_HORSE_GALLOP_WATER = getSound("entity.skeleton_horse.gallop_water"); - Sound ENTITY_SKELETON_HORSE_HURT = getSound("entity.skeleton_horse.hurt"); - Sound ENTITY_SKELETON_HORSE_JUMP_WATER = getSound("entity.skeleton_horse.jump_water"); - Sound ENTITY_SKELETON_HORSE_STEP_WATER = getSound("entity.skeleton_horse.step_water"); - Sound ENTITY_SKELETON_HORSE_SWIM = getSound("entity.skeleton_horse.swim"); + Sound ENTITY_SKELETON_HURT = getSound("entity.skeleton.hurt"); + Sound ENTITY_SKELETON_SHOOT = getSound("entity.skeleton.shoot"); + Sound ENTITY_SKELETON_STEP = getSound("entity.skeleton.step"); + + Sound ENTITY_SKELETON_HORSE_AMBIENT = getSound("entity.skeleton_horse.ambient"); + + Sound ENTITY_SKELETON_HORSE_AMBIENT_WATER = getSound("entity.skeleton_horse.ambient_water"); + + Sound ENTITY_SKELETON_HORSE_DEATH = getSound("entity.skeleton_horse.death"); + + Sound ENTITY_SKELETON_HORSE_GALLOP_WATER = getSound("entity.skeleton_horse.gallop_water"); + + Sound ENTITY_SKELETON_HORSE_HURT = getSound("entity.skeleton_horse.hurt"); + + Sound ENTITY_SKELETON_HORSE_JUMP_WATER = getSound("entity.skeleton_horse.jump_water"); + + Sound ENTITY_SKELETON_HORSE_STEP_WATER = getSound("entity.skeleton_horse.step_water"); + + Sound ENTITY_SKELETON_HORSE_SWIM = getSound("entity.skeleton_horse.swim"); + Sound ENTITY_SLIME_ATTACK = getSound("entity.slime.attack"); + Sound ENTITY_SLIME_DEATH = getSound("entity.slime.death"); + Sound ENTITY_SLIME_DEATH_SMALL = getSound("entity.slime.death_small"); + Sound ENTITY_SLIME_HURT = getSound("entity.slime.hurt"); + Sound ENTITY_SLIME_HURT_SMALL = getSound("entity.slime.hurt_small"); + Sound ENTITY_SLIME_JUMP = getSound("entity.slime.jump"); + Sound ENTITY_SLIME_JUMP_SMALL = getSound("entity.slime.jump_small"); + Sound ENTITY_SLIME_SQUISH = getSound("entity.slime.squish"); + Sound ENTITY_SLIME_SQUISH_SMALL = getSound("entity.slime.squish_small"); + Sound ENTITY_SNIFFER_DEATH = getSound("entity.sniffer.death"); + Sound ENTITY_SNIFFER_DIGGING = getSound("entity.sniffer.digging"); + Sound ENTITY_SNIFFER_DIGGING_STOP = getSound("entity.sniffer.digging_stop"); + Sound ENTITY_SNIFFER_DROP_SEED = getSound("entity.sniffer.drop_seed"); + Sound ENTITY_SNIFFER_EAT = getSound("entity.sniffer.eat"); + Sound ENTITY_SNIFFER_HAPPY = getSound("entity.sniffer.happy"); + Sound ENTITY_SNIFFER_HURT = getSound("entity.sniffer.hurt"); + Sound ENTITY_SNIFFER_IDLE = getSound("entity.sniffer.idle"); + Sound ENTITY_SNIFFER_SCENTING = getSound("entity.sniffer.scenting"); + Sound ENTITY_SNIFFER_SEARCHING = getSound("entity.sniffer.searching"); + Sound ENTITY_SNIFFER_SNIFFING = getSound("entity.sniffer.sniffing"); + Sound ENTITY_SNIFFER_STEP = getSound("entity.sniffer.step"); - Sound ENTITY_SNOWBALL_THROW = getSound("entity.snowball.throw"); + Sound ENTITY_SNOW_GOLEM_AMBIENT = getSound("entity.snow_golem.ambient"); + Sound ENTITY_SNOW_GOLEM_DEATH = getSound("entity.snow_golem.death"); + Sound ENTITY_SNOW_GOLEM_HURT = getSound("entity.snow_golem.hurt"); + Sound ENTITY_SNOW_GOLEM_SHEAR = getSound("entity.snow_golem.shear"); + Sound ENTITY_SNOW_GOLEM_SHOOT = getSound("entity.snow_golem.shoot"); + + Sound ENTITY_SNOWBALL_THROW = getSound("entity.snowball.throw"); + Sound ENTITY_SPIDER_AMBIENT = getSound("entity.spider.ambient"); + Sound ENTITY_SPIDER_DEATH = getSound("entity.spider.death"); + Sound ENTITY_SPIDER_HURT = getSound("entity.spider.hurt"); + Sound ENTITY_SPIDER_STEP = getSound("entity.spider.step"); + Sound ENTITY_SPLASH_POTION_BREAK = getSound("entity.splash_potion.break"); + Sound ENTITY_SPLASH_POTION_THROW = getSound("entity.splash_potion.throw"); + Sound ENTITY_SQUID_AMBIENT = getSound("entity.squid.ambient"); + Sound ENTITY_SQUID_DEATH = getSound("entity.squid.death"); + Sound ENTITY_SQUID_HURT = getSound("entity.squid.hurt"); + Sound ENTITY_SQUID_SQUIRT = getSound("entity.squid.squirt"); + Sound ENTITY_STRAY_AMBIENT = getSound("entity.stray.ambient"); + Sound ENTITY_STRAY_DEATH = getSound("entity.stray.death"); + Sound ENTITY_STRAY_HURT = getSound("entity.stray.hurt"); + Sound ENTITY_STRAY_STEP = getSound("entity.stray.step"); + Sound ENTITY_STRIDER_AMBIENT = getSound("entity.strider.ambient"); + Sound ENTITY_STRIDER_DEATH = getSound("entity.strider.death"); + Sound ENTITY_STRIDER_EAT = getSound("entity.strider.eat"); + Sound ENTITY_STRIDER_HAPPY = getSound("entity.strider.happy"); + Sound ENTITY_STRIDER_HURT = getSound("entity.strider.hurt"); + Sound ENTITY_STRIDER_RETREAT = getSound("entity.strider.retreat"); + Sound ENTITY_STRIDER_SADDLE = getSound("entity.strider.saddle"); + Sound ENTITY_STRIDER_STEP = getSound("entity.strider.step"); + Sound ENTITY_STRIDER_STEP_LAVA = getSound("entity.strider.step_lava"); + Sound ENTITY_TADPOLE_DEATH = getSound("entity.tadpole.death"); + Sound ENTITY_TADPOLE_FLOP = getSound("entity.tadpole.flop"); + Sound ENTITY_TADPOLE_GROW_UP = getSound("entity.tadpole.grow_up"); + Sound ENTITY_TADPOLE_HURT = getSound("entity.tadpole.hurt"); + Sound ENTITY_TNT_PRIMED = getSound("entity.tnt.primed"); + Sound ENTITY_TROPICAL_FISH_AMBIENT = getSound("entity.tropical_fish.ambient"); + Sound ENTITY_TROPICAL_FISH_DEATH = getSound("entity.tropical_fish.death"); + Sound ENTITY_TROPICAL_FISH_FLOP = getSound("entity.tropical_fish.flop"); + Sound ENTITY_TROPICAL_FISH_HURT = getSound("entity.tropical_fish.hurt"); + Sound ENTITY_TURTLE_AMBIENT_LAND = getSound("entity.turtle.ambient_land"); + Sound ENTITY_TURTLE_DEATH = getSound("entity.turtle.death"); + Sound ENTITY_TURTLE_DEATH_BABY = getSound("entity.turtle.death_baby"); + Sound ENTITY_TURTLE_EGG_BREAK = getSound("entity.turtle.egg_break"); + Sound ENTITY_TURTLE_EGG_CRACK = getSound("entity.turtle.egg_crack"); + Sound ENTITY_TURTLE_EGG_HATCH = getSound("entity.turtle.egg_hatch"); + Sound ENTITY_TURTLE_HURT = getSound("entity.turtle.hurt"); + Sound ENTITY_TURTLE_HURT_BABY = getSound("entity.turtle.hurt_baby"); + Sound ENTITY_TURTLE_LAY_EGG = getSound("entity.turtle.lay_egg"); + Sound ENTITY_TURTLE_SHAMBLE = getSound("entity.turtle.shamble"); + Sound ENTITY_TURTLE_SHAMBLE_BABY = getSound("entity.turtle.shamble_baby"); + Sound ENTITY_TURTLE_SWIM = getSound("entity.turtle.swim"); + Sound ENTITY_VEX_AMBIENT = getSound("entity.vex.ambient"); + Sound ENTITY_VEX_CHARGE = getSound("entity.vex.charge"); + Sound ENTITY_VEX_DEATH = getSound("entity.vex.death"); + Sound ENTITY_VEX_HURT = getSound("entity.vex.hurt"); + Sound ENTITY_VILLAGER_AMBIENT = getSound("entity.villager.ambient"); + Sound ENTITY_VILLAGER_CELEBRATE = getSound("entity.villager.celebrate"); + Sound ENTITY_VILLAGER_DEATH = getSound("entity.villager.death"); + Sound ENTITY_VILLAGER_HURT = getSound("entity.villager.hurt"); + Sound ENTITY_VILLAGER_NO = getSound("entity.villager.no"); + Sound ENTITY_VILLAGER_TRADE = getSound("entity.villager.trade"); + Sound ENTITY_VILLAGER_WORK_ARMORER = getSound("entity.villager.work_armorer"); + Sound ENTITY_VILLAGER_WORK_BUTCHER = getSound("entity.villager.work_butcher"); + Sound ENTITY_VILLAGER_WORK_CARTOGRAPHER = getSound("entity.villager.work_cartographer"); + Sound ENTITY_VILLAGER_WORK_CLERIC = getSound("entity.villager.work_cleric"); + Sound ENTITY_VILLAGER_WORK_FARMER = getSound("entity.villager.work_farmer"); + Sound ENTITY_VILLAGER_WORK_FISHERMAN = getSound("entity.villager.work_fisherman"); + Sound ENTITY_VILLAGER_WORK_FLETCHER = getSound("entity.villager.work_fletcher"); + Sound ENTITY_VILLAGER_WORK_LEATHERWORKER = getSound("entity.villager.work_leatherworker"); + Sound ENTITY_VILLAGER_WORK_LIBRARIAN = getSound("entity.villager.work_librarian"); + Sound ENTITY_VILLAGER_WORK_MASON = getSound("entity.villager.work_mason"); + Sound ENTITY_VILLAGER_WORK_SHEPHERD = getSound("entity.villager.work_shepherd"); + Sound ENTITY_VILLAGER_WORK_TOOLSMITH = getSound("entity.villager.work_toolsmith"); + Sound ENTITY_VILLAGER_WORK_WEAPONSMITH = getSound("entity.villager.work_weaponsmith"); + Sound ENTITY_VILLAGER_YES = getSound("entity.villager.yes"); + Sound ENTITY_VINDICATOR_AMBIENT = getSound("entity.vindicator.ambient"); + Sound ENTITY_VINDICATOR_CELEBRATE = getSound("entity.vindicator.celebrate"); + Sound ENTITY_VINDICATOR_DEATH = getSound("entity.vindicator.death"); + Sound ENTITY_VINDICATOR_HURT = getSound("entity.vindicator.hurt"); + Sound ENTITY_WANDERING_TRADER_AMBIENT = getSound("entity.wandering_trader.ambient"); + Sound ENTITY_WANDERING_TRADER_DEATH = getSound("entity.wandering_trader.death"); + Sound ENTITY_WANDERING_TRADER_DISAPPEARED = getSound("entity.wandering_trader.disappeared"); + Sound ENTITY_WANDERING_TRADER_DRINK_MILK = getSound("entity.wandering_trader.drink_milk"); + Sound ENTITY_WANDERING_TRADER_DRINK_POTION = getSound("entity.wandering_trader.drink_potion"); + Sound ENTITY_WANDERING_TRADER_HURT = getSound("entity.wandering_trader.hurt"); + Sound ENTITY_WANDERING_TRADER_NO = getSound("entity.wandering_trader.no"); + Sound ENTITY_WANDERING_TRADER_REAPPEARED = getSound("entity.wandering_trader.reappeared"); + Sound ENTITY_WANDERING_TRADER_TRADE = getSound("entity.wandering_trader.trade"); + Sound ENTITY_WANDERING_TRADER_YES = getSound("entity.wandering_trader.yes"); + Sound ENTITY_WARDEN_AGITATED = getSound("entity.warden.agitated"); + Sound ENTITY_WARDEN_AMBIENT = getSound("entity.warden.ambient"); + Sound ENTITY_WARDEN_ANGRY = getSound("entity.warden.angry"); + Sound ENTITY_WARDEN_ATTACK_IMPACT = getSound("entity.warden.attack_impact"); + Sound ENTITY_WARDEN_DEATH = getSound("entity.warden.death"); + Sound ENTITY_WARDEN_DIG = getSound("entity.warden.dig"); + Sound ENTITY_WARDEN_EMERGE = getSound("entity.warden.emerge"); + Sound ENTITY_WARDEN_HEARTBEAT = getSound("entity.warden.heartbeat"); + Sound ENTITY_WARDEN_HURT = getSound("entity.warden.hurt"); + Sound ENTITY_WARDEN_LISTENING = getSound("entity.warden.listening"); + Sound ENTITY_WARDEN_LISTENING_ANGRY = getSound("entity.warden.listening_angry"); + Sound ENTITY_WARDEN_NEARBY_CLOSE = getSound("entity.warden.nearby_close"); + Sound ENTITY_WARDEN_NEARBY_CLOSER = getSound("entity.warden.nearby_closer"); + Sound ENTITY_WARDEN_NEARBY_CLOSEST = getSound("entity.warden.nearby_closest"); + Sound ENTITY_WARDEN_ROAR = getSound("entity.warden.roar"); + Sound ENTITY_WARDEN_SNIFF = getSound("entity.warden.sniff"); + Sound ENTITY_WARDEN_SONIC_BOOM = getSound("entity.warden.sonic_boom"); + Sound ENTITY_WARDEN_SONIC_CHARGE = getSound("entity.warden.sonic_charge"); + Sound ENTITY_WARDEN_STEP = getSound("entity.warden.step"); + Sound ENTITY_WARDEN_TENDRIL_CLICKS = getSound("entity.warden.tendril_clicks"); + Sound ENTITY_WIND_CHARGE_THROW = getSound("entity.wind_charge.throw"); + Sound ENTITY_WIND_CHARGE_WIND_BURST = getSound("entity.wind_charge.wind_burst"); + Sound ENTITY_WITCH_AMBIENT = getSound("entity.witch.ambient"); + Sound ENTITY_WITCH_CELEBRATE = getSound("entity.witch.celebrate"); + Sound ENTITY_WITCH_DEATH = getSound("entity.witch.death"); + Sound ENTITY_WITCH_DRINK = getSound("entity.witch.drink"); + Sound ENTITY_WITCH_HURT = getSound("entity.witch.hurt"); + Sound ENTITY_WITCH_THROW = getSound("entity.witch.throw"); + Sound ENTITY_WITHER_AMBIENT = getSound("entity.wither.ambient"); + Sound ENTITY_WITHER_BREAK_BLOCK = getSound("entity.wither.break_block"); + Sound ENTITY_WITHER_DEATH = getSound("entity.wither.death"); + Sound ENTITY_WITHER_HURT = getSound("entity.wither.hurt"); + Sound ENTITY_WITHER_SHOOT = getSound("entity.wither.shoot"); - Sound ENTITY_WITHER_SKELETON_AMBIENT = getSound("entity.wither_skeleton.ambient"); - Sound ENTITY_WITHER_SKELETON_DEATH = getSound("entity.wither_skeleton.death"); - Sound ENTITY_WITHER_SKELETON_HURT = getSound("entity.wither_skeleton.hurt"); - Sound ENTITY_WITHER_SKELETON_STEP = getSound("entity.wither_skeleton.step"); + Sound ENTITY_WITHER_SPAWN = getSound("entity.wither.spawn"); + + Sound ENTITY_WITHER_SKELETON_AMBIENT = getSound("entity.wither_skeleton.ambient"); + + Sound ENTITY_WITHER_SKELETON_DEATH = getSound("entity.wither_skeleton.death"); + + Sound ENTITY_WITHER_SKELETON_HURT = getSound("entity.wither_skeleton.hurt"); + + Sound ENTITY_WITHER_SKELETON_STEP = getSound("entity.wither_skeleton.step"); + Sound ENTITY_WOLF_AMBIENT = getSound("entity.wolf.ambient"); + Sound ENTITY_WOLF_DEATH = getSound("entity.wolf.death"); + Sound ENTITY_WOLF_GROWL = getSound("entity.wolf.growl"); + Sound ENTITY_WOLF_HOWL = getSound("entity.wolf.howl"); + Sound ENTITY_WOLF_HURT = getSound("entity.wolf.hurt"); + Sound ENTITY_WOLF_PANT = getSound("entity.wolf.pant"); + Sound ENTITY_WOLF_SHAKE = getSound("entity.wolf.shake"); + Sound ENTITY_WOLF_STEP = getSound("entity.wolf.step"); + Sound ENTITY_WOLF_WHINE = getSound("entity.wolf.whine"); + Sound ENTITY_ZOGLIN_AMBIENT = getSound("entity.zoglin.ambient"); + Sound ENTITY_ZOGLIN_ANGRY = getSound("entity.zoglin.angry"); + Sound ENTITY_ZOGLIN_ATTACK = getSound("entity.zoglin.attack"); + Sound ENTITY_ZOGLIN_DEATH = getSound("entity.zoglin.death"); + Sound ENTITY_ZOGLIN_HURT = getSound("entity.zoglin.hurt"); + Sound ENTITY_ZOGLIN_STEP = getSound("entity.zoglin.step"); + Sound ENTITY_ZOMBIE_AMBIENT = getSound("entity.zombie.ambient"); + Sound ENTITY_ZOMBIE_ATTACK_IRON_DOOR = getSound("entity.zombie.attack_iron_door"); + Sound ENTITY_ZOMBIE_ATTACK_WOODEN_DOOR = getSound("entity.zombie.attack_wooden_door"); + Sound ENTITY_ZOMBIE_BREAK_WOODEN_DOOR = getSound("entity.zombie.break_wooden_door"); + Sound ENTITY_ZOMBIE_CONVERTED_TO_DROWNED = getSound("entity.zombie.converted_to_drowned"); + Sound ENTITY_ZOMBIE_DEATH = getSound("entity.zombie.death"); + Sound ENTITY_ZOMBIE_DESTROY_EGG = getSound("entity.zombie.destroy_egg"); - Sound ENTITY_ZOMBIE_HORSE_AMBIENT = getSound("entity.zombie_horse.ambient"); - Sound ENTITY_ZOMBIE_HORSE_DEATH = getSound("entity.zombie_horse.death"); - Sound ENTITY_ZOMBIE_HORSE_HURT = getSound("entity.zombie_horse.hurt"); + Sound ENTITY_ZOMBIE_HURT = getSound("entity.zombie.hurt"); + Sound ENTITY_ZOMBIE_INFECT = getSound("entity.zombie.infect"); + Sound ENTITY_ZOMBIE_STEP = getSound("entity.zombie.step"); + + Sound ENTITY_ZOMBIE_HORSE_AMBIENT = getSound("entity.zombie_horse.ambient"); + + Sound ENTITY_ZOMBIE_HORSE_DEATH = getSound("entity.zombie_horse.death"); + + Sound ENTITY_ZOMBIE_HORSE_HURT = getSound("entity.zombie_horse.hurt"); + Sound ENTITY_ZOMBIE_VILLAGER_AMBIENT = getSound("entity.zombie_villager.ambient"); + Sound ENTITY_ZOMBIE_VILLAGER_CONVERTED = getSound("entity.zombie_villager.converted"); + Sound ENTITY_ZOMBIE_VILLAGER_CURE = getSound("entity.zombie_villager.cure"); + Sound ENTITY_ZOMBIE_VILLAGER_DEATH = getSound("entity.zombie_villager.death"); + Sound ENTITY_ZOMBIE_VILLAGER_HURT = getSound("entity.zombie_villager.hurt"); + Sound ENTITY_ZOMBIE_VILLAGER_STEP = getSound("entity.zombie_villager.step"); + Sound ENTITY_ZOMBIFIED_PIGLIN_AMBIENT = getSound("entity.zombified_piglin.ambient"); + Sound ENTITY_ZOMBIFIED_PIGLIN_ANGRY = getSound("entity.zombified_piglin.angry"); + Sound ENTITY_ZOMBIFIED_PIGLIN_DEATH = getSound("entity.zombified_piglin.death"); + Sound ENTITY_ZOMBIFIED_PIGLIN_HURT = getSound("entity.zombified_piglin.hurt"); + Sound EVENT_MOB_EFFECT_BAD_OMEN = getSound("event.mob_effect.bad_omen"); + Sound EVENT_MOB_EFFECT_RAID_OMEN = getSound("event.mob_effect.raid_omen"); + Sound EVENT_MOB_EFFECT_TRIAL_OMEN = getSound("event.mob_effect.trial_omen"); + Sound EVENT_RAID_HORN = getSound("event.raid.horn"); + Sound INTENTIONALLY_EMPTY = getSound("intentionally_empty"); + Sound ITEM_ARMOR_EQUIP_CHAIN = getSound("item.armor.equip_chain"); + Sound ITEM_ARMOR_EQUIP_DIAMOND = getSound("item.armor.equip_diamond"); + Sound ITEM_ARMOR_EQUIP_ELYTRA = getSound("item.armor.equip_elytra"); + Sound ITEM_ARMOR_EQUIP_GENERIC = getSound("item.armor.equip_generic"); + Sound ITEM_ARMOR_EQUIP_GOLD = getSound("item.armor.equip_gold"); + Sound ITEM_ARMOR_EQUIP_IRON = getSound("item.armor.equip_iron"); + Sound ITEM_ARMOR_EQUIP_LEATHER = getSound("item.armor.equip_leather"); + Sound ITEM_ARMOR_EQUIP_NETHERITE = getSound("item.armor.equip_netherite"); + Sound ITEM_ARMOR_EQUIP_TURTLE = getSound("item.armor.equip_turtle"); + Sound ITEM_ARMOR_EQUIP_WOLF = getSound("item.armor.equip_wolf"); + Sound ITEM_ARMOR_UNEQUIP_WOLF = getSound("item.armor.unequip_wolf"); + Sound ITEM_AXE_SCRAPE = getSound("item.axe.scrape"); + Sound ITEM_AXE_STRIP = getSound("item.axe.strip"); + Sound ITEM_AXE_WAX_OFF = getSound("item.axe.wax_off"); + Sound ITEM_BONE_MEAL_USE = getSound("item.bone_meal.use"); + Sound ITEM_BOOK_PAGE_TURN = getSound("item.book.page_turn"); + Sound ITEM_BOOK_PUT = getSound("item.book.put"); + Sound ITEM_BOTTLE_EMPTY = getSound("item.bottle.empty"); + Sound ITEM_BOTTLE_FILL = getSound("item.bottle.fill"); + Sound ITEM_BOTTLE_FILL_DRAGONBREATH = getSound("item.bottle.fill_dragonbreath"); + Sound ITEM_BRUSH_BRUSHING_GENERIC = getSound("item.brush.brushing.generic"); + Sound ITEM_BRUSH_BRUSHING_GRAVEL = getSound("item.brush.brushing.gravel"); + Sound ITEM_BRUSH_BRUSHING_GRAVEL_COMPLETE = getSound("item.brush.brushing.gravel.complete"); + Sound ITEM_BRUSH_BRUSHING_SAND = getSound("item.brush.brushing.sand"); + Sound ITEM_BRUSH_BRUSHING_SAND_COMPLETE = getSound("item.brush.brushing.sand.complete"); + Sound ITEM_BUCKET_EMPTY = getSound("item.bucket.empty"); + Sound ITEM_BUCKET_EMPTY_AXOLOTL = getSound("item.bucket.empty_axolotl"); + Sound ITEM_BUCKET_EMPTY_FISH = getSound("item.bucket.empty_fish"); + Sound ITEM_BUCKET_EMPTY_LAVA = getSound("item.bucket.empty_lava"); + Sound ITEM_BUCKET_EMPTY_POWDER_SNOW = getSound("item.bucket.empty_powder_snow"); + Sound ITEM_BUCKET_EMPTY_TADPOLE = getSound("item.bucket.empty_tadpole"); + Sound ITEM_BUCKET_FILL = getSound("item.bucket.fill"); + Sound ITEM_BUCKET_FILL_AXOLOTL = getSound("item.bucket.fill_axolotl"); + Sound ITEM_BUCKET_FILL_FISH = getSound("item.bucket.fill_fish"); + Sound ITEM_BUCKET_FILL_LAVA = getSound("item.bucket.fill_lava"); + Sound ITEM_BUCKET_FILL_POWDER_SNOW = getSound("item.bucket.fill_powder_snow"); + Sound ITEM_BUCKET_FILL_TADPOLE = getSound("item.bucket.fill_tadpole"); + Sound ITEM_BUNDLE_DROP_CONTENTS = getSound("item.bundle.drop_contents"); + Sound ITEM_BUNDLE_INSERT = getSound("item.bundle.insert"); + Sound ITEM_BUNDLE_INSERT_FAIL = getSound("item.bundle.insert_fail"); + Sound ITEM_BUNDLE_REMOVE_ONE = getSound("item.bundle.remove_one"); + Sound ITEM_CHORUS_FRUIT_TELEPORT = getSound("item.chorus_fruit.teleport"); + Sound ITEM_CROP_PLANT = getSound("item.crop.plant"); + Sound ITEM_CROSSBOW_HIT = getSound("item.crossbow.hit"); + Sound ITEM_CROSSBOW_LOADING_END = getSound("item.crossbow.loading_end"); + Sound ITEM_CROSSBOW_LOADING_MIDDLE = getSound("item.crossbow.loading_middle"); + Sound ITEM_CROSSBOW_LOADING_START = getSound("item.crossbow.loading_start"); + Sound ITEM_CROSSBOW_QUICK_CHARGE_1 = getSound("item.crossbow.quick_charge_1"); + Sound ITEM_CROSSBOW_QUICK_CHARGE_2 = getSound("item.crossbow.quick_charge_2"); + Sound ITEM_CROSSBOW_QUICK_CHARGE_3 = getSound("item.crossbow.quick_charge_3"); + Sound ITEM_CROSSBOW_SHOOT = getSound("item.crossbow.shoot"); + Sound ITEM_DYE_USE = getSound("item.dye.use"); + Sound ITEM_ELYTRA_FLYING = getSound("item.elytra.flying"); + Sound ITEM_FIRECHARGE_USE = getSound("item.firecharge.use"); + Sound ITEM_FLINTANDSTEEL_USE = getSound("item.flintandsteel.use"); + Sound ITEM_GLOW_INK_SAC_USE = getSound("item.glow_ink_sac.use"); + Sound ITEM_GOAT_HORN_SOUND_0 = getSound("item.goat_horn.sound.0"); + Sound ITEM_GOAT_HORN_SOUND_1 = getSound("item.goat_horn.sound.1"); + Sound ITEM_GOAT_HORN_SOUND_2 = getSound("item.goat_horn.sound.2"); + Sound ITEM_GOAT_HORN_SOUND_3 = getSound("item.goat_horn.sound.3"); + Sound ITEM_GOAT_HORN_SOUND_4 = getSound("item.goat_horn.sound.4"); + Sound ITEM_GOAT_HORN_SOUND_5 = getSound("item.goat_horn.sound.5"); + Sound ITEM_GOAT_HORN_SOUND_6 = getSound("item.goat_horn.sound.6"); + Sound ITEM_GOAT_HORN_SOUND_7 = getSound("item.goat_horn.sound.7"); + Sound ITEM_HOE_TILL = getSound("item.hoe.till"); - Sound ITEM_HONEYCOMB_WAX_ON = getSound("item.honeycomb.wax_on"); + Sound ITEM_HONEY_BOTTLE_DRINK = getSound("item.honey_bottle.drink"); + + Sound ITEM_HONEYCOMB_WAX_ON = getSound("item.honeycomb.wax_on"); + Sound ITEM_INK_SAC_USE = getSound("item.ink_sac.use"); + Sound ITEM_LODESTONE_COMPASS_LOCK = getSound("item.lodestone_compass.lock"); + Sound ITEM_MACE_SMASH_AIR = getSound("item.mace.smash_air"); + Sound ITEM_MACE_SMASH_GROUND = getSound("item.mace.smash_ground"); + Sound ITEM_MACE_SMASH_GROUND_HEAVY = getSound("item.mace.smash_ground_heavy"); + Sound ITEM_NETHER_WART_PLANT = getSound("item.nether_wart.plant"); + Sound ITEM_OMINOUS_BOTTLE_DISPOSE = getSound("item.ominous_bottle.dispose"); + Sound ITEM_SHIELD_BLOCK = getSound("item.shield.block"); + Sound ITEM_SHIELD_BREAK = getSound("item.shield.break"); + Sound ITEM_SHOVEL_FLATTEN = getSound("item.shovel.flatten"); + Sound ITEM_SPYGLASS_STOP_USING = getSound("item.spyglass.stop_using"); + Sound ITEM_SPYGLASS_USE = getSound("item.spyglass.use"); + Sound ITEM_TOTEM_USE = getSound("item.totem.use"); + Sound ITEM_TRIDENT_HIT = getSound("item.trident.hit"); + Sound ITEM_TRIDENT_HIT_GROUND = getSound("item.trident.hit_ground"); + Sound ITEM_TRIDENT_RETURN = getSound("item.trident.return"); + Sound ITEM_TRIDENT_RIPTIDE_1 = getSound("item.trident.riptide_1"); + Sound ITEM_TRIDENT_RIPTIDE_2 = getSound("item.trident.riptide_2"); + Sound ITEM_TRIDENT_RIPTIDE_3 = getSound("item.trident.riptide_3"); + Sound ITEM_TRIDENT_THROW = getSound("item.trident.throw"); + Sound ITEM_TRIDENT_THUNDER = getSound("item.trident.thunder"); + Sound ITEM_WOLF_ARMOR_BREAK = getSound("item.wolf_armor.break"); + Sound ITEM_WOLF_ARMOR_CRACK = getSound("item.wolf_armor.crack"); + Sound ITEM_WOLF_ARMOR_DAMAGE = getSound("item.wolf_armor.damage"); + Sound ITEM_WOLF_ARMOR_REPAIR = getSound("item.wolf_armor.repair"); + Sound MUSIC_CREATIVE = getSound("music.creative"); + Sound MUSIC_CREDITS = getSound("music.credits"); - Sound MUSIC_DISC_11 = getSound("music_disc.11"); - Sound MUSIC_DISC_13 = getSound("music_disc.13"); - Sound MUSIC_DISC_5 = getSound("music_disc.5"); - Sound MUSIC_DISC_BLOCKS = getSound("music_disc.blocks"); - Sound MUSIC_DISC_CAT = getSound("music_disc.cat"); - Sound MUSIC_DISC_CHIRP = getSound("music_disc.chirp"); - Sound MUSIC_DISC_CREATOR = getSound("music_disc.creator"); - Sound MUSIC_DISC_CREATOR_MUSIC_BOX = getSound("music_disc.creator_music_box"); - Sound MUSIC_DISC_FAR = getSound("music_disc.far"); - Sound MUSIC_DISC_MALL = getSound("music_disc.mall"); - Sound MUSIC_DISC_MELLOHI = getSound("music_disc.mellohi"); - Sound MUSIC_DISC_OTHERSIDE = getSound("music_disc.otherside"); - Sound MUSIC_DISC_PIGSTEP = getSound("music_disc.pigstep"); - Sound MUSIC_DISC_PRECIPICE = getSound("music_disc.precipice"); - Sound MUSIC_DISC_RELIC = getSound("music_disc.relic"); - Sound MUSIC_DISC_STAL = getSound("music_disc.stal"); - Sound MUSIC_DISC_STRAD = getSound("music_disc.strad"); - Sound MUSIC_DISC_WAIT = getSound("music_disc.wait"); - Sound MUSIC_DISC_WARD = getSound("music_disc.ward"); + Sound MUSIC_DRAGON = getSound("music.dragon"); + Sound MUSIC_END = getSound("music.end"); + Sound MUSIC_GAME = getSound("music.game"); + Sound MUSIC_MENU = getSound("music.menu"); + Sound MUSIC_NETHER_BASALT_DELTAS = getSound("music.nether.basalt_deltas"); + Sound MUSIC_NETHER_CRIMSON_FOREST = getSound("music.nether.crimson_forest"); + Sound MUSIC_NETHER_NETHER_WASTES = getSound("music.nether.nether_wastes"); + Sound MUSIC_NETHER_SOUL_SAND_VALLEY = getSound("music.nether.soul_sand_valley"); + Sound MUSIC_NETHER_WARPED_FOREST = getSound("music.nether.warped_forest"); + Sound MUSIC_OVERWORLD_BADLANDS = getSound("music.overworld.badlands"); + Sound MUSIC_OVERWORLD_BAMBOO_JUNGLE = getSound("music.overworld.bamboo_jungle"); + Sound MUSIC_OVERWORLD_CHERRY_GROVE = getSound("music.overworld.cherry_grove"); + Sound MUSIC_OVERWORLD_DEEP_DARK = getSound("music.overworld.deep_dark"); + Sound MUSIC_OVERWORLD_DESERT = getSound("music.overworld.desert"); + Sound MUSIC_OVERWORLD_DRIPSTONE_CAVES = getSound("music.overworld.dripstone_caves"); + Sound MUSIC_OVERWORLD_FLOWER_FOREST = getSound("music.overworld.flower_forest"); + Sound MUSIC_OVERWORLD_FOREST = getSound("music.overworld.forest"); + Sound MUSIC_OVERWORLD_FROZEN_PEAKS = getSound("music.overworld.frozen_peaks"); + Sound MUSIC_OVERWORLD_GROVE = getSound("music.overworld.grove"); + Sound MUSIC_OVERWORLD_JAGGED_PEAKS = getSound("music.overworld.jagged_peaks"); + Sound MUSIC_OVERWORLD_JUNGLE = getSound("music.overworld.jungle"); + Sound MUSIC_OVERWORLD_LUSH_CAVES = getSound("music.overworld.lush_caves"); + Sound MUSIC_OVERWORLD_MEADOW = getSound("music.overworld.meadow"); + Sound MUSIC_OVERWORLD_OLD_GROWTH_TAIGA = getSound("music.overworld.old_growth_taiga"); + Sound MUSIC_OVERWORLD_SNOWY_SLOPES = getSound("music.overworld.snowy_slopes"); + Sound MUSIC_OVERWORLD_SPARSE_JUNGLE = getSound("music.overworld.sparse_jungle"); + Sound MUSIC_OVERWORLD_STONY_PEAKS = getSound("music.overworld.stony_peaks"); + Sound MUSIC_OVERWORLD_SWAMP = getSound("music.overworld.swamp"); + Sound MUSIC_UNDER_WATER = getSound("music.under_water"); + + Sound MUSIC_DISC_11 = getSound("music_disc.11"); + + Sound MUSIC_DISC_13 = getSound("music_disc.13"); + + Sound MUSIC_DISC_5 = getSound("music_disc.5"); + + Sound MUSIC_DISC_BLOCKS = getSound("music_disc.blocks"); + + Sound MUSIC_DISC_CAT = getSound("music_disc.cat"); + + Sound MUSIC_DISC_CHIRP = getSound("music_disc.chirp"); + + Sound MUSIC_DISC_CREATOR = getSound("music_disc.creator"); + + Sound MUSIC_DISC_CREATOR_MUSIC_BOX = getSound("music_disc.creator_music_box"); + + Sound MUSIC_DISC_FAR = getSound("music_disc.far"); + + Sound MUSIC_DISC_MALL = getSound("music_disc.mall"); + + Sound MUSIC_DISC_MELLOHI = getSound("music_disc.mellohi"); + + Sound MUSIC_DISC_OTHERSIDE = getSound("music_disc.otherside"); + + Sound MUSIC_DISC_PIGSTEP = getSound("music_disc.pigstep"); + + Sound MUSIC_DISC_PRECIPICE = getSound("music_disc.precipice"); + + Sound MUSIC_DISC_RELIC = getSound("music_disc.relic"); + + Sound MUSIC_DISC_STAL = getSound("music_disc.stal"); + + Sound MUSIC_DISC_STRAD = getSound("music_disc.strad"); + + Sound MUSIC_DISC_WAIT = getSound("music_disc.wait"); + + Sound MUSIC_DISC_WARD = getSound("music_disc.ward"); + Sound PARTICLE_SOUL_ESCAPE = getSound("particle.soul_escape"); + Sound UI_BUTTON_CLICK = getSound("ui.button.click"); + Sound UI_CARTOGRAPHY_TABLE_TAKE_RESULT = getSound("ui.cartography_table.take_result"); + Sound UI_HUD_BUBBLE_POP = getSound("ui.hud.bubble_pop"); + Sound UI_LOOM_SELECT_PATTERN = getSound("ui.loom.select_pattern"); + Sound UI_LOOM_TAKE_RESULT = getSound("ui.loom.take_result"); + Sound UI_STONECUTTER_SELECT_RECIPE = getSound("ui.stonecutter.select_recipe"); + Sound UI_STONECUTTER_TAKE_RESULT = getSound("ui.stonecutter.take_result"); + Sound UI_TOAST_CHALLENGE_COMPLETE = getSound("ui.toast.challenge_complete"); + Sound UI_TOAST_IN = getSound("ui.toast.in"); + Sound UI_TOAST_OUT = getSound("ui.toast.out"); + Sound WEATHER_RAIN = getSound("weather.rain"); + Sound WEATHER_RAIN_ABOVE = getSound("weather.rain.above"); + // End generate - Sound @NotNull private static Sound getSound(@NotNull String key) { diff --git a/paper-api/src/main/java/org/bukkit/Statistic.java b/paper-api/src/main/java/org/bukkit/Statistic.java index 4ce888688d..fa324a820d 100644 --- a/paper-api/src/main/java/org/bukkit/Statistic.java +++ b/paper-api/src/main/java/org/bukkit/Statistic.java @@ -7,92 +7,95 @@ import org.jetbrains.annotations.NotNull; * Represents a countable statistic, which is tracked by the server. */ public enum Statistic implements Keyed { - DAMAGE_DEALT, - DAMAGE_TAKEN, - DEATHS, - MOB_KILLS, - PLAYER_KILLS, - FISH_CAUGHT, + // Start generate - StatisticCustom + // @GeneratedFrom 1.21.4 ANIMALS_BRED, - LEAVE_GAME, - JUMP, - DROP_COUNT, - DROP(Type.ITEM), - PICKUP(Type.ITEM), - /** - * Name is misleading, actually records ticks played. - */ - PLAY_ONE_MINUTE, - TOTAL_WORLD_TIME, - WALK_ONE_CM, - WALK_ON_WATER_ONE_CM, - FALL_ONE_CM, - SNEAK_TIME, - CLIMB_ONE_CM, - FLY_ONE_CM, - WALK_UNDER_WATER_ONE_CM, - MINECART_ONE_CM, - BOAT_ONE_CM, - PIG_ONE_CM, - HORSE_ONE_CM, - SPRINT_ONE_CM, - CROUCH_ONE_CM, AVIATE_ONE_CM, - MINE_BLOCK(Type.BLOCK), - USE_ITEM(Type.ITEM), - BREAK_ITEM(Type.ITEM), - CRAFT_ITEM(Type.ITEM), - KILL_ENTITY(Type.ENTITY), - ENTITY_KILLED_BY(Type.ENTITY), - TIME_SINCE_DEATH, - TALKED_TO_VILLAGER, - TRADED_WITH_VILLAGER, - CAKE_SLICES_EATEN, - CAULDRON_FILLED, - CAULDRON_USED, + BELL_RING, + BOAT_ONE_CM, ARMOR_CLEANED, BANNER_CLEANED, - BREWINGSTAND_INTERACTION, - BEACON_INTERACTION, - DROPPER_INSPECTED, - HOPPER_INSPECTED, - DISPENSER_INSPECTED, - NOTEBLOCK_PLAYED, - NOTEBLOCK_TUNED, - FLOWER_POTTED, - TRAPPED_CHEST_TRIGGERED, - ENDERCHEST_OPENED, - ITEM_ENCHANTED, - RECORD_PLAYED, - FURNACE_INTERACTION, - CRAFTING_TABLE_INTERACTION, - CHEST_OPENED, - SLEEP_IN_BED, - SHULKER_BOX_OPENED, - TIME_SINCE_REST, - SWIM_ONE_CM, + CLEAN_SHULKER_BOX, + CLIMB_ONE_CM, + CROUCH_ONE_CM, + DAMAGE_ABSORBED, + DAMAGE_BLOCKED_BY_SHIELD, + DAMAGE_DEALT, DAMAGE_DEALT_ABSORBED, DAMAGE_DEALT_RESISTED, - DAMAGE_BLOCKED_BY_SHIELD, - DAMAGE_ABSORBED, DAMAGE_RESISTED, - CLEAN_SHULKER_BOX, - OPEN_BARREL, + DAMAGE_TAKEN, + DEATHS, + DROP_COUNT, + CAKE_SLICES_EATEN, + ITEM_ENCHANTED, + FALL_ONE_CM, + CAULDRON_FILLED, + FISH_CAUGHT, + FLY_ONE_CM, + HORSE_ONE_CM, + DISPENSER_INSPECTED, + DROPPER_INSPECTED, + HOPPER_INSPECTED, + INTERACT_WITH_ANVIL, + BEACON_INTERACTION, INTERACT_WITH_BLAST_FURNACE, - INTERACT_WITH_SMOKER, - INTERACT_WITH_LECTERN, + BREWINGSTAND_INTERACTION, INTERACT_WITH_CAMPFIRE, INTERACT_WITH_CARTOGRAPHY_TABLE, + CRAFTING_TABLE_INTERACTION, + FURNACE_INTERACTION, + INTERACT_WITH_GRINDSTONE, + INTERACT_WITH_LECTERN, INTERACT_WITH_LOOM, + INTERACT_WITH_SMITHING_TABLE, + INTERACT_WITH_SMOKER, INTERACT_WITH_STONECUTTER, - BELL_RING, + JUMP, + LEAVE_GAME, + MINECART_ONE_CM, + MOB_KILLS, + OPEN_BARREL, + CHEST_OPENED, + ENDERCHEST_OPENED, + SHULKER_BOX_OPENED, + PIG_ONE_CM, + NOTEBLOCK_PLAYED, + RECORD_PLAYED, + PLAY_ONE_MINUTE, + PLAYER_KILLS, + FLOWER_POTTED, RAID_TRIGGER, RAID_WIN, - INTERACT_WITH_ANVIL, - INTERACT_WITH_GRINDSTONE, + SLEEP_IN_BED, + SNEAK_TIME, + SPRINT_ONE_CM, + STRIDER_ONE_CM, + SWIM_ONE_CM, + TALKED_TO_VILLAGER, TARGET_HIT, - INTERACT_WITH_SMITHING_TABLE, - STRIDER_ONE_CM; + TIME_SINCE_DEATH, + TIME_SINCE_REST, + TOTAL_WORLD_TIME, + TRADED_WITH_VILLAGER, + TRAPPED_CHEST_TRIGGERED, + NOTEBLOCK_TUNED, + CAULDRON_USED, + WALK_ON_WATER_ONE_CM, + WALK_ONE_CM, + WALK_UNDER_WATER_ONE_CM, + // End generate - StatisticCustom + // Start generate - StatisticType + // @GeneratedFrom 1.21.4 + BREAK_ITEM(Type.ITEM), + CRAFT_ITEM(Type.ITEM), + DROP(Type.ITEM), + KILL_ENTITY(Type.ENTITY), + ENTITY_KILLED_BY(Type.ENTITY), + MINE_BLOCK(Type.BLOCK), + PICKUP(Type.ITEM), + USE_ITEM(Type.ITEM); + // End generate - StatisticType private final Type type; private final NamespacedKey key; diff --git a/paper-api/src/main/java/org/bukkit/Tag.java b/paper-api/src/main/java/org/bukkit/Tag.java index 193858a281..5cd43a20a5 100644 --- a/paper-api/src/main/java/org/bukkit/Tag.java +++ b/paper-api/src/main/java/org/bukkit/Tag.java @@ -19,814 +19,826 @@ import org.jetbrains.annotations.NotNull; */ public interface Tag extends Keyed { - /** - * Key for the built in block registry. - */ + // Start generate - Tag + // @GeneratedFrom 1.21.4 String REGISTRY_BLOCKS = "blocks"; - /** - * Vanilla block tag representing all colors of wool. - */ - Tag WOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wool"), Material.class); - /** - * Vanilla block tag representing all plank variants. - */ - Tag PLANKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("planks"), Material.class); - /** - * Vanilla block tag representing all regular/mossy/cracked/chiseled stone - * bricks. - */ - Tag STONE_BRICKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_bricks"), Material.class); - /** - * Vanilla block tag representing all wooden buttons. - */ - Tag WOODEN_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_buttons"), Material.class); - /** - * Vanilla block tag representing all stone buttons. - */ - Tag STONE_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_buttons"), Material.class); - /** - * Vanilla block tag representing all buttons (inherits from - * {@link #WOODEN_BUTTONS}. - */ + + Tag ACACIA_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("acacia_logs"), Material.class); + + Tag AIR = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("air"), Material.class); + + Tag ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), Material.class); + + Tag ALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_signs"), Material.class); + + Tag ANCIENT_CITY_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ancient_city_replaceable"), Material.class); + + Tag ANIMALS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("animals_spawnable_on"), Material.class); + + Tag ANVIL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("anvil"), Material.class); + + Tag ARMADILLO_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("armadillo_spawnable_on"), Material.class); + + Tag AXOLOTLS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("axolotls_spawnable_on"), Material.class); + + Tag AZALEA_GROWS_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("azalea_grows_on"), Material.class); + + Tag AZALEA_ROOT_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("azalea_root_replaceable"), Material.class); + + Tag BADLANDS_TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("badlands_terracotta"), Material.class); + + Tag BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class); + + Tag BAMBOO_PLANTABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_plantable_on"), Material.class); + + Tag BANNERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("banners"), Material.class); + + Tag BASE_STONE_NETHER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_nether"), Material.class); + + Tag BASE_STONE_OVERWORLD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_overworld"), Material.class); + + Tag BATS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bats_spawnable_on"), Material.class); + + Tag BEACON_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beacon_base_blocks"), Material.class); + + Tag BEDS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beds"), Material.class); + + Tag BEE_ATTRACTIVE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_attractive"), Material.class); + + Tag BEE_GROWABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_growables"), Material.class); + + Tag BEEHIVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beehives"), Material.class); + + Tag BIG_DRIPLEAF_PLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("big_dripleaf_placeable"), Material.class); + + Tag BIRCH_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("birch_logs"), Material.class); + + Tag BLOCKS_WIND_CHARGE_EXPLOSIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("blocks_wind_charge_explosions"), Material.class); + Tag BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("buttons"), Material.class); - /** - * Vanilla block tag representing all colors of carpet. - */ + + Tag CAMEL_SAND_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("camel_sand_step_sound_blocks"), Material.class); + + Tag CAMPFIRES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("campfires"), Material.class); + + Tag CANDLE_CAKES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candle_cakes"), Material.class); + + Tag CANDLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candles"), Material.class); + + Tag CAULDRONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cauldrons"), Material.class); + + Tag CAVE_VINES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cave_vines"), Material.class); + + Tag CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), Material.class); + + Tag CHERRY_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cherry_logs"), Material.class); + + Tag CLIMBABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("climbable"), Material.class); + + Tag COAL_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coal_ores"), Material.class); + + Tag COMBINATION_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("combination_step_sound_blocks"), Material.class); + + Tag COMPLETES_FIND_TREE_TUTORIAL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("completes_find_tree_tutorial"), Material.class); + + Tag CONCRETE_POWDER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("concrete_powder"), Material.class); + + Tag CONVERTABLE_TO_MUD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("convertable_to_mud"), Material.class); + + Tag COPPER_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("copper_ores"), Material.class); + + Tag CORAL_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coral_blocks"), Material.class); + + Tag CORAL_PLANTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coral_plants"), Material.class); + + Tag CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("corals"), Material.class); + + Tag CRIMSON_STEMS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crimson_stems"), Material.class); + + Tag CROPS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crops"), Material.class); + + Tag CRYSTAL_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crystal_sound_blocks"), Material.class); + + Tag DAMPENS_VIBRATIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dampens_vibrations"), Material.class); + + Tag DARK_OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dark_oak_logs"), Material.class); + + Tag DEAD_BUSH_MAY_PLACE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dead_bush_may_place_on"), Material.class); + + Tag DEEPSLATE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("deepslate_ore_replaceables"), Material.class); + + Tag DIAMOND_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("diamond_ores"), Material.class); + + Tag DIRT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dirt"), Material.class); + + Tag DOES_NOT_BLOCK_HOPPERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("does_not_block_hoppers"), Material.class); + + Tag DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("doors"), Material.class); + + Tag DRAGON_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dragon_immune"), Material.class); + + Tag DRAGON_TRANSPARENT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dragon_transparent"), Material.class); + + Tag DRIPSTONE_REPLACEABLE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dripstone_replaceable_blocks"), Material.class); + + Tag EMERALD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("emerald_ores"), Material.class); + + Tag ENCHANTMENT_POWER_PROVIDER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_provider"), Material.class); + + Tag ENCHANTMENT_POWER_TRANSMITTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_transmitter"), Material.class); + + Tag ENDERMAN_HOLDABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enderman_holdable"), Material.class); + + Tag FALL_DAMAGE_RESETTING = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fall_damage_resetting"), Material.class); + + Tag FEATURES_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("features_cannot_replace"), Material.class); + + Tag FENCE_GATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fence_gates"), Material.class); + + Tag FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fences"), Material.class); + + Tag FIRE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fire"), Material.class); + + Tag FLOWER_POTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flower_pots"), Material.class); + + Tag FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flowers"), Material.class); + + Tag FOXES_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("foxes_spawnable_on"), Material.class); + + Tag FROG_PREFER_JUMP_TO = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("frog_prefer_jump_to"), Material.class); + + Tag FROGS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("frogs_spawnable_on"), Material.class); + + Tag GEODE_INVALID_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("geode_invalid_blocks"), Material.class); + + Tag GOATS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("goats_spawnable_on"), Material.class); + + Tag GOLD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("gold_ores"), Material.class); + + Tag GUARDED_BY_PIGLINS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("guarded_by_piglins"), Material.class); + + Tag HOGLIN_REPELLENTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("hoglin_repellents"), Material.class); + + Tag ICE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ice"), Material.class); + + Tag IMPERMEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("impermeable"), Material.class); + + Tag INCORRECT_FOR_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_diamond_tool"), Material.class); + + Tag INCORRECT_FOR_GOLD_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_gold_tool"), Material.class); + + Tag INCORRECT_FOR_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_iron_tool"), Material.class); + + Tag INCORRECT_FOR_NETHERITE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_netherite_tool"), Material.class); + + Tag INCORRECT_FOR_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_stone_tool"), Material.class); + + Tag INCORRECT_FOR_WOODEN_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_wooden_tool"), Material.class); + + Tag INFINIBURN_END = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_end"), Material.class); + + Tag INFINIBURN_NETHER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_nether"), Material.class); + + Tag INFINIBURN_OVERWORLD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_overworld"), Material.class); + + Tag INSIDE_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("inside_step_sound_blocks"), Material.class); + + Tag INVALID_SPAWN_INSIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("invalid_spawn_inside"), Material.class); + + Tag IRON_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("iron_ores"), Material.class); + + Tag JUNGLE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("jungle_logs"), Material.class); + + Tag LAPIS_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lapis_ores"), Material.class); + + Tag LAVA_POOL_STONE_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lava_pool_stone_cannot_replace"), Material.class); + + Tag LEAVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("leaves"), Material.class); + + Tag LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs"), Material.class); + + Tag LOGS_THAT_BURN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs_that_burn"), Material.class); + + Tag LUSH_GROUND_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lush_ground_replaceable"), Material.class); + + Tag MAINTAINS_FARMLAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("maintains_farmland"), Material.class); + + Tag MANGROVE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_logs"), Material.class); + + Tag MANGROVE_LOGS_CAN_GROW_THROUGH = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_logs_can_grow_through"), Material.class); + + Tag MANGROVE_ROOTS_CAN_GROW_THROUGH = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_roots_can_grow_through"), Material.class); + + Tag MINEABLE_AXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/axe"), Material.class); + + Tag MINEABLE_HOE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/hoe"), Material.class); + + Tag MINEABLE_PICKAXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/pickaxe"), Material.class); + + Tag MINEABLE_SHOVEL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/shovel"), Material.class); + + Tag MOB_INTERACTABLE_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mob_interactable_doors"), Material.class); + + Tag MOOSHROOMS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mooshrooms_spawnable_on"), Material.class); + + Tag MOSS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("moss_replaceable"), Material.class); + + Tag MUSHROOM_GROW_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mushroom_grow_block"), Material.class); + + Tag NEEDS_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_diamond_tool"), Material.class); + + Tag NEEDS_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_iron_tool"), Material.class); + + Tag NEEDS_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_stone_tool"), Material.class); + + Tag NETHER_CARVER_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("nether_carver_replaceables"), Material.class); + + Tag NYLIUM = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("nylium"), Material.class); + + Tag OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("oak_logs"), Material.class); + + Tag OCCLUDES_VIBRATION_SIGNALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("occludes_vibration_signals"), Material.class); + + Tag OVERWORLD_CARVER_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("overworld_carver_replaceables"), Material.class); + + Tag OVERWORLD_NATURAL_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("overworld_natural_logs"), Material.class); + + Tag PALE_OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("pale_oak_logs"), Material.class); + + Tag PARROTS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("parrots_spawnable_on"), Material.class); + + Tag PIGLIN_REPELLENTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("piglin_repellents"), Material.class); + + Tag PLANKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("planks"), Material.class); + + Tag POLAR_BEARS_SPAWNABLE_ON_ALTERNATE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("polar_bears_spawnable_on_alternate"), Material.class); + + Tag PORTALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("portals"), Material.class); + + Tag PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("pressure_plates"), Material.class); + + Tag PREVENT_MOB_SPAWNING_INSIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("prevent_mob_spawning_inside"), Material.class); + + Tag RABBITS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("rabbits_spawnable_on"), Material.class); + + Tag RAILS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("rails"), Material.class); + + Tag REDSTONE_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("redstone_ores"), Material.class); + + Tag REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable"), Material.class); + + Tag REPLACEABLE_BY_TREES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable_by_trees"), Material.class); + + Tag SAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sand"), Material.class); + + Tag SAPLINGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("saplings"), Material.class); + + Tag SCULK_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sculk_replaceable"), Material.class); + + Tag SCULK_REPLACEABLE_WORLD_GEN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sculk_replaceable_world_gen"), Material.class); + + Tag SHULKER_BOXES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("shulker_boxes"), Material.class); + + Tag SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("signs"), Material.class); + + Tag SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("slabs"), Material.class); + + Tag SMALL_DRIPLEAF_PLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("small_dripleaf_placeable"), Material.class); + + Tag SMALL_FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("small_flowers"), Material.class); + + Tag SMELTS_TO_GLASS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("smelts_to_glass"), Material.class); + + Tag SNAPS_GOAT_HORN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snaps_goat_horn"), Material.class); + + Tag SNIFFER_DIGGABLE_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_diggable_block"), Material.class); + + Tag SNIFFER_EGG_HATCH_BOOST = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_egg_hatch_boost"), Material.class); + + Tag SNOW = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow"), Material.class); + + Tag SNOW_LAYER_CAN_SURVIVE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow_layer_can_survive_on"), Material.class); + + Tag SNOW_LAYER_CANNOT_SURVIVE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow_layer_cannot_survive_on"), Material.class); + + Tag SOUL_FIRE_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("soul_fire_base_blocks"), Material.class); + + Tag SOUL_SPEED_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("soul_speed_blocks"), Material.class); + + Tag SPRUCE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("spruce_logs"), Material.class); + + Tag STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stairs"), Material.class); + + Tag STANDING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("standing_signs"), Material.class); + + Tag STONE_BRICKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_bricks"), Material.class); + + Tag STONE_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_buttons"), Material.class); + + Tag STONE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_ore_replaceables"), Material.class); + + Tag STONE_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_pressure_plates"), Material.class); + + Tag STRIDER_WARM_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("strider_warm_blocks"), Material.class); + + Tag SWORD_EFFICIENT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sword_efficient"), Material.class); + + Tag TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("terracotta"), Material.class); + + Tag TRAIL_RUINS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trail_ruins_replaceable"), Material.class); + + Tag TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trapdoors"), Material.class); + + Tag UNDERWATER_BONEMEALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("underwater_bonemeals"), Material.class); + + Tag UNSTABLE_BOTTOM_CENTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("unstable_bottom_center"), Material.class); + + Tag VALID_SPAWN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("valid_spawn"), Material.class); + + Tag VIBRATION_RESONATORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("vibration_resonators"), Material.class); + + Tag WALL_CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_corals"), Material.class); + + Tag WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), Material.class); + + Tag WALL_POST_OVERRIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_post_override"), Material.class); + + Tag WALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_signs"), Material.class); + + Tag WALLS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("walls"), Material.class); + + Tag WARPED_STEMS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("warped_stems"), Material.class); + + Tag WART_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wart_blocks"), Material.class); + + Tag WITHER_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wither_immune"), Material.class); + + Tag WITHER_SUMMON_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wither_summon_base_blocks"), Material.class); + + Tag WOLVES_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wolves_spawnable_on"), Material.class); + + Tag WOODEN_BUTTONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_buttons"), Material.class); + + Tag WOODEN_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_doors"), Material.class); + + Tag WOODEN_FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_fences"), Material.class); + + Tag WOODEN_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_pressure_plates"), Material.class); + + Tag WOODEN_SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_slabs"), Material.class); + + Tag WOODEN_STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_stairs"), Material.class); + + Tag WOODEN_TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_trapdoors"), Material.class); + + Tag WOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wool"), Material.class); + Tag WOOL_CARPETS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wool_carpets"), Material.class); + + String REGISTRY_ITEMS = "items"; + + Tag ITEMS_ACACIA_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("acacia_logs"), Material.class); + + Tag ITEMS_ANVIL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("anvil"), Material.class); + + Tag ITEMS_ARMADILLO_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("armadillo_food"), Material.class); + + Tag ITEMS_ARROWS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("arrows"), Material.class); + + Tag ITEMS_AXES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axes"), Material.class); + + Tag ITEMS_AXOLOTL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axolotl_food"), Material.class); + + Tag ITEMS_BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bamboo_blocks"), Material.class); + + Tag ITEMS_BANNERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("banners"), Material.class); + + Tag ITEMS_BEACON_PAYMENT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("beacon_payment_items"), Material.class); + + Tag ITEMS_BEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("beds"), Material.class); + + Tag ITEMS_BEE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bee_food"), Material.class); + + Tag ITEMS_BIRCH_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("birch_logs"), Material.class); + + Tag ITEMS_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("boats"), Material.class); + + Tag ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class); + + Tag ITEMS_BREAKS_DECORATED_POTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("breaks_decorated_pots"), Material.class); + + Tag ITEMS_BREWING_FUEL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("brewing_fuel"), Material.class); + + Tag ITEMS_BUNDLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bundles"), Material.class); + + Tag ITEMS_BUTTONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("buttons"), Material.class); + + Tag ITEMS_CAMEL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("camel_food"), Material.class); + + Tag ITEMS_CANDLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("candles"), Material.class); + + Tag ITEMS_CAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cat_food"), Material.class); + + Tag ITEMS_CHERRY_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cherry_logs"), Material.class); + + Tag ITEMS_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_armor"), Material.class); + + Tag ITEMS_CHEST_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_boats"), Material.class); + + Tag ITEMS_CHICKEN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chicken_food"), Material.class); + + Tag ITEMS_CLUSTER_MAX_HARVESTABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cluster_max_harvestables"), Material.class); + + Tag ITEMS_COAL_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("coal_ores"), Material.class); + + Tag ITEMS_COALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("coals"), Material.class); + + Tag ITEMS_COMPASSES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("compasses"), Material.class); + + Tag ITEMS_COMPLETES_FIND_TREE_TUTORIAL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("completes_find_tree_tutorial"), Material.class); + + Tag ITEMS_COPPER_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("copper_ores"), Material.class); + + Tag ITEMS_COW_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cow_food"), Material.class); + + Tag ITEMS_CREEPER_DROP_MUSIC_DISCS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("creeper_drop_music_discs"), Material.class); + + Tag ITEMS_CREEPER_IGNITERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("creeper_igniters"), Material.class); + + Tag ITEMS_CRIMSON_STEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("crimson_stems"), Material.class); + + Tag ITEMS_DAMPENS_VIBRATIONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dampens_vibrations"), Material.class); + + Tag ITEMS_DARK_OAK_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dark_oak_logs"), Material.class); + + Tag ITEMS_DECORATED_POT_INGREDIENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_ingredients"), Material.class); + + Tag ITEMS_DECORATED_POT_SHERDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_sherds"), Material.class); + + Tag ITEMS_DIAMOND_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("diamond_ores"), Material.class); + + Tag ITEMS_DIAMOND_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("diamond_tool_materials"), Material.class); + + Tag ITEMS_DIRT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dirt"), Material.class); + + Tag ITEMS_DOORS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("doors"), Material.class); + + Tag ITEMS_DROWNED_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("drowned_preferred_weapons"), Material.class); + + Tag ITEMS_DUPLICATES_ALLAYS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("duplicates_allays"), Material.class); + + Tag ITEMS_DYEABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dyeable"), Material.class); + + Tag ITEMS_EMERALD_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("emerald_ores"), Material.class); + + Tag ITEMS_ENCHANTABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/armor"), Material.class); + + Tag ITEMS_ENCHANTABLE_BOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/bow"), Material.class); + + Tag ITEMS_ENCHANTABLE_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/chest_armor"), Material.class); + + Tag ITEMS_ENCHANTABLE_CROSSBOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/crossbow"), Material.class); + + Tag ITEMS_ENCHANTABLE_DURABILITY = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/durability"), Material.class); + + Tag ITEMS_ENCHANTABLE_EQUIPPABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/equippable"), Material.class); + + Tag ITEMS_ENCHANTABLE_FIRE_ASPECT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fire_aspect"), Material.class); + + Tag ITEMS_ENCHANTABLE_FISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fishing"), Material.class); + + Tag ITEMS_ENCHANTABLE_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/foot_armor"), Material.class); + + Tag ITEMS_ENCHANTABLE_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/head_armor"), Material.class); + + Tag ITEMS_ENCHANTABLE_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/leg_armor"), Material.class); + + Tag ITEMS_ENCHANTABLE_MACE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mace"), Material.class); + + Tag ITEMS_ENCHANTABLE_MINING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining"), Material.class); + + Tag ITEMS_ENCHANTABLE_MINING_LOOT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining_loot"), Material.class); + + Tag ITEMS_ENCHANTABLE_SHARP_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sharp_weapon"), Material.class); + + Tag ITEMS_ENCHANTABLE_SWORD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sword"), Material.class); + + Tag ITEMS_ENCHANTABLE_TRIDENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/trident"), Material.class); + + Tag ITEMS_ENCHANTABLE_VANISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/vanishing"), Material.class); + + Tag ITEMS_ENCHANTABLE_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/weapon"), Material.class); + + Tag ITEMS_FENCE_GATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fence_gates"), Material.class); + + Tag ITEMS_FENCES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fences"), Material.class); + + Tag ITEMS_FISHES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fishes"), Material.class); + + Tag ITEMS_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("foot_armor"), Material.class); + + Tag ITEMS_FOX_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fox_food"), Material.class); + + Tag ITEMS_FREEZE_IMMUNE_WEARABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("freeze_immune_wearables"), Material.class); + + Tag ITEMS_FROG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("frog_food"), Material.class); + + Tag ITEMS_FURNACE_MINECART_FUEL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("furnace_minecart_fuel"), Material.class); + + Tag ITEMS_GAZE_DISGUISE_EQUIPMENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("gaze_disguise_equipment"), Material.class); + + Tag ITEMS_GOAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("goat_food"), Material.class); + + Tag ITEMS_GOLD_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("gold_ores"), Material.class); + + Tag ITEMS_GOLD_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("gold_tool_materials"), Material.class); + + Tag ITEMS_HANGING_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hanging_signs"), Material.class); + + Tag ITEMS_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("head_armor"), Material.class); + + Tag ITEMS_HOES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hoes"), Material.class); + + Tag ITEMS_HOGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hoglin_food"), Material.class); + + Tag ITEMS_HORSE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_food"), Material.class); + + Tag ITEMS_HORSE_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_tempt_items"), Material.class); + + Tag ITEMS_IGNORED_BY_PIGLIN_BABIES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ignored_by_piglin_babies"), Material.class); + + Tag ITEMS_IRON_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("iron_ores"), Material.class); + + Tag ITEMS_IRON_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("iron_tool_materials"), Material.class); + + Tag ITEMS_JUNGLE_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("jungle_logs"), Material.class); + + Tag ITEMS_LAPIS_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("lapis_ores"), Material.class); + + Tag ITEMS_LEAVES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("leaves"), Material.class); + + Tag ITEMS_LECTERN_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("lectern_books"), Material.class); + + Tag ITEMS_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("leg_armor"), Material.class); + + Tag ITEMS_LLAMA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_food"), Material.class); + + Tag ITEMS_LLAMA_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_tempt_items"), Material.class); + + Tag ITEMS_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("logs"), Material.class); + + Tag ITEMS_LOGS_THAT_BURN = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("logs_that_burn"), Material.class); + + Tag ITEMS_MANGROVE_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("mangrove_logs"), Material.class); + + Tag ITEMS_MAP_INVISIBILITY_EQUIPMENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("map_invisibility_equipment"), Material.class); + + Tag ITEMS_MEAT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("meat"), Material.class); + + Tag ITEMS_NETHERITE_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("netherite_tool_materials"), Material.class); + + Tag ITEMS_NON_FLAMMABLE_WOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("non_flammable_wood"), Material.class); + + Tag ITEMS_NOTEBLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), Material.class); + + Tag ITEMS_OAK_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("oak_logs"), Material.class); + + Tag ITEMS_OCELOT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ocelot_food"), Material.class); + + Tag ITEMS_PALE_OAK_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pale_oak_logs"), Material.class); + + Tag ITEMS_PANDA_EATS_FROM_GROUND = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("panda_eats_from_ground"), Material.class); + + Tag ITEMS_PANDA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("panda_food"), Material.class); + + Tag ITEMS_PARROT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_food"), Material.class); + + Tag ITEMS_PARROT_POISONOUS_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_poisonous_food"), Material.class); + + Tag ITEMS_PICKAXES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pickaxes"), Material.class); + + Tag ITEMS_PIG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pig_food"), Material.class); + + Tag ITEMS_PIGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_food"), Material.class); + + Tag ITEMS_PIGLIN_LOVED = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_loved"), Material.class); + + Tag ITEMS_PIGLIN_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_preferred_weapons"), Material.class); + + Tag ITEMS_PIGLIN_REPELLENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_repellents"), Material.class); + + Tag ITEMS_PIGLIN_SAFE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_safe_armor"), Material.class); + + Tag ITEMS_PILLAGER_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pillager_preferred_weapons"), Material.class); + + Tag ITEMS_PLANKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("planks"), Material.class); + + Tag ITEMS_RABBIT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("rabbit_food"), Material.class); + + Tag ITEMS_RAILS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("rails"), Material.class); + + Tag ITEMS_REDSTONE_ORES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("redstone_ores"), Material.class); + + Tag ITEMS_REPAIRS_CHAIN_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_chain_armor"), Material.class); + + Tag ITEMS_REPAIRS_DIAMOND_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_diamond_armor"), Material.class); + + Tag ITEMS_REPAIRS_GOLD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_gold_armor"), Material.class); + + Tag ITEMS_REPAIRS_IRON_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_iron_armor"), Material.class); + + Tag ITEMS_REPAIRS_LEATHER_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_leather_armor"), Material.class); + + Tag ITEMS_REPAIRS_NETHERITE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_netherite_armor"), Material.class); + + Tag ITEMS_REPAIRS_TURTLE_HELMET = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_turtle_helmet"), Material.class); + + Tag ITEMS_REPAIRS_WOLF_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_wolf_armor"), Material.class); + + Tag ITEMS_SAND = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sand"), Material.class); + + Tag ITEMS_SAPLINGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("saplings"), Material.class); + + Tag ITEMS_SHEEP_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sheep_food"), Material.class); + + Tag ITEMS_SHOVELS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("shovels"), Material.class); + + Tag ITEMS_SHULKER_BOXES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("shulker_boxes"), Material.class); + + Tag ITEMS_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("signs"), Material.class); + + Tag ITEMS_SKELETON_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skeleton_preferred_weapons"), Material.class); + + Tag ITEMS_SKULLS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skulls"), Material.class); + + Tag ITEMS_SLABS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("slabs"), Material.class); + + Tag ITEMS_SMALL_FLOWERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("small_flowers"), Material.class); + + Tag ITEMS_SMELTS_TO_GLASS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("smelts_to_glass"), Material.class); + + Tag ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class); + + Tag ITEMS_SOUL_FIRE_BASE_BLOCKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("soul_fire_base_blocks"), Material.class); + + Tag ITEMS_SPRUCE_LOGS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("spruce_logs"), Material.class); + + Tag ITEMS_STAIRS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stairs"), Material.class); + + Tag ITEMS_STONE_BRICKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_bricks"), Material.class); + + Tag ITEMS_STONE_BUTTONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_buttons"), Material.class); + + Tag ITEMS_STONE_CRAFTING_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_crafting_materials"), Material.class); + + Tag ITEMS_STONE_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_tool_materials"), Material.class); + + Tag ITEMS_STRIDER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_food"), Material.class); + + Tag ITEMS_STRIDER_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_tempt_items"), Material.class); + + Tag ITEMS_SWORDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("swords"), Material.class); + + Tag ITEMS_TERRACOTTA = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("terracotta"), Material.class); + + Tag ITEMS_TRAPDOORS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trapdoors"), Material.class); + + Tag ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class); + + Tag ITEMS_TRIMMABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trimmable_armor"), Material.class); + + Tag ITEMS_TURTLE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("turtle_food"), Material.class); + + Tag ITEMS_VILLAGER_PICKS_UP = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_picks_up"), Material.class); + + Tag ITEMS_VILLAGER_PLANTABLE_SEEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_plantable_seeds"), Material.class); + + Tag ITEMS_WALLS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("walls"), Material.class); + + Tag ITEMS_WARPED_STEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("warped_stems"), Material.class); + + Tag ITEMS_WART_BLOCKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wart_blocks"), Material.class); + + Tag ITEMS_WITHER_SKELETON_DISLIKED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wither_skeleton_disliked_weapons"), Material.class); + + Tag ITEMS_WOLF_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wolf_food"), Material.class); + + Tag ITEMS_WOODEN_BUTTONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_buttons"), Material.class); + + Tag ITEMS_WOODEN_DOORS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_doors"), Material.class); + + Tag ITEMS_WOODEN_FENCES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_fences"), Material.class); + + Tag ITEMS_WOODEN_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_pressure_plates"), Material.class); + + Tag ITEMS_WOODEN_SLABS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_slabs"), Material.class); + + Tag ITEMS_WOODEN_STAIRS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_stairs"), Material.class); + + Tag ITEMS_WOODEN_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_tool_materials"), Material.class); + + Tag ITEMS_WOODEN_TRAPDOORS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_trapdoors"), Material.class); + + Tag ITEMS_WOOL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wool"), Material.class); + + Tag ITEMS_WOOL_CARPETS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wool_carpets"), Material.class); + + String REGISTRY_FLUIDS = "fluids"; + + Tag FLUIDS_LAVA = Bukkit.getTag(REGISTRY_FLUIDS, NamespacedKey.minecraft("lava"), Fluid.class); + + Tag FLUIDS_WATER = Bukkit.getTag(REGISTRY_FLUIDS, NamespacedKey.minecraft("water"), Fluid.class); + + String REGISTRY_ENTITY_TYPES = "entity_types"; + + Tag ENTITY_TYPES_AQUATIC = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("aquatic"), EntityType.class); + + Tag ENTITY_TYPES_ARROWS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("arrows"), EntityType.class); + + Tag ENTITY_TYPES_ARTHROPOD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("arthropod"), EntityType.class); + + Tag ENTITY_TYPES_AXOLOTL_ALWAYS_HOSTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("axolotl_always_hostiles"), EntityType.class); + + Tag ENTITY_TYPES_AXOLOTL_HUNT_TARGETS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("axolotl_hunt_targets"), EntityType.class); + + Tag ENTITY_TYPES_BEEHIVE_INHABITORS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("beehive_inhabitors"), EntityType.class); + + Tag ENTITY_TYPES_BOAT = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("boat"), EntityType.class); + + Tag ENTITY_TYPES_CAN_BREATHE_UNDER_WATER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_breathe_under_water"), EntityType.class); + + Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); + + Tag ENTITY_TYPES_DEFLECTS_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_projectiles"), EntityType.class); + + Tag ENTITY_TYPES_DISMOUNTS_UNDERWATER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("dismounts_underwater"), EntityType.class); + + Tag ENTITY_TYPES_FALL_DAMAGE_IMMUNE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("fall_damage_immune"), EntityType.class); + + Tag ENTITY_TYPES_FREEZE_HURTS_EXTRA_TYPES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("freeze_hurts_extra_types"), EntityType.class); + + Tag ENTITY_TYPES_FREEZE_IMMUNE_ENTITY_TYPES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("freeze_immune_entity_types"), EntityType.class); + + Tag ENTITY_TYPES_FROG_FOOD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("frog_food"), EntityType.class); + + Tag ENTITY_TYPES_IGNORES_POISON_AND_REGEN = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("ignores_poison_and_regen"), EntityType.class); + + Tag ENTITY_TYPES_ILLAGER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager"), EntityType.class); + + Tag ENTITY_TYPES_ILLAGER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager_friends"), EntityType.class); + + Tag ENTITY_TYPES_IMMUNE_TO_INFESTED = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_infested"), EntityType.class); + + Tag ENTITY_TYPES_IMMUNE_TO_OOZING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_oozing"), EntityType.class); + + Tag ENTITY_TYPES_IMPACT_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("impact_projectiles"), EntityType.class); + + Tag ENTITY_TYPES_INVERTED_HEALING_AND_HARM = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("inverted_healing_and_harm"), EntityType.class); + + Tag ENTITY_TYPES_NO_ANGER_FROM_WIND_CHARGE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("no_anger_from_wind_charge"), EntityType.class); + + Tag ENTITY_TYPES_NON_CONTROLLING_RIDER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("non_controlling_rider"), EntityType.class); + + Tag ENTITY_TYPES_NOT_SCARY_FOR_PUFFERFISH = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("not_scary_for_pufferfish"), EntityType.class); + + Tag ENTITY_TYPES_POWDER_SNOW_WALKABLE_MOBS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("powder_snow_walkable_mobs"), EntityType.class); + + Tag ENTITY_TYPES_RAIDERS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("raiders"), EntityType.class); + + Tag ENTITY_TYPES_REDIRECTABLE_PROJECTILE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("redirectable_projectile"), EntityType.class); + + Tag ENTITY_TYPES_SENSITIVE_TO_BANE_OF_ARTHROPODS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_bane_of_arthropods"), EntityType.class); + + Tag ENTITY_TYPES_SENSITIVE_TO_IMPALING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_impaling"), EntityType.class); + + Tag ENTITY_TYPES_SENSITIVE_TO_SMITE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_smite"), EntityType.class); + + Tag ENTITY_TYPES_SKELETONS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("skeletons"), EntityType.class); + + Tag ENTITY_TYPES_UNDEAD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("undead"), EntityType.class); + + Tag ENTITY_TYPES_WITHER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("wither_friends"), EntityType.class); + + Tag ENTITY_TYPES_ZOMBIES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("zombies"), EntityType.class); + + String REGISTRY_GAME_EVENTS = "game_events"; + + Tag GAME_EVENT_ALLAY_CAN_LISTEN = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("allay_can_listen"), GameEvent.class); + + Tag GAME_EVENT_IGNORE_VIBRATIONS_SNEAKING = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("ignore_vibrations_sneaking"), GameEvent.class); + + Tag GAME_EVENT_SHRIEKER_CAN_LISTEN = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("shrieker_can_listen"), GameEvent.class); + + Tag GAME_EVENT_VIBRATIONS = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("vibrations"), GameEvent.class); + + Tag GAME_EVENT_WARDEN_CAN_LISTEN = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("warden_can_listen"), GameEvent.class); + // End generate - Tag + /** * @deprecated {@link #WOOL_CARPETS}. */ @Deprecated(since = "1.19") Tag CARPETS = WOOL_CARPETS; - /** - * Vanilla block tag representing all wooden doors. - */ - Tag WOODEN_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_doors"), Material.class); - /** - * Vanilla block tag representing all doors which can be opened by mobs. - */ - Tag MOB_INTERACTABLE_DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mob_interactable_doors"), Material.class); - /** - * Vanilla block tag representing all wooden stairs. - */ - Tag WOODEN_STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_stairs"), Material.class); - /** - * Vanilla block tag representing all wooden slabs. - */ - Tag WOODEN_SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_slabs"), Material.class); - /** - * Vanilla block tag representing all wooden fences. - */ - Tag WOODEN_FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_fences"), Material.class); - /** - * Vanilla block tag representing all pressure plates. - */ - Tag PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("pressure_plates"), Material.class); - /** - * Vanilla block tag representing all wooden pressure plates. - */ - Tag WOODEN_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_pressure_plates"), Material.class); - /** - * Vanilla block tag representing all stone pressure plates. - */ - Tag STONE_PRESSURE_PLATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_pressure_plates"), Material.class); - /** - * Vanilla block tag representing all wooden trapdoors. - */ - Tag WOODEN_TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wooden_trapdoors"), Material.class); - /** - * Vanilla block tag representing all doors (inherits from - * {@link #WOODEN_DOORS}. - */ - Tag DOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("doors"), Material.class); - /** - * Vanilla block tag representing all sapling variants. - */ - Tag SAPLINGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("saplings"), Material.class); - /** - * Vanilla block tag representing all log and bark variants that burn. - */ - Tag LOGS_THAT_BURN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs_that_burn"), Material.class); - /** - * Vanilla block tag representing all log and bark variants. - */ - Tag LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("logs"), Material.class); - /** - * Vanilla block tag representing all dark oak log and bark variants. - */ - Tag DARK_OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dark_oak_logs"), Material.class); - /** - * Vanilla block tag representing all pale oak log and bark variants. - */ - Tag PALE_OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("pale_oak_logs"), Material.class); - /** - * Vanilla block tag representing all oak log and bark variants. - */ - Tag OAK_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("oak_logs"), Material.class); - /** - * Vanilla block tag representing all birch log and bark variants. - */ - Tag BIRCH_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("birch_logs"), Material.class); - /** - * Vanilla block tag representing all acacia log and bark variants. - */ - Tag ACACIA_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("acacia_logs"), Material.class); - /** - * Vanilla block tag representing all cherry log and bark variants. - */ - Tag CHERRY_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cherry_logs"), Material.class); - /** - * Vanilla block tag representing all jungle log and bark variants. - */ - Tag JUNGLE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("jungle_logs"), Material.class); - /** - * Vanilla block tag representing all spruce log and bark variants. - */ - Tag SPRUCE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("spruce_logs"), Material.class); - /** - * Vanilla block tag representing all mangrove log and bark variants. - */ - Tag MANGROVE_LOGS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_logs"), Material.class); - /** - * Vanilla block tag representing all crimson stems. - */ - Tag CRIMSON_STEMS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crimson_stems"), Material.class); - /** - * Vanilla block tag representing all warped stems. - */ - Tag WARPED_STEMS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("warped_stems"), Material.class); - /** - * Vanilla block tag representing all bamboo blocks. - */ - Tag BAMBOO_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_blocks"), Material.class); - /** - * Vanilla block tag representing all banner blocks. - */ - Tag BANNERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("banners"), Material.class); - /** - * Vanilla block tag representing all sand blocks. - */ - Tag SAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sand"), Material.class); - /** - * Vanilla block tag representing all blocks which smelt to glass in a furnace. - */ - Tag SMELTS_TO_GLASS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("smelts_to_glass"), Material.class); - /** - * Vanilla block tag representing all stairs. - */ - Tag STAIRS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stairs"), Material.class); - /** - * Vanilla block tag representing all slabs. - */ - Tag SLABS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("slabs"), Material.class); - /** - * Vanilla block tag representing all walls. - */ - Tag WALLS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("walls"), Material.class); - /** - * Vanilla block tag representing all damaged and undamaged anvils. - */ - Tag ANVIL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("anvil"), Material.class); - /** - * Vanilla block tag representing all Minecart rails. - */ - Tag RAILS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("rails"), Material.class); - /** - * Vanilla block tag representing all leaves fans. - */ - Tag LEAVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("leaves"), Material.class); - /** - * Vanilla block tag representing all trapdoors (inherits from - * {@link #WOODEN_TRAPDOORS}. - */ - Tag TRAPDOORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trapdoors"), Material.class); - /** - * Vanilla block tag representing all empty and filled flower pots. - */ - Tag FLOWER_POTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flower_pots"), Material.class); - /** - * Vanilla block tag representing all small flowers. - */ - Tag SMALL_FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("small_flowers"), Material.class); - /** - * Vanilla block tag representing all beds. - */ - Tag BEDS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beds"), Material.class); - /** - * Vanilla block tag representing all fences. - */ - Tag FENCES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fences"), Material.class); - /** - * Vanilla block tag representing all flowers. - */ - Tag FLOWERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("flowers"), Material.class); - /** - * Vanilla block tag representing all blocks which attract bees. - */ - Tag BEE_ATTRACTIVE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_attractive"), Material.class); - /** - * Vanilla block tag representing all piglin repellents. - */ - Tag PIGLIN_REPELLENTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("piglin_repellents"), Material.class); - /** - * Vanilla block tag representing all gold ores. - */ - Tag GOLD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("gold_ores"), Material.class); - /** - * Vanilla block tag representing all iron ores. - */ - Tag IRON_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("iron_ores"), Material.class); - /** - * Vanilla block tag representing all diamond ores. - */ - Tag DIAMOND_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("diamond_ores"), Material.class); - /** - * Vanilla block tag representing all redstone ores. - */ - Tag REDSTONE_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("redstone_ores"), Material.class); - /** - * Vanilla block tag representing all lapis ores. - */ - Tag LAPIS_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lapis_ores"), Material.class); - /** - * Vanilla block tag representing all coal ores. - */ - Tag COAL_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coal_ores"), Material.class); - /** - * Vanilla block tag representing all emerald ores. - */ - Tag EMERALD_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("emerald_ores"), Material.class); - /** - * Vanilla block tag representing all copper ores. - */ - Tag COPPER_ORES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("copper_ores"), Material.class); - /** - * Vanilla block tag representing all candles. - */ - Tag CANDLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candles"), Material.class); - /** - * Vanilla block tag representing all dirt. - */ - Tag DIRT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dirt"), Material.class); - /** - * Vanilla block tag representing all terracotta. - */ - Tag TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("terracotta"), Material.class); - /** - * Vanilla block tag representing all badlands terracotta. - */ - Tag BADLANDS_TERRACOTTA = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("badlands_terracotta"), Material.class); - /** - * Vanilla block tag representing all concrete powder. - */ - Tag CONCRETE_POWDER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("concrete_powder"), Material.class); - /** - * Vanilla block tag representing all blocks which complete the find tree - * tutorial. - */ - Tag COMPLETES_FIND_TREE_TUTORIAL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("completes_find_tree_tutorial"), Material.class); - /** - * Vanilla block tag denoting blocks that enderman may pick up and hold. - */ - Tag ENDERMAN_HOLDABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enderman_holdable"), Material.class); - /** - * Vanilla block tag denoting ice blocks. - */ - Tag ICE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ice"), Material.class); - /** - * Vanilla block tag denoting all valid mob spawn positions. - */ - Tag VALID_SPAWN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("valid_spawn"), Material.class); - /** - * Vanilla block tag denoting impermeable blocks which do not drip fluids. - */ - Tag IMPERMEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("impermeable"), Material.class); - /** - * Vanilla block tag denoting all underwater blocks which may be bonemealed. - */ - Tag UNDERWATER_BONEMEALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("underwater_bonemeals"), Material.class); - /** - * Vanilla block tag representing all coral blocks. - */ - Tag CORAL_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coral_blocks"), Material.class); - /** - * Vanilla block tag representing all wall corals. - */ - Tag WALL_CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_corals"), Material.class); - /** - * Vanilla block tag representing all coral plants. - */ - Tag CORAL_PLANTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("coral_plants"), Material.class); - /** - * Vanilla block tag representing all coral. - */ - Tag CORALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("corals"), Material.class); - /** - * Vanilla block tag denoting all blocks bamboo may be planted on. - */ - Tag BAMBOO_PLANTABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bamboo_plantable_on"), Material.class); - /** - * Vanilla block tag representing all standing signs. - */ - Tag STANDING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("standing_signs"), Material.class); - /** - * Vanilla block tag representing all wall signs. - */ - Tag WALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_signs"), Material.class); - /** - * Vanilla block tag representing all regular signs. - */ - Tag SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("signs"), Material.class); - /** - * Vanilla block tag representing all ceiling signs. - */ - Tag CEILING_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ceiling_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all wall hanging signs. - */ - Tag WALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all hanging signs. - */ - Tag ALL_HANGING_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_hanging_signs"), Material.class); - /** - * Vanilla block tag representing all signs, regardless of type. - */ - Tag ALL_SIGNS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("all_signs"), Material.class); - /** - * Vanilla block tag representing all blocks immune to dragons. - */ - Tag DRAGON_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dragon_immune"), Material.class); - /** - * Vanilla block tag representing all blocks transparent to the ender - * dragon. - */ - Tag DRAGON_TRANSPARENT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dragon_transparent"), Material.class); - /** - * Vanilla block tag representing all blocks immune to withers. - */ - Tag WITHER_IMMUNE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wither_immune"), Material.class); - /** - * Vanilla block tag representing all base blocks used for wither summoning. - */ - Tag WITHER_SUMMON_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wither_summon_base_blocks"), Material.class); - /** - * Vanilla block tag representing all beehives. - */ - Tag BEEHIVES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beehives"), Material.class); - /** - * Vanilla block tag representing all crops. - */ - Tag CROPS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crops"), Material.class); - /** - * Vanilla block tag representing all bee growables. - */ - Tag BEE_GROWABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bee_growables"), Material.class); - /** - * Vanilla block tag representing all portals. - */ - Tag PORTALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("portals"), Material.class); - /** - * Vanilla block tag representing all fire blocks. - */ - Tag FIRE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fire"), Material.class); - /** - * Vanilla block tag representing all nylium blocks. - */ - Tag NYLIUM = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("nylium"), Material.class); - /** - * Vanilla block tag representing all wart blocks. - */ - Tag WART_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wart_blocks"), Material.class); - /** - * Vanilla block tag representing all beacon base blocks. - */ - Tag BEACON_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("beacon_base_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks affected by the soul speed - * enchantment. - */ - Tag SOUL_SPEED_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("soul_speed_blocks"), Material.class); - /** - * Vanilla block tag representing all wall post overrides. - */ - Tag WALL_POST_OVERRIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wall_post_override"), Material.class); - /** - * Vanilla block tag representing all climbable blocks. - */ - Tag CLIMBABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("climbable"), Material.class); - /** - * Vanilla block tag representing all blocks which reset fall damage. - */ - Tag FALL_DAMAGE_RESETTING = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fall_damage_resetting"), Material.class); - /** - * Vanilla block tag representing all shulker boxes. - */ - Tag SHULKER_BOXES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("shulker_boxes"), Material.class); - /** - * Vanilla block tag representing all hoglin repellents. - */ - Tag HOGLIN_REPELLENTS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("hoglin_repellents"), Material.class); - /** - * Vanilla block tag representing all soul fire base blocks. - */ - Tag SOUL_FIRE_BASE_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("soul_fire_base_blocks"), Material.class); - /** - * Vanilla block tag representing all warm strider blocks. - */ - Tag STRIDER_WARM_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("strider_warm_blocks"), Material.class); - /** - * Vanilla block tag representing all campfires. - */ - Tag CAMPFIRES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("campfires"), Material.class); - /** - * Vanilla block tag representing all blocks guarded by piglins. - */ - Tag GUARDED_BY_PIGLINS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("guarded_by_piglins"), Material.class); - /** - * Vanilla block tag representing all blocks that prevent inside mob - * spawning. - */ - Tag PREVENT_MOB_SPAWNING_INSIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("prevent_mob_spawning_inside"), Material.class); - /** - * Vanilla block tag representing all fence gates. - */ - Tag FENCE_GATES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("fence_gates"), Material.class); - /** - * Vanilla block tag representing all unstable bottom center blocks. - */ - Tag UNSTABLE_BOTTOM_CENTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("unstable_bottom_center"), Material.class); - Tag MUSHROOM_GROW_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mushroom_grow_block"), Material.class); - - /** - * Vanilla block tag representing all blocks that burn forever in the - * overworld. - */ - Tag INFINIBURN_OVERWORLD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_overworld"), Material.class); - /** - * Vanilla block tag representing all blocks that burn forever in the - * nether. - */ - Tag INFINIBURN_NETHER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_nether"), Material.class); - /** - * Vanilla block tag representing all blocks that burn forever in the end. - */ - Tag INFINIBURN_END = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("infiniburn_end"), Material.class); - /** - * Vanilla block tag representing the overworld base material. - */ - Tag BASE_STONE_OVERWORLD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_overworld"), Material.class); - /** - * Vanilla block tag representing all blocks that may be replaced by ores. - */ - Tag STONE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("stone_ore_replaceables"), Material.class); - /** - * Vanilla block tag representing all blocks that may be replaced by - * deepslate ores. - */ - Tag DEEPSLATE_ORE_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("deepslate_ore_replaceables"), Material.class); - /** - * Vanilla block tag representing the nether base material. - */ - Tag BASE_STONE_NETHER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("base_stone_nether"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by the overworld - * carver. - */ - Tag OVERWORLD_CARVER_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("overworld_carver_replaceables"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by the nether - * carver. - */ - Tag NETHER_CARVER_REPLACEABLES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("nether_carver_replaceables"), Material.class); - /** - * Vanilla block tag representing all candle cakes. - */ - Tag CANDLE_CAKES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("candle_cakes"), Material.class); - /** - * Vanilla block tag representing all cauldrons. - */ - Tag CAULDRONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cauldrons"), Material.class); - /** - * Vanilla block tag representing all blocks that make crystal sounds. - */ - Tag CRYSTAL_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("crystal_sound_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks that play muffled step sounds. - */ - Tag INSIDE_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("inside_step_sound_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks that play combination step sounds. - */ - Tag COMBINATION_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("combination_step_sound_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks that play step sounds with camels on sand. - */ - Tag CAMEL_SAND_STEP_SOUND_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("camel_sand_step_sound_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks that block vibration signals. - */ - Tag OCCLUDES_VIBRATION_SIGNALS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("occludes_vibration_signals"), Material.class); - /** - * Vanilla block tag representing all blocks that dampen the propagation of - * vibration signals. - */ - Tag DAMPENS_VIBRATIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dampens_vibrations"), Material.class); - /** - * Vanilla block tag representing all blocks that are replaceable by - * dripstone. - */ - Tag DRIPSTONE_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dripstone_replaceable_blocks"), Material.class); - /** - * Vanilla block tag representing all cave vines. - */ - Tag CAVE_VINES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("cave_vines"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by moss. - */ - Tag MOSS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("moss_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by lush ground. - */ - Tag LUSH_GROUND_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lush_ground_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by azalea root. - */ - Tag AZALEA_ROOT_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("azalea_root_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks which small dripleaf can be - * placed on. - */ - Tag SMALL_DRIPLEAF_PLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("small_dripleaf_placeable"), Material.class); - /** - * Vanilla block tag representing all blocks which big dripleaf can be - * placed on. - */ - Tag BIG_DRIPLEAF_PLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("big_dripleaf_placeable"), Material.class); - /** - * Vanilla block tag representing all snow blocks. - */ - Tag SNOW = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow"), Material.class); - /** - * Vanilla block tag representing all blocks mineable with an axe. - */ - Tag MINEABLE_AXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/axe"), Material.class); - /** - * Vanilla block tag representing all blocks mineable with a hoe. - */ - Tag MINEABLE_HOE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/hoe"), Material.class); - /** - * Vanilla block tag representing all blocks mineable with a pickaxe. - */ - Tag MINEABLE_PICKAXE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/pickaxe"), Material.class); - /** - * Vanilla block tag representing all blocks mineable with a shovel. - */ - Tag MINEABLE_SHOVEL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mineable/shovel"), Material.class); - /** - * Vanilla block tag representing all blocks that can be efficiently mined with a sword. - */ - Tag SWORD_EFFICIENT = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sword_efficient"), Material.class); - /** - * Vanilla block tag representing all blocks which require a diamond tool. - */ - Tag NEEDS_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_diamond_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which require an iron tool. - */ - Tag NEEDS_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_iron_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which require a stone tool. - */ - Tag NEEDS_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("needs_stone_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a netherite tool. - */ - Tag INCORRECT_FOR_NETHERITE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_netherite_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a diamond tool. - */ - Tag INCORRECT_FOR_DIAMOND_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_diamond_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a iron tool. - */ - Tag INCORRECT_FOR_IRON_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_iron_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a stone tool. - */ - Tag INCORRECT_FOR_STONE_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_stone_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a gold tool. - */ - Tag INCORRECT_FOR_GOLD_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_gold_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not drop items with a wooden tool. - */ - Tag INCORRECT_FOR_WOODEN_TOOL = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("incorrect_for_wooden_tool"), Material.class); - /** - * Vanilla block tag representing all blocks which will not be replaced by - * world generation features. - */ - Tag FEATURES_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("features_cannot_replace"), Material.class); - /** - * Vanilla block tag representing all blocks which lava pools will not - * replace. - */ - Tag LAVA_POOL_STONE_CANNOT_REPLACE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("lava_pool_stone_cannot_replace"), Material.class); - /** - * Vanilla block tag representing all blocks which geodes will not spawn in. - */ - Tag GEODE_INVALID_BLOCKS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("geode_invalid_blocks"), Material.class); - /** - * Vanilla block tag representing all blocks which frogs prefer to jump to. - */ - Tag FROG_PREFER_JUMP_TO = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("frog_prefer_jump_to"), Material.class); - /** - * Vanilla block tag representing all blocks which can be replaced by skulk. - */ - Tag SCULK_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sculk_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks which can be replaced by skulk - * during world generation. - */ - Tag SCULK_REPLACEABLE_WORLD_GEN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sculk_replaceable_world_gen"), Material.class); - /** - * Vanilla block tag representing all blocks which can be replaced by - * ancient cities. - */ - Tag ANCIENT_CITY_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("ancient_city_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks which resonate vibrations. - */ - Tag VIBRATION_RESONATORS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("vibration_resonators"), Material.class); - /** - * Vanilla block tag representing all blocks which animals will spawn on. - */ - Tag ANIMALS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("animals_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which armadillos will spawn on. - */ - Tag ARMADILLO_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("armadillo_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which axolotls will spawn on. - */ - Tag AXOLOTLS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("axolotls_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which goats will spawn on. - */ - Tag GOATS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("goats_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which mooshrooms will spawn on. - */ - Tag MOOSHROOMS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mooshrooms_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which parrots will spawn on. - */ - Tag PARROTS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("parrots_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which polar bears will spawn - * on. - */ - Tag POLAR_BEARS_SPAWNABLE_ON_ALTERNATE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("polar_bears_spawnable_on_alternate"), Material.class); - /** - * Vanilla block tag representing all blocks which rabbits will spawn on. - */ - Tag RABBITS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("rabbits_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which foxes will spawn on. - */ - Tag FOXES_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("foxes_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which wolves will spawn on. - */ - Tag WOLVES_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("wolves_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which frogs will spawn on. - */ - Tag FROGS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("frogs_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which bats will spawn on. - */ - Tag BATS_SPAWNABLE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("bats_spawnable_on"), Material.class); - /** - * Vanilla block tag representing all blocks which azaleas will grow on. - */ - Tag AZALEA_GROWS_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("azalea_grows_on"), Material.class); - /** - * Vanilla block tag representing all blocks which may be converted to mud. - */ - Tag CONVERTABLE_TO_MUD = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("convertable_to_mud"), Material.class); - /** - * Vanilla block tag representing all blocks which mangrove logs can grow - * through. - */ - Tag MANGROVE_LOGS_CAN_GROW_THROUGH = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_logs_can_grow_through"), Material.class); - /** - * Vanilla block tag representing all blocks which mangrove roots can grow - * through. - */ - Tag MANGROVE_ROOTS_CAN_GROW_THROUGH = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("mangrove_roots_can_grow_through"), Material.class); - /** - * Vanilla block tag representing all blocks which dead bushes may be placed - * on. - */ - Tag DEAD_BUSH_MAY_PLACE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("dead_bush_may_place_on"), Material.class); - /** - * Vanilla block tag representing all blocks which snap dropped goat horns. - */ - Tag SNAPS_GOAT_HORN = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snaps_goat_horn"), Material.class); - /** - * Vanilla block tag representing all blocks replaceable by growing trees. - */ - Tag REPLACEABLE_BY_TREES = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable_by_trees"), Material.class); - /** - * Vanilla block tag representing blocks which snow cannot survive on. - */ - Tag SNOW_LAYER_CANNOT_SURVIVE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow_layer_cannot_survive_on"), Material.class); - /** - * Vanilla block tag representing blocks which snow can survive on. - */ - Tag SNOW_LAYER_CAN_SURVIVE_ON = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("snow_layer_can_survive_on"), Material.class); - /** - * Vanilla block tag representing blocks which cannot be dismounted into. - */ - Tag INVALID_SPAWN_INSIDE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("invalid_spawn_inside"), Material.class); - /** - * Vanilla block tag representing blocks which can be dug by sniffers. - */ - Tag SNIFFER_DIGGABLE_BLOCK = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_diggable_block"), Material.class); - /** - * Vanilla block tag representing all blocks which booster sniffer egg hatching. - */ - Tag SNIFFER_EGG_HATCH_BOOST = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("sniffer_egg_hatch_boost"), Material.class); - /** - * Vanilla block tag representing all blocks which can be replaced by trail ruins. - */ - Tag TRAIL_RUINS_REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("trail_ruins_replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks which are replaceable. - */ - Tag REPLACEABLE = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("replaceable"), Material.class); - /** - * Vanilla block tag representing all blocks which provide enchantment power. - */ - Tag ENCHANTMENT_POWER_PROVIDER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_provider"), Material.class); - /** - * Vanilla block tag representing all blocks which transmit enchantment power. - */ - Tag ENCHANTMENT_POWER_TRANSMITTER = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("enchantment_power_transmitter"), Material.class); - /** - * Vanilla block tag representing all blocks which do not destroy farmland when placed. - */ - Tag MAINTAINS_FARMLAND = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("maintains_farmland"), Material.class); - /** - * Vanilla block tag representing all blocks which block wind charge explosions. - */ - Tag BLOCKS_WIND_CHARGE_EXPLOSIONS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("blocks_wind_charge_explosions"), Material.class); - /** - * Vanilla block tag representing solid blocks which do not block hopper operation. - */ - Tag DOES_NOT_BLOCK_HOPPERS = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("does_not_block_hoppers"), Material.class); - /** - * Vanilla block tag representing all blocks that resemble air. - */ - Tag AIR = Bukkit.getTag(REGISTRY_BLOCKS, NamespacedKey.minecraft("air"), Material.class); - /** - * Key for the built in item registry. - */ - String REGISTRY_ITEMS = "items"; - /** - * Vanilla item tag representing all items loved by piglins. - */ - Tag ITEMS_PIGLIN_LOVED = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_loved"), Material.class); - /** - * Vanilla item tag representing all items ignored by piglin babies. - */ - Tag IGNORED_BY_PIGLIN_BABIES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ignored_by_piglin_babies"), Material.class); - /** - * Vanilla item tag representing all items which will prevent piglins from being angered. - */ - Tag ITEMS_PIGLIN_SAFE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_safe_armor"), Material.class); - /** - * Vanilla item tag representing all items which can be used to duplicate Allays when they are dancing. - */ - Tag ITEMS_DUPLICATES_ALLAYS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("duplicates_allays"), Material.class); - /** - * Vanilla item tag representing all brewing stand fuel items. - */ - Tag ITEMS_BREWING_FUEL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("brewing_fuel"), Material.class); - /** - * Vanilla item tag representing all meat. - */ - Tag ITEMS_MEAT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("meat"), Material.class); - /** - * Vanilla item tag representing all sniffer food. - */ - Tag ITEMS_SNIFFER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sniffer_food"), Material.class); - /** - * Vanilla item tag representing all piglin food. - */ - Tag ITEMS_PIGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_food"), Material.class); /** * Vanilla item tag representing all piglin food. * @@ -834,10 +846,6 @@ public interface Tag extends Keyed { */ @Deprecated(since = "1.20.5") Tag PIGLIN_FOOD = ITEMS_PIGLIN_FOOD; - /** - * Vanilla item tag representing all fox food. - */ - Tag ITEMS_FOX_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fox_food"), Material.class); /** * Vanilla item tag representing all fox food. * @@ -845,214 +853,6 @@ public interface Tag extends Keyed { */ @Deprecated(since = "1.20.5") Tag FOX_FOOD = ITEMS_FOX_FOOD; - /** - * Vanilla item tag representing all cow food. - */ - Tag ITEMS_COW_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cow_food"), Material.class); - /** - * Vanilla item tag representing all goat food. - */ - Tag ITEMS_GOAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("goat_food"), Material.class); - /** - * Vanilla item tag representing all sheep food. - */ - Tag ITEMS_SHEEP_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("sheep_food"), Material.class); - /** - * Vanilla item tag representing all wolf food. - */ - Tag ITEMS_WOLF_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wolf_food"), Material.class); - /** - * Vanilla item tag representing all cat food. - */ - Tag ITEMS_CAT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cat_food"), Material.class); - /** - * Vanilla item tag representing all horse food. - */ - Tag ITEMS_HORSE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_food"), Material.class); - /** - * Vanilla item tag representing all horse tempt items. - */ - Tag ITEMS_HORSE_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("horse_tempt_items"), Material.class); - /** - * Vanilla item tag representing all camel food. - */ - Tag ITEMS_CAMEL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("camel_food"), Material.class); - /** - * Vanilla item tag representing all armadillo food. - */ - Tag ITEMS_ARMADILLO_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("armadillo_food"), Material.class); - /** - * Vanilla item tag representing all bee food. - */ - Tag ITEMS_BEE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bee_food"), Material.class); - /** - * Vanilla item tag representing all chicken food. - */ - Tag ITEMS_CHICKEN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chicken_food"), Material.class); - /** - * Vanilla item tag representing all frog food. - */ - Tag ITEMS_FROG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("frog_food"), Material.class); - /** - * Vanilla item tag representing all hoglin food. - */ - Tag ITEMS_HOGLIN_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hoglin_food"), Material.class); - /** - * Vanilla item tag representing all llama food. - */ - Tag ITEMS_LLAMA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_food"), Material.class); - /** - * Vanilla item tag representing all llama tempt items. - */ - Tag ITEMS_LLAMA_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("llama_tempt_items"), Material.class); - /** - * Vanilla item tag representing all ocelot food. - */ - Tag ITEMS_OCELOT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("ocelot_food"), Material.class); - /** - * Vanilla item tag representing all panda food. - */ - Tag ITEMS_PANDA_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("panda_food"), Material.class); - /** - * Vanilla item tag representing all items that a panda will pick up and eat from the ground. - */ - Tag ITEMS_PANDA_EATS_FROM_GROUND = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("panda_eats_from_ground"), Material.class); - /** - * Vanilla item tag representing all pig food. - */ - Tag ITEMS_PIG_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pig_food"), Material.class); - /** - * Vanilla item tag representing all rabbit food. - */ - Tag ITEMS_RABBIT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("rabbit_food"), Material.class); - /** - * Vanilla item tag representing all strider food. - */ - Tag ITEMS_STRIDER_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_food"), Material.class); - /** - * Vanilla item tag representing all strider tempt items. - */ - Tag ITEMS_STRIDER_TEMPT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("strider_tempt_items"), Material.class); - /** - * Vanilla item tag representing all turtle food. - */ - Tag ITEMS_TURTLE_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("turtle_food"), Material.class); - /** - * Vanilla item tag representing all parrot food. - */ - Tag ITEMS_PARROT_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_food"), Material.class); - /** - * Vanilla item tag representing all parrot poisonous food. - */ - Tag ITEMS_PARROT_POISONOUS_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("parrot_poisonous_food"), Material.class); - /** - * Vanilla item tag representing all axolotl food. - */ - Tag ITEMS_AXOLOTL_FOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axolotl_food"), Material.class); - /** - * Vanilla item tag representing all banner items. - */ - Tag ITEMS_BANNERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("banners"), Material.class); - /** - * Vanilla item tag representing all non flammable wood items. - */ - Tag ITEMS_NON_FLAMMABLE_WOOD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("non_flammable_wood"), Material.class); - /** - * Vanilla item tag representing all boat items. - */ - Tag ITEMS_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("boats"), Material.class); - /** - * Vanilla item tag representing all chest boat items. - */ - Tag ITEMS_CHEST_BOATS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_boats"), Material.class); - /** - * Vanilla item tag representing all fish items. - */ - Tag ITEMS_FISHES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("fishes"), Material.class); - /** - * Vanilla item tag representing all music disc items dropped by creepers. - */ - Tag ITEMS_CREEPER_DROP_MUSIC_DISCS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("creeper_drop_music_discs"), Material.class); - /** - * Vanilla item tag representing all coal items. - */ - Tag ITEMS_COALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("coals"), Material.class); - /** - * Vanilla item tag representing all arrow items. - */ - Tag ITEMS_ARROWS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("arrows"), Material.class); - /** - * Vanilla item tag representing all books that may be placed on lecterns. - */ - Tag ITEMS_LECTERN_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("lectern_books"), Material.class); - /** - * Vanilla item tag representing all books that may be placed on bookshelves. - */ - Tag ITEMS_BOOKSHELF_BOOKS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bookshelf_books"), Material.class); - /** - * Vanilla item tag representing all items that may be placed in beacons. - */ - Tag ITEMS_BEACON_PAYMENT_ITEMS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("beacon_payment_items"), Material.class); - /** - * Vanilla item tag representing all wooden tool materials. - */ - Tag ITEMS_WOODEN_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wooden_tool_materials"), Material.class); - /** - * Vanilla item tag representing all stone tool materials. - */ - Tag ITEMS_STONE_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_tool_materials"), Material.class); - /** - * Vanilla item tag representing all iron tool materials. - */ - Tag ITEMS_IRON_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("iron_tool_materials"), Material.class); - /** - * Vanilla item tag representing all gold tool materials. - */ - Tag ITEMS_GOLD_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("gold_tool_materials"), Material.class); - /** - * Vanilla item tag representing all diamond tool materials. - */ - Tag ITEMS_DIAMOND_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("diamond_tool_materials"), Material.class); - /** - * Vanilla item tag representing all netherite tool materials. - */ - Tag ITEMS_NETHERITE_TOOL_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("netherite_tool_materials"), Material.class); - /** - * Vanilla item tag representing all items which repair leather armor. - */ - Tag ITEMS_REPAIRS_LEATHER_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_leather_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair chain armor. - */ - Tag ITEMS_REPAIRS_CHAIN_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_chain_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair iron armor. - */ - Tag ITEMS_REPAIRS_IRON_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_iron_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair gold armor. - */ - Tag ITEMS_REPAIRS_GOLD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_gold_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair diamond armor. - */ - Tag ITEMS_REPAIRS_DIAMOND_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_diamond_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair netherite armor. - */ - Tag ITEMS_REPAIRS_NETHERITE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_netherite_armor"), Material.class); - /** - * Vanilla item tag representing all items which repair turtle helmets. - */ - Tag ITEMS_REPAIRS_TURTLE_HELMET = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_turtle_helmet"), Material.class); - /** - * Vanilla item tag representing all items which repair wolf armor. - */ - Tag ITEMS_REPAIRS_WOLF_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("repairs_wolf_armor"), Material.class); - /** - * Vanilla item tag representing all stone based materials for crafting. - */ - Tag ITEMS_STONE_CRAFTING_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("stone_crafting_materials"), Material.class); /** * Vanilla item tag representing all furnace materials. * @@ -1060,83 +860,6 @@ public interface Tag extends Keyed { */ @Deprecated(since = "1.16.2", forRemoval = true) Tag ITEMS_FURNACE_MATERIALS = ITEMS_STONE_CRAFTING_MATERIALS; - /** - * Vanilla item tag representing all compasses. - */ - Tag ITEMS_COMPASSES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("compasses"), Material.class); - /** - * Vanilla item tag representing all hanging signs. - */ - Tag ITEMS_HANGING_SIGNS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hanging_signs"), Material.class); - /** - * Vanilla item tag representing all items which will ignite creepers when - * interacted with. - */ - Tag ITEMS_CREEPER_IGNITERS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("creeper_igniters"), Material.class); - /** - * Vanilla item tag representing all items which modify note block sounds when placed on top. - */ - Tag ITEMS_NOTE_BLOCK_TOP_INSTRUMENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("noteblock_top_instruments"), Material.class); - /** - * Vanilla item tag representing all foot armor. - */ - Tag ITEMS_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("foot_armor"), Material.class); - /** - * Vanilla item tag representing all leg armor. - */ - Tag ITEMS_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("leg_armor"), Material.class); - /** - * Vanilla item tag representing all chest armor. - */ - Tag ITEMS_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("chest_armor"), Material.class); - /** - * Vanilla item tag representing all head armor. - */ - Tag ITEMS_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("head_armor"), Material.class); - /** - * Vanilla item tag representing all skulls. - */ - Tag ITEMS_SKULLS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skulls"), Material.class); - /** - * Vanilla item tag representing all trimmable armor items. - */ - Tag ITEMS_TRIMMABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trimmable_armor"), Material.class); - /** - * Vanilla item tag representing all materials which can be used for trimming armor. - */ - Tag ITEMS_TRIM_MATERIALS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("trim_materials"), Material.class); - /** - * Vanilla item tag representing all decorated pot sherds. - */ - Tag ITEMS_DECORATED_POT_SHERDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_sherds"), Material.class); - /** - * Vanilla item tag representing all decorated pot ingredients. - */ - Tag ITEMS_DECORATED_POT_INGREDIENTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("decorated_pot_ingredients"), Material.class); - /** - * Vanilla item tag representing all swords. - */ - Tag ITEMS_SWORDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("swords"), Material.class); - /** - * Vanilla item tag representing all axes. - */ - Tag ITEMS_AXES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("axes"), Material.class); - /** - * Vanilla item tag representing all hoes. - */ - Tag ITEMS_HOES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("hoes"), Material.class); - /** - * Vanilla item tag representing all pickaxes. - */ - Tag ITEMS_PICKAXES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pickaxes"), Material.class); - /** - * Vanilla item tag representing all shovels. - */ - Tag ITEMS_SHOVELS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("shovels"), Material.class); - /** - * Vanilla item tag representing all items which break decorated pots. - */ - Tag ITEMS_BREAKS_DECORATED_POTS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("breaks_decorated_pots"), Material.class); /** * Vanilla item tag representing all tools. * @@ -1146,135 +869,6 @@ public interface Tag extends Keyed { */ @Deprecated(since = "1.20.6", forRemoval = true) Tag ITEMS_TOOLS = ITEMS_BREAKS_DECORATED_POTS; - /** - * Vanilla item tag representing all seeds plantable by villagers. - */ - Tag ITEMS_VILLAGER_PLANTABLE_SEEDS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_plantable_seeds"), Material.class); - /** - * Vanilla item tag representing all items which villagers pick up. - */ - Tag ITEMS_VILLAGER_PICKS_UP = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("villager_picks_up"), Material.class); - /** - * Vanilla item tag representing all dyeable items. - */ - Tag ITEMS_DYEABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("dyeable"), Material.class); - /** - * Vanilla item tag representing all furnace minecart fuel. - */ - Tag ITEMS_FURNACE_MINECART_FUEL = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("furnace_minecart_fuel"), Material.class); - /** - * Vanilla item tag representing all bundle items. - */ - Tag ITEMS_BUNDLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("bundles"), Material.class); - /** - * Vanilla item tag representing all skeleton preferred weapons. - */ - Tag ITEMS_SKELETON_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("skeleton_preferred_weapons"), Material.class); - /** - * Vanilla item tag representing all drowned preferred weapons. - */ - Tag ITEMS_DROWNED_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("drowned_preferred_weapons"), Material.class); - /** - * Vanilla item tag representing all piglin preferred weapons. - */ - Tag ITEMS_PIGLIN_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("piglin_preferred_weapons"), Material.class); - /** - * Vanilla item tag representing all pillager preferred weapons. - */ - Tag ITEMS_PILLAGER_PREFERRED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("pillager_preferred_weapons"), Material.class); - /** - * Vanilla item tag representing all wither skeleton disliked weapons. - */ - Tag ITEMS_WITHER_SKELETON_DISLIKED_WEAPONS = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("wither_skeleton_disliked_weapons"), Material.class); - /** - * Vanilla item tag representing all enchantable foot armor. - */ - Tag ITEMS_ENCHANTABLE_FOOT_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/foot_armor"), Material.class); - /** - * Vanilla item tag representing all enchantable leg armor. - */ - Tag ITEMS_ENCHANTABLE_LEG_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/leg_armor"), Material.class); - /** - * Vanilla item tag representing all enchantable chest armor. - */ - Tag ITEMS_ENCHANTABLE_CHEST_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/chest_armor"), Material.class); - /** - * Vanilla item tag representing all enchantable head armor. - */ - Tag ITEMS_ENCHANTABLE_HEAD_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/head_armor"), Material.class); - /** - * Vanilla item tag representing all enchantable armor. - */ - Tag ITEMS_ENCHANTABLE_ARMOR = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/armor"), Material.class); - /** - * Vanilla item tag representing all enchantable swords. - */ - Tag ITEMS_ENCHANTABLE_SWORD = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sword"), Material.class); - /** - * Vanilla item tag representing all items enchantable with the fire aspect enchantment. - */ - Tag ITEMS_ENCHANTABLE_FIRE_ASPECT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fire_aspect"), Material.class); - /** - * Vanilla item tag representing all items enchantable with the sharpness enchantment. - */ - Tag ITEMS_ENCHANTABLE_SHARP_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/sharp_weapon"), Material.class); - /** - * Vanilla item tag representing all enchantable weapons. - */ - Tag ITEMS_ENCHANTABLE_WEAPON = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/weapon"), Material.class); - /** - * Vanilla item tag representing all enchantable mining tools. - */ - Tag ITEMS_ENCHANTABLE_MINING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining"), Material.class); - /** - * Vanilla item tag representing all items enchantable with the mining_loot enchantment. - */ - Tag ITEMS_ENCHANTABLE_MINING_LOOT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mining_loot"), Material.class); - /** - * Vanilla item tag representing all items enchantable with fishing enchantments. - */ - Tag ITEMS_ENCHANTABLE_FISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/fishing"), Material.class); - /** - * Vanilla item tag representing all items enchantable with trident enchantments. - */ - Tag ITEMS_ENCHANTABLE_TRIDENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/trident"), Material.class); - /** - * Vanilla item tag representing all items enchantable with durability enchantments. - */ - Tag ITEMS_ENCHANTABLE_DURABILITY = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/durability"), Material.class); - /** - * Vanilla item tag representing all items enchantable with bow enchantments. - */ - Tag ITEMS_ENCHANTABLE_BOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/bow"), Material.class); - /** - * Vanilla item tag representing all items enchantable with the binding enchantment. - */ - Tag ITEMS_ENCHANTABLE_EQUIPPABLE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/equippable"), Material.class); - /** - * Vanilla item tag representing all items enchantable with crossbow enchantments. - */ - Tag ITEMS_ENCHANTABLE_CROSSBOW = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/crossbow"), Material.class); - /** - * Vanilla item tag representing all items enchantable with the vanishing enchantment. - */ - Tag ITEMS_ENCHANTABLE_VANISHING = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/vanishing"), Material.class); - /** - * Vanilla item tag representing all items enchantable with mace enchantments. - */ - Tag ITEMS_ENCHANTABLE_MACE = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("enchantable/mace"), Material.class); - /** - * Vanilla item tag representing all items which when equipped will hide the entity from maps. - */ - Tag ITEMS_MAP_INVISIBILITY_EQUIPMENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("map_invisibility_equipment"), Material.class); - /** - * Vanilla item tag representing all items which disguise the wearer's gaze from other entities. - */ - Tag ITEMS_GAZE_DISGUISE_EQUIPMENT = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("gaze_disguise_equipment"), Material.class); - /** - * Vanilla item tag representing all items that confer freeze immunity on - * the wearer. - */ - Tag FREEZE_IMMUNE_WEARABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("freeze_immune_wearables"), Material.class); /** * Vanilla item tag representing all items which tempt axolotls. * @@ -1282,176 +876,12 @@ public interface Tag extends Keyed { */ @Deprecated(since = "1.20.5") Tag AXOLOTL_TEMPT_ITEMS = ITEMS_AXOLOTL_FOOD; - /** - * Vanilla item tag representing all items which are preferred for - * harvesting clusters (unused). - */ - Tag CLUSTER_MAX_HARVESTABLES = Bukkit.getTag(REGISTRY_ITEMS, NamespacedKey.minecraft("cluster_max_harvestables"), Material.class); - /** - * Key for the built in fluid registry. - */ - String REGISTRY_FLUIDS = "fluids"; - /** - * Vanilla fluid tag representing lava and flowing lava. - */ - Tag FLUIDS_LAVA = Bukkit.getTag(REGISTRY_FLUIDS, NamespacedKey.minecraft("lava"), Fluid.class); - /** - * Vanilla fluid tag representing water and flowing water. - */ - Tag FLUIDS_WATER = Bukkit.getTag(REGISTRY_FLUIDS, NamespacedKey.minecraft("water"), Fluid.class); - /** - * Key for the built in entity registry. - */ - String REGISTRY_ENTITY_TYPES = "entity_types"; - /** - * Vanilla tag representing skeletons. - */ - Tag ENTITY_TYPES_SKELETONS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("skeletons"), EntityType.class); - /** - * Vanilla tag representing raiders. - */ - Tag ENTITY_TYPES_RAIDERS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("raiders"), EntityType.class); - /** - * Vanilla tag representing entities which can live in beehives. - */ - Tag ENTITY_TYPES_BEEHIVE_INHABITORS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("beehive_inhabitors"), EntityType.class); - /** - * Vanilla tag representing arrows. - */ - Tag ENTITY_TYPES_ARROWS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("arrows"), EntityType.class); - /** - * Vanilla tag representing projectiles. - */ - Tag ENTITY_TYPES_IMPACT_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("impact_projectiles"), EntityType.class); - /** - * Vanilla tag representing mobs which can walk on powder snow. - */ - Tag ENTITY_TYPES_POWDER_SNOW_WALKABLE_MOBS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("powder_snow_walkable_mobs"), EntityType.class); - /** - * Vanilla tag representing which entities axolotls are always hostile to. - */ - Tag ENTITY_TYPES_AXOLOTL_ALWAYS_HOSTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("axolotl_always_hostiles"), EntityType.class); - /** - * Vanilla tag representing axolotl targets. - */ - Tag ENTITY_TYPES_AXOLOTL_HUNT_TARGETS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("axolotl_hunt_targets"), EntityType.class); - /** - * Vanilla tag representing entities immune from freezing. - */ - Tag ENTITY_TYPES_FREEZE_IMMUNE_ENTITY_TYPES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("freeze_immune_entity_types"), EntityType.class); - /** - * Vanilla tag representing entities extra susceptible to freezing. - */ - Tag ENTITY_TYPES_FREEZE_HURTS_EXTRA_TYPES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("freeze_hurts_extra_types"), EntityType.class); - /** - * Vanilla tag representing entities which can be eaten by frogs. - */ - Tag ENTITY_TYPES_FROG_FOOD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("frog_food"), EntityType.class); - /** - * Vanilla tag representing entities which are immune from fall damage. - */ - Tag ENTITY_TYPES_FALL_DAMAGE_IMMUNE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("fall_damage_immune"), EntityType.class); - /** - * Vanilla tag representing entities which are dismounted when underwater. - */ - Tag ENTITY_TYPES_DISMOUNTS_UNDERWATER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("dismounts_underwater"), EntityType.class); - /** - * Vanilla tag representing entities which are not controlled by their mount. - */ - Tag ENTITY_TYPES_NON_CONTROLLING_RIDER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("non_controlling_rider"), EntityType.class); - /** - * Vanilla tag representing entities which deflect projectiles. - */ - Tag ENTITY_TYPES_DEFLECTS_PROJECTILES = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("deflects_projectiles"), EntityType.class); /** * Vanilla tag representing entities which deflect arrows. * @deprecated use {@link #ENTITY_TYPES_DEFLECTS_PROJECTILES} */ @Deprecated(since = "1.20.5") Tag ENTITY_TYPES_DEFLECTS_ARROWS = ENTITY_TYPES_DEFLECTS_PROJECTILES; - /** - * Vanilla tag representing entities which can turn in boats. - */ - Tag ENTITY_TYPES_CAN_TURN_IN_BOATS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("can_turn_in_boats"), EntityType.class); - /** - * Vanilla tag representing all entities sensitive to illager enchantments. - */ - Tag ENTITY_TYPES_ILLAGER = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager"), EntityType.class); - /** - * Vanilla tag representing all entities sensitive to aquatic enchantments.. - */ - Tag ENTITY_TYPES_AQUATIC = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("aquatic"), EntityType.class); - /** - * Vanilla tag representing all entities sensitive to arthropod enchantments.. - */ - Tag ENTITY_TYPES_ARTHROPOD = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("arthropod"), EntityType.class); - /** - * Vanilla tag representing all entities which ignores poison and regeneration effects. - */ - Tag ENTITY_TYPES_IGNORES_POISON_AND_REGEN = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("ignores_poison_and_regen"), EntityType.class); - /** - * Vanilla tag representing all entities which are sensitive to inverted healing and harm potion effects. - */ - Tag ENTITY_TYPES_INVERTED_HEALING_AND_HARM = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("inverted_healing_and_harm"), EntityType.class); - /** - * Vanilla tag representing all entities which are friendly with withers. - */ - Tag ENTITY_TYPES_WITHER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("wither_friends"), EntityType.class); - /** - * Vanilla tag representing all entities which are friendly with illagers. - */ - Tag ENTITY_TYPES_ILLAGER_FRIENDS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("illager_friends"), EntityType.class); - /** - * Vanilla tag representing all entities which are not scary for pufferfish. - */ - Tag ENTITY_TYPES_NOT_SCARY_FOR_PUFFERFISH = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("not_scary_for_pufferfish"), EntityType.class); - /** - * Vanilla tag representing all entities which are sensitive to impaling. - */ - Tag ENTITY_TYPES_SENSITIVE_TO_IMPALING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_impaling"), EntityType.class); - /** - * Vanilla tag representing all entities which are sensitive to the bane_of_arthropods enchantment. - */ - Tag ENTITY_TYPES_SENSITIVE_TO_BANE_OF_ARTHROPODS = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_bane_of_arthropods"), EntityType.class); - /** - * Vanilla tag representing all entities which are sensitive to the smite enchantment. - */ - Tag ENTITY_TYPES_SENSITIVE_TO_SMITE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("sensitive_to_smite"), EntityType.class); - /** - * Vanilla tag representing all entities which do not receive anger from wind charges. - */ - Tag ENTITY_TYPES_NO_ANGER_FROM_WIND_CHARGE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("no_anger_from_wind_charge"), EntityType.class); - /** - * Vanilla tag representing all entities which are immune from the oozing effect. - */ - Tag ENTITY_TYPES_IMMUNE_TO_OOZING = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_oozing"), EntityType.class); - /** - * Vanilla tag representing all entities which are immune from the infested effect. - */ - Tag ENTITY_TYPES_IMMUNE_TO_INFESTED = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("immune_to_infested"), EntityType.class); - /** - * Vanilla tag representing all projectiles which can be punched back. - */ - Tag ENTITY_TYPES_REDIRECTABLE_PROJECTILE = Bukkit.getTag(REGISTRY_ENTITY_TYPES, NamespacedKey.minecraft("redirectable_projectile"), EntityType.class); - - // Paper start - String REGISTRY_GAME_EVENTS = "game_events"; - - /** - * Tag for game events that trigger sculk sensors - */ - Tag GAME_EVENT_VIBRATIONS = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("vibrations"), GameEvent.class); - - /** - * Tag for game events that are ignored if the entity is sneaking - */ - Tag GAME_EVENT_IGNORE_VIBRATIONS_SNEAKING = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("ignore_vibrations_sneaking"), GameEvent.class); - - /** - * Tag for game events that an allay can listen to - */ - Tag GAME_EVENT_ALLAY_CAN_LISTEN = Bukkit.getTag(REGISTRY_GAME_EVENTS, NamespacedKey.minecraft("allay_can_listen"), GameEvent.class); - // Paper end /** * Returns whether or not this tag has an entry for the specified item. diff --git a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java index 978b0e779e..6928f489fe 100644 --- a/paper-api/src/main/java/org/bukkit/attribute/Attribute.java +++ b/paper-api/src/main/java/org/bukkit/attribute/Attribute.java @@ -17,135 +17,73 @@ import org.jetbrains.annotations.NotNull; */ public interface Attribute extends OldEnum, Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations - /** - * Maximum health of an Entity. - */ - Attribute MAX_HEALTH = getAttribute("max_health"); - /** - * Range at which an Entity will follow others. - */ - Attribute FOLLOW_RANGE = getAttribute("follow_range"); - /** - * Resistance of an Entity to knockback. - */ - Attribute KNOCKBACK_RESISTANCE = getAttribute("knockback_resistance"); - /** - * Movement speed of an Entity. - */ - Attribute MOVEMENT_SPEED = getAttribute("movement_speed"); - /** - * Flying speed of an Entity. - */ - Attribute FLYING_SPEED = getAttribute("flying_speed"); - /** - * Attack damage of an Entity. - */ - Attribute ATTACK_DAMAGE = getAttribute("attack_damage"); - /** - * Attack knockback of an Entity. - */ - Attribute ATTACK_KNOCKBACK = getAttribute("attack_knockback"); - /** - * Attack speed of an Entity. - */ - Attribute ATTACK_SPEED = getAttribute("attack_speed"); - /** - * Armor bonus of an Entity. - */ + // Start generate - Attribute + // @GeneratedFrom 1.21.4 Attribute ARMOR = getAttribute("armor"); - /** - * Armor durability bonus of an Entity. - */ + Attribute ARMOR_TOUGHNESS = getAttribute("armor_toughness"); - /** - * The fall damage multiplier of an Entity. - */ - Attribute FALL_DAMAGE_MULTIPLIER = getAttribute("fall_damage_multiplier"); - /** - * Luck bonus of an Entity. - */ - Attribute LUCK = getAttribute("luck"); - /** - * Maximum absorption of an Entity. - */ - Attribute MAX_ABSORPTION = getAttribute("max_absorption"); - /** - * The distance which an Entity can fall without damage. - */ - Attribute SAFE_FALL_DISTANCE = getAttribute("safe_fall_distance"); - /** - * The relative scale of an Entity. - */ - Attribute SCALE = getAttribute("scale"); - /** - * The height which an Entity can walk over. - */ - Attribute STEP_HEIGHT = getAttribute("step_height"); - /** - * The gravity applied to an Entity. - */ - Attribute GRAVITY = getAttribute("gravity"); - /** - * Strength with which an Entity will jump. - */ - Attribute JUMP_STRENGTH = getAttribute("jump_strength"); - /** - * How long an entity remains burning after ignition. - */ - Attribute BURNING_TIME = getAttribute("burning_time"); - /** - * Resistance to knockback from explosions. - */ - Attribute EXPLOSION_KNOCKBACK_RESISTANCE = getAttribute("explosion_knockback_resistance"); - /** - * Movement speed through difficult terrain. - */ - Attribute MOVEMENT_EFFICIENCY = getAttribute("movement_efficiency"); - /** - * Oxygen use underwater. - */ - Attribute OXYGEN_BONUS = getAttribute("oxygen_bonus"); - /** - * Movement speed through water. - */ - Attribute WATER_MOVEMENT_EFFICIENCY = getAttribute("water_movement_efficiency"); - /** - * Range at which mobs will be tempted by items. - */ - Attribute TEMPT_RANGE = getAttribute("tempt_range"); - /** - * The block reach distance of a Player. - */ - Attribute BLOCK_INTERACTION_RANGE = getAttribute("block_interaction_range"); - /** - * The entity reach distance of a Player. - */ - Attribute ENTITY_INTERACTION_RANGE = getAttribute("entity_interaction_range"); - /** - * Block break speed of a Player. - */ + + Attribute ATTACK_DAMAGE = getAttribute("attack_damage"); + + Attribute ATTACK_KNOCKBACK = getAttribute("attack_knockback"); + + Attribute ATTACK_SPEED = getAttribute("attack_speed"); + Attribute BLOCK_BREAK_SPEED = getAttribute("block_break_speed"); - /** - * Mining speed for correct tools. - */ + + Attribute BLOCK_INTERACTION_RANGE = getAttribute("block_interaction_range"); + + Attribute BURNING_TIME = getAttribute("burning_time"); + + Attribute ENTITY_INTERACTION_RANGE = getAttribute("entity_interaction_range"); + + Attribute EXPLOSION_KNOCKBACK_RESISTANCE = getAttribute("explosion_knockback_resistance"); + + Attribute FALL_DAMAGE_MULTIPLIER = getAttribute("fall_damage_multiplier"); + + Attribute FLYING_SPEED = getAttribute("flying_speed"); + + Attribute FOLLOW_RANGE = getAttribute("follow_range"); + + Attribute GRAVITY = getAttribute("gravity"); + + Attribute JUMP_STRENGTH = getAttribute("jump_strength"); + + Attribute KNOCKBACK_RESISTANCE = getAttribute("knockback_resistance"); + + Attribute LUCK = getAttribute("luck"); + + Attribute MAX_ABSORPTION = getAttribute("max_absorption"); + + Attribute MAX_HEALTH = getAttribute("max_health"); + Attribute MINING_EFFICIENCY = getAttribute("mining_efficiency"); - /** - * Sneaking speed. - */ + + Attribute MOVEMENT_EFFICIENCY = getAttribute("movement_efficiency"); + + Attribute MOVEMENT_SPEED = getAttribute("movement_speed"); + + Attribute OXYGEN_BONUS = getAttribute("oxygen_bonus"); + + Attribute SAFE_FALL_DISTANCE = getAttribute("safe_fall_distance"); + + Attribute SCALE = getAttribute("scale"); + Attribute SNEAKING_SPEED = getAttribute("sneaking_speed"); - /** - * Underwater mining speed. - */ - Attribute SUBMERGED_MINING_SPEED = getAttribute("submerged_mining_speed"); - /** - * Sweeping damage. - */ - Attribute SWEEPING_DAMAGE_RATIO = getAttribute("sweeping_damage_ratio"); - /** - * Chance of a zombie to spawn reinforcements. - */ + Attribute SPAWN_REINFORCEMENTS = getAttribute("spawn_reinforcements"); + Attribute STEP_HEIGHT = getAttribute("step_height"); + + Attribute SUBMERGED_MINING_SPEED = getAttribute("submerged_mining_speed"); + + Attribute SWEEPING_DAMAGE_RATIO = getAttribute("sweeping_damage_ratio"); + + Attribute TEMPT_RANGE = getAttribute("tempt_range"); + + Attribute WATER_MOVEMENT_EFFICIENCY = getAttribute("water_movement_efficiency"); + // End generate - Attribute + @NotNull private static Attribute getAttribute(@NotNull String key) { return Registry.ATTRIBUTE.getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/block/Biome.java b/paper-api/src/main/java/org/bukkit/block/Biome.java index 1387559c3a..c0bc41b7e0 100644 --- a/paper-api/src/main/java/org/bukkit/block/Biome.java +++ b/paper-api/src/main/java/org/bukkit/block/Biome.java @@ -23,72 +23,139 @@ import org.jetbrains.annotations.NotNull; */ public interface Biome extends OldEnum, Keyed, net.kyori.adventure.translation.Translatable { // Paper - Adventure translations - Biome OCEAN = getBiome("ocean"); - Biome PLAINS = getBiome("plains"); - Biome DESERT = getBiome("desert"); - Biome WINDSWEPT_HILLS = getBiome("windswept_hills"); - Biome FOREST = getBiome("forest"); - Biome TAIGA = getBiome("taiga"); - Biome SWAMP = getBiome("swamp"); - Biome MANGROVE_SWAMP = getBiome("mangrove_swamp"); - Biome RIVER = getBiome("river"); - Biome NETHER_WASTES = getBiome("nether_wastes"); - Biome THE_END = getBiome("the_end"); - Biome FROZEN_OCEAN = getBiome("frozen_ocean"); - Biome FROZEN_RIVER = getBiome("frozen_river"); - Biome SNOWY_PLAINS = getBiome("snowy_plains"); - Biome MUSHROOM_FIELDS = getBiome("mushroom_fields"); - Biome BEACH = getBiome("beach"); - Biome JUNGLE = getBiome("jungle"); - Biome SPARSE_JUNGLE = getBiome("sparse_jungle"); - Biome DEEP_OCEAN = getBiome("deep_ocean"); - Biome STONY_SHORE = getBiome("stony_shore"); - Biome SNOWY_BEACH = getBiome("snowy_beach"); - Biome BIRCH_FOREST = getBiome("birch_forest"); - Biome DARK_FOREST = getBiome("dark_forest"); - Biome PALE_GARDEN = getBiome("pale_garden"); - Biome SNOWY_TAIGA = getBiome("snowy_taiga"); - Biome OLD_GROWTH_PINE_TAIGA = getBiome("old_growth_pine_taiga"); - Biome WINDSWEPT_FOREST = getBiome("windswept_forest"); - Biome SAVANNA = getBiome("savanna"); - Biome SAVANNA_PLATEAU = getBiome("savanna_plateau"); + // Start generate - Biome + // @GeneratedFrom 1.21.4 Biome BADLANDS = getBiome("badlands"); - Biome WOODED_BADLANDS = getBiome("wooded_badlands"); - Biome SMALL_END_ISLANDS = getBiome("small_end_islands"); - Biome END_MIDLANDS = getBiome("end_midlands"); - Biome END_HIGHLANDS = getBiome("end_highlands"); - Biome END_BARRENS = getBiome("end_barrens"); - Biome WARM_OCEAN = getBiome("warm_ocean"); - Biome LUKEWARM_OCEAN = getBiome("lukewarm_ocean"); - Biome COLD_OCEAN = getBiome("cold_ocean"); - Biome DEEP_LUKEWARM_OCEAN = getBiome("deep_lukewarm_ocean"); - Biome DEEP_COLD_OCEAN = getBiome("deep_cold_ocean"); - Biome DEEP_FROZEN_OCEAN = getBiome("deep_frozen_ocean"); - Biome THE_VOID = getBiome("the_void"); - Biome SUNFLOWER_PLAINS = getBiome("sunflower_plains"); - Biome WINDSWEPT_GRAVELLY_HILLS = getBiome("windswept_gravelly_hills"); - Biome FLOWER_FOREST = getBiome("flower_forest"); - Biome ICE_SPIKES = getBiome("ice_spikes"); - Biome OLD_GROWTH_BIRCH_FOREST = getBiome("old_growth_birch_forest"); - Biome OLD_GROWTH_SPRUCE_TAIGA = getBiome("old_growth_spruce_taiga"); - Biome WINDSWEPT_SAVANNA = getBiome("windswept_savanna"); - Biome ERODED_BADLANDS = getBiome("eroded_badlands"); + Biome BAMBOO_JUNGLE = getBiome("bamboo_jungle"); - Biome SOUL_SAND_VALLEY = getBiome("soul_sand_valley"); - Biome CRIMSON_FOREST = getBiome("crimson_forest"); - Biome WARPED_FOREST = getBiome("warped_forest"); + Biome BASALT_DELTAS = getBiome("basalt_deltas"); - Biome DRIPSTONE_CAVES = getBiome("dripstone_caves"); - Biome LUSH_CAVES = getBiome("lush_caves"); - Biome DEEP_DARK = getBiome("deep_dark"); - Biome MEADOW = getBiome("meadow"); - Biome GROVE = getBiome("grove"); - Biome SNOWY_SLOPES = getBiome("snowy_slopes"); - Biome FROZEN_PEAKS = getBiome("frozen_peaks"); - Biome JAGGED_PEAKS = getBiome("jagged_peaks"); - Biome STONY_PEAKS = getBiome("stony_peaks"); + + Biome BEACH = getBiome("beach"); + + Biome BIRCH_FOREST = getBiome("birch_forest"); + Biome CHERRY_GROVE = getBiome("cherry_grove"); + Biome COLD_OCEAN = getBiome("cold_ocean"); + + Biome CRIMSON_FOREST = getBiome("crimson_forest"); + + Biome DARK_FOREST = getBiome("dark_forest"); + + Biome DEEP_COLD_OCEAN = getBiome("deep_cold_ocean"); + + Biome DEEP_DARK = getBiome("deep_dark"); + + Biome DEEP_FROZEN_OCEAN = getBiome("deep_frozen_ocean"); + + Biome DEEP_LUKEWARM_OCEAN = getBiome("deep_lukewarm_ocean"); + + Biome DEEP_OCEAN = getBiome("deep_ocean"); + + Biome DESERT = getBiome("desert"); + + Biome DRIPSTONE_CAVES = getBiome("dripstone_caves"); + + Biome END_BARRENS = getBiome("end_barrens"); + + Biome END_HIGHLANDS = getBiome("end_highlands"); + + Biome END_MIDLANDS = getBiome("end_midlands"); + + Biome ERODED_BADLANDS = getBiome("eroded_badlands"); + + Biome FLOWER_FOREST = getBiome("flower_forest"); + + Biome FOREST = getBiome("forest"); + + Biome FROZEN_OCEAN = getBiome("frozen_ocean"); + + Biome FROZEN_PEAKS = getBiome("frozen_peaks"); + + Biome FROZEN_RIVER = getBiome("frozen_river"); + + Biome GROVE = getBiome("grove"); + + Biome ICE_SPIKES = getBiome("ice_spikes"); + + Biome JAGGED_PEAKS = getBiome("jagged_peaks"); + + Biome JUNGLE = getBiome("jungle"); + + Biome LUKEWARM_OCEAN = getBiome("lukewarm_ocean"); + + Biome LUSH_CAVES = getBiome("lush_caves"); + + Biome MANGROVE_SWAMP = getBiome("mangrove_swamp"); + + Biome MEADOW = getBiome("meadow"); + + Biome MUSHROOM_FIELDS = getBiome("mushroom_fields"); + + Biome NETHER_WASTES = getBiome("nether_wastes"); + + Biome OCEAN = getBiome("ocean"); + + Biome OLD_GROWTH_BIRCH_FOREST = getBiome("old_growth_birch_forest"); + + Biome OLD_GROWTH_PINE_TAIGA = getBiome("old_growth_pine_taiga"); + + Biome OLD_GROWTH_SPRUCE_TAIGA = getBiome("old_growth_spruce_taiga"); + + Biome PALE_GARDEN = getBiome("pale_garden"); + + Biome PLAINS = getBiome("plains"); + + Biome RIVER = getBiome("river"); + + Biome SAVANNA = getBiome("savanna"); + + Biome SAVANNA_PLATEAU = getBiome("savanna_plateau"); + + Biome SMALL_END_ISLANDS = getBiome("small_end_islands"); + + Biome SNOWY_BEACH = getBiome("snowy_beach"); + + Biome SNOWY_PLAINS = getBiome("snowy_plains"); + + Biome SNOWY_SLOPES = getBiome("snowy_slopes"); + + Biome SNOWY_TAIGA = getBiome("snowy_taiga"); + + Biome SOUL_SAND_VALLEY = getBiome("soul_sand_valley"); + + Biome SPARSE_JUNGLE = getBiome("sparse_jungle"); + + Biome STONY_PEAKS = getBiome("stony_peaks"); + + Biome STONY_SHORE = getBiome("stony_shore"); + + Biome SUNFLOWER_PLAINS = getBiome("sunflower_plains"); + + Biome SWAMP = getBiome("swamp"); + + Biome TAIGA = getBiome("taiga"); + + Biome THE_END = getBiome("the_end"); + + Biome THE_VOID = getBiome("the_void"); + + Biome WARM_OCEAN = getBiome("warm_ocean"); + + Biome WARPED_FOREST = getBiome("warped_forest"); + + Biome WINDSWEPT_FOREST = getBiome("windswept_forest"); + + Biome WINDSWEPT_GRAVELLY_HILLS = getBiome("windswept_gravelly_hills"); + + Biome WINDSWEPT_HILLS = getBiome("windswept_hills"); + + Biome WINDSWEPT_SAVANNA = getBiome("windswept_savanna"); + + Biome WOODED_BADLANDS = getBiome("wooded_badlands"); + // End generate - Biome + /** * Represents a custom Biome * diff --git a/paper-api/src/main/java/org/bukkit/block/BlockType.java b/paper-api/src/main/java/org/bukkit/block/BlockType.java index d8fde88e3b..07e8ac9440 100644 --- a/paper-api/src/main/java/org/bukkit/block/BlockType.java +++ b/paper-api/src/main/java/org/bukkit/block/BlockType.java @@ -194,3240 +194,2198 @@ public interface BlockType extends Keyed, Translatable, net.kyori.adventure.tran } // - BlockType.Typed AIR = getBlockType("air"); - BlockType.Typed STONE = getBlockType("stone"); - BlockType.Typed GRANITE = getBlockType("granite"); - BlockType.Typed POLISHED_GRANITE = getBlockType("polished_granite"); - BlockType.Typed DIORITE = getBlockType("diorite"); - BlockType.Typed POLISHED_DIORITE = getBlockType("polished_diorite"); - BlockType.Typed ANDESITE = getBlockType("andesite"); - BlockType.Typed POLISHED_ANDESITE = getBlockType("polished_andesite"); - /** - * BlockData: {@link Snowable} - */ - BlockType.Typed GRASS_BLOCK = getBlockType("grass_block"); - BlockType.Typed DIRT = getBlockType("dirt"); - BlockType.Typed COARSE_DIRT = getBlockType("coarse_dirt"); - /** - * BlockData: {@link Snowable} - */ - BlockType.Typed PODZOL = getBlockType("podzol"); - BlockType.Typed COBBLESTONE = getBlockType("cobblestone"); - BlockType.Typed OAK_PLANKS = getBlockType("oak_planks"); - BlockType.Typed SPRUCE_PLANKS = getBlockType("spruce_planks"); - BlockType.Typed BIRCH_PLANKS = getBlockType("birch_planks"); - BlockType.Typed JUNGLE_PLANKS = getBlockType("jungle_planks"); - BlockType.Typed ACACIA_PLANKS = getBlockType("acacia_planks"); - BlockType.Typed CHERRY_PLANKS = getBlockType("cherry_planks"); - BlockType.Typed DARK_OAK_PLANKS = getBlockType("dark_oak_planks"); - BlockType.Typed PALE_OAK_PLANKS = getBlockType("pale_oak_planks"); - BlockType.Typed MANGROVE_PLANKS = getBlockType("mangrove_planks"); - BlockType.Typed BAMBOO_PLANKS = getBlockType("bamboo_planks"); - BlockType.Typed BAMBOO_MOSAIC = getBlockType("bamboo_mosaic"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed OAK_SAPLING = getBlockType("oak_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed SPRUCE_SAPLING = getBlockType("spruce_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed BIRCH_SAPLING = getBlockType("birch_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed JUNGLE_SAPLING = getBlockType("jungle_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed ACACIA_SAPLING = getBlockType("acacia_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed CHERRY_SAPLING = getBlockType("cherry_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed DARK_OAK_SAPLING = getBlockType("dark_oak_sapling"); - /** - * BlockData: {@link Sapling} - */ - BlockType.Typed PALE_OAK_SAPLING = getBlockType("pale_oak_sapling"); - /** - * BlockData: {@link MangrovePropagule} - */ - BlockType.Typed MANGROVE_PROPAGULE = getBlockType("mangrove_propagule"); - BlockType.Typed BEDROCK = getBlockType("bedrock"); - /** - * BlockData: {@link Levelled} - */ - BlockType.Typed WATER = getBlockType("water"); - /** - * BlockData: {@link Levelled} - */ - BlockType.Typed LAVA = getBlockType("lava"); - BlockType.Typed SAND = getBlockType("sand"); - /** - * BlockData: {@link Brushable} - */ - BlockType.Typed SUSPICIOUS_SAND = getBlockType("suspicious_sand"); - BlockType.Typed RED_SAND = getBlockType("red_sand"); - BlockType.Typed GRAVEL = getBlockType("gravel"); - /** - * BlockData: {@link Brushable} - */ - BlockType.Typed SUSPICIOUS_GRAVEL = getBlockType("suspicious_gravel"); - BlockType.Typed GOLD_ORE = getBlockType("gold_ore"); - BlockType.Typed DEEPSLATE_GOLD_ORE = getBlockType("deepslate_gold_ore"); - BlockType.Typed IRON_ORE = getBlockType("iron_ore"); - BlockType.Typed DEEPSLATE_IRON_ORE = getBlockType("deepslate_iron_ore"); - BlockType.Typed COAL_ORE = getBlockType("coal_ore"); - BlockType.Typed DEEPSLATE_COAL_ORE = getBlockType("deepslate_coal_ore"); - BlockType.Typed NETHER_GOLD_ORE = getBlockType("nether_gold_ore"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed OAK_LOG = getBlockType("oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed SPRUCE_LOG = getBlockType("spruce_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed BIRCH_LOG = getBlockType("birch_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed JUNGLE_LOG = getBlockType("jungle_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed ACACIA_LOG = getBlockType("acacia_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed CHERRY_LOG = getBlockType("cherry_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed DARK_OAK_LOG = getBlockType("dark_oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed PALE_OAK_LOG = getBlockType("pale_oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed MANGROVE_LOG = getBlockType("mangrove_log"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed MANGROVE_ROOTS = getBlockType("mangrove_roots"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed MUDDY_MANGROVE_ROOTS = getBlockType("muddy_mangrove_roots"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed BAMBOO_BLOCK = getBlockType("bamboo_block"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_SPRUCE_LOG = getBlockType("stripped_spruce_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_BIRCH_LOG = getBlockType("stripped_birch_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_JUNGLE_LOG = getBlockType("stripped_jungle_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_ACACIA_LOG = getBlockType("stripped_acacia_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_CHERRY_LOG = getBlockType("stripped_cherry_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_DARK_OAK_LOG = getBlockType("stripped_dark_oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_PALE_OAK_LOG = getBlockType("stripped_pale_oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_OAK_LOG = getBlockType("stripped_oak_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_MANGROVE_LOG = getBlockType("stripped_mangrove_log"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_BAMBOO_BLOCK = getBlockType("stripped_bamboo_block"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed OAK_WOOD = getBlockType("oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed SPRUCE_WOOD = getBlockType("spruce_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed BIRCH_WOOD = getBlockType("birch_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed JUNGLE_WOOD = getBlockType("jungle_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed ACACIA_WOOD = getBlockType("acacia_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed CHERRY_WOOD = getBlockType("cherry_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed DARK_OAK_WOOD = getBlockType("dark_oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed PALE_OAK_WOOD = getBlockType("pale_oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed MANGROVE_WOOD = getBlockType("mangrove_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_OAK_WOOD = getBlockType("stripped_oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_SPRUCE_WOOD = getBlockType("stripped_spruce_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_BIRCH_WOOD = getBlockType("stripped_birch_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_JUNGLE_WOOD = getBlockType("stripped_jungle_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_ACACIA_WOOD = getBlockType("stripped_acacia_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_CHERRY_WOOD = getBlockType("stripped_cherry_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_DARK_OAK_WOOD = getBlockType("stripped_dark_oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_PALE_OAK_WOOD = getBlockType("stripped_pale_oak_wood"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_MANGROVE_WOOD = getBlockType("stripped_mangrove_wood"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed OAK_LEAVES = getBlockType("oak_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed SPRUCE_LEAVES = getBlockType("spruce_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed BIRCH_LEAVES = getBlockType("birch_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed JUNGLE_LEAVES = getBlockType("jungle_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed ACACIA_LEAVES = getBlockType("acacia_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed CHERRY_LEAVES = getBlockType("cherry_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed DARK_OAK_LEAVES = getBlockType("dark_oak_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed PALE_OAK_LEAVES = getBlockType("pale_oak_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed MANGROVE_LEAVES = getBlockType("mangrove_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed AZALEA_LEAVES = getBlockType("azalea_leaves"); - /** - * BlockData: {@link Leaves} - */ - BlockType.Typed FLOWERING_AZALEA_LEAVES = getBlockType("flowering_azalea_leaves"); - BlockType.Typed SPONGE = getBlockType("sponge"); - BlockType.Typed WET_SPONGE = getBlockType("wet_sponge"); - BlockType.Typed GLASS = getBlockType("glass"); - BlockType.Typed LAPIS_ORE = getBlockType("lapis_ore"); - BlockType.Typed DEEPSLATE_LAPIS_ORE = getBlockType("deepslate_lapis_ore"); - BlockType.Typed LAPIS_BLOCK = getBlockType("lapis_block"); - /** - * BlockData: {@link Dispenser} - */ - BlockType.Typed DISPENSER = getBlockType("dispenser"); - BlockType.Typed SANDSTONE = getBlockType("sandstone"); - BlockType.Typed CHISELED_SANDSTONE = getBlockType("chiseled_sandstone"); - BlockType.Typed CUT_SANDSTONE = getBlockType("cut_sandstone"); - /** - * BlockData: {@link NoteBlock} - */ - BlockType.Typed NOTE_BLOCK = getBlockType("note_block"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed WHITE_BED = getBlockType("white_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed ORANGE_BED = getBlockType("orange_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed MAGENTA_BED = getBlockType("magenta_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed LIGHT_BLUE_BED = getBlockType("light_blue_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed YELLOW_BED = getBlockType("yellow_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed LIME_BED = getBlockType("lime_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed PINK_BED = getBlockType("pink_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed GRAY_BED = getBlockType("gray_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed LIGHT_GRAY_BED = getBlockType("light_gray_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed CYAN_BED = getBlockType("cyan_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed PURPLE_BED = getBlockType("purple_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed BLUE_BED = getBlockType("blue_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed BROWN_BED = getBlockType("brown_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed GREEN_BED = getBlockType("green_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed RED_BED = getBlockType("red_bed"); - /** - * BlockData: {@link Bed} - */ - BlockType.Typed BLACK_BED = getBlockType("black_bed"); - /** - * BlockData: {@link RedstoneRail} - */ - BlockType.Typed POWERED_RAIL = getBlockType("powered_rail"); - /** - * BlockData: {@link RedstoneRail} - */ - BlockType.Typed DETECTOR_RAIL = getBlockType("detector_rail"); - /** - * BlockData: {@link Piston} - */ - BlockType.Typed STICKY_PISTON = getBlockType("sticky_piston"); - BlockType.Typed COBWEB = getBlockType("cobweb"); - BlockType.Typed SHORT_GRASS = getBlockType("short_grass"); - BlockType.Typed FERN = getBlockType("fern"); - BlockType.Typed DEAD_BUSH = getBlockType("dead_bush"); - BlockType.Typed SEAGRASS = getBlockType("seagrass"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed TALL_SEAGRASS = getBlockType("tall_seagrass"); - /** - * BlockData: {@link Piston} - */ - BlockType.Typed PISTON = getBlockType("piston"); - /** - * BlockData: {@link PistonHead} - */ - BlockType.Typed PISTON_HEAD = getBlockType("piston_head"); - BlockType.Typed WHITE_WOOL = getBlockType("white_wool"); - BlockType.Typed ORANGE_WOOL = getBlockType("orange_wool"); - BlockType.Typed MAGENTA_WOOL = getBlockType("magenta_wool"); - BlockType.Typed LIGHT_BLUE_WOOL = getBlockType("light_blue_wool"); - BlockType.Typed YELLOW_WOOL = getBlockType("yellow_wool"); - BlockType.Typed LIME_WOOL = getBlockType("lime_wool"); - BlockType.Typed PINK_WOOL = getBlockType("pink_wool"); - BlockType.Typed GRAY_WOOL = getBlockType("gray_wool"); - BlockType.Typed LIGHT_GRAY_WOOL = getBlockType("light_gray_wool"); - BlockType.Typed CYAN_WOOL = getBlockType("cyan_wool"); - BlockType.Typed PURPLE_WOOL = getBlockType("purple_wool"); - BlockType.Typed BLUE_WOOL = getBlockType("blue_wool"); - BlockType.Typed BROWN_WOOL = getBlockType("brown_wool"); - BlockType.Typed GREEN_WOOL = getBlockType("green_wool"); - BlockType.Typed RED_WOOL = getBlockType("red_wool"); - BlockType.Typed BLACK_WOOL = getBlockType("black_wool"); - /** - * BlockData: {@link TechnicalPiston} - */ - BlockType.Typed MOVING_PISTON = getBlockType("moving_piston"); - BlockType.Typed DANDELION = getBlockType("dandelion"); - BlockType.Typed TORCHFLOWER = getBlockType("torchflower"); - BlockType.Typed POPPY = getBlockType("poppy"); - BlockType.Typed BLUE_ORCHID = getBlockType("blue_orchid"); - BlockType.Typed ALLIUM = getBlockType("allium"); - BlockType.Typed AZURE_BLUET = getBlockType("azure_bluet"); - BlockType.Typed RED_TULIP = getBlockType("red_tulip"); - BlockType.Typed ORANGE_TULIP = getBlockType("orange_tulip"); - BlockType.Typed WHITE_TULIP = getBlockType("white_tulip"); - BlockType.Typed PINK_TULIP = getBlockType("pink_tulip"); - BlockType.Typed OXEYE_DAISY = getBlockType("oxeye_daisy"); - BlockType.Typed CORNFLOWER = getBlockType("cornflower"); - BlockType.Typed WITHER_ROSE = getBlockType("wither_rose"); - BlockType.Typed LILY_OF_THE_VALLEY = getBlockType("lily_of_the_valley"); - BlockType.Typed BROWN_MUSHROOM = getBlockType("brown_mushroom"); - BlockType.Typed RED_MUSHROOM = getBlockType("red_mushroom"); - BlockType.Typed GOLD_BLOCK = getBlockType("gold_block"); - BlockType.Typed IRON_BLOCK = getBlockType("iron_block"); - BlockType.Typed BRICKS = getBlockType("bricks"); - /** - * BlockData: {@link TNT} - */ - BlockType.Typed TNT = getBlockType("tnt"); - BlockType.Typed BOOKSHELF = getBlockType("bookshelf"); - /** - * BlockData: {@link ChiseledBookshelf} - */ - BlockType.Typed CHISELED_BOOKSHELF = getBlockType("chiseled_bookshelf"); - BlockType.Typed MOSSY_COBBLESTONE = getBlockType("mossy_cobblestone"); - BlockType.Typed OBSIDIAN = getBlockType("obsidian"); - BlockType.Typed TORCH = getBlockType("torch"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed WALL_TORCH = getBlockType("wall_torch"); - /** - * BlockData: {@link Fire} - */ - BlockType.Typed FIRE = getBlockType("fire"); - BlockType.Typed SOUL_FIRE = getBlockType("soul_fire"); - BlockType.Typed SPAWNER = getBlockType("spawner"); - /** - * BlockData: {@link Fire} - */ - BlockType.Typed CREAKING_HEART = getBlockType("creaking_heart"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed OAK_STAIRS = getBlockType("oak_stairs"); - /** - * BlockData: {@link Chest} - */ - BlockType.Typed CHEST = getBlockType("chest"); - /** - * BlockData: {@link RedstoneWire} - */ - BlockType.Typed REDSTONE_WIRE = getBlockType("redstone_wire"); - BlockType.Typed DIAMOND_ORE = getBlockType("diamond_ore"); - BlockType.Typed DEEPSLATE_DIAMOND_ORE = getBlockType("deepslate_diamond_ore"); - BlockType.Typed DIAMOND_BLOCK = getBlockType("diamond_block"); - BlockType.Typed CRAFTING_TABLE = getBlockType("crafting_table"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed WHEAT = getBlockType("wheat"); - /** - * BlockData: {@link Farmland} - */ - BlockType.Typed FARMLAND = getBlockType("farmland"); - /** - * BlockData: {@link Furnace} - */ - BlockType.Typed FURNACE = getBlockType("furnace"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed OAK_SIGN = getBlockType("oak_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed SPRUCE_SIGN = getBlockType("spruce_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed BIRCH_SIGN = getBlockType("birch_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed ACACIA_SIGN = getBlockType("acacia_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed CHERRY_SIGN = getBlockType("cherry_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed JUNGLE_SIGN = getBlockType("jungle_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed DARK_OAK_SIGN = getBlockType("dark_oak_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed PALE_OAK_SIGN = getBlockType("pale_oak_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed MANGROVE_SIGN = getBlockType("mangrove_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed BAMBOO_SIGN = getBlockType("bamboo_sign"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed OAK_DOOR = getBlockType("oak_door"); - /** - * BlockData: {@link Ladder} - */ - BlockType.Typed LADDER = getBlockType("ladder"); - /** - * BlockData: {@link Rail} - */ - BlockType.Typed RAIL = getBlockType("rail"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed COBBLESTONE_STAIRS = getBlockType("cobblestone_stairs"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed OAK_WALL_SIGN = getBlockType("oak_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed SPRUCE_WALL_SIGN = getBlockType("spruce_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed BIRCH_WALL_SIGN = getBlockType("birch_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed ACACIA_WALL_SIGN = getBlockType("acacia_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed CHERRY_WALL_SIGN = getBlockType("cherry_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed JUNGLE_WALL_SIGN = getBlockType("jungle_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed DARK_OAK_WALL_SIGN = getBlockType("dark_oak_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed PALE_OAK_WALL_SIGN = getBlockType("pale_oak_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed MANGROVE_WALL_SIGN = getBlockType("mangrove_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed BAMBOO_WALL_SIGN = getBlockType("bamboo_wall_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed OAK_HANGING_SIGN = getBlockType("oak_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed SPRUCE_HANGING_SIGN = getBlockType("spruce_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed BIRCH_HANGING_SIGN = getBlockType("birch_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed ACACIA_HANGING_SIGN = getBlockType("acacia_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed CHERRY_HANGING_SIGN = getBlockType("cherry_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed JUNGLE_HANGING_SIGN = getBlockType("jungle_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed DARK_OAK_HANGING_SIGN = getBlockType("dark_oak_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed PALE_OAK_HANGING_SIGN = getBlockType("pale_oak_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed CRIMSON_HANGING_SIGN = getBlockType("crimson_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed WARPED_HANGING_SIGN = getBlockType("warped_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed MANGROVE_HANGING_SIGN = getBlockType("mangrove_hanging_sign"); - /** - * BlockData: {@link HangingSign} - */ - BlockType.Typed BAMBOO_HANGING_SIGN = getBlockType("bamboo_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed OAK_WALL_HANGING_SIGN = getBlockType("oak_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed SPRUCE_WALL_HANGING_SIGN = getBlockType("spruce_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed BIRCH_WALL_HANGING_SIGN = getBlockType("birch_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed ACACIA_WALL_HANGING_SIGN = getBlockType("acacia_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed CHERRY_WALL_HANGING_SIGN = getBlockType("cherry_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed JUNGLE_WALL_HANGING_SIGN = getBlockType("jungle_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed DARK_OAK_WALL_HANGING_SIGN = getBlockType("dark_oak_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed PALE_OAK_WALL_HANGING_SIGN = getBlockType("pale_oak_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed MANGROVE_WALL_HANGING_SIGN = getBlockType("mangrove_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed CRIMSON_WALL_HANGING_SIGN = getBlockType("crimson_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed WARPED_WALL_HANGING_SIGN = getBlockType("warped_wall_hanging_sign"); - /** - * BlockData: {@link WallHangingSign} - */ - BlockType.Typed BAMBOO_WALL_HANGING_SIGN = getBlockType("bamboo_wall_hanging_sign"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed LEVER = getBlockType("lever"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed STONE_PRESSURE_PLATE = getBlockType("stone_pressure_plate"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed IRON_DOOR = getBlockType("iron_door"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed OAK_PRESSURE_PLATE = getBlockType("oak_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed SPRUCE_PRESSURE_PLATE = getBlockType("spruce_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed BIRCH_PRESSURE_PLATE = getBlockType("birch_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed JUNGLE_PRESSURE_PLATE = getBlockType("jungle_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed ACACIA_PRESSURE_PLATE = getBlockType("acacia_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed CHERRY_PRESSURE_PLATE = getBlockType("cherry_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed DARK_OAK_PRESSURE_PLATE = getBlockType("dark_oak_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed PALE_OAK_PRESSURE_PLATE = getBlockType("pale_oak_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed MANGROVE_PRESSURE_PLATE = getBlockType("mangrove_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed BAMBOO_PRESSURE_PLATE = getBlockType("bamboo_pressure_plate"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed REDSTONE_ORE = getBlockType("redstone_ore"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed DEEPSLATE_REDSTONE_ORE = getBlockType("deepslate_redstone_ore"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed REDSTONE_TORCH = getBlockType("redstone_torch"); - /** - * BlockData: {@link RedstoneWallTorch} - */ - BlockType.Typed REDSTONE_WALL_TORCH = getBlockType("redstone_wall_torch"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed STONE_BUTTON = getBlockType("stone_button"); - /** - * BlockData: {@link Snow} - */ - BlockType.Typed SNOW = getBlockType("snow"); - BlockType.Typed ICE = getBlockType("ice"); - BlockType.Typed SNOW_BLOCK = getBlockType("snow_block"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed CACTUS = getBlockType("cactus"); - BlockType.Typed CLAY = getBlockType("clay"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed SUGAR_CANE = getBlockType("sugar_cane"); - /** - * BlockData: {@link Jukebox} - */ - BlockType.Typed JUKEBOX = getBlockType("jukebox"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed OAK_FENCE = getBlockType("oak_fence"); - BlockType.Typed NETHERRACK = getBlockType("netherrack"); - BlockType.Typed SOUL_SAND = getBlockType("soul_sand"); - BlockType.Typed SOUL_SOIL = getBlockType("soul_soil"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed BASALT = getBlockType("basalt"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed POLISHED_BASALT = getBlockType("polished_basalt"); - BlockType.Typed SOUL_TORCH = getBlockType("soul_torch"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed SOUL_WALL_TORCH = getBlockType("soul_wall_torch"); - BlockType.Typed GLOWSTONE = getBlockType("glowstone"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed NETHER_PORTAL = getBlockType("nether_portal"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed CARVED_PUMPKIN = getBlockType("carved_pumpkin"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed JACK_O_LANTERN = getBlockType("jack_o_lantern"); - /** - * BlockData: {@link Cake} - */ - BlockType.Typed CAKE = getBlockType("cake"); - /** - * BlockData: {@link Repeater} - */ - BlockType.Typed REPEATER = getBlockType("repeater"); - BlockType.Typed WHITE_STAINED_GLASS = getBlockType("white_stained_glass"); - BlockType.Typed ORANGE_STAINED_GLASS = getBlockType("orange_stained_glass"); - BlockType.Typed MAGENTA_STAINED_GLASS = getBlockType("magenta_stained_glass"); - BlockType.Typed LIGHT_BLUE_STAINED_GLASS = getBlockType("light_blue_stained_glass"); - BlockType.Typed YELLOW_STAINED_GLASS = getBlockType("yellow_stained_glass"); - BlockType.Typed LIME_STAINED_GLASS = getBlockType("lime_stained_glass"); - BlockType.Typed PINK_STAINED_GLASS = getBlockType("pink_stained_glass"); - BlockType.Typed GRAY_STAINED_GLASS = getBlockType("gray_stained_glass"); - BlockType.Typed LIGHT_GRAY_STAINED_GLASS = getBlockType("light_gray_stained_glass"); - BlockType.Typed CYAN_STAINED_GLASS = getBlockType("cyan_stained_glass"); - BlockType.Typed PURPLE_STAINED_GLASS = getBlockType("purple_stained_glass"); - BlockType.Typed BLUE_STAINED_GLASS = getBlockType("blue_stained_glass"); - BlockType.Typed BROWN_STAINED_GLASS = getBlockType("brown_stained_glass"); - BlockType.Typed GREEN_STAINED_GLASS = getBlockType("green_stained_glass"); - BlockType.Typed RED_STAINED_GLASS = getBlockType("red_stained_glass"); - BlockType.Typed BLACK_STAINED_GLASS = getBlockType("black_stained_glass"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed OAK_TRAPDOOR = getBlockType("oak_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed SPRUCE_TRAPDOOR = getBlockType("spruce_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed BIRCH_TRAPDOOR = getBlockType("birch_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed JUNGLE_TRAPDOOR = getBlockType("jungle_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed ACACIA_TRAPDOOR = getBlockType("acacia_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed CHERRY_TRAPDOOR = getBlockType("cherry_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed DARK_OAK_TRAPDOOR = getBlockType("dark_oak_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed PALE_OAK_TRAPDOOR = getBlockType("pale_oak_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed MANGROVE_TRAPDOOR = getBlockType("mangrove_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed BAMBOO_TRAPDOOR = getBlockType("bamboo_trapdoor"); - BlockType.Typed STONE_BRICKS = getBlockType("stone_bricks"); - BlockType.Typed MOSSY_STONE_BRICKS = getBlockType("mossy_stone_bricks"); - BlockType.Typed CRACKED_STONE_BRICKS = getBlockType("cracked_stone_bricks"); - BlockType.Typed CHISELED_STONE_BRICKS = getBlockType("chiseled_stone_bricks"); - BlockType.Typed PACKED_MUD = getBlockType("packed_mud"); - BlockType.Typed MUD_BRICKS = getBlockType("mud_bricks"); - BlockType.Typed INFESTED_STONE = getBlockType("infested_stone"); - BlockType.Typed INFESTED_COBBLESTONE = getBlockType("infested_cobblestone"); - BlockType.Typed INFESTED_STONE_BRICKS = getBlockType("infested_stone_bricks"); - BlockType.Typed INFESTED_MOSSY_STONE_BRICKS = getBlockType("infested_mossy_stone_bricks"); - BlockType.Typed INFESTED_CRACKED_STONE_BRICKS = getBlockType("infested_cracked_stone_bricks"); - BlockType.Typed INFESTED_CHISELED_STONE_BRICKS = getBlockType("infested_chiseled_stone_bricks"); - /** - * BlockData: {@link MultipleFacing} - */ - BlockType.Typed BROWN_MUSHROOM_BLOCK = getBlockType("brown_mushroom_block"); - /** - * BlockData: {@link MultipleFacing} - */ - BlockType.Typed RED_MUSHROOM_BLOCK = getBlockType("red_mushroom_block"); - /** - * BlockData: {@link MultipleFacing} - */ - BlockType.Typed MUSHROOM_STEM = getBlockType("mushroom_stem"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed IRON_BARS = getBlockType("iron_bars"); - /** - * BlockData: {@link Chain} - */ - BlockType.Typed CHAIN = getBlockType("chain"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed GLASS_PANE = getBlockType("glass_pane"); - BlockType.Typed PUMPKIN = getBlockType("pumpkin"); - BlockType.Typed MELON = getBlockType("melon"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ATTACHED_PUMPKIN_STEM = getBlockType("attached_pumpkin_stem"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ATTACHED_MELON_STEM = getBlockType("attached_melon_stem"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed PUMPKIN_STEM = getBlockType("pumpkin_stem"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed MELON_STEM = getBlockType("melon_stem"); - /** - * BlockData: {@link MultipleFacing} - */ - BlockType.Typed VINE = getBlockType("vine"); - /** - * BlockData: {@link GlowLichen} - */ - BlockType.Typed GLOW_LICHEN = getBlockType("glow_lichen"); - /** - * BlockData: {@link ResinClump} - */ - BlockType.Typed RESIN_CLUMP = getBlockType("resin_clump"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed OAK_FENCE_GATE = getBlockType("oak_fence_gate"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed BRICK_STAIRS = getBlockType("brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed STONE_BRICK_STAIRS = getBlockType("stone_brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed MUD_BRICK_STAIRS = getBlockType("mud_brick_stairs"); - /** - * BlockData: {@link Snowable} - */ - BlockType.Typed MYCELIUM = getBlockType("mycelium"); - BlockType.Typed LILY_PAD = getBlockType("lily_pad"); - BlockType.Typed RESIN_BLOCK = getBlockType("resin_block"); - BlockType.Typed RESIN_BRICKS = getBlockType("resin_bricks"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed RESIN_BRICK_STAIRS = getBlockType("resin_brick_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed RESIN_BRICK_SLAB = getBlockType("resin_brick_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed RESIN_BRICK_WALL = getBlockType("resin_brick_wall"); - BlockType.Typed CHISELED_RESIN_BRICKS = getBlockType("chiseled_resin_bricks"); - BlockType.Typed NETHER_BRICKS = getBlockType("nether_bricks"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed NETHER_BRICK_FENCE = getBlockType("nether_brick_fence"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed NETHER_BRICK_STAIRS = getBlockType("nether_brick_stairs"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed NETHER_WART = getBlockType("nether_wart"); - BlockType.Typed ENCHANTING_TABLE = getBlockType("enchanting_table"); - /** - * BlockData: {@link BrewingStand} - */ - BlockType.Typed BREWING_STAND = getBlockType("brewing_stand"); - BlockType.Typed CAULDRON = getBlockType("cauldron"); - /** - * BlockData: {@link Levelled} - */ - BlockType.Typed WATER_CAULDRON = getBlockType("water_cauldron"); - BlockType.Typed LAVA_CAULDRON = getBlockType("lava_cauldron"); - /** - * BlockData: {@link Levelled} - */ - BlockType.Typed POWDER_SNOW_CAULDRON = getBlockType("powder_snow_cauldron"); - BlockType.Typed END_PORTAL = getBlockType("end_portal"); - /** - * BlockData: {@link EndPortalFrame} - */ - BlockType.Typed END_PORTAL_FRAME = getBlockType("end_portal_frame"); - BlockType.Typed END_STONE = getBlockType("end_stone"); - BlockType.Typed DRAGON_EGG = getBlockType("dragon_egg"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed REDSTONE_LAMP = getBlockType("redstone_lamp"); - /** - * BlockData: {@link Cocoa} - */ - BlockType.Typed COCOA = getBlockType("cocoa"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed SANDSTONE_STAIRS = getBlockType("sandstone_stairs"); - BlockType.Typed EMERALD_ORE = getBlockType("emerald_ore"); - BlockType.Typed DEEPSLATE_EMERALD_ORE = getBlockType("deepslate_emerald_ore"); - /** - * BlockData: {@link EnderChest} - */ - BlockType.Typed ENDER_CHEST = getBlockType("ender_chest"); - /** - * BlockData: {@link TripwireHook} - */ - BlockType.Typed TRIPWIRE_HOOK = getBlockType("tripwire_hook"); - /** - * BlockData: {@link Tripwire} - */ - BlockType.Typed TRIPWIRE = getBlockType("tripwire"); - BlockType.Typed EMERALD_BLOCK = getBlockType("emerald_block"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed SPRUCE_STAIRS = getBlockType("spruce_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed BIRCH_STAIRS = getBlockType("birch_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed JUNGLE_STAIRS = getBlockType("jungle_stairs"); - /** - * BlockData: {@link CommandBlock} - */ - BlockType.Typed COMMAND_BLOCK = getBlockType("command_block"); - BlockType.Typed BEACON = getBlockType("beacon"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed COBBLESTONE_WALL = getBlockType("cobblestone_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed MOSSY_COBBLESTONE_WALL = getBlockType("mossy_cobblestone_wall"); - BlockType.Typed FLOWER_POT = getBlockType("flower_pot"); - BlockType.Typed POTTED_TORCHFLOWER = getBlockType("potted_torchflower"); - BlockType.Typed POTTED_OAK_SAPLING = getBlockType("potted_oak_sapling"); - BlockType.Typed POTTED_SPRUCE_SAPLING = getBlockType("potted_spruce_sapling"); - BlockType.Typed POTTED_BIRCH_SAPLING = getBlockType("potted_birch_sapling"); - BlockType.Typed POTTED_JUNGLE_SAPLING = getBlockType("potted_jungle_sapling"); - BlockType.Typed POTTED_ACACIA_SAPLING = getBlockType("potted_acacia_sapling"); - BlockType.Typed POTTED_CHERRY_SAPLING = getBlockType("potted_cherry_sapling"); - BlockType.Typed POTTED_DARK_OAK_SAPLING = getBlockType("potted_dark_oak_sapling"); - BlockType.Typed POTTED_PALE_OAK_SAPLING = getBlockType("potted_pale_oak_sapling"); - BlockType.Typed POTTED_MANGROVE_PROPAGULE = getBlockType("potted_mangrove_propagule"); - BlockType.Typed POTTED_FERN = getBlockType("potted_fern"); - BlockType.Typed POTTED_DANDELION = getBlockType("potted_dandelion"); - BlockType.Typed POTTED_POPPY = getBlockType("potted_poppy"); - BlockType.Typed POTTED_BLUE_ORCHID = getBlockType("potted_blue_orchid"); - BlockType.Typed POTTED_ALLIUM = getBlockType("potted_allium"); - BlockType.Typed POTTED_AZURE_BLUET = getBlockType("potted_azure_bluet"); - BlockType.Typed POTTED_RED_TULIP = getBlockType("potted_red_tulip"); - BlockType.Typed POTTED_ORANGE_TULIP = getBlockType("potted_orange_tulip"); - BlockType.Typed POTTED_WHITE_TULIP = getBlockType("potted_white_tulip"); - BlockType.Typed POTTED_PINK_TULIP = getBlockType("potted_pink_tulip"); - BlockType.Typed POTTED_OXEYE_DAISY = getBlockType("potted_oxeye_daisy"); - BlockType.Typed POTTED_CORNFLOWER = getBlockType("potted_cornflower"); - BlockType.Typed POTTED_LILY_OF_THE_VALLEY = getBlockType("potted_lily_of_the_valley"); - BlockType.Typed POTTED_WITHER_ROSE = getBlockType("potted_wither_rose"); - BlockType.Typed POTTED_RED_MUSHROOM = getBlockType("potted_red_mushroom"); - BlockType.Typed POTTED_BROWN_MUSHROOM = getBlockType("potted_brown_mushroom"); - BlockType.Typed POTTED_DEAD_BUSH = getBlockType("potted_dead_bush"); - BlockType.Typed POTTED_CACTUS = getBlockType("potted_cactus"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed CARROTS = getBlockType("carrots"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed POTATOES = getBlockType("potatoes"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed OAK_BUTTON = getBlockType("oak_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed SPRUCE_BUTTON = getBlockType("spruce_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed BIRCH_BUTTON = getBlockType("birch_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed JUNGLE_BUTTON = getBlockType("jungle_button"); - /** - * BlockData: {@link Switch} - */ + // Start generate - BlockType + // @GeneratedFrom 1.21.4 BlockType.Typed ACACIA_BUTTON = getBlockType("acacia_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed CHERRY_BUTTON = getBlockType("cherry_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed DARK_OAK_BUTTON = getBlockType("dark_oak_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed PALE_OAK_BUTTON = getBlockType("pale_oak_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed MANGROVE_BUTTON = getBlockType("mangrove_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed BAMBOO_BUTTON = getBlockType("bamboo_button"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed SKELETON_SKULL = getBlockType("skeleton_skull"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed SKELETON_WALL_SKULL = getBlockType("skeleton_wall_skull"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed WITHER_SKELETON_SKULL = getBlockType("wither_skeleton_skull"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed WITHER_SKELETON_WALL_SKULL = getBlockType("wither_skeleton_wall_skull"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed ZOMBIE_HEAD = getBlockType("zombie_head"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed ZOMBIE_WALL_HEAD = getBlockType("zombie_wall_head"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed PLAYER_HEAD = getBlockType("player_head"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed PLAYER_WALL_HEAD = getBlockType("player_wall_head"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed CREEPER_HEAD = getBlockType("creeper_head"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed CREEPER_WALL_HEAD = getBlockType("creeper_wall_head"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed DRAGON_HEAD = getBlockType("dragon_head"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed DRAGON_WALL_HEAD = getBlockType("dragon_wall_head"); - /** - * BlockData: {@link Skull} - */ - BlockType.Typed PIGLIN_HEAD = getBlockType("piglin_head"); - /** - * BlockData: {@link WallSkull} - */ - BlockType.Typed PIGLIN_WALL_HEAD = getBlockType("piglin_wall_head"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ANVIL = getBlockType("anvil"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed CHIPPED_ANVIL = getBlockType("chipped_anvil"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed DAMAGED_ANVIL = getBlockType("damaged_anvil"); - /** - * BlockData: {@link Chest} - */ - BlockType.Typed TRAPPED_CHEST = getBlockType("trapped_chest"); - /** - * BlockData: {@link AnaloguePowerable} - */ - BlockType.Typed LIGHT_WEIGHTED_PRESSURE_PLATE = getBlockType("light_weighted_pressure_plate"); - /** - * BlockData: {@link AnaloguePowerable} - */ - BlockType.Typed HEAVY_WEIGHTED_PRESSURE_PLATE = getBlockType("heavy_weighted_pressure_plate"); - /** - * BlockData: {@link Comparator} - */ - BlockType.Typed COMPARATOR = getBlockType("comparator"); - /** - * BlockData: {@link DaylightDetector} - */ - BlockType.Typed DAYLIGHT_DETECTOR = getBlockType("daylight_detector"); - BlockType.Typed REDSTONE_BLOCK = getBlockType("redstone_block"); - BlockType.Typed NETHER_QUARTZ_ORE = getBlockType("nether_quartz_ore"); - /** - * BlockData: {@link Hopper} - */ - BlockType.Typed HOPPER = getBlockType("hopper"); - BlockType.Typed QUARTZ_BLOCK = getBlockType("quartz_block"); - BlockType.Typed CHISELED_QUARTZ_BLOCK = getBlockType("chiseled_quartz_block"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed QUARTZ_PILLAR = getBlockType("quartz_pillar"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed QUARTZ_STAIRS = getBlockType("quartz_stairs"); - /** - * BlockData: {@link RedstoneRail} - */ - BlockType.Typed ACTIVATOR_RAIL = getBlockType("activator_rail"); - /** - * BlockData: {@link Dispenser} - */ - BlockType.Typed DROPPER = getBlockType("dropper"); - BlockType.Typed WHITE_TERRACOTTA = getBlockType("white_terracotta"); - BlockType.Typed ORANGE_TERRACOTTA = getBlockType("orange_terracotta"); - BlockType.Typed MAGENTA_TERRACOTTA = getBlockType("magenta_terracotta"); - BlockType.Typed LIGHT_BLUE_TERRACOTTA = getBlockType("light_blue_terracotta"); - BlockType.Typed YELLOW_TERRACOTTA = getBlockType("yellow_terracotta"); - BlockType.Typed LIME_TERRACOTTA = getBlockType("lime_terracotta"); - BlockType.Typed PINK_TERRACOTTA = getBlockType("pink_terracotta"); - BlockType.Typed GRAY_TERRACOTTA = getBlockType("gray_terracotta"); - BlockType.Typed LIGHT_GRAY_TERRACOTTA = getBlockType("light_gray_terracotta"); - BlockType.Typed CYAN_TERRACOTTA = getBlockType("cyan_terracotta"); - BlockType.Typed PURPLE_TERRACOTTA = getBlockType("purple_terracotta"); - BlockType.Typed BLUE_TERRACOTTA = getBlockType("blue_terracotta"); - BlockType.Typed BROWN_TERRACOTTA = getBlockType("brown_terracotta"); - BlockType.Typed GREEN_TERRACOTTA = getBlockType("green_terracotta"); - BlockType.Typed RED_TERRACOTTA = getBlockType("red_terracotta"); - BlockType.Typed BLACK_TERRACOTTA = getBlockType("black_terracotta"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed WHITE_STAINED_GLASS_PANE = getBlockType("white_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed ORANGE_STAINED_GLASS_PANE = getBlockType("orange_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed MAGENTA_STAINED_GLASS_PANE = getBlockType("magenta_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed LIGHT_BLUE_STAINED_GLASS_PANE = getBlockType("light_blue_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed YELLOW_STAINED_GLASS_PANE = getBlockType("yellow_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed LIME_STAINED_GLASS_PANE = getBlockType("lime_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed PINK_STAINED_GLASS_PANE = getBlockType("pink_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed GRAY_STAINED_GLASS_PANE = getBlockType("gray_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed LIGHT_GRAY_STAINED_GLASS_PANE = getBlockType("light_gray_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed CYAN_STAINED_GLASS_PANE = getBlockType("cyan_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed PURPLE_STAINED_GLASS_PANE = getBlockType("purple_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed BLUE_STAINED_GLASS_PANE = getBlockType("blue_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed BROWN_STAINED_GLASS_PANE = getBlockType("brown_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed GREEN_STAINED_GLASS_PANE = getBlockType("green_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed RED_STAINED_GLASS_PANE = getBlockType("red_stained_glass_pane"); - /** - * BlockData: {@link GlassPane} - */ - BlockType.Typed BLACK_STAINED_GLASS_PANE = getBlockType("black_stained_glass_pane"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed ACACIA_STAIRS = getBlockType("acacia_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed CHERRY_STAIRS = getBlockType("cherry_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed DARK_OAK_STAIRS = getBlockType("dark_oak_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed PALE_OAK_STAIRS = getBlockType("pale_oak_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed MANGROVE_STAIRS = getBlockType("mangrove_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed BAMBOO_STAIRS = getBlockType("bamboo_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed BAMBOO_MOSAIC_STAIRS = getBlockType("bamboo_mosaic_stairs"); - BlockType.Typed SLIME_BLOCK = getBlockType("slime_block"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed BARRIER = getBlockType("barrier"); - /** - * BlockData: {@link Light} - */ - BlockType.Typed LIGHT = getBlockType("light"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed IRON_TRAPDOOR = getBlockType("iron_trapdoor"); - BlockType.Typed PRISMARINE = getBlockType("prismarine"); - BlockType.Typed PRISMARINE_BRICKS = getBlockType("prismarine_bricks"); - BlockType.Typed DARK_PRISMARINE = getBlockType("dark_prismarine"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed PRISMARINE_STAIRS = getBlockType("prismarine_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed PRISMARINE_BRICK_STAIRS = getBlockType("prismarine_brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed DARK_PRISMARINE_STAIRS = getBlockType("dark_prismarine_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed PRISMARINE_SLAB = getBlockType("prismarine_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed PRISMARINE_BRICK_SLAB = getBlockType("prismarine_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed DARK_PRISMARINE_SLAB = getBlockType("dark_prismarine_slab"); - BlockType.Typed SEA_LANTERN = getBlockType("sea_lantern"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed HAY_BLOCK = getBlockType("hay_block"); - BlockType.Typed WHITE_CARPET = getBlockType("white_carpet"); - BlockType.Typed ORANGE_CARPET = getBlockType("orange_carpet"); - BlockType.Typed MAGENTA_CARPET = getBlockType("magenta_carpet"); - BlockType.Typed LIGHT_BLUE_CARPET = getBlockType("light_blue_carpet"); - BlockType.Typed YELLOW_CARPET = getBlockType("yellow_carpet"); - BlockType.Typed LIME_CARPET = getBlockType("lime_carpet"); - BlockType.Typed PINK_CARPET = getBlockType("pink_carpet"); - BlockType.Typed GRAY_CARPET = getBlockType("gray_carpet"); - BlockType.Typed LIGHT_GRAY_CARPET = getBlockType("light_gray_carpet"); - BlockType.Typed CYAN_CARPET = getBlockType("cyan_carpet"); - BlockType.Typed PURPLE_CARPET = getBlockType("purple_carpet"); - BlockType.Typed BLUE_CARPET = getBlockType("blue_carpet"); - BlockType.Typed BROWN_CARPET = getBlockType("brown_carpet"); - BlockType.Typed GREEN_CARPET = getBlockType("green_carpet"); - BlockType.Typed RED_CARPET = getBlockType("red_carpet"); - BlockType.Typed BLACK_CARPET = getBlockType("black_carpet"); - BlockType.Typed TERRACOTTA = getBlockType("terracotta"); - BlockType.Typed COAL_BLOCK = getBlockType("coal_block"); - BlockType.Typed PACKED_ICE = getBlockType("packed_ice"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed SUNFLOWER = getBlockType("sunflower"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed LILAC = getBlockType("lilac"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed ROSE_BUSH = getBlockType("rose_bush"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed PEONY = getBlockType("peony"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed TALL_GRASS = getBlockType("tall_grass"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed LARGE_FERN = getBlockType("large_fern"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed WHITE_BANNER = getBlockType("white_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed ORANGE_BANNER = getBlockType("orange_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed MAGENTA_BANNER = getBlockType("magenta_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed LIGHT_BLUE_BANNER = getBlockType("light_blue_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed YELLOW_BANNER = getBlockType("yellow_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed LIME_BANNER = getBlockType("lime_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed PINK_BANNER = getBlockType("pink_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed GRAY_BANNER = getBlockType("gray_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed LIGHT_GRAY_BANNER = getBlockType("light_gray_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed CYAN_BANNER = getBlockType("cyan_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed PURPLE_BANNER = getBlockType("purple_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed BLUE_BANNER = getBlockType("blue_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed BROWN_BANNER = getBlockType("brown_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed GREEN_BANNER = getBlockType("green_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed RED_BANNER = getBlockType("red_banner"); - /** - * BlockData: {@link Rotatable} - */ - BlockType.Typed BLACK_BANNER = getBlockType("black_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed WHITE_WALL_BANNER = getBlockType("white_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ORANGE_WALL_BANNER = getBlockType("orange_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed MAGENTA_WALL_BANNER = getBlockType("magenta_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_BLUE_WALL_BANNER = getBlockType("light_blue_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed YELLOW_WALL_BANNER = getBlockType("yellow_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIME_WALL_BANNER = getBlockType("lime_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PINK_WALL_BANNER = getBlockType("pink_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GRAY_WALL_BANNER = getBlockType("gray_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_GRAY_WALL_BANNER = getBlockType("light_gray_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed CYAN_WALL_BANNER = getBlockType("cyan_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PURPLE_WALL_BANNER = getBlockType("purple_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLUE_WALL_BANNER = getBlockType("blue_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BROWN_WALL_BANNER = getBlockType("brown_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GREEN_WALL_BANNER = getBlockType("green_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed RED_WALL_BANNER = getBlockType("red_wall_banner"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLACK_WALL_BANNER = getBlockType("black_wall_banner"); - BlockType.Typed RED_SANDSTONE = getBlockType("red_sandstone"); - BlockType.Typed CHISELED_RED_SANDSTONE = getBlockType("chiseled_red_sandstone"); - BlockType.Typed CUT_RED_SANDSTONE = getBlockType("cut_red_sandstone"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed RED_SANDSTONE_STAIRS = getBlockType("red_sandstone_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed OAK_SLAB = getBlockType("oak_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SPRUCE_SLAB = getBlockType("spruce_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed BIRCH_SLAB = getBlockType("birch_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed JUNGLE_SLAB = getBlockType("jungle_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed ACACIA_SLAB = getBlockType("acacia_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed CHERRY_SLAB = getBlockType("cherry_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed DARK_OAK_SLAB = getBlockType("dark_oak_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed PALE_OAK_SLAB = getBlockType("pale_oak_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed MANGROVE_SLAB = getBlockType("mangrove_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed BAMBOO_SLAB = getBlockType("bamboo_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed BAMBOO_MOSAIC_SLAB = getBlockType("bamboo_mosaic_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed STONE_SLAB = getBlockType("stone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SMOOTH_STONE_SLAB = getBlockType("smooth_stone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SANDSTONE_SLAB = getBlockType("sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed CUT_SANDSTONE_SLAB = getBlockType("cut_sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed PETRIFIED_OAK_SLAB = getBlockType("petrified_oak_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed COBBLESTONE_SLAB = getBlockType("cobblestone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed BRICK_SLAB = getBlockType("brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed STONE_BRICK_SLAB = getBlockType("stone_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed MUD_BRICK_SLAB = getBlockType("mud_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed NETHER_BRICK_SLAB = getBlockType("nether_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed QUARTZ_SLAB = getBlockType("quartz_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed RED_SANDSTONE_SLAB = getBlockType("red_sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed CUT_RED_SANDSTONE_SLAB = getBlockType("cut_red_sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed PURPUR_SLAB = getBlockType("purpur_slab"); - BlockType.Typed SMOOTH_STONE = getBlockType("smooth_stone"); - BlockType.Typed SMOOTH_SANDSTONE = getBlockType("smooth_sandstone"); - BlockType.Typed SMOOTH_QUARTZ = getBlockType("smooth_quartz"); - BlockType.Typed SMOOTH_RED_SANDSTONE = getBlockType("smooth_red_sandstone"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed SPRUCE_FENCE_GATE = getBlockType("spruce_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed BIRCH_FENCE_GATE = getBlockType("birch_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed JUNGLE_FENCE_GATE = getBlockType("jungle_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed ACACIA_FENCE_GATE = getBlockType("acacia_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed CHERRY_FENCE_GATE = getBlockType("cherry_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed DARK_OAK_FENCE_GATE = getBlockType("dark_oak_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed PALE_OAK_FENCE_GATE = getBlockType("pale_oak_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed MANGROVE_FENCE_GATE = getBlockType("mangrove_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed BAMBOO_FENCE_GATE = getBlockType("bamboo_fence_gate"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed SPRUCE_FENCE = getBlockType("spruce_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed BIRCH_FENCE = getBlockType("birch_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed JUNGLE_FENCE = getBlockType("jungle_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed ACACIA_FENCE = getBlockType("acacia_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed CHERRY_FENCE = getBlockType("cherry_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed DARK_OAK_FENCE = getBlockType("dark_oak_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed PALE_OAK_FENCE = getBlockType("pale_oak_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed MANGROVE_FENCE = getBlockType("mangrove_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed BAMBOO_FENCE = getBlockType("bamboo_fence"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed SPRUCE_DOOR = getBlockType("spruce_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed BIRCH_DOOR = getBlockType("birch_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed JUNGLE_DOOR = getBlockType("jungle_door"); - /** - * BlockData: {@link Door} - */ + BlockType.Typed ACACIA_DOOR = getBlockType("acacia_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed CHERRY_DOOR = getBlockType("cherry_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed DARK_OAK_DOOR = getBlockType("dark_oak_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed PALE_OAK_DOOR = getBlockType("pale_oak_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed MANGROVE_DOOR = getBlockType("mangrove_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed BAMBOO_DOOR = getBlockType("bamboo_door"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed END_ROD = getBlockType("end_rod"); - /** - * BlockData: {@link MultipleFacing} - */ - BlockType.Typed CHORUS_PLANT = getBlockType("chorus_plant"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed CHORUS_FLOWER = getBlockType("chorus_flower"); - BlockType.Typed PURPUR_BLOCK = getBlockType("purpur_block"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed PURPUR_PILLAR = getBlockType("purpur_pillar"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed PURPUR_STAIRS = getBlockType("purpur_stairs"); - BlockType.Typed END_STONE_BRICKS = getBlockType("end_stone_bricks"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed TORCHFLOWER_CROP = getBlockType("torchflower_crop"); - /** - * BlockData: {@link PitcherCrop} - */ - BlockType.Typed PITCHER_CROP = getBlockType("pitcher_crop"); - /** - * BlockData: {@link Bisected} - */ - BlockType.Typed PITCHER_PLANT = getBlockType("pitcher_plant"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed BEETROOTS = getBlockType("beetroots"); - BlockType.Typed DIRT_PATH = getBlockType("dirt_path"); - BlockType.Typed END_GATEWAY = getBlockType("end_gateway"); - /** - * BlockData: {@link CommandBlock} - */ - BlockType.Typed REPEATING_COMMAND_BLOCK = getBlockType("repeating_command_block"); - /** - * BlockData: {@link CommandBlock} - */ - BlockType.Typed CHAIN_COMMAND_BLOCK = getBlockType("chain_command_block"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed FROSTED_ICE = getBlockType("frosted_ice"); - BlockType.Typed MAGMA_BLOCK = getBlockType("magma_block"); - BlockType.Typed NETHER_WART_BLOCK = getBlockType("nether_wart_block"); - BlockType.Typed RED_NETHER_BRICKS = getBlockType("red_nether_bricks"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed BONE_BLOCK = getBlockType("bone_block"); - BlockType.Typed STRUCTURE_VOID = getBlockType("structure_void"); - /** - * BlockData: {@link Observer} - */ - BlockType.Typed OBSERVER = getBlockType("observer"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed SHULKER_BOX = getBlockType("shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed WHITE_SHULKER_BOX = getBlockType("white_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ORANGE_SHULKER_BOX = getBlockType("orange_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed MAGENTA_SHULKER_BOX = getBlockType("magenta_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_BLUE_SHULKER_BOX = getBlockType("light_blue_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed YELLOW_SHULKER_BOX = getBlockType("yellow_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIME_SHULKER_BOX = getBlockType("lime_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PINK_SHULKER_BOX = getBlockType("pink_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GRAY_SHULKER_BOX = getBlockType("gray_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_GRAY_SHULKER_BOX = getBlockType("light_gray_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed CYAN_SHULKER_BOX = getBlockType("cyan_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PURPLE_SHULKER_BOX = getBlockType("purple_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLUE_SHULKER_BOX = getBlockType("blue_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BROWN_SHULKER_BOX = getBlockType("brown_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GREEN_SHULKER_BOX = getBlockType("green_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed RED_SHULKER_BOX = getBlockType("red_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLACK_SHULKER_BOX = getBlockType("black_shulker_box"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed WHITE_GLAZED_TERRACOTTA = getBlockType("white_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed ORANGE_GLAZED_TERRACOTTA = getBlockType("orange_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed MAGENTA_GLAZED_TERRACOTTA = getBlockType("magenta_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_BLUE_GLAZED_TERRACOTTA = getBlockType("light_blue_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed YELLOW_GLAZED_TERRACOTTA = getBlockType("yellow_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIME_GLAZED_TERRACOTTA = getBlockType("lime_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PINK_GLAZED_TERRACOTTA = getBlockType("pink_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GRAY_GLAZED_TERRACOTTA = getBlockType("gray_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LIGHT_GRAY_GLAZED_TERRACOTTA = getBlockType("light_gray_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed CYAN_GLAZED_TERRACOTTA = getBlockType("cyan_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed PURPLE_GLAZED_TERRACOTTA = getBlockType("purple_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLUE_GLAZED_TERRACOTTA = getBlockType("blue_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BROWN_GLAZED_TERRACOTTA = getBlockType("brown_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed GREEN_GLAZED_TERRACOTTA = getBlockType("green_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed RED_GLAZED_TERRACOTTA = getBlockType("red_glazed_terracotta"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed BLACK_GLAZED_TERRACOTTA = getBlockType("black_glazed_terracotta"); - BlockType.Typed WHITE_CONCRETE = getBlockType("white_concrete"); - BlockType.Typed ORANGE_CONCRETE = getBlockType("orange_concrete"); - BlockType.Typed MAGENTA_CONCRETE = getBlockType("magenta_concrete"); - BlockType.Typed LIGHT_BLUE_CONCRETE = getBlockType("light_blue_concrete"); - BlockType.Typed YELLOW_CONCRETE = getBlockType("yellow_concrete"); - BlockType.Typed LIME_CONCRETE = getBlockType("lime_concrete"); - BlockType.Typed PINK_CONCRETE = getBlockType("pink_concrete"); - BlockType.Typed GRAY_CONCRETE = getBlockType("gray_concrete"); - BlockType.Typed LIGHT_GRAY_CONCRETE = getBlockType("light_gray_concrete"); - BlockType.Typed CYAN_CONCRETE = getBlockType("cyan_concrete"); - BlockType.Typed PURPLE_CONCRETE = getBlockType("purple_concrete"); - BlockType.Typed BLUE_CONCRETE = getBlockType("blue_concrete"); - BlockType.Typed BROWN_CONCRETE = getBlockType("brown_concrete"); - BlockType.Typed GREEN_CONCRETE = getBlockType("green_concrete"); - BlockType.Typed RED_CONCRETE = getBlockType("red_concrete"); - BlockType.Typed BLACK_CONCRETE = getBlockType("black_concrete"); - BlockType.Typed WHITE_CONCRETE_POWDER = getBlockType("white_concrete_powder"); - BlockType.Typed ORANGE_CONCRETE_POWDER = getBlockType("orange_concrete_powder"); - BlockType.Typed MAGENTA_CONCRETE_POWDER = getBlockType("magenta_concrete_powder"); - BlockType.Typed LIGHT_BLUE_CONCRETE_POWDER = getBlockType("light_blue_concrete_powder"); - BlockType.Typed YELLOW_CONCRETE_POWDER = getBlockType("yellow_concrete_powder"); - BlockType.Typed LIME_CONCRETE_POWDER = getBlockType("lime_concrete_powder"); - BlockType.Typed PINK_CONCRETE_POWDER = getBlockType("pink_concrete_powder"); - BlockType.Typed GRAY_CONCRETE_POWDER = getBlockType("gray_concrete_powder"); - BlockType.Typed LIGHT_GRAY_CONCRETE_POWDER = getBlockType("light_gray_concrete_powder"); - BlockType.Typed CYAN_CONCRETE_POWDER = getBlockType("cyan_concrete_powder"); - BlockType.Typed PURPLE_CONCRETE_POWDER = getBlockType("purple_concrete_powder"); - BlockType.Typed BLUE_CONCRETE_POWDER = getBlockType("blue_concrete_powder"); - BlockType.Typed BROWN_CONCRETE_POWDER = getBlockType("brown_concrete_powder"); - BlockType.Typed GREEN_CONCRETE_POWDER = getBlockType("green_concrete_powder"); - BlockType.Typed RED_CONCRETE_POWDER = getBlockType("red_concrete_powder"); - BlockType.Typed BLACK_CONCRETE_POWDER = getBlockType("black_concrete_powder"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed KELP = getBlockType("kelp"); - BlockType.Typed KELP_PLANT = getBlockType("kelp_plant"); - BlockType.Typed DRIED_KELP_BLOCK = getBlockType("dried_kelp_block"); - /** - * BlockData: {@link TurtleEgg} - */ - BlockType.Typed TURTLE_EGG = getBlockType("turtle_egg"); - /** - * BlockData: {@link Hatchable} - */ - BlockType.Typed SNIFFER_EGG = getBlockType("sniffer_egg"); - BlockType.Typed DEAD_TUBE_CORAL_BLOCK = getBlockType("dead_tube_coral_block"); - BlockType.Typed DEAD_BRAIN_CORAL_BLOCK = getBlockType("dead_brain_coral_block"); - BlockType.Typed DEAD_BUBBLE_CORAL_BLOCK = getBlockType("dead_bubble_coral_block"); - BlockType.Typed DEAD_FIRE_CORAL_BLOCK = getBlockType("dead_fire_coral_block"); - BlockType.Typed DEAD_HORN_CORAL_BLOCK = getBlockType("dead_horn_coral_block"); - BlockType.Typed TUBE_CORAL_BLOCK = getBlockType("tube_coral_block"); - BlockType.Typed BRAIN_CORAL_BLOCK = getBlockType("brain_coral_block"); - BlockType.Typed BUBBLE_CORAL_BLOCK = getBlockType("bubble_coral_block"); - BlockType.Typed FIRE_CORAL_BLOCK = getBlockType("fire_coral_block"); - BlockType.Typed HORN_CORAL_BLOCK = getBlockType("horn_coral_block"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_TUBE_CORAL = getBlockType("dead_tube_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_BRAIN_CORAL = getBlockType("dead_brain_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_BUBBLE_CORAL = getBlockType("dead_bubble_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_FIRE_CORAL = getBlockType("dead_fire_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_HORN_CORAL = getBlockType("dead_horn_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed TUBE_CORAL = getBlockType("tube_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed BRAIN_CORAL = getBlockType("brain_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed BUBBLE_CORAL = getBlockType("bubble_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed FIRE_CORAL = getBlockType("fire_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed HORN_CORAL = getBlockType("horn_coral"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_TUBE_CORAL_FAN = getBlockType("dead_tube_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_BRAIN_CORAL_FAN = getBlockType("dead_brain_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_BUBBLE_CORAL_FAN = getBlockType("dead_bubble_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_FIRE_CORAL_FAN = getBlockType("dead_fire_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed DEAD_HORN_CORAL_FAN = getBlockType("dead_horn_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed TUBE_CORAL_FAN = getBlockType("tube_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed BRAIN_CORAL_FAN = getBlockType("brain_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed BUBBLE_CORAL_FAN = getBlockType("bubble_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed FIRE_CORAL_FAN = getBlockType("fire_coral_fan"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed HORN_CORAL_FAN = getBlockType("horn_coral_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed DEAD_TUBE_CORAL_WALL_FAN = getBlockType("dead_tube_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed DEAD_BRAIN_CORAL_WALL_FAN = getBlockType("dead_brain_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed DEAD_BUBBLE_CORAL_WALL_FAN = getBlockType("dead_bubble_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed DEAD_FIRE_CORAL_WALL_FAN = getBlockType("dead_fire_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed DEAD_HORN_CORAL_WALL_FAN = getBlockType("dead_horn_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed TUBE_CORAL_WALL_FAN = getBlockType("tube_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed BRAIN_CORAL_WALL_FAN = getBlockType("brain_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed BUBBLE_CORAL_WALL_FAN = getBlockType("bubble_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed FIRE_CORAL_WALL_FAN = getBlockType("fire_coral_wall_fan"); - /** - * BlockData: {@link CoralWallFan} - */ - BlockType.Typed HORN_CORAL_WALL_FAN = getBlockType("horn_coral_wall_fan"); - /** - * BlockData: {@link SeaPickle} - */ - BlockType.Typed SEA_PICKLE = getBlockType("sea_pickle"); - BlockType.Typed BLUE_ICE = getBlockType("blue_ice"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed CONDUIT = getBlockType("conduit"); - BlockType.Typed BAMBOO_SAPLING = getBlockType("bamboo_sapling"); - /** - * BlockData: {@link Bamboo} - */ - BlockType.Typed BAMBOO = getBlockType("bamboo"); - BlockType.Typed POTTED_BAMBOO = getBlockType("potted_bamboo"); - BlockType.Typed VOID_AIR = getBlockType("void_air"); - BlockType.Typed CAVE_AIR = getBlockType("cave_air"); - /** - * BlockData: {@link BubbleColumn} - */ - BlockType.Typed BUBBLE_COLUMN = getBlockType("bubble_column"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_GRANITE_STAIRS = getBlockType("polished_granite_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed SMOOTH_RED_SANDSTONE_STAIRS = getBlockType("smooth_red_sandstone_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed MOSSY_STONE_BRICK_STAIRS = getBlockType("mossy_stone_brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_DIORITE_STAIRS = getBlockType("polished_diorite_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed MOSSY_COBBLESTONE_STAIRS = getBlockType("mossy_cobblestone_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed END_STONE_BRICK_STAIRS = getBlockType("end_stone_brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed STONE_STAIRS = getBlockType("stone_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed SMOOTH_SANDSTONE_STAIRS = getBlockType("smooth_sandstone_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed SMOOTH_QUARTZ_STAIRS = getBlockType("smooth_quartz_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed GRANITE_STAIRS = getBlockType("granite_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed ANDESITE_STAIRS = getBlockType("andesite_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed RED_NETHER_BRICK_STAIRS = getBlockType("red_nether_brick_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_ANDESITE_STAIRS = getBlockType("polished_andesite_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed DIORITE_STAIRS = getBlockType("diorite_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_GRANITE_SLAB = getBlockType("polished_granite_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SMOOTH_RED_SANDSTONE_SLAB = getBlockType("smooth_red_sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed MOSSY_STONE_BRICK_SLAB = getBlockType("mossy_stone_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_DIORITE_SLAB = getBlockType("polished_diorite_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed MOSSY_COBBLESTONE_SLAB = getBlockType("mossy_cobblestone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed END_STONE_BRICK_SLAB = getBlockType("end_stone_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SMOOTH_SANDSTONE_SLAB = getBlockType("smooth_sandstone_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed SMOOTH_QUARTZ_SLAB = getBlockType("smooth_quartz_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed GRANITE_SLAB = getBlockType("granite_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed ANDESITE_SLAB = getBlockType("andesite_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed RED_NETHER_BRICK_SLAB = getBlockType("red_nether_brick_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_ANDESITE_SLAB = getBlockType("polished_andesite_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed DIORITE_SLAB = getBlockType("diorite_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed BRICK_WALL = getBlockType("brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed PRISMARINE_WALL = getBlockType("prismarine_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed RED_SANDSTONE_WALL = getBlockType("red_sandstone_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed MOSSY_STONE_BRICK_WALL = getBlockType("mossy_stone_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed GRANITE_WALL = getBlockType("granite_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed STONE_BRICK_WALL = getBlockType("stone_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed MUD_BRICK_WALL = getBlockType("mud_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed NETHER_BRICK_WALL = getBlockType("nether_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed ANDESITE_WALL = getBlockType("andesite_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed RED_NETHER_BRICK_WALL = getBlockType("red_nether_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed SANDSTONE_WALL = getBlockType("sandstone_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed END_STONE_BRICK_WALL = getBlockType("end_stone_brick_wall"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed DIORITE_WALL = getBlockType("diorite_wall"); - /** - * BlockData: {@link Scaffolding} - */ - BlockType.Typed SCAFFOLDING = getBlockType("scaffolding"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed LOOM = getBlockType("loom"); - /** - * BlockData: {@link Barrel} - */ - BlockType.Typed BARREL = getBlockType("barrel"); - /** - * BlockData: {@link Furnace} - */ - BlockType.Typed SMOKER = getBlockType("smoker"); - /** - * BlockData: {@link Furnace} - */ - BlockType.Typed BLAST_FURNACE = getBlockType("blast_furnace"); - BlockType.Typed CARTOGRAPHY_TABLE = getBlockType("cartography_table"); - BlockType.Typed FLETCHING_TABLE = getBlockType("fletching_table"); - /** - * BlockData: {@link Grindstone} - */ - BlockType.Typed GRINDSTONE = getBlockType("grindstone"); - /** - * BlockData: {@link Lectern} - */ - BlockType.Typed LECTERN = getBlockType("lectern"); - BlockType.Typed SMITHING_TABLE = getBlockType("smithing_table"); - /** - * BlockData: {@link Directional} - */ - BlockType.Typed STONECUTTER = getBlockType("stonecutter"); - /** - * BlockData: {@link Bell} - */ - BlockType.Typed BELL = getBlockType("bell"); - /** - * BlockData: {@link Lantern} - */ - BlockType.Typed LANTERN = getBlockType("lantern"); - /** - * BlockData: {@link Lantern} - */ - BlockType.Typed SOUL_LANTERN = getBlockType("soul_lantern"); - /** - * BlockData: {@link Campfire} - */ - BlockType.Typed CAMPFIRE = getBlockType("campfire"); - /** - * BlockData: {@link Campfire} - */ - BlockType.Typed SOUL_CAMPFIRE = getBlockType("soul_campfire"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed SWEET_BERRY_BUSH = getBlockType("sweet_berry_bush"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed WARPED_STEM = getBlockType("warped_stem"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_WARPED_STEM = getBlockType("stripped_warped_stem"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed WARPED_HYPHAE = getBlockType("warped_hyphae"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_WARPED_HYPHAE = getBlockType("stripped_warped_hyphae"); - BlockType.Typed WARPED_NYLIUM = getBlockType("warped_nylium"); - BlockType.Typed WARPED_FUNGUS = getBlockType("warped_fungus"); - BlockType.Typed WARPED_WART_BLOCK = getBlockType("warped_wart_block"); - BlockType.Typed WARPED_ROOTS = getBlockType("warped_roots"); - BlockType.Typed NETHER_SPROUTS = getBlockType("nether_sprouts"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed CRIMSON_STEM = getBlockType("crimson_stem"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_CRIMSON_STEM = getBlockType("stripped_crimson_stem"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed CRIMSON_HYPHAE = getBlockType("crimson_hyphae"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed STRIPPED_CRIMSON_HYPHAE = getBlockType("stripped_crimson_hyphae"); - BlockType.Typed CRIMSON_NYLIUM = getBlockType("crimson_nylium"); - BlockType.Typed CRIMSON_FUNGUS = getBlockType("crimson_fungus"); - BlockType.Typed SHROOMLIGHT = getBlockType("shroomlight"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed WEEPING_VINES = getBlockType("weeping_vines"); - BlockType.Typed WEEPING_VINES_PLANT = getBlockType("weeping_vines_plant"); - /** - * BlockData: {@link Ageable} - */ - BlockType.Typed TWISTING_VINES = getBlockType("twisting_vines"); - BlockType.Typed TWISTING_VINES_PLANT = getBlockType("twisting_vines_plant"); - BlockType.Typed CRIMSON_ROOTS = getBlockType("crimson_roots"); - BlockType.Typed CRIMSON_PLANKS = getBlockType("crimson_planks"); - BlockType.Typed WARPED_PLANKS = getBlockType("warped_planks"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed CRIMSON_SLAB = getBlockType("crimson_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WARPED_SLAB = getBlockType("warped_slab"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed CRIMSON_PRESSURE_PLATE = getBlockType("crimson_pressure_plate"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed WARPED_PRESSURE_PLATE = getBlockType("warped_pressure_plate"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed CRIMSON_FENCE = getBlockType("crimson_fence"); - /** - * BlockData: {@link Fence} - */ - BlockType.Typed WARPED_FENCE = getBlockType("warped_fence"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed CRIMSON_TRAPDOOR = getBlockType("crimson_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WARPED_TRAPDOOR = getBlockType("warped_trapdoor"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed CRIMSON_FENCE_GATE = getBlockType("crimson_fence_gate"); - /** - * BlockData: {@link Gate} - */ - BlockType.Typed WARPED_FENCE_GATE = getBlockType("warped_fence_gate"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed CRIMSON_STAIRS = getBlockType("crimson_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WARPED_STAIRS = getBlockType("warped_stairs"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed CRIMSON_BUTTON = getBlockType("crimson_button"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed WARPED_BUTTON = getBlockType("warped_button"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed CRIMSON_DOOR = getBlockType("crimson_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WARPED_DOOR = getBlockType("warped_door"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed CRIMSON_SIGN = getBlockType("crimson_sign"); - /** - * BlockData: {@link Sign} - */ - BlockType.Typed WARPED_SIGN = getBlockType("warped_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed CRIMSON_WALL_SIGN = getBlockType("crimson_wall_sign"); - /** - * BlockData: {@link WallSign} - */ - BlockType.Typed WARPED_WALL_SIGN = getBlockType("warped_wall_sign"); - /** - * BlockData: {@link StructureBlock} - */ - BlockType.Typed STRUCTURE_BLOCK = getBlockType("structure_block"); - /** - * BlockData: {@link Jigsaw} - */ - BlockType.Typed JIGSAW = getBlockType("jigsaw"); - /** - * BlockData: {@link Levelled} - */ - BlockType.Typed COMPOSTER = getBlockType("composter"); - /** - * BlockData: {@link AnaloguePowerable} - */ - BlockType.Typed TARGET = getBlockType("target"); - /** - * BlockData: {@link Beehive} - */ - BlockType.Typed BEE_NEST = getBlockType("bee_nest"); - /** - * BlockData: {@link Beehive} - */ - BlockType.Typed BEEHIVE = getBlockType("beehive"); - BlockType.Typed HONEY_BLOCK = getBlockType("honey_block"); - BlockType.Typed HONEYCOMB_BLOCK = getBlockType("honeycomb_block"); - BlockType.Typed NETHERITE_BLOCK = getBlockType("netherite_block"); - BlockType.Typed ANCIENT_DEBRIS = getBlockType("ancient_debris"); - BlockType.Typed CRYING_OBSIDIAN = getBlockType("crying_obsidian"); - /** - * BlockData: {@link RespawnAnchor} - */ - BlockType.Typed RESPAWN_ANCHOR = getBlockType("respawn_anchor"); - BlockType.Typed POTTED_CRIMSON_FUNGUS = getBlockType("potted_crimson_fungus"); - BlockType.Typed POTTED_WARPED_FUNGUS = getBlockType("potted_warped_fungus"); - BlockType.Typed POTTED_CRIMSON_ROOTS = getBlockType("potted_crimson_roots"); - BlockType.Typed POTTED_WARPED_ROOTS = getBlockType("potted_warped_roots"); - BlockType.Typed LODESTONE = getBlockType("lodestone"); - BlockType.Typed BLACKSTONE = getBlockType("blackstone"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed BLACKSTONE_STAIRS = getBlockType("blackstone_stairs"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed BLACKSTONE_WALL = getBlockType("blackstone_wall"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed BLACKSTONE_SLAB = getBlockType("blackstone_slab"); - BlockType.Typed POLISHED_BLACKSTONE = getBlockType("polished_blackstone"); - BlockType.Typed POLISHED_BLACKSTONE_BRICKS = getBlockType("polished_blackstone_bricks"); - BlockType.Typed CRACKED_POLISHED_BLACKSTONE_BRICKS = getBlockType("cracked_polished_blackstone_bricks"); - BlockType.Typed CHISELED_POLISHED_BLACKSTONE = getBlockType("chiseled_polished_blackstone"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_BLACKSTONE_BRICK_SLAB = getBlockType("polished_blackstone_brick_slab"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_BLACKSTONE_BRICK_STAIRS = getBlockType("polished_blackstone_brick_stairs"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed POLISHED_BLACKSTONE_BRICK_WALL = getBlockType("polished_blackstone_brick_wall"); - BlockType.Typed GILDED_BLACKSTONE = getBlockType("gilded_blackstone"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_BLACKSTONE_STAIRS = getBlockType("polished_blackstone_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_BLACKSTONE_SLAB = getBlockType("polished_blackstone_slab"); - /** - * BlockData: {@link Powerable} - */ - BlockType.Typed POLISHED_BLACKSTONE_PRESSURE_PLATE = getBlockType("polished_blackstone_pressure_plate"); - /** - * BlockData: {@link Switch} - */ - BlockType.Typed POLISHED_BLACKSTONE_BUTTON = getBlockType("polished_blackstone_button"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed POLISHED_BLACKSTONE_WALL = getBlockType("polished_blackstone_wall"); - BlockType.Typed CHISELED_NETHER_BRICKS = getBlockType("chiseled_nether_bricks"); - BlockType.Typed CRACKED_NETHER_BRICKS = getBlockType("cracked_nether_bricks"); - BlockType.Typed QUARTZ_BRICKS = getBlockType("quartz_bricks"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed CANDLE = getBlockType("candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed WHITE_CANDLE = getBlockType("white_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed ORANGE_CANDLE = getBlockType("orange_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed MAGENTA_CANDLE = getBlockType("magenta_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed LIGHT_BLUE_CANDLE = getBlockType("light_blue_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed YELLOW_CANDLE = getBlockType("yellow_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed LIME_CANDLE = getBlockType("lime_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed PINK_CANDLE = getBlockType("pink_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed GRAY_CANDLE = getBlockType("gray_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed LIGHT_GRAY_CANDLE = getBlockType("light_gray_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed CYAN_CANDLE = getBlockType("cyan_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed PURPLE_CANDLE = getBlockType("purple_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed BLUE_CANDLE = getBlockType("blue_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed BROWN_CANDLE = getBlockType("brown_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed GREEN_CANDLE = getBlockType("green_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed RED_CANDLE = getBlockType("red_candle"); - /** - * BlockData: {@link Candle} - */ - BlockType.Typed BLACK_CANDLE = getBlockType("black_candle"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed CANDLE_CAKE = getBlockType("candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed WHITE_CANDLE_CAKE = getBlockType("white_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed ORANGE_CANDLE_CAKE = getBlockType("orange_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed MAGENTA_CANDLE_CAKE = getBlockType("magenta_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed LIGHT_BLUE_CANDLE_CAKE = getBlockType("light_blue_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed YELLOW_CANDLE_CAKE = getBlockType("yellow_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed LIME_CANDLE_CAKE = getBlockType("lime_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed PINK_CANDLE_CAKE = getBlockType("pink_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed GRAY_CANDLE_CAKE = getBlockType("gray_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed LIGHT_GRAY_CANDLE_CAKE = getBlockType("light_gray_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed CYAN_CANDLE_CAKE = getBlockType("cyan_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed PURPLE_CANDLE_CAKE = getBlockType("purple_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed BLUE_CANDLE_CAKE = getBlockType("blue_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed BROWN_CANDLE_CAKE = getBlockType("brown_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed GREEN_CANDLE_CAKE = getBlockType("green_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed RED_CANDLE_CAKE = getBlockType("red_candle_cake"); - /** - * BlockData: {@link Lightable} - */ - BlockType.Typed BLACK_CANDLE_CAKE = getBlockType("black_candle_cake"); + + BlockType.Typed ACACIA_FENCE = getBlockType("acacia_fence"); + + BlockType.Typed ACACIA_FENCE_GATE = getBlockType("acacia_fence_gate"); + + BlockType.Typed ACACIA_HANGING_SIGN = getBlockType("acacia_hanging_sign"); + + BlockType.Typed ACACIA_LEAVES = getBlockType("acacia_leaves"); + + BlockType.Typed ACACIA_LOG = getBlockType("acacia_log"); + + BlockType.Typed ACACIA_PLANKS = getBlockType("acacia_planks"); + + BlockType.Typed ACACIA_PRESSURE_PLATE = getBlockType("acacia_pressure_plate"); + + BlockType.Typed ACACIA_SAPLING = getBlockType("acacia_sapling"); + + BlockType.Typed ACACIA_SIGN = getBlockType("acacia_sign"); + + BlockType.Typed ACACIA_SLAB = getBlockType("acacia_slab"); + + BlockType.Typed ACACIA_STAIRS = getBlockType("acacia_stairs"); + + BlockType.Typed ACACIA_TRAPDOOR = getBlockType("acacia_trapdoor"); + + BlockType.Typed ACACIA_WALL_HANGING_SIGN = getBlockType("acacia_wall_hanging_sign"); + + BlockType.Typed ACACIA_WALL_SIGN = getBlockType("acacia_wall_sign"); + + BlockType.Typed ACACIA_WOOD = getBlockType("acacia_wood"); + + BlockType.Typed ACTIVATOR_RAIL = getBlockType("activator_rail"); + + BlockType.Typed AIR = getBlockType("air"); + + BlockType.Typed ALLIUM = getBlockType("allium"); + BlockType.Typed AMETHYST_BLOCK = getBlockType("amethyst_block"); - BlockType.Typed BUDDING_AMETHYST = getBlockType("budding_amethyst"); - /** - * BlockData: {@link AmethystCluster} - */ + BlockType.Typed AMETHYST_CLUSTER = getBlockType("amethyst_cluster"); - /** - * BlockData: {@link AmethystCluster} - */ - BlockType.Typed LARGE_AMETHYST_BUD = getBlockType("large_amethyst_bud"); - /** - * BlockData: {@link AmethystCluster} - */ - BlockType.Typed MEDIUM_AMETHYST_BUD = getBlockType("medium_amethyst_bud"); - /** - * BlockData: {@link AmethystCluster} - */ - BlockType.Typed SMALL_AMETHYST_BUD = getBlockType("small_amethyst_bud"); - BlockType.Typed TUFF = getBlockType("tuff"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed TUFF_SLAB = getBlockType("tuff_slab"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed TUFF_STAIRS = getBlockType("tuff_stairs"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed TUFF_WALL = getBlockType("tuff_wall"); - BlockType.Typed POLISHED_TUFF = getBlockType("polished_tuff"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_TUFF_SLAB = getBlockType("polished_tuff_slab"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_TUFF_STAIRS = getBlockType("polished_tuff_stairs"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed POLISHED_TUFF_WALL = getBlockType("polished_tuff_wall"); - BlockType.Typed CHISELED_TUFF = getBlockType("chiseled_tuff"); - BlockType.Typed TUFF_BRICKS = getBlockType("tuff_bricks"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed TUFF_BRICK_SLAB = getBlockType("tuff_brick_slab"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed TUFF_BRICK_STAIRS = getBlockType("tuff_brick_stairs"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed TUFF_BRICK_WALL = getBlockType("tuff_brick_wall"); - BlockType.Typed CHISELED_TUFF_BRICKS = getBlockType("chiseled_tuff_bricks"); - BlockType.Typed CALCITE = getBlockType("calcite"); - BlockType.Typed TINTED_GLASS = getBlockType("tinted_glass"); - BlockType.Typed POWDER_SNOW = getBlockType("powder_snow"); - /** - * BlockData: {@link SculkSensor} - */ - BlockType.Typed SCULK_SENSOR = getBlockType("sculk_sensor"); - /** - * BlockData: {@link CalibratedSculkSensor} - */ - BlockType.Typed CALIBRATED_SCULK_SENSOR = getBlockType("calibrated_sculk_sensor"); - BlockType.Typed SCULK = getBlockType("sculk"); - /** - * BlockData: {@link SculkVein} - */ - BlockType.Typed SCULK_VEIN = getBlockType("sculk_vein"); - /** - * BlockData: {@link SculkCatalyst} - */ - BlockType.Typed SCULK_CATALYST = getBlockType("sculk_catalyst"); - /** - * BlockData: {@link SculkShrieker} - */ - BlockType.Typed SCULK_SHRIEKER = getBlockType("sculk_shrieker"); - BlockType.Typed COPPER_BLOCK = getBlockType("copper_block"); - BlockType.Typed EXPOSED_COPPER = getBlockType("exposed_copper"); - BlockType.Typed WEATHERED_COPPER = getBlockType("weathered_copper"); - BlockType.Typed OXIDIZED_COPPER = getBlockType("oxidized_copper"); - BlockType.Typed COPPER_ORE = getBlockType("copper_ore"); - BlockType.Typed DEEPSLATE_COPPER_ORE = getBlockType("deepslate_copper_ore"); - BlockType.Typed OXIDIZED_CUT_COPPER = getBlockType("oxidized_cut_copper"); - BlockType.Typed WEATHERED_CUT_COPPER = getBlockType("weathered_cut_copper"); - BlockType.Typed EXPOSED_CUT_COPPER = getBlockType("exposed_cut_copper"); - BlockType.Typed CUT_COPPER = getBlockType("cut_copper"); - BlockType.Typed OXIDIZED_CHISELED_COPPER = getBlockType("oxidized_chiseled_copper"); - BlockType.Typed WEATHERED_CHISELED_COPPER = getBlockType("weathered_chiseled_copper"); - BlockType.Typed EXPOSED_CHISELED_COPPER = getBlockType("exposed_chiseled_copper"); - BlockType.Typed CHISELED_COPPER = getBlockType("chiseled_copper"); - BlockType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getBlockType("waxed_oxidized_chiseled_copper"); - BlockType.Typed WAXED_WEATHERED_CHISELED_COPPER = getBlockType("waxed_weathered_chiseled_copper"); - BlockType.Typed WAXED_EXPOSED_CHISELED_COPPER = getBlockType("waxed_exposed_chiseled_copper"); - BlockType.Typed WAXED_CHISELED_COPPER = getBlockType("waxed_chiseled_copper"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed OXIDIZED_CUT_COPPER_STAIRS = getBlockType("oxidized_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WEATHERED_CUT_COPPER_STAIRS = getBlockType("weathered_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed EXPOSED_CUT_COPPER_STAIRS = getBlockType("exposed_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed CUT_COPPER_STAIRS = getBlockType("cut_copper_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed OXIDIZED_CUT_COPPER_SLAB = getBlockType("oxidized_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WEATHERED_CUT_COPPER_SLAB = getBlockType("weathered_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed EXPOSED_CUT_COPPER_SLAB = getBlockType("exposed_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed CUT_COPPER_SLAB = getBlockType("cut_copper_slab"); - BlockType.Typed WAXED_COPPER_BLOCK = getBlockType("waxed_copper_block"); - BlockType.Typed WAXED_WEATHERED_COPPER = getBlockType("waxed_weathered_copper"); - BlockType.Typed WAXED_EXPOSED_COPPER = getBlockType("waxed_exposed_copper"); - BlockType.Typed WAXED_OXIDIZED_COPPER = getBlockType("waxed_oxidized_copper"); - BlockType.Typed WAXED_OXIDIZED_CUT_COPPER = getBlockType("waxed_oxidized_cut_copper"); - BlockType.Typed WAXED_WEATHERED_CUT_COPPER = getBlockType("waxed_weathered_cut_copper"); - BlockType.Typed WAXED_EXPOSED_CUT_COPPER = getBlockType("waxed_exposed_cut_copper"); - BlockType.Typed WAXED_CUT_COPPER = getBlockType("waxed_cut_copper"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WAXED_OXIDIZED_CUT_COPPER_STAIRS = getBlockType("waxed_oxidized_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WAXED_WEATHERED_CUT_COPPER_STAIRS = getBlockType("waxed_weathered_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WAXED_EXPOSED_CUT_COPPER_STAIRS = getBlockType("waxed_exposed_cut_copper_stairs"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed WAXED_CUT_COPPER_STAIRS = getBlockType("waxed_cut_copper_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WAXED_OXIDIZED_CUT_COPPER_SLAB = getBlockType("waxed_oxidized_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WAXED_WEATHERED_CUT_COPPER_SLAB = getBlockType("waxed_weathered_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WAXED_EXPOSED_CUT_COPPER_SLAB = getBlockType("waxed_exposed_cut_copper_slab"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed WAXED_CUT_COPPER_SLAB = getBlockType("waxed_cut_copper_slab"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed COPPER_DOOR = getBlockType("copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed EXPOSED_COPPER_DOOR = getBlockType("exposed_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed OXIDIZED_COPPER_DOOR = getBlockType("oxidized_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WEATHERED_COPPER_DOOR = getBlockType("weathered_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WAXED_COPPER_DOOR = getBlockType("waxed_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WAXED_EXPOSED_COPPER_DOOR = getBlockType("waxed_exposed_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WAXED_OXIDIZED_COPPER_DOOR = getBlockType("waxed_oxidized_copper_door"); - /** - * BlockData: {@link Door} - */ - BlockType.Typed WAXED_WEATHERED_COPPER_DOOR = getBlockType("waxed_weathered_copper_door"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed COPPER_TRAPDOOR = getBlockType("copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed EXPOSED_COPPER_TRAPDOOR = getBlockType("exposed_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed OXIDIZED_COPPER_TRAPDOOR = getBlockType("oxidized_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WEATHERED_COPPER_TRAPDOOR = getBlockType("weathered_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WAXED_COPPER_TRAPDOOR = getBlockType("waxed_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getBlockType("waxed_exposed_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getBlockType("waxed_oxidized_copper_trapdoor"); - /** - * BlockData: {@link TrapDoor} - */ - BlockType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getBlockType("waxed_weathered_copper_trapdoor"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed COPPER_GRATE = getBlockType("copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed EXPOSED_COPPER_GRATE = getBlockType("exposed_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed WEATHERED_COPPER_GRATE = getBlockType("weathered_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed OXIDIZED_COPPER_GRATE = getBlockType("oxidized_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed WAXED_COPPER_GRATE = getBlockType("waxed_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed WAXED_EXPOSED_COPPER_GRATE = getBlockType("waxed_exposed_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed WAXED_WEATHERED_COPPER_GRATE = getBlockType("waxed_weathered_copper_grate"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed WAXED_OXIDIZED_COPPER_GRATE = getBlockType("waxed_oxidized_copper_grate"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed COPPER_BULB = getBlockType("copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed EXPOSED_COPPER_BULB = getBlockType("exposed_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed WEATHERED_COPPER_BULB = getBlockType("weathered_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed OXIDIZED_COPPER_BULB = getBlockType("oxidized_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed WAXED_COPPER_BULB = getBlockType("waxed_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed WAXED_EXPOSED_COPPER_BULB = getBlockType("waxed_exposed_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed WAXED_WEATHERED_COPPER_BULB = getBlockType("waxed_weathered_copper_bulb"); - /** - * BlockData: {@link CopperBulb} - */ - BlockType.Typed WAXED_OXIDIZED_COPPER_BULB = getBlockType("waxed_oxidized_copper_bulb"); - /** - * BlockData: {@link LightningRod} - */ - BlockType.Typed LIGHTNING_ROD = getBlockType("lightning_rod"); - /** - * BlockData: {@link PointedDripstone} - */ - BlockType.Typed POINTED_DRIPSTONE = getBlockType("pointed_dripstone"); - BlockType.Typed DRIPSTONE_BLOCK = getBlockType("dripstone_block"); - /** - * BlockData: {@link CaveVines} - */ - BlockType.Typed CAVE_VINES = getBlockType("cave_vines"); - /** - * BlockData: {@link CaveVinesPlant} - */ - BlockType.Typed CAVE_VINES_PLANT = getBlockType("cave_vines_plant"); - BlockType.Typed SPORE_BLOSSOM = getBlockType("spore_blossom"); + + BlockType.Typed ANCIENT_DEBRIS = getBlockType("ancient_debris"); + + BlockType.Typed ANDESITE = getBlockType("andesite"); + + BlockType.Typed ANDESITE_SLAB = getBlockType("andesite_slab"); + + BlockType.Typed ANDESITE_STAIRS = getBlockType("andesite_stairs"); + + BlockType.Typed ANDESITE_WALL = getBlockType("andesite_wall"); + + BlockType.Typed ANVIL = getBlockType("anvil"); + + BlockType.Typed ATTACHED_MELON_STEM = getBlockType("attached_melon_stem"); + + BlockType.Typed ATTACHED_PUMPKIN_STEM = getBlockType("attached_pumpkin_stem"); + BlockType.Typed AZALEA = getBlockType("azalea"); - BlockType.Typed FLOWERING_AZALEA = getBlockType("flowering_azalea"); - /** - * BlockData: {@link PinkPetals} - */ - BlockType.Typed PINK_PETALS = getBlockType("pink_petals"); - BlockType.Typed MOSS_CARPET = getBlockType("moss_carpet"); - BlockType.Typed MOSS_BLOCK = getBlockType("moss_block"); - /** - * BlockData: {@link MossyCarpet} - */ - BlockType.Typed PALE_MOSS_CARPET = getBlockType("pale_moss_carpet"); - /** - * BlockData: {@link HangingMoss} - */ - BlockType.Typed PALE_HANGING_MOSS = getBlockType("pale_hanging_moss"); - BlockType.Typed PALE_MOSS_BLOCK = getBlockType("pale_moss_block"); - /** - * BlockData: {@link BigDripleaf} - */ + + BlockType.Typed AZALEA_LEAVES = getBlockType("azalea_leaves"); + + BlockType.Typed AZURE_BLUET = getBlockType("azure_bluet"); + + BlockType.Typed BAMBOO = getBlockType("bamboo"); + + BlockType.Typed BAMBOO_BLOCK = getBlockType("bamboo_block"); + + BlockType.Typed BAMBOO_BUTTON = getBlockType("bamboo_button"); + + BlockType.Typed BAMBOO_DOOR = getBlockType("bamboo_door"); + + BlockType.Typed BAMBOO_FENCE = getBlockType("bamboo_fence"); + + BlockType.Typed BAMBOO_FENCE_GATE = getBlockType("bamboo_fence_gate"); + + BlockType.Typed BAMBOO_HANGING_SIGN = getBlockType("bamboo_hanging_sign"); + + BlockType.Typed BAMBOO_MOSAIC = getBlockType("bamboo_mosaic"); + + BlockType.Typed BAMBOO_MOSAIC_SLAB = getBlockType("bamboo_mosaic_slab"); + + BlockType.Typed BAMBOO_MOSAIC_STAIRS = getBlockType("bamboo_mosaic_stairs"); + + BlockType.Typed BAMBOO_PLANKS = getBlockType("bamboo_planks"); + + BlockType.Typed BAMBOO_PRESSURE_PLATE = getBlockType("bamboo_pressure_plate"); + + BlockType.Typed BAMBOO_SAPLING = getBlockType("bamboo_sapling"); + + BlockType.Typed BAMBOO_SIGN = getBlockType("bamboo_sign"); + + BlockType.Typed BAMBOO_SLAB = getBlockType("bamboo_slab"); + + BlockType.Typed BAMBOO_STAIRS = getBlockType("bamboo_stairs"); + + BlockType.Typed BAMBOO_TRAPDOOR = getBlockType("bamboo_trapdoor"); + + BlockType.Typed BAMBOO_WALL_HANGING_SIGN = getBlockType("bamboo_wall_hanging_sign"); + + BlockType.Typed BAMBOO_WALL_SIGN = getBlockType("bamboo_wall_sign"); + + BlockType.Typed BARREL = getBlockType("barrel"); + + BlockType.Typed BARRIER = getBlockType("barrier"); + + BlockType.Typed BASALT = getBlockType("basalt"); + + BlockType.Typed BEACON = getBlockType("beacon"); + + BlockType.Typed BEDROCK = getBlockType("bedrock"); + + BlockType.Typed BEE_NEST = getBlockType("bee_nest"); + + BlockType.Typed BEEHIVE = getBlockType("beehive"); + + BlockType.Typed BEETROOTS = getBlockType("beetroots"); + + BlockType.Typed BELL = getBlockType("bell"); + BlockType.Typed BIG_DRIPLEAF = getBlockType("big_dripleaf"); - /** - * BlockData: {@link Dripleaf} - */ + BlockType.Typed BIG_DRIPLEAF_STEM = getBlockType("big_dripleaf_stem"); - /** - * BlockData: {@link SmallDripleaf} - */ - BlockType.Typed SMALL_DRIPLEAF = getBlockType("small_dripleaf"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed HANGING_ROOTS = getBlockType("hanging_roots"); - BlockType.Typed ROOTED_DIRT = getBlockType("rooted_dirt"); - BlockType.Typed MUD = getBlockType("mud"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed DEEPSLATE = getBlockType("deepslate"); - BlockType.Typed COBBLED_DEEPSLATE = getBlockType("cobbled_deepslate"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed COBBLED_DEEPSLATE_STAIRS = getBlockType("cobbled_deepslate_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed COBBLED_DEEPSLATE_SLAB = getBlockType("cobbled_deepslate_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed COBBLED_DEEPSLATE_WALL = getBlockType("cobbled_deepslate_wall"); - BlockType.Typed POLISHED_DEEPSLATE = getBlockType("polished_deepslate"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed POLISHED_DEEPSLATE_STAIRS = getBlockType("polished_deepslate_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed POLISHED_DEEPSLATE_SLAB = getBlockType("polished_deepslate_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed POLISHED_DEEPSLATE_WALL = getBlockType("polished_deepslate_wall"); - BlockType.Typed DEEPSLATE_TILES = getBlockType("deepslate_tiles"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed DEEPSLATE_TILE_STAIRS = getBlockType("deepslate_tile_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed DEEPSLATE_TILE_SLAB = getBlockType("deepslate_tile_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed DEEPSLATE_TILE_WALL = getBlockType("deepslate_tile_wall"); - BlockType.Typed DEEPSLATE_BRICKS = getBlockType("deepslate_bricks"); - /** - * BlockData: {@link Stairs} - */ - BlockType.Typed DEEPSLATE_BRICK_STAIRS = getBlockType("deepslate_brick_stairs"); - /** - * BlockData: {@link Slab} - */ - BlockType.Typed DEEPSLATE_BRICK_SLAB = getBlockType("deepslate_brick_slab"); - /** - * BlockData: {@link Wall} - */ - BlockType.Typed DEEPSLATE_BRICK_WALL = getBlockType("deepslate_brick_wall"); + + BlockType.Typed BIRCH_BUTTON = getBlockType("birch_button"); + + BlockType.Typed BIRCH_DOOR = getBlockType("birch_door"); + + BlockType.Typed BIRCH_FENCE = getBlockType("birch_fence"); + + BlockType.Typed BIRCH_FENCE_GATE = getBlockType("birch_fence_gate"); + + BlockType.Typed BIRCH_HANGING_SIGN = getBlockType("birch_hanging_sign"); + + BlockType.Typed BIRCH_LEAVES = getBlockType("birch_leaves"); + + BlockType.Typed BIRCH_LOG = getBlockType("birch_log"); + + BlockType.Typed BIRCH_PLANKS = getBlockType("birch_planks"); + + BlockType.Typed BIRCH_PRESSURE_PLATE = getBlockType("birch_pressure_plate"); + + BlockType.Typed BIRCH_SAPLING = getBlockType("birch_sapling"); + + BlockType.Typed BIRCH_SIGN = getBlockType("birch_sign"); + + BlockType.Typed BIRCH_SLAB = getBlockType("birch_slab"); + + BlockType.Typed BIRCH_STAIRS = getBlockType("birch_stairs"); + + BlockType.Typed BIRCH_TRAPDOOR = getBlockType("birch_trapdoor"); + + BlockType.Typed BIRCH_WALL_HANGING_SIGN = getBlockType("birch_wall_hanging_sign"); + + BlockType.Typed BIRCH_WALL_SIGN = getBlockType("birch_wall_sign"); + + BlockType.Typed BIRCH_WOOD = getBlockType("birch_wood"); + + BlockType.Typed BLACK_BANNER = getBlockType("black_banner"); + + BlockType.Typed BLACK_BED = getBlockType("black_bed"); + + BlockType.Typed BLACK_CANDLE = getBlockType("black_candle"); + + BlockType.Typed BLACK_CANDLE_CAKE = getBlockType("black_candle_cake"); + + BlockType.Typed BLACK_CARPET = getBlockType("black_carpet"); + + BlockType.Typed BLACK_CONCRETE = getBlockType("black_concrete"); + + BlockType.Typed BLACK_CONCRETE_POWDER = getBlockType("black_concrete_powder"); + + BlockType.Typed BLACK_GLAZED_TERRACOTTA = getBlockType("black_glazed_terracotta"); + + BlockType.Typed BLACK_SHULKER_BOX = getBlockType("black_shulker_box"); + + BlockType.Typed BLACK_STAINED_GLASS = getBlockType("black_stained_glass"); + + BlockType.Typed BLACK_STAINED_GLASS_PANE = getBlockType("black_stained_glass_pane"); + + BlockType.Typed BLACK_TERRACOTTA = getBlockType("black_terracotta"); + + BlockType.Typed BLACK_WALL_BANNER = getBlockType("black_wall_banner"); + + BlockType.Typed BLACK_WOOL = getBlockType("black_wool"); + + BlockType.Typed BLACKSTONE = getBlockType("blackstone"); + + BlockType.Typed BLACKSTONE_SLAB = getBlockType("blackstone_slab"); + + BlockType.Typed BLACKSTONE_STAIRS = getBlockType("blackstone_stairs"); + + BlockType.Typed BLACKSTONE_WALL = getBlockType("blackstone_wall"); + + BlockType.Typed BLAST_FURNACE = getBlockType("blast_furnace"); + + BlockType.Typed BLUE_BANNER = getBlockType("blue_banner"); + + BlockType.Typed BLUE_BED = getBlockType("blue_bed"); + + BlockType.Typed BLUE_CANDLE = getBlockType("blue_candle"); + + BlockType.Typed BLUE_CANDLE_CAKE = getBlockType("blue_candle_cake"); + + BlockType.Typed BLUE_CARPET = getBlockType("blue_carpet"); + + BlockType.Typed BLUE_CONCRETE = getBlockType("blue_concrete"); + + BlockType.Typed BLUE_CONCRETE_POWDER = getBlockType("blue_concrete_powder"); + + BlockType.Typed BLUE_GLAZED_TERRACOTTA = getBlockType("blue_glazed_terracotta"); + + BlockType.Typed BLUE_ICE = getBlockType("blue_ice"); + + BlockType.Typed BLUE_ORCHID = getBlockType("blue_orchid"); + + BlockType.Typed BLUE_SHULKER_BOX = getBlockType("blue_shulker_box"); + + BlockType.Typed BLUE_STAINED_GLASS = getBlockType("blue_stained_glass"); + + BlockType.Typed BLUE_STAINED_GLASS_PANE = getBlockType("blue_stained_glass_pane"); + + BlockType.Typed BLUE_TERRACOTTA = getBlockType("blue_terracotta"); + + BlockType.Typed BLUE_WALL_BANNER = getBlockType("blue_wall_banner"); + + BlockType.Typed BLUE_WOOL = getBlockType("blue_wool"); + + BlockType.Typed BONE_BLOCK = getBlockType("bone_block"); + + BlockType.Typed BOOKSHELF = getBlockType("bookshelf"); + + BlockType.Typed BRAIN_CORAL = getBlockType("brain_coral"); + + BlockType.Typed BRAIN_CORAL_BLOCK = getBlockType("brain_coral_block"); + + BlockType.Typed BRAIN_CORAL_FAN = getBlockType("brain_coral_fan"); + + BlockType.Typed BRAIN_CORAL_WALL_FAN = getBlockType("brain_coral_wall_fan"); + + BlockType.Typed BREWING_STAND = getBlockType("brewing_stand"); + + BlockType.Typed BRICK_SLAB = getBlockType("brick_slab"); + + BlockType.Typed BRICK_STAIRS = getBlockType("brick_stairs"); + + BlockType.Typed BRICK_WALL = getBlockType("brick_wall"); + + BlockType.Typed BRICKS = getBlockType("bricks"); + + BlockType.Typed BROWN_BANNER = getBlockType("brown_banner"); + + BlockType.Typed BROWN_BED = getBlockType("brown_bed"); + + BlockType.Typed BROWN_CANDLE = getBlockType("brown_candle"); + + BlockType.Typed BROWN_CANDLE_CAKE = getBlockType("brown_candle_cake"); + + BlockType.Typed BROWN_CARPET = getBlockType("brown_carpet"); + + BlockType.Typed BROWN_CONCRETE = getBlockType("brown_concrete"); + + BlockType.Typed BROWN_CONCRETE_POWDER = getBlockType("brown_concrete_powder"); + + BlockType.Typed BROWN_GLAZED_TERRACOTTA = getBlockType("brown_glazed_terracotta"); + + BlockType.Typed BROWN_MUSHROOM = getBlockType("brown_mushroom"); + + BlockType.Typed BROWN_MUSHROOM_BLOCK = getBlockType("brown_mushroom_block"); + + BlockType.Typed BROWN_SHULKER_BOX = getBlockType("brown_shulker_box"); + + BlockType.Typed BROWN_STAINED_GLASS = getBlockType("brown_stained_glass"); + + BlockType.Typed BROWN_STAINED_GLASS_PANE = getBlockType("brown_stained_glass_pane"); + + BlockType.Typed BROWN_TERRACOTTA = getBlockType("brown_terracotta"); + + BlockType.Typed BROWN_WALL_BANNER = getBlockType("brown_wall_banner"); + + BlockType.Typed BROWN_WOOL = getBlockType("brown_wool"); + + BlockType.Typed BUBBLE_COLUMN = getBlockType("bubble_column"); + + BlockType.Typed BUBBLE_CORAL = getBlockType("bubble_coral"); + + BlockType.Typed BUBBLE_CORAL_BLOCK = getBlockType("bubble_coral_block"); + + BlockType.Typed BUBBLE_CORAL_FAN = getBlockType("bubble_coral_fan"); + + BlockType.Typed BUBBLE_CORAL_WALL_FAN = getBlockType("bubble_coral_wall_fan"); + + BlockType.Typed BUDDING_AMETHYST = getBlockType("budding_amethyst"); + + BlockType.Typed CACTUS = getBlockType("cactus"); + + BlockType.Typed CAKE = getBlockType("cake"); + + BlockType.Typed CALCITE = getBlockType("calcite"); + + BlockType.Typed CALIBRATED_SCULK_SENSOR = getBlockType("calibrated_sculk_sensor"); + + BlockType.Typed CAMPFIRE = getBlockType("campfire"); + + BlockType.Typed CANDLE = getBlockType("candle"); + + BlockType.Typed CANDLE_CAKE = getBlockType("candle_cake"); + + BlockType.Typed CARROTS = getBlockType("carrots"); + + BlockType.Typed CARTOGRAPHY_TABLE = getBlockType("cartography_table"); + + BlockType.Typed CARVED_PUMPKIN = getBlockType("carved_pumpkin"); + + BlockType.Typed CAULDRON = getBlockType("cauldron"); + + BlockType.Typed CAVE_AIR = getBlockType("cave_air"); + + BlockType.Typed CAVE_VINES = getBlockType("cave_vines"); + + BlockType.Typed CAVE_VINES_PLANT = getBlockType("cave_vines_plant"); + + BlockType.Typed CHAIN = getBlockType("chain"); + + BlockType.Typed CHAIN_COMMAND_BLOCK = getBlockType("chain_command_block"); + + BlockType.Typed CHERRY_BUTTON = getBlockType("cherry_button"); + + BlockType.Typed CHERRY_DOOR = getBlockType("cherry_door"); + + BlockType.Typed CHERRY_FENCE = getBlockType("cherry_fence"); + + BlockType.Typed CHERRY_FENCE_GATE = getBlockType("cherry_fence_gate"); + + BlockType.Typed CHERRY_HANGING_SIGN = getBlockType("cherry_hanging_sign"); + + BlockType.Typed CHERRY_LEAVES = getBlockType("cherry_leaves"); + + BlockType.Typed CHERRY_LOG = getBlockType("cherry_log"); + + BlockType.Typed CHERRY_PLANKS = getBlockType("cherry_planks"); + + BlockType.Typed CHERRY_PRESSURE_PLATE = getBlockType("cherry_pressure_plate"); + + BlockType.Typed CHERRY_SAPLING = getBlockType("cherry_sapling"); + + BlockType.Typed CHERRY_SIGN = getBlockType("cherry_sign"); + + BlockType.Typed CHERRY_SLAB = getBlockType("cherry_slab"); + + BlockType.Typed CHERRY_STAIRS = getBlockType("cherry_stairs"); + + BlockType.Typed CHERRY_TRAPDOOR = getBlockType("cherry_trapdoor"); + + BlockType.Typed CHERRY_WALL_HANGING_SIGN = getBlockType("cherry_wall_hanging_sign"); + + BlockType.Typed CHERRY_WALL_SIGN = getBlockType("cherry_wall_sign"); + + BlockType.Typed CHERRY_WOOD = getBlockType("cherry_wood"); + + BlockType.Typed CHEST = getBlockType("chest"); + + BlockType.Typed CHIPPED_ANVIL = getBlockType("chipped_anvil"); + + BlockType.Typed CHISELED_BOOKSHELF = getBlockType("chiseled_bookshelf"); + + BlockType.Typed CHISELED_COPPER = getBlockType("chiseled_copper"); + BlockType.Typed CHISELED_DEEPSLATE = getBlockType("chiseled_deepslate"); - BlockType.Typed CRACKED_DEEPSLATE_BRICKS = getBlockType("cracked_deepslate_bricks"); - BlockType.Typed CRACKED_DEEPSLATE_TILES = getBlockType("cracked_deepslate_tiles"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed INFESTED_DEEPSLATE = getBlockType("infested_deepslate"); - BlockType.Typed SMOOTH_BASALT = getBlockType("smooth_basalt"); - BlockType.Typed RAW_IRON_BLOCK = getBlockType("raw_iron_block"); - BlockType.Typed RAW_COPPER_BLOCK = getBlockType("raw_copper_block"); - BlockType.Typed RAW_GOLD_BLOCK = getBlockType("raw_gold_block"); - BlockType.Typed POTTED_AZALEA_BUSH = getBlockType("potted_azalea_bush"); - BlockType.Typed POTTED_FLOWERING_AZALEA_BUSH = getBlockType("potted_flowering_azalea_bush"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed OCHRE_FROGLIGHT = getBlockType("ochre_froglight"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed VERDANT_FROGLIGHT = getBlockType("verdant_froglight"); - /** - * BlockData: {@link Orientable} - */ - BlockType.Typed PEARLESCENT_FROGLIGHT = getBlockType("pearlescent_froglight"); - BlockType.Typed FROGSPAWN = getBlockType("frogspawn"); - BlockType.Typed REINFORCED_DEEPSLATE = getBlockType("reinforced_deepslate"); - /** - * BlockData: {@link DecoratedPot} - */ - BlockType.Typed DECORATED_POT = getBlockType("decorated_pot"); - /** - * BlockData: {@link Crafter} - */ - BlockType.Typed CRAFTER = getBlockType("crafter"); - /** - * BlockData: {@link TrialSpawner} - */ - BlockType.Typed TRIAL_SPAWNER = getBlockType("trial_spawner"); - /** - * BlockData: {@link Vault} - */ - BlockType.Typed VAULT = getBlockType("vault"); - /** - * BlockData: {@link Waterlogged} - */ - BlockType.Typed HEAVY_CORE = getBlockType("heavy_core"); - BlockType.Typed OPEN_EYEBLOSSOM = getBlockType("open_eyeblossom"); + + BlockType.Typed CHISELED_NETHER_BRICKS = getBlockType("chiseled_nether_bricks"); + + BlockType.Typed CHISELED_POLISHED_BLACKSTONE = getBlockType("chiseled_polished_blackstone"); + + BlockType.Typed CHISELED_QUARTZ_BLOCK = getBlockType("chiseled_quartz_block"); + + BlockType.Typed CHISELED_RED_SANDSTONE = getBlockType("chiseled_red_sandstone"); + + BlockType.Typed CHISELED_RESIN_BRICKS = getBlockType("chiseled_resin_bricks"); + + BlockType.Typed CHISELED_SANDSTONE = getBlockType("chiseled_sandstone"); + + BlockType.Typed CHISELED_STONE_BRICKS = getBlockType("chiseled_stone_bricks"); + + BlockType.Typed CHISELED_TUFF = getBlockType("chiseled_tuff"); + + BlockType.Typed CHISELED_TUFF_BRICKS = getBlockType("chiseled_tuff_bricks"); + + BlockType.Typed CHORUS_FLOWER = getBlockType("chorus_flower"); + + BlockType.Typed CHORUS_PLANT = getBlockType("chorus_plant"); + + BlockType.Typed CLAY = getBlockType("clay"); + BlockType.Typed CLOSED_EYEBLOSSOM = getBlockType("closed_eyeblossom"); - BlockType.Typed POTTED_OPEN_EYEBLOSSOM = getBlockType("potted_open_eyeblossom"); + + BlockType.Typed COAL_BLOCK = getBlockType("coal_block"); + + BlockType.Typed COAL_ORE = getBlockType("coal_ore"); + + BlockType.Typed COARSE_DIRT = getBlockType("coarse_dirt"); + + BlockType.Typed COBBLED_DEEPSLATE = getBlockType("cobbled_deepslate"); + + BlockType.Typed COBBLED_DEEPSLATE_SLAB = getBlockType("cobbled_deepslate_slab"); + + BlockType.Typed COBBLED_DEEPSLATE_STAIRS = getBlockType("cobbled_deepslate_stairs"); + + BlockType.Typed COBBLED_DEEPSLATE_WALL = getBlockType("cobbled_deepslate_wall"); + + BlockType.Typed COBBLESTONE = getBlockType("cobblestone"); + + BlockType.Typed COBBLESTONE_SLAB = getBlockType("cobblestone_slab"); + + BlockType.Typed COBBLESTONE_STAIRS = getBlockType("cobblestone_stairs"); + + BlockType.Typed COBBLESTONE_WALL = getBlockType("cobblestone_wall"); + + BlockType.Typed COBWEB = getBlockType("cobweb"); + + BlockType.Typed COCOA = getBlockType("cocoa"); + + BlockType.Typed COMMAND_BLOCK = getBlockType("command_block"); + + BlockType.Typed COMPARATOR = getBlockType("comparator"); + + BlockType.Typed COMPOSTER = getBlockType("composter"); + + BlockType.Typed CONDUIT = getBlockType("conduit"); + + BlockType.Typed COPPER_BLOCK = getBlockType("copper_block"); + + BlockType.Typed COPPER_BULB = getBlockType("copper_bulb"); + + BlockType.Typed COPPER_DOOR = getBlockType("copper_door"); + + BlockType.Typed COPPER_GRATE = getBlockType("copper_grate"); + + BlockType.Typed COPPER_ORE = getBlockType("copper_ore"); + + BlockType.Typed COPPER_TRAPDOOR = getBlockType("copper_trapdoor"); + + BlockType.Typed CORNFLOWER = getBlockType("cornflower"); + + BlockType.Typed CRACKED_DEEPSLATE_BRICKS = getBlockType("cracked_deepslate_bricks"); + + BlockType.Typed CRACKED_DEEPSLATE_TILES = getBlockType("cracked_deepslate_tiles"); + + BlockType.Typed CRACKED_NETHER_BRICKS = getBlockType("cracked_nether_bricks"); + + BlockType.Typed CRACKED_POLISHED_BLACKSTONE_BRICKS = getBlockType("cracked_polished_blackstone_bricks"); + + BlockType.Typed CRACKED_STONE_BRICKS = getBlockType("cracked_stone_bricks"); + + BlockType.Typed CRAFTER = getBlockType("crafter"); + + BlockType.Typed CRAFTING_TABLE = getBlockType("crafting_table"); + + BlockType.Typed CREAKING_HEART = getBlockType("creaking_heart"); + + BlockType.Typed CREEPER_HEAD = getBlockType("creeper_head"); + + BlockType.Typed CREEPER_WALL_HEAD = getBlockType("creeper_wall_head"); + + BlockType.Typed CRIMSON_BUTTON = getBlockType("crimson_button"); + + BlockType.Typed CRIMSON_DOOR = getBlockType("crimson_door"); + + BlockType.Typed CRIMSON_FENCE = getBlockType("crimson_fence"); + + BlockType.Typed CRIMSON_FENCE_GATE = getBlockType("crimson_fence_gate"); + + BlockType.Typed CRIMSON_FUNGUS = getBlockType("crimson_fungus"); + + BlockType.Typed CRIMSON_HANGING_SIGN = getBlockType("crimson_hanging_sign"); + + BlockType.Typed CRIMSON_HYPHAE = getBlockType("crimson_hyphae"); + + BlockType.Typed CRIMSON_NYLIUM = getBlockType("crimson_nylium"); + + BlockType.Typed CRIMSON_PLANKS = getBlockType("crimson_planks"); + + BlockType.Typed CRIMSON_PRESSURE_PLATE = getBlockType("crimson_pressure_plate"); + + BlockType.Typed CRIMSON_ROOTS = getBlockType("crimson_roots"); + + BlockType.Typed CRIMSON_SIGN = getBlockType("crimson_sign"); + + BlockType.Typed CRIMSON_SLAB = getBlockType("crimson_slab"); + + BlockType.Typed CRIMSON_STAIRS = getBlockType("crimson_stairs"); + + BlockType.Typed CRIMSON_STEM = getBlockType("crimson_stem"); + + BlockType.Typed CRIMSON_TRAPDOOR = getBlockType("crimson_trapdoor"); + + BlockType.Typed CRIMSON_WALL_HANGING_SIGN = getBlockType("crimson_wall_hanging_sign"); + + BlockType.Typed CRIMSON_WALL_SIGN = getBlockType("crimson_wall_sign"); + + BlockType.Typed CRYING_OBSIDIAN = getBlockType("crying_obsidian"); + + BlockType.Typed CUT_COPPER = getBlockType("cut_copper"); + + BlockType.Typed CUT_COPPER_SLAB = getBlockType("cut_copper_slab"); + + BlockType.Typed CUT_COPPER_STAIRS = getBlockType("cut_copper_stairs"); + + BlockType.Typed CUT_RED_SANDSTONE = getBlockType("cut_red_sandstone"); + + BlockType.Typed CUT_RED_SANDSTONE_SLAB = getBlockType("cut_red_sandstone_slab"); + + BlockType.Typed CUT_SANDSTONE = getBlockType("cut_sandstone"); + + BlockType.Typed CUT_SANDSTONE_SLAB = getBlockType("cut_sandstone_slab"); + + BlockType.Typed CYAN_BANNER = getBlockType("cyan_banner"); + + BlockType.Typed CYAN_BED = getBlockType("cyan_bed"); + + BlockType.Typed CYAN_CANDLE = getBlockType("cyan_candle"); + + BlockType.Typed CYAN_CANDLE_CAKE = getBlockType("cyan_candle_cake"); + + BlockType.Typed CYAN_CARPET = getBlockType("cyan_carpet"); + + BlockType.Typed CYAN_CONCRETE = getBlockType("cyan_concrete"); + + BlockType.Typed CYAN_CONCRETE_POWDER = getBlockType("cyan_concrete_powder"); + + BlockType.Typed CYAN_GLAZED_TERRACOTTA = getBlockType("cyan_glazed_terracotta"); + + BlockType.Typed CYAN_SHULKER_BOX = getBlockType("cyan_shulker_box"); + + BlockType.Typed CYAN_STAINED_GLASS = getBlockType("cyan_stained_glass"); + + BlockType.Typed CYAN_STAINED_GLASS_PANE = getBlockType("cyan_stained_glass_pane"); + + BlockType.Typed CYAN_TERRACOTTA = getBlockType("cyan_terracotta"); + + BlockType.Typed CYAN_WALL_BANNER = getBlockType("cyan_wall_banner"); + + BlockType.Typed CYAN_WOOL = getBlockType("cyan_wool"); + + BlockType.Typed DAMAGED_ANVIL = getBlockType("damaged_anvil"); + + BlockType.Typed DANDELION = getBlockType("dandelion"); + + BlockType.Typed DARK_OAK_BUTTON = getBlockType("dark_oak_button"); + + BlockType.Typed DARK_OAK_DOOR = getBlockType("dark_oak_door"); + + BlockType.Typed DARK_OAK_FENCE = getBlockType("dark_oak_fence"); + + BlockType.Typed DARK_OAK_FENCE_GATE = getBlockType("dark_oak_fence_gate"); + + BlockType.Typed DARK_OAK_HANGING_SIGN = getBlockType("dark_oak_hanging_sign"); + + BlockType.Typed DARK_OAK_LEAVES = getBlockType("dark_oak_leaves"); + + BlockType.Typed DARK_OAK_LOG = getBlockType("dark_oak_log"); + + BlockType.Typed DARK_OAK_PLANKS = getBlockType("dark_oak_planks"); + + BlockType.Typed DARK_OAK_PRESSURE_PLATE = getBlockType("dark_oak_pressure_plate"); + + BlockType.Typed DARK_OAK_SAPLING = getBlockType("dark_oak_sapling"); + + BlockType.Typed DARK_OAK_SIGN = getBlockType("dark_oak_sign"); + + BlockType.Typed DARK_OAK_SLAB = getBlockType("dark_oak_slab"); + + BlockType.Typed DARK_OAK_STAIRS = getBlockType("dark_oak_stairs"); + + BlockType.Typed DARK_OAK_TRAPDOOR = getBlockType("dark_oak_trapdoor"); + + BlockType.Typed DARK_OAK_WALL_HANGING_SIGN = getBlockType("dark_oak_wall_hanging_sign"); + + BlockType.Typed DARK_OAK_WALL_SIGN = getBlockType("dark_oak_wall_sign"); + + BlockType.Typed DARK_OAK_WOOD = getBlockType("dark_oak_wood"); + + BlockType.Typed DARK_PRISMARINE = getBlockType("dark_prismarine"); + + BlockType.Typed DARK_PRISMARINE_SLAB = getBlockType("dark_prismarine_slab"); + + BlockType.Typed DARK_PRISMARINE_STAIRS = getBlockType("dark_prismarine_stairs"); + + BlockType.Typed DAYLIGHT_DETECTOR = getBlockType("daylight_detector"); + + BlockType.Typed DEAD_BRAIN_CORAL = getBlockType("dead_brain_coral"); + + BlockType.Typed DEAD_BRAIN_CORAL_BLOCK = getBlockType("dead_brain_coral_block"); + + BlockType.Typed DEAD_BRAIN_CORAL_FAN = getBlockType("dead_brain_coral_fan"); + + BlockType.Typed DEAD_BRAIN_CORAL_WALL_FAN = getBlockType("dead_brain_coral_wall_fan"); + + BlockType.Typed DEAD_BUBBLE_CORAL = getBlockType("dead_bubble_coral"); + + BlockType.Typed DEAD_BUBBLE_CORAL_BLOCK = getBlockType("dead_bubble_coral_block"); + + BlockType.Typed DEAD_BUBBLE_CORAL_FAN = getBlockType("dead_bubble_coral_fan"); + + BlockType.Typed DEAD_BUBBLE_CORAL_WALL_FAN = getBlockType("dead_bubble_coral_wall_fan"); + + BlockType.Typed DEAD_BUSH = getBlockType("dead_bush"); + + BlockType.Typed DEAD_FIRE_CORAL = getBlockType("dead_fire_coral"); + + BlockType.Typed DEAD_FIRE_CORAL_BLOCK = getBlockType("dead_fire_coral_block"); + + BlockType.Typed DEAD_FIRE_CORAL_FAN = getBlockType("dead_fire_coral_fan"); + + BlockType.Typed DEAD_FIRE_CORAL_WALL_FAN = getBlockType("dead_fire_coral_wall_fan"); + + BlockType.Typed DEAD_HORN_CORAL = getBlockType("dead_horn_coral"); + + BlockType.Typed DEAD_HORN_CORAL_BLOCK = getBlockType("dead_horn_coral_block"); + + BlockType.Typed DEAD_HORN_CORAL_FAN = getBlockType("dead_horn_coral_fan"); + + BlockType.Typed DEAD_HORN_CORAL_WALL_FAN = getBlockType("dead_horn_coral_wall_fan"); + + BlockType.Typed DEAD_TUBE_CORAL = getBlockType("dead_tube_coral"); + + BlockType.Typed DEAD_TUBE_CORAL_BLOCK = getBlockType("dead_tube_coral_block"); + + BlockType.Typed DEAD_TUBE_CORAL_FAN = getBlockType("dead_tube_coral_fan"); + + BlockType.Typed DEAD_TUBE_CORAL_WALL_FAN = getBlockType("dead_tube_coral_wall_fan"); + + BlockType.Typed DECORATED_POT = getBlockType("decorated_pot"); + + BlockType.Typed DEEPSLATE = getBlockType("deepslate"); + + BlockType.Typed DEEPSLATE_BRICK_SLAB = getBlockType("deepslate_brick_slab"); + + BlockType.Typed DEEPSLATE_BRICK_STAIRS = getBlockType("deepslate_brick_stairs"); + + BlockType.Typed DEEPSLATE_BRICK_WALL = getBlockType("deepslate_brick_wall"); + + BlockType.Typed DEEPSLATE_BRICKS = getBlockType("deepslate_bricks"); + + BlockType.Typed DEEPSLATE_COAL_ORE = getBlockType("deepslate_coal_ore"); + + BlockType.Typed DEEPSLATE_COPPER_ORE = getBlockType("deepslate_copper_ore"); + + BlockType.Typed DEEPSLATE_DIAMOND_ORE = getBlockType("deepslate_diamond_ore"); + + BlockType.Typed DEEPSLATE_EMERALD_ORE = getBlockType("deepslate_emerald_ore"); + + BlockType.Typed DEEPSLATE_GOLD_ORE = getBlockType("deepslate_gold_ore"); + + BlockType.Typed DEEPSLATE_IRON_ORE = getBlockType("deepslate_iron_ore"); + + BlockType.Typed DEEPSLATE_LAPIS_ORE = getBlockType("deepslate_lapis_ore"); + + BlockType.Typed DEEPSLATE_REDSTONE_ORE = getBlockType("deepslate_redstone_ore"); + + BlockType.Typed DEEPSLATE_TILE_SLAB = getBlockType("deepslate_tile_slab"); + + BlockType.Typed DEEPSLATE_TILE_STAIRS = getBlockType("deepslate_tile_stairs"); + + BlockType.Typed DEEPSLATE_TILE_WALL = getBlockType("deepslate_tile_wall"); + + BlockType.Typed DEEPSLATE_TILES = getBlockType("deepslate_tiles"); + + BlockType.Typed DETECTOR_RAIL = getBlockType("detector_rail"); + + BlockType.Typed DIAMOND_BLOCK = getBlockType("diamond_block"); + + BlockType.Typed DIAMOND_ORE = getBlockType("diamond_ore"); + + BlockType.Typed DIORITE = getBlockType("diorite"); + + BlockType.Typed DIORITE_SLAB = getBlockType("diorite_slab"); + + BlockType.Typed DIORITE_STAIRS = getBlockType("diorite_stairs"); + + BlockType.Typed DIORITE_WALL = getBlockType("diorite_wall"); + + BlockType.Typed DIRT = getBlockType("dirt"); + + BlockType.Typed DIRT_PATH = getBlockType("dirt_path"); + + BlockType.Typed DISPENSER = getBlockType("dispenser"); + + BlockType.Typed DRAGON_EGG = getBlockType("dragon_egg"); + + BlockType.Typed DRAGON_HEAD = getBlockType("dragon_head"); + + BlockType.Typed DRAGON_WALL_HEAD = getBlockType("dragon_wall_head"); + + BlockType.Typed DRIED_KELP_BLOCK = getBlockType("dried_kelp_block"); + + BlockType.Typed DRIPSTONE_BLOCK = getBlockType("dripstone_block"); + + BlockType.Typed DROPPER = getBlockType("dropper"); + + BlockType.Typed EMERALD_BLOCK = getBlockType("emerald_block"); + + BlockType.Typed EMERALD_ORE = getBlockType("emerald_ore"); + + BlockType.Typed ENCHANTING_TABLE = getBlockType("enchanting_table"); + + BlockType.Typed END_GATEWAY = getBlockType("end_gateway"); + + BlockType.Typed END_PORTAL = getBlockType("end_portal"); + + BlockType.Typed END_PORTAL_FRAME = getBlockType("end_portal_frame"); + + BlockType.Typed END_ROD = getBlockType("end_rod"); + + BlockType.Typed END_STONE = getBlockType("end_stone"); + + BlockType.Typed END_STONE_BRICK_SLAB = getBlockType("end_stone_brick_slab"); + + BlockType.Typed END_STONE_BRICK_STAIRS = getBlockType("end_stone_brick_stairs"); + + BlockType.Typed END_STONE_BRICK_WALL = getBlockType("end_stone_brick_wall"); + + BlockType.Typed END_STONE_BRICKS = getBlockType("end_stone_bricks"); + + BlockType.Typed ENDER_CHEST = getBlockType("ender_chest"); + + BlockType.Typed EXPOSED_CHISELED_COPPER = getBlockType("exposed_chiseled_copper"); + + BlockType.Typed EXPOSED_COPPER = getBlockType("exposed_copper"); + + BlockType.Typed EXPOSED_COPPER_BULB = getBlockType("exposed_copper_bulb"); + + BlockType.Typed EXPOSED_COPPER_DOOR = getBlockType("exposed_copper_door"); + + BlockType.Typed EXPOSED_COPPER_GRATE = getBlockType("exposed_copper_grate"); + + BlockType.Typed EXPOSED_COPPER_TRAPDOOR = getBlockType("exposed_copper_trapdoor"); + + BlockType.Typed EXPOSED_CUT_COPPER = getBlockType("exposed_cut_copper"); + + BlockType.Typed EXPOSED_CUT_COPPER_SLAB = getBlockType("exposed_cut_copper_slab"); + + BlockType.Typed EXPOSED_CUT_COPPER_STAIRS = getBlockType("exposed_cut_copper_stairs"); + + BlockType.Typed FARMLAND = getBlockType("farmland"); + + BlockType.Typed FERN = getBlockType("fern"); + + BlockType.Typed FIRE = getBlockType("fire"); + + BlockType.Typed FIRE_CORAL = getBlockType("fire_coral"); + + BlockType.Typed FIRE_CORAL_BLOCK = getBlockType("fire_coral_block"); + + BlockType.Typed FIRE_CORAL_FAN = getBlockType("fire_coral_fan"); + + BlockType.Typed FIRE_CORAL_WALL_FAN = getBlockType("fire_coral_wall_fan"); + + BlockType.Typed FLETCHING_TABLE = getBlockType("fletching_table"); + + BlockType.Typed FLOWER_POT = getBlockType("flower_pot"); + + BlockType.Typed FLOWERING_AZALEA = getBlockType("flowering_azalea"); + + BlockType.Typed FLOWERING_AZALEA_LEAVES = getBlockType("flowering_azalea_leaves"); + + BlockType.Typed FROGSPAWN = getBlockType("frogspawn"); + + BlockType.Typed FROSTED_ICE = getBlockType("frosted_ice"); + + BlockType.Typed FURNACE = getBlockType("furnace"); + + BlockType.Typed GILDED_BLACKSTONE = getBlockType("gilded_blackstone"); + + BlockType.Typed GLASS = getBlockType("glass"); + + BlockType.Typed GLASS_PANE = getBlockType("glass_pane"); + + BlockType.Typed GLOW_LICHEN = getBlockType("glow_lichen"); + + BlockType.Typed GLOWSTONE = getBlockType("glowstone"); + + BlockType.Typed GOLD_BLOCK = getBlockType("gold_block"); + + BlockType.Typed GOLD_ORE = getBlockType("gold_ore"); + + BlockType.Typed GRANITE = getBlockType("granite"); + + BlockType.Typed GRANITE_SLAB = getBlockType("granite_slab"); + + BlockType.Typed GRANITE_STAIRS = getBlockType("granite_stairs"); + + BlockType.Typed GRANITE_WALL = getBlockType("granite_wall"); + + BlockType.Typed GRASS_BLOCK = getBlockType("grass_block"); + + BlockType.Typed GRAVEL = getBlockType("gravel"); + + BlockType.Typed GRAY_BANNER = getBlockType("gray_banner"); + + BlockType.Typed GRAY_BED = getBlockType("gray_bed"); + + BlockType.Typed GRAY_CANDLE = getBlockType("gray_candle"); + + BlockType.Typed GRAY_CANDLE_CAKE = getBlockType("gray_candle_cake"); + + BlockType.Typed GRAY_CARPET = getBlockType("gray_carpet"); + + BlockType.Typed GRAY_CONCRETE = getBlockType("gray_concrete"); + + BlockType.Typed GRAY_CONCRETE_POWDER = getBlockType("gray_concrete_powder"); + + BlockType.Typed GRAY_GLAZED_TERRACOTTA = getBlockType("gray_glazed_terracotta"); + + BlockType.Typed GRAY_SHULKER_BOX = getBlockType("gray_shulker_box"); + + BlockType.Typed GRAY_STAINED_GLASS = getBlockType("gray_stained_glass"); + + BlockType.Typed GRAY_STAINED_GLASS_PANE = getBlockType("gray_stained_glass_pane"); + + BlockType.Typed GRAY_TERRACOTTA = getBlockType("gray_terracotta"); + + BlockType.Typed GRAY_WALL_BANNER = getBlockType("gray_wall_banner"); + + BlockType.Typed GRAY_WOOL = getBlockType("gray_wool"); + + BlockType.Typed GREEN_BANNER = getBlockType("green_banner"); + + BlockType.Typed GREEN_BED = getBlockType("green_bed"); + + BlockType.Typed GREEN_CANDLE = getBlockType("green_candle"); + + BlockType.Typed GREEN_CANDLE_CAKE = getBlockType("green_candle_cake"); + + BlockType.Typed GREEN_CARPET = getBlockType("green_carpet"); + + BlockType.Typed GREEN_CONCRETE = getBlockType("green_concrete"); + + BlockType.Typed GREEN_CONCRETE_POWDER = getBlockType("green_concrete_powder"); + + BlockType.Typed GREEN_GLAZED_TERRACOTTA = getBlockType("green_glazed_terracotta"); + + BlockType.Typed GREEN_SHULKER_BOX = getBlockType("green_shulker_box"); + + BlockType.Typed GREEN_STAINED_GLASS = getBlockType("green_stained_glass"); + + BlockType.Typed GREEN_STAINED_GLASS_PANE = getBlockType("green_stained_glass_pane"); + + BlockType.Typed GREEN_TERRACOTTA = getBlockType("green_terracotta"); + + BlockType.Typed GREEN_WALL_BANNER = getBlockType("green_wall_banner"); + + BlockType.Typed GREEN_WOOL = getBlockType("green_wool"); + + BlockType.Typed GRINDSTONE = getBlockType("grindstone"); + + BlockType.Typed HANGING_ROOTS = getBlockType("hanging_roots"); + + BlockType.Typed HAY_BLOCK = getBlockType("hay_block"); + + BlockType.Typed HEAVY_CORE = getBlockType("heavy_core"); + + BlockType.Typed HEAVY_WEIGHTED_PRESSURE_PLATE = getBlockType("heavy_weighted_pressure_plate"); + + BlockType.Typed HONEY_BLOCK = getBlockType("honey_block"); + + BlockType.Typed HONEYCOMB_BLOCK = getBlockType("honeycomb_block"); + + BlockType.Typed HOPPER = getBlockType("hopper"); + + BlockType.Typed HORN_CORAL = getBlockType("horn_coral"); + + BlockType.Typed HORN_CORAL_BLOCK = getBlockType("horn_coral_block"); + + BlockType.Typed HORN_CORAL_FAN = getBlockType("horn_coral_fan"); + + BlockType.Typed HORN_CORAL_WALL_FAN = getBlockType("horn_coral_wall_fan"); + + BlockType.Typed ICE = getBlockType("ice"); + + BlockType.Typed INFESTED_CHISELED_STONE_BRICKS = getBlockType("infested_chiseled_stone_bricks"); + + BlockType.Typed INFESTED_COBBLESTONE = getBlockType("infested_cobblestone"); + + BlockType.Typed INFESTED_CRACKED_STONE_BRICKS = getBlockType("infested_cracked_stone_bricks"); + + BlockType.Typed INFESTED_DEEPSLATE = getBlockType("infested_deepslate"); + + BlockType.Typed INFESTED_MOSSY_STONE_BRICKS = getBlockType("infested_mossy_stone_bricks"); + + BlockType.Typed INFESTED_STONE = getBlockType("infested_stone"); + + BlockType.Typed INFESTED_STONE_BRICKS = getBlockType("infested_stone_bricks"); + + BlockType.Typed IRON_BARS = getBlockType("iron_bars"); + + BlockType.Typed IRON_BLOCK = getBlockType("iron_block"); + + BlockType.Typed IRON_DOOR = getBlockType("iron_door"); + + BlockType.Typed IRON_ORE = getBlockType("iron_ore"); + + BlockType.Typed IRON_TRAPDOOR = getBlockType("iron_trapdoor"); + + BlockType.Typed JACK_O_LANTERN = getBlockType("jack_o_lantern"); + + BlockType.Typed JIGSAW = getBlockType("jigsaw"); + + BlockType.Typed JUKEBOX = getBlockType("jukebox"); + + BlockType.Typed JUNGLE_BUTTON = getBlockType("jungle_button"); + + BlockType.Typed JUNGLE_DOOR = getBlockType("jungle_door"); + + BlockType.Typed JUNGLE_FENCE = getBlockType("jungle_fence"); + + BlockType.Typed JUNGLE_FENCE_GATE = getBlockType("jungle_fence_gate"); + + BlockType.Typed JUNGLE_HANGING_SIGN = getBlockType("jungle_hanging_sign"); + + BlockType.Typed JUNGLE_LEAVES = getBlockType("jungle_leaves"); + + BlockType.Typed JUNGLE_LOG = getBlockType("jungle_log"); + + BlockType.Typed JUNGLE_PLANKS = getBlockType("jungle_planks"); + + BlockType.Typed JUNGLE_PRESSURE_PLATE = getBlockType("jungle_pressure_plate"); + + BlockType.Typed JUNGLE_SAPLING = getBlockType("jungle_sapling"); + + BlockType.Typed JUNGLE_SIGN = getBlockType("jungle_sign"); + + BlockType.Typed JUNGLE_SLAB = getBlockType("jungle_slab"); + + BlockType.Typed JUNGLE_STAIRS = getBlockType("jungle_stairs"); + + BlockType.Typed JUNGLE_TRAPDOOR = getBlockType("jungle_trapdoor"); + + BlockType.Typed JUNGLE_WALL_HANGING_SIGN = getBlockType("jungle_wall_hanging_sign"); + + BlockType.Typed JUNGLE_WALL_SIGN = getBlockType("jungle_wall_sign"); + + BlockType.Typed JUNGLE_WOOD = getBlockType("jungle_wood"); + + BlockType.Typed KELP = getBlockType("kelp"); + + BlockType.Typed KELP_PLANT = getBlockType("kelp_plant"); + + BlockType.Typed LADDER = getBlockType("ladder"); + + BlockType.Typed LANTERN = getBlockType("lantern"); + + BlockType.Typed LAPIS_BLOCK = getBlockType("lapis_block"); + + BlockType.Typed LAPIS_ORE = getBlockType("lapis_ore"); + + BlockType.Typed LARGE_AMETHYST_BUD = getBlockType("large_amethyst_bud"); + + BlockType.Typed LARGE_FERN = getBlockType("large_fern"); + + BlockType.Typed LAVA = getBlockType("lava"); + + BlockType.Typed LAVA_CAULDRON = getBlockType("lava_cauldron"); + + BlockType.Typed LECTERN = getBlockType("lectern"); + + BlockType.Typed LEVER = getBlockType("lever"); + + BlockType.Typed LIGHT = getBlockType("light"); + + BlockType.Typed LIGHT_BLUE_BANNER = getBlockType("light_blue_banner"); + + BlockType.Typed LIGHT_BLUE_BED = getBlockType("light_blue_bed"); + + BlockType.Typed LIGHT_BLUE_CANDLE = getBlockType("light_blue_candle"); + + BlockType.Typed LIGHT_BLUE_CANDLE_CAKE = getBlockType("light_blue_candle_cake"); + + BlockType.Typed LIGHT_BLUE_CARPET = getBlockType("light_blue_carpet"); + + BlockType.Typed LIGHT_BLUE_CONCRETE = getBlockType("light_blue_concrete"); + + BlockType.Typed LIGHT_BLUE_CONCRETE_POWDER = getBlockType("light_blue_concrete_powder"); + + BlockType.Typed LIGHT_BLUE_GLAZED_TERRACOTTA = getBlockType("light_blue_glazed_terracotta"); + + BlockType.Typed LIGHT_BLUE_SHULKER_BOX = getBlockType("light_blue_shulker_box"); + + BlockType.Typed LIGHT_BLUE_STAINED_GLASS = getBlockType("light_blue_stained_glass"); + + BlockType.Typed LIGHT_BLUE_STAINED_GLASS_PANE = getBlockType("light_blue_stained_glass_pane"); + + BlockType.Typed LIGHT_BLUE_TERRACOTTA = getBlockType("light_blue_terracotta"); + + BlockType.Typed LIGHT_BLUE_WALL_BANNER = getBlockType("light_blue_wall_banner"); + + BlockType.Typed LIGHT_BLUE_WOOL = getBlockType("light_blue_wool"); + + BlockType.Typed LIGHT_GRAY_BANNER = getBlockType("light_gray_banner"); + + BlockType.Typed LIGHT_GRAY_BED = getBlockType("light_gray_bed"); + + BlockType.Typed LIGHT_GRAY_CANDLE = getBlockType("light_gray_candle"); + + BlockType.Typed LIGHT_GRAY_CANDLE_CAKE = getBlockType("light_gray_candle_cake"); + + BlockType.Typed LIGHT_GRAY_CARPET = getBlockType("light_gray_carpet"); + + BlockType.Typed LIGHT_GRAY_CONCRETE = getBlockType("light_gray_concrete"); + + BlockType.Typed LIGHT_GRAY_CONCRETE_POWDER = getBlockType("light_gray_concrete_powder"); + + BlockType.Typed LIGHT_GRAY_GLAZED_TERRACOTTA = getBlockType("light_gray_glazed_terracotta"); + + BlockType.Typed LIGHT_GRAY_SHULKER_BOX = getBlockType("light_gray_shulker_box"); + + BlockType.Typed LIGHT_GRAY_STAINED_GLASS = getBlockType("light_gray_stained_glass"); + + BlockType.Typed LIGHT_GRAY_STAINED_GLASS_PANE = getBlockType("light_gray_stained_glass_pane"); + + BlockType.Typed LIGHT_GRAY_TERRACOTTA = getBlockType("light_gray_terracotta"); + + BlockType.Typed LIGHT_GRAY_WALL_BANNER = getBlockType("light_gray_wall_banner"); + + BlockType.Typed LIGHT_GRAY_WOOL = getBlockType("light_gray_wool"); + + BlockType.Typed LIGHT_WEIGHTED_PRESSURE_PLATE = getBlockType("light_weighted_pressure_plate"); + + BlockType.Typed LIGHTNING_ROD = getBlockType("lightning_rod"); + + BlockType.Typed LILAC = getBlockType("lilac"); + + BlockType.Typed LILY_OF_THE_VALLEY = getBlockType("lily_of_the_valley"); + + BlockType.Typed LILY_PAD = getBlockType("lily_pad"); + + BlockType.Typed LIME_BANNER = getBlockType("lime_banner"); + + BlockType.Typed LIME_BED = getBlockType("lime_bed"); + + BlockType.Typed LIME_CANDLE = getBlockType("lime_candle"); + + BlockType.Typed LIME_CANDLE_CAKE = getBlockType("lime_candle_cake"); + + BlockType.Typed LIME_CARPET = getBlockType("lime_carpet"); + + BlockType.Typed LIME_CONCRETE = getBlockType("lime_concrete"); + + BlockType.Typed LIME_CONCRETE_POWDER = getBlockType("lime_concrete_powder"); + + BlockType.Typed LIME_GLAZED_TERRACOTTA = getBlockType("lime_glazed_terracotta"); + + BlockType.Typed LIME_SHULKER_BOX = getBlockType("lime_shulker_box"); + + BlockType.Typed LIME_STAINED_GLASS = getBlockType("lime_stained_glass"); + + BlockType.Typed LIME_STAINED_GLASS_PANE = getBlockType("lime_stained_glass_pane"); + + BlockType.Typed LIME_TERRACOTTA = getBlockType("lime_terracotta"); + + BlockType.Typed LIME_WALL_BANNER = getBlockType("lime_wall_banner"); + + BlockType.Typed LIME_WOOL = getBlockType("lime_wool"); + + BlockType.Typed LODESTONE = getBlockType("lodestone"); + + BlockType.Typed LOOM = getBlockType("loom"); + + BlockType.Typed MAGENTA_BANNER = getBlockType("magenta_banner"); + + BlockType.Typed MAGENTA_BED = getBlockType("magenta_bed"); + + BlockType.Typed MAGENTA_CANDLE = getBlockType("magenta_candle"); + + BlockType.Typed MAGENTA_CANDLE_CAKE = getBlockType("magenta_candle_cake"); + + BlockType.Typed MAGENTA_CARPET = getBlockType("magenta_carpet"); + + BlockType.Typed MAGENTA_CONCRETE = getBlockType("magenta_concrete"); + + BlockType.Typed MAGENTA_CONCRETE_POWDER = getBlockType("magenta_concrete_powder"); + + BlockType.Typed MAGENTA_GLAZED_TERRACOTTA = getBlockType("magenta_glazed_terracotta"); + + BlockType.Typed MAGENTA_SHULKER_BOX = getBlockType("magenta_shulker_box"); + + BlockType.Typed MAGENTA_STAINED_GLASS = getBlockType("magenta_stained_glass"); + + BlockType.Typed MAGENTA_STAINED_GLASS_PANE = getBlockType("magenta_stained_glass_pane"); + + BlockType.Typed MAGENTA_TERRACOTTA = getBlockType("magenta_terracotta"); + + BlockType.Typed MAGENTA_WALL_BANNER = getBlockType("magenta_wall_banner"); + + BlockType.Typed MAGENTA_WOOL = getBlockType("magenta_wool"); + + BlockType.Typed MAGMA_BLOCK = getBlockType("magma_block"); + + BlockType.Typed MANGROVE_BUTTON = getBlockType("mangrove_button"); + + BlockType.Typed MANGROVE_DOOR = getBlockType("mangrove_door"); + + BlockType.Typed MANGROVE_FENCE = getBlockType("mangrove_fence"); + + BlockType.Typed MANGROVE_FENCE_GATE = getBlockType("mangrove_fence_gate"); + + BlockType.Typed MANGROVE_HANGING_SIGN = getBlockType("mangrove_hanging_sign"); + + BlockType.Typed MANGROVE_LEAVES = getBlockType("mangrove_leaves"); + + BlockType.Typed MANGROVE_LOG = getBlockType("mangrove_log"); + + BlockType.Typed MANGROVE_PLANKS = getBlockType("mangrove_planks"); + + BlockType.Typed MANGROVE_PRESSURE_PLATE = getBlockType("mangrove_pressure_plate"); + + BlockType.Typed MANGROVE_PROPAGULE = getBlockType("mangrove_propagule"); + + BlockType.Typed MANGROVE_ROOTS = getBlockType("mangrove_roots"); + + BlockType.Typed MANGROVE_SIGN = getBlockType("mangrove_sign"); + + BlockType.Typed MANGROVE_SLAB = getBlockType("mangrove_slab"); + + BlockType.Typed MANGROVE_STAIRS = getBlockType("mangrove_stairs"); + + BlockType.Typed MANGROVE_TRAPDOOR = getBlockType("mangrove_trapdoor"); + + BlockType.Typed MANGROVE_WALL_HANGING_SIGN = getBlockType("mangrove_wall_hanging_sign"); + + BlockType.Typed MANGROVE_WALL_SIGN = getBlockType("mangrove_wall_sign"); + + BlockType.Typed MANGROVE_WOOD = getBlockType("mangrove_wood"); + + BlockType.Typed MEDIUM_AMETHYST_BUD = getBlockType("medium_amethyst_bud"); + + BlockType.Typed MELON = getBlockType("melon"); + + BlockType.Typed MELON_STEM = getBlockType("melon_stem"); + + BlockType.Typed MOSS_BLOCK = getBlockType("moss_block"); + + BlockType.Typed MOSS_CARPET = getBlockType("moss_carpet"); + + BlockType.Typed MOSSY_COBBLESTONE = getBlockType("mossy_cobblestone"); + + BlockType.Typed MOSSY_COBBLESTONE_SLAB = getBlockType("mossy_cobblestone_slab"); + + BlockType.Typed MOSSY_COBBLESTONE_STAIRS = getBlockType("mossy_cobblestone_stairs"); + + BlockType.Typed MOSSY_COBBLESTONE_WALL = getBlockType("mossy_cobblestone_wall"); + + BlockType.Typed MOSSY_STONE_BRICK_SLAB = getBlockType("mossy_stone_brick_slab"); + + BlockType.Typed MOSSY_STONE_BRICK_STAIRS = getBlockType("mossy_stone_brick_stairs"); + + BlockType.Typed MOSSY_STONE_BRICK_WALL = getBlockType("mossy_stone_brick_wall"); + + BlockType.Typed MOSSY_STONE_BRICKS = getBlockType("mossy_stone_bricks"); + + BlockType.Typed MOVING_PISTON = getBlockType("moving_piston"); + + BlockType.Typed MUD = getBlockType("mud"); + + BlockType.Typed MUD_BRICK_SLAB = getBlockType("mud_brick_slab"); + + BlockType.Typed MUD_BRICK_STAIRS = getBlockType("mud_brick_stairs"); + + BlockType.Typed MUD_BRICK_WALL = getBlockType("mud_brick_wall"); + + BlockType.Typed MUD_BRICKS = getBlockType("mud_bricks"); + + BlockType.Typed MUDDY_MANGROVE_ROOTS = getBlockType("muddy_mangrove_roots"); + + BlockType.Typed MUSHROOM_STEM = getBlockType("mushroom_stem"); + + BlockType.Typed MYCELIUM = getBlockType("mycelium"); + + BlockType.Typed NETHER_BRICK_FENCE = getBlockType("nether_brick_fence"); + + BlockType.Typed NETHER_BRICK_SLAB = getBlockType("nether_brick_slab"); + + BlockType.Typed NETHER_BRICK_STAIRS = getBlockType("nether_brick_stairs"); + + BlockType.Typed NETHER_BRICK_WALL = getBlockType("nether_brick_wall"); + + BlockType.Typed NETHER_BRICKS = getBlockType("nether_bricks"); + + BlockType.Typed NETHER_GOLD_ORE = getBlockType("nether_gold_ore"); + + BlockType.Typed NETHER_PORTAL = getBlockType("nether_portal"); + + BlockType.Typed NETHER_QUARTZ_ORE = getBlockType("nether_quartz_ore"); + + BlockType.Typed NETHER_SPROUTS = getBlockType("nether_sprouts"); + + BlockType.Typed NETHER_WART = getBlockType("nether_wart"); + + BlockType.Typed NETHER_WART_BLOCK = getBlockType("nether_wart_block"); + + BlockType.Typed NETHERITE_BLOCK = getBlockType("netherite_block"); + + BlockType.Typed NETHERRACK = getBlockType("netherrack"); + + BlockType.Typed NOTE_BLOCK = getBlockType("note_block"); + + BlockType.Typed OAK_BUTTON = getBlockType("oak_button"); + + BlockType.Typed OAK_DOOR = getBlockType("oak_door"); + + BlockType.Typed OAK_FENCE = getBlockType("oak_fence"); + + BlockType.Typed OAK_FENCE_GATE = getBlockType("oak_fence_gate"); + + BlockType.Typed OAK_HANGING_SIGN = getBlockType("oak_hanging_sign"); + + BlockType.Typed OAK_LEAVES = getBlockType("oak_leaves"); + + BlockType.Typed OAK_LOG = getBlockType("oak_log"); + + BlockType.Typed OAK_PLANKS = getBlockType("oak_planks"); + + BlockType.Typed OAK_PRESSURE_PLATE = getBlockType("oak_pressure_plate"); + + BlockType.Typed OAK_SAPLING = getBlockType("oak_sapling"); + + BlockType.Typed OAK_SIGN = getBlockType("oak_sign"); + + BlockType.Typed OAK_SLAB = getBlockType("oak_slab"); + + BlockType.Typed OAK_STAIRS = getBlockType("oak_stairs"); + + BlockType.Typed OAK_TRAPDOOR = getBlockType("oak_trapdoor"); + + BlockType.Typed OAK_WALL_HANGING_SIGN = getBlockType("oak_wall_hanging_sign"); + + BlockType.Typed OAK_WALL_SIGN = getBlockType("oak_wall_sign"); + + BlockType.Typed OAK_WOOD = getBlockType("oak_wood"); + + BlockType.Typed OBSERVER = getBlockType("observer"); + + BlockType.Typed OBSIDIAN = getBlockType("obsidian"); + + BlockType.Typed OCHRE_FROGLIGHT = getBlockType("ochre_froglight"); + + BlockType.Typed OPEN_EYEBLOSSOM = getBlockType("open_eyeblossom"); + + BlockType.Typed ORANGE_BANNER = getBlockType("orange_banner"); + + BlockType.Typed ORANGE_BED = getBlockType("orange_bed"); + + BlockType.Typed ORANGE_CANDLE = getBlockType("orange_candle"); + + BlockType.Typed ORANGE_CANDLE_CAKE = getBlockType("orange_candle_cake"); + + BlockType.Typed ORANGE_CARPET = getBlockType("orange_carpet"); + + BlockType.Typed ORANGE_CONCRETE = getBlockType("orange_concrete"); + + BlockType.Typed ORANGE_CONCRETE_POWDER = getBlockType("orange_concrete_powder"); + + BlockType.Typed ORANGE_GLAZED_TERRACOTTA = getBlockType("orange_glazed_terracotta"); + + BlockType.Typed ORANGE_SHULKER_BOX = getBlockType("orange_shulker_box"); + + BlockType.Typed ORANGE_STAINED_GLASS = getBlockType("orange_stained_glass"); + + BlockType.Typed ORANGE_STAINED_GLASS_PANE = getBlockType("orange_stained_glass_pane"); + + BlockType.Typed ORANGE_TERRACOTTA = getBlockType("orange_terracotta"); + + BlockType.Typed ORANGE_TULIP = getBlockType("orange_tulip"); + + BlockType.Typed ORANGE_WALL_BANNER = getBlockType("orange_wall_banner"); + + BlockType.Typed ORANGE_WOOL = getBlockType("orange_wool"); + + BlockType.Typed OXEYE_DAISY = getBlockType("oxeye_daisy"); + + BlockType.Typed OXIDIZED_CHISELED_COPPER = getBlockType("oxidized_chiseled_copper"); + + BlockType.Typed OXIDIZED_COPPER = getBlockType("oxidized_copper"); + + BlockType.Typed OXIDIZED_COPPER_BULB = getBlockType("oxidized_copper_bulb"); + + BlockType.Typed OXIDIZED_COPPER_DOOR = getBlockType("oxidized_copper_door"); + + BlockType.Typed OXIDIZED_COPPER_GRATE = getBlockType("oxidized_copper_grate"); + + BlockType.Typed OXIDIZED_COPPER_TRAPDOOR = getBlockType("oxidized_copper_trapdoor"); + + BlockType.Typed OXIDIZED_CUT_COPPER = getBlockType("oxidized_cut_copper"); + + BlockType.Typed OXIDIZED_CUT_COPPER_SLAB = getBlockType("oxidized_cut_copper_slab"); + + BlockType.Typed OXIDIZED_CUT_COPPER_STAIRS = getBlockType("oxidized_cut_copper_stairs"); + + BlockType.Typed PACKED_ICE = getBlockType("packed_ice"); + + BlockType.Typed PACKED_MUD = getBlockType("packed_mud"); + + BlockType.Typed PALE_HANGING_MOSS = getBlockType("pale_hanging_moss"); + + BlockType.Typed PALE_MOSS_BLOCK = getBlockType("pale_moss_block"); + + BlockType.Typed PALE_MOSS_CARPET = getBlockType("pale_moss_carpet"); + + BlockType.Typed PALE_OAK_BUTTON = getBlockType("pale_oak_button"); + + BlockType.Typed PALE_OAK_DOOR = getBlockType("pale_oak_door"); + + BlockType.Typed PALE_OAK_FENCE = getBlockType("pale_oak_fence"); + + BlockType.Typed PALE_OAK_FENCE_GATE = getBlockType("pale_oak_fence_gate"); + + BlockType.Typed PALE_OAK_HANGING_SIGN = getBlockType("pale_oak_hanging_sign"); + + BlockType.Typed PALE_OAK_LEAVES = getBlockType("pale_oak_leaves"); + + BlockType.Typed PALE_OAK_LOG = getBlockType("pale_oak_log"); + + BlockType.Typed PALE_OAK_PLANKS = getBlockType("pale_oak_planks"); + + BlockType.Typed PALE_OAK_PRESSURE_PLATE = getBlockType("pale_oak_pressure_plate"); + + BlockType.Typed PALE_OAK_SAPLING = getBlockType("pale_oak_sapling"); + + BlockType.Typed PALE_OAK_SIGN = getBlockType("pale_oak_sign"); + + BlockType.Typed PALE_OAK_SLAB = getBlockType("pale_oak_slab"); + + BlockType.Typed PALE_OAK_STAIRS = getBlockType("pale_oak_stairs"); + + BlockType.Typed PALE_OAK_TRAPDOOR = getBlockType("pale_oak_trapdoor"); + + BlockType.Typed PALE_OAK_WALL_HANGING_SIGN = getBlockType("pale_oak_wall_hanging_sign"); + + BlockType.Typed PALE_OAK_WALL_SIGN = getBlockType("pale_oak_wall_sign"); + + BlockType.Typed PALE_OAK_WOOD = getBlockType("pale_oak_wood"); + + BlockType.Typed PEARLESCENT_FROGLIGHT = getBlockType("pearlescent_froglight"); + + BlockType.Typed PEONY = getBlockType("peony"); + + BlockType.Typed PETRIFIED_OAK_SLAB = getBlockType("petrified_oak_slab"); + + BlockType.Typed PIGLIN_HEAD = getBlockType("piglin_head"); + + BlockType.Typed PIGLIN_WALL_HEAD = getBlockType("piglin_wall_head"); + + BlockType.Typed PINK_BANNER = getBlockType("pink_banner"); + + BlockType.Typed PINK_BED = getBlockType("pink_bed"); + + BlockType.Typed PINK_CANDLE = getBlockType("pink_candle"); + + BlockType.Typed PINK_CANDLE_CAKE = getBlockType("pink_candle_cake"); + + BlockType.Typed PINK_CARPET = getBlockType("pink_carpet"); + + BlockType.Typed PINK_CONCRETE = getBlockType("pink_concrete"); + + BlockType.Typed PINK_CONCRETE_POWDER = getBlockType("pink_concrete_powder"); + + BlockType.Typed PINK_GLAZED_TERRACOTTA = getBlockType("pink_glazed_terracotta"); + + BlockType.Typed PINK_PETALS = getBlockType("pink_petals"); + + BlockType.Typed PINK_SHULKER_BOX = getBlockType("pink_shulker_box"); + + BlockType.Typed PINK_STAINED_GLASS = getBlockType("pink_stained_glass"); + + BlockType.Typed PINK_STAINED_GLASS_PANE = getBlockType("pink_stained_glass_pane"); + + BlockType.Typed PINK_TERRACOTTA = getBlockType("pink_terracotta"); + + BlockType.Typed PINK_TULIP = getBlockType("pink_tulip"); + + BlockType.Typed PINK_WALL_BANNER = getBlockType("pink_wall_banner"); + + BlockType.Typed PINK_WOOL = getBlockType("pink_wool"); + + BlockType.Typed PISTON = getBlockType("piston"); + + BlockType.Typed PISTON_HEAD = getBlockType("piston_head"); + + BlockType.Typed PITCHER_CROP = getBlockType("pitcher_crop"); + + BlockType.Typed PITCHER_PLANT = getBlockType("pitcher_plant"); + + BlockType.Typed PLAYER_HEAD = getBlockType("player_head"); + + BlockType.Typed PLAYER_WALL_HEAD = getBlockType("player_wall_head"); + + BlockType.Typed PODZOL = getBlockType("podzol"); + + BlockType.Typed POINTED_DRIPSTONE = getBlockType("pointed_dripstone"); + + BlockType.Typed POLISHED_ANDESITE = getBlockType("polished_andesite"); + + BlockType.Typed POLISHED_ANDESITE_SLAB = getBlockType("polished_andesite_slab"); + + BlockType.Typed POLISHED_ANDESITE_STAIRS = getBlockType("polished_andesite_stairs"); + + BlockType.Typed POLISHED_BASALT = getBlockType("polished_basalt"); + + BlockType.Typed POLISHED_BLACKSTONE = getBlockType("polished_blackstone"); + + BlockType.Typed POLISHED_BLACKSTONE_BRICK_SLAB = getBlockType("polished_blackstone_brick_slab"); + + BlockType.Typed POLISHED_BLACKSTONE_BRICK_STAIRS = getBlockType("polished_blackstone_brick_stairs"); + + BlockType.Typed POLISHED_BLACKSTONE_BRICK_WALL = getBlockType("polished_blackstone_brick_wall"); + + BlockType.Typed POLISHED_BLACKSTONE_BRICKS = getBlockType("polished_blackstone_bricks"); + + BlockType.Typed POLISHED_BLACKSTONE_BUTTON = getBlockType("polished_blackstone_button"); + + BlockType.Typed POLISHED_BLACKSTONE_PRESSURE_PLATE = getBlockType("polished_blackstone_pressure_plate"); + + BlockType.Typed POLISHED_BLACKSTONE_SLAB = getBlockType("polished_blackstone_slab"); + + BlockType.Typed POLISHED_BLACKSTONE_STAIRS = getBlockType("polished_blackstone_stairs"); + + BlockType.Typed POLISHED_BLACKSTONE_WALL = getBlockType("polished_blackstone_wall"); + + BlockType.Typed POLISHED_DEEPSLATE = getBlockType("polished_deepslate"); + + BlockType.Typed POLISHED_DEEPSLATE_SLAB = getBlockType("polished_deepslate_slab"); + + BlockType.Typed POLISHED_DEEPSLATE_STAIRS = getBlockType("polished_deepslate_stairs"); + + BlockType.Typed POLISHED_DEEPSLATE_WALL = getBlockType("polished_deepslate_wall"); + + BlockType.Typed POLISHED_DIORITE = getBlockType("polished_diorite"); + + BlockType.Typed POLISHED_DIORITE_SLAB = getBlockType("polished_diorite_slab"); + + BlockType.Typed POLISHED_DIORITE_STAIRS = getBlockType("polished_diorite_stairs"); + + BlockType.Typed POLISHED_GRANITE = getBlockType("polished_granite"); + + BlockType.Typed POLISHED_GRANITE_SLAB = getBlockType("polished_granite_slab"); + + BlockType.Typed POLISHED_GRANITE_STAIRS = getBlockType("polished_granite_stairs"); + + BlockType.Typed POLISHED_TUFF = getBlockType("polished_tuff"); + + BlockType.Typed POLISHED_TUFF_SLAB = getBlockType("polished_tuff_slab"); + + BlockType.Typed POLISHED_TUFF_STAIRS = getBlockType("polished_tuff_stairs"); + + BlockType.Typed POLISHED_TUFF_WALL = getBlockType("polished_tuff_wall"); + + BlockType.Typed POPPY = getBlockType("poppy"); + + BlockType.Typed POTATOES = getBlockType("potatoes"); + + BlockType.Typed POTTED_ACACIA_SAPLING = getBlockType("potted_acacia_sapling"); + + BlockType.Typed POTTED_ALLIUM = getBlockType("potted_allium"); + + BlockType.Typed POTTED_AZALEA_BUSH = getBlockType("potted_azalea_bush"); + + BlockType.Typed POTTED_AZURE_BLUET = getBlockType("potted_azure_bluet"); + + BlockType.Typed POTTED_BAMBOO = getBlockType("potted_bamboo"); + + BlockType.Typed POTTED_BIRCH_SAPLING = getBlockType("potted_birch_sapling"); + + BlockType.Typed POTTED_BLUE_ORCHID = getBlockType("potted_blue_orchid"); + + BlockType.Typed POTTED_BROWN_MUSHROOM = getBlockType("potted_brown_mushroom"); + + BlockType.Typed POTTED_CACTUS = getBlockType("potted_cactus"); + + BlockType.Typed POTTED_CHERRY_SAPLING = getBlockType("potted_cherry_sapling"); + BlockType.Typed POTTED_CLOSED_EYEBLOSSOM = getBlockType("potted_closed_eyeblossom"); + + BlockType.Typed POTTED_CORNFLOWER = getBlockType("potted_cornflower"); + + BlockType.Typed POTTED_CRIMSON_FUNGUS = getBlockType("potted_crimson_fungus"); + + BlockType.Typed POTTED_CRIMSON_ROOTS = getBlockType("potted_crimson_roots"); + + BlockType.Typed POTTED_DANDELION = getBlockType("potted_dandelion"); + + BlockType.Typed POTTED_DARK_OAK_SAPLING = getBlockType("potted_dark_oak_sapling"); + + BlockType.Typed POTTED_DEAD_BUSH = getBlockType("potted_dead_bush"); + + BlockType.Typed POTTED_FERN = getBlockType("potted_fern"); + + BlockType.Typed POTTED_FLOWERING_AZALEA_BUSH = getBlockType("potted_flowering_azalea_bush"); + + BlockType.Typed POTTED_JUNGLE_SAPLING = getBlockType("potted_jungle_sapling"); + + BlockType.Typed POTTED_LILY_OF_THE_VALLEY = getBlockType("potted_lily_of_the_valley"); + + BlockType.Typed POTTED_MANGROVE_PROPAGULE = getBlockType("potted_mangrove_propagule"); + + BlockType.Typed POTTED_OAK_SAPLING = getBlockType("potted_oak_sapling"); + + BlockType.Typed POTTED_OPEN_EYEBLOSSOM = getBlockType("potted_open_eyeblossom"); + + BlockType.Typed POTTED_ORANGE_TULIP = getBlockType("potted_orange_tulip"); + + BlockType.Typed POTTED_OXEYE_DAISY = getBlockType("potted_oxeye_daisy"); + + BlockType.Typed POTTED_PALE_OAK_SAPLING = getBlockType("potted_pale_oak_sapling"); + + BlockType.Typed POTTED_PINK_TULIP = getBlockType("potted_pink_tulip"); + + BlockType.Typed POTTED_POPPY = getBlockType("potted_poppy"); + + BlockType.Typed POTTED_RED_MUSHROOM = getBlockType("potted_red_mushroom"); + + BlockType.Typed POTTED_RED_TULIP = getBlockType("potted_red_tulip"); + + BlockType.Typed POTTED_SPRUCE_SAPLING = getBlockType("potted_spruce_sapling"); + + BlockType.Typed POTTED_TORCHFLOWER = getBlockType("potted_torchflower"); + + BlockType.Typed POTTED_WARPED_FUNGUS = getBlockType("potted_warped_fungus"); + + BlockType.Typed POTTED_WARPED_ROOTS = getBlockType("potted_warped_roots"); + + BlockType.Typed POTTED_WHITE_TULIP = getBlockType("potted_white_tulip"); + + BlockType.Typed POTTED_WITHER_ROSE = getBlockType("potted_wither_rose"); + + BlockType.Typed POWDER_SNOW = getBlockType("powder_snow"); + + BlockType.Typed POWDER_SNOW_CAULDRON = getBlockType("powder_snow_cauldron"); + + BlockType.Typed POWERED_RAIL = getBlockType("powered_rail"); + + BlockType.Typed PRISMARINE = getBlockType("prismarine"); + + BlockType.Typed PRISMARINE_BRICK_SLAB = getBlockType("prismarine_brick_slab"); + + BlockType.Typed PRISMARINE_BRICK_STAIRS = getBlockType("prismarine_brick_stairs"); + + BlockType.Typed PRISMARINE_BRICKS = getBlockType("prismarine_bricks"); + + BlockType.Typed PRISMARINE_SLAB = getBlockType("prismarine_slab"); + + BlockType.Typed PRISMARINE_STAIRS = getBlockType("prismarine_stairs"); + + BlockType.Typed PRISMARINE_WALL = getBlockType("prismarine_wall"); + + BlockType.Typed PUMPKIN = getBlockType("pumpkin"); + + BlockType.Typed PUMPKIN_STEM = getBlockType("pumpkin_stem"); + + BlockType.Typed PURPLE_BANNER = getBlockType("purple_banner"); + + BlockType.Typed PURPLE_BED = getBlockType("purple_bed"); + + BlockType.Typed PURPLE_CANDLE = getBlockType("purple_candle"); + + BlockType.Typed PURPLE_CANDLE_CAKE = getBlockType("purple_candle_cake"); + + BlockType.Typed PURPLE_CARPET = getBlockType("purple_carpet"); + + BlockType.Typed PURPLE_CONCRETE = getBlockType("purple_concrete"); + + BlockType.Typed PURPLE_CONCRETE_POWDER = getBlockType("purple_concrete_powder"); + + BlockType.Typed PURPLE_GLAZED_TERRACOTTA = getBlockType("purple_glazed_terracotta"); + + BlockType.Typed PURPLE_SHULKER_BOX = getBlockType("purple_shulker_box"); + + BlockType.Typed PURPLE_STAINED_GLASS = getBlockType("purple_stained_glass"); + + BlockType.Typed PURPLE_STAINED_GLASS_PANE = getBlockType("purple_stained_glass_pane"); + + BlockType.Typed PURPLE_TERRACOTTA = getBlockType("purple_terracotta"); + + BlockType.Typed PURPLE_WALL_BANNER = getBlockType("purple_wall_banner"); + + BlockType.Typed PURPLE_WOOL = getBlockType("purple_wool"); + + BlockType.Typed PURPUR_BLOCK = getBlockType("purpur_block"); + + BlockType.Typed PURPUR_PILLAR = getBlockType("purpur_pillar"); + + BlockType.Typed PURPUR_SLAB = getBlockType("purpur_slab"); + + BlockType.Typed PURPUR_STAIRS = getBlockType("purpur_stairs"); + + BlockType.Typed QUARTZ_BLOCK = getBlockType("quartz_block"); + + BlockType.Typed QUARTZ_BRICKS = getBlockType("quartz_bricks"); + + BlockType.Typed QUARTZ_PILLAR = getBlockType("quartz_pillar"); + + BlockType.Typed QUARTZ_SLAB = getBlockType("quartz_slab"); + + BlockType.Typed QUARTZ_STAIRS = getBlockType("quartz_stairs"); + + BlockType.Typed RAIL = getBlockType("rail"); + + BlockType.Typed RAW_COPPER_BLOCK = getBlockType("raw_copper_block"); + + BlockType.Typed RAW_GOLD_BLOCK = getBlockType("raw_gold_block"); + + BlockType.Typed RAW_IRON_BLOCK = getBlockType("raw_iron_block"); + + BlockType.Typed RED_BANNER = getBlockType("red_banner"); + + BlockType.Typed RED_BED = getBlockType("red_bed"); + + BlockType.Typed RED_CANDLE = getBlockType("red_candle"); + + BlockType.Typed RED_CANDLE_CAKE = getBlockType("red_candle_cake"); + + BlockType.Typed RED_CARPET = getBlockType("red_carpet"); + + BlockType.Typed RED_CONCRETE = getBlockType("red_concrete"); + + BlockType.Typed RED_CONCRETE_POWDER = getBlockType("red_concrete_powder"); + + BlockType.Typed RED_GLAZED_TERRACOTTA = getBlockType("red_glazed_terracotta"); + + BlockType.Typed RED_MUSHROOM = getBlockType("red_mushroom"); + + BlockType.Typed RED_MUSHROOM_BLOCK = getBlockType("red_mushroom_block"); + + BlockType.Typed RED_NETHER_BRICK_SLAB = getBlockType("red_nether_brick_slab"); + + BlockType.Typed RED_NETHER_BRICK_STAIRS = getBlockType("red_nether_brick_stairs"); + + BlockType.Typed RED_NETHER_BRICK_WALL = getBlockType("red_nether_brick_wall"); + + BlockType.Typed RED_NETHER_BRICKS = getBlockType("red_nether_bricks"); + + BlockType.Typed RED_SAND = getBlockType("red_sand"); + + BlockType.Typed RED_SANDSTONE = getBlockType("red_sandstone"); + + BlockType.Typed RED_SANDSTONE_SLAB = getBlockType("red_sandstone_slab"); + + BlockType.Typed RED_SANDSTONE_STAIRS = getBlockType("red_sandstone_stairs"); + + BlockType.Typed RED_SANDSTONE_WALL = getBlockType("red_sandstone_wall"); + + BlockType.Typed RED_SHULKER_BOX = getBlockType("red_shulker_box"); + + BlockType.Typed RED_STAINED_GLASS = getBlockType("red_stained_glass"); + + BlockType.Typed RED_STAINED_GLASS_PANE = getBlockType("red_stained_glass_pane"); + + BlockType.Typed RED_TERRACOTTA = getBlockType("red_terracotta"); + + BlockType.Typed RED_TULIP = getBlockType("red_tulip"); + + BlockType.Typed RED_WALL_BANNER = getBlockType("red_wall_banner"); + + BlockType.Typed RED_WOOL = getBlockType("red_wool"); + + BlockType.Typed REDSTONE_BLOCK = getBlockType("redstone_block"); + + BlockType.Typed REDSTONE_LAMP = getBlockType("redstone_lamp"); + + BlockType.Typed REDSTONE_ORE = getBlockType("redstone_ore"); + + BlockType.Typed REDSTONE_TORCH = getBlockType("redstone_torch"); + + BlockType.Typed REDSTONE_WALL_TORCH = getBlockType("redstone_wall_torch"); + + BlockType.Typed REDSTONE_WIRE = getBlockType("redstone_wire"); + + BlockType.Typed REINFORCED_DEEPSLATE = getBlockType("reinforced_deepslate"); + + BlockType.Typed REPEATER = getBlockType("repeater"); + + BlockType.Typed REPEATING_COMMAND_BLOCK = getBlockType("repeating_command_block"); + + BlockType.Typed RESIN_BLOCK = getBlockType("resin_block"); + + BlockType.Typed RESIN_BRICK_SLAB = getBlockType("resin_brick_slab"); + + BlockType.Typed RESIN_BRICK_STAIRS = getBlockType("resin_brick_stairs"); + + BlockType.Typed RESIN_BRICK_WALL = getBlockType("resin_brick_wall"); + + BlockType.Typed RESIN_BRICKS = getBlockType("resin_bricks"); + + BlockType.Typed RESIN_CLUMP = getBlockType("resin_clump"); + + BlockType.Typed RESPAWN_ANCHOR = getBlockType("respawn_anchor"); + + BlockType.Typed ROOTED_DIRT = getBlockType("rooted_dirt"); + + BlockType.Typed ROSE_BUSH = getBlockType("rose_bush"); + + BlockType.Typed SAND = getBlockType("sand"); + + BlockType.Typed SANDSTONE = getBlockType("sandstone"); + + BlockType.Typed SANDSTONE_SLAB = getBlockType("sandstone_slab"); + + BlockType.Typed SANDSTONE_STAIRS = getBlockType("sandstone_stairs"); + + BlockType.Typed SANDSTONE_WALL = getBlockType("sandstone_wall"); + + BlockType.Typed SCAFFOLDING = getBlockType("scaffolding"); + + BlockType.Typed SCULK = getBlockType("sculk"); + + BlockType.Typed SCULK_CATALYST = getBlockType("sculk_catalyst"); + + BlockType.Typed SCULK_SENSOR = getBlockType("sculk_sensor"); + + BlockType.Typed SCULK_SHRIEKER = getBlockType("sculk_shrieker"); + + BlockType.Typed SCULK_VEIN = getBlockType("sculk_vein"); + + BlockType.Typed SEA_LANTERN = getBlockType("sea_lantern"); + + BlockType.Typed SEA_PICKLE = getBlockType("sea_pickle"); + + BlockType.Typed SEAGRASS = getBlockType("seagrass"); + + BlockType.Typed SHORT_GRASS = getBlockType("short_grass"); + + BlockType.Typed SHROOMLIGHT = getBlockType("shroomlight"); + + BlockType.Typed SHULKER_BOX = getBlockType("shulker_box"); + + BlockType.Typed SKELETON_SKULL = getBlockType("skeleton_skull"); + + BlockType.Typed SKELETON_WALL_SKULL = getBlockType("skeleton_wall_skull"); + + BlockType.Typed SLIME_BLOCK = getBlockType("slime_block"); + + BlockType.Typed SMALL_AMETHYST_BUD = getBlockType("small_amethyst_bud"); + + BlockType.Typed SMALL_DRIPLEAF = getBlockType("small_dripleaf"); + + BlockType.Typed SMITHING_TABLE = getBlockType("smithing_table"); + + BlockType.Typed SMOKER = getBlockType("smoker"); + + BlockType.Typed SMOOTH_BASALT = getBlockType("smooth_basalt"); + + BlockType.Typed SMOOTH_QUARTZ = getBlockType("smooth_quartz"); + + BlockType.Typed SMOOTH_QUARTZ_SLAB = getBlockType("smooth_quartz_slab"); + + BlockType.Typed SMOOTH_QUARTZ_STAIRS = getBlockType("smooth_quartz_stairs"); + + BlockType.Typed SMOOTH_RED_SANDSTONE = getBlockType("smooth_red_sandstone"); + + BlockType.Typed SMOOTH_RED_SANDSTONE_SLAB = getBlockType("smooth_red_sandstone_slab"); + + BlockType.Typed SMOOTH_RED_SANDSTONE_STAIRS = getBlockType("smooth_red_sandstone_stairs"); + + BlockType.Typed SMOOTH_SANDSTONE = getBlockType("smooth_sandstone"); + + BlockType.Typed SMOOTH_SANDSTONE_SLAB = getBlockType("smooth_sandstone_slab"); + + BlockType.Typed SMOOTH_SANDSTONE_STAIRS = getBlockType("smooth_sandstone_stairs"); + + BlockType.Typed SMOOTH_STONE = getBlockType("smooth_stone"); + + BlockType.Typed SMOOTH_STONE_SLAB = getBlockType("smooth_stone_slab"); + + BlockType.Typed SNIFFER_EGG = getBlockType("sniffer_egg"); + + BlockType.Typed SNOW = getBlockType("snow"); + + BlockType.Typed SNOW_BLOCK = getBlockType("snow_block"); + + BlockType.Typed SOUL_CAMPFIRE = getBlockType("soul_campfire"); + + BlockType.Typed SOUL_FIRE = getBlockType("soul_fire"); + + BlockType.Typed SOUL_LANTERN = getBlockType("soul_lantern"); + + BlockType.Typed SOUL_SAND = getBlockType("soul_sand"); + + BlockType.Typed SOUL_SOIL = getBlockType("soul_soil"); + + BlockType.Typed SOUL_TORCH = getBlockType("soul_torch"); + + BlockType.Typed SOUL_WALL_TORCH = getBlockType("soul_wall_torch"); + + BlockType.Typed SPAWNER = getBlockType("spawner"); + + BlockType.Typed SPONGE = getBlockType("sponge"); + + BlockType.Typed SPORE_BLOSSOM = getBlockType("spore_blossom"); + + BlockType.Typed SPRUCE_BUTTON = getBlockType("spruce_button"); + + BlockType.Typed SPRUCE_DOOR = getBlockType("spruce_door"); + + BlockType.Typed SPRUCE_FENCE = getBlockType("spruce_fence"); + + BlockType.Typed SPRUCE_FENCE_GATE = getBlockType("spruce_fence_gate"); + + BlockType.Typed SPRUCE_HANGING_SIGN = getBlockType("spruce_hanging_sign"); + + BlockType.Typed SPRUCE_LEAVES = getBlockType("spruce_leaves"); + + BlockType.Typed SPRUCE_LOG = getBlockType("spruce_log"); + + BlockType.Typed SPRUCE_PLANKS = getBlockType("spruce_planks"); + + BlockType.Typed SPRUCE_PRESSURE_PLATE = getBlockType("spruce_pressure_plate"); + + BlockType.Typed SPRUCE_SAPLING = getBlockType("spruce_sapling"); + + BlockType.Typed SPRUCE_SIGN = getBlockType("spruce_sign"); + + BlockType.Typed SPRUCE_SLAB = getBlockType("spruce_slab"); + + BlockType.Typed SPRUCE_STAIRS = getBlockType("spruce_stairs"); + + BlockType.Typed SPRUCE_TRAPDOOR = getBlockType("spruce_trapdoor"); + + BlockType.Typed SPRUCE_WALL_HANGING_SIGN = getBlockType("spruce_wall_hanging_sign"); + + BlockType.Typed SPRUCE_WALL_SIGN = getBlockType("spruce_wall_sign"); + + BlockType.Typed SPRUCE_WOOD = getBlockType("spruce_wood"); + + BlockType.Typed STICKY_PISTON = getBlockType("sticky_piston"); + + BlockType.Typed STONE = getBlockType("stone"); + + BlockType.Typed STONE_BRICK_SLAB = getBlockType("stone_brick_slab"); + + BlockType.Typed STONE_BRICK_STAIRS = getBlockType("stone_brick_stairs"); + + BlockType.Typed STONE_BRICK_WALL = getBlockType("stone_brick_wall"); + + BlockType.Typed STONE_BRICKS = getBlockType("stone_bricks"); + + BlockType.Typed STONE_BUTTON = getBlockType("stone_button"); + + BlockType.Typed STONE_PRESSURE_PLATE = getBlockType("stone_pressure_plate"); + + BlockType.Typed STONE_SLAB = getBlockType("stone_slab"); + + BlockType.Typed STONE_STAIRS = getBlockType("stone_stairs"); + + BlockType.Typed STONECUTTER = getBlockType("stonecutter"); + + BlockType.Typed STRIPPED_ACACIA_LOG = getBlockType("stripped_acacia_log"); + + BlockType.Typed STRIPPED_ACACIA_WOOD = getBlockType("stripped_acacia_wood"); + + BlockType.Typed STRIPPED_BAMBOO_BLOCK = getBlockType("stripped_bamboo_block"); + + BlockType.Typed STRIPPED_BIRCH_LOG = getBlockType("stripped_birch_log"); + + BlockType.Typed STRIPPED_BIRCH_WOOD = getBlockType("stripped_birch_wood"); + + BlockType.Typed STRIPPED_CHERRY_LOG = getBlockType("stripped_cherry_log"); + + BlockType.Typed STRIPPED_CHERRY_WOOD = getBlockType("stripped_cherry_wood"); + + BlockType.Typed STRIPPED_CRIMSON_HYPHAE = getBlockType("stripped_crimson_hyphae"); + + BlockType.Typed STRIPPED_CRIMSON_STEM = getBlockType("stripped_crimson_stem"); + + BlockType.Typed STRIPPED_DARK_OAK_LOG = getBlockType("stripped_dark_oak_log"); + + BlockType.Typed STRIPPED_DARK_OAK_WOOD = getBlockType("stripped_dark_oak_wood"); + + BlockType.Typed STRIPPED_JUNGLE_LOG = getBlockType("stripped_jungle_log"); + + BlockType.Typed STRIPPED_JUNGLE_WOOD = getBlockType("stripped_jungle_wood"); + + BlockType.Typed STRIPPED_MANGROVE_LOG = getBlockType("stripped_mangrove_log"); + + BlockType.Typed STRIPPED_MANGROVE_WOOD = getBlockType("stripped_mangrove_wood"); + + BlockType.Typed STRIPPED_OAK_LOG = getBlockType("stripped_oak_log"); + + BlockType.Typed STRIPPED_OAK_WOOD = getBlockType("stripped_oak_wood"); + + BlockType.Typed STRIPPED_PALE_OAK_LOG = getBlockType("stripped_pale_oak_log"); + + BlockType.Typed STRIPPED_PALE_OAK_WOOD = getBlockType("stripped_pale_oak_wood"); + + BlockType.Typed STRIPPED_SPRUCE_LOG = getBlockType("stripped_spruce_log"); + + BlockType.Typed STRIPPED_SPRUCE_WOOD = getBlockType("stripped_spruce_wood"); + + BlockType.Typed STRIPPED_WARPED_HYPHAE = getBlockType("stripped_warped_hyphae"); + + BlockType.Typed STRIPPED_WARPED_STEM = getBlockType("stripped_warped_stem"); + + BlockType.Typed STRUCTURE_BLOCK = getBlockType("structure_block"); + + BlockType.Typed STRUCTURE_VOID = getBlockType("structure_void"); + + BlockType.Typed SUGAR_CANE = getBlockType("sugar_cane"); + + BlockType.Typed SUNFLOWER = getBlockType("sunflower"); + + BlockType.Typed SUSPICIOUS_GRAVEL = getBlockType("suspicious_gravel"); + + BlockType.Typed SUSPICIOUS_SAND = getBlockType("suspicious_sand"); + + BlockType.Typed SWEET_BERRY_BUSH = getBlockType("sweet_berry_bush"); + + BlockType.Typed TALL_GRASS = getBlockType("tall_grass"); + + BlockType.Typed TALL_SEAGRASS = getBlockType("tall_seagrass"); + + BlockType.Typed TARGET = getBlockType("target"); + + BlockType.Typed TERRACOTTA = getBlockType("terracotta"); + + BlockType.Typed TINTED_GLASS = getBlockType("tinted_glass"); + + BlockType.Typed TNT = getBlockType("tnt"); + + BlockType.Typed TORCH = getBlockType("torch"); + + BlockType.Typed TORCHFLOWER = getBlockType("torchflower"); + + BlockType.Typed TORCHFLOWER_CROP = getBlockType("torchflower_crop"); + + BlockType.Typed TRAPPED_CHEST = getBlockType("trapped_chest"); + + BlockType.Typed TRIAL_SPAWNER = getBlockType("trial_spawner"); + + BlockType.Typed TRIPWIRE = getBlockType("tripwire"); + + BlockType.Typed TRIPWIRE_HOOK = getBlockType("tripwire_hook"); + + BlockType.Typed TUBE_CORAL = getBlockType("tube_coral"); + + BlockType.Typed TUBE_CORAL_BLOCK = getBlockType("tube_coral_block"); + + BlockType.Typed TUBE_CORAL_FAN = getBlockType("tube_coral_fan"); + + BlockType.Typed TUBE_CORAL_WALL_FAN = getBlockType("tube_coral_wall_fan"); + + BlockType.Typed TUFF = getBlockType("tuff"); + + BlockType.Typed TUFF_BRICK_SLAB = getBlockType("tuff_brick_slab"); + + BlockType.Typed TUFF_BRICK_STAIRS = getBlockType("tuff_brick_stairs"); + + BlockType.Typed TUFF_BRICK_WALL = getBlockType("tuff_brick_wall"); + + BlockType.Typed TUFF_BRICKS = getBlockType("tuff_bricks"); + + BlockType.Typed TUFF_SLAB = getBlockType("tuff_slab"); + + BlockType.Typed TUFF_STAIRS = getBlockType("tuff_stairs"); + + BlockType.Typed TUFF_WALL = getBlockType("tuff_wall"); + + BlockType.Typed TURTLE_EGG = getBlockType("turtle_egg"); + + BlockType.Typed TWISTING_VINES = getBlockType("twisting_vines"); + + BlockType.Typed TWISTING_VINES_PLANT = getBlockType("twisting_vines_plant"); + + BlockType.Typed VAULT = getBlockType("vault"); + + BlockType.Typed VERDANT_FROGLIGHT = getBlockType("verdant_froglight"); + + BlockType.Typed VINE = getBlockType("vine"); + + BlockType.Typed VOID_AIR = getBlockType("void_air"); + + BlockType.Typed WALL_TORCH = getBlockType("wall_torch"); + + BlockType.Typed WARPED_BUTTON = getBlockType("warped_button"); + + BlockType.Typed WARPED_DOOR = getBlockType("warped_door"); + + BlockType.Typed WARPED_FENCE = getBlockType("warped_fence"); + + BlockType.Typed WARPED_FENCE_GATE = getBlockType("warped_fence_gate"); + + BlockType.Typed WARPED_FUNGUS = getBlockType("warped_fungus"); + + BlockType.Typed WARPED_HANGING_SIGN = getBlockType("warped_hanging_sign"); + + BlockType.Typed WARPED_HYPHAE = getBlockType("warped_hyphae"); + + BlockType.Typed WARPED_NYLIUM = getBlockType("warped_nylium"); + + BlockType.Typed WARPED_PLANKS = getBlockType("warped_planks"); + + BlockType.Typed WARPED_PRESSURE_PLATE = getBlockType("warped_pressure_plate"); + + BlockType.Typed WARPED_ROOTS = getBlockType("warped_roots"); + + BlockType.Typed WARPED_SIGN = getBlockType("warped_sign"); + + BlockType.Typed WARPED_SLAB = getBlockType("warped_slab"); + + BlockType.Typed WARPED_STAIRS = getBlockType("warped_stairs"); + + BlockType.Typed WARPED_STEM = getBlockType("warped_stem"); + + BlockType.Typed WARPED_TRAPDOOR = getBlockType("warped_trapdoor"); + + BlockType.Typed WARPED_WALL_HANGING_SIGN = getBlockType("warped_wall_hanging_sign"); + + BlockType.Typed WARPED_WALL_SIGN = getBlockType("warped_wall_sign"); + + BlockType.Typed WARPED_WART_BLOCK = getBlockType("warped_wart_block"); + + BlockType.Typed WATER = getBlockType("water"); + + BlockType.Typed WATER_CAULDRON = getBlockType("water_cauldron"); + + BlockType.Typed WAXED_CHISELED_COPPER = getBlockType("waxed_chiseled_copper"); + + BlockType.Typed WAXED_COPPER_BLOCK = getBlockType("waxed_copper_block"); + + BlockType.Typed WAXED_COPPER_BULB = getBlockType("waxed_copper_bulb"); + + BlockType.Typed WAXED_COPPER_DOOR = getBlockType("waxed_copper_door"); + + BlockType.Typed WAXED_COPPER_GRATE = getBlockType("waxed_copper_grate"); + + BlockType.Typed WAXED_COPPER_TRAPDOOR = getBlockType("waxed_copper_trapdoor"); + + BlockType.Typed WAXED_CUT_COPPER = getBlockType("waxed_cut_copper"); + + BlockType.Typed WAXED_CUT_COPPER_SLAB = getBlockType("waxed_cut_copper_slab"); + + BlockType.Typed WAXED_CUT_COPPER_STAIRS = getBlockType("waxed_cut_copper_stairs"); + + BlockType.Typed WAXED_EXPOSED_CHISELED_COPPER = getBlockType("waxed_exposed_chiseled_copper"); + + BlockType.Typed WAXED_EXPOSED_COPPER = getBlockType("waxed_exposed_copper"); + + BlockType.Typed WAXED_EXPOSED_COPPER_BULB = getBlockType("waxed_exposed_copper_bulb"); + + BlockType.Typed WAXED_EXPOSED_COPPER_DOOR = getBlockType("waxed_exposed_copper_door"); + + BlockType.Typed WAXED_EXPOSED_COPPER_GRATE = getBlockType("waxed_exposed_copper_grate"); + + BlockType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getBlockType("waxed_exposed_copper_trapdoor"); + + BlockType.Typed WAXED_EXPOSED_CUT_COPPER = getBlockType("waxed_exposed_cut_copper"); + + BlockType.Typed WAXED_EXPOSED_CUT_COPPER_SLAB = getBlockType("waxed_exposed_cut_copper_slab"); + + BlockType.Typed WAXED_EXPOSED_CUT_COPPER_STAIRS = getBlockType("waxed_exposed_cut_copper_stairs"); + + BlockType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getBlockType("waxed_oxidized_chiseled_copper"); + + BlockType.Typed WAXED_OXIDIZED_COPPER = getBlockType("waxed_oxidized_copper"); + + BlockType.Typed WAXED_OXIDIZED_COPPER_BULB = getBlockType("waxed_oxidized_copper_bulb"); + + BlockType.Typed WAXED_OXIDIZED_COPPER_DOOR = getBlockType("waxed_oxidized_copper_door"); + + BlockType.Typed WAXED_OXIDIZED_COPPER_GRATE = getBlockType("waxed_oxidized_copper_grate"); + + BlockType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getBlockType("waxed_oxidized_copper_trapdoor"); + + BlockType.Typed WAXED_OXIDIZED_CUT_COPPER = getBlockType("waxed_oxidized_cut_copper"); + + BlockType.Typed WAXED_OXIDIZED_CUT_COPPER_SLAB = getBlockType("waxed_oxidized_cut_copper_slab"); + + BlockType.Typed WAXED_OXIDIZED_CUT_COPPER_STAIRS = getBlockType("waxed_oxidized_cut_copper_stairs"); + + BlockType.Typed WAXED_WEATHERED_CHISELED_COPPER = getBlockType("waxed_weathered_chiseled_copper"); + + BlockType.Typed WAXED_WEATHERED_COPPER = getBlockType("waxed_weathered_copper"); + + BlockType.Typed WAXED_WEATHERED_COPPER_BULB = getBlockType("waxed_weathered_copper_bulb"); + + BlockType.Typed WAXED_WEATHERED_COPPER_DOOR = getBlockType("waxed_weathered_copper_door"); + + BlockType.Typed WAXED_WEATHERED_COPPER_GRATE = getBlockType("waxed_weathered_copper_grate"); + + BlockType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getBlockType("waxed_weathered_copper_trapdoor"); + + BlockType.Typed WAXED_WEATHERED_CUT_COPPER = getBlockType("waxed_weathered_cut_copper"); + + BlockType.Typed WAXED_WEATHERED_CUT_COPPER_SLAB = getBlockType("waxed_weathered_cut_copper_slab"); + + BlockType.Typed WAXED_WEATHERED_CUT_COPPER_STAIRS = getBlockType("waxed_weathered_cut_copper_stairs"); + + BlockType.Typed WEATHERED_CHISELED_COPPER = getBlockType("weathered_chiseled_copper"); + + BlockType.Typed WEATHERED_COPPER = getBlockType("weathered_copper"); + + BlockType.Typed WEATHERED_COPPER_BULB = getBlockType("weathered_copper_bulb"); + + BlockType.Typed WEATHERED_COPPER_DOOR = getBlockType("weathered_copper_door"); + + BlockType.Typed WEATHERED_COPPER_GRATE = getBlockType("weathered_copper_grate"); + + BlockType.Typed WEATHERED_COPPER_TRAPDOOR = getBlockType("weathered_copper_trapdoor"); + + BlockType.Typed WEATHERED_CUT_COPPER = getBlockType("weathered_cut_copper"); + + BlockType.Typed WEATHERED_CUT_COPPER_SLAB = getBlockType("weathered_cut_copper_slab"); + + BlockType.Typed WEATHERED_CUT_COPPER_STAIRS = getBlockType("weathered_cut_copper_stairs"); + + BlockType.Typed WEEPING_VINES = getBlockType("weeping_vines"); + + BlockType.Typed WEEPING_VINES_PLANT = getBlockType("weeping_vines_plant"); + + BlockType.Typed WET_SPONGE = getBlockType("wet_sponge"); + + BlockType.Typed WHEAT = getBlockType("wheat"); + + BlockType.Typed WHITE_BANNER = getBlockType("white_banner"); + + BlockType.Typed WHITE_BED = getBlockType("white_bed"); + + BlockType.Typed WHITE_CANDLE = getBlockType("white_candle"); + + BlockType.Typed WHITE_CANDLE_CAKE = getBlockType("white_candle_cake"); + + BlockType.Typed WHITE_CARPET = getBlockType("white_carpet"); + + BlockType.Typed WHITE_CONCRETE = getBlockType("white_concrete"); + + BlockType.Typed WHITE_CONCRETE_POWDER = getBlockType("white_concrete_powder"); + + BlockType.Typed WHITE_GLAZED_TERRACOTTA = getBlockType("white_glazed_terracotta"); + + BlockType.Typed WHITE_SHULKER_BOX = getBlockType("white_shulker_box"); + + BlockType.Typed WHITE_STAINED_GLASS = getBlockType("white_stained_glass"); + + BlockType.Typed WHITE_STAINED_GLASS_PANE = getBlockType("white_stained_glass_pane"); + + BlockType.Typed WHITE_TERRACOTTA = getBlockType("white_terracotta"); + + BlockType.Typed WHITE_TULIP = getBlockType("white_tulip"); + + BlockType.Typed WHITE_WALL_BANNER = getBlockType("white_wall_banner"); + + BlockType.Typed WHITE_WOOL = getBlockType("white_wool"); + + BlockType.Typed WITHER_ROSE = getBlockType("wither_rose"); + + BlockType.Typed WITHER_SKELETON_SKULL = getBlockType("wither_skeleton_skull"); + + BlockType.Typed WITHER_SKELETON_WALL_SKULL = getBlockType("wither_skeleton_wall_skull"); + + BlockType.Typed YELLOW_BANNER = getBlockType("yellow_banner"); + + BlockType.Typed YELLOW_BED = getBlockType("yellow_bed"); + + BlockType.Typed YELLOW_CANDLE = getBlockType("yellow_candle"); + + BlockType.Typed YELLOW_CANDLE_CAKE = getBlockType("yellow_candle_cake"); + + BlockType.Typed YELLOW_CARPET = getBlockType("yellow_carpet"); + + BlockType.Typed YELLOW_CONCRETE = getBlockType("yellow_concrete"); + + BlockType.Typed YELLOW_CONCRETE_POWDER = getBlockType("yellow_concrete_powder"); + + BlockType.Typed YELLOW_GLAZED_TERRACOTTA = getBlockType("yellow_glazed_terracotta"); + + BlockType.Typed YELLOW_SHULKER_BOX = getBlockType("yellow_shulker_box"); + + BlockType.Typed YELLOW_STAINED_GLASS = getBlockType("yellow_stained_glass"); + + BlockType.Typed YELLOW_STAINED_GLASS_PANE = getBlockType("yellow_stained_glass_pane"); + + BlockType.Typed YELLOW_TERRACOTTA = getBlockType("yellow_terracotta"); + + BlockType.Typed YELLOW_WALL_BANNER = getBlockType("yellow_wall_banner"); + + BlockType.Typed YELLOW_WOOL = getBlockType("yellow_wool"); + + BlockType.Typed ZOMBIE_HEAD = getBlockType("zombie_head"); + + BlockType.Typed ZOMBIE_WALL_HEAD = getBlockType("zombie_wall_head"); + // End generate - BlockType // @NotNull diff --git a/paper-api/src/main/java/org/bukkit/block/Orientation.java b/paper-api/src/main/java/org/bukkit/block/Orientation.java new file mode 100644 index 0000000000..b434f53921 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/block/Orientation.java @@ -0,0 +1,20 @@ +package org.bukkit.block; + +/** + * Represents the face and the direction of a block + */ +public enum Orientation { + + DOWN_EAST, + DOWN_NORTH, + DOWN_SOUTH, + DOWN_WEST, + UP_EAST, + UP_NORTH, + UP_SOUTH, + UP_WEST, + WEST_UP, + EAST_UP, + NORTH_UP, + SOUTH_UP +} diff --git a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java index 444f128e8a..25defa22ae 100644 --- a/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java +++ b/paper-api/src/main/java/org/bukkit/block/banner/PatternType.java @@ -14,50 +14,96 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface PatternType extends OldEnum, Keyed { + + // Start generate - PatternType + // @GeneratedFrom 1.21.4 PatternType BASE = getType("base"); - PatternType SQUARE_BOTTOM_LEFT = getType("square_bottom_left"); - PatternType SQUARE_BOTTOM_RIGHT = getType("square_bottom_right"); - PatternType SQUARE_TOP_LEFT = getType("square_top_left"); - PatternType SQUARE_TOP_RIGHT = getType("square_top_right"); - PatternType STRIPE_BOTTOM = getType("stripe_bottom"); - PatternType STRIPE_TOP = getType("stripe_top"); - PatternType STRIPE_LEFT = getType("stripe_left"); - PatternType STRIPE_RIGHT = getType("stripe_right"); - PatternType STRIPE_CENTER = getType("stripe_center"); - PatternType STRIPE_MIDDLE = getType("stripe_middle"); - PatternType STRIPE_DOWNRIGHT = getType("stripe_downright"); - PatternType STRIPE_DOWNLEFT = getType("stripe_downleft"); - PatternType SMALL_STRIPES = getType("small_stripes"); - PatternType CROSS = getType("cross"); - PatternType STRAIGHT_CROSS = getType("straight_cross"); - PatternType TRIANGLE_BOTTOM = getType("triangle_bottom"); - PatternType TRIANGLE_TOP = getType("triangle_top"); - PatternType TRIANGLES_BOTTOM = getType("triangles_bottom"); - PatternType TRIANGLES_TOP = getType("triangles_top"); - PatternType DIAGONAL_LEFT = getType("diagonal_left"); - PatternType DIAGONAL_UP_RIGHT = getType("diagonal_up_right"); - PatternType DIAGONAL_UP_LEFT = getType("diagonal_up_left"); - PatternType DIAGONAL_RIGHT = getType("diagonal_right"); - PatternType CIRCLE = getType("circle"); - PatternType RHOMBUS = getType("rhombus"); - PatternType HALF_VERTICAL = getType("half_vertical"); - PatternType HALF_HORIZONTAL = getType("half_horizontal"); - PatternType HALF_VERTICAL_RIGHT = getType("half_vertical_right"); - PatternType HALF_HORIZONTAL_BOTTOM = getType("half_horizontal_bottom"); + PatternType BORDER = getType("border"); - PatternType CURLY_BORDER = getType("curly_border"); - PatternType CREEPER = getType("creeper"); - PatternType GRADIENT = getType("gradient"); - PatternType GRADIENT_UP = getType("gradient_up"); + PatternType BRICKS = getType("bricks"); - PatternType SKULL = getType("skull"); - PatternType FLOWER = getType("flower"); - PatternType MOJANG = getType("mojang"); - PatternType GLOBE = getType("globe"); - PatternType PIGLIN = getType("piglin"); + + PatternType CIRCLE = getType("circle"); + + PatternType CREEPER = getType("creeper"); + + PatternType CROSS = getType("cross"); + + PatternType CURLY_BORDER = getType("curly_border"); + + PatternType DIAGONAL_LEFT = getType("diagonal_left"); + + PatternType DIAGONAL_RIGHT = getType("diagonal_right"); + + PatternType DIAGONAL_UP_LEFT = getType("diagonal_up_left"); + + PatternType DIAGONAL_UP_RIGHT = getType("diagonal_up_right"); + PatternType FLOW = getType("flow"); + + PatternType FLOWER = getType("flower"); + + PatternType GLOBE = getType("globe"); + + PatternType GRADIENT = getType("gradient"); + + PatternType GRADIENT_UP = getType("gradient_up"); + PatternType GUSTER = getType("guster"); + PatternType HALF_HORIZONTAL = getType("half_horizontal"); + + PatternType HALF_HORIZONTAL_BOTTOM = getType("half_horizontal_bottom"); + + PatternType HALF_VERTICAL = getType("half_vertical"); + + PatternType HALF_VERTICAL_RIGHT = getType("half_vertical_right"); + + PatternType MOJANG = getType("mojang"); + + PatternType PIGLIN = getType("piglin"); + + PatternType RHOMBUS = getType("rhombus"); + + PatternType SKULL = getType("skull"); + + PatternType SMALL_STRIPES = getType("small_stripes"); + + PatternType SQUARE_BOTTOM_LEFT = getType("square_bottom_left"); + + PatternType SQUARE_BOTTOM_RIGHT = getType("square_bottom_right"); + + PatternType SQUARE_TOP_LEFT = getType("square_top_left"); + + PatternType SQUARE_TOP_RIGHT = getType("square_top_right"); + + PatternType STRAIGHT_CROSS = getType("straight_cross"); + + PatternType STRIPE_BOTTOM = getType("stripe_bottom"); + + PatternType STRIPE_CENTER = getType("stripe_center"); + + PatternType STRIPE_DOWNLEFT = getType("stripe_downleft"); + + PatternType STRIPE_DOWNRIGHT = getType("stripe_downright"); + + PatternType STRIPE_LEFT = getType("stripe_left"); + + PatternType STRIPE_MIDDLE = getType("stripe_middle"); + + PatternType STRIPE_RIGHT = getType("stripe_right"); + + PatternType STRIPE_TOP = getType("stripe_top"); + + PatternType TRIANGLE_BOTTOM = getType("triangle_bottom"); + + PatternType TRIANGLE_TOP = getType("triangle_top"); + + PatternType TRIANGLES_BOTTOM = getType("triangles_bottom"); + + PatternType TRIANGLES_TOP = getType("triangles_top"); + // End generate - PatternType + // Paper start - deprecate getKey /** * @deprecated use {@link Registry#getKey(Keyed)}, {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)}, diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java index a7f75a98e0..274bc2b1ce 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/CaveVinesPlant.java @@ -11,8 +11,19 @@ public interface CaveVinesPlant extends BlockData { * Gets the value of the 'berries' property. * * @return the 'berries' value + * @deprecated bad name, use {@link #hasBerries()} */ - boolean isBerries(); + @Deprecated + default boolean isBerries() { + return this.hasBerries(); + } + + /** + * Gets the value of the 'berries' property. + * + * @return the 'berries' value + */ + boolean hasBerries(); /** * Sets the value of the 'berries' property. diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java index c15fdf9e82..ada92c3eef 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Crafter.java @@ -48,18 +48,23 @@ public interface Crafter extends BlockData { * @return the 'orientation' value */ @NotNull - Orientation getOrientation(); + org.bukkit.block.Orientation getOrientation(); /** * Sets the value of the 'orientation' property. * * @param orientation the new 'orientation' value */ - void setOrientation(@NotNull Orientation orientation); + void setOrientation(@NotNull org.bukkit.block.Orientation orientation); /** * The directions the Crafter can be oriented. + * + * @deprecated this property is not specific to the Crafter, use + * {@link org.bukkit.block.Orientation} instead. All references + * to this enum will be redirected to that enum at runtime. */ + @Deprecated public enum Orientation { DOWN_EAST, diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java index b3d290dbfd..7a213b916c 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/DecoratedPot.java @@ -4,17 +4,18 @@ import org.bukkit.block.data.Directional; import org.bukkit.block.data.Waterlogged; public interface DecoratedPot extends Directional, Waterlogged { - // Paper start - add missing block data api - /** - * @return whether the pot is cracked - */ - public boolean isCracked(); /** - * Set whether the pot is cracked. + * Gets the value of the 'cracked' property. * - * @param cracked whether the pot is cracked + * @return the 'cracked' value */ - public void setCracked(boolean cracked); - // Paper end - add missing block data api + boolean isCracked(); + + /** + * Sets the value of the 'cracked' property. + * + * @param cracked the new 'cracked' value + */ + void setCracked(boolean cracked); } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Jigsaw.java b/paper-api/src/main/java/org/bukkit/block/data/type/Jigsaw.java index c70c755cdb..65a137a90b 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Jigsaw.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Jigsaw.java @@ -14,18 +14,23 @@ public interface Jigsaw extends BlockData { * @return the 'orientation' value */ @NotNull - Orientation getOrientation(); + org.bukkit.block.Orientation getOrientation(); /** * Sets the value of the 'orientation' property. * * @param orientation the new 'orientation' value */ - void setOrientation(@NotNull Orientation orientation); + void setOrientation(@NotNull org.bukkit.block.Orientation orientation); /** * The directions the Jigsaw can be oriented. + * + * @deprecated this property is not specific to the Jigsaw, use + * {@link org.bukkit.block.Orientation} instead. All references + * to this enum will be redirected to that enum at runtime. */ + @Deprecated public enum Orientation { DOWN_EAST, diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Jukebox.java b/paper-api/src/main/java/org/bukkit/block/data/type/Jukebox.java index 5e37136207..4a59fa4fad 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Jukebox.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Jukebox.java @@ -14,4 +14,11 @@ public interface Jukebox extends BlockData { * @return the 'has_record' value */ boolean hasRecord(); + + /** + * Sets the value of the 'has_record' property. + * + * @param hasRecord the new 'has_record' value + */ + void setHasRecord(boolean hasRecord); } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Lectern.java b/paper-api/src/main/java/org/bukkit/block/data/type/Lectern.java index 11b4a173f9..db714a52f3 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Lectern.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Lectern.java @@ -15,4 +15,11 @@ public interface Lectern extends Directional, Powerable { * @return the 'has_book' value */ boolean hasBook(); + + /** + * Sets the value of the 'has_book' property. + * + * @param hasBook the new 'has_book' value + */ + void setHasBook(boolean hasBook); } diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java index dd8264faa6..f69e1e1819 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/MossyCarpet.java @@ -35,7 +35,7 @@ public interface MossyCarpet extends BlockData { * @return if face is enabled */ @NotNull - Height getHeight(@NotNull BlockFace face); + Wall.Height getHeight(@NotNull BlockFace face); /** * Set the height of the specified face. @@ -43,11 +43,16 @@ public interface MossyCarpet extends BlockData { * @param face to set * @param height the height */ - void setHeight(@NotNull BlockFace face, @NotNull Height height); + void setHeight(@NotNull BlockFace face, @NotNull Wall.Height height); /** * The different heights a face may have. + * + * @deprecated this property is not specific to the MossyCarpet, use + * {@link org.bukkit.block.data.type.Wall.Height} instead. All references + * to this enum will be redirected to that enum at runtime. */ + @Deprecated public enum Height { /** * Not present. diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java b/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java index 1af390e2ec..3e7f5f22b3 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/SculkSensor.java @@ -13,16 +13,39 @@ public interface SculkSensor extends AnaloguePowerable, Waterlogged { * Gets the value of the 'sculk_sensor_phase' property. * * @return the 'sculk_sensor_phase' value + * @deprecated bad name, use {@link #getSculkSensorPhase()} */ @NotNull - Phase getPhase(); + @Deprecated + default Phase getPhase() { + return this.getSculkSensorPhase(); + } + + /** + * Sets the value of the 'sculk_sensor_phase' property. + * + * @param phase the new 'sculk_sensor_phase' value + * @deprecated bad name, use {@link #setSculkSensorPhase(Phase)} + */ + @Deprecated + default void setPhase(@NotNull Phase phase) { + this.setSculkSensorPhase(phase); + } + + /** + * Gets the value of the 'sculk_sensor_phase' property. + * + * @return the 'sculk_sensor_phase' value + */ + @NotNull + Phase getSculkSensorPhase(); /** * Sets the value of the 'sculk_sensor_phase' property. * * @param phase the new 'sculk_sensor_phase' value */ - void setPhase(@NotNull Phase phase); + void setSculkSensorPhase(@NotNull Phase phase); /** * The Phase of the sensor. diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Switch.java b/paper-api/src/main/java/org/bukkit/block/data/type/Switch.java index 16ced762f4..793f8d4d17 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Switch.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Switch.java @@ -7,6 +7,11 @@ import org.jetbrains.annotations.NotNull; public interface Switch extends Directional, FaceAttachable, Powerable { + @NotNull + AttachedFace getAttachedFace(); + + void setAttachedFace(@NotNull AttachedFace face); + /** * Gets the value of the 'face' property. * @@ -15,7 +20,9 @@ public interface Switch extends Directional, FaceAttachable, Powerable { */ @NotNull @Deprecated(since = "1.15.2") - Face getFace(); + default Face getFace() { + return Face.valueOf(this.getAttachedFace().name()); + } /** * Sets the value of the 'face' property. @@ -24,7 +31,9 @@ public interface Switch extends Directional, FaceAttachable, Powerable { * @deprecated use {@link #setAttachedFace(AttachedFace)} */ @Deprecated(since = "1.15.2") - void setFace(@NotNull Face face); + default void setFace(@NotNull Face face) { + this.setAttachedFace(AttachedFace.valueOf(face.name())); + } /** * The face to which a switch type block is stuck. diff --git a/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java b/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java index 122f8c888b..b42934612e 100644 --- a/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java +++ b/paper-api/src/main/java/org/bukkit/block/data/type/Vault.java @@ -26,7 +26,9 @@ public interface Vault extends Directional { */ @Deprecated(since = "1.21.3", forRemoval = true) @NotNull - State getTrialSpawnerState(); + default State getTrialSpawnerState() { + return this.getVaultState(); + } /** * Sets the value of the 'vault_state' property. @@ -42,7 +44,9 @@ public interface Vault extends Directional { * @deprecated see {@link #setVaultState(State)} */ @Deprecated(since = "1.21.3", forRemoval = true) - void setTrialSpawnerState(@NotNull State state); + default void setTrialSpawnerState(@NotNull State state) { + this.setVaultState(state); + } /** * Gets the value of the 'ominous' property. diff --git a/paper-api/src/main/java/org/bukkit/damage/DamageType.java b/paper-api/src/main/java/org/bukkit/damage/DamageType.java index b74846c77d..609390947f 100644 --- a/paper-api/src/main/java/org/bukkit/damage/DamageType.java +++ b/paper-api/src/main/java/org/bukkit/damage/DamageType.java @@ -21,55 +21,106 @@ import org.jetbrains.annotations.NotNull; @ApiStatus.Experimental public interface DamageType extends Keyed, Translatable { - public static final DamageType IN_FIRE = getDamageType("in_fire"); - public static final DamageType CAMPFIRE = getDamageType("campfire"); - public static final DamageType LIGHTNING_BOLT = getDamageType("lightning_bolt"); - public static final DamageType ON_FIRE = getDamageType("on_fire"); - public static final DamageType LAVA = getDamageType("lava"); - public static final DamageType HOT_FLOOR = getDamageType("hot_floor"); - public static final DamageType IN_WALL = getDamageType("in_wall"); - public static final DamageType CRAMMING = getDamageType("cramming"); - public static final DamageType DROWN = getDamageType("drown"); - public static final DamageType STARVE = getDamageType("starve"); - public static final DamageType CACTUS = getDamageType("cactus"); - public static final DamageType FALL = getDamageType("fall"); - public static final DamageType ENDER_PEARL = getDamageType("ender_pearl"); - public static final DamageType FLY_INTO_WALL = getDamageType("fly_into_wall"); - public static final DamageType OUT_OF_WORLD = getDamageType("out_of_world"); - public static final DamageType GENERIC = getDamageType("generic"); - public static final DamageType MAGIC = getDamageType("magic"); - public static final DamageType WITHER = getDamageType("wither"); - public static final DamageType DRAGON_BREATH = getDamageType("dragon_breath"); - public static final DamageType DRY_OUT = getDamageType("dry_out"); - public static final DamageType SWEET_BERRY_BUSH = getDamageType("sweet_berry_bush"); - public static final DamageType FREEZE = getDamageType("freeze"); - public static final DamageType STALAGMITE = getDamageType("stalagmite"); - public static final DamageType FALLING_BLOCK = getDamageType("falling_block"); - public static final DamageType FALLING_ANVIL = getDamageType("falling_anvil"); - public static final DamageType FALLING_STALACTITE = getDamageType("falling_stalactite"); - public static final DamageType STING = getDamageType("sting"); - public static final DamageType MOB_ATTACK = getDamageType("mob_attack"); - public static final DamageType MOB_ATTACK_NO_AGGRO = getDamageType("mob_attack_no_aggro"); - public static final DamageType PLAYER_ATTACK = getDamageType("player_attack"); - public static final DamageType ARROW = getDamageType("arrow"); - public static final DamageType TRIDENT = getDamageType("trident"); - public static final DamageType MOB_PROJECTILE = getDamageType("mob_projectile"); - public static final DamageType SPIT = getDamageType("spit"); - public static final DamageType FIREWORKS = getDamageType("fireworks"); - public static final DamageType FIREBALL = getDamageType("fireball"); - public static final DamageType UNATTRIBUTED_FIREBALL = getDamageType("unattributed_fireball"); - public static final DamageType WITHER_SKULL = getDamageType("wither_skull"); - public static final DamageType THROWN = getDamageType("thrown"); - public static final DamageType INDIRECT_MAGIC = getDamageType("indirect_magic"); - public static final DamageType THORNS = getDamageType("thorns"); - public static final DamageType EXPLOSION = getDamageType("explosion"); - public static final DamageType PLAYER_EXPLOSION = getDamageType("player_explosion"); - public static final DamageType SONIC_BOOM = getDamageType("sonic_boom"); - public static final DamageType BAD_RESPAWN_POINT = getDamageType("bad_respawn_point"); - public static final DamageType OUTSIDE_BORDER = getDamageType("outside_border"); - public static final DamageType GENERIC_KILL = getDamageType("generic_kill"); - public static final DamageType WIND_CHARGE = getDamageType("wind_charge"); - public static final DamageType MACE_SMASH = getDamageType("mace_smash"); + // Start generate - DamageType + // @GeneratedFrom 1.21.4 + DamageType ARROW = getDamageType("arrow"); + + DamageType BAD_RESPAWN_POINT = getDamageType("bad_respawn_point"); + + DamageType CACTUS = getDamageType("cactus"); + + DamageType CAMPFIRE = getDamageType("campfire"); + + DamageType CRAMMING = getDamageType("cramming"); + + DamageType DRAGON_BREATH = getDamageType("dragon_breath"); + + DamageType DROWN = getDamageType("drown"); + + DamageType DRY_OUT = getDamageType("dry_out"); + + DamageType ENDER_PEARL = getDamageType("ender_pearl"); + + DamageType EXPLOSION = getDamageType("explosion"); + + DamageType FALL = getDamageType("fall"); + + DamageType FALLING_ANVIL = getDamageType("falling_anvil"); + + DamageType FALLING_BLOCK = getDamageType("falling_block"); + + DamageType FALLING_STALACTITE = getDamageType("falling_stalactite"); + + DamageType FIREBALL = getDamageType("fireball"); + + DamageType FIREWORKS = getDamageType("fireworks"); + + DamageType FLY_INTO_WALL = getDamageType("fly_into_wall"); + + DamageType FREEZE = getDamageType("freeze"); + + DamageType GENERIC = getDamageType("generic"); + + DamageType GENERIC_KILL = getDamageType("generic_kill"); + + DamageType HOT_FLOOR = getDamageType("hot_floor"); + + DamageType IN_FIRE = getDamageType("in_fire"); + + DamageType IN_WALL = getDamageType("in_wall"); + + DamageType INDIRECT_MAGIC = getDamageType("indirect_magic"); + + DamageType LAVA = getDamageType("lava"); + + DamageType LIGHTNING_BOLT = getDamageType("lightning_bolt"); + + DamageType MACE_SMASH = getDamageType("mace_smash"); + + DamageType MAGIC = getDamageType("magic"); + + DamageType MOB_ATTACK = getDamageType("mob_attack"); + + DamageType MOB_ATTACK_NO_AGGRO = getDamageType("mob_attack_no_aggro"); + + DamageType MOB_PROJECTILE = getDamageType("mob_projectile"); + + DamageType ON_FIRE = getDamageType("on_fire"); + + DamageType OUT_OF_WORLD = getDamageType("out_of_world"); + + DamageType OUTSIDE_BORDER = getDamageType("outside_border"); + + DamageType PLAYER_ATTACK = getDamageType("player_attack"); + + DamageType PLAYER_EXPLOSION = getDamageType("player_explosion"); + + DamageType SONIC_BOOM = getDamageType("sonic_boom"); + + DamageType SPIT = getDamageType("spit"); + + DamageType STALAGMITE = getDamageType("stalagmite"); + + DamageType STARVE = getDamageType("starve"); + + DamageType STING = getDamageType("sting"); + + DamageType SWEET_BERRY_BUSH = getDamageType("sweet_berry_bush"); + + DamageType THORNS = getDamageType("thorns"); + + DamageType THROWN = getDamageType("thrown"); + + DamageType TRIDENT = getDamageType("trident"); + + DamageType UNATTRIBUTED_FIREBALL = getDamageType("unattributed_fireball"); + + DamageType WIND_CHARGE = getDamageType("wind_charge"); + + DamageType WITHER = getDamageType("wither"); + + DamageType WITHER_SKULL = getDamageType("wither_skull"); + // End generate - DamageType @NotNull private static DamageType getDamageType(@NotNull String key) { diff --git a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java index 6fcc15d588..7a89a472e9 100644 --- a/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java +++ b/paper-api/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java @@ -6,7 +6,10 @@ import org.jetbrains.annotations.NotNull; /** * Represents the applicable target for a {@link Enchantment} + * + * @deprecated enchantment groupings are now managed by tags, not categories */ +@Deprecated(since = "1.20.5", forRemoval = true) public enum EnchantmentTarget { /** * Allows the Enchantment to be placed on all items diff --git a/paper-api/src/main/java/org/bukkit/entity/Boat.java b/paper-api/src/main/java/org/bukkit/entity/Boat.java index aedfdf41d4..696d2a3961 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Boat.java +++ b/paper-api/src/main/java/org/bukkit/entity/Boat.java @@ -175,12 +175,15 @@ public interface Boat extends Vehicle, io.papermc.paper.entity.Leashable { // Pa */ public enum Status { - NOT_IN_WORLD, // Paper + NOT_IN_WORLD, + // Start generate - BoatStatus + // @GeneratedFrom 1.21.4 IN_WATER, UNDER_WATER, UNDER_FLOWING_WATER, ON_LAND, IN_AIR; + // End generate - BoatStatus } // Paper start diff --git a/paper-api/src/main/java/org/bukkit/entity/Cat.java b/paper-api/src/main/java/org/bukkit/entity/Cat.java index fca4671c69..ccb7a2a5d5 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Cat.java +++ b/paper-api/src/main/java/org/bukkit/entity/Cat.java @@ -52,18 +52,31 @@ public interface Cat extends Tameable, Sittable, io.papermc.paper.entity.CollarC */ interface Type extends OldEnum, Keyed { - Type TABBY = getType("tabby"); - Type BLACK = getType("black"); - Type RED = getType("red"); - Type SIAMESE = getType("siamese"); - Type BRITISH_SHORTHAIR = getType("british_shorthair"); - Type CALICO = getType("calico"); - Type PERSIAN = getType("persian"); - Type RAGDOLL = getType("ragdoll"); - Type WHITE = getType("white"); - Type JELLIE = getType("jellie"); + // Start generate - CatType + // @GeneratedFrom 1.21.4 Type ALL_BLACK = getType("all_black"); + Type BLACK = getType("black"); + + Type BRITISH_SHORTHAIR = getType("british_shorthair"); + + Type CALICO = getType("calico"); + + Type JELLIE = getType("jellie"); + + Type PERSIAN = getType("persian"); + + Type RAGDOLL = getType("ragdoll"); + + Type RED = getType("red"); + + Type SIAMESE = getType("siamese"); + + Type TABBY = getType("tabby"); + + Type WHITE = getType("white"); + // End generate - CatType + @NotNull private static Type getType(@NotNull String key) { return Registry.CAT_VARIANT.getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/entity/EntityType.java b/paper-api/src/main/java/org/bukkit/entity/EntityType.java index 29d2251166..78d8df31b0 100644 --- a/paper-api/src/main/java/org/bukkit/entity/EntityType.java +++ b/paper-api/src/main/java/org/bukkit/entity/EntityType.java @@ -45,299 +45,158 @@ import org.jetbrains.annotations.Nullable; public enum EntityType implements Keyed, Translatable, net.kyori.adventure.translation.Translatable, io.papermc.paper.world.flag.FeatureDependant { // Paper - translatable - // These strings MUST match the strings in nms.EntityTypes and are case sensitive. - /** - * An item resting on the ground. - *

- * Spawn with {@link World#dropItem(Location, ItemStack)} or {@link - * World#dropItemNaturally(Location, ItemStack)} - */ - ITEM("item", Item.class, 1), - /** - * An experience orb. - */ - EXPERIENCE_ORB("experience_orb", ExperienceOrb.class, 2), - /** - * @see AreaEffectCloud - */ + // Start generate - EntityType + // @GeneratedFrom 1.21.4 + ACACIA_BOAT("acacia_boat", AcaciaBoat.class, -1), + ACACIA_CHEST_BOAT("acacia_chest_boat", AcaciaChestBoat.class, -1), + ALLAY("allay", Allay.class, -1), AREA_EFFECT_CLOUD("area_effect_cloud", AreaEffectCloud.class, 3), - /** - * @see ElderGuardian - */ - ELDER_GUARDIAN("elder_guardian", ElderGuardian.class, 4), - /** - * @see WitherSkeleton - */ - WITHER_SKELETON("wither_skeleton", WitherSkeleton.class, 5), - /** - * @see Stray - */ - STRAY("stray", Stray.class, 6), - /** - * A flying chicken egg. - */ - EGG("egg", Egg.class, 7), - /** - * A leash attached to a fencepost. - */ - LEASH_KNOT("leash_knot", LeashHitch.class, 8), - /** - * A painting on a wall. - */ - PAINTING("painting", Painting.class, 9), - /** - * An arrow projectile; may get stuck in the ground. - */ - ARROW("arrow", Arrow.class, 10), - /** - * A flying snowball. - */ - SNOWBALL("snowball", Snowball.class, 11), - /** - * A flying large fireball, as thrown by a Ghast for example. - */ - FIREBALL("fireball", LargeFireball.class, 12), - /** - * A flying small fireball, such as thrown by a Blaze or player. - */ - SMALL_FIREBALL("small_fireball", SmallFireball.class, 13), - /** - * A flying ender pearl. - */ - ENDER_PEARL("ender_pearl", EnderPearl.class, 14), - /** - * An ender eye signal. - */ - EYE_OF_ENDER("eye_of_ender", EnderSignal.class, 15), - /** - * A flying splash potion. - */ - POTION("potion", ThrownPotion.class, 16), - /** - * A flying experience bottle. - */ - EXPERIENCE_BOTTLE("experience_bottle", ThrownExpBottle.class, 17), - /** - * An item frame on a wall. - */ - ITEM_FRAME("item_frame", ItemFrame.class, 18), - /** - * A flying wither skull projectile. - */ - WITHER_SKULL("wither_skull", WitherSkull.class, 19), - /** - * Primed TNT that is about to explode. - */ - TNT("tnt", TNTPrimed.class, 20), - /** - * A block that is going to or is about to fall. - */ - FALLING_BLOCK("falling_block", FallingBlock.class, 21), - /** - * Internal representation of a Firework once it has been launched. - */ - FIREWORK_ROCKET("firework_rocket", Firework.class, 22), - /** - * @see Husk - */ - HUSK("husk", Husk.class, 23), - /** - * Like {@link #ARROW} but causes the {@link PotionEffectType#GLOWING} effect on all team members. - */ - SPECTRAL_ARROW("spectral_arrow", SpectralArrow.class, 24), - /** - * Bullet fired by {@link #SHULKER}. - */ - SHULKER_BULLET("shulker_bullet", ShulkerBullet.class, 25), - /** - * Like {@link #FIREBALL} but with added effects. - */ - DRAGON_FIREBALL("dragon_fireball", DragonFireball.class, 26), - /** - * @see ZombieVillager - */ - ZOMBIE_VILLAGER("zombie_villager", ZombieVillager.class, 27), - /** - * @see SkeletonHorse - */ - SKELETON_HORSE("skeleton_horse", SkeletonHorse.class, 28), - /** - * @see ZombieHorse - */ - ZOMBIE_HORSE("zombie_horse", ZombieHorse.class, 29), - /** - * Mechanical entity with an inventory for placing weapons / armor into. - */ + ARMADILLO("armadillo", Armadillo.class, -1), ARMOR_STAND("armor_stand", ArmorStand.class, 30), - /** - * @see Donkey - */ - DONKEY("donkey", Donkey.class, 31), - /** - * @see Mule - */ - MULE("mule", Mule.class, 32), - /** - * @see EvokerFangs - */ - EVOKER_FANGS("evoker_fangs", EvokerFangs.class, 33), - /** - * @see Evoker - */ - EVOKER("evoker", Evoker.class, 34), - /** - * @see Vex - */ - VEX("vex", Vex.class, 35), - /** - * @see Vindicator - */ - VINDICATOR("vindicator", Vindicator.class, 36), - /** - * @see Illusioner - */ - ILLUSIONER("illusioner", Illusioner.class, 37), - /** - * @see CommandMinecart - */ - COMMAND_BLOCK_MINECART("command_block_minecart", CommandMinecart.class, 40), - /** - * @see RideableMinecart - */ - MINECART("minecart", RideableMinecart.class, 42), - /** - * @see StorageMinecart - */ - CHEST_MINECART("chest_minecart", StorageMinecart.class, 43), - /** - * @see PoweredMinecart - */ - FURNACE_MINECART("furnace_minecart", PoweredMinecart.class, 44), - /** - * @see ExplosiveMinecart - */ - TNT_MINECART("tnt_minecart", ExplosiveMinecart.class, 45), - /** - * @see HopperMinecart - */ - HOPPER_MINECART("hopper_minecart", HopperMinecart.class, 46), - /** - * @see SpawnerMinecart - */ - SPAWNER_MINECART("spawner_minecart", SpawnerMinecart.class, 47), - CREEPER("creeper", Creeper.class, 50), - SKELETON("skeleton", Skeleton.class, 51), - SPIDER("spider", Spider.class, 52), - GIANT("giant", Giant.class, 53), - ZOMBIE("zombie", Zombie.class, 54), - SLIME("slime", Slime.class, 55), - GHAST("ghast", Ghast.class, 56), - ZOMBIFIED_PIGLIN("zombified_piglin", PigZombie.class, 57), - ENDERMAN("enderman", Enderman.class, 58), - CAVE_SPIDER("cave_spider", CaveSpider.class, 59), - SILVERFISH("silverfish", Silverfish.class, 60), - BLAZE("blaze", Blaze.class, 61), - MAGMA_CUBE("magma_cube", MagmaCube.class, 62), - ENDER_DRAGON("ender_dragon", EnderDragon.class, 63), - WITHER("wither", Wither.class, 64), - BAT("bat", Bat.class, 65), - WITCH("witch", Witch.class, 66), - ENDERMITE("endermite", Endermite.class, 67), - GUARDIAN("guardian", Guardian.class, 68), - SHULKER("shulker", Shulker.class, 69), - PIG("pig", Pig.class, 90), - SHEEP("sheep", Sheep.class, 91), - COW("cow", Cow.class, 92), - CHICKEN("chicken", Chicken.class, 93), - SQUID("squid", Squid.class, 94), - WOLF("wolf", Wolf.class, 95), - MOOSHROOM("mooshroom", MushroomCow.class, 96), - SNOW_GOLEM("snow_golem", Snowman.class, 97), - OCELOT("ocelot", Ocelot.class, 98), - IRON_GOLEM("iron_golem", IronGolem.class, 99), - HORSE("horse", Horse.class, 100), - RABBIT("rabbit", Rabbit.class, 101), - POLAR_BEAR("polar_bear", PolarBear.class, 102), - LLAMA("llama", Llama.class, 103), - LLAMA_SPIT("llama_spit", LlamaSpit.class, 104), - PARROT("parrot", Parrot.class, 105), - VILLAGER("villager", Villager.class, 120), - END_CRYSTAL("end_crystal", EnderCrystal.class, 200), - TURTLE("turtle", Turtle.class, -1), - PHANTOM("phantom", Phantom.class, -1), - TRIDENT("trident", Trident.class, -1), - COD("cod", Cod.class, -1), - SALMON("salmon", Salmon.class, -1), - PUFFERFISH("pufferfish", PufferFish.class, -1), - TROPICAL_FISH("tropical_fish", TropicalFish.class, -1), - DROWNED("drowned", Drowned.class, -1), - DOLPHIN("dolphin", Dolphin.class, -1), - CAT("cat", Cat.class, -1), - PANDA("panda", Panda.class, -1), - PILLAGER("pillager", Pillager.class, -1), - RAVAGER("ravager", Ravager.class, -1), - TRADER_LLAMA("trader_llama", TraderLlama.class, -1), - WANDERING_TRADER("wandering_trader", WanderingTrader.class, -1), - FOX("fox", Fox.class, -1), - BEE("bee", Bee.class, -1), - HOGLIN("hoglin", Hoglin.class, -1), - PIGLIN("piglin", Piglin.class, -1), - STRIDER("strider", Strider.class, -1), - ZOGLIN("zoglin", Zoglin.class, -1), - PIGLIN_BRUTE("piglin_brute", PiglinBrute.class, -1), + ARROW("arrow", Arrow.class, 10), AXOLOTL("axolotl", Axolotl.class, -1), + BAMBOO_CHEST_RAFT("bamboo_chest_raft", BambooChestRaft.class, -1), + BAMBOO_RAFT("bamboo_raft", BambooRaft.class, -1), + BAT("bat", Bat.class, 65), + BEE("bee", Bee.class, -1), + BIRCH_BOAT("birch_boat", BirchBoat.class, -1), + BIRCH_CHEST_BOAT("birch_chest_boat", BirchChestBoat.class, -1), + BLAZE("blaze", Blaze.class, 61), + BLOCK_DISPLAY("block_display", BlockDisplay.class, -1), + BOGGED("bogged", Bogged.class, -1), + BREEZE("breeze", Breeze.class, -1), + BREEZE_WIND_CHARGE("breeze_wind_charge", BreezeWindCharge.class, -1), + CAMEL("camel", Camel.class, -1), + CAT("cat", Cat.class, -1), + CAVE_SPIDER("cave_spider", CaveSpider.class, 59), + CHERRY_BOAT("cherry_boat", CherryBoat.class, -1), + CHERRY_CHEST_BOAT("cherry_chest_boat", CherryChestBoat.class, -1), + CHEST_MINECART("chest_minecart", StorageMinecart.class, 43), + CHICKEN("chicken", Chicken.class, 93), + COD("cod", Cod.class, -1), + COMMAND_BLOCK_MINECART("command_block_minecart", CommandMinecart.class, 40), + COW("cow", Cow.class, 92), + CREAKING("creaking", Creaking.class, -1), + CREEPER("creeper", Creeper.class, 50), + DARK_OAK_BOAT("dark_oak_boat", DarkOakBoat.class, -1), + DARK_OAK_CHEST_BOAT("dark_oak_chest_boat", DarkOakChestBoat.class, -1), + DOLPHIN("dolphin", Dolphin.class, -1), + DONKEY("donkey", Donkey.class, 31), + DRAGON_FIREBALL("dragon_fireball", DragonFireball.class, 26), + DROWNED("drowned", Drowned.class, -1), + EGG("egg", Egg.class, 7), + ELDER_GUARDIAN("elder_guardian", ElderGuardian.class, 4), + END_CRYSTAL("end_crystal", EnderCrystal.class, 200), + ENDER_DRAGON("ender_dragon", EnderDragon.class, 63), + ENDER_PEARL("ender_pearl", EnderPearl.class, 14), + ENDERMAN("enderman", Enderman.class, 58), + ENDERMITE("endermite", Endermite.class, 67), + EVOKER("evoker", Evoker.class, 34), + EVOKER_FANGS("evoker_fangs", EvokerFangs.class, 33), + EXPERIENCE_BOTTLE("experience_bottle", ThrownExpBottle.class, 17), + EXPERIENCE_ORB("experience_orb", ExperienceOrb.class, 2), + EYE_OF_ENDER("eye_of_ender", EnderSignal.class, 15), + FALLING_BLOCK("falling_block", FallingBlock.class, 21), + FIREBALL("fireball", Fireball.class, 12), + FIREWORK_ROCKET("firework_rocket", Firework.class, 22), + FISHING_BOBBER("fishing_bobber", FishHook.class, -1, false), + FOX("fox", Fox.class, -1), + FROG("frog", Frog.class, -1), + FURNACE_MINECART("furnace_minecart", PoweredMinecart.class, 44), + GHAST("ghast", Ghast.class, 56), + GIANT("giant", Giant.class, 53), GLOW_ITEM_FRAME("glow_item_frame", GlowItemFrame.class, -1), GLOW_SQUID("glow_squid", GlowSquid.class, -1), GOAT("goat", Goat.class, -1), - MARKER("marker", Marker.class, -1), - ALLAY("allay", Allay.class, -1), - FROG("frog", Frog.class, -1), - TADPOLE("tadpole", Tadpole.class, -1), - WARDEN("warden", Warden.class, -1), - CAMEL("camel", Camel.class, -1), - BLOCK_DISPLAY("block_display", BlockDisplay.class, -1), + GUARDIAN("guardian", Guardian.class, 68), + HOGLIN("hoglin", Hoglin.class, -1), + HOPPER_MINECART("hopper_minecart", HopperMinecart.class, 46), + HORSE("horse", Horse.class, 100), + HUSK("husk", Husk.class, 23), + ILLUSIONER("illusioner", Illusioner.class, 37), INTERACTION("interaction", Interaction.class, -1), + IRON_GOLEM("iron_golem", IronGolem.class, 99), + ITEM("item", Item.class, 1), ITEM_DISPLAY("item_display", ItemDisplay.class, -1), - SNIFFER("sniffer", Sniffer.class, -1), - TEXT_DISPLAY("text_display", TextDisplay.class, -1), - BREEZE("breeze", Breeze.class, -1), - WIND_CHARGE("wind_charge", WindCharge.class, -1), - BREEZE_WIND_CHARGE("breeze_wind_charge", BreezeWindCharge.class, -1), - ARMADILLO("armadillo", Armadillo.class, -1), - BOGGED("bogged", Bogged.class, -1), - OMINOUS_ITEM_SPAWNER("ominous_item_spawner", OminousItemSpawner.class, -1), - ACACIA_BOAT("acacia_boat", AcaciaBoat.class, -1), - ACACIA_CHEST_BOAT("acacia_chest_boat", AcaciaChestBoat.class, -1), - BAMBOO_RAFT("bamboo_raft", BambooRaft.class, -1), - BAMBOO_CHEST_RAFT("bamboo_chest_raft", BambooChestRaft.class, -1), - BIRCH_BOAT("birch_boat", BirchBoat.class, -1), - BIRCH_CHEST_BOAT("birch_chest_boat", BirchChestBoat.class, -1), - CHERRY_BOAT("cherry_boat", CherryBoat.class, -1), - CHERRY_CHEST_BOAT("cherry_chest_boat", CherryChestBoat.class, -1), - DARK_OAK_BOAT("dark_oak_boat", DarkOakBoat.class, -1), - DARK_OAK_CHEST_BOAT("dark_oak_chest_boat", DarkOakChestBoat.class, -1), + ITEM_FRAME("item_frame", ItemFrame.class, 18), JUNGLE_BOAT("jungle_boat", JungleBoat.class, -1), JUNGLE_CHEST_BOAT("jungle_chest_boat", JungleChestBoat.class, -1), + LEASH_KNOT("leash_knot", LeashHitch.class, 8), + LIGHTNING_BOLT("lightning_bolt", LightningStrike.class, -1), + LLAMA("llama", Llama.class, 103), + LLAMA_SPIT("llama_spit", LlamaSpit.class, 104), + MAGMA_CUBE("magma_cube", MagmaCube.class, 62), MANGROVE_BOAT("mangrove_boat", MangroveBoat.class, -1), MANGROVE_CHEST_BOAT("mangrove_chest_boat", MangroveChestBoat.class, -1), + MARKER("marker", Marker.class, -1), + MINECART("minecart", Minecart.class, 42), + MOOSHROOM("mooshroom", MushroomCow.class, 96), + MULE("mule", Mule.class, 32), OAK_BOAT("oak_boat", OakBoat.class, -1), OAK_CHEST_BOAT("oak_chest_boat", OakChestBoat.class, -1), + OCELOT("ocelot", Ocelot.class, 98), + OMINOUS_ITEM_SPAWNER("ominous_item_spawner", OminousItemSpawner.class, -1), + PAINTING("painting", Painting.class, 9), PALE_OAK_BOAT("pale_oak_boat", PaleOakBoat.class, -1), PALE_OAK_CHEST_BOAT("pale_oak_chest_boat", PaleOakChestBoat.class, -1), + PANDA("panda", Panda.class, -1), + PARROT("parrot", Parrot.class, 105), + PHANTOM("phantom", Phantom.class, -1), + PIG("pig", Pig.class, 90), + PIGLIN("piglin", Piglin.class, -1), + PIGLIN_BRUTE("piglin_brute", PiglinBrute.class, -1), + PILLAGER("pillager", Pillager.class, -1), + PLAYER("player", Player.class, -1, false), + POLAR_BEAR("polar_bear", PolarBear.class, 102), + POTION("potion", ThrownPotion.class, 16), + PUFFERFISH("pufferfish", PufferFish.class, -1), + RABBIT("rabbit", Rabbit.class, 101), + RAVAGER("ravager", Ravager.class, -1), + SALMON("salmon", Salmon.class, -1), + SHEEP("sheep", Sheep.class, 91), + SHULKER("shulker", Shulker.class, 69), + SHULKER_BULLET("shulker_bullet", ShulkerBullet.class, 25), + SILVERFISH("silverfish", Silverfish.class, 60), + SKELETON("skeleton", Skeleton.class, 51), + SKELETON_HORSE("skeleton_horse", SkeletonHorse.class, 28), + SLIME("slime", Slime.class, 55), + SMALL_FIREBALL("small_fireball", SmallFireball.class, 13), + SNIFFER("sniffer", Sniffer.class, -1), + SNOW_GOLEM("snow_golem", Snowman.class, 97), + SNOWBALL("snowball", Snowball.class, 11), + SPAWNER_MINECART("spawner_minecart", SpawnerMinecart.class, 47), + SPECTRAL_ARROW("spectral_arrow", SpectralArrow.class, 24), + SPIDER("spider", Spider.class, 52), SPRUCE_BOAT("spruce_boat", SpruceBoat.class, -1), SPRUCE_CHEST_BOAT("spruce_chest_boat", SpruceChestBoat.class, -1), - CREAKING("creaking", Creaking.class, -1), - /** - * A fishing line and bobber. - */ - FISHING_BOBBER("fishing_bobber", FishHook.class, -1, false), - /** - * A bolt of lightning. - *

- * Spawn with {@link World#strikeLightning(Location)}. - */ - LIGHTNING_BOLT("lightning_bolt", LightningStrike.class, -1), - PLAYER("player", Player.class, -1, false), + SQUID("squid", Squid.class, 94), + STRAY("stray", Stray.class, 6), + STRIDER("strider", Strider.class, -1), + TADPOLE("tadpole", Tadpole.class, -1), + TEXT_DISPLAY("text_display", TextDisplay.class, -1), + TNT("tnt", TNTPrimed.class, 20), + TNT_MINECART("tnt_minecart", ExplosiveMinecart.class, 45), + TRADER_LLAMA("trader_llama", TraderLlama.class, -1), + TRIDENT("trident", Trident.class, -1), + TROPICAL_FISH("tropical_fish", TropicalFish.class, -1), + TURTLE("turtle", Turtle.class, -1), + VEX("vex", Vex.class, 35), + VILLAGER("villager", Villager.class, 120), + VINDICATOR("vindicator", Vindicator.class, 36), + WANDERING_TRADER("wandering_trader", WanderingTrader.class, -1), + WARDEN("warden", Warden.class, -1), + WIND_CHARGE("wind_charge", WindCharge.class, -1), + WITCH("witch", Witch.class, 66), + WITHER("wither", Wither.class, 64), + WITHER_SKELETON("wither_skeleton", WitherSkeleton.class, 5), + WITHER_SKULL("wither_skull", WitherSkull.class, 19), + WOLF("wolf", Wolf.class, 95), + ZOGLIN("zoglin", Zoglin.class, -1), + ZOMBIE("zombie", Zombie.class, 54), + ZOMBIE_HORSE("zombie_horse", ZombieHorse.class, 29), + ZOMBIE_VILLAGER("zombie_villager", ZombieVillager.class, 27), + ZOMBIFIED_PIGLIN("zombified_piglin", PigZombie.class, 57), + // End generate - EntityType /** * An unknown entity without an Entity Class */ diff --git a/paper-api/src/main/java/org/bukkit/entity/Fox.java b/paper-api/src/main/java/org/bukkit/entity/Fox.java index 473a7e36ad..2069311e62 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Fox.java +++ b/paper-api/src/main/java/org/bukkit/entity/Fox.java @@ -89,8 +89,11 @@ public interface Fox extends Animals, Sittable { * Represents the various different fox types there are. */ public enum Type { + // Start generate - FoxType + // @GeneratedFrom 1.21.4 RED, SNOW; + // End generate - FoxType } // Paper start - Add more fox behavior API diff --git a/paper-api/src/main/java/org/bukkit/entity/Frog.java b/paper-api/src/main/java/org/bukkit/entity/Frog.java index f661a6b479..6ed083ac00 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Frog.java +++ b/paper-api/src/main/java/org/bukkit/entity/Frog.java @@ -50,19 +50,15 @@ public interface Frog extends Animals { */ interface Variant extends OldEnum, Keyed { - /** - * Temperate (brown-orange) frog. - */ - Variant TEMPERATE = getVariant("temperate"); - /** - * Warm (gray) frog. - */ - Variant WARM = getVariant("warm"); - /** - * Cold (green) frog. - */ + // Start generate - FrogVariant + // @GeneratedFrom 1.21.4 Variant COLD = getVariant("cold"); + Variant TEMPERATE = getVariant("temperate"); + + Variant WARM = getVariant("warm"); + // End generate - FrogVariant + @NotNull private static Variant getVariant(@NotNull String key) { return Registry.FROG_VARIANT.getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/entity/Panda.java b/paper-api/src/main/java/org/bukkit/entity/Panda.java index 4f06870cc8..106709b297 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Panda.java +++ b/paper-api/src/main/java/org/bukkit/entity/Panda.java @@ -201,6 +201,8 @@ public interface Panda extends Animals, Sittable { public enum Gene { + // Start generate - PandaGene + // @GeneratedFrom 1.21.4 NORMAL(false), LAZY(false), WORRIED(false), @@ -208,6 +210,7 @@ public interface Panda extends Animals, Sittable { BROWN(true), WEAK(true), AGGRESSIVE(false); + // End generate - PandaGene private final boolean recessive; diff --git a/paper-api/src/main/java/org/bukkit/entity/Salmon.java b/paper-api/src/main/java/org/bukkit/entity/Salmon.java index d8a2d44fe5..4fbee9754d 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Salmon.java +++ b/paper-api/src/main/java/org/bukkit/entity/Salmon.java @@ -27,17 +27,11 @@ public interface Salmon extends io.papermc.paper.entity.SchoolableFish { // Pape */ public enum Variant { - /** - * Small salmon. - */ + // Start generate - SalmonVariant + // @GeneratedFrom 1.21.4 SMALL, - /** - * Default salmon. - */ MEDIUM, - /** - * Large salmon. - */ LARGE; + // End generate - SalmonVariant } } diff --git a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java index 15a0a733b0..59a41618e7 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Sniffer.java +++ b/paper-api/src/main/java/org/bukkit/entity/Sniffer.java @@ -74,6 +74,8 @@ public interface Sniffer extends Animals { * Represents the current state of the Sniffer. */ public enum State { + // Start generate - SnifferState + // @GeneratedFrom 1.21.4 IDLING, FEELING_HAPPY, SCENTING, @@ -81,5 +83,6 @@ public interface Sniffer extends Animals { SEARCHING, DIGGING, RISING; + // End generate - SnifferState } } diff --git a/paper-api/src/main/java/org/bukkit/entity/TropicalFish.java b/paper-api/src/main/java/org/bukkit/entity/TropicalFish.java index 84bba32e80..2b60442d98 100644 --- a/paper-api/src/main/java/org/bukkit/entity/TropicalFish.java +++ b/paper-api/src/main/java/org/bukkit/entity/TropicalFish.java @@ -60,6 +60,8 @@ public interface TropicalFish extends io.papermc.paper.entity.SchoolableFish { / */ public static enum Pattern { + // Start generate - TropicalFishPattern + // @GeneratedFrom 1.21.4 KOB, SUNSTREAK, SNOOPER, @@ -72,5 +74,6 @@ public interface TropicalFish extends io.papermc.paper.entity.SchoolableFish { / BLOCKFISH, BETTY, CLAYFISH; + // End generate - TropicalFishPattern } } diff --git a/paper-api/src/main/java/org/bukkit/entity/Villager.java b/paper-api/src/main/java/org/bukkit/entity/Villager.java index 1db3742024..6e1020cbe0 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Villager.java +++ b/paper-api/src/main/java/org/bukkit/entity/Villager.java @@ -171,13 +171,22 @@ public interface Villager extends AbstractVillager { */ interface Type extends OldEnum, Keyed { + // Start generate - VillagerType + // @GeneratedFrom 1.21.4 Type DESERT = getType("desert"); + Type JUNGLE = getType("jungle"); + Type PLAINS = getType("plains"); + Type SAVANNA = getType("savanna"); + Type SNOW = getType("snow"); + Type SWAMP = getType("swamp"); + Type TAIGA = getType("taiga"); + // End generate - VillagerType @NotNull private static Type getType(@NotNull String key) { @@ -214,77 +223,94 @@ public interface Villager extends AbstractVillager { */ interface Profession extends OldEnum, Keyed, net.kyori.adventure.translation.Translatable { - Profession NONE = getProfession("none"); + // Start generate - VillagerProfession + // @GeneratedFrom 1.21.4 /** * Armorer profession. Wears a black apron. Armorers primarily trade for * iron armor, chainmail armor, and sometimes diamond armor. */ Profession ARMORER = getProfession("armorer"); + /** * Butcher profession. Wears a white apron. Butchers primarily trade for * raw and cooked food. */ Profession BUTCHER = getProfession("butcher"); + /** * Cartographer profession. Wears a white robe. Cartographers primarily * trade for explorer maps and some paper. */ Profession CARTOGRAPHER = getProfession("cartographer"); + /** * Cleric profession. Wears a purple robe. Clerics primarily trade for * rotten flesh, gold ingot, redstone, lapis, ender pearl, glowstone, * and bottle o' enchanting. */ Profession CLERIC = getProfession("cleric"); + /** * Farmer profession. Wears a brown robe. Farmers primarily trade for * food-related items. */ Profession FARMER = getProfession("farmer"); + /** * Fisherman profession. Wears a brown robe. Fisherman primarily trade * for fish, as well as possibly selling string and/or coal. */ Profession FISHERMAN = getProfession("fisherman"); + /** * Fletcher profession. Wears a brown robe. Fletchers primarily trade * for string, bows, and arrows. */ Profession FLETCHER = getProfession("fletcher"); + /** * Leatherworker profession. Wears a white apron. Leatherworkers * primarily trade for leather, and leather armor, as well as saddles. */ Profession LEATHERWORKER = getProfession("leatherworker"); + /** * Librarian profession. Wears a white robe. Librarians primarily trade * for paper, books, and enchanted books. */ Profession LIBRARIAN = getProfession("librarian"); + /** * Mason profession. */ Profession MASON = getProfession("mason"); + /** * Nitwit profession. Wears a green apron, cannot trade. Nitwit * villagers do not do anything. They do not have any trades by default. */ Profession NITWIT = getProfession("nitwit"); + + Profession NONE = getProfession("none"); + /** * Shepherd profession. Wears a brown robe. Shepherds primarily trade for * wool items, and shears. */ Profession SHEPHERD = getProfession("shepherd"); + /** * Toolsmith profession. Wears a black apron. Tool smiths primarily * trade for iron and diamond tools. */ Profession TOOLSMITH = getProfession("toolsmith"); + /** * Weaponsmith profession. Wears a black apron. Weapon smiths primarily * trade for iron and diamond weapons, sometimes enchanted. */ Profession WEAPONSMITH = getProfession("weaponsmith"); + // End generate - VillagerProfession @NotNull private static Profession getProfession(@NotNull String key) { diff --git a/paper-api/src/main/java/org/bukkit/entity/Wolf.java b/paper-api/src/main/java/org/bukkit/entity/Wolf.java index 346fdddd2e..7dd79e9bb9 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Wolf.java +++ b/paper-api/src/main/java/org/bukkit/entity/Wolf.java @@ -95,16 +95,27 @@ public interface Wolf extends Tameable, Sittable, io.papermc.paper.entity.Collar */ interface Variant extends Keyed { - Variant PALE = getVariant("pale"); - Variant SPOTTED = getVariant("spotted"); - Variant SNOWY = getVariant("snowy"); - Variant BLACK = getVariant("black"); + // Start generate - WolfVariant + // @GeneratedFrom 1.21.4 Variant ASHEN = getVariant("ashen"); - Variant RUSTY = getVariant("rusty"); - Variant WOODS = getVariant("woods"); + + Variant BLACK = getVariant("black"); + Variant CHESTNUT = getVariant("chestnut"); + + Variant PALE = getVariant("pale"); + + Variant RUSTY = getVariant("rusty"); + + Variant SNOWY = getVariant("snowy"); + + Variant SPOTTED = getVariant("spotted"); + Variant STRIPED = getVariant("striped"); + Variant WOODS = getVariant("woods"); + // End generate - WolfVariant + @NotNull private static Variant getVariant(@NotNull String key) { return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_VARIANT).getOrThrow(NamespacedKey.minecraft(key)); diff --git a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java index d615c006c9..289d98d7a0 100644 --- a/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java +++ b/paper-api/src/main/java/org/bukkit/entity/memory/MemoryKey.java @@ -44,31 +44,90 @@ public final class MemoryKey implements Keyed { return tClass; } - private static final Map MEMORY_KEYS = new HashMap<>(); - // - public static final MemoryKey HOME = new MemoryKey<>(NamespacedKey.minecraft("home"), Location.class); - public static final MemoryKey POTENTIAL_JOB_SITE = new MemoryKey<>(NamespacedKey.minecraft("potential_job_site"), Location.class); - public static final MemoryKey JOB_SITE = new MemoryKey<>(NamespacedKey.minecraft("job_site"), Location.class); - public static final MemoryKey MEETING_POINT = new MemoryKey<>(NamespacedKey.minecraft("meeting_point"), Location.class); - public static final MemoryKey GOLEM_DETECTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("golem_detected_recently"), Boolean.class); - public static final MemoryKey LAST_SLEPT = new MemoryKey<>(NamespacedKey.minecraft("last_slept"), Long.class); - public static final MemoryKey LAST_WOKEN = new MemoryKey<>(NamespacedKey.minecraft("last_woken"), Long.class); - public static final MemoryKey LAST_WORKED_AT_POI = new MemoryKey<>(NamespacedKey.minecraft("last_worked_at_poi"), Long.class); - public static final MemoryKey UNIVERSAL_ANGER = new MemoryKey<>(NamespacedKey.minecraft("universal_anger"), Boolean.class); - public static final MemoryKey ANGRY_AT = new MemoryKey<>(NamespacedKey.minecraft("angry_at"), UUID.class); - public static final MemoryKey ADMIRING_ITEM = new MemoryKey<>(NamespacedKey.minecraft("admiring_item"), Boolean.class); + private static final Map> MEMORY_KEYS = new HashMap<>(); + + // Start generate - MemoryKey + // @GeneratedFrom 1.21.4 public static final MemoryKey ADMIRING_DISABLED = new MemoryKey<>(NamespacedKey.minecraft("admiring_disabled"), Boolean.class); - public static final MemoryKey HUNTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("hunted_recently"), Boolean.class); - public static final MemoryKey PLAY_DEAD_TICKS = new MemoryKey<>(NamespacedKey.minecraft("play_dead_ticks"), Integer.class); - public static final MemoryKey TEMPTATION_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("temptation_cooldown_ticks"), Integer.class); - public static final MemoryKey IS_TEMPTED = new MemoryKey<>(NamespacedKey.minecraft("is_tempted"), Boolean.class); - public static final MemoryKey LONG_JUMP_COOLING_DOWN = new MemoryKey<>(NamespacedKey.minecraft("long_jump_cooling_down"), Integer.class); + + public static final MemoryKey ADMIRING_ITEM = new MemoryKey<>(NamespacedKey.minecraft("admiring_item"), Boolean.class); + + public static final MemoryKey ANGRY_AT = new MemoryKey<>(NamespacedKey.minecraft("angry_at"), UUID.class); + + public static final MemoryKey ATE_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("ate_recently"), Boolean.class); + + public static final MemoryKey ATTACK_COOLING_DOWN = new MemoryKey<>(NamespacedKey.minecraft("attack_cooling_down"), Boolean.class); + + public static final MemoryKey CANT_REACH_WALK_TARGET_SINCE = new MemoryKey<>(NamespacedKey.minecraft("cant_reach_walk_target_since"), Long.class); + + public static final MemoryKey DANCING = new MemoryKey<>(NamespacedKey.minecraft("dancing"), Boolean.class); + + public static final MemoryKey DANGER_DETECTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("danger_detected_recently"), Boolean.class); + + public static final MemoryKey DISABLE_WALK_TO_ADMIRE_ITEM = new MemoryKey<>(NamespacedKey.minecraft("disable_walk_to_admire_item"), Boolean.class); + + public static final MemoryKey GAZE_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("gaze_cooldown_ticks"), Integer.class); + + public static final MemoryKey GOLEM_DETECTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("golem_detected_recently"), Boolean.class); + public static final MemoryKey HAS_HUNTING_COOLDOWN = new MemoryKey<>(NamespacedKey.minecraft("has_hunting_cooldown"), Boolean.class); - public static final MemoryKey RAM_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("ram_cooldown_ticks"), Integer.class); - public static final MemoryKey LIKED_PLAYER = new MemoryKey<>(NamespacedKey.minecraft("liked_player"), UUID.class); - public static final MemoryKey LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class); - public static final MemoryKey LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class); + + public static final MemoryKey HEARD_BELL_TIME = new MemoryKey<>(NamespacedKey.minecraft("heard_bell_time"), Long.class); + + public static final MemoryKey HIDING_PLACE = new MemoryKey<>(NamespacedKey.minecraft("hiding_place"), Location.class); + + public static final MemoryKey HOME = new MemoryKey<>(NamespacedKey.minecraft("home"), Location.class); + + public static final MemoryKey HUNTED_RECENTLY = new MemoryKey<>(NamespacedKey.minecraft("hunted_recently"), Boolean.class); + + public static final MemoryKey IS_PANICKING = new MemoryKey<>(NamespacedKey.minecraft("is_panicking"), Boolean.class); + + public static final MemoryKey IS_TEMPTED = new MemoryKey<>(NamespacedKey.minecraft("is_tempted"), Boolean.class); + public static final MemoryKey ITEM_PICKUP_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("item_pickup_cooldown_ticks"), Integer.class); + + public static final MemoryKey JOB_SITE = new MemoryKey<>(NamespacedKey.minecraft("job_site"), Location.class); + + public static final MemoryKey LAST_SLEPT = new MemoryKey<>(NamespacedKey.minecraft("last_slept"), Long.class); + + public static final MemoryKey LAST_WOKEN = new MemoryKey<>(NamespacedKey.minecraft("last_woken"), Long.class); + + public static final MemoryKey LAST_WORKED_AT_POI = new MemoryKey<>(NamespacedKey.minecraft("last_worked_at_poi"), Long.class); + + public static final MemoryKey LIKED_NOTEBLOCK_POSITION = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock"), Location.class); + + public static final MemoryKey LIKED_NOTEBLOCK_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("liked_noteblock_cooldown_ticks"), Integer.class); + + public static final MemoryKey LIKED_PLAYER = new MemoryKey<>(NamespacedKey.minecraft("liked_player"), UUID.class); + + public static final MemoryKey LONG_JUMP_COOLING_DOWN = new MemoryKey<>(NamespacedKey.minecraft("long_jump_cooling_down"), Integer.class); + + public static final MemoryKey LONG_JUMP_MID_JUMP = new MemoryKey<>(NamespacedKey.minecraft("long_jump_mid_jump"), Boolean.class); + + public static final MemoryKey MEETING_POINT = new MemoryKey<>(NamespacedKey.minecraft("meeting_point"), Location.class); + + public static final MemoryKey PACIFIED = new MemoryKey<>(NamespacedKey.minecraft("pacified"), Boolean.class); + + public static final MemoryKey PLAY_DEAD_TICKS = new MemoryKey<>(NamespacedKey.minecraft("play_dead_ticks"), Integer.class); + + public static final MemoryKey POTENTIAL_JOB_SITE = new MemoryKey<>(NamespacedKey.minecraft("potential_job_site"), Location.class); + + public static final MemoryKey RAM_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("ram_cooldown_ticks"), Integer.class); + + public static final MemoryKey SNIFFER_DIGGING = new MemoryKey<>(NamespacedKey.minecraft("sniffer_digging"), Boolean.class); + + public static final MemoryKey SNIFFER_HAPPY = new MemoryKey<>(NamespacedKey.minecraft("sniffer_happy"), Boolean.class); + + public static final MemoryKey TEMPTATION_COOLDOWN_TICKS = new MemoryKey<>(NamespacedKey.minecraft("temptation_cooldown_ticks"), Integer.class); + + public static final MemoryKey TIME_TRYING_TO_REACH_ADMIRE_ITEM = new MemoryKey<>(NamespacedKey.minecraft("time_trying_to_reach_admire_item"), Integer.class); + + public static final MemoryKey UNIVERSAL_ANGER = new MemoryKey<>(NamespacedKey.minecraft("universal_anger"), Boolean.class); + + public static final MemoryKey VISIBLE_ADULT_HOGLIN_COUNT = new MemoryKey<>(NamespacedKey.minecraft("visible_adult_hoglin_count"), Integer.class); + + public static final MemoryKey VISIBLE_ADULT_PIGLIN_COUNT = new MemoryKey<>(NamespacedKey.minecraft("visible_adult_piglin_count"), Integer.class); + // End generate - MemoryKey /** * @deprecated this constant uses the wrong generic type, the sniffer now stores different positions * from possibly different worlds. Use the relevant methods in {@link org.bukkit.entity.Sniffer} directly @@ -86,7 +145,7 @@ public final class MemoryKey implements Keyed { * available under that key */ @Nullable - public static MemoryKey getByKey(@NotNull NamespacedKey namespacedKey) { + public static MemoryKey getByKey(@NotNull NamespacedKey namespacedKey) { return MEMORY_KEYS.get(namespacedKey); } @@ -96,7 +155,7 @@ public final class MemoryKey implements Keyed { * @return the memoryKeys */ @NotNull - public static Set values() { + public static Set> values() { return new HashSet<>(MEMORY_KEYS.values()); } } diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java index 228df69a66..9534f990f1 100644 --- a/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java +++ b/paper-api/src/main/java/org/bukkit/generator/structure/Structure.java @@ -16,41 +16,77 @@ import org.jetbrains.annotations.NotNull; */ public abstract class Structure implements Keyed { - public static final Structure PILLAGER_OUTPOST = getStructure("pillager_outpost"); - public static final Structure MINESHAFT = getStructure("mineshaft"); - public static final Structure MINESHAFT_MESA = getStructure("mineshaft_mesa"); - public static final Structure MANSION = getStructure("mansion"); - public static final Structure JUNGLE_PYRAMID = getStructure("jungle_pyramid"); - public static final Structure DESERT_PYRAMID = getStructure("desert_pyramid"); - public static final Structure IGLOO = getStructure("igloo"); - public static final Structure SHIPWRECK = getStructure("shipwreck"); - public static final Structure SHIPWRECK_BEACHED = getStructure("shipwreck_beached"); - public static final Structure SWAMP_HUT = getStructure("swamp_hut"); - public static final Structure STRONGHOLD = getStructure("stronghold"); - public static final Structure MONUMENT = getStructure("monument"); - public static final Structure OCEAN_RUIN_COLD = getStructure("ocean_ruin_cold"); - public static final Structure OCEAN_RUIN_WARM = getStructure("ocean_ruin_warm"); - public static final Structure FORTRESS = getStructure("fortress"); - public static final Structure NETHER_FOSSIL = getStructure("nether_fossil"); - public static final Structure END_CITY = getStructure("end_city"); - public static final Structure BURIED_TREASURE = getStructure("buried_treasure"); - public static final Structure BASTION_REMNANT = getStructure("bastion_remnant"); - public static final Structure VILLAGE_PLAINS = getStructure("village_plains"); - public static final Structure VILLAGE_DESERT = getStructure("village_desert"); - public static final Structure VILLAGE_SAVANNA = getStructure("village_savanna"); - public static final Structure VILLAGE_SNOWY = getStructure("village_snowy"); - public static final Structure VILLAGE_TAIGA = getStructure("village_taiga"); - public static final Structure RUINED_PORTAL = getStructure("ruined_portal"); - public static final Structure RUINED_PORTAL_DESERT = getStructure("ruined_portal_desert"); - public static final Structure RUINED_PORTAL_JUNGLE = getStructure("ruined_portal_jungle"); - public static final Structure RUINED_PORTAL_SWAMP = getStructure("ruined_portal_swamp"); - public static final Structure RUINED_PORTAL_MOUNTAIN = getStructure("ruined_portal_mountain"); - public static final Structure RUINED_PORTAL_OCEAN = getStructure("ruined_portal_ocean"); - public static final Structure RUINED_PORTAL_NETHER = getStructure("ruined_portal_nether"); + // Start generate - Structure + // @GeneratedFrom 1.21.4 public static final Structure ANCIENT_CITY = getStructure("ancient_city"); + + public static final Structure BASTION_REMNANT = getStructure("bastion_remnant"); + + public static final Structure BURIED_TREASURE = getStructure("buried_treasure"); + + public static final Structure DESERT_PYRAMID = getStructure("desert_pyramid"); + + public static final Structure END_CITY = getStructure("end_city"); + + public static final Structure FORTRESS = getStructure("fortress"); + + public static final Structure IGLOO = getStructure("igloo"); + + public static final Structure JUNGLE_PYRAMID = getStructure("jungle_pyramid"); + + public static final Structure MANSION = getStructure("mansion"); + + public static final Structure MINESHAFT = getStructure("mineshaft"); + + public static final Structure MINESHAFT_MESA = getStructure("mineshaft_mesa"); + + public static final Structure MONUMENT = getStructure("monument"); + + public static final Structure NETHER_FOSSIL = getStructure("nether_fossil"); + + public static final Structure OCEAN_RUIN_COLD = getStructure("ocean_ruin_cold"); + + public static final Structure OCEAN_RUIN_WARM = getStructure("ocean_ruin_warm"); + + public static final Structure PILLAGER_OUTPOST = getStructure("pillager_outpost"); + + public static final Structure RUINED_PORTAL = getStructure("ruined_portal"); + + public static final Structure RUINED_PORTAL_DESERT = getStructure("ruined_portal_desert"); + + public static final Structure RUINED_PORTAL_JUNGLE = getStructure("ruined_portal_jungle"); + + public static final Structure RUINED_PORTAL_MOUNTAIN = getStructure("ruined_portal_mountain"); + + public static final Structure RUINED_PORTAL_NETHER = getStructure("ruined_portal_nether"); + + public static final Structure RUINED_PORTAL_OCEAN = getStructure("ruined_portal_ocean"); + + public static final Structure RUINED_PORTAL_SWAMP = getStructure("ruined_portal_swamp"); + + public static final Structure SHIPWRECK = getStructure("shipwreck"); + + public static final Structure SHIPWRECK_BEACHED = getStructure("shipwreck_beached"); + + public static final Structure STRONGHOLD = getStructure("stronghold"); + + public static final Structure SWAMP_HUT = getStructure("swamp_hut"); + public static final Structure TRAIL_RUINS = getStructure("trail_ruins"); + public static final Structure TRIAL_CHAMBERS = getStructure("trial_chambers"); + public static final Structure VILLAGE_DESERT = getStructure("village_desert"); + + public static final Structure VILLAGE_PLAINS = getStructure("village_plains"); + + public static final Structure VILLAGE_SAVANNA = getStructure("village_savanna"); + + public static final Structure VILLAGE_SNOWY = getStructure("village_snowy"); + + public static final Structure VILLAGE_TAIGA = getStructure("village_taiga"); + // End generate - Structure + @NotNull private static Structure getStructure(@NotNull String name) { return RegistryAccess.registryAccess().getRegistry(RegistryKey.STRUCTURE).getOrThrow(NamespacedKey.minecraft(name)); diff --git a/paper-api/src/main/java/org/bukkit/generator/structure/StructureType.java b/paper-api/src/main/java/org/bukkit/generator/structure/StructureType.java index ffa0fc250f..3649147405 100644 --- a/paper-api/src/main/java/org/bukkit/generator/structure/StructureType.java +++ b/paper-api/src/main/java/org/bukkit/generator/structure/StructureType.java @@ -15,22 +15,40 @@ import org.jetbrains.annotations.NotNull; */ public abstract class StructureType implements Keyed { + // Start generate - StructureType + // @GeneratedFrom 1.21.4 public static final StructureType BURIED_TREASURE = getStructureType("buried_treasure"); + public static final StructureType DESERT_PYRAMID = getStructureType("desert_pyramid"); + public static final StructureType END_CITY = getStructureType("end_city"); + public static final StructureType FORTRESS = getStructureType("fortress"); + public static final StructureType IGLOO = getStructureType("igloo"); + public static final StructureType JIGSAW = getStructureType("jigsaw"); + public static final StructureType JUNGLE_TEMPLE = getStructureType("jungle_temple"); + public static final StructureType MINESHAFT = getStructureType("mineshaft"); + public static final StructureType NETHER_FOSSIL = getStructureType("nether_fossil"); + public static final StructureType OCEAN_MONUMENT = getStructureType("ocean_monument"); + public static final StructureType OCEAN_RUIN = getStructureType("ocean_ruin"); + public static final StructureType RUINED_PORTAL = getStructureType("ruined_portal"); + public static final StructureType SHIPWRECK = getStructureType("shipwreck"); + public static final StructureType STRONGHOLD = getStructureType("stronghold"); + public static final StructureType SWAMP_HUT = getStructureType("swamp_hut"); + public static final StructureType WOODLAND_MANSION = getStructureType("woodland_mansion"); + // End generate - StructureType @NotNull private static StructureType getStructureType(@NotNull String name) { diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java b/paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java index cbce835ed6..c15793e0f2 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemRarity.java @@ -1,30 +1,26 @@ package org.bukkit.inventory; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextColor; + /** * A item's rarity determines the default color of its name. This enum is * ordered from least rare to most rare. */ public enum ItemRarity { - /** - * White item name. - */ - COMMON(net.kyori.adventure.text.format.NamedTextColor.WHITE), // Paper - /** - * Yellow item name. - */ - UNCOMMON(net.kyori.adventure.text.format.NamedTextColor.YELLOW), // Paper - /** - * Aqua item name. - */ - RARE(net.kyori.adventure.text.format.NamedTextColor.AQUA), // Paper - /** - * Light purple item name. - */ - EPIC(net.kyori.adventure.text.format.NamedTextColor.LIGHT_PURPLE); // Paper + // Start generate - ItemRarity + // @GeneratedFrom 1.21.4 + COMMON(NamedTextColor.WHITE), + UNCOMMON(NamedTextColor.YELLOW), + RARE(NamedTextColor.AQUA), + EPIC(NamedTextColor.LIGHT_PURPLE); + // End generate - ItemRarity + // Paper start - improve ItemRarity - private final net.kyori.adventure.text.format.NamedTextColor color; - ItemRarity(final net.kyori.adventure.text.format.NamedTextColor color) { + private final NamedTextColor color; + + ItemRarity(final NamedTextColor color) { this.color = color; } @@ -33,7 +29,7 @@ public enum ItemRarity { * * @return the color */ - public net.kyori.adventure.text.format.@org.jetbrains.annotations.NotNull TextColor color() { + public @org.jetbrains.annotations.NotNull TextColor color() { return this.color; } // Paper end diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java index 3450c63507..a84fd63329 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemType.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemType.java @@ -89,2138 +89,2778 @@ public interface ItemType extends Keyed, Translatable, net.kyori.adventure.trans } // - /** - * Air does not have any ItemMeta - */ - ItemType AIR = getItemType("air"); - ItemType.Typed STONE = getItemType("stone"); - ItemType.Typed GRANITE = getItemType("granite"); - ItemType.Typed POLISHED_GRANITE = getItemType("polished_granite"); - ItemType.Typed DIORITE = getItemType("diorite"); - ItemType.Typed POLISHED_DIORITE = getItemType("polished_diorite"); - ItemType.Typed ANDESITE = getItemType("andesite"); - ItemType.Typed POLISHED_ANDESITE = getItemType("polished_andesite"); - ItemType.Typed DEEPSLATE = getItemType("deepslate"); - ItemType.Typed COBBLED_DEEPSLATE = getItemType("cobbled_deepslate"); - ItemType.Typed POLISHED_DEEPSLATE = getItemType("polished_deepslate"); - ItemType.Typed CALCITE = getItemType("calcite"); - ItemType.Typed TUFF = getItemType("tuff"); - ItemType.Typed TUFF_SLAB = getItemType("tuff_slab"); - ItemType.Typed TUFF_STAIRS = getItemType("tuff_stairs"); - ItemType.Typed TUFF_WALL = getItemType("tuff_wall"); - ItemType.Typed CHISELED_TUFF = getItemType("chiseled_tuff"); - ItemType.Typed POLISHED_TUFF = getItemType("polished_tuff"); - ItemType.Typed POLISHED_TUFF_SLAB = getItemType("polished_tuff_slab"); - ItemType.Typed POLISHED_TUFF_STAIRS = getItemType("polished_tuff_stairs"); - ItemType.Typed POLISHED_TUFF_WALL = getItemType("polished_tuff_wall"); - ItemType.Typed TUFF_BRICKS = getItemType("tuff_bricks"); - ItemType.Typed TUFF_BRICK_SLAB = getItemType("tuff_brick_slab"); - ItemType.Typed TUFF_BRICK_STAIRS = getItemType("tuff_brick_stairs"); - ItemType.Typed TUFF_BRICK_WALL = getItemType("tuff_brick_wall"); - ItemType.Typed CHISELED_TUFF_BRICKS = getItemType("chiseled_tuff_bricks"); - ItemType.Typed DRIPSTONE_BLOCK = getItemType("dripstone_block"); - ItemType.Typed GRASS_BLOCK = getItemType("grass_block"); - ItemType.Typed DIRT = getItemType("dirt"); - ItemType.Typed COARSE_DIRT = getItemType("coarse_dirt"); - ItemType.Typed PODZOL = getItemType("podzol"); - ItemType.Typed ROOTED_DIRT = getItemType("rooted_dirt"); - ItemType.Typed MUD = getItemType("mud"); - ItemType.Typed CRIMSON_NYLIUM = getItemType("crimson_nylium"); - ItemType.Typed WARPED_NYLIUM = getItemType("warped_nylium"); - ItemType.Typed COBBLESTONE = getItemType("cobblestone"); - ItemType.Typed OAK_PLANKS = getItemType("oak_planks"); - ItemType.Typed SPRUCE_PLANKS = getItemType("spruce_planks"); - ItemType.Typed BIRCH_PLANKS = getItemType("birch_planks"); - ItemType.Typed JUNGLE_PLANKS = getItemType("jungle_planks"); - ItemType.Typed ACACIA_PLANKS = getItemType("acacia_planks"); - ItemType.Typed CHERRY_PLANKS = getItemType("cherry_planks"); - ItemType.Typed DARK_OAK_PLANKS = getItemType("dark_oak_planks"); - ItemType.Typed PALE_OAK_PLANKS = getItemType("pale_oak_planks"); - ItemType.Typed MANGROVE_PLANKS = getItemType("mangrove_planks"); - ItemType.Typed BAMBOO_PLANKS = getItemType("bamboo_planks"); - ItemType.Typed CRIMSON_PLANKS = getItemType("crimson_planks"); - ItemType.Typed WARPED_PLANKS = getItemType("warped_planks"); - ItemType.Typed BAMBOO_MOSAIC = getItemType("bamboo_mosaic"); - ItemType.Typed OAK_SAPLING = getItemType("oak_sapling"); - ItemType.Typed SPRUCE_SAPLING = getItemType("spruce_sapling"); - ItemType.Typed BIRCH_SAPLING = getItemType("birch_sapling"); - ItemType.Typed JUNGLE_SAPLING = getItemType("jungle_sapling"); - ItemType.Typed ACACIA_SAPLING = getItemType("acacia_sapling"); - ItemType.Typed CHERRY_SAPLING = getItemType("cherry_sapling"); - ItemType.Typed DARK_OAK_SAPLING = getItemType("dark_oak_sapling"); - ItemType.Typed PALE_OAK_SAPLING = getItemType("pale_oak_sapling"); - ItemType.Typed MANGROVE_PROPAGULE = getItemType("mangrove_propagule"); - ItemType.Typed BEDROCK = getItemType("bedrock"); - ItemType.Typed SAND = getItemType("sand"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SUSPICIOUS_SAND = getItemType("suspicious_sand"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SUSPICIOUS_GRAVEL = getItemType("suspicious_gravel"); - ItemType.Typed RED_SAND = getItemType("red_sand"); - ItemType.Typed GRAVEL = getItemType("gravel"); - ItemType.Typed COAL_ORE = getItemType("coal_ore"); - ItemType.Typed DEEPSLATE_COAL_ORE = getItemType("deepslate_coal_ore"); - ItemType.Typed IRON_ORE = getItemType("iron_ore"); - ItemType.Typed DEEPSLATE_IRON_ORE = getItemType("deepslate_iron_ore"); - ItemType.Typed COPPER_ORE = getItemType("copper_ore"); - ItemType.Typed DEEPSLATE_COPPER_ORE = getItemType("deepslate_copper_ore"); - ItemType.Typed GOLD_ORE = getItemType("gold_ore"); - ItemType.Typed DEEPSLATE_GOLD_ORE = getItemType("deepslate_gold_ore"); - ItemType.Typed REDSTONE_ORE = getItemType("redstone_ore"); - ItemType.Typed DEEPSLATE_REDSTONE_ORE = getItemType("deepslate_redstone_ore"); - ItemType.Typed EMERALD_ORE = getItemType("emerald_ore"); - ItemType.Typed DEEPSLATE_EMERALD_ORE = getItemType("deepslate_emerald_ore"); - ItemType.Typed LAPIS_ORE = getItemType("lapis_ore"); - ItemType.Typed DEEPSLATE_LAPIS_ORE = getItemType("deepslate_lapis_ore"); - ItemType.Typed DIAMOND_ORE = getItemType("diamond_ore"); - ItemType.Typed DEEPSLATE_DIAMOND_ORE = getItemType("deepslate_diamond_ore"); - ItemType.Typed NETHER_GOLD_ORE = getItemType("nether_gold_ore"); - ItemType.Typed NETHER_QUARTZ_ORE = getItemType("nether_quartz_ore"); - ItemType.Typed ANCIENT_DEBRIS = getItemType("ancient_debris"); - ItemType.Typed COAL_BLOCK = getItemType("coal_block"); - ItemType.Typed RAW_IRON_BLOCK = getItemType("raw_iron_block"); - ItemType.Typed RAW_COPPER_BLOCK = getItemType("raw_copper_block"); - ItemType.Typed RAW_GOLD_BLOCK = getItemType("raw_gold_block"); - ItemType.Typed HEAVY_CORE = getItemType("heavy_core"); - ItemType.Typed AMETHYST_BLOCK = getItemType("amethyst_block"); - ItemType.Typed BUDDING_AMETHYST = getItemType("budding_amethyst"); - ItemType.Typed IRON_BLOCK = getItemType("iron_block"); - ItemType.Typed COPPER_BLOCK = getItemType("copper_block"); - ItemType.Typed GOLD_BLOCK = getItemType("gold_block"); - ItemType.Typed DIAMOND_BLOCK = getItemType("diamond_block"); - ItemType.Typed NETHERITE_BLOCK = getItemType("netherite_block"); - ItemType.Typed EXPOSED_COPPER = getItemType("exposed_copper"); - ItemType.Typed WEATHERED_COPPER = getItemType("weathered_copper"); - ItemType.Typed OXIDIZED_COPPER = getItemType("oxidized_copper"); - ItemType.Typed CHISELED_COPPER = getItemType("chiseled_copper"); - ItemType.Typed EXPOSED_CHISELED_COPPER = getItemType("exposed_chiseled_copper"); - ItemType.Typed WEATHERED_CHISELED_COPPER = getItemType("weathered_chiseled_copper"); - ItemType.Typed OXIDIZED_CHISELED_COPPER = getItemType("oxidized_chiseled_copper"); - ItemType.Typed CUT_COPPER = getItemType("cut_copper"); - ItemType.Typed EXPOSED_CUT_COPPER = getItemType("exposed_cut_copper"); - ItemType.Typed WEATHERED_CUT_COPPER = getItemType("weathered_cut_copper"); - ItemType.Typed OXIDIZED_CUT_COPPER = getItemType("oxidized_cut_copper"); - ItemType.Typed CUT_COPPER_STAIRS = getItemType("cut_copper_stairs"); - ItemType.Typed EXPOSED_CUT_COPPER_STAIRS = getItemType("exposed_cut_copper_stairs"); - ItemType.Typed WEATHERED_CUT_COPPER_STAIRS = getItemType("weathered_cut_copper_stairs"); - ItemType.Typed OXIDIZED_CUT_COPPER_STAIRS = getItemType("oxidized_cut_copper_stairs"); - ItemType.Typed CUT_COPPER_SLAB = getItemType("cut_copper_slab"); - ItemType.Typed EXPOSED_CUT_COPPER_SLAB = getItemType("exposed_cut_copper_slab"); - ItemType.Typed WEATHERED_CUT_COPPER_SLAB = getItemType("weathered_cut_copper_slab"); - ItemType.Typed OXIDIZED_CUT_COPPER_SLAB = getItemType("oxidized_cut_copper_slab"); - ItemType.Typed WAXED_COPPER_BLOCK = getItemType("waxed_copper_block"); - ItemType.Typed WAXED_EXPOSED_COPPER = getItemType("waxed_exposed_copper"); - ItemType.Typed WAXED_WEATHERED_COPPER = getItemType("waxed_weathered_copper"); - ItemType.Typed WAXED_OXIDIZED_COPPER = getItemType("waxed_oxidized_copper"); - ItemType.Typed WAXED_CHISELED_COPPER = getItemType("waxed_chiseled_copper"); - ItemType.Typed WAXED_EXPOSED_CHISELED_COPPER = getItemType("waxed_exposed_chiseled_copper"); - ItemType.Typed WAXED_WEATHERED_CHISELED_COPPER = getItemType("waxed_weathered_chiseled_copper"); - ItemType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getItemType("waxed_oxidized_chiseled_copper"); - ItemType.Typed WAXED_CUT_COPPER = getItemType("waxed_cut_copper"); - ItemType.Typed WAXED_EXPOSED_CUT_COPPER = getItemType("waxed_exposed_cut_copper"); - ItemType.Typed WAXED_WEATHERED_CUT_COPPER = getItemType("waxed_weathered_cut_copper"); - ItemType.Typed WAXED_OXIDIZED_CUT_COPPER = getItemType("waxed_oxidized_cut_copper"); - ItemType.Typed WAXED_CUT_COPPER_STAIRS = getItemType("waxed_cut_copper_stairs"); - ItemType.Typed WAXED_EXPOSED_CUT_COPPER_STAIRS = getItemType("waxed_exposed_cut_copper_stairs"); - ItemType.Typed WAXED_WEATHERED_CUT_COPPER_STAIRS = getItemType("waxed_weathered_cut_copper_stairs"); - ItemType.Typed WAXED_OXIDIZED_CUT_COPPER_STAIRS = getItemType("waxed_oxidized_cut_copper_stairs"); - ItemType.Typed WAXED_CUT_COPPER_SLAB = getItemType("waxed_cut_copper_slab"); - ItemType.Typed WAXED_EXPOSED_CUT_COPPER_SLAB = getItemType("waxed_exposed_cut_copper_slab"); - ItemType.Typed WAXED_WEATHERED_CUT_COPPER_SLAB = getItemType("waxed_weathered_cut_copper_slab"); - ItemType.Typed WAXED_OXIDIZED_CUT_COPPER_SLAB = getItemType("waxed_oxidized_cut_copper_slab"); - ItemType.Typed OAK_LOG = getItemType("oak_log"); - ItemType.Typed SPRUCE_LOG = getItemType("spruce_log"); - ItemType.Typed BIRCH_LOG = getItemType("birch_log"); - ItemType.Typed JUNGLE_LOG = getItemType("jungle_log"); - ItemType.Typed ACACIA_LOG = getItemType("acacia_log"); - ItemType.Typed CHERRY_LOG = getItemType("cherry_log"); - ItemType.Typed DARK_OAK_LOG = getItemType("dark_oak_log"); - ItemType.Typed PALE_OAK_LOG = getItemType("pale_oak_log"); - ItemType.Typed MANGROVE_LOG = getItemType("mangrove_log"); - ItemType.Typed MANGROVE_ROOTS = getItemType("mangrove_roots"); - ItemType.Typed MUDDY_MANGROVE_ROOTS = getItemType("muddy_mangrove_roots"); - ItemType.Typed CRIMSON_STEM = getItemType("crimson_stem"); - ItemType.Typed WARPED_STEM = getItemType("warped_stem"); - ItemType.Typed BAMBOO_BLOCK = getItemType("bamboo_block"); - ItemType.Typed STRIPPED_OAK_LOG = getItemType("stripped_oak_log"); - ItemType.Typed STRIPPED_SPRUCE_LOG = getItemType("stripped_spruce_log"); - ItemType.Typed STRIPPED_BIRCH_LOG = getItemType("stripped_birch_log"); - ItemType.Typed STRIPPED_JUNGLE_LOG = getItemType("stripped_jungle_log"); - ItemType.Typed STRIPPED_ACACIA_LOG = getItemType("stripped_acacia_log"); - ItemType.Typed STRIPPED_CHERRY_LOG = getItemType("stripped_cherry_log"); - ItemType.Typed STRIPPED_DARK_OAK_LOG = getItemType("stripped_dark_oak_log"); - ItemType.Typed STRIPPED_PALE_OAK_LOG = getItemType("stripped_pale_oak_log"); - ItemType.Typed STRIPPED_MANGROVE_LOG = getItemType("stripped_mangrove_log"); - ItemType.Typed STRIPPED_CRIMSON_STEM = getItemType("stripped_crimson_stem"); - ItemType.Typed STRIPPED_WARPED_STEM = getItemType("stripped_warped_stem"); - ItemType.Typed STRIPPED_OAK_WOOD = getItemType("stripped_oak_wood"); - ItemType.Typed STRIPPED_SPRUCE_WOOD = getItemType("stripped_spruce_wood"); - ItemType.Typed STRIPPED_BIRCH_WOOD = getItemType("stripped_birch_wood"); - ItemType.Typed STRIPPED_JUNGLE_WOOD = getItemType("stripped_jungle_wood"); - ItemType.Typed STRIPPED_ACACIA_WOOD = getItemType("stripped_acacia_wood"); - ItemType.Typed STRIPPED_CHERRY_WOOD = getItemType("stripped_cherry_wood"); - ItemType.Typed STRIPPED_DARK_OAK_WOOD = getItemType("stripped_dark_oak_wood"); - ItemType.Typed STRIPPED_PALE_OAK_WOOD = getItemType("stripped_pale_oak_wood"); - ItemType.Typed STRIPPED_MANGROVE_WOOD = getItemType("stripped_mangrove_wood"); - ItemType.Typed STRIPPED_CRIMSON_HYPHAE = getItemType("stripped_crimson_hyphae"); - ItemType.Typed STRIPPED_WARPED_HYPHAE = getItemType("stripped_warped_hyphae"); - ItemType.Typed STRIPPED_BAMBOO_BLOCK = getItemType("stripped_bamboo_block"); - ItemType.Typed OAK_WOOD = getItemType("oak_wood"); - ItemType.Typed SPRUCE_WOOD = getItemType("spruce_wood"); - ItemType.Typed BIRCH_WOOD = getItemType("birch_wood"); - ItemType.Typed JUNGLE_WOOD = getItemType("jungle_wood"); - ItemType.Typed ACACIA_WOOD = getItemType("acacia_wood"); - ItemType.Typed CHERRY_WOOD = getItemType("cherry_wood"); - ItemType.Typed DARK_OAK_WOOD = getItemType("dark_oak_wood"); - ItemType.Typed PALE_OAK_WOOD = getItemType("pale_oak_wood"); - ItemType.Typed MANGROVE_WOOD = getItemType("mangrove_wood"); - ItemType.Typed CRIMSON_HYPHAE = getItemType("crimson_hyphae"); - ItemType.Typed WARPED_HYPHAE = getItemType("warped_hyphae"); - ItemType.Typed OAK_LEAVES = getItemType("oak_leaves"); - ItemType.Typed SPRUCE_LEAVES = getItemType("spruce_leaves"); - ItemType.Typed BIRCH_LEAVES = getItemType("birch_leaves"); - ItemType.Typed JUNGLE_LEAVES = getItemType("jungle_leaves"); - ItemType.Typed ACACIA_LEAVES = getItemType("acacia_leaves"); - ItemType.Typed CHERRY_LEAVES = getItemType("cherry_leaves"); - ItemType.Typed DARK_OAK_LEAVES = getItemType("dark_oak_leaves"); - ItemType.Typed PALE_OAK_LEAVES = getItemType("pale_oak_leaves"); - ItemType.Typed MANGROVE_LEAVES = getItemType("mangrove_leaves"); - ItemType.Typed AZALEA_LEAVES = getItemType("azalea_leaves"); - ItemType.Typed FLOWERING_AZALEA_LEAVES = getItemType("flowering_azalea_leaves"); - ItemType.Typed SPONGE = getItemType("sponge"); - ItemType.Typed WET_SPONGE = getItemType("wet_sponge"); - ItemType.Typed GLASS = getItemType("glass"); - ItemType.Typed TINTED_GLASS = getItemType("tinted_glass"); - ItemType.Typed LAPIS_BLOCK = getItemType("lapis_block"); - ItemType.Typed SANDSTONE = getItemType("sandstone"); - ItemType.Typed CHISELED_SANDSTONE = getItemType("chiseled_sandstone"); - ItemType.Typed CUT_SANDSTONE = getItemType("cut_sandstone"); - ItemType.Typed COBWEB = getItemType("cobweb"); - ItemType.Typed SHORT_GRASS = getItemType("short_grass"); - ItemType.Typed FERN = getItemType("fern"); - ItemType.Typed AZALEA = getItemType("azalea"); - ItemType.Typed FLOWERING_AZALEA = getItemType("flowering_azalea"); - ItemType.Typed DEAD_BUSH = getItemType("dead_bush"); - ItemType.Typed SEAGRASS = getItemType("seagrass"); - ItemType.Typed SEA_PICKLE = getItemType("sea_pickle"); - ItemType.Typed WHITE_WOOL = getItemType("white_wool"); - ItemType.Typed ORANGE_WOOL = getItemType("orange_wool"); - ItemType.Typed MAGENTA_WOOL = getItemType("magenta_wool"); - ItemType.Typed LIGHT_BLUE_WOOL = getItemType("light_blue_wool"); - ItemType.Typed YELLOW_WOOL = getItemType("yellow_wool"); - ItemType.Typed LIME_WOOL = getItemType("lime_wool"); - ItemType.Typed PINK_WOOL = getItemType("pink_wool"); - ItemType.Typed GRAY_WOOL = getItemType("gray_wool"); - ItemType.Typed LIGHT_GRAY_WOOL = getItemType("light_gray_wool"); - ItemType.Typed CYAN_WOOL = getItemType("cyan_wool"); - ItemType.Typed PURPLE_WOOL = getItemType("purple_wool"); - ItemType.Typed BLUE_WOOL = getItemType("blue_wool"); - ItemType.Typed BROWN_WOOL = getItemType("brown_wool"); - ItemType.Typed GREEN_WOOL = getItemType("green_wool"); - ItemType.Typed RED_WOOL = getItemType("red_wool"); - ItemType.Typed BLACK_WOOL = getItemType("black_wool"); - ItemType.Typed DANDELION = getItemType("dandelion"); - ItemType.Typed OPEN_EYEBLOSSOM = getItemType("open_eyeblossom"); - ItemType.Typed CLOSED_EYEBLOSSOM = getItemType("closed_eyeblossom"); - ItemType.Typed POPPY = getItemType("poppy"); - ItemType.Typed BLUE_ORCHID = getItemType("blue_orchid"); - ItemType.Typed ALLIUM = getItemType("allium"); - ItemType.Typed AZURE_BLUET = getItemType("azure_bluet"); - ItemType.Typed RED_TULIP = getItemType("red_tulip"); - ItemType.Typed ORANGE_TULIP = getItemType("orange_tulip"); - ItemType.Typed WHITE_TULIP = getItemType("white_tulip"); - ItemType.Typed PINK_TULIP = getItemType("pink_tulip"); - ItemType.Typed OXEYE_DAISY = getItemType("oxeye_daisy"); - ItemType.Typed CORNFLOWER = getItemType("cornflower"); - ItemType.Typed LILY_OF_THE_VALLEY = getItemType("lily_of_the_valley"); - ItemType.Typed WITHER_ROSE = getItemType("wither_rose"); - ItemType.Typed TORCHFLOWER = getItemType("torchflower"); - ItemType.Typed PITCHER_PLANT = getItemType("pitcher_plant"); - ItemType.Typed SPORE_BLOSSOM = getItemType("spore_blossom"); - ItemType.Typed BROWN_MUSHROOM = getItemType("brown_mushroom"); - ItemType.Typed RED_MUSHROOM = getItemType("red_mushroom"); - ItemType.Typed CRIMSON_FUNGUS = getItemType("crimson_fungus"); - ItemType.Typed WARPED_FUNGUS = getItemType("warped_fungus"); - ItemType.Typed CRIMSON_ROOTS = getItemType("crimson_roots"); - ItemType.Typed WARPED_ROOTS = getItemType("warped_roots"); - ItemType.Typed NETHER_SPROUTS = getItemType("nether_sprouts"); - ItemType.Typed WEEPING_VINES = getItemType("weeping_vines"); - ItemType.Typed TWISTING_VINES = getItemType("twisting_vines"); - ItemType.Typed SUGAR_CANE = getItemType("sugar_cane"); - ItemType.Typed KELP = getItemType("kelp"); - ItemType.Typed PINK_PETALS = getItemType("pink_petals"); - ItemType.Typed MOSS_CARPET = getItemType("moss_carpet"); - ItemType.Typed MOSS_BLOCK = getItemType("moss_block"); - ItemType.Typed PALE_MOSS_CARPET = getItemType("pale_moss_carpet"); - ItemType.Typed PALE_HANGING_MOSS = getItemType("pale_hanging_moss"); - ItemType.Typed PALE_MOSS_BLOCK = getItemType("pale_moss_block"); - ItemType.Typed HANGING_ROOTS = getItemType("hanging_roots"); - ItemType.Typed BIG_DRIPLEAF = getItemType("big_dripleaf"); - ItemType.Typed SMALL_DRIPLEAF = getItemType("small_dripleaf"); - ItemType.Typed BAMBOO = getItemType("bamboo"); - ItemType.Typed OAK_SLAB = getItemType("oak_slab"); - ItemType.Typed SPRUCE_SLAB = getItemType("spruce_slab"); - ItemType.Typed BIRCH_SLAB = getItemType("birch_slab"); - ItemType.Typed JUNGLE_SLAB = getItemType("jungle_slab"); - ItemType.Typed ACACIA_SLAB = getItemType("acacia_slab"); - ItemType.Typed CHERRY_SLAB = getItemType("cherry_slab"); - ItemType.Typed DARK_OAK_SLAB = getItemType("dark_oak_slab"); - ItemType.Typed PALE_OAK_SLAB = getItemType("pale_oak_slab"); - ItemType.Typed MANGROVE_SLAB = getItemType("mangrove_slab"); - ItemType.Typed BAMBOO_SLAB = getItemType("bamboo_slab"); - ItemType.Typed BAMBOO_MOSAIC_SLAB = getItemType("bamboo_mosaic_slab"); - ItemType.Typed CRIMSON_SLAB = getItemType("crimson_slab"); - ItemType.Typed WARPED_SLAB = getItemType("warped_slab"); - ItemType.Typed STONE_SLAB = getItemType("stone_slab"); - ItemType.Typed SMOOTH_STONE_SLAB = getItemType("smooth_stone_slab"); - ItemType.Typed SANDSTONE_SLAB = getItemType("sandstone_slab"); - ItemType.Typed CUT_SANDSTONE_SLAB = getItemType("cut_sandstone_slab"); - ItemType.Typed PETRIFIED_OAK_SLAB = getItemType("petrified_oak_slab"); - ItemType.Typed COBBLESTONE_SLAB = getItemType("cobblestone_slab"); - ItemType.Typed BRICK_SLAB = getItemType("brick_slab"); - ItemType.Typed STONE_BRICK_SLAB = getItemType("stone_brick_slab"); - ItemType.Typed MUD_BRICK_SLAB = getItemType("mud_brick_slab"); - ItemType.Typed NETHER_BRICK_SLAB = getItemType("nether_brick_slab"); - ItemType.Typed QUARTZ_SLAB = getItemType("quartz_slab"); - ItemType.Typed RED_SANDSTONE_SLAB = getItemType("red_sandstone_slab"); - ItemType.Typed CUT_RED_SANDSTONE_SLAB = getItemType("cut_red_sandstone_slab"); - ItemType.Typed PURPUR_SLAB = getItemType("purpur_slab"); - ItemType.Typed PRISMARINE_SLAB = getItemType("prismarine_slab"); - ItemType.Typed PRISMARINE_BRICK_SLAB = getItemType("prismarine_brick_slab"); - ItemType.Typed DARK_PRISMARINE_SLAB = getItemType("dark_prismarine_slab"); - ItemType.Typed SMOOTH_QUARTZ = getItemType("smooth_quartz"); - ItemType.Typed SMOOTH_RED_SANDSTONE = getItemType("smooth_red_sandstone"); - ItemType.Typed SMOOTH_SANDSTONE = getItemType("smooth_sandstone"); - ItemType.Typed SMOOTH_STONE = getItemType("smooth_stone"); - ItemType.Typed BRICKS = getItemType("bricks"); - ItemType.Typed BOOKSHELF = getItemType("bookshelf"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CHISELED_BOOKSHELF = getItemType("chiseled_bookshelf"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DECORATED_POT = getItemType("decorated_pot"); - ItemType.Typed MOSSY_COBBLESTONE = getItemType("mossy_cobblestone"); - ItemType.Typed OBSIDIAN = getItemType("obsidian"); - ItemType.Typed TORCH = getItemType("torch"); - ItemType.Typed END_ROD = getItemType("end_rod"); - ItemType.Typed CHORUS_PLANT = getItemType("chorus_plant"); - ItemType.Typed CHORUS_FLOWER = getItemType("chorus_flower"); - ItemType.Typed PURPUR_BLOCK = getItemType("purpur_block"); - ItemType.Typed PURPUR_PILLAR = getItemType("purpur_pillar"); - ItemType.Typed PURPUR_STAIRS = getItemType("purpur_stairs"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SPAWNER = getItemType("spawner"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CREAKING_HEART = getItemType("creaking_heart"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CHEST = getItemType("chest"); - ItemType.Typed CRAFTING_TABLE = getItemType("crafting_table"); - ItemType.Typed FARMLAND = getItemType("farmland"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed FURNACE = getItemType("furnace"); - ItemType.Typed LADDER = getItemType("ladder"); - ItemType.Typed COBBLESTONE_STAIRS = getItemType("cobblestone_stairs"); - ItemType.Typed SNOW = getItemType("snow"); - ItemType.Typed ICE = getItemType("ice"); - ItemType.Typed SNOW_BLOCK = getItemType("snow_block"); - ItemType.Typed CACTUS = getItemType("cactus"); - ItemType.Typed CLAY = getItemType("clay"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed JUKEBOX = getItemType("jukebox"); - ItemType.Typed OAK_FENCE = getItemType("oak_fence"); - ItemType.Typed SPRUCE_FENCE = getItemType("spruce_fence"); - ItemType.Typed BIRCH_FENCE = getItemType("birch_fence"); - ItemType.Typed JUNGLE_FENCE = getItemType("jungle_fence"); - ItemType.Typed ACACIA_FENCE = getItemType("acacia_fence"); - ItemType.Typed CHERRY_FENCE = getItemType("cherry_fence"); - ItemType.Typed DARK_OAK_FENCE = getItemType("dark_oak_fence"); - ItemType.Typed PALE_OAK_FENCE = getItemType("pale_oak_fence"); - ItemType.Typed MANGROVE_FENCE = getItemType("mangrove_fence"); - ItemType.Typed BAMBOO_FENCE = getItemType("bamboo_fence"); - ItemType.Typed CRIMSON_FENCE = getItemType("crimson_fence"); - ItemType.Typed WARPED_FENCE = getItemType("warped_fence"); - ItemType.Typed PUMPKIN = getItemType("pumpkin"); - ItemType.Typed CARVED_PUMPKIN = getItemType("carved_pumpkin"); - ItemType.Typed JACK_O_LANTERN = getItemType("jack_o_lantern"); - ItemType.Typed NETHERRACK = getItemType("netherrack"); - ItemType.Typed SOUL_SAND = getItemType("soul_sand"); - ItemType.Typed SOUL_SOIL = getItemType("soul_soil"); - ItemType.Typed BASALT = getItemType("basalt"); - ItemType.Typed POLISHED_BASALT = getItemType("polished_basalt"); - ItemType.Typed SMOOTH_BASALT = getItemType("smooth_basalt"); - ItemType.Typed SOUL_TORCH = getItemType("soul_torch"); - ItemType.Typed GLOWSTONE = getItemType("glowstone"); - ItemType.Typed INFESTED_STONE = getItemType("infested_stone"); - ItemType.Typed INFESTED_COBBLESTONE = getItemType("infested_cobblestone"); - ItemType.Typed INFESTED_STONE_BRICKS = getItemType("infested_stone_bricks"); - ItemType.Typed INFESTED_MOSSY_STONE_BRICKS = getItemType("infested_mossy_stone_bricks"); - ItemType.Typed INFESTED_CRACKED_STONE_BRICKS = getItemType("infested_cracked_stone_bricks"); - ItemType.Typed INFESTED_CHISELED_STONE_BRICKS = getItemType("infested_chiseled_stone_bricks"); - ItemType.Typed INFESTED_DEEPSLATE = getItemType("infested_deepslate"); - ItemType.Typed STONE_BRICKS = getItemType("stone_bricks"); - ItemType.Typed MOSSY_STONE_BRICKS = getItemType("mossy_stone_bricks"); - ItemType.Typed CRACKED_STONE_BRICKS = getItemType("cracked_stone_bricks"); - ItemType.Typed CHISELED_STONE_BRICKS = getItemType("chiseled_stone_bricks"); - ItemType.Typed PACKED_MUD = getItemType("packed_mud"); - ItemType.Typed MUD_BRICKS = getItemType("mud_bricks"); - ItemType.Typed DEEPSLATE_BRICKS = getItemType("deepslate_bricks"); - ItemType.Typed CRACKED_DEEPSLATE_BRICKS = getItemType("cracked_deepslate_bricks"); - ItemType.Typed DEEPSLATE_TILES = getItemType("deepslate_tiles"); - ItemType.Typed CRACKED_DEEPSLATE_TILES = getItemType("cracked_deepslate_tiles"); - ItemType.Typed CHISELED_DEEPSLATE = getItemType("chiseled_deepslate"); - ItemType.Typed REINFORCED_DEEPSLATE = getItemType("reinforced_deepslate"); - ItemType.Typed BROWN_MUSHROOM_BLOCK = getItemType("brown_mushroom_block"); - ItemType.Typed RED_MUSHROOM_BLOCK = getItemType("red_mushroom_block"); - ItemType.Typed MUSHROOM_STEM = getItemType("mushroom_stem"); - ItemType.Typed IRON_BARS = getItemType("iron_bars"); - ItemType.Typed CHAIN = getItemType("chain"); - ItemType.Typed GLASS_PANE = getItemType("glass_pane"); - ItemType.Typed MELON = getItemType("melon"); - ItemType.Typed VINE = getItemType("vine"); - ItemType.Typed GLOW_LICHEN = getItemType("glow_lichen"); - ItemType.Typed RESIN_CLUMP = getItemType("resin_clump"); - ItemType.Typed RESIN_BLOCK = getItemType("resin_block"); - ItemType.Typed RESIN_BRICKS = getItemType("resin_bricks"); - ItemType.Typed RESIN_BRICK_STAIRS = getItemType("resin_brick_stairs"); - ItemType.Typed RESIN_BRICK_SLAB = getItemType("resin_brick_slab"); - ItemType.Typed RESIN_BRICK_WALL = getItemType("resin_brick_wall"); - ItemType.Typed CHISELED_RESIN_BRICKS = getItemType("chiseled_resin_bricks"); - ItemType.Typed BRICK_STAIRS = getItemType("brick_stairs"); - ItemType.Typed STONE_BRICK_STAIRS = getItemType("stone_brick_stairs"); - ItemType.Typed MUD_BRICK_STAIRS = getItemType("mud_brick_stairs"); - ItemType.Typed MYCELIUM = getItemType("mycelium"); - ItemType.Typed LILY_PAD = getItemType("lily_pad"); - ItemType.Typed NETHER_BRICKS = getItemType("nether_bricks"); - ItemType.Typed CRACKED_NETHER_BRICKS = getItemType("cracked_nether_bricks"); - ItemType.Typed CHISELED_NETHER_BRICKS = getItemType("chiseled_nether_bricks"); - ItemType.Typed NETHER_BRICK_FENCE = getItemType("nether_brick_fence"); - ItemType.Typed NETHER_BRICK_STAIRS = getItemType("nether_brick_stairs"); - ItemType.Typed SCULK = getItemType("sculk"); - ItemType.Typed SCULK_VEIN = getItemType("sculk_vein"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SCULK_CATALYST = getItemType("sculk_catalyst"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SCULK_SHRIEKER = getItemType("sculk_shrieker"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed ENCHANTING_TABLE = getItemType("enchanting_table"); - ItemType.Typed END_PORTAL_FRAME = getItemType("end_portal_frame"); - ItemType.Typed END_STONE = getItemType("end_stone"); - ItemType.Typed END_STONE_BRICKS = getItemType("end_stone_bricks"); - ItemType.Typed DRAGON_EGG = getItemType("dragon_egg"); - ItemType.Typed SANDSTONE_STAIRS = getItemType("sandstone_stairs"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed ENDER_CHEST = getItemType("ender_chest"); - ItemType.Typed EMERALD_BLOCK = getItemType("emerald_block"); - ItemType.Typed OAK_STAIRS = getItemType("oak_stairs"); - ItemType.Typed SPRUCE_STAIRS = getItemType("spruce_stairs"); - ItemType.Typed BIRCH_STAIRS = getItemType("birch_stairs"); - ItemType.Typed JUNGLE_STAIRS = getItemType("jungle_stairs"); - ItemType.Typed ACACIA_STAIRS = getItemType("acacia_stairs"); - ItemType.Typed CHERRY_STAIRS = getItemType("cherry_stairs"); - ItemType.Typed DARK_OAK_STAIRS = getItemType("dark_oak_stairs"); - ItemType.Typed PALE_OAK_STAIRS = getItemType("pale_oak_stairs"); - ItemType.Typed MANGROVE_STAIRS = getItemType("mangrove_stairs"); - ItemType.Typed BAMBOO_STAIRS = getItemType("bamboo_stairs"); - ItemType.Typed BAMBOO_MOSAIC_STAIRS = getItemType("bamboo_mosaic_stairs"); - ItemType.Typed CRIMSON_STAIRS = getItemType("crimson_stairs"); - ItemType.Typed WARPED_STAIRS = getItemType("warped_stairs"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed COMMAND_BLOCK = getItemType("command_block"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BEACON = getItemType("beacon"); - ItemType.Typed COBBLESTONE_WALL = getItemType("cobblestone_wall"); - ItemType.Typed MOSSY_COBBLESTONE_WALL = getItemType("mossy_cobblestone_wall"); - ItemType.Typed BRICK_WALL = getItemType("brick_wall"); - ItemType.Typed PRISMARINE_WALL = getItemType("prismarine_wall"); - ItemType.Typed RED_SANDSTONE_WALL = getItemType("red_sandstone_wall"); - ItemType.Typed MOSSY_STONE_BRICK_WALL = getItemType("mossy_stone_brick_wall"); - ItemType.Typed GRANITE_WALL = getItemType("granite_wall"); - ItemType.Typed STONE_BRICK_WALL = getItemType("stone_brick_wall"); - ItemType.Typed MUD_BRICK_WALL = getItemType("mud_brick_wall"); - ItemType.Typed NETHER_BRICK_WALL = getItemType("nether_brick_wall"); - ItemType.Typed ANDESITE_WALL = getItemType("andesite_wall"); - ItemType.Typed RED_NETHER_BRICK_WALL = getItemType("red_nether_brick_wall"); - ItemType.Typed SANDSTONE_WALL = getItemType("sandstone_wall"); - ItemType.Typed END_STONE_BRICK_WALL = getItemType("end_stone_brick_wall"); - ItemType.Typed DIORITE_WALL = getItemType("diorite_wall"); - ItemType.Typed BLACKSTONE_WALL = getItemType("blackstone_wall"); - ItemType.Typed POLISHED_BLACKSTONE_WALL = getItemType("polished_blackstone_wall"); - ItemType.Typed POLISHED_BLACKSTONE_BRICK_WALL = getItemType("polished_blackstone_brick_wall"); - ItemType.Typed COBBLED_DEEPSLATE_WALL = getItemType("cobbled_deepslate_wall"); - ItemType.Typed POLISHED_DEEPSLATE_WALL = getItemType("polished_deepslate_wall"); - ItemType.Typed DEEPSLATE_BRICK_WALL = getItemType("deepslate_brick_wall"); - ItemType.Typed DEEPSLATE_TILE_WALL = getItemType("deepslate_tile_wall"); - ItemType.Typed ANVIL = getItemType("anvil"); - ItemType.Typed CHIPPED_ANVIL = getItemType("chipped_anvil"); - ItemType.Typed DAMAGED_ANVIL = getItemType("damaged_anvil"); - ItemType.Typed CHISELED_QUARTZ_BLOCK = getItemType("chiseled_quartz_block"); - ItemType.Typed QUARTZ_BLOCK = getItemType("quartz_block"); - ItemType.Typed QUARTZ_BRICKS = getItemType("quartz_bricks"); - ItemType.Typed QUARTZ_PILLAR = getItemType("quartz_pillar"); - ItemType.Typed QUARTZ_STAIRS = getItemType("quartz_stairs"); - ItemType.Typed WHITE_TERRACOTTA = getItemType("white_terracotta"); - ItemType.Typed ORANGE_TERRACOTTA = getItemType("orange_terracotta"); - ItemType.Typed MAGENTA_TERRACOTTA = getItemType("magenta_terracotta"); - ItemType.Typed LIGHT_BLUE_TERRACOTTA = getItemType("light_blue_terracotta"); - ItemType.Typed YELLOW_TERRACOTTA = getItemType("yellow_terracotta"); - ItemType.Typed LIME_TERRACOTTA = getItemType("lime_terracotta"); - ItemType.Typed PINK_TERRACOTTA = getItemType("pink_terracotta"); - ItemType.Typed GRAY_TERRACOTTA = getItemType("gray_terracotta"); - ItemType.Typed LIGHT_GRAY_TERRACOTTA = getItemType("light_gray_terracotta"); - ItemType.Typed CYAN_TERRACOTTA = getItemType("cyan_terracotta"); - ItemType.Typed PURPLE_TERRACOTTA = getItemType("purple_terracotta"); - ItemType.Typed BLUE_TERRACOTTA = getItemType("blue_terracotta"); - ItemType.Typed BROWN_TERRACOTTA = getItemType("brown_terracotta"); - ItemType.Typed GREEN_TERRACOTTA = getItemType("green_terracotta"); - ItemType.Typed RED_TERRACOTTA = getItemType("red_terracotta"); - ItemType.Typed BLACK_TERRACOTTA = getItemType("black_terracotta"); - ItemType.Typed BARRIER = getItemType("barrier"); - ItemType.Typed LIGHT = getItemType("light"); - ItemType.Typed HAY_BLOCK = getItemType("hay_block"); - ItemType.Typed WHITE_CARPET = getItemType("white_carpet"); - ItemType.Typed ORANGE_CARPET = getItemType("orange_carpet"); - ItemType.Typed MAGENTA_CARPET = getItemType("magenta_carpet"); - ItemType.Typed LIGHT_BLUE_CARPET = getItemType("light_blue_carpet"); - ItemType.Typed YELLOW_CARPET = getItemType("yellow_carpet"); - ItemType.Typed LIME_CARPET = getItemType("lime_carpet"); - ItemType.Typed PINK_CARPET = getItemType("pink_carpet"); - ItemType.Typed GRAY_CARPET = getItemType("gray_carpet"); - ItemType.Typed LIGHT_GRAY_CARPET = getItemType("light_gray_carpet"); - ItemType.Typed CYAN_CARPET = getItemType("cyan_carpet"); - ItemType.Typed PURPLE_CARPET = getItemType("purple_carpet"); - ItemType.Typed BLUE_CARPET = getItemType("blue_carpet"); - ItemType.Typed BROWN_CARPET = getItemType("brown_carpet"); - ItemType.Typed GREEN_CARPET = getItemType("green_carpet"); - ItemType.Typed RED_CARPET = getItemType("red_carpet"); - ItemType.Typed BLACK_CARPET = getItemType("black_carpet"); - ItemType.Typed TERRACOTTA = getItemType("terracotta"); - ItemType.Typed PACKED_ICE = getItemType("packed_ice"); - ItemType.Typed DIRT_PATH = getItemType("dirt_path"); - ItemType.Typed SUNFLOWER = getItemType("sunflower"); - ItemType.Typed LILAC = getItemType("lilac"); - ItemType.Typed ROSE_BUSH = getItemType("rose_bush"); - ItemType.Typed PEONY = getItemType("peony"); - ItemType.Typed TALL_GRASS = getItemType("tall_grass"); - ItemType.Typed LARGE_FERN = getItemType("large_fern"); - ItemType.Typed WHITE_STAINED_GLASS = getItemType("white_stained_glass"); - ItemType.Typed ORANGE_STAINED_GLASS = getItemType("orange_stained_glass"); - ItemType.Typed MAGENTA_STAINED_GLASS = getItemType("magenta_stained_glass"); - ItemType.Typed LIGHT_BLUE_STAINED_GLASS = getItemType("light_blue_stained_glass"); - ItemType.Typed YELLOW_STAINED_GLASS = getItemType("yellow_stained_glass"); - ItemType.Typed LIME_STAINED_GLASS = getItemType("lime_stained_glass"); - ItemType.Typed PINK_STAINED_GLASS = getItemType("pink_stained_glass"); - ItemType.Typed GRAY_STAINED_GLASS = getItemType("gray_stained_glass"); - ItemType.Typed LIGHT_GRAY_STAINED_GLASS = getItemType("light_gray_stained_glass"); - ItemType.Typed CYAN_STAINED_GLASS = getItemType("cyan_stained_glass"); - ItemType.Typed PURPLE_STAINED_GLASS = getItemType("purple_stained_glass"); - ItemType.Typed BLUE_STAINED_GLASS = getItemType("blue_stained_glass"); - ItemType.Typed BROWN_STAINED_GLASS = getItemType("brown_stained_glass"); - ItemType.Typed GREEN_STAINED_GLASS = getItemType("green_stained_glass"); - ItemType.Typed RED_STAINED_GLASS = getItemType("red_stained_glass"); - ItemType.Typed BLACK_STAINED_GLASS = getItemType("black_stained_glass"); - ItemType.Typed WHITE_STAINED_GLASS_PANE = getItemType("white_stained_glass_pane"); - ItemType.Typed ORANGE_STAINED_GLASS_PANE = getItemType("orange_stained_glass_pane"); - ItemType.Typed MAGENTA_STAINED_GLASS_PANE = getItemType("magenta_stained_glass_pane"); - ItemType.Typed LIGHT_BLUE_STAINED_GLASS_PANE = getItemType("light_blue_stained_glass_pane"); - ItemType.Typed YELLOW_STAINED_GLASS_PANE = getItemType("yellow_stained_glass_pane"); - ItemType.Typed LIME_STAINED_GLASS_PANE = getItemType("lime_stained_glass_pane"); - ItemType.Typed PINK_STAINED_GLASS_PANE = getItemType("pink_stained_glass_pane"); - ItemType.Typed GRAY_STAINED_GLASS_PANE = getItemType("gray_stained_glass_pane"); - ItemType.Typed LIGHT_GRAY_STAINED_GLASS_PANE = getItemType("light_gray_stained_glass_pane"); - ItemType.Typed CYAN_STAINED_GLASS_PANE = getItemType("cyan_stained_glass_pane"); - ItemType.Typed PURPLE_STAINED_GLASS_PANE = getItemType("purple_stained_glass_pane"); - ItemType.Typed BLUE_STAINED_GLASS_PANE = getItemType("blue_stained_glass_pane"); - ItemType.Typed BROWN_STAINED_GLASS_PANE = getItemType("brown_stained_glass_pane"); - ItemType.Typed GREEN_STAINED_GLASS_PANE = getItemType("green_stained_glass_pane"); - ItemType.Typed RED_STAINED_GLASS_PANE = getItemType("red_stained_glass_pane"); - ItemType.Typed BLACK_STAINED_GLASS_PANE = getItemType("black_stained_glass_pane"); - ItemType.Typed PRISMARINE = getItemType("prismarine"); - ItemType.Typed PRISMARINE_BRICKS = getItemType("prismarine_bricks"); - ItemType.Typed DARK_PRISMARINE = getItemType("dark_prismarine"); - ItemType.Typed PRISMARINE_STAIRS = getItemType("prismarine_stairs"); - ItemType.Typed PRISMARINE_BRICK_STAIRS = getItemType("prismarine_brick_stairs"); - ItemType.Typed DARK_PRISMARINE_STAIRS = getItemType("dark_prismarine_stairs"); - ItemType.Typed SEA_LANTERN = getItemType("sea_lantern"); - ItemType.Typed RED_SANDSTONE = getItemType("red_sandstone"); - ItemType.Typed CHISELED_RED_SANDSTONE = getItemType("chiseled_red_sandstone"); - ItemType.Typed CUT_RED_SANDSTONE = getItemType("cut_red_sandstone"); - ItemType.Typed RED_SANDSTONE_STAIRS = getItemType("red_sandstone_stairs"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed REPEATING_COMMAND_BLOCK = getItemType("repeating_command_block"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CHAIN_COMMAND_BLOCK = getItemType("chain_command_block"); - ItemType.Typed MAGMA_BLOCK = getItemType("magma_block"); - ItemType.Typed NETHER_WART_BLOCK = getItemType("nether_wart_block"); - ItemType.Typed WARPED_WART_BLOCK = getItemType("warped_wart_block"); - ItemType.Typed RED_NETHER_BRICKS = getItemType("red_nether_bricks"); - ItemType.Typed BONE_BLOCK = getItemType("bone_block"); - ItemType.Typed STRUCTURE_VOID = getItemType("structure_void"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SHULKER_BOX = getItemType("shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed WHITE_SHULKER_BOX = getItemType("white_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed ORANGE_SHULKER_BOX = getItemType("orange_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed MAGENTA_SHULKER_BOX = getItemType("magenta_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed LIGHT_BLUE_SHULKER_BOX = getItemType("light_blue_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed YELLOW_SHULKER_BOX = getItemType("yellow_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed LIME_SHULKER_BOX = getItemType("lime_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed PINK_SHULKER_BOX = getItemType("pink_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed GRAY_SHULKER_BOX = getItemType("gray_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed LIGHT_GRAY_SHULKER_BOX = getItemType("light_gray_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CYAN_SHULKER_BOX = getItemType("cyan_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed PURPLE_SHULKER_BOX = getItemType("purple_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BLUE_SHULKER_BOX = getItemType("blue_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BROWN_SHULKER_BOX = getItemType("brown_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed GREEN_SHULKER_BOX = getItemType("green_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed RED_SHULKER_BOX = getItemType("red_shulker_box"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BLACK_SHULKER_BOX = getItemType("black_shulker_box"); - ItemType.Typed WHITE_GLAZED_TERRACOTTA = getItemType("white_glazed_terracotta"); - ItemType.Typed ORANGE_GLAZED_TERRACOTTA = getItemType("orange_glazed_terracotta"); - ItemType.Typed MAGENTA_GLAZED_TERRACOTTA = getItemType("magenta_glazed_terracotta"); - ItemType.Typed LIGHT_BLUE_GLAZED_TERRACOTTA = getItemType("light_blue_glazed_terracotta"); - ItemType.Typed YELLOW_GLAZED_TERRACOTTA = getItemType("yellow_glazed_terracotta"); - ItemType.Typed LIME_GLAZED_TERRACOTTA = getItemType("lime_glazed_terracotta"); - ItemType.Typed PINK_GLAZED_TERRACOTTA = getItemType("pink_glazed_terracotta"); - ItemType.Typed GRAY_GLAZED_TERRACOTTA = getItemType("gray_glazed_terracotta"); - ItemType.Typed LIGHT_GRAY_GLAZED_TERRACOTTA = getItemType("light_gray_glazed_terracotta"); - ItemType.Typed CYAN_GLAZED_TERRACOTTA = getItemType("cyan_glazed_terracotta"); - ItemType.Typed PURPLE_GLAZED_TERRACOTTA = getItemType("purple_glazed_terracotta"); - ItemType.Typed BLUE_GLAZED_TERRACOTTA = getItemType("blue_glazed_terracotta"); - ItemType.Typed BROWN_GLAZED_TERRACOTTA = getItemType("brown_glazed_terracotta"); - ItemType.Typed GREEN_GLAZED_TERRACOTTA = getItemType("green_glazed_terracotta"); - ItemType.Typed RED_GLAZED_TERRACOTTA = getItemType("red_glazed_terracotta"); - ItemType.Typed BLACK_GLAZED_TERRACOTTA = getItemType("black_glazed_terracotta"); - ItemType.Typed WHITE_CONCRETE = getItemType("white_concrete"); - ItemType.Typed ORANGE_CONCRETE = getItemType("orange_concrete"); - ItemType.Typed MAGENTA_CONCRETE = getItemType("magenta_concrete"); - ItemType.Typed LIGHT_BLUE_CONCRETE = getItemType("light_blue_concrete"); - ItemType.Typed YELLOW_CONCRETE = getItemType("yellow_concrete"); - ItemType.Typed LIME_CONCRETE = getItemType("lime_concrete"); - ItemType.Typed PINK_CONCRETE = getItemType("pink_concrete"); - ItemType.Typed GRAY_CONCRETE = getItemType("gray_concrete"); - ItemType.Typed LIGHT_GRAY_CONCRETE = getItemType("light_gray_concrete"); - ItemType.Typed CYAN_CONCRETE = getItemType("cyan_concrete"); - ItemType.Typed PURPLE_CONCRETE = getItemType("purple_concrete"); - ItemType.Typed BLUE_CONCRETE = getItemType("blue_concrete"); - ItemType.Typed BROWN_CONCRETE = getItemType("brown_concrete"); - ItemType.Typed GREEN_CONCRETE = getItemType("green_concrete"); - ItemType.Typed RED_CONCRETE = getItemType("red_concrete"); - ItemType.Typed BLACK_CONCRETE = getItemType("black_concrete"); - ItemType.Typed WHITE_CONCRETE_POWDER = getItemType("white_concrete_powder"); - ItemType.Typed ORANGE_CONCRETE_POWDER = getItemType("orange_concrete_powder"); - ItemType.Typed MAGENTA_CONCRETE_POWDER = getItemType("magenta_concrete_powder"); - ItemType.Typed LIGHT_BLUE_CONCRETE_POWDER = getItemType("light_blue_concrete_powder"); - ItemType.Typed YELLOW_CONCRETE_POWDER = getItemType("yellow_concrete_powder"); - ItemType.Typed LIME_CONCRETE_POWDER = getItemType("lime_concrete_powder"); - ItemType.Typed PINK_CONCRETE_POWDER = getItemType("pink_concrete_powder"); - ItemType.Typed GRAY_CONCRETE_POWDER = getItemType("gray_concrete_powder"); - ItemType.Typed LIGHT_GRAY_CONCRETE_POWDER = getItemType("light_gray_concrete_powder"); - ItemType.Typed CYAN_CONCRETE_POWDER = getItemType("cyan_concrete_powder"); - ItemType.Typed PURPLE_CONCRETE_POWDER = getItemType("purple_concrete_powder"); - ItemType.Typed BLUE_CONCRETE_POWDER = getItemType("blue_concrete_powder"); - ItemType.Typed BROWN_CONCRETE_POWDER = getItemType("brown_concrete_powder"); - ItemType.Typed GREEN_CONCRETE_POWDER = getItemType("green_concrete_powder"); - ItemType.Typed RED_CONCRETE_POWDER = getItemType("red_concrete_powder"); - ItemType.Typed BLACK_CONCRETE_POWDER = getItemType("black_concrete_powder"); - ItemType.Typed TURTLE_EGG = getItemType("turtle_egg"); - ItemType.Typed SNIFFER_EGG = getItemType("sniffer_egg"); - ItemType.Typed DEAD_TUBE_CORAL_BLOCK = getItemType("dead_tube_coral_block"); - ItemType.Typed DEAD_BRAIN_CORAL_BLOCK = getItemType("dead_brain_coral_block"); - ItemType.Typed DEAD_BUBBLE_CORAL_BLOCK = getItemType("dead_bubble_coral_block"); - ItemType.Typed DEAD_FIRE_CORAL_BLOCK = getItemType("dead_fire_coral_block"); - ItemType.Typed DEAD_HORN_CORAL_BLOCK = getItemType("dead_horn_coral_block"); - ItemType.Typed TUBE_CORAL_BLOCK = getItemType("tube_coral_block"); - ItemType.Typed BRAIN_CORAL_BLOCK = getItemType("brain_coral_block"); - ItemType.Typed BUBBLE_CORAL_BLOCK = getItemType("bubble_coral_block"); - ItemType.Typed FIRE_CORAL_BLOCK = getItemType("fire_coral_block"); - ItemType.Typed HORN_CORAL_BLOCK = getItemType("horn_coral_block"); - ItemType.Typed TUBE_CORAL = getItemType("tube_coral"); - ItemType.Typed BRAIN_CORAL = getItemType("brain_coral"); - ItemType.Typed BUBBLE_CORAL = getItemType("bubble_coral"); - ItemType.Typed FIRE_CORAL = getItemType("fire_coral"); - ItemType.Typed HORN_CORAL = getItemType("horn_coral"); - ItemType.Typed DEAD_BRAIN_CORAL = getItemType("dead_brain_coral"); - ItemType.Typed DEAD_BUBBLE_CORAL = getItemType("dead_bubble_coral"); - ItemType.Typed DEAD_FIRE_CORAL = getItemType("dead_fire_coral"); - ItemType.Typed DEAD_HORN_CORAL = getItemType("dead_horn_coral"); - ItemType.Typed DEAD_TUBE_CORAL = getItemType("dead_tube_coral"); - ItemType.Typed TUBE_CORAL_FAN = getItemType("tube_coral_fan"); - ItemType.Typed BRAIN_CORAL_FAN = getItemType("brain_coral_fan"); - ItemType.Typed BUBBLE_CORAL_FAN = getItemType("bubble_coral_fan"); - ItemType.Typed FIRE_CORAL_FAN = getItemType("fire_coral_fan"); - ItemType.Typed HORN_CORAL_FAN = getItemType("horn_coral_fan"); - ItemType.Typed DEAD_TUBE_CORAL_FAN = getItemType("dead_tube_coral_fan"); - ItemType.Typed DEAD_BRAIN_CORAL_FAN = getItemType("dead_brain_coral_fan"); - ItemType.Typed DEAD_BUBBLE_CORAL_FAN = getItemType("dead_bubble_coral_fan"); - ItemType.Typed DEAD_FIRE_CORAL_FAN = getItemType("dead_fire_coral_fan"); - ItemType.Typed DEAD_HORN_CORAL_FAN = getItemType("dead_horn_coral_fan"); - ItemType.Typed BLUE_ICE = getItemType("blue_ice"); - ItemType.Typed CONDUIT = getItemType("conduit"); - ItemType.Typed POLISHED_GRANITE_STAIRS = getItemType("polished_granite_stairs"); - ItemType.Typed SMOOTH_RED_SANDSTONE_STAIRS = getItemType("smooth_red_sandstone_stairs"); - ItemType.Typed MOSSY_STONE_BRICK_STAIRS = getItemType("mossy_stone_brick_stairs"); - ItemType.Typed POLISHED_DIORITE_STAIRS = getItemType("polished_diorite_stairs"); - ItemType.Typed MOSSY_COBBLESTONE_STAIRS = getItemType("mossy_cobblestone_stairs"); - ItemType.Typed END_STONE_BRICK_STAIRS = getItemType("end_stone_brick_stairs"); - ItemType.Typed STONE_STAIRS = getItemType("stone_stairs"); - ItemType.Typed SMOOTH_SANDSTONE_STAIRS = getItemType("smooth_sandstone_stairs"); - ItemType.Typed SMOOTH_QUARTZ_STAIRS = getItemType("smooth_quartz_stairs"); - ItemType.Typed GRANITE_STAIRS = getItemType("granite_stairs"); - ItemType.Typed ANDESITE_STAIRS = getItemType("andesite_stairs"); - ItemType.Typed RED_NETHER_BRICK_STAIRS = getItemType("red_nether_brick_stairs"); - ItemType.Typed POLISHED_ANDESITE_STAIRS = getItemType("polished_andesite_stairs"); - ItemType.Typed DIORITE_STAIRS = getItemType("diorite_stairs"); - ItemType.Typed COBBLED_DEEPSLATE_STAIRS = getItemType("cobbled_deepslate_stairs"); - ItemType.Typed POLISHED_DEEPSLATE_STAIRS = getItemType("polished_deepslate_stairs"); - ItemType.Typed DEEPSLATE_BRICK_STAIRS = getItemType("deepslate_brick_stairs"); - ItemType.Typed DEEPSLATE_TILE_STAIRS = getItemType("deepslate_tile_stairs"); - ItemType.Typed POLISHED_GRANITE_SLAB = getItemType("polished_granite_slab"); - ItemType.Typed SMOOTH_RED_SANDSTONE_SLAB = getItemType("smooth_red_sandstone_slab"); - ItemType.Typed MOSSY_STONE_BRICK_SLAB = getItemType("mossy_stone_brick_slab"); - ItemType.Typed POLISHED_DIORITE_SLAB = getItemType("polished_diorite_slab"); - ItemType.Typed MOSSY_COBBLESTONE_SLAB = getItemType("mossy_cobblestone_slab"); - ItemType.Typed END_STONE_BRICK_SLAB = getItemType("end_stone_brick_slab"); - ItemType.Typed SMOOTH_SANDSTONE_SLAB = getItemType("smooth_sandstone_slab"); - ItemType.Typed SMOOTH_QUARTZ_SLAB = getItemType("smooth_quartz_slab"); - ItemType.Typed GRANITE_SLAB = getItemType("granite_slab"); - ItemType.Typed ANDESITE_SLAB = getItemType("andesite_slab"); - ItemType.Typed RED_NETHER_BRICK_SLAB = getItemType("red_nether_brick_slab"); - ItemType.Typed POLISHED_ANDESITE_SLAB = getItemType("polished_andesite_slab"); - ItemType.Typed DIORITE_SLAB = getItemType("diorite_slab"); - ItemType.Typed COBBLED_DEEPSLATE_SLAB = getItemType("cobbled_deepslate_slab"); - ItemType.Typed POLISHED_DEEPSLATE_SLAB = getItemType("polished_deepslate_slab"); - ItemType.Typed DEEPSLATE_BRICK_SLAB = getItemType("deepslate_brick_slab"); - ItemType.Typed DEEPSLATE_TILE_SLAB = getItemType("deepslate_tile_slab"); - ItemType.Typed SCAFFOLDING = getItemType("scaffolding"); - ItemType.Typed REDSTONE = getItemType("redstone"); - ItemType.Typed REDSTONE_TORCH = getItemType("redstone_torch"); - ItemType.Typed REDSTONE_BLOCK = getItemType("redstone_block"); - ItemType.Typed REPEATER = getItemType("repeater"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed COMPARATOR = getItemType("comparator"); - ItemType.Typed PISTON = getItemType("piston"); - ItemType.Typed STICKY_PISTON = getItemType("sticky_piston"); - ItemType.Typed SLIME_BLOCK = getItemType("slime_block"); - ItemType.Typed HONEY_BLOCK = getItemType("honey_block"); - ItemType.Typed OBSERVER = getItemType("observer"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed HOPPER = getItemType("hopper"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DISPENSER = getItemType("dispenser"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DROPPER = getItemType("dropper"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed LECTERN = getItemType("lectern"); - ItemType.Typed TARGET = getItemType("target"); - ItemType.Typed LEVER = getItemType("lever"); - ItemType.Typed LIGHTNING_ROD = getItemType("lightning_rod"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DAYLIGHT_DETECTOR = getItemType("daylight_detector"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SCULK_SENSOR = getItemType("sculk_sensor"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CALIBRATED_SCULK_SENSOR = getItemType("calibrated_sculk_sensor"); - ItemType.Typed TRIPWIRE_HOOK = getItemType("tripwire_hook"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed TRAPPED_CHEST = getItemType("trapped_chest"); - ItemType.Typed TNT = getItemType("tnt"); - ItemType.Typed REDSTONE_LAMP = getItemType("redstone_lamp"); - ItemType.Typed NOTE_BLOCK = getItemType("note_block"); - ItemType.Typed STONE_BUTTON = getItemType("stone_button"); - ItemType.Typed POLISHED_BLACKSTONE_BUTTON = getItemType("polished_blackstone_button"); - ItemType.Typed OAK_BUTTON = getItemType("oak_button"); - ItemType.Typed SPRUCE_BUTTON = getItemType("spruce_button"); - ItemType.Typed BIRCH_BUTTON = getItemType("birch_button"); - ItemType.Typed JUNGLE_BUTTON = getItemType("jungle_button"); - ItemType.Typed ACACIA_BUTTON = getItemType("acacia_button"); - ItemType.Typed CHERRY_BUTTON = getItemType("cherry_button"); - ItemType.Typed DARK_OAK_BUTTON = getItemType("dark_oak_button"); - ItemType.Typed PALE_OAK_BUTTON = getItemType("pale_oak_button"); - ItemType.Typed MANGROVE_BUTTON = getItemType("mangrove_button"); - ItemType.Typed BAMBOO_BUTTON = getItemType("bamboo_button"); - ItemType.Typed CRIMSON_BUTTON = getItemType("crimson_button"); - ItemType.Typed WARPED_BUTTON = getItemType("warped_button"); - ItemType.Typed STONE_PRESSURE_PLATE = getItemType("stone_pressure_plate"); - ItemType.Typed POLISHED_BLACKSTONE_PRESSURE_PLATE = getItemType("polished_blackstone_pressure_plate"); - ItemType.Typed LIGHT_WEIGHTED_PRESSURE_PLATE = getItemType("light_weighted_pressure_plate"); - ItemType.Typed HEAVY_WEIGHTED_PRESSURE_PLATE = getItemType("heavy_weighted_pressure_plate"); - ItemType.Typed OAK_PRESSURE_PLATE = getItemType("oak_pressure_plate"); - ItemType.Typed SPRUCE_PRESSURE_PLATE = getItemType("spruce_pressure_plate"); - ItemType.Typed BIRCH_PRESSURE_PLATE = getItemType("birch_pressure_plate"); - ItemType.Typed JUNGLE_PRESSURE_PLATE = getItemType("jungle_pressure_plate"); - ItemType.Typed ACACIA_PRESSURE_PLATE = getItemType("acacia_pressure_plate"); - ItemType.Typed CHERRY_PRESSURE_PLATE = getItemType("cherry_pressure_plate"); - ItemType.Typed DARK_OAK_PRESSURE_PLATE = getItemType("dark_oak_pressure_plate"); - ItemType.Typed PALE_OAK_PRESSURE_PLATE = getItemType("pale_oak_pressure_plate"); - ItemType.Typed MANGROVE_PRESSURE_PLATE = getItemType("mangrove_pressure_plate"); - ItemType.Typed BAMBOO_PRESSURE_PLATE = getItemType("bamboo_pressure_plate"); - ItemType.Typed CRIMSON_PRESSURE_PLATE = getItemType("crimson_pressure_plate"); - ItemType.Typed WARPED_PRESSURE_PLATE = getItemType("warped_pressure_plate"); - ItemType.Typed IRON_DOOR = getItemType("iron_door"); - ItemType.Typed OAK_DOOR = getItemType("oak_door"); - ItemType.Typed SPRUCE_DOOR = getItemType("spruce_door"); - ItemType.Typed BIRCH_DOOR = getItemType("birch_door"); - ItemType.Typed JUNGLE_DOOR = getItemType("jungle_door"); - ItemType.Typed ACACIA_DOOR = getItemType("acacia_door"); - ItemType.Typed CHERRY_DOOR = getItemType("cherry_door"); - ItemType.Typed DARK_OAK_DOOR = getItemType("dark_oak_door"); - ItemType.Typed PALE_OAK_DOOR = getItemType("pale_oak_door"); - ItemType.Typed MANGROVE_DOOR = getItemType("mangrove_door"); - ItemType.Typed BAMBOO_DOOR = getItemType("bamboo_door"); - ItemType.Typed CRIMSON_DOOR = getItemType("crimson_door"); - ItemType.Typed WARPED_DOOR = getItemType("warped_door"); - ItemType.Typed COPPER_DOOR = getItemType("copper_door"); - ItemType.Typed EXPOSED_COPPER_DOOR = getItemType("exposed_copper_door"); - ItemType.Typed WEATHERED_COPPER_DOOR = getItemType("weathered_copper_door"); - ItemType.Typed OXIDIZED_COPPER_DOOR = getItemType("oxidized_copper_door"); - ItemType.Typed WAXED_COPPER_DOOR = getItemType("waxed_copper_door"); - ItemType.Typed WAXED_EXPOSED_COPPER_DOOR = getItemType("waxed_exposed_copper_door"); - ItemType.Typed WAXED_WEATHERED_COPPER_DOOR = getItemType("waxed_weathered_copper_door"); - ItemType.Typed WAXED_OXIDIZED_COPPER_DOOR = getItemType("waxed_oxidized_copper_door"); - ItemType.Typed IRON_TRAPDOOR = getItemType("iron_trapdoor"); - ItemType.Typed OAK_TRAPDOOR = getItemType("oak_trapdoor"); - ItemType.Typed SPRUCE_TRAPDOOR = getItemType("spruce_trapdoor"); - ItemType.Typed BIRCH_TRAPDOOR = getItemType("birch_trapdoor"); - ItemType.Typed JUNGLE_TRAPDOOR = getItemType("jungle_trapdoor"); - ItemType.Typed ACACIA_TRAPDOOR = getItemType("acacia_trapdoor"); - ItemType.Typed CHERRY_TRAPDOOR = getItemType("cherry_trapdoor"); - ItemType.Typed DARK_OAK_TRAPDOOR = getItemType("dark_oak_trapdoor"); - ItemType.Typed PALE_OAK_TRAPDOOR = getItemType("pale_oak_trapdoor"); - ItemType.Typed MANGROVE_TRAPDOOR = getItemType("mangrove_trapdoor"); - ItemType.Typed BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor"); - ItemType.Typed CRIMSON_TRAPDOOR = getItemType("crimson_trapdoor"); - ItemType.Typed WARPED_TRAPDOOR = getItemType("warped_trapdoor"); - ItemType.Typed COPPER_TRAPDOOR = getItemType("copper_trapdoor"); - ItemType.Typed EXPOSED_COPPER_TRAPDOOR = getItemType("exposed_copper_trapdoor"); - ItemType.Typed WEATHERED_COPPER_TRAPDOOR = getItemType("weathered_copper_trapdoor"); - ItemType.Typed OXIDIZED_COPPER_TRAPDOOR = getItemType("oxidized_copper_trapdoor"); - ItemType.Typed WAXED_COPPER_TRAPDOOR = getItemType("waxed_copper_trapdoor"); - ItemType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getItemType("waxed_exposed_copper_trapdoor"); - ItemType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getItemType("waxed_weathered_copper_trapdoor"); - ItemType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getItemType("waxed_oxidized_copper_trapdoor"); - ItemType.Typed OAK_FENCE_GATE = getItemType("oak_fence_gate"); - ItemType.Typed SPRUCE_FENCE_GATE = getItemType("spruce_fence_gate"); - ItemType.Typed BIRCH_FENCE_GATE = getItemType("birch_fence_gate"); - ItemType.Typed JUNGLE_FENCE_GATE = getItemType("jungle_fence_gate"); - ItemType.Typed ACACIA_FENCE_GATE = getItemType("acacia_fence_gate"); - ItemType.Typed CHERRY_FENCE_GATE = getItemType("cherry_fence_gate"); - ItemType.Typed DARK_OAK_FENCE_GATE = getItemType("dark_oak_fence_gate"); - ItemType.Typed PALE_OAK_FENCE_GATE = getItemType("pale_oak_fence_gate"); - ItemType.Typed MANGROVE_FENCE_GATE = getItemType("mangrove_fence_gate"); - ItemType.Typed BAMBOO_FENCE_GATE = getItemType("bamboo_fence_gate"); - ItemType.Typed CRIMSON_FENCE_GATE = getItemType("crimson_fence_gate"); - ItemType.Typed WARPED_FENCE_GATE = getItemType("warped_fence_gate"); - ItemType.Typed POWERED_RAIL = getItemType("powered_rail"); - ItemType.Typed DETECTOR_RAIL = getItemType("detector_rail"); - ItemType.Typed RAIL = getItemType("rail"); - ItemType.Typed ACTIVATOR_RAIL = getItemType("activator_rail"); - ItemType.Typed SADDLE = getItemType("saddle"); - ItemType.Typed MINECART = getItemType("minecart"); - ItemType.Typed CHEST_MINECART = getItemType("chest_minecart"); - ItemType.Typed FURNACE_MINECART = getItemType("furnace_minecart"); - ItemType.Typed TNT_MINECART = getItemType("tnt_minecart"); - ItemType.Typed HOPPER_MINECART = getItemType("hopper_minecart"); - ItemType.Typed CARROT_ON_A_STICK = getItemType("carrot_on_a_stick"); - ItemType.Typed WARPED_FUNGUS_ON_A_STICK = getItemType("warped_fungus_on_a_stick"); - ItemType.Typed PHANTOM_MEMBRANE = getItemType("phantom_membrane"); - ItemType.Typed ELYTRA = getItemType("elytra"); - ItemType.Typed OAK_BOAT = getItemType("oak_boat"); - ItemType.Typed OAK_CHEST_BOAT = getItemType("oak_chest_boat"); - ItemType.Typed SPRUCE_BOAT = getItemType("spruce_boat"); - ItemType.Typed SPRUCE_CHEST_BOAT = getItemType("spruce_chest_boat"); - ItemType.Typed BIRCH_BOAT = getItemType("birch_boat"); - ItemType.Typed BIRCH_CHEST_BOAT = getItemType("birch_chest_boat"); - ItemType.Typed JUNGLE_BOAT = getItemType("jungle_boat"); - ItemType.Typed JUNGLE_CHEST_BOAT = getItemType("jungle_chest_boat"); + // Start generate - ItemType + // @GeneratedFrom 1.21.4 ItemType.Typed ACACIA_BOAT = getItemType("acacia_boat"); + + ItemType.Typed ACACIA_BUTTON = getItemType("acacia_button"); + ItemType.Typed ACACIA_CHEST_BOAT = getItemType("acacia_chest_boat"); - ItemType.Typed CHERRY_BOAT = getItemType("cherry_boat"); - ItemType.Typed CHERRY_CHEST_BOAT = getItemType("cherry_chest_boat"); - ItemType.Typed DARK_OAK_BOAT = getItemType("dark_oak_boat"); - ItemType.Typed DARK_OAK_CHEST_BOAT = getItemType("dark_oak_chest_boat"); - ItemType.Typed PALE_OAK_BOAT = getItemType("pale_oak_boat"); - ItemType.Typed PALE_OAK_CHEST_BOAT = getItemType("pale_oak_chest_boat"); - ItemType.Typed MANGROVE_BOAT = getItemType("mangrove_boat"); - ItemType.Typed MANGROVE_CHEST_BOAT = getItemType("mangrove_chest_boat"); - ItemType.Typed BAMBOO_RAFT = getItemType("bamboo_raft"); - ItemType.Typed BAMBOO_CHEST_RAFT = getItemType("bamboo_chest_raft"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed STRUCTURE_BLOCK = getItemType("structure_block"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed JIGSAW = getItemType("jigsaw"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed TURTLE_HELMET = getItemType("turtle_helmet"); - ItemType.Typed TURTLE_SCUTE = getItemType("turtle_scute"); - ItemType.Typed ARMADILLO_SCUTE = getItemType("armadillo_scute"); - /** - * ItemMeta: {@link ColorableArmorMeta} - */ - ItemType.Typed WOLF_ARMOR = getItemType("wolf_armor"); - ItemType.Typed FLINT_AND_STEEL = getItemType("flint_and_steel"); - ItemType.Typed BOWL = getItemType("bowl"); - ItemType.Typed APPLE = getItemType("apple"); - ItemType.Typed BOW = getItemType("bow"); - ItemType.Typed ARROW = getItemType("arrow"); - ItemType.Typed COAL = getItemType("coal"); - ItemType.Typed CHARCOAL = getItemType("charcoal"); - ItemType.Typed DIAMOND = getItemType("diamond"); - ItemType.Typed EMERALD = getItemType("emerald"); - ItemType.Typed LAPIS_LAZULI = getItemType("lapis_lazuli"); - ItemType.Typed QUARTZ = getItemType("quartz"); - ItemType.Typed AMETHYST_SHARD = getItemType("amethyst_shard"); - ItemType.Typed RAW_IRON = getItemType("raw_iron"); - ItemType.Typed IRON_INGOT = getItemType("iron_ingot"); - ItemType.Typed RAW_COPPER = getItemType("raw_copper"); - ItemType.Typed COPPER_INGOT = getItemType("copper_ingot"); - ItemType.Typed RAW_GOLD = getItemType("raw_gold"); - ItemType.Typed GOLD_INGOT = getItemType("gold_ingot"); - ItemType.Typed NETHERITE_INGOT = getItemType("netherite_ingot"); - ItemType.Typed NETHERITE_SCRAP = getItemType("netherite_scrap"); - ItemType.Typed WOODEN_SWORD = getItemType("wooden_sword"); - ItemType.Typed WOODEN_SHOVEL = getItemType("wooden_shovel"); - ItemType.Typed WOODEN_PICKAXE = getItemType("wooden_pickaxe"); - ItemType.Typed WOODEN_AXE = getItemType("wooden_axe"); - ItemType.Typed WOODEN_HOE = getItemType("wooden_hoe"); - ItemType.Typed STONE_SWORD = getItemType("stone_sword"); - ItemType.Typed STONE_SHOVEL = getItemType("stone_shovel"); - ItemType.Typed STONE_PICKAXE = getItemType("stone_pickaxe"); - ItemType.Typed STONE_AXE = getItemType("stone_axe"); - ItemType.Typed STONE_HOE = getItemType("stone_hoe"); - ItemType.Typed GOLDEN_SWORD = getItemType("golden_sword"); - ItemType.Typed GOLDEN_SHOVEL = getItemType("golden_shovel"); - ItemType.Typed GOLDEN_PICKAXE = getItemType("golden_pickaxe"); - ItemType.Typed GOLDEN_AXE = getItemType("golden_axe"); - ItemType.Typed GOLDEN_HOE = getItemType("golden_hoe"); - ItemType.Typed IRON_SWORD = getItemType("iron_sword"); - ItemType.Typed IRON_SHOVEL = getItemType("iron_shovel"); - ItemType.Typed IRON_PICKAXE = getItemType("iron_pickaxe"); - ItemType.Typed IRON_AXE = getItemType("iron_axe"); - ItemType.Typed IRON_HOE = getItemType("iron_hoe"); - ItemType.Typed DIAMOND_SWORD = getItemType("diamond_sword"); - ItemType.Typed DIAMOND_SHOVEL = getItemType("diamond_shovel"); - ItemType.Typed DIAMOND_PICKAXE = getItemType("diamond_pickaxe"); - ItemType.Typed DIAMOND_AXE = getItemType("diamond_axe"); - ItemType.Typed DIAMOND_HOE = getItemType("diamond_hoe"); - ItemType.Typed NETHERITE_SWORD = getItemType("netherite_sword"); - ItemType.Typed NETHERITE_SHOVEL = getItemType("netherite_shovel"); - ItemType.Typed NETHERITE_PICKAXE = getItemType("netherite_pickaxe"); - ItemType.Typed NETHERITE_AXE = getItemType("netherite_axe"); - ItemType.Typed NETHERITE_HOE = getItemType("netherite_hoe"); - ItemType.Typed STICK = getItemType("stick"); - ItemType.Typed MUSHROOM_STEW = getItemType("mushroom_stew"); - ItemType.Typed STRING = getItemType("string"); - ItemType.Typed FEATHER = getItemType("feather"); - ItemType.Typed GUNPOWDER = getItemType("gunpowder"); - ItemType.Typed WHEAT_SEEDS = getItemType("wheat_seeds"); - ItemType.Typed WHEAT = getItemType("wheat"); - ItemType.Typed BREAD = getItemType("bread"); - /** - * ItemMeta: {@link ColorableArmorMeta} - */ - ItemType.Typed LEATHER_HELMET = getItemType("leather_helmet"); - /** - * ItemMeta: {@link ColorableArmorMeta} - */ - ItemType.Typed LEATHER_CHESTPLATE = getItemType("leather_chestplate"); - /** - * ItemMeta: {@link ColorableArmorMeta} - */ - ItemType.Typed LEATHER_LEGGINGS = getItemType("leather_leggings"); - /** - * ItemMeta: {@link ColorableArmorMeta} - */ - ItemType.Typed LEATHER_BOOTS = getItemType("leather_boots"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed CHAINMAIL_HELMET = getItemType("chainmail_helmet"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed CHAINMAIL_CHESTPLATE = getItemType("chainmail_chestplate"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed CHAINMAIL_LEGGINGS = getItemType("chainmail_leggings"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed CHAINMAIL_BOOTS = getItemType("chainmail_boots"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed IRON_HELMET = getItemType("iron_helmet"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed IRON_CHESTPLATE = getItemType("iron_chestplate"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed IRON_LEGGINGS = getItemType("iron_leggings"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed IRON_BOOTS = getItemType("iron_boots"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed DIAMOND_HELMET = getItemType("diamond_helmet"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed DIAMOND_CHESTPLATE = getItemType("diamond_chestplate"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed DIAMOND_LEGGINGS = getItemType("diamond_leggings"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed DIAMOND_BOOTS = getItemType("diamond_boots"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed GOLDEN_HELMET = getItemType("golden_helmet"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed GOLDEN_CHESTPLATE = getItemType("golden_chestplate"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed GOLDEN_LEGGINGS = getItemType("golden_leggings"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed GOLDEN_BOOTS = getItemType("golden_boots"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed NETHERITE_HELMET = getItemType("netherite_helmet"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed NETHERITE_CHESTPLATE = getItemType("netherite_chestplate"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed NETHERITE_LEGGINGS = getItemType("netherite_leggings"); - /** - * ItemMeta: {@link ArmorMeta} - */ - ItemType.Typed NETHERITE_BOOTS = getItemType("netherite_boots"); - ItemType.Typed FLINT = getItemType("flint"); - ItemType.Typed PORKCHOP = getItemType("porkchop"); - ItemType.Typed COOKED_PORKCHOP = getItemType("cooked_porkchop"); - ItemType.Typed PAINTING = getItemType("painting"); - ItemType.Typed GOLDEN_APPLE = getItemType("golden_apple"); - ItemType.Typed ENCHANTED_GOLDEN_APPLE = getItemType("enchanted_golden_apple"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed OAK_SIGN = getItemType("oak_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SPRUCE_SIGN = getItemType("spruce_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BIRCH_SIGN = getItemType("birch_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed JUNGLE_SIGN = getItemType("jungle_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed ACACIA_SIGN = getItemType("acacia_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CHERRY_SIGN = getItemType("cherry_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DARK_OAK_SIGN = getItemType("dark_oak_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed PALE_OAK_SIGN = getItemType("pale_oak_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed MANGROVE_SIGN = getItemType("mangrove_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BAMBOO_SIGN = getItemType("bamboo_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CRIMSON_SIGN = getItemType("crimson_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed WARPED_SIGN = getItemType("warped_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed OAK_HANGING_SIGN = getItemType("oak_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SPRUCE_HANGING_SIGN = getItemType("spruce_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BIRCH_HANGING_SIGN = getItemType("birch_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed JUNGLE_HANGING_SIGN = getItemType("jungle_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed ACACIA_HANGING_SIGN = getItemType("acacia_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CHERRY_HANGING_SIGN = getItemType("cherry_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed DARK_OAK_HANGING_SIGN = getItemType("dark_oak_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed PALE_OAK_HANGING_SIGN = getItemType("pale_oak_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed MANGROVE_HANGING_SIGN = getItemType("mangrove_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BAMBOO_HANGING_SIGN = getItemType("bamboo_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CRIMSON_HANGING_SIGN = getItemType("crimson_hanging_sign"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed WARPED_HANGING_SIGN = getItemType("warped_hanging_sign"); - ItemType.Typed BUCKET = getItemType("bucket"); - ItemType.Typed WATER_BUCKET = getItemType("water_bucket"); - ItemType.Typed LAVA_BUCKET = getItemType("lava_bucket"); - ItemType.Typed POWDER_SNOW_BUCKET = getItemType("powder_snow_bucket"); - ItemType.Typed SNOWBALL = getItemType("snowball"); - ItemType.Typed LEATHER = getItemType("leather"); - ItemType.Typed MILK_BUCKET = getItemType("milk_bucket"); - ItemType.Typed PUFFERFISH_BUCKET = getItemType("pufferfish_bucket"); - ItemType.Typed SALMON_BUCKET = getItemType("salmon_bucket"); - ItemType.Typed COD_BUCKET = getItemType("cod_bucket"); - /** - * ItemMeta: {@link TropicalFishBucketMeta} - */ - ItemType.Typed TROPICAL_FISH_BUCKET = getItemType("tropical_fish_bucket"); - /** - * ItemMeta: {@link AxolotlBucketMeta} - */ - ItemType.Typed AXOLOTL_BUCKET = getItemType("axolotl_bucket"); - ItemType.Typed TADPOLE_BUCKET = getItemType("tadpole_bucket"); - ItemType.Typed BRICK = getItemType("brick"); - ItemType.Typed CLAY_BALL = getItemType("clay_ball"); - ItemType.Typed DRIED_KELP_BLOCK = getItemType("dried_kelp_block"); - ItemType.Typed PAPER = getItemType("paper"); - ItemType.Typed BOOK = getItemType("book"); - ItemType.Typed SLIME_BALL = getItemType("slime_ball"); - ItemType.Typed EGG = getItemType("egg"); - /** - * ItemMeta: {@link CompassMeta} - */ - ItemType.Typed COMPASS = getItemType("compass"); - ItemType.Typed RECOVERY_COMPASS = getItemType("recovery_compass"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed BUNDLE = getItemType("bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed WHITE_BUNDLE = getItemType("white_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed ORANGE_BUNDLE = getItemType("orange_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed MAGENTA_BUNDLE = getItemType("magenta_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed LIGHT_BLUE_BUNDLE = getItemType("light_blue_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed YELLOW_BUNDLE = getItemType("yellow_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed LIME_BUNDLE = getItemType("lime_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed PINK_BUNDLE = getItemType("pink_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed GRAY_BUNDLE = getItemType("gray_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed LIGHT_GRAY_BUNDLE = getItemType("light_gray_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed CYAN_BUNDLE = getItemType("cyan_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed PURPLE_BUNDLE = getItemType("purple_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed BLUE_BUNDLE = getItemType("blue_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed BROWN_BUNDLE = getItemType("brown_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed GREEN_BUNDLE = getItemType("green_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed RED_BUNDLE = getItemType("red_bundle"); - /** - * ItemMeta: {@link BundleMeta} - */ - ItemType.Typed BLACK_BUNDLE = getItemType("black_bundle"); - ItemType.Typed FISHING_ROD = getItemType("fishing_rod"); - ItemType.Typed CLOCK = getItemType("clock"); - ItemType.Typed SPYGLASS = getItemType("spyglass"); - ItemType.Typed GLOWSTONE_DUST = getItemType("glowstone_dust"); - ItemType.Typed COD = getItemType("cod"); - ItemType.Typed SALMON = getItemType("salmon"); - ItemType.Typed TROPICAL_FISH = getItemType("tropical_fish"); - ItemType.Typed PUFFERFISH = getItemType("pufferfish"); - ItemType.Typed COOKED_COD = getItemType("cooked_cod"); - ItemType.Typed COOKED_SALMON = getItemType("cooked_salmon"); - ItemType.Typed INK_SAC = getItemType("ink_sac"); - ItemType.Typed GLOW_INK_SAC = getItemType("glow_ink_sac"); - ItemType.Typed COCOA_BEANS = getItemType("cocoa_beans"); - ItemType.Typed WHITE_DYE = getItemType("white_dye"); - ItemType.Typed ORANGE_DYE = getItemType("orange_dye"); - ItemType.Typed MAGENTA_DYE = getItemType("magenta_dye"); - ItemType.Typed LIGHT_BLUE_DYE = getItemType("light_blue_dye"); - ItemType.Typed YELLOW_DYE = getItemType("yellow_dye"); - ItemType.Typed LIME_DYE = getItemType("lime_dye"); - ItemType.Typed PINK_DYE = getItemType("pink_dye"); - ItemType.Typed GRAY_DYE = getItemType("gray_dye"); - ItemType.Typed LIGHT_GRAY_DYE = getItemType("light_gray_dye"); - ItemType.Typed CYAN_DYE = getItemType("cyan_dye"); - ItemType.Typed PURPLE_DYE = getItemType("purple_dye"); - ItemType.Typed BLUE_DYE = getItemType("blue_dye"); - ItemType.Typed BROWN_DYE = getItemType("brown_dye"); - ItemType.Typed GREEN_DYE = getItemType("green_dye"); - ItemType.Typed RED_DYE = getItemType("red_dye"); - ItemType.Typed BLACK_DYE = getItemType("black_dye"); - ItemType.Typed BONE_MEAL = getItemType("bone_meal"); - ItemType.Typed BONE = getItemType("bone"); - ItemType.Typed SUGAR = getItemType("sugar"); - ItemType.Typed CAKE = getItemType("cake"); - ItemType.Typed WHITE_BED = getItemType("white_bed"); - ItemType.Typed ORANGE_BED = getItemType("orange_bed"); - ItemType.Typed MAGENTA_BED = getItemType("magenta_bed"); - ItemType.Typed LIGHT_BLUE_BED = getItemType("light_blue_bed"); - ItemType.Typed YELLOW_BED = getItemType("yellow_bed"); - ItemType.Typed LIME_BED = getItemType("lime_bed"); - ItemType.Typed PINK_BED = getItemType("pink_bed"); - ItemType.Typed GRAY_BED = getItemType("gray_bed"); - ItemType.Typed LIGHT_GRAY_BED = getItemType("light_gray_bed"); - ItemType.Typed CYAN_BED = getItemType("cyan_bed"); - ItemType.Typed PURPLE_BED = getItemType("purple_bed"); - ItemType.Typed BLUE_BED = getItemType("blue_bed"); - ItemType.Typed BROWN_BED = getItemType("brown_bed"); - ItemType.Typed GREEN_BED = getItemType("green_bed"); - ItemType.Typed RED_BED = getItemType("red_bed"); - ItemType.Typed BLACK_BED = getItemType("black_bed"); - ItemType.Typed COOKIE = getItemType("cookie"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CRAFTER = getItemType("crafter"); - /** - * ItemMeta: {@link MapMeta} - */ - ItemType.Typed FILLED_MAP = getItemType("filled_map"); - ItemType.Typed SHEARS = getItemType("shears"); - ItemType.Typed MELON_SLICE = getItemType("melon_slice"); - ItemType.Typed DRIED_KELP = getItemType("dried_kelp"); - ItemType.Typed PUMPKIN_SEEDS = getItemType("pumpkin_seeds"); - ItemType.Typed MELON_SEEDS = getItemType("melon_seeds"); - ItemType.Typed BEEF = getItemType("beef"); - ItemType.Typed COOKED_BEEF = getItemType("cooked_beef"); - ItemType.Typed CHICKEN = getItemType("chicken"); - ItemType.Typed COOKED_CHICKEN = getItemType("cooked_chicken"); - ItemType.Typed ROTTEN_FLESH = getItemType("rotten_flesh"); - ItemType.Typed ENDER_PEARL = getItemType("ender_pearl"); - ItemType.Typed BLAZE_ROD = getItemType("blaze_rod"); - ItemType.Typed GHAST_TEAR = getItemType("ghast_tear"); - ItemType.Typed GOLD_NUGGET = getItemType("gold_nugget"); - ItemType.Typed NETHER_WART = getItemType("nether_wart"); - ItemType.Typed GLASS_BOTTLE = getItemType("glass_bottle"); - /** - * ItemMeta: {@link PotionMeta} - */ - ItemType.Typed POTION = getItemType("potion"); - ItemType.Typed SPIDER_EYE = getItemType("spider_eye"); - ItemType.Typed FERMENTED_SPIDER_EYE = getItemType("fermented_spider_eye"); - ItemType.Typed BLAZE_POWDER = getItemType("blaze_powder"); - ItemType.Typed MAGMA_CREAM = getItemType("magma_cream"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BREWING_STAND = getItemType("brewing_stand"); - ItemType.Typed CAULDRON = getItemType("cauldron"); - ItemType.Typed ENDER_EYE = getItemType("ender_eye"); - ItemType.Typed GLISTERING_MELON_SLICE = getItemType("glistering_melon_slice"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ARMADILLO_SPAWN_EGG = getItemType("armadillo_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ALLAY_SPAWN_EGG = getItemType("allay_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed AXOLOTL_SPAWN_EGG = getItemType("axolotl_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed BAT_SPAWN_EGG = getItemType("bat_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed BEE_SPAWN_EGG = getItemType("bee_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed BLAZE_SPAWN_EGG = getItemType("blaze_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed BOGGED_SPAWN_EGG = getItemType("bogged_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed BREEZE_SPAWN_EGG = getItemType("breeze_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CAT_SPAWN_EGG = getItemType("cat_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CAMEL_SPAWN_EGG = getItemType("camel_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CAVE_SPIDER_SPAWN_EGG = getItemType("cave_spider_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CHICKEN_SPAWN_EGG = getItemType("chicken_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed COD_SPAWN_EGG = getItemType("cod_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed COW_SPAWN_EGG = getItemType("cow_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CREAKING_SPAWN_EGG = getItemType("creaking_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed CREEPER_SPAWN_EGG = getItemType("creeper_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed DOLPHIN_SPAWN_EGG = getItemType("dolphin_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed DONKEY_SPAWN_EGG = getItemType("donkey_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed DROWNED_SPAWN_EGG = getItemType("drowned_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ELDER_GUARDIAN_SPAWN_EGG = getItemType("elder_guardian_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ENDER_DRAGON_SPAWN_EGG = getItemType("ender_dragon_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ENDERMAN_SPAWN_EGG = getItemType("enderman_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ENDERMITE_SPAWN_EGG = getItemType("endermite_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed EVOKER_SPAWN_EGG = getItemType("evoker_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed FOX_SPAWN_EGG = getItemType("fox_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed FROG_SPAWN_EGG = getItemType("frog_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed GHAST_SPAWN_EGG = getItemType("ghast_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed GLOW_SQUID_SPAWN_EGG = getItemType("glow_squid_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed GOAT_SPAWN_EGG = getItemType("goat_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed GUARDIAN_SPAWN_EGG = getItemType("guardian_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed HOGLIN_SPAWN_EGG = getItemType("hoglin_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed HORSE_SPAWN_EGG = getItemType("horse_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed HUSK_SPAWN_EGG = getItemType("husk_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed IRON_GOLEM_SPAWN_EGG = getItemType("iron_golem_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed LLAMA_SPAWN_EGG = getItemType("llama_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed MAGMA_CUBE_SPAWN_EGG = getItemType("magma_cube_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed MOOSHROOM_SPAWN_EGG = getItemType("mooshroom_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed MULE_SPAWN_EGG = getItemType("mule_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed OCELOT_SPAWN_EGG = getItemType("ocelot_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PANDA_SPAWN_EGG = getItemType("panda_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PARROT_SPAWN_EGG = getItemType("parrot_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PHANTOM_SPAWN_EGG = getItemType("phantom_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PIG_SPAWN_EGG = getItemType("pig_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PIGLIN_SPAWN_EGG = getItemType("piglin_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PIGLIN_BRUTE_SPAWN_EGG = getItemType("piglin_brute_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PILLAGER_SPAWN_EGG = getItemType("pillager_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed POLAR_BEAR_SPAWN_EGG = getItemType("polar_bear_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed PUFFERFISH_SPAWN_EGG = getItemType("pufferfish_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed RABBIT_SPAWN_EGG = getItemType("rabbit_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed RAVAGER_SPAWN_EGG = getItemType("ravager_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SALMON_SPAWN_EGG = getItemType("salmon_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SHEEP_SPAWN_EGG = getItemType("sheep_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SHULKER_SPAWN_EGG = getItemType("shulker_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SILVERFISH_SPAWN_EGG = getItemType("silverfish_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SKELETON_SPAWN_EGG = getItemType("skeleton_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SKELETON_HORSE_SPAWN_EGG = getItemType("skeleton_horse_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SLIME_SPAWN_EGG = getItemType("slime_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SNIFFER_SPAWN_EGG = getItemType("sniffer_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SNOW_GOLEM_SPAWN_EGG = getItemType("snow_golem_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SPIDER_SPAWN_EGG = getItemType("spider_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed SQUID_SPAWN_EGG = getItemType("squid_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed STRAY_SPAWN_EGG = getItemType("stray_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed STRIDER_SPAWN_EGG = getItemType("strider_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed TADPOLE_SPAWN_EGG = getItemType("tadpole_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed TRADER_LLAMA_SPAWN_EGG = getItemType("trader_llama_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed TROPICAL_FISH_SPAWN_EGG = getItemType("tropical_fish_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed TURTLE_SPAWN_EGG = getItemType("turtle_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed VEX_SPAWN_EGG = getItemType("vex_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed VILLAGER_SPAWN_EGG = getItemType("villager_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed VINDICATOR_SPAWN_EGG = getItemType("vindicator_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WANDERING_TRADER_SPAWN_EGG = getItemType("wandering_trader_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WARDEN_SPAWN_EGG = getItemType("warden_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WITCH_SPAWN_EGG = getItemType("witch_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WITHER_SPAWN_EGG = getItemType("wither_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WITHER_SKELETON_SPAWN_EGG = getItemType("wither_skeleton_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed WOLF_SPAWN_EGG = getItemType("wolf_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ZOGLIN_SPAWN_EGG = getItemType("zoglin_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ZOMBIE_SPAWN_EGG = getItemType("zombie_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ZOMBIE_HORSE_SPAWN_EGG = getItemType("zombie_horse_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ZOMBIE_VILLAGER_SPAWN_EGG = getItemType("zombie_villager_spawn_egg"); - /** - * ItemMeta: {@link SpawnEggMeta} - */ - ItemType.Typed ZOMBIFIED_PIGLIN_SPAWN_EGG = getItemType("zombified_piglin_spawn_egg"); - ItemType.Typed EXPERIENCE_BOTTLE = getItemType("experience_bottle"); - ItemType.Typed FIRE_CHARGE = getItemType("fire_charge"); - ItemType.Typed WIND_CHARGE = getItemType("wind_charge"); - /** - * ItemMeta: {@link BookMeta} - */ - ItemType.Typed WRITABLE_BOOK = getItemType("writable_book"); - /** - * ItemMeta: {@link BookMeta} - */ - ItemType.Typed WRITTEN_BOOK = getItemType("written_book"); - ItemType.Typed BREEZE_ROD = getItemType("breeze_rod"); - ItemType.Typed MACE = getItemType("mace"); - ItemType.Typed ITEM_FRAME = getItemType("item_frame"); - ItemType.Typed GLOW_ITEM_FRAME = getItemType("glow_item_frame"); - ItemType.Typed FLOWER_POT = getItemType("flower_pot"); - ItemType.Typed CARROT = getItemType("carrot"); - ItemType.Typed POTATO = getItemType("potato"); - ItemType.Typed BAKED_POTATO = getItemType("baked_potato"); - ItemType.Typed POISONOUS_POTATO = getItemType("poisonous_potato"); - ItemType.Typed MAP = getItemType("map"); - ItemType.Typed GOLDEN_CARROT = getItemType("golden_carrot"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed SKELETON_SKULL = getItemType("skeleton_skull"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed WITHER_SKELETON_SKULL = getItemType("wither_skeleton_skull"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed PLAYER_HEAD = getItemType("player_head"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed ZOMBIE_HEAD = getItemType("zombie_head"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed CREEPER_HEAD = getItemType("creeper_head"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed DRAGON_HEAD = getItemType("dragon_head"); - /** - * ItemMeta: {@link SkullMeta} - */ - ItemType.Typed PIGLIN_HEAD = getItemType("piglin_head"); - ItemType.Typed NETHER_STAR = getItemType("nether_star"); - ItemType.Typed PUMPKIN_PIE = getItemType("pumpkin_pie"); - /** - * ItemMeta: {@link FireworkMeta} - */ - ItemType.Typed FIREWORK_ROCKET = getItemType("firework_rocket"); - /** - * ItemMeta: {@link FireworkEffectMeta} - */ - ItemType.Typed FIREWORK_STAR = getItemType("firework_star"); - /** - * ItemMeta: {@link EnchantmentStorageMeta} - */ - ItemType.Typed ENCHANTED_BOOK = getItemType("enchanted_book"); - ItemType.Typed NETHER_BRICK = getItemType("nether_brick"); - ItemType.Typed RESIN_BRICK = getItemType("resin_brick"); - ItemType.Typed PRISMARINE_SHARD = getItemType("prismarine_shard"); - ItemType.Typed PRISMARINE_CRYSTALS = getItemType("prismarine_crystals"); - ItemType.Typed RABBIT = getItemType("rabbit"); - ItemType.Typed COOKED_RABBIT = getItemType("cooked_rabbit"); - ItemType.Typed RABBIT_STEW = getItemType("rabbit_stew"); - ItemType.Typed RABBIT_FOOT = getItemType("rabbit_foot"); - ItemType.Typed RABBIT_HIDE = getItemType("rabbit_hide"); - ItemType.Typed ARMOR_STAND = getItemType("armor_stand"); - ItemType.Typed IRON_HORSE_ARMOR = getItemType("iron_horse_armor"); - ItemType.Typed GOLDEN_HORSE_ARMOR = getItemType("golden_horse_armor"); - ItemType.Typed DIAMOND_HORSE_ARMOR = getItemType("diamond_horse_armor"); - /** - * ItemMeta: {@link LeatherArmorMeta} - */ - ItemType.Typed LEATHER_HORSE_ARMOR = getItemType("leather_horse_armor"); - ItemType.Typed LEAD = getItemType("lead"); - ItemType.Typed NAME_TAG = getItemType("name_tag"); - ItemType.Typed COMMAND_BLOCK_MINECART = getItemType("command_block_minecart"); - ItemType.Typed MUTTON = getItemType("mutton"); - ItemType.Typed COOKED_MUTTON = getItemType("cooked_mutton"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed WHITE_BANNER = getItemType("white_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed ORANGE_BANNER = getItemType("orange_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed MAGENTA_BANNER = getItemType("magenta_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed LIGHT_BLUE_BANNER = getItemType("light_blue_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed YELLOW_BANNER = getItemType("yellow_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed LIME_BANNER = getItemType("lime_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed PINK_BANNER = getItemType("pink_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed GRAY_BANNER = getItemType("gray_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed LIGHT_GRAY_BANNER = getItemType("light_gray_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed CYAN_BANNER = getItemType("cyan_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed PURPLE_BANNER = getItemType("purple_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed BLUE_BANNER = getItemType("blue_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed BROWN_BANNER = getItemType("brown_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed GREEN_BANNER = getItemType("green_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed RED_BANNER = getItemType("red_banner"); - /** - * ItemMeta: {@link BannerMeta} - */ - ItemType.Typed BLACK_BANNER = getItemType("black_banner"); - ItemType.Typed END_CRYSTAL = getItemType("end_crystal"); - ItemType.Typed CHORUS_FRUIT = getItemType("chorus_fruit"); - ItemType.Typed POPPED_CHORUS_FRUIT = getItemType("popped_chorus_fruit"); - ItemType.Typed TORCHFLOWER_SEEDS = getItemType("torchflower_seeds"); - ItemType.Typed PITCHER_POD = getItemType("pitcher_pod"); - ItemType.Typed BEETROOT = getItemType("beetroot"); - ItemType.Typed BEETROOT_SEEDS = getItemType("beetroot_seeds"); - ItemType.Typed BEETROOT_SOUP = getItemType("beetroot_soup"); - ItemType.Typed DRAGON_BREATH = getItemType("dragon_breath"); - /** - * ItemMeta: {@link PotionMeta} - */ - ItemType.Typed SPLASH_POTION = getItemType("splash_potion"); - ItemType.Typed SPECTRAL_ARROW = getItemType("spectral_arrow"); - /** - * ItemMeta: {@link PotionMeta} - */ - ItemType.Typed TIPPED_ARROW = getItemType("tipped_arrow"); - /** - * ItemMeta: {@link PotionMeta} - */ - ItemType.Typed LINGERING_POTION = getItemType("lingering_potion"); - /** - * ItemMeta: {@link ShieldMeta} - */ - ItemType.Typed SHIELD = getItemType("shield"); - ItemType.Typed TOTEM_OF_UNDYING = getItemType("totem_of_undying"); - ItemType.Typed SHULKER_SHELL = getItemType("shulker_shell"); - ItemType.Typed IRON_NUGGET = getItemType("iron_nugget"); - /** - * ItemMeta: {@link KnowledgeBookMeta} - */ - ItemType.Typed KNOWLEDGE_BOOK = getItemType("knowledge_book"); - ItemType.Typed DEBUG_STICK = getItemType("debug_stick"); - ItemType.Typed MUSIC_DISC_13 = getItemType("music_disc_13"); - ItemType.Typed MUSIC_DISC_CAT = getItemType("music_disc_cat"); - ItemType.Typed MUSIC_DISC_BLOCKS = getItemType("music_disc_blocks"); - ItemType.Typed MUSIC_DISC_CHIRP = getItemType("music_disc_chirp"); - ItemType.Typed MUSIC_DISC_CREATOR = getItemType("music_disc_creator"); - ItemType.Typed MUSIC_DISC_CREATOR_MUSIC_BOX = getItemType("music_disc_creator_music_box"); - ItemType.Typed MUSIC_DISC_FAR = getItemType("music_disc_far"); - ItemType.Typed MUSIC_DISC_MALL = getItemType("music_disc_mall"); - ItemType.Typed MUSIC_DISC_MELLOHI = getItemType("music_disc_mellohi"); - ItemType.Typed MUSIC_DISC_STAL = getItemType("music_disc_stal"); - ItemType.Typed MUSIC_DISC_STRAD = getItemType("music_disc_strad"); - ItemType.Typed MUSIC_DISC_WARD = getItemType("music_disc_ward"); - ItemType.Typed MUSIC_DISC_11 = getItemType("music_disc_11"); - ItemType.Typed MUSIC_DISC_WAIT = getItemType("music_disc_wait"); - ItemType.Typed MUSIC_DISC_OTHERSIDE = getItemType("music_disc_otherside"); - ItemType.Typed MUSIC_DISC_RELIC = getItemType("music_disc_relic"); - ItemType.Typed MUSIC_DISC_5 = getItemType("music_disc_5"); - ItemType.Typed MUSIC_DISC_PIGSTEP = getItemType("music_disc_pigstep"); - ItemType.Typed MUSIC_DISC_PRECIPICE = getItemType("music_disc_precipice"); - ItemType.Typed DISC_FRAGMENT_5 = getItemType("disc_fragment_5"); - ItemType.Typed TRIDENT = getItemType("trident"); - ItemType.Typed NAUTILUS_SHELL = getItemType("nautilus_shell"); - ItemType.Typed HEART_OF_THE_SEA = getItemType("heart_of_the_sea"); - /** - * ItemMeta: {@link CrossbowMeta} - */ - ItemType.Typed CROSSBOW = getItemType("crossbow"); - /** - * ItemMeta: {@link SuspiciousStewMeta} - */ - ItemType.Typed SUSPICIOUS_STEW = getItemType("suspicious_stew"); - ItemType.Typed LOOM = getItemType("loom"); - ItemType.Typed FLOWER_BANNER_PATTERN = getItemType("flower_banner_pattern"); - ItemType.Typed CREEPER_BANNER_PATTERN = getItemType("creeper_banner_pattern"); - ItemType.Typed SKULL_BANNER_PATTERN = getItemType("skull_banner_pattern"); - ItemType.Typed MOJANG_BANNER_PATTERN = getItemType("mojang_banner_pattern"); - ItemType.Typed GLOBE_BANNER_PATTERN = getItemType("globe_banner_pattern"); - ItemType.Typed PIGLIN_BANNER_PATTERN = getItemType("piglin_banner_pattern"); - ItemType.Typed FLOW_BANNER_PATTERN = getItemType("flow_banner_pattern"); - ItemType.Typed GUSTER_BANNER_PATTERN = getItemType("guster_banner_pattern"); - ItemType.Typed FIELD_MASONED_BANNER_PATTERN = getItemType("field_masoned_banner_pattern"); - ItemType.Typed BORDURE_INDENTED_BANNER_PATTERN = getItemType("bordure_indented_banner_pattern"); - /** - * ItemMeta: {@link MusicInstrumentMeta} - */ - ItemType.Typed GOAT_HORN = getItemType("goat_horn"); - ItemType.Typed COMPOSTER = getItemType("composter"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BARREL = getItemType("barrel"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SMOKER = getItemType("smoker"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BLAST_FURNACE = getItemType("blast_furnace"); - ItemType.Typed CARTOGRAPHY_TABLE = getItemType("cartography_table"); - ItemType.Typed FLETCHING_TABLE = getItemType("fletching_table"); - ItemType.Typed GRINDSTONE = getItemType("grindstone"); - ItemType.Typed SMITHING_TABLE = getItemType("smithing_table"); - ItemType.Typed STONECUTTER = getItemType("stonecutter"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BELL = getItemType("bell"); - ItemType.Typed LANTERN = getItemType("lantern"); - ItemType.Typed SOUL_LANTERN = getItemType("soul_lantern"); - ItemType.Typed SWEET_BERRIES = getItemType("sweet_berries"); - ItemType.Typed GLOW_BERRIES = getItemType("glow_berries"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed CAMPFIRE = getItemType("campfire"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed SOUL_CAMPFIRE = getItemType("soul_campfire"); - ItemType.Typed SHROOMLIGHT = getItemType("shroomlight"); - ItemType.Typed HONEYCOMB = getItemType("honeycomb"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BEE_NEST = getItemType("bee_nest"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed BEEHIVE = getItemType("beehive"); - ItemType.Typed HONEY_BOTTLE = getItemType("honey_bottle"); - ItemType.Typed HONEYCOMB_BLOCK = getItemType("honeycomb_block"); - ItemType.Typed LODESTONE = getItemType("lodestone"); - ItemType.Typed CRYING_OBSIDIAN = getItemType("crying_obsidian"); - ItemType.Typed BLACKSTONE = getItemType("blackstone"); - ItemType.Typed BLACKSTONE_SLAB = getItemType("blackstone_slab"); - ItemType.Typed BLACKSTONE_STAIRS = getItemType("blackstone_stairs"); - ItemType.Typed GILDED_BLACKSTONE = getItemType("gilded_blackstone"); - ItemType.Typed POLISHED_BLACKSTONE = getItemType("polished_blackstone"); - ItemType.Typed POLISHED_BLACKSTONE_SLAB = getItemType("polished_blackstone_slab"); - ItemType.Typed POLISHED_BLACKSTONE_STAIRS = getItemType("polished_blackstone_stairs"); - ItemType.Typed CHISELED_POLISHED_BLACKSTONE = getItemType("chiseled_polished_blackstone"); - ItemType.Typed POLISHED_BLACKSTONE_BRICKS = getItemType("polished_blackstone_bricks"); - ItemType.Typed POLISHED_BLACKSTONE_BRICK_SLAB = getItemType("polished_blackstone_brick_slab"); - ItemType.Typed POLISHED_BLACKSTONE_BRICK_STAIRS = getItemType("polished_blackstone_brick_stairs"); - ItemType.Typed CRACKED_POLISHED_BLACKSTONE_BRICKS = getItemType("cracked_polished_blackstone_bricks"); - ItemType.Typed RESPAWN_ANCHOR = getItemType("respawn_anchor"); - ItemType.Typed CANDLE = getItemType("candle"); - ItemType.Typed WHITE_CANDLE = getItemType("white_candle"); - ItemType.Typed ORANGE_CANDLE = getItemType("orange_candle"); - ItemType.Typed MAGENTA_CANDLE = getItemType("magenta_candle"); - ItemType.Typed LIGHT_BLUE_CANDLE = getItemType("light_blue_candle"); - ItemType.Typed YELLOW_CANDLE = getItemType("yellow_candle"); - ItemType.Typed LIME_CANDLE = getItemType("lime_candle"); - ItemType.Typed PINK_CANDLE = getItemType("pink_candle"); - ItemType.Typed GRAY_CANDLE = getItemType("gray_candle"); - ItemType.Typed LIGHT_GRAY_CANDLE = getItemType("light_gray_candle"); - ItemType.Typed CYAN_CANDLE = getItemType("cyan_candle"); - ItemType.Typed PURPLE_CANDLE = getItemType("purple_candle"); - ItemType.Typed BLUE_CANDLE = getItemType("blue_candle"); - ItemType.Typed BROWN_CANDLE = getItemType("brown_candle"); - ItemType.Typed GREEN_CANDLE = getItemType("green_candle"); - ItemType.Typed RED_CANDLE = getItemType("red_candle"); - ItemType.Typed BLACK_CANDLE = getItemType("black_candle"); - ItemType.Typed SMALL_AMETHYST_BUD = getItemType("small_amethyst_bud"); - ItemType.Typed MEDIUM_AMETHYST_BUD = getItemType("medium_amethyst_bud"); - ItemType.Typed LARGE_AMETHYST_BUD = getItemType("large_amethyst_bud"); + + ItemType.Typed ACACIA_DOOR = getItemType("acacia_door"); + + ItemType.Typed ACACIA_FENCE = getItemType("acacia_fence"); + + ItemType.Typed ACACIA_FENCE_GATE = getItemType("acacia_fence_gate"); + + ItemType.Typed ACACIA_HANGING_SIGN = getItemType("acacia_hanging_sign"); + + ItemType.Typed ACACIA_LEAVES = getItemType("acacia_leaves"); + + ItemType.Typed ACACIA_LOG = getItemType("acacia_log"); + + ItemType.Typed ACACIA_PLANKS = getItemType("acacia_planks"); + + ItemType.Typed ACACIA_PRESSURE_PLATE = getItemType("acacia_pressure_plate"); + + ItemType.Typed ACACIA_SAPLING = getItemType("acacia_sapling"); + + ItemType.Typed ACACIA_SIGN = getItemType("acacia_sign"); + + ItemType.Typed ACACIA_SLAB = getItemType("acacia_slab"); + + ItemType.Typed ACACIA_STAIRS = getItemType("acacia_stairs"); + + ItemType.Typed ACACIA_TRAPDOOR = getItemType("acacia_trapdoor"); + + ItemType.Typed ACACIA_WOOD = getItemType("acacia_wood"); + + ItemType.Typed ACTIVATOR_RAIL = getItemType("activator_rail"); + + ItemType AIR = getItemType("air"); + + ItemType.Typed ALLAY_SPAWN_EGG = getItemType("allay_spawn_egg"); + + ItemType.Typed ALLIUM = getItemType("allium"); + + ItemType.Typed AMETHYST_BLOCK = getItemType("amethyst_block"); + ItemType.Typed AMETHYST_CLUSTER = getItemType("amethyst_cluster"); - ItemType.Typed POINTED_DRIPSTONE = getItemType("pointed_dripstone"); - ItemType.Typed OCHRE_FROGLIGHT = getItemType("ochre_froglight"); - ItemType.Typed VERDANT_FROGLIGHT = getItemType("verdant_froglight"); - ItemType.Typed PEARLESCENT_FROGLIGHT = getItemType("pearlescent_froglight"); - ItemType.Typed FROGSPAWN = getItemType("frogspawn"); - ItemType.Typed ECHO_SHARD = getItemType("echo_shard"); - ItemType.Typed BRUSH = getItemType("brush"); - ItemType.Typed NETHERITE_UPGRADE_SMITHING_TEMPLATE = getItemType("netherite_upgrade_smithing_template"); - ItemType.Typed SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("sentry_armor_trim_smithing_template"); - ItemType.Typed DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("dune_armor_trim_smithing_template"); - ItemType.Typed COAST_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("coast_armor_trim_smithing_template"); - ItemType.Typed WILD_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("wild_armor_trim_smithing_template"); - ItemType.Typed WARD_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("ward_armor_trim_smithing_template"); - ItemType.Typed EYE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("eye_armor_trim_smithing_template"); - ItemType.Typed VEX_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("vex_armor_trim_smithing_template"); - ItemType.Typed TIDE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("tide_armor_trim_smithing_template"); - ItemType.Typed SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("snout_armor_trim_smithing_template"); - ItemType.Typed RIB_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("rib_armor_trim_smithing_template"); - ItemType.Typed SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("spire_armor_trim_smithing_template"); - ItemType.Typed WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("wayfinder_armor_trim_smithing_template"); - ItemType.Typed SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("shaper_armor_trim_smithing_template"); - ItemType.Typed SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("silence_armor_trim_smithing_template"); - ItemType.Typed RAISER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("raiser_armor_trim_smithing_template"); - ItemType.Typed HOST_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("host_armor_trim_smithing_template"); - ItemType.Typed FLOW_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("flow_armor_trim_smithing_template"); - ItemType.Typed BOLT_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("bolt_armor_trim_smithing_template"); + + ItemType.Typed AMETHYST_SHARD = getItemType("amethyst_shard"); + + ItemType.Typed ANCIENT_DEBRIS = getItemType("ancient_debris"); + + ItemType.Typed ANDESITE = getItemType("andesite"); + + ItemType.Typed ANDESITE_SLAB = getItemType("andesite_slab"); + + ItemType.Typed ANDESITE_STAIRS = getItemType("andesite_stairs"); + + ItemType.Typed ANDESITE_WALL = getItemType("andesite_wall"); + ItemType.Typed ANGLER_POTTERY_SHERD = getItemType("angler_pottery_sherd"); + + ItemType.Typed ANVIL = getItemType("anvil"); + + ItemType.Typed APPLE = getItemType("apple"); + ItemType.Typed ARCHER_POTTERY_SHERD = getItemType("archer_pottery_sherd"); + + ItemType.Typed ARMADILLO_SCUTE = getItemType("armadillo_scute"); + + ItemType.Typed ARMADILLO_SPAWN_EGG = getItemType("armadillo_spawn_egg"); + + ItemType.Typed ARMOR_STAND = getItemType("armor_stand"); + ItemType.Typed ARMS_UP_POTTERY_SHERD = getItemType("arms_up_pottery_sherd"); + + ItemType.Typed ARROW = getItemType("arrow"); + + ItemType.Typed AXOLOTL_BUCKET = getItemType("axolotl_bucket"); + + ItemType.Typed AXOLOTL_SPAWN_EGG = getItemType("axolotl_spawn_egg"); + + ItemType.Typed AZALEA = getItemType("azalea"); + + ItemType.Typed AZALEA_LEAVES = getItemType("azalea_leaves"); + + ItemType.Typed AZURE_BLUET = getItemType("azure_bluet"); + + ItemType.Typed BAKED_POTATO = getItemType("baked_potato"); + + ItemType.Typed BAMBOO = getItemType("bamboo"); + + ItemType.Typed BAMBOO_BLOCK = getItemType("bamboo_block"); + + ItemType.Typed BAMBOO_BUTTON = getItemType("bamboo_button"); + + ItemType.Typed BAMBOO_CHEST_RAFT = getItemType("bamboo_chest_raft"); + + ItemType.Typed BAMBOO_DOOR = getItemType("bamboo_door"); + + ItemType.Typed BAMBOO_FENCE = getItemType("bamboo_fence"); + + ItemType.Typed BAMBOO_FENCE_GATE = getItemType("bamboo_fence_gate"); + + ItemType.Typed BAMBOO_HANGING_SIGN = getItemType("bamboo_hanging_sign"); + + ItemType.Typed BAMBOO_MOSAIC = getItemType("bamboo_mosaic"); + + ItemType.Typed BAMBOO_MOSAIC_SLAB = getItemType("bamboo_mosaic_slab"); + + ItemType.Typed BAMBOO_MOSAIC_STAIRS = getItemType("bamboo_mosaic_stairs"); + + ItemType.Typed BAMBOO_PLANKS = getItemType("bamboo_planks"); + + ItemType.Typed BAMBOO_PRESSURE_PLATE = getItemType("bamboo_pressure_plate"); + + ItemType.Typed BAMBOO_RAFT = getItemType("bamboo_raft"); + + ItemType.Typed BAMBOO_SIGN = getItemType("bamboo_sign"); + + ItemType.Typed BAMBOO_SLAB = getItemType("bamboo_slab"); + + ItemType.Typed BAMBOO_STAIRS = getItemType("bamboo_stairs"); + + ItemType.Typed BAMBOO_TRAPDOOR = getItemType("bamboo_trapdoor"); + + ItemType.Typed BARREL = getItemType("barrel"); + + ItemType.Typed BARRIER = getItemType("barrier"); + + ItemType.Typed BASALT = getItemType("basalt"); + + ItemType.Typed BAT_SPAWN_EGG = getItemType("bat_spawn_egg"); + + ItemType.Typed BEACON = getItemType("beacon"); + + ItemType.Typed BEDROCK = getItemType("bedrock"); + + ItemType.Typed BEE_NEST = getItemType("bee_nest"); + + ItemType.Typed BEE_SPAWN_EGG = getItemType("bee_spawn_egg"); + + ItemType.Typed BEEF = getItemType("beef"); + + ItemType.Typed BEEHIVE = getItemType("beehive"); + + ItemType.Typed BEETROOT = getItemType("beetroot"); + + ItemType.Typed BEETROOT_SEEDS = getItemType("beetroot_seeds"); + + ItemType.Typed BEETROOT_SOUP = getItemType("beetroot_soup"); + + ItemType.Typed BELL = getItemType("bell"); + + ItemType.Typed BIG_DRIPLEAF = getItemType("big_dripleaf"); + + ItemType.Typed BIRCH_BOAT = getItemType("birch_boat"); + + ItemType.Typed BIRCH_BUTTON = getItemType("birch_button"); + + ItemType.Typed BIRCH_CHEST_BOAT = getItemType("birch_chest_boat"); + + ItemType.Typed BIRCH_DOOR = getItemType("birch_door"); + + ItemType.Typed BIRCH_FENCE = getItemType("birch_fence"); + + ItemType.Typed BIRCH_FENCE_GATE = getItemType("birch_fence_gate"); + + ItemType.Typed BIRCH_HANGING_SIGN = getItemType("birch_hanging_sign"); + + ItemType.Typed BIRCH_LEAVES = getItemType("birch_leaves"); + + ItemType.Typed BIRCH_LOG = getItemType("birch_log"); + + ItemType.Typed BIRCH_PLANKS = getItemType("birch_planks"); + + ItemType.Typed BIRCH_PRESSURE_PLATE = getItemType("birch_pressure_plate"); + + ItemType.Typed BIRCH_SAPLING = getItemType("birch_sapling"); + + ItemType.Typed BIRCH_SIGN = getItemType("birch_sign"); + + ItemType.Typed BIRCH_SLAB = getItemType("birch_slab"); + + ItemType.Typed BIRCH_STAIRS = getItemType("birch_stairs"); + + ItemType.Typed BIRCH_TRAPDOOR = getItemType("birch_trapdoor"); + + ItemType.Typed BIRCH_WOOD = getItemType("birch_wood"); + + ItemType.Typed BLACK_BANNER = getItemType("black_banner"); + + ItemType.Typed BLACK_BED = getItemType("black_bed"); + + ItemType.Typed BLACK_BUNDLE = getItemType("black_bundle"); + + ItemType.Typed BLACK_CANDLE = getItemType("black_candle"); + + ItemType.Typed BLACK_CARPET = getItemType("black_carpet"); + + ItemType.Typed BLACK_CONCRETE = getItemType("black_concrete"); + + ItemType.Typed BLACK_CONCRETE_POWDER = getItemType("black_concrete_powder"); + + ItemType.Typed BLACK_DYE = getItemType("black_dye"); + + ItemType.Typed BLACK_GLAZED_TERRACOTTA = getItemType("black_glazed_terracotta"); + + ItemType.Typed BLACK_SHULKER_BOX = getItemType("black_shulker_box"); + + ItemType.Typed BLACK_STAINED_GLASS = getItemType("black_stained_glass"); + + ItemType.Typed BLACK_STAINED_GLASS_PANE = getItemType("black_stained_glass_pane"); + + ItemType.Typed BLACK_TERRACOTTA = getItemType("black_terracotta"); + + ItemType.Typed BLACK_WOOL = getItemType("black_wool"); + + ItemType.Typed BLACKSTONE = getItemType("blackstone"); + + ItemType.Typed BLACKSTONE_SLAB = getItemType("blackstone_slab"); + + ItemType.Typed BLACKSTONE_STAIRS = getItemType("blackstone_stairs"); + + ItemType.Typed BLACKSTONE_WALL = getItemType("blackstone_wall"); + ItemType.Typed BLADE_POTTERY_SHERD = getItemType("blade_pottery_sherd"); + + ItemType.Typed BLAST_FURNACE = getItemType("blast_furnace"); + + ItemType.Typed BLAZE_POWDER = getItemType("blaze_powder"); + + ItemType.Typed BLAZE_ROD = getItemType("blaze_rod"); + + ItemType.Typed BLAZE_SPAWN_EGG = getItemType("blaze_spawn_egg"); + + ItemType.Typed BLUE_BANNER = getItemType("blue_banner"); + + ItemType.Typed BLUE_BED = getItemType("blue_bed"); + + ItemType.Typed BLUE_BUNDLE = getItemType("blue_bundle"); + + ItemType.Typed BLUE_CANDLE = getItemType("blue_candle"); + + ItemType.Typed BLUE_CARPET = getItemType("blue_carpet"); + + ItemType.Typed BLUE_CONCRETE = getItemType("blue_concrete"); + + ItemType.Typed BLUE_CONCRETE_POWDER = getItemType("blue_concrete_powder"); + + ItemType.Typed BLUE_DYE = getItemType("blue_dye"); + + ItemType.Typed BLUE_GLAZED_TERRACOTTA = getItemType("blue_glazed_terracotta"); + + ItemType.Typed BLUE_ICE = getItemType("blue_ice"); + + ItemType.Typed BLUE_ORCHID = getItemType("blue_orchid"); + + ItemType.Typed BLUE_SHULKER_BOX = getItemType("blue_shulker_box"); + + ItemType.Typed BLUE_STAINED_GLASS = getItemType("blue_stained_glass"); + + ItemType.Typed BLUE_STAINED_GLASS_PANE = getItemType("blue_stained_glass_pane"); + + ItemType.Typed BLUE_TERRACOTTA = getItemType("blue_terracotta"); + + ItemType.Typed BLUE_WOOL = getItemType("blue_wool"); + + ItemType.Typed BOGGED_SPAWN_EGG = getItemType("bogged_spawn_egg"); + + ItemType.Typed BOLT_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("bolt_armor_trim_smithing_template"); + + ItemType.Typed BONE = getItemType("bone"); + + ItemType.Typed BONE_BLOCK = getItemType("bone_block"); + + ItemType.Typed BONE_MEAL = getItemType("bone_meal"); + + ItemType.Typed BOOK = getItemType("book"); + + ItemType.Typed BOOKSHELF = getItemType("bookshelf"); + + ItemType.Typed BORDURE_INDENTED_BANNER_PATTERN = getItemType("bordure_indented_banner_pattern"); + + ItemType.Typed BOW = getItemType("bow"); + + ItemType.Typed BOWL = getItemType("bowl"); + + ItemType.Typed BRAIN_CORAL = getItemType("brain_coral"); + + ItemType.Typed BRAIN_CORAL_BLOCK = getItemType("brain_coral_block"); + + ItemType.Typed BRAIN_CORAL_FAN = getItemType("brain_coral_fan"); + + ItemType.Typed BREAD = getItemType("bread"); + + ItemType.Typed BREEZE_ROD = getItemType("breeze_rod"); + + ItemType.Typed BREEZE_SPAWN_EGG = getItemType("breeze_spawn_egg"); + ItemType.Typed BREWER_POTTERY_SHERD = getItemType("brewer_pottery_sherd"); + + ItemType.Typed BREWING_STAND = getItemType("brewing_stand"); + + ItemType.Typed BRICK = getItemType("brick"); + + ItemType.Typed BRICK_SLAB = getItemType("brick_slab"); + + ItemType.Typed BRICK_STAIRS = getItemType("brick_stairs"); + + ItemType.Typed BRICK_WALL = getItemType("brick_wall"); + + ItemType.Typed BRICKS = getItemType("bricks"); + + ItemType.Typed BROWN_BANNER = getItemType("brown_banner"); + + ItemType.Typed BROWN_BED = getItemType("brown_bed"); + + ItemType.Typed BROWN_BUNDLE = getItemType("brown_bundle"); + + ItemType.Typed BROWN_CANDLE = getItemType("brown_candle"); + + ItemType.Typed BROWN_CARPET = getItemType("brown_carpet"); + + ItemType.Typed BROWN_CONCRETE = getItemType("brown_concrete"); + + ItemType.Typed BROWN_CONCRETE_POWDER = getItemType("brown_concrete_powder"); + + ItemType.Typed BROWN_DYE = getItemType("brown_dye"); + + ItemType.Typed BROWN_GLAZED_TERRACOTTA = getItemType("brown_glazed_terracotta"); + + ItemType.Typed BROWN_MUSHROOM = getItemType("brown_mushroom"); + + ItemType.Typed BROWN_MUSHROOM_BLOCK = getItemType("brown_mushroom_block"); + + ItemType.Typed BROWN_SHULKER_BOX = getItemType("brown_shulker_box"); + + ItemType.Typed BROWN_STAINED_GLASS = getItemType("brown_stained_glass"); + + ItemType.Typed BROWN_STAINED_GLASS_PANE = getItemType("brown_stained_glass_pane"); + + ItemType.Typed BROWN_TERRACOTTA = getItemType("brown_terracotta"); + + ItemType.Typed BROWN_WOOL = getItemType("brown_wool"); + + ItemType.Typed BRUSH = getItemType("brush"); + + ItemType.Typed BUBBLE_CORAL = getItemType("bubble_coral"); + + ItemType.Typed BUBBLE_CORAL_BLOCK = getItemType("bubble_coral_block"); + + ItemType.Typed BUBBLE_CORAL_FAN = getItemType("bubble_coral_fan"); + + ItemType.Typed BUCKET = getItemType("bucket"); + + ItemType.Typed BUDDING_AMETHYST = getItemType("budding_amethyst"); + + ItemType.Typed BUNDLE = getItemType("bundle"); + ItemType.Typed BURN_POTTERY_SHERD = getItemType("burn_pottery_sherd"); - ItemType.Typed DANGER_POTTERY_SHERD = getItemType("danger_pottery_sherd"); - ItemType.Typed EXPLORER_POTTERY_SHERD = getItemType("explorer_pottery_sherd"); - ItemType.Typed FLOW_POTTERY_SHERD = getItemType("flow_pottery_sherd"); - ItemType.Typed FRIEND_POTTERY_SHERD = getItemType("friend_pottery_sherd"); - ItemType.Typed GUSTER_POTTERY_SHERD = getItemType("guster_pottery_sherd"); - ItemType.Typed HEART_POTTERY_SHERD = getItemType("heart_pottery_sherd"); - ItemType.Typed HEARTBREAK_POTTERY_SHERD = getItemType("heartbreak_pottery_sherd"); - ItemType.Typed HOWL_POTTERY_SHERD = getItemType("howl_pottery_sherd"); - ItemType.Typed MINER_POTTERY_SHERD = getItemType("miner_pottery_sherd"); - ItemType.Typed MOURNER_POTTERY_SHERD = getItemType("mourner_pottery_sherd"); - ItemType.Typed PLENTY_POTTERY_SHERD = getItemType("plenty_pottery_sherd"); - ItemType.Typed PRIZE_POTTERY_SHERD = getItemType("prize_pottery_sherd"); - ItemType.Typed SCRAPE_POTTERY_SHERD = getItemType("scrape_pottery_sherd"); - ItemType.Typed SHEAF_POTTERY_SHERD = getItemType("sheaf_pottery_sherd"); - ItemType.Typed SHELTER_POTTERY_SHERD = getItemType("shelter_pottery_sherd"); - ItemType.Typed SKULL_POTTERY_SHERD = getItemType("skull_pottery_sherd"); - ItemType.Typed SNORT_POTTERY_SHERD = getItemType("snort_pottery_sherd"); - ItemType.Typed COPPER_GRATE = getItemType("copper_grate"); - ItemType.Typed EXPOSED_COPPER_GRATE = getItemType("exposed_copper_grate"); - ItemType.Typed WEATHERED_COPPER_GRATE = getItemType("weathered_copper_grate"); - ItemType.Typed OXIDIZED_COPPER_GRATE = getItemType("oxidized_copper_grate"); - ItemType.Typed WAXED_COPPER_GRATE = getItemType("waxed_copper_grate"); - ItemType.Typed WAXED_EXPOSED_COPPER_GRATE = getItemType("waxed_exposed_copper_grate"); - ItemType.Typed WAXED_WEATHERED_COPPER_GRATE = getItemType("waxed_weathered_copper_grate"); - ItemType.Typed WAXED_OXIDIZED_COPPER_GRATE = getItemType("waxed_oxidized_copper_grate"); + + ItemType.Typed CACTUS = getItemType("cactus"); + + ItemType.Typed CAKE = getItemType("cake"); + + ItemType.Typed CALCITE = getItemType("calcite"); + + ItemType.Typed CALIBRATED_SCULK_SENSOR = getItemType("calibrated_sculk_sensor"); + + ItemType.Typed CAMEL_SPAWN_EGG = getItemType("camel_spawn_egg"); + + ItemType.Typed CAMPFIRE = getItemType("campfire"); + + ItemType.Typed CANDLE = getItemType("candle"); + + ItemType.Typed CARROT = getItemType("carrot"); + + ItemType.Typed CARROT_ON_A_STICK = getItemType("carrot_on_a_stick"); + + ItemType.Typed CARTOGRAPHY_TABLE = getItemType("cartography_table"); + + ItemType.Typed CARVED_PUMPKIN = getItemType("carved_pumpkin"); + + ItemType.Typed CAT_SPAWN_EGG = getItemType("cat_spawn_egg"); + + ItemType.Typed CAULDRON = getItemType("cauldron"); + + ItemType.Typed CAVE_SPIDER_SPAWN_EGG = getItemType("cave_spider_spawn_egg"); + + ItemType.Typed CHAIN = getItemType("chain"); + + ItemType.Typed CHAIN_COMMAND_BLOCK = getItemType("chain_command_block"); + + ItemType.Typed CHAINMAIL_BOOTS = getItemType("chainmail_boots"); + + ItemType.Typed CHAINMAIL_CHESTPLATE = getItemType("chainmail_chestplate"); + + ItemType.Typed CHAINMAIL_HELMET = getItemType("chainmail_helmet"); + + ItemType.Typed CHAINMAIL_LEGGINGS = getItemType("chainmail_leggings"); + + ItemType.Typed CHARCOAL = getItemType("charcoal"); + + ItemType.Typed CHERRY_BOAT = getItemType("cherry_boat"); + + ItemType.Typed CHERRY_BUTTON = getItemType("cherry_button"); + + ItemType.Typed CHERRY_CHEST_BOAT = getItemType("cherry_chest_boat"); + + ItemType.Typed CHERRY_DOOR = getItemType("cherry_door"); + + ItemType.Typed CHERRY_FENCE = getItemType("cherry_fence"); + + ItemType.Typed CHERRY_FENCE_GATE = getItemType("cherry_fence_gate"); + + ItemType.Typed CHERRY_HANGING_SIGN = getItemType("cherry_hanging_sign"); + + ItemType.Typed CHERRY_LEAVES = getItemType("cherry_leaves"); + + ItemType.Typed CHERRY_LOG = getItemType("cherry_log"); + + ItemType.Typed CHERRY_PLANKS = getItemType("cherry_planks"); + + ItemType.Typed CHERRY_PRESSURE_PLATE = getItemType("cherry_pressure_plate"); + + ItemType.Typed CHERRY_SAPLING = getItemType("cherry_sapling"); + + ItemType.Typed CHERRY_SIGN = getItemType("cherry_sign"); + + ItemType.Typed CHERRY_SLAB = getItemType("cherry_slab"); + + ItemType.Typed CHERRY_STAIRS = getItemType("cherry_stairs"); + + ItemType.Typed CHERRY_TRAPDOOR = getItemType("cherry_trapdoor"); + + ItemType.Typed CHERRY_WOOD = getItemType("cherry_wood"); + + ItemType.Typed CHEST = getItemType("chest"); + + ItemType.Typed CHEST_MINECART = getItemType("chest_minecart"); + + ItemType.Typed CHICKEN = getItemType("chicken"); + + ItemType.Typed CHICKEN_SPAWN_EGG = getItemType("chicken_spawn_egg"); + + ItemType.Typed CHIPPED_ANVIL = getItemType("chipped_anvil"); + + ItemType.Typed CHISELED_BOOKSHELF = getItemType("chiseled_bookshelf"); + + ItemType.Typed CHISELED_COPPER = getItemType("chiseled_copper"); + + ItemType.Typed CHISELED_DEEPSLATE = getItemType("chiseled_deepslate"); + + ItemType.Typed CHISELED_NETHER_BRICKS = getItemType("chiseled_nether_bricks"); + + ItemType.Typed CHISELED_POLISHED_BLACKSTONE = getItemType("chiseled_polished_blackstone"); + + ItemType.Typed CHISELED_QUARTZ_BLOCK = getItemType("chiseled_quartz_block"); + + ItemType.Typed CHISELED_RED_SANDSTONE = getItemType("chiseled_red_sandstone"); + + ItemType.Typed CHISELED_RESIN_BRICKS = getItemType("chiseled_resin_bricks"); + + ItemType.Typed CHISELED_SANDSTONE = getItemType("chiseled_sandstone"); + + ItemType.Typed CHISELED_STONE_BRICKS = getItemType("chiseled_stone_bricks"); + + ItemType.Typed CHISELED_TUFF = getItemType("chiseled_tuff"); + + ItemType.Typed CHISELED_TUFF_BRICKS = getItemType("chiseled_tuff_bricks"); + + ItemType.Typed CHORUS_FLOWER = getItemType("chorus_flower"); + + ItemType.Typed CHORUS_FRUIT = getItemType("chorus_fruit"); + + ItemType.Typed CHORUS_PLANT = getItemType("chorus_plant"); + + ItemType.Typed CLAY = getItemType("clay"); + + ItemType.Typed CLAY_BALL = getItemType("clay_ball"); + + ItemType.Typed CLOCK = getItemType("clock"); + + ItemType.Typed CLOSED_EYEBLOSSOM = getItemType("closed_eyeblossom"); + + ItemType.Typed COAL = getItemType("coal"); + + ItemType.Typed COAL_BLOCK = getItemType("coal_block"); + + ItemType.Typed COAL_ORE = getItemType("coal_ore"); + + ItemType.Typed COARSE_DIRT = getItemType("coarse_dirt"); + + ItemType.Typed COAST_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("coast_armor_trim_smithing_template"); + + ItemType.Typed COBBLED_DEEPSLATE = getItemType("cobbled_deepslate"); + + ItemType.Typed COBBLED_DEEPSLATE_SLAB = getItemType("cobbled_deepslate_slab"); + + ItemType.Typed COBBLED_DEEPSLATE_STAIRS = getItemType("cobbled_deepslate_stairs"); + + ItemType.Typed COBBLED_DEEPSLATE_WALL = getItemType("cobbled_deepslate_wall"); + + ItemType.Typed COBBLESTONE = getItemType("cobblestone"); + + ItemType.Typed COBBLESTONE_SLAB = getItemType("cobblestone_slab"); + + ItemType.Typed COBBLESTONE_STAIRS = getItemType("cobblestone_stairs"); + + ItemType.Typed COBBLESTONE_WALL = getItemType("cobblestone_wall"); + + ItemType.Typed COBWEB = getItemType("cobweb"); + + ItemType.Typed COCOA_BEANS = getItemType("cocoa_beans"); + + ItemType.Typed COD = getItemType("cod"); + + ItemType.Typed COD_BUCKET = getItemType("cod_bucket"); + + ItemType.Typed COD_SPAWN_EGG = getItemType("cod_spawn_egg"); + + ItemType.Typed COMMAND_BLOCK = getItemType("command_block"); + + ItemType.Typed COMMAND_BLOCK_MINECART = getItemType("command_block_minecart"); + + ItemType.Typed COMPARATOR = getItemType("comparator"); + + ItemType.Typed COMPASS = getItemType("compass"); + + ItemType.Typed COMPOSTER = getItemType("composter"); + + ItemType.Typed CONDUIT = getItemType("conduit"); + + ItemType.Typed COOKED_BEEF = getItemType("cooked_beef"); + + ItemType.Typed COOKED_CHICKEN = getItemType("cooked_chicken"); + + ItemType.Typed COOKED_COD = getItemType("cooked_cod"); + + ItemType.Typed COOKED_MUTTON = getItemType("cooked_mutton"); + + ItemType.Typed COOKED_PORKCHOP = getItemType("cooked_porkchop"); + + ItemType.Typed COOKED_RABBIT = getItemType("cooked_rabbit"); + + ItemType.Typed COOKED_SALMON = getItemType("cooked_salmon"); + + ItemType.Typed COOKIE = getItemType("cookie"); + + ItemType.Typed COPPER_BLOCK = getItemType("copper_block"); + ItemType.Typed COPPER_BULB = getItemType("copper_bulb"); + + ItemType.Typed COPPER_DOOR = getItemType("copper_door"); + + ItemType.Typed COPPER_GRATE = getItemType("copper_grate"); + + ItemType.Typed COPPER_INGOT = getItemType("copper_ingot"); + + ItemType.Typed COPPER_ORE = getItemType("copper_ore"); + + ItemType.Typed COPPER_TRAPDOOR = getItemType("copper_trapdoor"); + + ItemType.Typed CORNFLOWER = getItemType("cornflower"); + + ItemType.Typed COW_SPAWN_EGG = getItemType("cow_spawn_egg"); + + ItemType.Typed CRACKED_DEEPSLATE_BRICKS = getItemType("cracked_deepslate_bricks"); + + ItemType.Typed CRACKED_DEEPSLATE_TILES = getItemType("cracked_deepslate_tiles"); + + ItemType.Typed CRACKED_NETHER_BRICKS = getItemType("cracked_nether_bricks"); + + ItemType.Typed CRACKED_POLISHED_BLACKSTONE_BRICKS = getItemType("cracked_polished_blackstone_bricks"); + + ItemType.Typed CRACKED_STONE_BRICKS = getItemType("cracked_stone_bricks"); + + ItemType.Typed CRAFTER = getItemType("crafter"); + + ItemType.Typed CRAFTING_TABLE = getItemType("crafting_table"); + + ItemType.Typed CREAKING_HEART = getItemType("creaking_heart"); + + ItemType.Typed CREAKING_SPAWN_EGG = getItemType("creaking_spawn_egg"); + + ItemType.Typed CREEPER_BANNER_PATTERN = getItemType("creeper_banner_pattern"); + + ItemType.Typed CREEPER_HEAD = getItemType("creeper_head"); + + ItemType.Typed CREEPER_SPAWN_EGG = getItemType("creeper_spawn_egg"); + + ItemType.Typed CRIMSON_BUTTON = getItemType("crimson_button"); + + ItemType.Typed CRIMSON_DOOR = getItemType("crimson_door"); + + ItemType.Typed CRIMSON_FENCE = getItemType("crimson_fence"); + + ItemType.Typed CRIMSON_FENCE_GATE = getItemType("crimson_fence_gate"); + + ItemType.Typed CRIMSON_FUNGUS = getItemType("crimson_fungus"); + + ItemType.Typed CRIMSON_HANGING_SIGN = getItemType("crimson_hanging_sign"); + + ItemType.Typed CRIMSON_HYPHAE = getItemType("crimson_hyphae"); + + ItemType.Typed CRIMSON_NYLIUM = getItemType("crimson_nylium"); + + ItemType.Typed CRIMSON_PLANKS = getItemType("crimson_planks"); + + ItemType.Typed CRIMSON_PRESSURE_PLATE = getItemType("crimson_pressure_plate"); + + ItemType.Typed CRIMSON_ROOTS = getItemType("crimson_roots"); + + ItemType.Typed CRIMSON_SIGN = getItemType("crimson_sign"); + + ItemType.Typed CRIMSON_SLAB = getItemType("crimson_slab"); + + ItemType.Typed CRIMSON_STAIRS = getItemType("crimson_stairs"); + + ItemType.Typed CRIMSON_STEM = getItemType("crimson_stem"); + + ItemType.Typed CRIMSON_TRAPDOOR = getItemType("crimson_trapdoor"); + + ItemType.Typed CROSSBOW = getItemType("crossbow"); + + ItemType.Typed CRYING_OBSIDIAN = getItemType("crying_obsidian"); + + ItemType.Typed CUT_COPPER = getItemType("cut_copper"); + + ItemType.Typed CUT_COPPER_SLAB = getItemType("cut_copper_slab"); + + ItemType.Typed CUT_COPPER_STAIRS = getItemType("cut_copper_stairs"); + + ItemType.Typed CUT_RED_SANDSTONE = getItemType("cut_red_sandstone"); + + ItemType.Typed CUT_RED_SANDSTONE_SLAB = getItemType("cut_red_sandstone_slab"); + + ItemType.Typed CUT_SANDSTONE = getItemType("cut_sandstone"); + + ItemType.Typed CUT_SANDSTONE_SLAB = getItemType("cut_sandstone_slab"); + + ItemType.Typed CYAN_BANNER = getItemType("cyan_banner"); + + ItemType.Typed CYAN_BED = getItemType("cyan_bed"); + + ItemType.Typed CYAN_BUNDLE = getItemType("cyan_bundle"); + + ItemType.Typed CYAN_CANDLE = getItemType("cyan_candle"); + + ItemType.Typed CYAN_CARPET = getItemType("cyan_carpet"); + + ItemType.Typed CYAN_CONCRETE = getItemType("cyan_concrete"); + + ItemType.Typed CYAN_CONCRETE_POWDER = getItemType("cyan_concrete_powder"); + + ItemType.Typed CYAN_DYE = getItemType("cyan_dye"); + + ItemType.Typed CYAN_GLAZED_TERRACOTTA = getItemType("cyan_glazed_terracotta"); + + ItemType.Typed CYAN_SHULKER_BOX = getItemType("cyan_shulker_box"); + + ItemType.Typed CYAN_STAINED_GLASS = getItemType("cyan_stained_glass"); + + ItemType.Typed CYAN_STAINED_GLASS_PANE = getItemType("cyan_stained_glass_pane"); + + ItemType.Typed CYAN_TERRACOTTA = getItemType("cyan_terracotta"); + + ItemType.Typed CYAN_WOOL = getItemType("cyan_wool"); + + ItemType.Typed DAMAGED_ANVIL = getItemType("damaged_anvil"); + + ItemType.Typed DANDELION = getItemType("dandelion"); + + ItemType.Typed DANGER_POTTERY_SHERD = getItemType("danger_pottery_sherd"); + + ItemType.Typed DARK_OAK_BOAT = getItemType("dark_oak_boat"); + + ItemType.Typed DARK_OAK_BUTTON = getItemType("dark_oak_button"); + + ItemType.Typed DARK_OAK_CHEST_BOAT = getItemType("dark_oak_chest_boat"); + + ItemType.Typed DARK_OAK_DOOR = getItemType("dark_oak_door"); + + ItemType.Typed DARK_OAK_FENCE = getItemType("dark_oak_fence"); + + ItemType.Typed DARK_OAK_FENCE_GATE = getItemType("dark_oak_fence_gate"); + + ItemType.Typed DARK_OAK_HANGING_SIGN = getItemType("dark_oak_hanging_sign"); + + ItemType.Typed DARK_OAK_LEAVES = getItemType("dark_oak_leaves"); + + ItemType.Typed DARK_OAK_LOG = getItemType("dark_oak_log"); + + ItemType.Typed DARK_OAK_PLANKS = getItemType("dark_oak_planks"); + + ItemType.Typed DARK_OAK_PRESSURE_PLATE = getItemType("dark_oak_pressure_plate"); + + ItemType.Typed DARK_OAK_SAPLING = getItemType("dark_oak_sapling"); + + ItemType.Typed DARK_OAK_SIGN = getItemType("dark_oak_sign"); + + ItemType.Typed DARK_OAK_SLAB = getItemType("dark_oak_slab"); + + ItemType.Typed DARK_OAK_STAIRS = getItemType("dark_oak_stairs"); + + ItemType.Typed DARK_OAK_TRAPDOOR = getItemType("dark_oak_trapdoor"); + + ItemType.Typed DARK_OAK_WOOD = getItemType("dark_oak_wood"); + + ItemType.Typed DARK_PRISMARINE = getItemType("dark_prismarine"); + + ItemType.Typed DARK_PRISMARINE_SLAB = getItemType("dark_prismarine_slab"); + + ItemType.Typed DARK_PRISMARINE_STAIRS = getItemType("dark_prismarine_stairs"); + + ItemType.Typed DAYLIGHT_DETECTOR = getItemType("daylight_detector"); + + ItemType.Typed DEAD_BRAIN_CORAL = getItemType("dead_brain_coral"); + + ItemType.Typed DEAD_BRAIN_CORAL_BLOCK = getItemType("dead_brain_coral_block"); + + ItemType.Typed DEAD_BRAIN_CORAL_FAN = getItemType("dead_brain_coral_fan"); + + ItemType.Typed DEAD_BUBBLE_CORAL = getItemType("dead_bubble_coral"); + + ItemType.Typed DEAD_BUBBLE_CORAL_BLOCK = getItemType("dead_bubble_coral_block"); + + ItemType.Typed DEAD_BUBBLE_CORAL_FAN = getItemType("dead_bubble_coral_fan"); + + ItemType.Typed DEAD_BUSH = getItemType("dead_bush"); + + ItemType.Typed DEAD_FIRE_CORAL = getItemType("dead_fire_coral"); + + ItemType.Typed DEAD_FIRE_CORAL_BLOCK = getItemType("dead_fire_coral_block"); + + ItemType.Typed DEAD_FIRE_CORAL_FAN = getItemType("dead_fire_coral_fan"); + + ItemType.Typed DEAD_HORN_CORAL = getItemType("dead_horn_coral"); + + ItemType.Typed DEAD_HORN_CORAL_BLOCK = getItemType("dead_horn_coral_block"); + + ItemType.Typed DEAD_HORN_CORAL_FAN = getItemType("dead_horn_coral_fan"); + + ItemType.Typed DEAD_TUBE_CORAL = getItemType("dead_tube_coral"); + + ItemType.Typed DEAD_TUBE_CORAL_BLOCK = getItemType("dead_tube_coral_block"); + + ItemType.Typed DEAD_TUBE_CORAL_FAN = getItemType("dead_tube_coral_fan"); + + ItemType.Typed DEBUG_STICK = getItemType("debug_stick"); + + ItemType.Typed DECORATED_POT = getItemType("decorated_pot"); + + ItemType.Typed DEEPSLATE = getItemType("deepslate"); + + ItemType.Typed DEEPSLATE_BRICK_SLAB = getItemType("deepslate_brick_slab"); + + ItemType.Typed DEEPSLATE_BRICK_STAIRS = getItemType("deepslate_brick_stairs"); + + ItemType.Typed DEEPSLATE_BRICK_WALL = getItemType("deepslate_brick_wall"); + + ItemType.Typed DEEPSLATE_BRICKS = getItemType("deepslate_bricks"); + + ItemType.Typed DEEPSLATE_COAL_ORE = getItemType("deepslate_coal_ore"); + + ItemType.Typed DEEPSLATE_COPPER_ORE = getItemType("deepslate_copper_ore"); + + ItemType.Typed DEEPSLATE_DIAMOND_ORE = getItemType("deepslate_diamond_ore"); + + ItemType.Typed DEEPSLATE_EMERALD_ORE = getItemType("deepslate_emerald_ore"); + + ItemType.Typed DEEPSLATE_GOLD_ORE = getItemType("deepslate_gold_ore"); + + ItemType.Typed DEEPSLATE_IRON_ORE = getItemType("deepslate_iron_ore"); + + ItemType.Typed DEEPSLATE_LAPIS_ORE = getItemType("deepslate_lapis_ore"); + + ItemType.Typed DEEPSLATE_REDSTONE_ORE = getItemType("deepslate_redstone_ore"); + + ItemType.Typed DEEPSLATE_TILE_SLAB = getItemType("deepslate_tile_slab"); + + ItemType.Typed DEEPSLATE_TILE_STAIRS = getItemType("deepslate_tile_stairs"); + + ItemType.Typed DEEPSLATE_TILE_WALL = getItemType("deepslate_tile_wall"); + + ItemType.Typed DEEPSLATE_TILES = getItemType("deepslate_tiles"); + + ItemType.Typed DETECTOR_RAIL = getItemType("detector_rail"); + + ItemType.Typed DIAMOND = getItemType("diamond"); + + ItemType.Typed DIAMOND_AXE = getItemType("diamond_axe"); + + ItemType.Typed DIAMOND_BLOCK = getItemType("diamond_block"); + + ItemType.Typed DIAMOND_BOOTS = getItemType("diamond_boots"); + + ItemType.Typed DIAMOND_CHESTPLATE = getItemType("diamond_chestplate"); + + ItemType.Typed DIAMOND_HELMET = getItemType("diamond_helmet"); + + ItemType.Typed DIAMOND_HOE = getItemType("diamond_hoe"); + + ItemType.Typed DIAMOND_HORSE_ARMOR = getItemType("diamond_horse_armor"); + + ItemType.Typed DIAMOND_LEGGINGS = getItemType("diamond_leggings"); + + ItemType.Typed DIAMOND_ORE = getItemType("diamond_ore"); + + ItemType.Typed DIAMOND_PICKAXE = getItemType("diamond_pickaxe"); + + ItemType.Typed DIAMOND_SHOVEL = getItemType("diamond_shovel"); + + ItemType.Typed DIAMOND_SWORD = getItemType("diamond_sword"); + + ItemType.Typed DIORITE = getItemType("diorite"); + + ItemType.Typed DIORITE_SLAB = getItemType("diorite_slab"); + + ItemType.Typed DIORITE_STAIRS = getItemType("diorite_stairs"); + + ItemType.Typed DIORITE_WALL = getItemType("diorite_wall"); + + ItemType.Typed DIRT = getItemType("dirt"); + + ItemType.Typed DIRT_PATH = getItemType("dirt_path"); + + ItemType.Typed FIELD_MASONED_BANNER_PATTERN = getItemType("field_masoned_banner_pattern"); + + ItemType.Typed FLETCHING_TABLE = getItemType("fletching_table"); + + ItemType.Typed FLOW_BANNER_PATTERN = getItemType("flow_banner_pattern"); + + ItemType.Typed FLOWER_BANNER_PATTERN = getItemType("flower_banner_pattern"); + + ItemType.Typed GLOW_BERRIES = getItemType("glow_berries"); + + ItemType.Typed GOAT_HORN = getItemType("goat_horn"); + + ItemType.Typed GRINDSTONE = getItemType("grindstone"); + + ItemType.Typed HONEYCOMB = getItemType("honeycomb"); + + ItemType.Typed LANTERN = getItemType("lantern"); + + ItemType.Typed MUSIC_DISC_5 = getItemType("music_disc_5"); + + ItemType.Typed DISC_FRAGMENT_5 = getItemType("disc_fragment_5"); + + ItemType.Typed DISPENSER = getItemType("dispenser"); + + ItemType.Typed DOLPHIN_SPAWN_EGG = getItemType("dolphin_spawn_egg"); + + ItemType.Typed DONKEY_SPAWN_EGG = getItemType("donkey_spawn_egg"); + + ItemType.Typed DRAGON_BREATH = getItemType("dragon_breath"); + + ItemType.Typed DRAGON_EGG = getItemType("dragon_egg"); + + ItemType.Typed DRAGON_HEAD = getItemType("dragon_head"); + + ItemType.Typed DRIED_KELP = getItemType("dried_kelp"); + + ItemType.Typed DRIED_KELP_BLOCK = getItemType("dried_kelp_block"); + + ItemType.Typed DRIPSTONE_BLOCK = getItemType("dripstone_block"); + + ItemType.Typed DROPPER = getItemType("dropper"); + + ItemType.Typed DROWNED_SPAWN_EGG = getItemType("drowned_spawn_egg"); + + ItemType.Typed DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("dune_armor_trim_smithing_template"); + + ItemType.Typed ECHO_SHARD = getItemType("echo_shard"); + + ItemType.Typed EGG = getItemType("egg"); + + ItemType.Typed ELDER_GUARDIAN_SPAWN_EGG = getItemType("elder_guardian_spawn_egg"); + + ItemType.Typed ELYTRA = getItemType("elytra"); + + ItemType.Typed EMERALD = getItemType("emerald"); + + ItemType.Typed EMERALD_BLOCK = getItemType("emerald_block"); + + ItemType.Typed EMERALD_ORE = getItemType("emerald_ore"); + + ItemType.Typed ENCHANTED_BOOK = getItemType("enchanted_book"); + + ItemType.Typed ENCHANTED_GOLDEN_APPLE = getItemType("enchanted_golden_apple"); + + ItemType.Typed ENCHANTING_TABLE = getItemType("enchanting_table"); + + ItemType.Typed END_CRYSTAL = getItemType("end_crystal"); + + ItemType.Typed END_PORTAL_FRAME = getItemType("end_portal_frame"); + + ItemType.Typed END_ROD = getItemType("end_rod"); + + ItemType.Typed END_STONE = getItemType("end_stone"); + + ItemType.Typed END_STONE_BRICK_SLAB = getItemType("end_stone_brick_slab"); + + ItemType.Typed END_STONE_BRICK_STAIRS = getItemType("end_stone_brick_stairs"); + + ItemType.Typed END_STONE_BRICK_WALL = getItemType("end_stone_brick_wall"); + + ItemType.Typed END_STONE_BRICKS = getItemType("end_stone_bricks"); + + ItemType.Typed ENDER_CHEST = getItemType("ender_chest"); + + ItemType.Typed ENDER_DRAGON_SPAWN_EGG = getItemType("ender_dragon_spawn_egg"); + + ItemType.Typed ENDER_EYE = getItemType("ender_eye"); + + ItemType.Typed ENDER_PEARL = getItemType("ender_pearl"); + + ItemType.Typed ENDERMAN_SPAWN_EGG = getItemType("enderman_spawn_egg"); + + ItemType.Typed ENDERMITE_SPAWN_EGG = getItemType("endermite_spawn_egg"); + + ItemType.Typed EVOKER_SPAWN_EGG = getItemType("evoker_spawn_egg"); + + ItemType.Typed EXPERIENCE_BOTTLE = getItemType("experience_bottle"); + + ItemType.Typed EXPLORER_POTTERY_SHERD = getItemType("explorer_pottery_sherd"); + + ItemType.Typed EXPOSED_CHISELED_COPPER = getItemType("exposed_chiseled_copper"); + + ItemType.Typed EXPOSED_COPPER = getItemType("exposed_copper"); + ItemType.Typed EXPOSED_COPPER_BULB = getItemType("exposed_copper_bulb"); - ItemType.Typed WEATHERED_COPPER_BULB = getItemType("weathered_copper_bulb"); - ItemType.Typed OXIDIZED_COPPER_BULB = getItemType("oxidized_copper_bulb"); - ItemType.Typed WAXED_COPPER_BULB = getItemType("waxed_copper_bulb"); - ItemType.Typed WAXED_EXPOSED_COPPER_BULB = getItemType("waxed_exposed_copper_bulb"); - ItemType.Typed WAXED_WEATHERED_COPPER_BULB = getItemType("waxed_weathered_copper_bulb"); - ItemType.Typed WAXED_OXIDIZED_COPPER_BULB = getItemType("waxed_oxidized_copper_bulb"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed TRIAL_SPAWNER = getItemType("trial_spawner"); - ItemType.Typed TRIAL_KEY = getItemType("trial_key"); + + ItemType.Typed EXPOSED_COPPER_DOOR = getItemType("exposed_copper_door"); + + ItemType.Typed EXPOSED_COPPER_GRATE = getItemType("exposed_copper_grate"); + + ItemType.Typed EXPOSED_COPPER_TRAPDOOR = getItemType("exposed_copper_trapdoor"); + + ItemType.Typed EXPOSED_CUT_COPPER = getItemType("exposed_cut_copper"); + + ItemType.Typed EXPOSED_CUT_COPPER_SLAB = getItemType("exposed_cut_copper_slab"); + + ItemType.Typed EXPOSED_CUT_COPPER_STAIRS = getItemType("exposed_cut_copper_stairs"); + + ItemType.Typed EYE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("eye_armor_trim_smithing_template"); + + ItemType.Typed FARMLAND = getItemType("farmland"); + + ItemType.Typed FEATHER = getItemType("feather"); + + ItemType.Typed FERMENTED_SPIDER_EYE = getItemType("fermented_spider_eye"); + + ItemType.Typed FERN = getItemType("fern"); + + ItemType.Typed FILLED_MAP = getItemType("filled_map"); + + ItemType.Typed FIRE_CHARGE = getItemType("fire_charge"); + + ItemType.Typed FIRE_CORAL = getItemType("fire_coral"); + + ItemType.Typed FIRE_CORAL_BLOCK = getItemType("fire_coral_block"); + + ItemType.Typed FIRE_CORAL_FAN = getItemType("fire_coral_fan"); + + ItemType.Typed FIREWORK_ROCKET = getItemType("firework_rocket"); + + ItemType.Typed FIREWORK_STAR = getItemType("firework_star"); + + ItemType.Typed FISHING_ROD = getItemType("fishing_rod"); + + ItemType.Typed FLINT = getItemType("flint"); + + ItemType.Typed FLINT_AND_STEEL = getItemType("flint_and_steel"); + + ItemType.Typed FLOW_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("flow_armor_trim_smithing_template"); + + ItemType.Typed FLOW_POTTERY_SHERD = getItemType("flow_pottery_sherd"); + + ItemType.Typed FLOWER_POT = getItemType("flower_pot"); + + ItemType.Typed FLOWERING_AZALEA = getItemType("flowering_azalea"); + + ItemType.Typed FLOWERING_AZALEA_LEAVES = getItemType("flowering_azalea_leaves"); + + ItemType.Typed FOX_SPAWN_EGG = getItemType("fox_spawn_egg"); + + ItemType.Typed FRIEND_POTTERY_SHERD = getItemType("friend_pottery_sherd"); + + ItemType.Typed FROG_SPAWN_EGG = getItemType("frog_spawn_egg"); + + ItemType.Typed FROGSPAWN = getItemType("frogspawn"); + + ItemType.Typed FURNACE = getItemType("furnace"); + + ItemType.Typed FURNACE_MINECART = getItemType("furnace_minecart"); + + ItemType.Typed GHAST_SPAWN_EGG = getItemType("ghast_spawn_egg"); + + ItemType.Typed GHAST_TEAR = getItemType("ghast_tear"); + + ItemType.Typed GILDED_BLACKSTONE = getItemType("gilded_blackstone"); + + ItemType.Typed GLASS = getItemType("glass"); + + ItemType.Typed GLASS_BOTTLE = getItemType("glass_bottle"); + + ItemType.Typed GLASS_PANE = getItemType("glass_pane"); + + ItemType.Typed GLISTERING_MELON_SLICE = getItemType("glistering_melon_slice"); + + ItemType.Typed GLOBE_BANNER_PATTERN = getItemType("globe_banner_pattern"); + + ItemType.Typed GLOW_INK_SAC = getItemType("glow_ink_sac"); + + ItemType.Typed GLOW_ITEM_FRAME = getItemType("glow_item_frame"); + + ItemType.Typed GLOW_LICHEN = getItemType("glow_lichen"); + + ItemType.Typed GLOW_SQUID_SPAWN_EGG = getItemType("glow_squid_spawn_egg"); + + ItemType.Typed GLOWSTONE = getItemType("glowstone"); + + ItemType.Typed GLOWSTONE_DUST = getItemType("glowstone_dust"); + + ItemType.Typed GOAT_SPAWN_EGG = getItemType("goat_spawn_egg"); + + ItemType.Typed GOLD_BLOCK = getItemType("gold_block"); + + ItemType.Typed GOLD_INGOT = getItemType("gold_ingot"); + + ItemType.Typed GOLD_NUGGET = getItemType("gold_nugget"); + + ItemType.Typed GOLD_ORE = getItemType("gold_ore"); + + ItemType.Typed GOLDEN_APPLE = getItemType("golden_apple"); + + ItemType.Typed GOLDEN_AXE = getItemType("golden_axe"); + + ItemType.Typed GOLDEN_BOOTS = getItemType("golden_boots"); + + ItemType.Typed GOLDEN_CARROT = getItemType("golden_carrot"); + + ItemType.Typed GOLDEN_CHESTPLATE = getItemType("golden_chestplate"); + + ItemType.Typed GOLDEN_HELMET = getItemType("golden_helmet"); + + ItemType.Typed GOLDEN_HOE = getItemType("golden_hoe"); + + ItemType.Typed GOLDEN_HORSE_ARMOR = getItemType("golden_horse_armor"); + + ItemType.Typed GOLDEN_LEGGINGS = getItemType("golden_leggings"); + + ItemType.Typed GOLDEN_PICKAXE = getItemType("golden_pickaxe"); + + ItemType.Typed GOLDEN_SHOVEL = getItemType("golden_shovel"); + + ItemType.Typed GOLDEN_SWORD = getItemType("golden_sword"); + + ItemType.Typed GRANITE = getItemType("granite"); + + ItemType.Typed GRANITE_SLAB = getItemType("granite_slab"); + + ItemType.Typed GRANITE_STAIRS = getItemType("granite_stairs"); + + ItemType.Typed GRANITE_WALL = getItemType("granite_wall"); + + ItemType.Typed GRASS_BLOCK = getItemType("grass_block"); + + ItemType.Typed GRAVEL = getItemType("gravel"); + + ItemType.Typed GRAY_BANNER = getItemType("gray_banner"); + + ItemType.Typed GRAY_BED = getItemType("gray_bed"); + + ItemType.Typed GRAY_BUNDLE = getItemType("gray_bundle"); + + ItemType.Typed GRAY_CANDLE = getItemType("gray_candle"); + + ItemType.Typed GRAY_CARPET = getItemType("gray_carpet"); + + ItemType.Typed GRAY_CONCRETE = getItemType("gray_concrete"); + + ItemType.Typed GRAY_CONCRETE_POWDER = getItemType("gray_concrete_powder"); + + ItemType.Typed GRAY_DYE = getItemType("gray_dye"); + + ItemType.Typed GRAY_GLAZED_TERRACOTTA = getItemType("gray_glazed_terracotta"); + + ItemType.Typed GRAY_SHULKER_BOX = getItemType("gray_shulker_box"); + + ItemType.Typed GRAY_STAINED_GLASS = getItemType("gray_stained_glass"); + + ItemType.Typed GRAY_STAINED_GLASS_PANE = getItemType("gray_stained_glass_pane"); + + ItemType.Typed GRAY_TERRACOTTA = getItemType("gray_terracotta"); + + ItemType.Typed GRAY_WOOL = getItemType("gray_wool"); + + ItemType.Typed GREEN_BANNER = getItemType("green_banner"); + + ItemType.Typed GREEN_BED = getItemType("green_bed"); + + ItemType.Typed GREEN_BUNDLE = getItemType("green_bundle"); + + ItemType.Typed GREEN_CANDLE = getItemType("green_candle"); + + ItemType.Typed GREEN_CARPET = getItemType("green_carpet"); + + ItemType.Typed GREEN_CONCRETE = getItemType("green_concrete"); + + ItemType.Typed GREEN_CONCRETE_POWDER = getItemType("green_concrete_powder"); + + ItemType.Typed GREEN_DYE = getItemType("green_dye"); + + ItemType.Typed GREEN_GLAZED_TERRACOTTA = getItemType("green_glazed_terracotta"); + + ItemType.Typed GREEN_SHULKER_BOX = getItemType("green_shulker_box"); + + ItemType.Typed GREEN_STAINED_GLASS = getItemType("green_stained_glass"); + + ItemType.Typed GREEN_STAINED_GLASS_PANE = getItemType("green_stained_glass_pane"); + + ItemType.Typed GREEN_TERRACOTTA = getItemType("green_terracotta"); + + ItemType.Typed GREEN_WOOL = getItemType("green_wool"); + + ItemType.Typed GUARDIAN_SPAWN_EGG = getItemType("guardian_spawn_egg"); + + ItemType.Typed GUNPOWDER = getItemType("gunpowder"); + + ItemType.Typed GUSTER_BANNER_PATTERN = getItemType("guster_banner_pattern"); + + ItemType.Typed GUSTER_POTTERY_SHERD = getItemType("guster_pottery_sherd"); + + ItemType.Typed HANGING_ROOTS = getItemType("hanging_roots"); + + ItemType.Typed HAY_BLOCK = getItemType("hay_block"); + + ItemType.Typed HEART_OF_THE_SEA = getItemType("heart_of_the_sea"); + + ItemType.Typed HEART_POTTERY_SHERD = getItemType("heart_pottery_sherd"); + + ItemType.Typed HEARTBREAK_POTTERY_SHERD = getItemType("heartbreak_pottery_sherd"); + + ItemType.Typed HEAVY_CORE = getItemType("heavy_core"); + + ItemType.Typed HEAVY_WEIGHTED_PRESSURE_PLATE = getItemType("heavy_weighted_pressure_plate"); + + ItemType.Typed HOGLIN_SPAWN_EGG = getItemType("hoglin_spawn_egg"); + + ItemType.Typed HONEY_BLOCK = getItemType("honey_block"); + + ItemType.Typed HONEY_BOTTLE = getItemType("honey_bottle"); + + ItemType.Typed HONEYCOMB_BLOCK = getItemType("honeycomb_block"); + + ItemType.Typed HOPPER = getItemType("hopper"); + + ItemType.Typed HOPPER_MINECART = getItemType("hopper_minecart"); + + ItemType.Typed HORN_CORAL = getItemType("horn_coral"); + + ItemType.Typed HORN_CORAL_BLOCK = getItemType("horn_coral_block"); + + ItemType.Typed HORN_CORAL_FAN = getItemType("horn_coral_fan"); + + ItemType.Typed HORSE_SPAWN_EGG = getItemType("horse_spawn_egg"); + + ItemType.Typed HOST_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("host_armor_trim_smithing_template"); + + ItemType.Typed HOWL_POTTERY_SHERD = getItemType("howl_pottery_sherd"); + + ItemType.Typed HUSK_SPAWN_EGG = getItemType("husk_spawn_egg"); + + ItemType.Typed ICE = getItemType("ice"); + + ItemType.Typed INFESTED_CHISELED_STONE_BRICKS = getItemType("infested_chiseled_stone_bricks"); + + ItemType.Typed INFESTED_COBBLESTONE = getItemType("infested_cobblestone"); + + ItemType.Typed INFESTED_CRACKED_STONE_BRICKS = getItemType("infested_cracked_stone_bricks"); + + ItemType.Typed INFESTED_DEEPSLATE = getItemType("infested_deepslate"); + + ItemType.Typed INFESTED_MOSSY_STONE_BRICKS = getItemType("infested_mossy_stone_bricks"); + + ItemType.Typed INFESTED_STONE = getItemType("infested_stone"); + + ItemType.Typed INFESTED_STONE_BRICKS = getItemType("infested_stone_bricks"); + + ItemType.Typed INK_SAC = getItemType("ink_sac"); + + ItemType.Typed IRON_AXE = getItemType("iron_axe"); + + ItemType.Typed IRON_BARS = getItemType("iron_bars"); + + ItemType.Typed IRON_BLOCK = getItemType("iron_block"); + + ItemType.Typed IRON_BOOTS = getItemType("iron_boots"); + + ItemType.Typed IRON_CHESTPLATE = getItemType("iron_chestplate"); + + ItemType.Typed IRON_DOOR = getItemType("iron_door"); + + ItemType.Typed IRON_GOLEM_SPAWN_EGG = getItemType("iron_golem_spawn_egg"); + + ItemType.Typed IRON_HELMET = getItemType("iron_helmet"); + + ItemType.Typed IRON_HOE = getItemType("iron_hoe"); + + ItemType.Typed IRON_HORSE_ARMOR = getItemType("iron_horse_armor"); + + ItemType.Typed IRON_INGOT = getItemType("iron_ingot"); + + ItemType.Typed IRON_LEGGINGS = getItemType("iron_leggings"); + + ItemType.Typed IRON_NUGGET = getItemType("iron_nugget"); + + ItemType.Typed IRON_ORE = getItemType("iron_ore"); + + ItemType.Typed IRON_PICKAXE = getItemType("iron_pickaxe"); + + ItemType.Typed IRON_SHOVEL = getItemType("iron_shovel"); + + ItemType.Typed IRON_SWORD = getItemType("iron_sword"); + + ItemType.Typed IRON_TRAPDOOR = getItemType("iron_trapdoor"); + + ItemType.Typed ITEM_FRAME = getItemType("item_frame"); + + ItemType.Typed JACK_O_LANTERN = getItemType("jack_o_lantern"); + + ItemType.Typed JIGSAW = getItemType("jigsaw"); + + ItemType.Typed JUKEBOX = getItemType("jukebox"); + + ItemType.Typed JUNGLE_BOAT = getItemType("jungle_boat"); + + ItemType.Typed JUNGLE_BUTTON = getItemType("jungle_button"); + + ItemType.Typed JUNGLE_CHEST_BOAT = getItemType("jungle_chest_boat"); + + ItemType.Typed JUNGLE_DOOR = getItemType("jungle_door"); + + ItemType.Typed JUNGLE_FENCE = getItemType("jungle_fence"); + + ItemType.Typed JUNGLE_FENCE_GATE = getItemType("jungle_fence_gate"); + + ItemType.Typed JUNGLE_HANGING_SIGN = getItemType("jungle_hanging_sign"); + + ItemType.Typed JUNGLE_LEAVES = getItemType("jungle_leaves"); + + ItemType.Typed JUNGLE_LOG = getItemType("jungle_log"); + + ItemType.Typed JUNGLE_PLANKS = getItemType("jungle_planks"); + + ItemType.Typed JUNGLE_PRESSURE_PLATE = getItemType("jungle_pressure_plate"); + + ItemType.Typed JUNGLE_SAPLING = getItemType("jungle_sapling"); + + ItemType.Typed JUNGLE_SIGN = getItemType("jungle_sign"); + + ItemType.Typed JUNGLE_SLAB = getItemType("jungle_slab"); + + ItemType.Typed JUNGLE_STAIRS = getItemType("jungle_stairs"); + + ItemType.Typed JUNGLE_TRAPDOOR = getItemType("jungle_trapdoor"); + + ItemType.Typed JUNGLE_WOOD = getItemType("jungle_wood"); + + ItemType.Typed KELP = getItemType("kelp"); + + ItemType.Typed KNOWLEDGE_BOOK = getItemType("knowledge_book"); + + ItemType.Typed LADDER = getItemType("ladder"); + + ItemType.Typed LAPIS_BLOCK = getItemType("lapis_block"); + + ItemType.Typed LAPIS_LAZULI = getItemType("lapis_lazuli"); + + ItemType.Typed LAPIS_ORE = getItemType("lapis_ore"); + + ItemType.Typed LARGE_AMETHYST_BUD = getItemType("large_amethyst_bud"); + + ItemType.Typed LARGE_FERN = getItemType("large_fern"); + + ItemType.Typed LAVA_BUCKET = getItemType("lava_bucket"); + + ItemType.Typed LEAD = getItemType("lead"); + + ItemType.Typed LEATHER = getItemType("leather"); + + ItemType.Typed LEATHER_BOOTS = getItemType("leather_boots"); + + ItemType.Typed LEATHER_CHESTPLATE = getItemType("leather_chestplate"); + + ItemType.Typed LEATHER_HELMET = getItemType("leather_helmet"); + + ItemType.Typed LEATHER_HORSE_ARMOR = getItemType("leather_horse_armor"); + + ItemType.Typed LEATHER_LEGGINGS = getItemType("leather_leggings"); + + ItemType.Typed LECTERN = getItemType("lectern"); + + ItemType.Typed LEVER = getItemType("lever"); + + ItemType.Typed LIGHT = getItemType("light"); + + ItemType.Typed LIGHT_BLUE_BANNER = getItemType("light_blue_banner"); + + ItemType.Typed LIGHT_BLUE_BED = getItemType("light_blue_bed"); + + ItemType.Typed LIGHT_BLUE_BUNDLE = getItemType("light_blue_bundle"); + + ItemType.Typed LIGHT_BLUE_CANDLE = getItemType("light_blue_candle"); + + ItemType.Typed LIGHT_BLUE_CARPET = getItemType("light_blue_carpet"); + + ItemType.Typed LIGHT_BLUE_CONCRETE = getItemType("light_blue_concrete"); + + ItemType.Typed LIGHT_BLUE_CONCRETE_POWDER = getItemType("light_blue_concrete_powder"); + + ItemType.Typed LIGHT_BLUE_DYE = getItemType("light_blue_dye"); + + ItemType.Typed LIGHT_BLUE_GLAZED_TERRACOTTA = getItemType("light_blue_glazed_terracotta"); + + ItemType.Typed LIGHT_BLUE_SHULKER_BOX = getItemType("light_blue_shulker_box"); + + ItemType.Typed LIGHT_BLUE_STAINED_GLASS = getItemType("light_blue_stained_glass"); + + ItemType.Typed LIGHT_BLUE_STAINED_GLASS_PANE = getItemType("light_blue_stained_glass_pane"); + + ItemType.Typed LIGHT_BLUE_TERRACOTTA = getItemType("light_blue_terracotta"); + + ItemType.Typed LIGHT_BLUE_WOOL = getItemType("light_blue_wool"); + + ItemType.Typed LIGHT_GRAY_BANNER = getItemType("light_gray_banner"); + + ItemType.Typed LIGHT_GRAY_BED = getItemType("light_gray_bed"); + + ItemType.Typed LIGHT_GRAY_BUNDLE = getItemType("light_gray_bundle"); + + ItemType.Typed LIGHT_GRAY_CANDLE = getItemType("light_gray_candle"); + + ItemType.Typed LIGHT_GRAY_CARPET = getItemType("light_gray_carpet"); + + ItemType.Typed LIGHT_GRAY_CONCRETE = getItemType("light_gray_concrete"); + + ItemType.Typed LIGHT_GRAY_CONCRETE_POWDER = getItemType("light_gray_concrete_powder"); + + ItemType.Typed LIGHT_GRAY_DYE = getItemType("light_gray_dye"); + + ItemType.Typed LIGHT_GRAY_GLAZED_TERRACOTTA = getItemType("light_gray_glazed_terracotta"); + + ItemType.Typed LIGHT_GRAY_SHULKER_BOX = getItemType("light_gray_shulker_box"); + + ItemType.Typed LIGHT_GRAY_STAINED_GLASS = getItemType("light_gray_stained_glass"); + + ItemType.Typed LIGHT_GRAY_STAINED_GLASS_PANE = getItemType("light_gray_stained_glass_pane"); + + ItemType.Typed LIGHT_GRAY_TERRACOTTA = getItemType("light_gray_terracotta"); + + ItemType.Typed LIGHT_GRAY_WOOL = getItemType("light_gray_wool"); + + ItemType.Typed LIGHT_WEIGHTED_PRESSURE_PLATE = getItemType("light_weighted_pressure_plate"); + + ItemType.Typed LIGHTNING_ROD = getItemType("lightning_rod"); + + ItemType.Typed LILAC = getItemType("lilac"); + + ItemType.Typed LILY_OF_THE_VALLEY = getItemType("lily_of_the_valley"); + + ItemType.Typed LILY_PAD = getItemType("lily_pad"); + + ItemType.Typed LIME_BANNER = getItemType("lime_banner"); + + ItemType.Typed LIME_BED = getItemType("lime_bed"); + + ItemType.Typed LIME_BUNDLE = getItemType("lime_bundle"); + + ItemType.Typed LIME_CANDLE = getItemType("lime_candle"); + + ItemType.Typed LIME_CARPET = getItemType("lime_carpet"); + + ItemType.Typed LIME_CONCRETE = getItemType("lime_concrete"); + + ItemType.Typed LIME_CONCRETE_POWDER = getItemType("lime_concrete_powder"); + + ItemType.Typed LIME_DYE = getItemType("lime_dye"); + + ItemType.Typed LIME_GLAZED_TERRACOTTA = getItemType("lime_glazed_terracotta"); + + ItemType.Typed LIME_SHULKER_BOX = getItemType("lime_shulker_box"); + + ItemType.Typed LIME_STAINED_GLASS = getItemType("lime_stained_glass"); + + ItemType.Typed LIME_STAINED_GLASS_PANE = getItemType("lime_stained_glass_pane"); + + ItemType.Typed LIME_TERRACOTTA = getItemType("lime_terracotta"); + + ItemType.Typed LIME_WOOL = getItemType("lime_wool"); + + ItemType.Typed LINGERING_POTION = getItemType("lingering_potion"); + + ItemType.Typed LLAMA_SPAWN_EGG = getItemType("llama_spawn_egg"); + + ItemType.Typed LODESTONE = getItemType("lodestone"); + + ItemType.Typed LOOM = getItemType("loom"); + + ItemType.Typed MACE = getItemType("mace"); + + ItemType.Typed MAGENTA_BANNER = getItemType("magenta_banner"); + + ItemType.Typed MAGENTA_BED = getItemType("magenta_bed"); + + ItemType.Typed MAGENTA_BUNDLE = getItemType("magenta_bundle"); + + ItemType.Typed MAGENTA_CANDLE = getItemType("magenta_candle"); + + ItemType.Typed MAGENTA_CARPET = getItemType("magenta_carpet"); + + ItemType.Typed MAGENTA_CONCRETE = getItemType("magenta_concrete"); + + ItemType.Typed MAGENTA_CONCRETE_POWDER = getItemType("magenta_concrete_powder"); + + ItemType.Typed MAGENTA_DYE = getItemType("magenta_dye"); + + ItemType.Typed MAGENTA_GLAZED_TERRACOTTA = getItemType("magenta_glazed_terracotta"); + + ItemType.Typed MAGENTA_SHULKER_BOX = getItemType("magenta_shulker_box"); + + ItemType.Typed MAGENTA_STAINED_GLASS = getItemType("magenta_stained_glass"); + + ItemType.Typed MAGENTA_STAINED_GLASS_PANE = getItemType("magenta_stained_glass_pane"); + + ItemType.Typed MAGENTA_TERRACOTTA = getItemType("magenta_terracotta"); + + ItemType.Typed MAGENTA_WOOL = getItemType("magenta_wool"); + + ItemType.Typed MAGMA_BLOCK = getItemType("magma_block"); + + ItemType.Typed MAGMA_CREAM = getItemType("magma_cream"); + + ItemType.Typed MAGMA_CUBE_SPAWN_EGG = getItemType("magma_cube_spawn_egg"); + + ItemType.Typed MANGROVE_BOAT = getItemType("mangrove_boat"); + + ItemType.Typed MANGROVE_BUTTON = getItemType("mangrove_button"); + + ItemType.Typed MANGROVE_CHEST_BOAT = getItemType("mangrove_chest_boat"); + + ItemType.Typed MANGROVE_DOOR = getItemType("mangrove_door"); + + ItemType.Typed MANGROVE_FENCE = getItemType("mangrove_fence"); + + ItemType.Typed MANGROVE_FENCE_GATE = getItemType("mangrove_fence_gate"); + + ItemType.Typed MANGROVE_HANGING_SIGN = getItemType("mangrove_hanging_sign"); + + ItemType.Typed MANGROVE_LEAVES = getItemType("mangrove_leaves"); + + ItemType.Typed MANGROVE_LOG = getItemType("mangrove_log"); + + ItemType.Typed MANGROVE_PLANKS = getItemType("mangrove_planks"); + + ItemType.Typed MANGROVE_PRESSURE_PLATE = getItemType("mangrove_pressure_plate"); + + ItemType.Typed MANGROVE_PROPAGULE = getItemType("mangrove_propagule"); + + ItemType.Typed MANGROVE_ROOTS = getItemType("mangrove_roots"); + + ItemType.Typed MANGROVE_SIGN = getItemType("mangrove_sign"); + + ItemType.Typed MANGROVE_SLAB = getItemType("mangrove_slab"); + + ItemType.Typed MANGROVE_STAIRS = getItemType("mangrove_stairs"); + + ItemType.Typed MANGROVE_TRAPDOOR = getItemType("mangrove_trapdoor"); + + ItemType.Typed MANGROVE_WOOD = getItemType("mangrove_wood"); + + ItemType.Typed MAP = getItemType("map"); + + ItemType.Typed MEDIUM_AMETHYST_BUD = getItemType("medium_amethyst_bud"); + + ItemType.Typed MELON = getItemType("melon"); + + ItemType.Typed MELON_SEEDS = getItemType("melon_seeds"); + + ItemType.Typed MELON_SLICE = getItemType("melon_slice"); + + ItemType.Typed MILK_BUCKET = getItemType("milk_bucket"); + + ItemType.Typed MINECART = getItemType("minecart"); + + ItemType.Typed MINER_POTTERY_SHERD = getItemType("miner_pottery_sherd"); + + ItemType.Typed MOJANG_BANNER_PATTERN = getItemType("mojang_banner_pattern"); + + ItemType.Typed MOOSHROOM_SPAWN_EGG = getItemType("mooshroom_spawn_egg"); + + ItemType.Typed MOSS_BLOCK = getItemType("moss_block"); + + ItemType.Typed MOSS_CARPET = getItemType("moss_carpet"); + + ItemType.Typed MOSSY_COBBLESTONE = getItemType("mossy_cobblestone"); + + ItemType.Typed MOSSY_COBBLESTONE_SLAB = getItemType("mossy_cobblestone_slab"); + + ItemType.Typed MOSSY_COBBLESTONE_STAIRS = getItemType("mossy_cobblestone_stairs"); + + ItemType.Typed MOSSY_COBBLESTONE_WALL = getItemType("mossy_cobblestone_wall"); + + ItemType.Typed MOSSY_STONE_BRICK_SLAB = getItemType("mossy_stone_brick_slab"); + + ItemType.Typed MOSSY_STONE_BRICK_STAIRS = getItemType("mossy_stone_brick_stairs"); + + ItemType.Typed MOSSY_STONE_BRICK_WALL = getItemType("mossy_stone_brick_wall"); + + ItemType.Typed MOSSY_STONE_BRICKS = getItemType("mossy_stone_bricks"); + + ItemType.Typed MOURNER_POTTERY_SHERD = getItemType("mourner_pottery_sherd"); + + ItemType.Typed MUD = getItemType("mud"); + + ItemType.Typed MUD_BRICK_SLAB = getItemType("mud_brick_slab"); + + ItemType.Typed MUD_BRICK_STAIRS = getItemType("mud_brick_stairs"); + + ItemType.Typed MUD_BRICK_WALL = getItemType("mud_brick_wall"); + + ItemType.Typed MUD_BRICKS = getItemType("mud_bricks"); + + ItemType.Typed MUDDY_MANGROVE_ROOTS = getItemType("muddy_mangrove_roots"); + + ItemType.Typed MULE_SPAWN_EGG = getItemType("mule_spawn_egg"); + + ItemType.Typed MUSHROOM_STEM = getItemType("mushroom_stem"); + + ItemType.Typed MUSHROOM_STEW = getItemType("mushroom_stew"); + + ItemType.Typed MUSIC_DISC_11 = getItemType("music_disc_11"); + + ItemType.Typed MUSIC_DISC_13 = getItemType("music_disc_13"); + + ItemType.Typed MUSIC_DISC_BLOCKS = getItemType("music_disc_blocks"); + + ItemType.Typed MUSIC_DISC_CAT = getItemType("music_disc_cat"); + + ItemType.Typed MUSIC_DISC_CHIRP = getItemType("music_disc_chirp"); + + ItemType.Typed MUSIC_DISC_CREATOR = getItemType("music_disc_creator"); + + ItemType.Typed MUSIC_DISC_CREATOR_MUSIC_BOX = getItemType("music_disc_creator_music_box"); + + ItemType.Typed MUSIC_DISC_FAR = getItemType("music_disc_far"); + + ItemType.Typed MUSIC_DISC_MALL = getItemType("music_disc_mall"); + + ItemType.Typed MUSIC_DISC_MELLOHI = getItemType("music_disc_mellohi"); + + ItemType.Typed MUSIC_DISC_OTHERSIDE = getItemType("music_disc_otherside"); + + ItemType.Typed MUSIC_DISC_PIGSTEP = getItemType("music_disc_pigstep"); + + ItemType.Typed MUSIC_DISC_PRECIPICE = getItemType("music_disc_precipice"); + + ItemType.Typed MUSIC_DISC_RELIC = getItemType("music_disc_relic"); + + ItemType.Typed MUSIC_DISC_STAL = getItemType("music_disc_stal"); + + ItemType.Typed MUSIC_DISC_STRAD = getItemType("music_disc_strad"); + + ItemType.Typed MUSIC_DISC_WAIT = getItemType("music_disc_wait"); + + ItemType.Typed MUSIC_DISC_WARD = getItemType("music_disc_ward"); + + ItemType.Typed MUTTON = getItemType("mutton"); + + ItemType.Typed MYCELIUM = getItemType("mycelium"); + + ItemType.Typed NAME_TAG = getItemType("name_tag"); + + ItemType.Typed NAUTILUS_SHELL = getItemType("nautilus_shell"); + + ItemType.Typed NETHER_BRICK = getItemType("nether_brick"); + + ItemType.Typed NETHER_BRICK_FENCE = getItemType("nether_brick_fence"); + + ItemType.Typed NETHER_BRICK_SLAB = getItemType("nether_brick_slab"); + + ItemType.Typed NETHER_BRICK_STAIRS = getItemType("nether_brick_stairs"); + + ItemType.Typed NETHER_BRICK_WALL = getItemType("nether_brick_wall"); + + ItemType.Typed NETHER_BRICKS = getItemType("nether_bricks"); + + ItemType.Typed NETHER_GOLD_ORE = getItemType("nether_gold_ore"); + + ItemType.Typed NETHER_QUARTZ_ORE = getItemType("nether_quartz_ore"); + + ItemType.Typed NETHER_SPROUTS = getItemType("nether_sprouts"); + + ItemType.Typed NETHER_STAR = getItemType("nether_star"); + + ItemType.Typed NETHER_WART = getItemType("nether_wart"); + + ItemType.Typed NETHER_WART_BLOCK = getItemType("nether_wart_block"); + + ItemType.Typed NETHERITE_AXE = getItemType("netherite_axe"); + + ItemType.Typed NETHERITE_BLOCK = getItemType("netherite_block"); + + ItemType.Typed NETHERITE_BOOTS = getItemType("netherite_boots"); + + ItemType.Typed NETHERITE_CHESTPLATE = getItemType("netherite_chestplate"); + + ItemType.Typed NETHERITE_HELMET = getItemType("netherite_helmet"); + + ItemType.Typed NETHERITE_HOE = getItemType("netherite_hoe"); + + ItemType.Typed NETHERITE_INGOT = getItemType("netherite_ingot"); + + ItemType.Typed NETHERITE_LEGGINGS = getItemType("netherite_leggings"); + + ItemType.Typed NETHERITE_PICKAXE = getItemType("netherite_pickaxe"); + + ItemType.Typed NETHERITE_SCRAP = getItemType("netherite_scrap"); + + ItemType.Typed NETHERITE_SHOVEL = getItemType("netherite_shovel"); + + ItemType.Typed NETHERITE_SWORD = getItemType("netherite_sword"); + + ItemType.Typed NETHERITE_UPGRADE_SMITHING_TEMPLATE = getItemType("netherite_upgrade_smithing_template"); + + ItemType.Typed NETHERRACK = getItemType("netherrack"); + + ItemType.Typed NOTE_BLOCK = getItemType("note_block"); + + ItemType.Typed OAK_BOAT = getItemType("oak_boat"); + + ItemType.Typed OAK_BUTTON = getItemType("oak_button"); + + ItemType.Typed OAK_CHEST_BOAT = getItemType("oak_chest_boat"); + + ItemType.Typed OAK_DOOR = getItemType("oak_door"); + + ItemType.Typed OAK_FENCE = getItemType("oak_fence"); + + ItemType.Typed OAK_FENCE_GATE = getItemType("oak_fence_gate"); + + ItemType.Typed OAK_HANGING_SIGN = getItemType("oak_hanging_sign"); + + ItemType.Typed OAK_LEAVES = getItemType("oak_leaves"); + + ItemType.Typed OAK_LOG = getItemType("oak_log"); + + ItemType.Typed OAK_PLANKS = getItemType("oak_planks"); + + ItemType.Typed OAK_PRESSURE_PLATE = getItemType("oak_pressure_plate"); + + ItemType.Typed OAK_SAPLING = getItemType("oak_sapling"); + + ItemType.Typed OAK_SIGN = getItemType("oak_sign"); + + ItemType.Typed OAK_SLAB = getItemType("oak_slab"); + + ItemType.Typed OAK_STAIRS = getItemType("oak_stairs"); + + ItemType.Typed OAK_TRAPDOOR = getItemType("oak_trapdoor"); + + ItemType.Typed OAK_WOOD = getItemType("oak_wood"); + + ItemType.Typed OBSERVER = getItemType("observer"); + + ItemType.Typed OBSIDIAN = getItemType("obsidian"); + + ItemType.Typed OCELOT_SPAWN_EGG = getItemType("ocelot_spawn_egg"); + + ItemType.Typed OCHRE_FROGLIGHT = getItemType("ochre_froglight"); + + ItemType.Typed OMINOUS_BOTTLE = getItemType("ominous_bottle"); + ItemType.Typed OMINOUS_TRIAL_KEY = getItemType("ominous_trial_key"); - /** - * ItemMeta: {@link BlockStateMeta} - */ - ItemType.Typed VAULT = getItemType("vault"); - /** - * ItemMeta: {@link OminousBottleMeta} - */ - ItemType.Typed OMINOUS_BOTTLE = getItemType("ominous_bottle"); + + ItemType.Typed OPEN_EYEBLOSSOM = getItemType("open_eyeblossom"); + + ItemType.Typed ORANGE_BANNER = getItemType("orange_banner"); + + ItemType.Typed ORANGE_BED = getItemType("orange_bed"); + + ItemType.Typed ORANGE_BUNDLE = getItemType("orange_bundle"); + + ItemType.Typed ORANGE_CANDLE = getItemType("orange_candle"); + + ItemType.Typed ORANGE_CARPET = getItemType("orange_carpet"); + + ItemType.Typed ORANGE_CONCRETE = getItemType("orange_concrete"); + + ItemType.Typed ORANGE_CONCRETE_POWDER = getItemType("orange_concrete_powder"); + + ItemType.Typed ORANGE_DYE = getItemType("orange_dye"); + + ItemType.Typed ORANGE_GLAZED_TERRACOTTA = getItemType("orange_glazed_terracotta"); + + ItemType.Typed ORANGE_SHULKER_BOX = getItemType("orange_shulker_box"); + + ItemType.Typed ORANGE_STAINED_GLASS = getItemType("orange_stained_glass"); + + ItemType.Typed ORANGE_STAINED_GLASS_PANE = getItemType("orange_stained_glass_pane"); + + ItemType.Typed ORANGE_TERRACOTTA = getItemType("orange_terracotta"); + + ItemType.Typed ORANGE_TULIP = getItemType("orange_tulip"); + + ItemType.Typed ORANGE_WOOL = getItemType("orange_wool"); + + ItemType.Typed OXEYE_DAISY = getItemType("oxeye_daisy"); + + ItemType.Typed OXIDIZED_CHISELED_COPPER = getItemType("oxidized_chiseled_copper"); + + ItemType.Typed OXIDIZED_COPPER = getItemType("oxidized_copper"); + + ItemType.Typed OXIDIZED_COPPER_BULB = getItemType("oxidized_copper_bulb"); + + ItemType.Typed OXIDIZED_COPPER_DOOR = getItemType("oxidized_copper_door"); + + ItemType.Typed OXIDIZED_COPPER_GRATE = getItemType("oxidized_copper_grate"); + + ItemType.Typed OXIDIZED_COPPER_TRAPDOOR = getItemType("oxidized_copper_trapdoor"); + + ItemType.Typed OXIDIZED_CUT_COPPER = getItemType("oxidized_cut_copper"); + + ItemType.Typed OXIDIZED_CUT_COPPER_SLAB = getItemType("oxidized_cut_copper_slab"); + + ItemType.Typed OXIDIZED_CUT_COPPER_STAIRS = getItemType("oxidized_cut_copper_stairs"); + + ItemType.Typed PACKED_ICE = getItemType("packed_ice"); + + ItemType.Typed PACKED_MUD = getItemType("packed_mud"); + + ItemType.Typed PAINTING = getItemType("painting"); + + ItemType.Typed PALE_HANGING_MOSS = getItemType("pale_hanging_moss"); + + ItemType.Typed PALE_MOSS_BLOCK = getItemType("pale_moss_block"); + + ItemType.Typed PALE_MOSS_CARPET = getItemType("pale_moss_carpet"); + + ItemType.Typed PALE_OAK_BOAT = getItemType("pale_oak_boat"); + + ItemType.Typed PALE_OAK_BUTTON = getItemType("pale_oak_button"); + + ItemType.Typed PALE_OAK_CHEST_BOAT = getItemType("pale_oak_chest_boat"); + + ItemType.Typed PALE_OAK_DOOR = getItemType("pale_oak_door"); + + ItemType.Typed PALE_OAK_FENCE = getItemType("pale_oak_fence"); + + ItemType.Typed PALE_OAK_FENCE_GATE = getItemType("pale_oak_fence_gate"); + + ItemType.Typed PALE_OAK_HANGING_SIGN = getItemType("pale_oak_hanging_sign"); + + ItemType.Typed PALE_OAK_LEAVES = getItemType("pale_oak_leaves"); + + ItemType.Typed PALE_OAK_LOG = getItemType("pale_oak_log"); + + ItemType.Typed PALE_OAK_PLANKS = getItemType("pale_oak_planks"); + + ItemType.Typed PALE_OAK_PRESSURE_PLATE = getItemType("pale_oak_pressure_plate"); + + ItemType.Typed PALE_OAK_SAPLING = getItemType("pale_oak_sapling"); + + ItemType.Typed PALE_OAK_SIGN = getItemType("pale_oak_sign"); + + ItemType.Typed PALE_OAK_SLAB = getItemType("pale_oak_slab"); + + ItemType.Typed PALE_OAK_STAIRS = getItemType("pale_oak_stairs"); + + ItemType.Typed PALE_OAK_TRAPDOOR = getItemType("pale_oak_trapdoor"); + + ItemType.Typed PALE_OAK_WOOD = getItemType("pale_oak_wood"); + + ItemType.Typed PANDA_SPAWN_EGG = getItemType("panda_spawn_egg"); + + ItemType.Typed PAPER = getItemType("paper"); + + ItemType.Typed PARROT_SPAWN_EGG = getItemType("parrot_spawn_egg"); + + ItemType.Typed PEARLESCENT_FROGLIGHT = getItemType("pearlescent_froglight"); + + ItemType.Typed PEONY = getItemType("peony"); + + ItemType.Typed PETRIFIED_OAK_SLAB = getItemType("petrified_oak_slab"); + + ItemType.Typed PHANTOM_MEMBRANE = getItemType("phantom_membrane"); + + ItemType.Typed PHANTOM_SPAWN_EGG = getItemType("phantom_spawn_egg"); + + ItemType.Typed PIG_SPAWN_EGG = getItemType("pig_spawn_egg"); + + ItemType.Typed PIGLIN_BANNER_PATTERN = getItemType("piglin_banner_pattern"); + + ItemType.Typed PIGLIN_BRUTE_SPAWN_EGG = getItemType("piglin_brute_spawn_egg"); + + ItemType.Typed PIGLIN_HEAD = getItemType("piglin_head"); + + ItemType.Typed PIGLIN_SPAWN_EGG = getItemType("piglin_spawn_egg"); + + ItemType.Typed PILLAGER_SPAWN_EGG = getItemType("pillager_spawn_egg"); + + ItemType.Typed PINK_BANNER = getItemType("pink_banner"); + + ItemType.Typed PINK_BED = getItemType("pink_bed"); + + ItemType.Typed PINK_BUNDLE = getItemType("pink_bundle"); + + ItemType.Typed PINK_CANDLE = getItemType("pink_candle"); + + ItemType.Typed PINK_CARPET = getItemType("pink_carpet"); + + ItemType.Typed PINK_CONCRETE = getItemType("pink_concrete"); + + ItemType.Typed PINK_CONCRETE_POWDER = getItemType("pink_concrete_powder"); + + ItemType.Typed PINK_DYE = getItemType("pink_dye"); + + ItemType.Typed PINK_GLAZED_TERRACOTTA = getItemType("pink_glazed_terracotta"); + + ItemType.Typed PINK_PETALS = getItemType("pink_petals"); + + ItemType.Typed PINK_SHULKER_BOX = getItemType("pink_shulker_box"); + + ItemType.Typed PINK_STAINED_GLASS = getItemType("pink_stained_glass"); + + ItemType.Typed PINK_STAINED_GLASS_PANE = getItemType("pink_stained_glass_pane"); + + ItemType.Typed PINK_TERRACOTTA = getItemType("pink_terracotta"); + + ItemType.Typed PINK_TULIP = getItemType("pink_tulip"); + + ItemType.Typed PINK_WOOL = getItemType("pink_wool"); + + ItemType.Typed PISTON = getItemType("piston"); + + ItemType.Typed PITCHER_PLANT = getItemType("pitcher_plant"); + + ItemType.Typed PITCHER_POD = getItemType("pitcher_pod"); + + ItemType.Typed PLAYER_HEAD = getItemType("player_head"); + + ItemType.Typed PLENTY_POTTERY_SHERD = getItemType("plenty_pottery_sherd"); + + ItemType.Typed PODZOL = getItemType("podzol"); + + ItemType.Typed POINTED_DRIPSTONE = getItemType("pointed_dripstone"); + + ItemType.Typed POISONOUS_POTATO = getItemType("poisonous_potato"); + + ItemType.Typed POLAR_BEAR_SPAWN_EGG = getItemType("polar_bear_spawn_egg"); + + ItemType.Typed POLISHED_ANDESITE = getItemType("polished_andesite"); + + ItemType.Typed POLISHED_ANDESITE_SLAB = getItemType("polished_andesite_slab"); + + ItemType.Typed POLISHED_ANDESITE_STAIRS = getItemType("polished_andesite_stairs"); + + ItemType.Typed POLISHED_BASALT = getItemType("polished_basalt"); + + ItemType.Typed POLISHED_BLACKSTONE = getItemType("polished_blackstone"); + + ItemType.Typed POLISHED_BLACKSTONE_BRICK_SLAB = getItemType("polished_blackstone_brick_slab"); + + ItemType.Typed POLISHED_BLACKSTONE_BRICK_STAIRS = getItemType("polished_blackstone_brick_stairs"); + + ItemType.Typed POLISHED_BLACKSTONE_BRICK_WALL = getItemType("polished_blackstone_brick_wall"); + + ItemType.Typed POLISHED_BLACKSTONE_BRICKS = getItemType("polished_blackstone_bricks"); + + ItemType.Typed POLISHED_BLACKSTONE_BUTTON = getItemType("polished_blackstone_button"); + + ItemType.Typed POLISHED_BLACKSTONE_PRESSURE_PLATE = getItemType("polished_blackstone_pressure_plate"); + + ItemType.Typed POLISHED_BLACKSTONE_SLAB = getItemType("polished_blackstone_slab"); + + ItemType.Typed POLISHED_BLACKSTONE_STAIRS = getItemType("polished_blackstone_stairs"); + + ItemType.Typed POLISHED_BLACKSTONE_WALL = getItemType("polished_blackstone_wall"); + + ItemType.Typed POLISHED_DEEPSLATE = getItemType("polished_deepslate"); + + ItemType.Typed POLISHED_DEEPSLATE_SLAB = getItemType("polished_deepslate_slab"); + + ItemType.Typed POLISHED_DEEPSLATE_STAIRS = getItemType("polished_deepslate_stairs"); + + ItemType.Typed POLISHED_DEEPSLATE_WALL = getItemType("polished_deepslate_wall"); + + ItemType.Typed POLISHED_DIORITE = getItemType("polished_diorite"); + + ItemType.Typed POLISHED_DIORITE_SLAB = getItemType("polished_diorite_slab"); + + ItemType.Typed POLISHED_DIORITE_STAIRS = getItemType("polished_diorite_stairs"); + + ItemType.Typed POLISHED_GRANITE = getItemType("polished_granite"); + + ItemType.Typed POLISHED_GRANITE_SLAB = getItemType("polished_granite_slab"); + + ItemType.Typed POLISHED_GRANITE_STAIRS = getItemType("polished_granite_stairs"); + + ItemType.Typed POLISHED_TUFF = getItemType("polished_tuff"); + + ItemType.Typed POLISHED_TUFF_SLAB = getItemType("polished_tuff_slab"); + + ItemType.Typed POLISHED_TUFF_STAIRS = getItemType("polished_tuff_stairs"); + + ItemType.Typed POLISHED_TUFF_WALL = getItemType("polished_tuff_wall"); + + ItemType.Typed POPPED_CHORUS_FRUIT = getItemType("popped_chorus_fruit"); + + ItemType.Typed POPPY = getItemType("poppy"); + + ItemType.Typed PORKCHOP = getItemType("porkchop"); + + ItemType.Typed POTATO = getItemType("potato"); + + ItemType.Typed POTION = getItemType("potion"); + + ItemType.Typed POWDER_SNOW_BUCKET = getItemType("powder_snow_bucket"); + + ItemType.Typed POWERED_RAIL = getItemType("powered_rail"); + + ItemType.Typed PRISMARINE = getItemType("prismarine"); + + ItemType.Typed PRISMARINE_BRICK_SLAB = getItemType("prismarine_brick_slab"); + + ItemType.Typed PRISMARINE_BRICK_STAIRS = getItemType("prismarine_brick_stairs"); + + ItemType.Typed PRISMARINE_BRICKS = getItemType("prismarine_bricks"); + + ItemType.Typed PRISMARINE_CRYSTALS = getItemType("prismarine_crystals"); + + ItemType.Typed PRISMARINE_SHARD = getItemType("prismarine_shard"); + + ItemType.Typed PRISMARINE_SLAB = getItemType("prismarine_slab"); + + ItemType.Typed PRISMARINE_STAIRS = getItemType("prismarine_stairs"); + + ItemType.Typed PRISMARINE_WALL = getItemType("prismarine_wall"); + + ItemType.Typed PRIZE_POTTERY_SHERD = getItemType("prize_pottery_sherd"); + + ItemType.Typed PUFFERFISH = getItemType("pufferfish"); + + ItemType.Typed PUFFERFISH_BUCKET = getItemType("pufferfish_bucket"); + + ItemType.Typed PUFFERFISH_SPAWN_EGG = getItemType("pufferfish_spawn_egg"); + + ItemType.Typed PUMPKIN = getItemType("pumpkin"); + + ItemType.Typed PUMPKIN_PIE = getItemType("pumpkin_pie"); + + ItemType.Typed PUMPKIN_SEEDS = getItemType("pumpkin_seeds"); + + ItemType.Typed PURPLE_BANNER = getItemType("purple_banner"); + + ItemType.Typed PURPLE_BED = getItemType("purple_bed"); + + ItemType.Typed PURPLE_BUNDLE = getItemType("purple_bundle"); + + ItemType.Typed PURPLE_CANDLE = getItemType("purple_candle"); + + ItemType.Typed PURPLE_CARPET = getItemType("purple_carpet"); + + ItemType.Typed PURPLE_CONCRETE = getItemType("purple_concrete"); + + ItemType.Typed PURPLE_CONCRETE_POWDER = getItemType("purple_concrete_powder"); + + ItemType.Typed PURPLE_DYE = getItemType("purple_dye"); + + ItemType.Typed PURPLE_GLAZED_TERRACOTTA = getItemType("purple_glazed_terracotta"); + + ItemType.Typed PURPLE_SHULKER_BOX = getItemType("purple_shulker_box"); + + ItemType.Typed PURPLE_STAINED_GLASS = getItemType("purple_stained_glass"); + + ItemType.Typed PURPLE_STAINED_GLASS_PANE = getItemType("purple_stained_glass_pane"); + + ItemType.Typed PURPLE_TERRACOTTA = getItemType("purple_terracotta"); + + ItemType.Typed PURPLE_WOOL = getItemType("purple_wool"); + + ItemType.Typed PURPUR_BLOCK = getItemType("purpur_block"); + + ItemType.Typed PURPUR_PILLAR = getItemType("purpur_pillar"); + + ItemType.Typed PURPUR_SLAB = getItemType("purpur_slab"); + + ItemType.Typed PURPUR_STAIRS = getItemType("purpur_stairs"); + + ItemType.Typed QUARTZ = getItemType("quartz"); + + ItemType.Typed QUARTZ_BLOCK = getItemType("quartz_block"); + + ItemType.Typed QUARTZ_BRICKS = getItemType("quartz_bricks"); + + ItemType.Typed QUARTZ_PILLAR = getItemType("quartz_pillar"); + + ItemType.Typed QUARTZ_SLAB = getItemType("quartz_slab"); + + ItemType.Typed QUARTZ_STAIRS = getItemType("quartz_stairs"); + + ItemType.Typed RABBIT = getItemType("rabbit"); + + ItemType.Typed RABBIT_FOOT = getItemType("rabbit_foot"); + + ItemType.Typed RABBIT_HIDE = getItemType("rabbit_hide"); + + ItemType.Typed RABBIT_SPAWN_EGG = getItemType("rabbit_spawn_egg"); + + ItemType.Typed RABBIT_STEW = getItemType("rabbit_stew"); + + ItemType.Typed RAIL = getItemType("rail"); + + ItemType.Typed RAISER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("raiser_armor_trim_smithing_template"); + + ItemType.Typed RAVAGER_SPAWN_EGG = getItemType("ravager_spawn_egg"); + + ItemType.Typed RAW_COPPER = getItemType("raw_copper"); + + ItemType.Typed RAW_COPPER_BLOCK = getItemType("raw_copper_block"); + + ItemType.Typed RAW_GOLD = getItemType("raw_gold"); + + ItemType.Typed RAW_GOLD_BLOCK = getItemType("raw_gold_block"); + + ItemType.Typed RAW_IRON = getItemType("raw_iron"); + + ItemType.Typed RAW_IRON_BLOCK = getItemType("raw_iron_block"); + + ItemType.Typed RECOVERY_COMPASS = getItemType("recovery_compass"); + + ItemType.Typed RED_BANNER = getItemType("red_banner"); + + ItemType.Typed RED_BED = getItemType("red_bed"); + + ItemType.Typed RED_BUNDLE = getItemType("red_bundle"); + + ItemType.Typed RED_CANDLE = getItemType("red_candle"); + + ItemType.Typed RED_CARPET = getItemType("red_carpet"); + + ItemType.Typed RED_CONCRETE = getItemType("red_concrete"); + + ItemType.Typed RED_CONCRETE_POWDER = getItemType("red_concrete_powder"); + + ItemType.Typed RED_DYE = getItemType("red_dye"); + + ItemType.Typed RED_GLAZED_TERRACOTTA = getItemType("red_glazed_terracotta"); + + ItemType.Typed RED_MUSHROOM = getItemType("red_mushroom"); + + ItemType.Typed RED_MUSHROOM_BLOCK = getItemType("red_mushroom_block"); + + ItemType.Typed RED_NETHER_BRICK_SLAB = getItemType("red_nether_brick_slab"); + + ItemType.Typed RED_NETHER_BRICK_STAIRS = getItemType("red_nether_brick_stairs"); + + ItemType.Typed RED_NETHER_BRICK_WALL = getItemType("red_nether_brick_wall"); + + ItemType.Typed RED_NETHER_BRICKS = getItemType("red_nether_bricks"); + + ItemType.Typed RED_SAND = getItemType("red_sand"); + + ItemType.Typed RED_SANDSTONE = getItemType("red_sandstone"); + + ItemType.Typed RED_SANDSTONE_SLAB = getItemType("red_sandstone_slab"); + + ItemType.Typed RED_SANDSTONE_STAIRS = getItemType("red_sandstone_stairs"); + + ItemType.Typed RED_SANDSTONE_WALL = getItemType("red_sandstone_wall"); + + ItemType.Typed RED_SHULKER_BOX = getItemType("red_shulker_box"); + + ItemType.Typed RED_STAINED_GLASS = getItemType("red_stained_glass"); + + ItemType.Typed RED_STAINED_GLASS_PANE = getItemType("red_stained_glass_pane"); + + ItemType.Typed RED_TERRACOTTA = getItemType("red_terracotta"); + + ItemType.Typed RED_TULIP = getItemType("red_tulip"); + + ItemType.Typed RED_WOOL = getItemType("red_wool"); + + ItemType.Typed REDSTONE = getItemType("redstone"); + + ItemType.Typed REDSTONE_BLOCK = getItemType("redstone_block"); + + ItemType.Typed REDSTONE_LAMP = getItemType("redstone_lamp"); + + ItemType.Typed REDSTONE_ORE = getItemType("redstone_ore"); + + ItemType.Typed REDSTONE_TORCH = getItemType("redstone_torch"); + + ItemType.Typed REINFORCED_DEEPSLATE = getItemType("reinforced_deepslate"); + + ItemType.Typed REPEATER = getItemType("repeater"); + + ItemType.Typed REPEATING_COMMAND_BLOCK = getItemType("repeating_command_block"); + + ItemType.Typed RESIN_BLOCK = getItemType("resin_block"); + + ItemType.Typed RESIN_BRICK = getItemType("resin_brick"); + + ItemType.Typed RESIN_BRICK_SLAB = getItemType("resin_brick_slab"); + + ItemType.Typed RESIN_BRICK_STAIRS = getItemType("resin_brick_stairs"); + + ItemType.Typed RESIN_BRICK_WALL = getItemType("resin_brick_wall"); + + ItemType.Typed RESIN_BRICKS = getItemType("resin_bricks"); + + ItemType.Typed RESIN_CLUMP = getItemType("resin_clump"); + + ItemType.Typed RESPAWN_ANCHOR = getItemType("respawn_anchor"); + + ItemType.Typed RIB_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("rib_armor_trim_smithing_template"); + + ItemType.Typed ROOTED_DIRT = getItemType("rooted_dirt"); + + ItemType.Typed ROSE_BUSH = getItemType("rose_bush"); + + ItemType.Typed ROTTEN_FLESH = getItemType("rotten_flesh"); + + ItemType.Typed SADDLE = getItemType("saddle"); + + ItemType.Typed SALMON = getItemType("salmon"); + + ItemType.Typed SALMON_BUCKET = getItemType("salmon_bucket"); + + ItemType.Typed SALMON_SPAWN_EGG = getItemType("salmon_spawn_egg"); + + ItemType.Typed SAND = getItemType("sand"); + + ItemType.Typed SANDSTONE = getItemType("sandstone"); + + ItemType.Typed SANDSTONE_SLAB = getItemType("sandstone_slab"); + + ItemType.Typed SANDSTONE_STAIRS = getItemType("sandstone_stairs"); + + ItemType.Typed SANDSTONE_WALL = getItemType("sandstone_wall"); + + ItemType.Typed SCAFFOLDING = getItemType("scaffolding"); + + ItemType.Typed SCRAPE_POTTERY_SHERD = getItemType("scrape_pottery_sherd"); + + ItemType.Typed SCULK = getItemType("sculk"); + + ItemType.Typed SCULK_CATALYST = getItemType("sculk_catalyst"); + + ItemType.Typed SCULK_SENSOR = getItemType("sculk_sensor"); + + ItemType.Typed SCULK_SHRIEKER = getItemType("sculk_shrieker"); + + ItemType.Typed SCULK_VEIN = getItemType("sculk_vein"); + + ItemType.Typed SEA_LANTERN = getItemType("sea_lantern"); + + ItemType.Typed SEA_PICKLE = getItemType("sea_pickle"); + + ItemType.Typed SEAGRASS = getItemType("seagrass"); + + ItemType.Typed SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("sentry_armor_trim_smithing_template"); + + ItemType.Typed SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("shaper_armor_trim_smithing_template"); + + ItemType.Typed SHEAF_POTTERY_SHERD = getItemType("sheaf_pottery_sherd"); + + ItemType.Typed SHEARS = getItemType("shears"); + + ItemType.Typed SHEEP_SPAWN_EGG = getItemType("sheep_spawn_egg"); + + ItemType.Typed SHELTER_POTTERY_SHERD = getItemType("shelter_pottery_sherd"); + + ItemType.Typed SHIELD = getItemType("shield"); + + ItemType.Typed SHORT_GRASS = getItemType("short_grass"); + + ItemType.Typed SHROOMLIGHT = getItemType("shroomlight"); + + ItemType.Typed SHULKER_BOX = getItemType("shulker_box"); + + ItemType.Typed SHULKER_SHELL = getItemType("shulker_shell"); + + ItemType.Typed SHULKER_SPAWN_EGG = getItemType("shulker_spawn_egg"); + + ItemType.Typed SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("silence_armor_trim_smithing_template"); + + ItemType.Typed SILVERFISH_SPAWN_EGG = getItemType("silverfish_spawn_egg"); + + ItemType.Typed SKELETON_HORSE_SPAWN_EGG = getItemType("skeleton_horse_spawn_egg"); + + ItemType.Typed SKELETON_SKULL = getItemType("skeleton_skull"); + + ItemType.Typed SKELETON_SPAWN_EGG = getItemType("skeleton_spawn_egg"); + + ItemType.Typed SKULL_BANNER_PATTERN = getItemType("skull_banner_pattern"); + + ItemType.Typed SKULL_POTTERY_SHERD = getItemType("skull_pottery_sherd"); + + ItemType.Typed SLIME_BALL = getItemType("slime_ball"); + + ItemType.Typed SLIME_BLOCK = getItemType("slime_block"); + + ItemType.Typed SLIME_SPAWN_EGG = getItemType("slime_spawn_egg"); + + ItemType.Typed SMALL_AMETHYST_BUD = getItemType("small_amethyst_bud"); + + ItemType.Typed SMALL_DRIPLEAF = getItemType("small_dripleaf"); + + ItemType.Typed SMITHING_TABLE = getItemType("smithing_table"); + + ItemType.Typed SMOKER = getItemType("smoker"); + + ItemType.Typed SMOOTH_BASALT = getItemType("smooth_basalt"); + + ItemType.Typed SMOOTH_QUARTZ = getItemType("smooth_quartz"); + + ItemType.Typed SMOOTH_QUARTZ_SLAB = getItemType("smooth_quartz_slab"); + + ItemType.Typed SMOOTH_QUARTZ_STAIRS = getItemType("smooth_quartz_stairs"); + + ItemType.Typed SMOOTH_RED_SANDSTONE = getItemType("smooth_red_sandstone"); + + ItemType.Typed SMOOTH_RED_SANDSTONE_SLAB = getItemType("smooth_red_sandstone_slab"); + + ItemType.Typed SMOOTH_RED_SANDSTONE_STAIRS = getItemType("smooth_red_sandstone_stairs"); + + ItemType.Typed SMOOTH_SANDSTONE = getItemType("smooth_sandstone"); + + ItemType.Typed SMOOTH_SANDSTONE_SLAB = getItemType("smooth_sandstone_slab"); + + ItemType.Typed SMOOTH_SANDSTONE_STAIRS = getItemType("smooth_sandstone_stairs"); + + ItemType.Typed SMOOTH_STONE = getItemType("smooth_stone"); + + ItemType.Typed SMOOTH_STONE_SLAB = getItemType("smooth_stone_slab"); + + ItemType.Typed SNIFFER_EGG = getItemType("sniffer_egg"); + + ItemType.Typed SNIFFER_SPAWN_EGG = getItemType("sniffer_spawn_egg"); + + ItemType.Typed SNORT_POTTERY_SHERD = getItemType("snort_pottery_sherd"); + + ItemType.Typed SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("snout_armor_trim_smithing_template"); + + ItemType.Typed SNOW = getItemType("snow"); + + ItemType.Typed SNOW_BLOCK = getItemType("snow_block"); + + ItemType.Typed SNOW_GOLEM_SPAWN_EGG = getItemType("snow_golem_spawn_egg"); + + ItemType.Typed SNOWBALL = getItemType("snowball"); + + ItemType.Typed SOUL_CAMPFIRE = getItemType("soul_campfire"); + + ItemType.Typed SOUL_LANTERN = getItemType("soul_lantern"); + + ItemType.Typed SOUL_SAND = getItemType("soul_sand"); + + ItemType.Typed SOUL_SOIL = getItemType("soul_soil"); + + ItemType.Typed SOUL_TORCH = getItemType("soul_torch"); + + ItemType.Typed SPAWNER = getItemType("spawner"); + + ItemType.Typed SPECTRAL_ARROW = getItemType("spectral_arrow"); + + ItemType.Typed SPIDER_EYE = getItemType("spider_eye"); + + ItemType.Typed SPIDER_SPAWN_EGG = getItemType("spider_spawn_egg"); + + ItemType.Typed SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("spire_armor_trim_smithing_template"); + + ItemType.Typed SPLASH_POTION = getItemType("splash_potion"); + + ItemType.Typed SPONGE = getItemType("sponge"); + + ItemType.Typed SPORE_BLOSSOM = getItemType("spore_blossom"); + + ItemType.Typed SPRUCE_BOAT = getItemType("spruce_boat"); + + ItemType.Typed SPRUCE_BUTTON = getItemType("spruce_button"); + + ItemType.Typed SPRUCE_CHEST_BOAT = getItemType("spruce_chest_boat"); + + ItemType.Typed SPRUCE_DOOR = getItemType("spruce_door"); + + ItemType.Typed SPRUCE_FENCE = getItemType("spruce_fence"); + + ItemType.Typed SPRUCE_FENCE_GATE = getItemType("spruce_fence_gate"); + + ItemType.Typed SPRUCE_HANGING_SIGN = getItemType("spruce_hanging_sign"); + + ItemType.Typed SPRUCE_LEAVES = getItemType("spruce_leaves"); + + ItemType.Typed SPRUCE_LOG = getItemType("spruce_log"); + + ItemType.Typed SPRUCE_PLANKS = getItemType("spruce_planks"); + + ItemType.Typed SPRUCE_PRESSURE_PLATE = getItemType("spruce_pressure_plate"); + + ItemType.Typed SPRUCE_SAPLING = getItemType("spruce_sapling"); + + ItemType.Typed SPRUCE_SIGN = getItemType("spruce_sign"); + + ItemType.Typed SPRUCE_SLAB = getItemType("spruce_slab"); + + ItemType.Typed SPRUCE_STAIRS = getItemType("spruce_stairs"); + + ItemType.Typed SPRUCE_TRAPDOOR = getItemType("spruce_trapdoor"); + + ItemType.Typed SPRUCE_WOOD = getItemType("spruce_wood"); + + ItemType.Typed SPYGLASS = getItemType("spyglass"); + + ItemType.Typed SQUID_SPAWN_EGG = getItemType("squid_spawn_egg"); + + ItemType.Typed STICK = getItemType("stick"); + + ItemType.Typed STICKY_PISTON = getItemType("sticky_piston"); + + ItemType.Typed STONE = getItemType("stone"); + + ItemType.Typed STONE_AXE = getItemType("stone_axe"); + + ItemType.Typed STONE_BRICK_SLAB = getItemType("stone_brick_slab"); + + ItemType.Typed STONE_BRICK_STAIRS = getItemType("stone_brick_stairs"); + + ItemType.Typed STONE_BRICK_WALL = getItemType("stone_brick_wall"); + + ItemType.Typed STONE_BRICKS = getItemType("stone_bricks"); + + ItemType.Typed STONE_BUTTON = getItemType("stone_button"); + + ItemType.Typed STONE_HOE = getItemType("stone_hoe"); + + ItemType.Typed STONE_PICKAXE = getItemType("stone_pickaxe"); + + ItemType.Typed STONE_PRESSURE_PLATE = getItemType("stone_pressure_plate"); + + ItemType.Typed STONE_SHOVEL = getItemType("stone_shovel"); + + ItemType.Typed STONE_SLAB = getItemType("stone_slab"); + + ItemType.Typed STONE_STAIRS = getItemType("stone_stairs"); + + ItemType.Typed STONE_SWORD = getItemType("stone_sword"); + + ItemType.Typed STONECUTTER = getItemType("stonecutter"); + + ItemType.Typed STRAY_SPAWN_EGG = getItemType("stray_spawn_egg"); + + ItemType.Typed STRIDER_SPAWN_EGG = getItemType("strider_spawn_egg"); + + ItemType.Typed STRING = getItemType("string"); + + ItemType.Typed STRIPPED_ACACIA_LOG = getItemType("stripped_acacia_log"); + + ItemType.Typed STRIPPED_ACACIA_WOOD = getItemType("stripped_acacia_wood"); + + ItemType.Typed STRIPPED_BAMBOO_BLOCK = getItemType("stripped_bamboo_block"); + + ItemType.Typed STRIPPED_BIRCH_LOG = getItemType("stripped_birch_log"); + + ItemType.Typed STRIPPED_BIRCH_WOOD = getItemType("stripped_birch_wood"); + + ItemType.Typed STRIPPED_CHERRY_LOG = getItemType("stripped_cherry_log"); + + ItemType.Typed STRIPPED_CHERRY_WOOD = getItemType("stripped_cherry_wood"); + + ItemType.Typed STRIPPED_CRIMSON_HYPHAE = getItemType("stripped_crimson_hyphae"); + + ItemType.Typed STRIPPED_CRIMSON_STEM = getItemType("stripped_crimson_stem"); + + ItemType.Typed STRIPPED_DARK_OAK_LOG = getItemType("stripped_dark_oak_log"); + + ItemType.Typed STRIPPED_DARK_OAK_WOOD = getItemType("stripped_dark_oak_wood"); + + ItemType.Typed STRIPPED_JUNGLE_LOG = getItemType("stripped_jungle_log"); + + ItemType.Typed STRIPPED_JUNGLE_WOOD = getItemType("stripped_jungle_wood"); + + ItemType.Typed STRIPPED_MANGROVE_LOG = getItemType("stripped_mangrove_log"); + + ItemType.Typed STRIPPED_MANGROVE_WOOD = getItemType("stripped_mangrove_wood"); + + ItemType.Typed STRIPPED_OAK_LOG = getItemType("stripped_oak_log"); + + ItemType.Typed STRIPPED_OAK_WOOD = getItemType("stripped_oak_wood"); + + ItemType.Typed STRIPPED_PALE_OAK_LOG = getItemType("stripped_pale_oak_log"); + + ItemType.Typed STRIPPED_PALE_OAK_WOOD = getItemType("stripped_pale_oak_wood"); + + ItemType.Typed STRIPPED_SPRUCE_LOG = getItemType("stripped_spruce_log"); + + ItemType.Typed STRIPPED_SPRUCE_WOOD = getItemType("stripped_spruce_wood"); + + ItemType.Typed STRIPPED_WARPED_HYPHAE = getItemType("stripped_warped_hyphae"); + + ItemType.Typed STRIPPED_WARPED_STEM = getItemType("stripped_warped_stem"); + + ItemType.Typed STRUCTURE_BLOCK = getItemType("structure_block"); + + ItemType.Typed STRUCTURE_VOID = getItemType("structure_void"); + + ItemType.Typed SUGAR = getItemType("sugar"); + + ItemType.Typed SUGAR_CANE = getItemType("sugar_cane"); + + ItemType.Typed SUNFLOWER = getItemType("sunflower"); + + ItemType.Typed SUSPICIOUS_GRAVEL = getItemType("suspicious_gravel"); + + ItemType.Typed SUSPICIOUS_SAND = getItemType("suspicious_sand"); + + ItemType.Typed SUSPICIOUS_STEW = getItemType("suspicious_stew"); + + ItemType.Typed SWEET_BERRIES = getItemType("sweet_berries"); + + ItemType.Typed TADPOLE_BUCKET = getItemType("tadpole_bucket"); + + ItemType.Typed TADPOLE_SPAWN_EGG = getItemType("tadpole_spawn_egg"); + + ItemType.Typed TALL_GRASS = getItemType("tall_grass"); + + ItemType.Typed TARGET = getItemType("target"); + + ItemType.Typed TERRACOTTA = getItemType("terracotta"); + + ItemType.Typed TIDE_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("tide_armor_trim_smithing_template"); + + ItemType.Typed TINTED_GLASS = getItemType("tinted_glass"); + + ItemType.Typed TIPPED_ARROW = getItemType("tipped_arrow"); + + ItemType.Typed TNT = getItemType("tnt"); + + ItemType.Typed TNT_MINECART = getItemType("tnt_minecart"); + + ItemType.Typed TORCH = getItemType("torch"); + + ItemType.Typed TORCHFLOWER = getItemType("torchflower"); + + ItemType.Typed TORCHFLOWER_SEEDS = getItemType("torchflower_seeds"); + + ItemType.Typed TOTEM_OF_UNDYING = getItemType("totem_of_undying"); + + ItemType.Typed TRADER_LLAMA_SPAWN_EGG = getItemType("trader_llama_spawn_egg"); + + ItemType.Typed TRAPPED_CHEST = getItemType("trapped_chest"); + + ItemType.Typed TRIAL_KEY = getItemType("trial_key"); + + ItemType.Typed TRIAL_SPAWNER = getItemType("trial_spawner"); + + ItemType.Typed TRIDENT = getItemType("trident"); + + ItemType.Typed TRIPWIRE_HOOK = getItemType("tripwire_hook"); + + ItemType.Typed TROPICAL_FISH = getItemType("tropical_fish"); + + ItemType.Typed TROPICAL_FISH_BUCKET = getItemType("tropical_fish_bucket"); + + ItemType.Typed TROPICAL_FISH_SPAWN_EGG = getItemType("tropical_fish_spawn_egg"); + + ItemType.Typed TUBE_CORAL = getItemType("tube_coral"); + + ItemType.Typed TUBE_CORAL_BLOCK = getItemType("tube_coral_block"); + + ItemType.Typed TUBE_CORAL_FAN = getItemType("tube_coral_fan"); + + ItemType.Typed TUFF = getItemType("tuff"); + + ItemType.Typed TUFF_BRICK_SLAB = getItemType("tuff_brick_slab"); + + ItemType.Typed TUFF_BRICK_STAIRS = getItemType("tuff_brick_stairs"); + + ItemType.Typed TUFF_BRICK_WALL = getItemType("tuff_brick_wall"); + + ItemType.Typed TUFF_BRICKS = getItemType("tuff_bricks"); + + ItemType.Typed TUFF_SLAB = getItemType("tuff_slab"); + + ItemType.Typed TUFF_STAIRS = getItemType("tuff_stairs"); + + ItemType.Typed TUFF_WALL = getItemType("tuff_wall"); + + ItemType.Typed TURTLE_EGG = getItemType("turtle_egg"); + + ItemType.Typed TURTLE_HELMET = getItemType("turtle_helmet"); + + ItemType.Typed TURTLE_SCUTE = getItemType("turtle_scute"); + + ItemType.Typed TURTLE_SPAWN_EGG = getItemType("turtle_spawn_egg"); + + ItemType.Typed TWISTING_VINES = getItemType("twisting_vines"); + + ItemType.Typed VAULT = getItemType("vault"); + + ItemType.Typed VERDANT_FROGLIGHT = getItemType("verdant_froglight"); + + ItemType.Typed VEX_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("vex_armor_trim_smithing_template"); + + ItemType.Typed VEX_SPAWN_EGG = getItemType("vex_spawn_egg"); + + ItemType.Typed VILLAGER_SPAWN_EGG = getItemType("villager_spawn_egg"); + + ItemType.Typed VINDICATOR_SPAWN_EGG = getItemType("vindicator_spawn_egg"); + + ItemType.Typed VINE = getItemType("vine"); + + ItemType.Typed WANDERING_TRADER_SPAWN_EGG = getItemType("wandering_trader_spawn_egg"); + + ItemType.Typed WARD_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("ward_armor_trim_smithing_template"); + + ItemType.Typed WARDEN_SPAWN_EGG = getItemType("warden_spawn_egg"); + + ItemType.Typed WARPED_BUTTON = getItemType("warped_button"); + + ItemType.Typed WARPED_DOOR = getItemType("warped_door"); + + ItemType.Typed WARPED_FENCE = getItemType("warped_fence"); + + ItemType.Typed WARPED_FENCE_GATE = getItemType("warped_fence_gate"); + + ItemType.Typed WARPED_FUNGUS = getItemType("warped_fungus"); + + ItemType.Typed WARPED_FUNGUS_ON_A_STICK = getItemType("warped_fungus_on_a_stick"); + + ItemType.Typed WARPED_HANGING_SIGN = getItemType("warped_hanging_sign"); + + ItemType.Typed WARPED_HYPHAE = getItemType("warped_hyphae"); + + ItemType.Typed WARPED_NYLIUM = getItemType("warped_nylium"); + + ItemType.Typed WARPED_PLANKS = getItemType("warped_planks"); + + ItemType.Typed WARPED_PRESSURE_PLATE = getItemType("warped_pressure_plate"); + + ItemType.Typed WARPED_ROOTS = getItemType("warped_roots"); + + ItemType.Typed WARPED_SIGN = getItemType("warped_sign"); + + ItemType.Typed WARPED_SLAB = getItemType("warped_slab"); + + ItemType.Typed WARPED_STAIRS = getItemType("warped_stairs"); + + ItemType.Typed WARPED_STEM = getItemType("warped_stem"); + + ItemType.Typed WARPED_TRAPDOOR = getItemType("warped_trapdoor"); + + ItemType.Typed WARPED_WART_BLOCK = getItemType("warped_wart_block"); + + ItemType.Typed WATER_BUCKET = getItemType("water_bucket"); + + ItemType.Typed WAXED_CHISELED_COPPER = getItemType("waxed_chiseled_copper"); + + ItemType.Typed WAXED_COPPER_BLOCK = getItemType("waxed_copper_block"); + + ItemType.Typed WAXED_COPPER_BULB = getItemType("waxed_copper_bulb"); + + ItemType.Typed WAXED_COPPER_DOOR = getItemType("waxed_copper_door"); + + ItemType.Typed WAXED_COPPER_GRATE = getItemType("waxed_copper_grate"); + + ItemType.Typed WAXED_COPPER_TRAPDOOR = getItemType("waxed_copper_trapdoor"); + + ItemType.Typed WAXED_CUT_COPPER = getItemType("waxed_cut_copper"); + + ItemType.Typed WAXED_CUT_COPPER_SLAB = getItemType("waxed_cut_copper_slab"); + + ItemType.Typed WAXED_CUT_COPPER_STAIRS = getItemType("waxed_cut_copper_stairs"); + + ItemType.Typed WAXED_EXPOSED_CHISELED_COPPER = getItemType("waxed_exposed_chiseled_copper"); + + ItemType.Typed WAXED_EXPOSED_COPPER = getItemType("waxed_exposed_copper"); + + ItemType.Typed WAXED_EXPOSED_COPPER_BULB = getItemType("waxed_exposed_copper_bulb"); + + ItemType.Typed WAXED_EXPOSED_COPPER_DOOR = getItemType("waxed_exposed_copper_door"); + + ItemType.Typed WAXED_EXPOSED_COPPER_GRATE = getItemType("waxed_exposed_copper_grate"); + + ItemType.Typed WAXED_EXPOSED_COPPER_TRAPDOOR = getItemType("waxed_exposed_copper_trapdoor"); + + ItemType.Typed WAXED_EXPOSED_CUT_COPPER = getItemType("waxed_exposed_cut_copper"); + + ItemType.Typed WAXED_EXPOSED_CUT_COPPER_SLAB = getItemType("waxed_exposed_cut_copper_slab"); + + ItemType.Typed WAXED_EXPOSED_CUT_COPPER_STAIRS = getItemType("waxed_exposed_cut_copper_stairs"); + + ItemType.Typed WAXED_OXIDIZED_CHISELED_COPPER = getItemType("waxed_oxidized_chiseled_copper"); + + ItemType.Typed WAXED_OXIDIZED_COPPER = getItemType("waxed_oxidized_copper"); + + ItemType.Typed WAXED_OXIDIZED_COPPER_BULB = getItemType("waxed_oxidized_copper_bulb"); + + ItemType.Typed WAXED_OXIDIZED_COPPER_DOOR = getItemType("waxed_oxidized_copper_door"); + + ItemType.Typed WAXED_OXIDIZED_COPPER_GRATE = getItemType("waxed_oxidized_copper_grate"); + + ItemType.Typed WAXED_OXIDIZED_COPPER_TRAPDOOR = getItemType("waxed_oxidized_copper_trapdoor"); + + ItemType.Typed WAXED_OXIDIZED_CUT_COPPER = getItemType("waxed_oxidized_cut_copper"); + + ItemType.Typed WAXED_OXIDIZED_CUT_COPPER_SLAB = getItemType("waxed_oxidized_cut_copper_slab"); + + ItemType.Typed WAXED_OXIDIZED_CUT_COPPER_STAIRS = getItemType("waxed_oxidized_cut_copper_stairs"); + + ItemType.Typed WAXED_WEATHERED_CHISELED_COPPER = getItemType("waxed_weathered_chiseled_copper"); + + ItemType.Typed WAXED_WEATHERED_COPPER = getItemType("waxed_weathered_copper"); + + ItemType.Typed WAXED_WEATHERED_COPPER_BULB = getItemType("waxed_weathered_copper_bulb"); + + ItemType.Typed WAXED_WEATHERED_COPPER_DOOR = getItemType("waxed_weathered_copper_door"); + + ItemType.Typed WAXED_WEATHERED_COPPER_GRATE = getItemType("waxed_weathered_copper_grate"); + + ItemType.Typed WAXED_WEATHERED_COPPER_TRAPDOOR = getItemType("waxed_weathered_copper_trapdoor"); + + ItemType.Typed WAXED_WEATHERED_CUT_COPPER = getItemType("waxed_weathered_cut_copper"); + + ItemType.Typed WAXED_WEATHERED_CUT_COPPER_SLAB = getItemType("waxed_weathered_cut_copper_slab"); + + ItemType.Typed WAXED_WEATHERED_CUT_COPPER_STAIRS = getItemType("waxed_weathered_cut_copper_stairs"); + + ItemType.Typed WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("wayfinder_armor_trim_smithing_template"); + + ItemType.Typed WEATHERED_CHISELED_COPPER = getItemType("weathered_chiseled_copper"); + + ItemType.Typed WEATHERED_COPPER = getItemType("weathered_copper"); + + ItemType.Typed WEATHERED_COPPER_BULB = getItemType("weathered_copper_bulb"); + + ItemType.Typed WEATHERED_COPPER_DOOR = getItemType("weathered_copper_door"); + + ItemType.Typed WEATHERED_COPPER_GRATE = getItemType("weathered_copper_grate"); + + ItemType.Typed WEATHERED_COPPER_TRAPDOOR = getItemType("weathered_copper_trapdoor"); + + ItemType.Typed WEATHERED_CUT_COPPER = getItemType("weathered_cut_copper"); + + ItemType.Typed WEATHERED_CUT_COPPER_SLAB = getItemType("weathered_cut_copper_slab"); + + ItemType.Typed WEATHERED_CUT_COPPER_STAIRS = getItemType("weathered_cut_copper_stairs"); + + ItemType.Typed WEEPING_VINES = getItemType("weeping_vines"); + + ItemType.Typed WET_SPONGE = getItemType("wet_sponge"); + + ItemType.Typed WHEAT = getItemType("wheat"); + + ItemType.Typed WHEAT_SEEDS = getItemType("wheat_seeds"); + + ItemType.Typed WHITE_BANNER = getItemType("white_banner"); + + ItemType.Typed WHITE_BED = getItemType("white_bed"); + + ItemType.Typed WHITE_BUNDLE = getItemType("white_bundle"); + + ItemType.Typed WHITE_CANDLE = getItemType("white_candle"); + + ItemType.Typed WHITE_CARPET = getItemType("white_carpet"); + + ItemType.Typed WHITE_CONCRETE = getItemType("white_concrete"); + + ItemType.Typed WHITE_CONCRETE_POWDER = getItemType("white_concrete_powder"); + + ItemType.Typed WHITE_DYE = getItemType("white_dye"); + + ItemType.Typed WHITE_GLAZED_TERRACOTTA = getItemType("white_glazed_terracotta"); + + ItemType.Typed WHITE_SHULKER_BOX = getItemType("white_shulker_box"); + + ItemType.Typed WHITE_STAINED_GLASS = getItemType("white_stained_glass"); + + ItemType.Typed WHITE_STAINED_GLASS_PANE = getItemType("white_stained_glass_pane"); + + ItemType.Typed WHITE_TERRACOTTA = getItemType("white_terracotta"); + + ItemType.Typed WHITE_TULIP = getItemType("white_tulip"); + + ItemType.Typed WHITE_WOOL = getItemType("white_wool"); + + ItemType.Typed WILD_ARMOR_TRIM_SMITHING_TEMPLATE = getItemType("wild_armor_trim_smithing_template"); + + ItemType.Typed WIND_CHARGE = getItemType("wind_charge"); + + ItemType.Typed WITCH_SPAWN_EGG = getItemType("witch_spawn_egg"); + + ItemType.Typed WITHER_ROSE = getItemType("wither_rose"); + + ItemType.Typed WITHER_SKELETON_SKULL = getItemType("wither_skeleton_skull"); + + ItemType.Typed WITHER_SKELETON_SPAWN_EGG = getItemType("wither_skeleton_spawn_egg"); + + ItemType.Typed WITHER_SPAWN_EGG = getItemType("wither_spawn_egg"); + + ItemType.Typed WOLF_ARMOR = getItemType("wolf_armor"); + + ItemType.Typed WOLF_SPAWN_EGG = getItemType("wolf_spawn_egg"); + + ItemType.Typed WOODEN_AXE = getItemType("wooden_axe"); + + ItemType.Typed WOODEN_HOE = getItemType("wooden_hoe"); + + ItemType.Typed WOODEN_PICKAXE = getItemType("wooden_pickaxe"); + + ItemType.Typed WOODEN_SHOVEL = getItemType("wooden_shovel"); + + ItemType.Typed WOODEN_SWORD = getItemType("wooden_sword"); + + ItemType.Typed WRITABLE_BOOK = getItemType("writable_book"); + + ItemType.Typed WRITTEN_BOOK = getItemType("written_book"); + + ItemType.Typed YELLOW_BANNER = getItemType("yellow_banner"); + + ItemType.Typed YELLOW_BED = getItemType("yellow_bed"); + + ItemType.Typed YELLOW_BUNDLE = getItemType("yellow_bundle"); + + ItemType.Typed YELLOW_CANDLE = getItemType("yellow_candle"); + + ItemType.Typed YELLOW_CARPET = getItemType("yellow_carpet"); + + ItemType.Typed YELLOW_CONCRETE = getItemType("yellow_concrete"); + + ItemType.Typed YELLOW_CONCRETE_POWDER = getItemType("yellow_concrete_powder"); + + ItemType.Typed YELLOW_DYE = getItemType("yellow_dye"); + + ItemType.Typed YELLOW_GLAZED_TERRACOTTA = getItemType("yellow_glazed_terracotta"); + + ItemType.Typed YELLOW_SHULKER_BOX = getItemType("yellow_shulker_box"); + + ItemType.Typed YELLOW_STAINED_GLASS = getItemType("yellow_stained_glass"); + + ItemType.Typed YELLOW_STAINED_GLASS_PANE = getItemType("yellow_stained_glass_pane"); + + ItemType.Typed YELLOW_TERRACOTTA = getItemType("yellow_terracotta"); + + ItemType.Typed YELLOW_WOOL = getItemType("yellow_wool"); + + ItemType.Typed ZOGLIN_SPAWN_EGG = getItemType("zoglin_spawn_egg"); + + ItemType.Typed ZOMBIE_HEAD = getItemType("zombie_head"); + + ItemType.Typed ZOMBIE_HORSE_SPAWN_EGG = getItemType("zombie_horse_spawn_egg"); + + ItemType.Typed ZOMBIE_SPAWN_EGG = getItemType("zombie_spawn_egg"); + + ItemType.Typed ZOMBIE_VILLAGER_SPAWN_EGG = getItemType("zombie_villager_spawn_egg"); + + ItemType.Typed ZOMBIFIED_PIGLIN_SPAWN_EGG = getItemType("zombified_piglin_spawn_egg"); + // End generate - ItemType // @NotNull @@ -2401,7 +3041,7 @@ public interface ItemType extends Keyed, Translatable, net.kyori.adventure.trans * Get the {@link CreativeCategory} to which this item type belongs. * * @return the creative category. null if does not belong to a category - * @deprecated creative categories no longer exist on the server + */ @Nullable @Deprecated(since = "1.20.6") diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java index 0910dd287d..dae93515d3 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimMaterial.java @@ -14,50 +14,30 @@ import org.jetbrains.annotations.NotNull; */ public interface TrimMaterial extends Keyed, Translatable { - /** - * {@link Material#QUARTZ}. - */ - public static final TrimMaterial QUARTZ = getTrimMaterial("quartz"); - /** - * {@link Material#IRON_INGOT}. - */ - public static final TrimMaterial IRON = getTrimMaterial("iron"); - /** - * {@link Material#NETHERITE_INGOT}. - */ - public static final TrimMaterial NETHERITE = getTrimMaterial("netherite"); - /** - * {@link Material#REDSTONE}. - */ - public static final TrimMaterial REDSTONE = getTrimMaterial("redstone"); - /** - * {@link Material#COPPER_INGOT}. - */ - public static final TrimMaterial COPPER = getTrimMaterial("copper"); - /** - * {@link Material#GOLD_INGOT}. - */ - public static final TrimMaterial GOLD = getTrimMaterial("gold"); - /** - * {@link Material#EMERALD}. - */ - public static final TrimMaterial EMERALD = getTrimMaterial("emerald"); - /** - * {@link Material#DIAMOND}. - */ - public static final TrimMaterial DIAMOND = getTrimMaterial("diamond"); - /** - * {@link Material#LAPIS_LAZULI}. - */ - public static final TrimMaterial LAPIS = getTrimMaterial("lapis"); - /** - * {@link Material#AMETHYST_SHARD}. - */ - public static final TrimMaterial AMETHYST = getTrimMaterial("amethyst"); - /** - * {@link Material#RESIN_BRICK}. - */ - public static final TrimMaterial RESIN = getTrimMaterial("resin"); + // Start generate - TrimMaterial + // @GeneratedFrom 1.21.4 + TrimMaterial AMETHYST = getTrimMaterial("amethyst"); + + TrimMaterial COPPER = getTrimMaterial("copper"); + + TrimMaterial DIAMOND = getTrimMaterial("diamond"); + + TrimMaterial EMERALD = getTrimMaterial("emerald"); + + TrimMaterial GOLD = getTrimMaterial("gold"); + + TrimMaterial IRON = getTrimMaterial("iron"); + + TrimMaterial LAPIS = getTrimMaterial("lapis"); + + TrimMaterial NETHERITE = getTrimMaterial("netherite"); + + TrimMaterial QUARTZ = getTrimMaterial("quartz"); + + TrimMaterial REDSTONE = getTrimMaterial("redstone"); + + TrimMaterial RESIN = getTrimMaterial("resin"); + // End generate - TrimMaterial @NotNull private static TrimMaterial getTrimMaterial(@NotNull String key) { @@ -99,6 +79,5 @@ public interface TrimMaterial extends Keyed, Translatable { default net.kyori.adventure.key.@org.jetbrains.annotations.NotNull Key key() { return org.bukkit.Keyed.super.key(); } - // Paper end - Registry#getKey } diff --git a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java index 9360e27b0b..a2807a865d 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java +++ b/paper-api/src/main/java/org/bukkit/inventory/meta/trim/TrimPattern.java @@ -14,78 +14,44 @@ import org.jetbrains.annotations.NotNull; */ public interface TrimPattern extends Keyed, Translatable { - /** - * {@link Material#SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern SENTRY = getTrimPattern("sentry"); - /** - * {@link Material#DUNE_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern DUNE = getTrimPattern("dune"); - /** - * {@link Material#COAST_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern COAST = getTrimPattern("coast"); - /** - * {@link Material#WILD_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern WILD = getTrimPattern("wild"); - /** - * {@link Material#WARD_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern WARD = getTrimPattern("ward"); - /** - * {@link Material#EYE_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern EYE = getTrimPattern("eye"); - /** - * {@link Material#VEX_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern VEX = getTrimPattern("vex"); - /** - * {@link Material#TIDE_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern TIDE = getTrimPattern("tide"); - /** - * {@link Material#SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern SNOUT = getTrimPattern("snout"); - /** - * {@link Material#RIB_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern RIB = getTrimPattern("rib"); - /** - * {@link Material#SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern SPIRE = getTrimPattern("spire"); - /** - * {@link Material#WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern WAYFINDER = getTrimPattern("wayfinder"); - /** - * {@link Material#SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern SHAPER = getTrimPattern("shaper"); - /** - * {@link Material#SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern SILENCE = getTrimPattern("silence"); - /** - * {@link Material#RAISER_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern RAISER = getTrimPattern("raiser"); - /** - * {@link Material#HOST_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern HOST = getTrimPattern("host"); - /** - * {@link Material#FLOW_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern FLOW = getTrimPattern("flow"); - /** - * {@link Material#BOLT_ARMOR_TRIM_SMITHING_TEMPLATE}. - */ - public static final TrimPattern BOLT = getTrimPattern("bolt"); + // Start generate - TrimPattern + // @GeneratedFrom 1.21.4 + TrimPattern BOLT = getTrimPattern("bolt"); + + TrimPattern COAST = getTrimPattern("coast"); + + TrimPattern DUNE = getTrimPattern("dune"); + + TrimPattern EYE = getTrimPattern("eye"); + + TrimPattern FLOW = getTrimPattern("flow"); + + TrimPattern HOST = getTrimPattern("host"); + + TrimPattern RAISER = getTrimPattern("raiser"); + + TrimPattern RIB = getTrimPattern("rib"); + + TrimPattern SENTRY = getTrimPattern("sentry"); + + TrimPattern SHAPER = getTrimPattern("shaper"); + + TrimPattern SILENCE = getTrimPattern("silence"); + + TrimPattern SNOUT = getTrimPattern("snout"); + + TrimPattern SPIRE = getTrimPattern("spire"); + + TrimPattern TIDE = getTrimPattern("tide"); + + TrimPattern VEX = getTrimPattern("vex"); + + TrimPattern WARD = getTrimPattern("ward"); + + TrimPattern WAYFINDER = getTrimPattern("wayfinder"); + + TrimPattern WILD = getTrimPattern("wild"); + // End generate - TrimPattern @NotNull private static TrimPattern getTrimPattern(@NotNull String key) { diff --git a/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java b/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java index 9990a7abf8..c6b2403c09 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/recipe/CookingBookCategory.java @@ -5,7 +5,10 @@ package org.bukkit.inventory.recipe; */ public enum CookingBookCategory { + // Start generate - CookingBookCategory + // @GeneratedFrom 1.21.4 FOOD, BLOCKS, MISC; + // End generate - CookingBookCategory } diff --git a/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java b/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java index 09a6a1b9b9..e6028649e9 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/recipe/CraftingBookCategory.java @@ -5,8 +5,11 @@ package org.bukkit.inventory.recipe; */ public enum CraftingBookCategory { + // Start generate - CraftingBookCategory + // @GeneratedFrom 1.21.4 BUILDING, REDSTONE, EQUIPMENT, MISC; + // End generate - CraftingBookCategory } diff --git a/paper-api/src/main/java/org/bukkit/map/MapCursor.java b/paper-api/src/main/java/org/bukkit/map/MapCursor.java index 7f5682c80f..d9dfd90d11 100644 --- a/paper-api/src/main/java/org/bukkit/map/MapCursor.java +++ b/paper-api/src/main/java/org/bukkit/map/MapCursor.java @@ -7,6 +7,7 @@ import org.bukkit.Keyed; import org.bukkit.NamespacedKey; import org.bukkit.Registry; import org.bukkit.util.OldEnum; +import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -287,56 +288,79 @@ public final class MapCursor { */ public interface Type extends OldEnum, Keyed { - Type PLAYER = getType("player"); - Type FRAME = getType("frame"); - Type RED_MARKER = getType("red_marker"); - Type BLUE_MARKER = getType("blue_marker"); - Type TARGET_X = getType("target_x"); - Type TARGET_POINT = getType("target_point"); - Type PLAYER_OFF_MAP = getType("player_off_map"); - Type PLAYER_OFF_LIMITS = getType("player_off_limits"); - Type MANSION = getType("mansion"); - Type MONUMENT = getType("monument"); - Type BANNER_WHITE = getType("banner_white"); - Type BANNER_ORANGE = getType("banner_orange"); - Type BANNER_MAGENTA = getType("banner_magenta"); - Type BANNER_LIGHT_BLUE = getType("banner_light_blue"); - Type BANNER_YELLOW = getType("banner_yellow"); - Type BANNER_LIME = getType("banner_lime"); - Type BANNER_PINK = getType("banner_pink"); - Type BANNER_GRAY = getType("banner_gray"); - Type BANNER_LIGHT_GRAY = getType("banner_light_gray"); - Type BANNER_CYAN = getType("banner_cyan"); - Type BANNER_PURPLE = getType("banner_purple"); - Type BANNER_BLUE = getType("banner_blue"); - Type BANNER_BROWN = getType("banner_brown"); - Type BANNER_GREEN = getType("banner_green"); - Type BANNER_RED = getType("banner_red"); + // Start generate - MapCursorType + // @GeneratedFrom 1.21.4 Type BANNER_BLACK = getType("banner_black"); - Type RED_X = getType("red_x"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - Type VILLAGE_DESERT = getType("village_desert"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - Type VILLAGE_PLAINS = getType("village_plains"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - Type VILLAGE_SAVANNA = getType("village_savanna"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - Type VILLAGE_SNOWY = getType("village_snowy"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation - Type VILLAGE_TAIGA = getType("village_taiga"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + + Type BANNER_BLUE = getType("banner_blue"); + + Type BANNER_BROWN = getType("banner_brown"); + + Type BANNER_CYAN = getType("banner_cyan"); + + Type BANNER_GRAY = getType("banner_gray"); + + Type BANNER_GREEN = getType("banner_green"); + + Type BANNER_LIGHT_BLUE = getType("banner_light_blue"); + + Type BANNER_LIGHT_GRAY = getType("banner_light_gray"); + + Type BANNER_LIME = getType("banner_lime"); + + Type BANNER_MAGENTA = getType("banner_magenta"); + + Type BANNER_ORANGE = getType("banner_orange"); + + Type BANNER_PINK = getType("banner_pink"); + + Type BANNER_PURPLE = getType("banner_purple"); + + Type BANNER_RED = getType("banner_red"); + + Type BANNER_WHITE = getType("banner_white"); + + Type BANNER_YELLOW = getType("banner_yellow"); + + Type BLUE_MARKER = getType("blue_marker"); + + Type FRAME = getType("frame"); + Type JUNGLE_TEMPLE = getType("jungle_temple"); - @org.bukkit.MinecraftExperimental(org.bukkit.MinecraftExperimental.Requires.TRADE_REBALANCE) // Paper - add missing annotation - @org.jetbrains.annotations.ApiStatus.Experimental // Paper - add missing annotation + + Type MANSION = getType("mansion"); + + Type MONUMENT = getType("monument"); + + Type PLAYER = getType("player"); + + Type PLAYER_OFF_LIMITS = getType("player_off_limits"); + + Type PLAYER_OFF_MAP = getType("player_off_map"); + + Type RED_MARKER = getType("red_marker"); + + Type RED_X = getType("red_x"); + Type SWAMP_HUT = getType("swamp_hut"); + + Type TARGET_POINT = getType("target_point"); + + Type TARGET_X = getType("target_x"); + Type TRIAL_CHAMBERS = getType("trial_chambers"); + Type VILLAGE_DESERT = getType("village_desert"); + + Type VILLAGE_PLAINS = getType("village_plains"); + + Type VILLAGE_SAVANNA = getType("village_savanna"); + + Type VILLAGE_SNOWY = getType("village_snowy"); + + Type VILLAGE_TAIGA = getType("village_taiga"); + // End generate - MapCursorType + @NotNull private static Type getType(@NotNull String key) { return Registry.MAP_DECORATION_TYPE.getOrThrow(NamespacedKey.minecraft(key)); @@ -348,7 +372,7 @@ public final class MapCursor { * @return the value * @apiNote Internal Use Only */ - @org.jetbrains.annotations.ApiStatus.Internal // Paper + @ApiStatus.Internal // Paper byte getValue(); /** @@ -358,7 +382,7 @@ public final class MapCursor { * @return the matching type * @apiNote Internal Use Only */ - @org.jetbrains.annotations.ApiStatus.Internal // Paper + @ApiStatus.Internal // Paper @Nullable static Type byValue(byte value) { for (Type t : values()) { @@ -373,7 +397,7 @@ public final class MapCursor { * @deprecated only for backwards compatibility, use {@link Registry#get(NamespacedKey)} instead. */ @NotNull - @Deprecated(since = "1.21", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils + @Deprecated(since = "1.21", forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils static Type valueOf(@NotNull String name) { Type type = Registry.MAP_DECORATION_TYPE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))); Preconditions.checkArgument(type != null, "No Type found with the name %s", name); @@ -385,7 +409,7 @@ public final class MapCursor { * @deprecated use {@link Registry#iterator()}. */ @NotNull - @Deprecated(since = "1.21", forRemoval = true) @org.jetbrains.annotations.ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils + @Deprecated(since = "1.21", forRemoval = true) @ApiStatus.ScheduledForRemoval(inVersion = "1.22") // Paper - will be removed via asm-utils static Type[] values() { return Lists.newArrayList(Registry.MAP_DECORATION_TYPE).toArray(new Type[0]); } diff --git a/paper-api/src/main/java/org/bukkit/map/MapPalette.java b/paper-api/src/main/java/org/bukkit/map/MapPalette.java index 6995f9cc08..797a180415 100644 --- a/paper-api/src/main/java/org/bukkit/map/MapPalette.java +++ b/paper-api/src/main/java/org/bukkit/map/MapPalette.java @@ -18,16 +18,6 @@ public final class MapPalette { // Internal mechanisms private MapPalette() {} - @NotNull - private static Color c(int r, int g, int b) { - return new Color(r, g, b); - } - - @NotNull - private static Color c(int r, int g, int b, int a) { - return new Color(r, g, b, a); - } - private static double getDistance(@NotNull Color c1, @NotNull Color c2) { // Paper start - Optimize color distance calculation by removing floating point math int rsum = c1.getRed() + c2.getRed(); // Use sum instead of mean for no division @@ -46,68 +36,257 @@ public final class MapPalette { @NotNull static final Color[] colors = { - c(0, 0, 0, 0), c(0, 0, 0, 0), c(0, 0, 0, 0), c(0, 0, 0, 0), - c(89, 125, 39), c(109, 153, 48), c(127, 178, 56), c(67, 94, 29), - c(174, 164, 115), c(213, 201, 140), c(247, 233, 163), c(130, 123, 86), - c(140, 140, 140), c(171, 171, 171), c(199, 199, 199), c(105, 105, 105), - c(180, 0, 0), c(220, 0, 0), c(255, 0, 0), c(135, 0, 0), - c(112, 112, 180), c(138, 138, 220), c(160, 160, 255), c(84, 84, 135), - c(117, 117, 117), c(144, 144, 144), c(167, 167, 167), c(88, 88, 88), - c(0, 87, 0), c(0, 106, 0), c(0, 124, 0), c(0, 65, 0), - c(180, 180, 180), c(220, 220, 220), c(255, 255, 255), c(135, 135, 135), - c(115, 118, 129), c(141, 144, 158), c(164, 168, 184), c(86, 88, 97), - c(106, 76, 54), c(130, 94, 66), c(151, 109, 77), c(79, 57, 40), - c(79, 79, 79), c(96, 96, 96), c(112, 112, 112), c(59, 59, 59), - c(45, 45, 180), c(55, 55, 220), c(64, 64, 255), c(33, 33, 135), - c(100, 84, 50), c(123, 102, 62), c(143, 119, 72), c(75, 63, 38), - c(180, 177, 172), c(220, 217, 211), c(255, 252, 245), c(135, 133, 129), - c(152, 89, 36), c(186, 109, 44), c(216, 127, 51), c(114, 67, 27), - c(125, 53, 152), c(153, 65, 186), c(178, 76, 216), c(94, 40, 114), - c(72, 108, 152), c(88, 132, 186), c(102, 153, 216), c(54, 81, 114), - c(161, 161, 36), c(197, 197, 44), c(229, 229, 51), c(121, 121, 27), - c(89, 144, 17), c(109, 176, 21), c(127, 204, 25), c(67, 108, 13), - c(170, 89, 116), c(208, 109, 142), c(242, 127, 165), c(128, 67, 87), - c(53, 53, 53), c(65, 65, 65), c(76, 76, 76), c(40, 40, 40), - c(108, 108, 108), c(132, 132, 132), c(153, 153, 153), c(81, 81, 81), - c(53, 89, 108), c(65, 109, 132), c(76, 127, 153), c(40, 67, 81), - c(89, 44, 125), c(109, 54, 153), c(127, 63, 178), c(67, 33, 94), - c(36, 53, 125), c(44, 65, 153), c(51, 76, 178), c(27, 40, 94), - c(72, 53, 36), c(88, 65, 44), c(102, 76, 51), c(54, 40, 27), - c(72, 89, 36), c(88, 109, 44), c(102, 127, 51), c(54, 67, 27), - c(108, 36, 36), c(132, 44, 44), c(153, 51, 51), c(81, 27, 27), - c(17, 17, 17), c(21, 21, 21), c(25, 25, 25), c(13, 13, 13), - c(176, 168, 54), c(215, 205, 66), c(250, 238, 77), c(132, 126, 40), - c(64, 154, 150), c(79, 188, 183), c(92, 219, 213), c(48, 115, 112), - c(52, 90, 180), c(63, 110, 220), c(74, 128, 255), c(39, 67, 135), - c(0, 153, 40), c(0, 187, 50), c(0, 217, 58), c(0, 114, 30), - c(91, 60, 34), c(111, 74, 42), c(129, 86, 49), c(68, 45, 25), - c(79, 1, 0), c(96, 1, 0), c(112, 2, 0), c(59, 1, 0), - c(147, 124, 113), c(180, 152, 138), c(209, 177, 161), c(110, 93, 85), - c(112, 57, 25), c(137, 70, 31), c(159, 82, 36), c(84, 43, 19), - c(105, 61, 76), c(128, 75, 93), c(149, 87, 108), c(78, 46, 57), - c(79, 76, 97), c(96, 93, 119), c(112, 108, 138), c(59, 57, 73), - c(131, 93, 25), c(160, 114, 31), c(186, 133, 36), c(98, 70, 19), - c(72, 82, 37), c(88, 100, 45), c(103, 117, 53), c(54, 61, 28), - c(112, 54, 55), c(138, 66, 67), c(160, 77, 78), c(84, 40, 41), - c(40, 28, 24), c(49, 35, 30), c(57, 41, 35), c(30, 21, 18), - c(95, 75, 69), c(116, 92, 84), c(135, 107, 98), c(71, 56, 51), - c(61, 64, 64), c(75, 79, 79), c(87, 92, 92), c(46, 48, 48), - c(86, 51, 62), c(105, 62, 75), c(122, 73, 88), c(64, 38, 46), - c(53, 43, 64), c(65, 53, 79), c(76, 62, 92), c(40, 32, 48), - c(53, 35, 24), c(65, 43, 30), c(76, 50, 35), c(40, 26, 18), - c(53, 57, 29), c(65, 70, 36), c(76, 82, 42), c(40, 43, 22), - c(100, 42, 32), c(122, 51, 39), c(142, 60, 46), c(75, 31, 24), - c(26, 15, 11), c(31, 18, 13), c(37, 22, 16), c(19, 11, 8), - c(133, 33, 34), c(163, 41, 42), c(189, 48, 49), c(100, 25, 25), - c(104, 44, 68), c(127, 54, 83), c(148, 63, 97), c(78, 33, 51), - c(64, 17, 20), c(79, 21, 25), c(92, 25, 29), c(48, 13, 15), - c(15, 88, 94), c(18, 108, 115), c(22, 126, 134), c(11, 66, 70), - c(40, 100, 98), c(50, 122, 120), c(58, 142, 140), c(30, 75, 74), - c(60, 31, 43), c(74, 37, 53), c(86, 44, 62), c(45, 23, 32), - c(14, 127, 93), c(17, 155, 114), c(20, 180, 133), c(10, 95, 70), - c(70, 70, 70), c(86, 86, 86), c(100, 100, 100), c(52, 52, 52), - c(152, 123, 103), c(186, 150, 126), c(216, 175, 147), c(114, 92, 77), - c(89, 117, 105), c(109, 144, 129), c(127, 167, 150), c(67, 88, 79) + // Start generate - MapPalette#colors + // @GeneratedFrom 1.21.4 + new Color(0x00000000, true), + new Color(0x00000000, true), + new Color(0x00000000, true), + new Color(0x00000000, true), + new Color(0x597D27), + new Color(0x6D9930), + new Color(0x7FB238), + new Color(0x435E1D), + new Color(0xAEA473), + new Color(0xD5C98C), + new Color(0xF7E9A3), + new Color(0x827B56), + new Color(0x8C8C8C), + new Color(0xABABAB), + new Color(0xC7C7C7), + new Color(0x696969), + new Color(0xB40000), + new Color(0xDC0000), + new Color(0xFF0000), + new Color(0x870000), + new Color(0x7070B4), + new Color(0x8A8ADC), + new Color(0xA0A0FF), + new Color(0x545487), + new Color(0x757575), + new Color(0x909090), + new Color(0xA7A7A7), + new Color(0x585858), + new Color(0x005700), + new Color(0x006A00), + new Color(0x007C00), + new Color(0x004100), + new Color(0xB4B4B4), + new Color(0xDCDCDC), + new Color(0xFFFFFF), + new Color(0x878787), + new Color(0x737681), + new Color(0x8D909E), + new Color(0xA4A8B8), + new Color(0x565861), + new Color(0x6A4C36), + new Color(0x825E42), + new Color(0x976D4D), + new Color(0x4F3928), + new Color(0x4F4F4F), + new Color(0x606060), + new Color(0x707070), + new Color(0x3B3B3B), + new Color(0x2D2DB4), + new Color(0x3737DC), + new Color(0x4040FF), + new Color(0x212187), + new Color(0x645432), + new Color(0x7B663E), + new Color(0x8F7748), + new Color(0x4B3F26), + new Color(0xB4B1AC), + new Color(0xDCD9D3), + new Color(0xFFFCF5), + new Color(0x878581), + new Color(0x985924), + new Color(0xBA6D2C), + new Color(0xD87F33), + new Color(0x72431B), + new Color(0x7D3598), + new Color(0x9941BA), + new Color(0xB24CD8), + new Color(0x5E2872), + new Color(0x486C98), + new Color(0x5884BA), + new Color(0x6699D8), + new Color(0x365172), + new Color(0xA1A124), + new Color(0xC5C52C), + new Color(0xE5E533), + new Color(0x79791B), + new Color(0x599011), + new Color(0x6DB015), + new Color(0x7FCC19), + new Color(0x436C0D), + new Color(0xAA5974), + new Color(0xD06D8E), + new Color(0xF27FA5), + new Color(0x804357), + new Color(0x353535), + new Color(0x414141), + new Color(0x4C4C4C), + new Color(0x282828), + new Color(0x6C6C6C), + new Color(0x848484), + new Color(0x999999), + new Color(0x515151), + new Color(0x35596C), + new Color(0x416D84), + new Color(0x4C7F99), + new Color(0x284351), + new Color(0x592C7D), + new Color(0x6D3699), + new Color(0x7F3FB2), + new Color(0x43215E), + new Color(0x24357D), + new Color(0x2C4199), + new Color(0x334CB2), + new Color(0x1B285E), + new Color(0x483524), + new Color(0x58412C), + new Color(0x664C33), + new Color(0x36281B), + new Color(0x485924), + new Color(0x586D2C), + new Color(0x667F33), + new Color(0x36431B), + new Color(0x6C2424), + new Color(0x842C2C), + new Color(0x993333), + new Color(0x511B1B), + new Color(0x111111), + new Color(0x151515), + new Color(0x191919), + new Color(0x0D0D0D), + new Color(0xB0A836), + new Color(0xD7CD42), + new Color(0xFAEE4D), + new Color(0x847E28), + new Color(0x409A96), + new Color(0x4FBCB7), + new Color(0x5CDBD5), + new Color(0x307370), + new Color(0x345AB4), + new Color(0x3F6EDC), + new Color(0x4A80FF), + new Color(0x274387), + new Color(0x009928), + new Color(0x00BB32), + new Color(0x00D93A), + new Color(0x00721E), + new Color(0x5B3C22), + new Color(0x6F4A2A), + new Color(0x815631), + new Color(0x442D19), + new Color(0x4F0100), + new Color(0x600100), + new Color(0x700200), + new Color(0x3B0100), + new Color(0x937C71), + new Color(0xB4988A), + new Color(0xD1B1A1), + new Color(0x6E5D55), + new Color(0x703919), + new Color(0x89461F), + new Color(0x9F5224), + new Color(0x542B13), + new Color(0x693D4C), + new Color(0x804B5D), + new Color(0x95576C), + new Color(0x4E2E39), + new Color(0x4F4C61), + new Color(0x605D77), + new Color(0x706C8A), + new Color(0x3B3949), + new Color(0x835D19), + new Color(0xA0721F), + new Color(0xBA8524), + new Color(0x624613), + new Color(0x485225), + new Color(0x58642D), + new Color(0x677535), + new Color(0x363D1C), + new Color(0x703637), + new Color(0x8A4243), + new Color(0xA04D4E), + new Color(0x542829), + new Color(0x281C18), + new Color(0x31231E), + new Color(0x392923), + new Color(0x1E1512), + new Color(0x5F4B45), + new Color(0x745C54), + new Color(0x876B62), + new Color(0x473833), + new Color(0x3D4040), + new Color(0x4B4F4F), + new Color(0x575C5C), + new Color(0x2E3030), + new Color(0x56333E), + new Color(0x693E4B), + new Color(0x7A4958), + new Color(0x40262E), + new Color(0x352B40), + new Color(0x41354F), + new Color(0x4C3E5C), + new Color(0x282030), + new Color(0x352318), + new Color(0x412B1E), + new Color(0x4C3223), + new Color(0x281A12), + new Color(0x35391D), + new Color(0x414624), + new Color(0x4C522A), + new Color(0x282B16), + new Color(0x642A20), + new Color(0x7A3327), + new Color(0x8E3C2E), + new Color(0x4B1F18), + new Color(0x1A0F0B), + new Color(0x1F120D), + new Color(0x251610), + new Color(0x130B08), + new Color(0x852122), + new Color(0xA3292A), + new Color(0xBD3031), + new Color(0x641919), + new Color(0x682C44), + new Color(0x7F3653), + new Color(0x943F61), + new Color(0x4E2133), + new Color(0x401114), + new Color(0x4F1519), + new Color(0x5C191D), + new Color(0x300D0F), + new Color(0x0F585E), + new Color(0x126C73), + new Color(0x167E86), + new Color(0x0B4246), + new Color(0x286462), + new Color(0x327A78), + new Color(0x3A8E8C), + new Color(0x1E4B4A), + new Color(0x3C1F2B), + new Color(0x4A2535), + new Color(0x562C3E), + new Color(0x2D1720), + new Color(0x0E7F5D), + new Color(0x119B72), + new Color(0x14B485), + new Color(0x0A5F46), + new Color(0x464646), + new Color(0x565656), + new Color(0x646464), + new Color(0x343434), + new Color(0x987B67), + new Color(0xBA967E), + new Color(0xD8AF93), + new Color(0x725C4D), + new Color(0x597569), + new Color(0x6D9081), + new Color(0x7FA796), + new Color(0x43584F), + // End generate - MapPalette#colors }; // Interface @@ -264,7 +443,7 @@ public final class MapPalette { } } - // Minecraft has 143 colors, some of which have negative byte representations + // Minecraft has 248 colors, some of which have negative byte representations return (byte) (index < 128 ? index : -129 + (index - 127)); } @@ -278,7 +457,7 @@ public final class MapPalette { @Deprecated(since = "1.6.2", forRemoval = true) // Paper @NotNull public static Color getColor(byte index) { - // Minecraft has 143 colors, some of which have negative byte representations + // Minecraft has 248 colors, some of which have negative byte representations return colors[index >= 0 ? index : index + 256]; } diff --git a/paper-api/src/main/java/org/bukkit/potion/PotionType.java b/paper-api/src/main/java/org/bukkit/potion/PotionType.java index 912eb2f48c..c41eccbc2c 100644 --- a/paper-api/src/main/java/org/bukkit/potion/PotionType.java +++ b/paper-api/src/main/java/org/bukkit/potion/PotionType.java @@ -15,53 +15,55 @@ import org.jetbrains.annotations.Nullable; * the Creative mode inventory */ public enum PotionType implements Keyed, io.papermc.paper.world.flag.FeatureDependant { // Paper - feature flag API - WATER("water"), - MUNDANE("mundane"), - THICK("thick"), + // Start generate - PotionType + // @GeneratedFrom 1.21.4 AWKWARD("awkward"), - NIGHT_VISION("night_vision"), - LONG_NIGHT_VISION("long_night_vision"), - INVISIBILITY("invisibility"), - LONG_INVISIBILITY("long_invisibility"), - LEAPING("leaping"), - LONG_LEAPING("long_leaping"), - STRONG_LEAPING("strong_leaping"), FIRE_RESISTANCE("fire_resistance"), - LONG_FIRE_RESISTANCE("long_fire_resistance"), - SWIFTNESS("swiftness"), - LONG_SWIFTNESS("long_swiftness"), - STRONG_SWIFTNESS("strong_swiftness"), - SLOWNESS("slowness"), - LONG_SLOWNESS("long_slowness"), - STRONG_SLOWNESS("strong_slowness"), - WATER_BREATHING("water_breathing"), - LONG_WATER_BREATHING("long_water_breathing"), - HEALING("healing"), - STRONG_HEALING("strong_healing"), HARMING("harming"), - STRONG_HARMING("strong_harming"), - POISON("poison"), + HEALING("healing"), + INFESTED("infested"), + INVISIBILITY("invisibility"), + LEAPING("leaping"), + LONG_FIRE_RESISTANCE("long_fire_resistance"), + LONG_INVISIBILITY("long_invisibility"), + LONG_LEAPING("long_leaping"), + LONG_NIGHT_VISION("long_night_vision"), LONG_POISON("long_poison"), - STRONG_POISON("strong_poison"), - REGENERATION("regeneration"), LONG_REGENERATION("long_regeneration"), - STRONG_REGENERATION("strong_regeneration"), - STRENGTH("strength"), + LONG_SLOW_FALLING("long_slow_falling"), + LONG_SLOWNESS("long_slowness"), LONG_STRENGTH("long_strength"), - STRONG_STRENGTH("strong_strength"), - WEAKNESS("weakness"), + LONG_SWIFTNESS("long_swiftness"), + LONG_TURTLE_MASTER("long_turtle_master"), + LONG_WATER_BREATHING("long_water_breathing"), LONG_WEAKNESS("long_weakness"), LUCK("luck"), - TURTLE_MASTER("turtle_master"), - LONG_TURTLE_MASTER("long_turtle_master"), - STRONG_TURTLE_MASTER("strong_turtle_master"), - SLOW_FALLING("slow_falling"), - LONG_SLOW_FALLING("long_slow_falling"), - WIND_CHARGED("wind_charged"), - WEAVING("weaving"), + MUNDANE("mundane"), + NIGHT_VISION("night_vision"), OOZING("oozing"), - INFESTED("infested"), - ; + POISON("poison"), + REGENERATION("regeneration"), + SLOW_FALLING("slow_falling"), + SLOWNESS("slowness"), + STRENGTH("strength"), + STRONG_HARMING("strong_harming"), + STRONG_HEALING("strong_healing"), + STRONG_LEAPING("strong_leaping"), + STRONG_POISON("strong_poison"), + STRONG_REGENERATION("strong_regeneration"), + STRONG_SLOWNESS("strong_slowness"), + STRONG_STRENGTH("strong_strength"), + STRONG_SWIFTNESS("strong_swiftness"), + STRONG_TURTLE_MASTER("strong_turtle_master"), + SWIFTNESS("swiftness"), + THICK("thick"), + TURTLE_MASTER("turtle_master"), + WATER("water"), + WATER_BREATHING("water_breathing"), + WEAKNESS("weakness"), + WEAVING("weaving"), + WIND_CHARGED("wind_charged"); + // End generate - PotionType private final NamespacedKey key; private final Supplier internalPotionDataSupplier; diff --git a/paper-api/src/main/java/org/bukkit/scoreboard/DisplaySlot.java b/paper-api/src/main/java/org/bukkit/scoreboard/DisplaySlot.java index 21cd2ba659..0ba0cf10ec 100644 --- a/paper-api/src/main/java/org/bukkit/scoreboard/DisplaySlot.java +++ b/paper-api/src/main/java/org/bukkit/scoreboard/DisplaySlot.java @@ -1,30 +1,31 @@ package org.bukkit.scoreboard; -import net.kyori.adventure.text.format.NamedTextColor; // Paper /** * Locations for displaying objectives to the player */ public enum DisplaySlot { - // Paper start - BELOW_NAME("below_name"), + // Start generate - DisplaySlot + // @GeneratedFrom 1.21.4 PLAYER_LIST("list"), SIDEBAR("sidebar"), - SIDEBAR_TEAM_BLACK(NamedTextColor.BLACK), - SIDEBAR_TEAM_DARK_BLUE(NamedTextColor.DARK_BLUE), - SIDEBAR_TEAM_DARK_GREEN(NamedTextColor.DARK_GREEN), - SIDEBAR_TEAM_DARK_AQUA(NamedTextColor.DARK_AQUA), - SIDEBAR_TEAM_DARK_RED(NamedTextColor.DARK_RED), - SIDEBAR_TEAM_DARK_PURPLE(NamedTextColor.DARK_PURPLE), - SIDEBAR_TEAM_GOLD(NamedTextColor.GOLD), - SIDEBAR_TEAM_GRAY(NamedTextColor.GRAY), - SIDEBAR_TEAM_DARK_GRAY(NamedTextColor.DARK_GRAY), - SIDEBAR_TEAM_BLUE(NamedTextColor.BLUE), - SIDEBAR_TEAM_GREEN(NamedTextColor.GREEN), - SIDEBAR_TEAM_AQUA(NamedTextColor.AQUA), - SIDEBAR_TEAM_RED(NamedTextColor.RED), - SIDEBAR_TEAM_LIGHT_PURPLE(NamedTextColor.LIGHT_PURPLE), - SIDEBAR_TEAM_YELLOW(NamedTextColor.YELLOW), - SIDEBAR_TEAM_WHITE(NamedTextColor.WHITE); + BELOW_NAME("below_name"), + SIDEBAR_TEAM_BLACK("sidebar.team.black"), + SIDEBAR_TEAM_DARK_BLUE("sidebar.team.dark_blue"), + SIDEBAR_TEAM_DARK_GREEN("sidebar.team.dark_green"), + SIDEBAR_TEAM_DARK_AQUA("sidebar.team.dark_aqua"), + SIDEBAR_TEAM_DARK_RED("sidebar.team.dark_red"), + SIDEBAR_TEAM_DARK_PURPLE("sidebar.team.dark_purple"), + SIDEBAR_TEAM_GOLD("sidebar.team.gold"), + SIDEBAR_TEAM_GRAY("sidebar.team.gray"), + SIDEBAR_TEAM_DARK_GRAY("sidebar.team.dark_gray"), + SIDEBAR_TEAM_BLUE("sidebar.team.blue"), + SIDEBAR_TEAM_GREEN("sidebar.team.green"), + SIDEBAR_TEAM_AQUA("sidebar.team.aqua"), + SIDEBAR_TEAM_RED("sidebar.team.red"), + SIDEBAR_TEAM_LIGHT_PURPLE("sidebar.team.light_purple"), + SIDEBAR_TEAM_YELLOW("sidebar.team.yellow"), + SIDEBAR_TEAM_WHITE("sidebar.team.white"); + // End generate - DisplaySlot public static final net.kyori.adventure.util.Index NAMES = net.kyori.adventure.util.Index.create(DisplaySlot.class, DisplaySlot::getId); @@ -34,10 +35,6 @@ public enum DisplaySlot { this.id = id; } - DisplaySlot(@org.jetbrains.annotations.NotNull NamedTextColor color) { - this.id = "sidebar.team." + color; - } - /** * Get the string id of this display slot. * @@ -51,5 +48,4 @@ public enum DisplaySlot { public String toString() { return this.id; } - // Paper end } diff --git a/paper-api/src/main/java/org/bukkit/tag/DamageTypeTags.java b/paper-api/src/main/java/org/bukkit/tag/DamageTypeTags.java index 548122148d..2637a3c0a3 100644 --- a/paper-api/src/main/java/org/bukkit/tag/DamageTypeTags.java +++ b/paper-api/src/main/java/org/bukkit/tag/DamageTypeTags.java @@ -13,147 +13,74 @@ import org.jetbrains.annotations.Nullable; @ApiStatus.Experimental public final class DamageTypeTags { - /** - * Vanilla tag representing damage types which damage helmets. - */ - public static final Tag DAMAGES_HELMET = getTag("damages_helmet"); - /** - * Vanilla tag representing damage types which bypass armor. - */ - public static final Tag BYPASSES_ARMOR = getTag("bypasses_armor"); - /** - * Vanilla tag representing damage types which bypass shields. - */ - public static final Tag BYPASSES_SHIELD = getTag("bypasses_shield"); - /** - * Vanilla tag representing damage types which bypass invulnerability. - */ - public static final Tag BYPASSES_INVULNERABILITY = getTag("bypasses_invulnerability"); - /** - * Vanilla tag representing damage types which bypass cooldowns. - *
- * Note: this can be null unless a datapack add values to this tag because vanilla not has any values for this. - */ - @Nullable - public static final Tag BYPASSES_COOLDOWN = getTag("bypasses_cooldown"); - /** - * Vanilla tag representing damage types which bypass effects. - */ - public static final Tag BYPASSES_EFFECTS = getTag("bypasses_effects"); - /** - * Vanilla tag representing damage types which bypass resistance. - */ - public static final Tag BYPASSES_RESISTANCE = getTag("bypasses_resistance"); - /** - * Vanilla tag representing damage types which bypass enchantments. - */ - public static final Tag BYPASSES_ENCHANTMENTS = getTag("bypasses_enchantments"); - /** - * Vanilla tag representing all fire damage types. - */ - public static final Tag IS_FIRE = getTag("is_fire"); - /** - * Vanilla tag representing damage types which originate from projectiles. - */ - public static final Tag IS_PROJECTILE = getTag("is_projectile"); - /** - * Vanilla tag representing damage types which witches are resistant to. - */ - public static final Tag WITCH_RESISTANT_TO = getTag("witch_resistant_to"); - /** - * Vanilla tag representing all explosion damage types. - */ - public static final Tag IS_EXPLOSION = getTag("is_explosion"); - /** - * Vanilla tag representing all fall damage types. - */ - public static final Tag IS_FALL = getTag("is_fall"); - /** - * Vanilla tag representing all drowning damage types. - */ - public static final Tag IS_DROWNING = getTag("is_drowning"); - /** - * Vanilla tag representing all freezing damage types. - */ - public static final Tag IS_FREEZING = getTag("is_freezing"); - /** - * Vanilla tag representing all lightning damage types. - */ - public static final Tag IS_LIGHTNING = getTag("is_lightning"); - /** - * Vanilla tag representing damage types which do not cause entities to - * anger. - */ - public static final Tag NO_ANGER = getTag("no_anger"); - /** - * Vanilla tag representing damage types which do not cause an impact. - */ - public static final Tag NO_IMPACT = getTag("no_impact"); - /** - * Vanilla tag representing damage types which cause maximum fall damage. - */ - public static final Tag ALWAYS_MOST_SIGNIFICANT_FALL = getTag("always_most_significant_fall"); - /** - * Vanilla tag representing damage types which withers are immune to. - */ - public static final Tag WITHER_IMMUNE_TO = getTag("wither_immune_to"); - /** - * Vanilla tag representing damage types which ignite armor stands. - */ - public static final Tag IGNITES_ARMOR_STANDS = getTag("ignites_armor_stands"); - /** - * Vanilla tag representing damage types which burn armor stands. - */ - public static final Tag BURNS_ARMOR_STANDS = getTag("burns_armor_stands"); - /** - * Vanilla tag representing damage types which avoid guardian thorn damage. - */ - public static final Tag AVOIDS_GUARDIAN_THORNS = getTag("avoids_guardian_thorns"); - /** - * Vanilla tag representing damage types which always trigger silverfish. - */ - public static final Tag ALWAYS_TRIGGERS_SILVERFISH = getTag("always_triggers_silverfish"); - /** - * Vanilla tag representing damage types which always hurt enderdragons. - */ + // Start generate - DamageTypeTags + // @GeneratedFrom 1.21.4 public static final Tag ALWAYS_HURTS_ENDER_DRAGONS = getTag("always_hurts_ender_dragons"); - /** - * Vanilla tag representing damage types which do not cause knockback. - */ - public static final Tag NO_KNOCKBACK = getTag("no_knockback"); - /** - * Vanilla tag representing damage types which always kill armor stands. - */ + public static final Tag ALWAYS_KILLS_ARMOR_STANDS = getTag("always_kills_armor_stands"); - /** - * Vanilla tag representing damage types which can break armor stands. - */ - public static final Tag CAN_BREAK_ARMOR_STAND = getTag("can_break_armor_stand"); - /** - * Vanilla tag representing damage types which bypass wolf armor. - */ - public static final Tag BYPASSES_WOLF_ARMOR = getTag("bypasses_wolf_armor"); - /** - * Vanilla tag representing damage types which are from player attacks. - */ - public static final Tag IS_PLAYER_ATTACK = getTag("is_player_attack"); - /** - * Vanilla tag representing damage types which originate from hot blocks. - */ + + public static final Tag ALWAYS_MOST_SIGNIFICANT_FALL = getTag("always_most_significant_fall"); + + public static final Tag ALWAYS_TRIGGERS_SILVERFISH = getTag("always_triggers_silverfish"); + + public static final Tag AVOIDS_GUARDIAN_THORNS = getTag("avoids_guardian_thorns"); + public static final Tag BURN_FROM_STEPPING = getTag("burn_from_stepping"); - /** - * Vanilla tag representing damage types which cause entities to panic. - */ - public static final Tag PANIC_CAUSES = getTag("panic_causes"); - /** - * Vanilla tag representing environmental damage types which cause entities - * to panic. - */ - public static final Tag PANIC_ENVIRONMENTAL_CAUSES = getTag("panic_environmental_causes"); - /** - * Vanilla tag representing damage types which originate from mace smashes. - */ + + public static final Tag BURNS_ARMOR_STANDS = getTag("burns_armor_stands"); + + public static final Tag BYPASSES_ARMOR = getTag("bypasses_armor"); + + public static final Tag BYPASSES_EFFECTS = getTag("bypasses_effects"); + + public static final Tag BYPASSES_ENCHANTMENTS = getTag("bypasses_enchantments"); + + public static final Tag BYPASSES_INVULNERABILITY = getTag("bypasses_invulnerability"); + + public static final Tag BYPASSES_RESISTANCE = getTag("bypasses_resistance"); + + public static final Tag BYPASSES_SHIELD = getTag("bypasses_shield"); + + public static final Tag BYPASSES_WOLF_ARMOR = getTag("bypasses_wolf_armor"); + + public static final Tag CAN_BREAK_ARMOR_STAND = getTag("can_break_armor_stand"); + + public static final Tag DAMAGES_HELMET = getTag("damages_helmet"); + + public static final Tag IGNITES_ARMOR_STANDS = getTag("ignites_armor_stands"); + + public static final Tag IS_DROWNING = getTag("is_drowning"); + + public static final Tag IS_EXPLOSION = getTag("is_explosion"); + + public static final Tag IS_FALL = getTag("is_fall"); + + public static final Tag IS_FIRE = getTag("is_fire"); + + public static final Tag IS_FREEZING = getTag("is_freezing"); + + public static final Tag IS_LIGHTNING = getTag("is_lightning"); + + public static final Tag IS_PLAYER_ATTACK = getTag("is_player_attack"); + + public static final Tag IS_PROJECTILE = getTag("is_projectile"); + public static final Tag IS_MACE_SMASH = getTag("mace_smash"); + + public static final Tag NO_ANGER = getTag("no_anger"); + + public static final Tag NO_IMPACT = getTag("no_impact"); + + public static final Tag NO_KNOCKBACK = getTag("no_knockback"); + + public static final Tag PANIC_CAUSES = getTag("panic_causes"); + + public static final Tag PANIC_ENVIRONMENTAL_CAUSES = getTag("panic_environmental_causes"); + + public static final Tag WITCH_RESISTANT_TO = getTag("witch_resistant_to"); + + public static final Tag WITHER_IMMUNE_TO = getTag("wither_immune_to"); + // End generate - DamageTypeTags /** * Internal use only. */ diff --git a/paper-api/src/test/java/org/bukkit/BukkitMirrorTest.java b/paper-api/src/test/java/org/bukkit/BukkitMirrorTest.java deleted file mode 100644 index 5974ceea58..0000000000 --- a/paper-api/src/test/java/org/bukkit/BukkitMirrorTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.bukkit; - -import static org.bukkit.support.MatcherAssert.*; -import static org.hamcrest.Matchers.*; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.stream.Stream; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -@org.junit.jupiter.api.Disabled // Paper -public class BukkitMirrorTest { - - public static Stream data() { - return Stream.of(Server.class.getDeclaredMethods()) - .map(method -> { - try { - return Arguments.of( - method, - method.toGenericString().substring("public abstract ".length()).replace("(", "{").replace(")", "}"), - Bukkit.class.getDeclaredMethod(method.getName(), method.getParameterTypes()) - ); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } - }); - } - - @ParameterizedTest - @MethodSource("data") - public void isStatic(Method server, String name, Method bukkit) throws Throwable { - assertThat(Modifier.isStatic(bukkit.getModifiers()), is(true)); - } - - @ParameterizedTest - @MethodSource("data") - public void isDeprecated(Method server, String name, Method bukkit) throws Throwable { - assertThat(bukkit.isAnnotationPresent(Deprecated.class), is(server.isAnnotationPresent(Deprecated.class))); - } - - @ParameterizedTest - @MethodSource("data") - public void returnType(Method server, String name, Method bukkit) throws Throwable { - assertThat(bukkit.getReturnType(), is((Object) server.getReturnType())); - // assertThat(bukkit.getGenericReturnType(), is(server.getGenericReturnType())); // too strict on type generics - } - - @ParameterizedTest - @MethodSource("data") - public void parameterTypes(Method server, String name, Method bukkit) throws Throwable { - // assertThat(bukkit.getGenericParameterTypes(), is(server.getGenericParameterTypes())); // too strict on type generics - } - - @ParameterizedTest - @MethodSource("data") - public void declaredException(Method server, String name, Method bukkit) throws Throwable { - assertThat(bukkit.getGenericExceptionTypes(), is(server.getGenericExceptionTypes())); - } -} diff --git a/paper-api/src/test/java/org/bukkit/NamespacedKeyTest.java b/paper-api/src/test/java/org/bukkit/NamespacedKeyTest.java index d4e9e24b70..7d81f92008 100644 --- a/paper-api/src/test/java/org/bukkit/NamespacedKeyTest.java +++ b/paper-api/src/test/java/org/bukkit/NamespacedKeyTest.java @@ -29,12 +29,6 @@ public class NamespacedKeyTest { assertNull(NamespacedKey.fromString("foo:bar:bazz")); } - @org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling - @Test - public void testFromStringEmptyInput() { - assertThrows(IllegalArgumentException.class, () -> NamespacedKey.fromString("")); - } - @Test public void testFromStringNullInput() { assertThrows(IllegalArgumentException.class, () -> NamespacedKey.fromString(null)); @@ -75,12 +69,4 @@ public class NamespacedKeyTest { new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas", "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString(); } - - @org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling - @Test - public void testAboveLength() { - assertThrows(IllegalArgumentException.class, () -> new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas", - "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas/" - + "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString()); - } } diff --git a/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java b/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java index c6b49c7e0a..d9a9306e9e 100644 --- a/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java +++ b/paper-api/src/test/java/org/bukkit/configuration/ConfigurationSectionTest.java @@ -546,46 +546,6 @@ public abstract class ConfigurationSectionTest { assertFalse(section.isVector("doesntExist")); } - @Test - @org.junit.jupiter.api.Disabled("ItemStack can't exist without the Server, test moved to server") - public void testGetItemStack_String() { - ConfigurationSection section = getConfigurationSection(); - String key = "exists"; - ItemStack value = new ItemStack(Material.ACACIA_WOOD, 50); - - section.set(key, value); - - assertEquals(value, section.getItemStack(key)); - assertNull(section.getString("doesntExist")); - } - - @Test - @org.junit.jupiter.api.Disabled("ItemStack can't exist without the Server, test moved to server") - public void testGetItemStack_String_ItemStack() { - ConfigurationSection section = getConfigurationSection(); - String key = "exists"; - ItemStack value = new ItemStack(Material.ACACIA_WOOD, 50); - ItemStack def = new ItemStack(Material.STONE, 1); - - section.set(key, value); - - assertEquals(value, section.getItemStack(key, def)); - assertEquals(def, section.getItemStack("doesntExist", def)); - } - - @Test - @org.junit.jupiter.api.Disabled("ItemStack can't exist without the Server, test moved to server") - public void testIsItemStack() { - ConfigurationSection section = getConfigurationSection(); - String key = "exists"; - ItemStack value = new ItemStack(Material.ACACIA_WOOD, 50); - - section.set(key, value); - - assertTrue(section.isItemStack(key)); - assertFalse(section.isItemStack("doesntExist")); - } - @Test public void testGetConfigurationSection() { ConfigurationSection section = getConfigurationSection(); diff --git a/paper-api/src/test/java/org/bukkit/entity/memory/MemoryKeyTest.java b/paper-api/src/test/java/org/bukkit/entity/memory/MemoryKeyTest.java deleted file mode 100644 index 2e426a9089..0000000000 --- a/paper-api/src/test/java/org/bukkit/entity/memory/MemoryKeyTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.bukkit.entity.memory; - -import static org.junit.jupiter.api.Assertions.*; -import java.util.Arrays; -import java.util.List; -import org.bukkit.NamespacedKey; -import org.junit.jupiter.api.Test; - -public class MemoryKeyTest { - - @Test - public void shouldContainAllMemories() { - List memories = Arrays.asList(MemoryKey.HOME, MemoryKey.JOB_SITE, MemoryKey.MEETING_POINT); - assertTrue(MemoryKey.values().containsAll(memories)); - } - - @Test - public void shouldGetMemoryKeyHomeByNamespacedKey() { - assertEquals(MemoryKey.HOME, MemoryKey.getByKey(NamespacedKey.minecraft("home"))); - } - - @Test - public void shouldGetMemoryKeyJobSiteByNamespacedKey() { - assertEquals(MemoryKey.JOB_SITE, MemoryKey.getByKey(NamespacedKey.minecraft("job_site"))); - } - - @Test - public void shouldGetMemoryKeyMeetingPointByNamespacedKey() { - assertEquals(MemoryKey.MEETING_POINT, MemoryKey.getByKey(NamespacedKey.minecraft("meeting_point"))); - } - - @Test - public void shouldReturnNullWhenNamespacedKeyisNotPresentAsMemoryKey() { - assertNull(MemoryKey.getByKey(NamespacedKey.minecraft("not_present"))); - } - - @Test - public void shouldReturnNullWhenNamespacedKeyisNull() { - assertNull(MemoryKey.getByKey(null)); - } -} diff --git a/paper-generator/.editorconfig b/paper-generator/.editorconfig new file mode 100644 index 0000000000..71c3cd0c32 --- /dev/null +++ b/paper-generator/.editorconfig @@ -0,0 +1,3 @@ +[*.java] +ij_java_generate_final_locals = false +ij_java_generate_final_parameters = false diff --git a/paper-generator/build.gradle.kts b/paper-generator/build.gradle.kts new file mode 100644 index 0000000000..fe43a1459e --- /dev/null +++ b/paper-generator/build.gradle.kts @@ -0,0 +1,129 @@ +import io.papermc.paperweight.util.defaultJavaLauncher + +plugins { + java + id("io.papermc.paperweight.source-generator") +} + +paperweight { + atFile.set(layout.projectDirectory.file("wideners.at")) +} + +repositories { + mavenLocal() // todo publish typewriter somewhere +} + +val serverRuntimeClasspath by configurations.registering { // resolvable? + isCanBeConsumed = false + isCanBeResolved = true +} + +dependencies { + minecraftJar(project(":paper-server", "mappedJarOutgoing")) + implementation(project(":paper-server", "macheMinecraftLibraries")) + + implementation("com.squareup:javapoet:1.13.0") + implementation(project(":paper-api")) + implementation("io.papermc.typewriter:typewriter:1.0-SNAPSHOT") { + isTransitive = false // paper-api already have everything + } + implementation("io.github.classgraph:classgraph:4.8.47") + implementation("org.jetbrains:annotations:26.0.1") + testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + + serverRuntimeClasspath(project(":paper-server", "runtimeConfiguration")) +} + +val gameVersion = providers.gradleProperty("mcVersion") + +val rewriteApi = tasks.registerGenerationTask("rewriteApi", true, "paper-api") { + description = "Rewrite existing API classes" + mainClass.set("io.papermc.generator.Main\$Rewriter") + classpath(sourceSets.main.map { it.runtimeClasspath }) +} + +val rewriteImpl = tasks.registerGenerationTask("rewriteImpl", true, "paper-server") { + description = "Rewrite existing implementation classes" + mainClass.set("io.papermc.generator.Main\$Rewriter") + classpath(sourceSets.main.map { it.runtimeClasspath }) + args(serverRuntimeClasspath.get().asPath) +} + +tasks.register("rewrite") { + group = "generation" + description = "Rewrite existing API classes and its implementation" + dependsOn(rewriteApi, rewriteImpl) +} + + +val generateApi = tasks.registerGenerationTask("generateApi", false, "paper-api") { + description = "Generate new API classes" + mainClass.set("io.papermc.generator.Main\$Generator") + classpath(sourceSets.main.map { it.runtimeClasspath }) +} + +val generateImpl = tasks.registerGenerationTask("generateImpl", false, "paper-server") { + description = "Generate new implementation classes" + mainClass.set("io.papermc.generator.Main\$Generator") + classpath(sourceSets.main.map { it.runtimeClasspath }) +} + +tasks.register("generate") { + group = "generation" + description = "Generate new API classes and its implementation" + dependsOn(generateApi, generateImpl) +} + +if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) { + val scanOldGeneratedSourceCode by tasks.registering(JavaExec::class) { + group = "verification" + description = "Scan source code to detect outdated generated code" + javaLauncher = javaToolchains.defaultJavaLauncher(project) + mainClass.set("io.papermc.generator.rewriter.utils.ScanOldGeneratedSourceCode") + classpath(sourceSets.main.map { it.runtimeClasspath }) + + val projectDirs = listOf("paper-api", "paper-server").map { rootProject.layout.projectDirectory.dir(it) } + args(projectDirs.map { it.asFile.absolutePath }) + val workDirs = projectDirs.map { it.dir("src/main/java") } + + workDirs.forEach { inputs.dir(it) } + inputs.property("gameVersion", gameVersion) + outputs.dirs(workDirs) + } + tasks.check { + dependsOn(scanOldGeneratedSourceCode) + } +} + +fun TaskContainer.registerGenerationTask( + name: String, + rewrite: Boolean, + vararg targetProjects: String, + block: JavaExec.() -> Unit +): TaskProvider = register(name) { + group = "generation" + dependsOn(project.tasks.check) + javaLauncher = project.javaToolchains.defaultJavaLauncher(project) + inputs.property("gameVersion", gameVersion) + inputs.dir(layout.projectDirectory.dir("src/main/java")).withPathSensitivity(PathSensitivity.RELATIVE) + val projectDirs = targetProjects.map { rootProject.layout.projectDirectory.dir(it) } + args(projectDirs.map { it.asFile.absolutePath }) + systemProperty("paper.updatingMinecraft", providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) + if (rewrite) { + val source = projectDirs.map { it.dir("src/main/java") } + source.forEach { inputs.dir(it) } + outputs.dirs(source) + } else { + outputs.dirs(projectDirs.map { it.dir("src/generated/java") }) + } + + block(this) +} + +tasks.test { + useJUnitPlatform() +} + +group = "io.papermc.paper" +version = "1.0-SNAPSHOT" diff --git a/paper-generator/src/main/java/io/papermc/generator/Generators.java b/paper-generator/src/main/java/io/papermc/generator/Generators.java new file mode 100644 index 0000000000..ae7353b5b4 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/Generators.java @@ -0,0 +1,23 @@ +package io.papermc.generator; + +import io.papermc.generator.registry.RegistryBootstrapper; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.generator.types.craftblockdata.CraftBlockDataBootstrapper; +import io.papermc.generator.types.goal.MobGoalGenerator; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import net.minecraft.Util; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface Generators { + + List API = Collections.unmodifiableList(Util.make(new ArrayList<>(), list -> { + RegistryBootstrapper.bootstrap(list); + list.add(new MobGoalGenerator("VanillaGoal", "com.destroystokyo.paper.entity.ai")); + // todo extract fields for registry based api + })); + + List SERVER = Collections.unmodifiableList(Util.make(new ArrayList<>(), CraftBlockDataBootstrapper::bootstrap)); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/Main.java b/paper-generator/src/main/java/io/papermc/generator/Main.java new file mode 100644 index 0000000000..d1e6acacf3 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/Main.java @@ -0,0 +1,117 @@ +package io.papermc.generator; + +import com.google.common.util.concurrent.MoreExecutors; +import com.mojang.logging.LogUtils; +import io.papermc.generator.rewriter.registration.PaperPatternSourceSetRewriter; +import io.papermc.generator.rewriter.registration.PatternSourceSetRewriter; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.generator.utils.experimental.ExperimentalCollector; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import net.minecraft.SharedConstants; +import net.minecraft.commands.Commands; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.LayeredRegistryAccess; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.resources.RegistryDataLoader; +import net.minecraft.server.Bootstrap; +import net.minecraft.server.RegistryLayer; +import net.minecraft.server.ReloadableServerResources; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.ServerPacksSource; +import net.minecraft.server.packs.resources.MultiPackResourceManager; +import net.minecraft.tags.TagKey; +import net.minecraft.tags.TagLoader; +import net.minecraft.world.flag.FeatureFlags; +import org.apache.commons.io.file.PathUtils; +import org.jspecify.annotations.NullMarked; +import org.slf4j.Logger; + +@NullMarked +public class Main { + + private static final Logger LOGGER = LogUtils.getLogger(); + public static final RegistryAccess.Frozen REGISTRY_ACCESS; + public static final Map, String> EXPERIMENTAL_TAGS; + + static { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + Bootstrap.validate(); + + PackRepository resourceRepository = ServerPacksSource.createVanillaTrustedRepository(); + resourceRepository.reload(); + MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList()); + LayeredRegistryAccess layers = RegistryLayer.createRegistryAccess(); + List> pendingTags = TagLoader.loadTagsForExistingRegistries(resourceManager, layers.getLayer(RegistryLayer.STATIC)); + List> worldGenLayer = TagLoader.buildUpdatedLookups(layers.getAccessForLoading(RegistryLayer.WORLDGEN), pendingTags); + RegistryAccess.Frozen frozenWorldgenRegistries = RegistryDataLoader.load(resourceManager, worldGenLayer, RegistryDataLoader.WORLDGEN_REGISTRIES); + layers = layers.replaceFrom(RegistryLayer.WORLDGEN, frozenWorldgenRegistries); + REGISTRY_ACCESS = layers.compositeAccess().freeze(); + ReloadableServerResources reloadableServerResources = ReloadableServerResources.loadResources( + resourceManager, + layers, + pendingTags, + FeatureFlags.VANILLA_SET, + Commands.CommandSelection.DEDICATED, + 0, + MoreExecutors.directExecutor(), + MoreExecutors.directExecutor() + ).join(); + reloadableServerResources.updateStaticRegistryTags(); + EXPERIMENTAL_TAGS = ExperimentalCollector.collectTags(resourceManager); + } + + private Main() { + } + + public static class Rewriter extends Main { + + public static void main(String[] args) { + boolean isApi = args[0].endsWith("-api"); + PatternSourceSetRewriter sourceSet = args.length >= 2 ? PaperPatternSourceSetRewriter.from(args[1]) : new PaperPatternSourceSetRewriter(); + (isApi ? Rewriters.API : Rewriters.SERVER).accept(sourceSet); + try { + sourceSet.apply(Path.of(args[0], "src/main/java")); + } catch (RuntimeException ex) { + throw ex; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + + public static class Generator extends Main { + + public static void main(String[] args) { + boolean isApi = args[0].endsWith("-api"); + + try { + generate(Path.of(args[0]), isApi ? Generators.API : Generators.SERVER); + } catch (RuntimeException ex) { + throw ex; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private static void generate(Path sourceSet, Collection generators) throws IOException { + Path output = sourceSet.resolve("src/generated/java"); + if (Files.exists(output)) { + PathUtils.deleteDirectory(output); + } + + for (SourceGenerator generator : generators) { + generator.writeToFile(output); + } + LOGGER.info("Files written to {}", output.toAbsolutePath()); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/Rewriters.java b/paper-generator/src/main/java/io/papermc/generator/Rewriters.java new file mode 100644 index 0000000000..c1aa6e67ce --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/Rewriters.java @@ -0,0 +1,229 @@ +package io.papermc.generator; + +import io.papermc.generator.registry.RegistryBootstrapper; +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.rewriter.registration.PatternSourceSetRewriter; +import io.papermc.generator.rewriter.types.Types; +import io.papermc.generator.rewriter.types.registry.EnumRegistryRewriter; +import io.papermc.generator.rewriter.types.registry.FeatureFlagRewriter; +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.generator.rewriter.types.registry.RegistryTagRewriter; +import io.papermc.generator.rewriter.types.registry.TagRewriter; +import io.papermc.generator.rewriter.types.simple.BlockTypeRewriter; +import io.papermc.generator.rewriter.types.simple.CraftBlockDataMapping; +import io.papermc.generator.rewriter.types.simple.CraftBlockEntityStateMapping; +import io.papermc.generator.rewriter.types.simple.CraftPotionUtilRewriter; +import io.papermc.generator.rewriter.types.simple.EntityTypeRewriter; +import io.papermc.generator.rewriter.types.simple.ItemTypeRewriter; +import io.papermc.generator.rewriter.types.simple.MapPaletteRewriter; +import io.papermc.generator.rewriter.types.simple.MaterialRewriter; +import io.papermc.generator.rewriter.types.simple.MemoryKeyRewriter; +import io.papermc.generator.rewriter.types.registry.PaperFeatureFlagMapping; +import io.papermc.generator.rewriter.types.simple.StatisticRewriter; +import io.papermc.generator.rewriter.types.simple.trial.DataComponentTypesRewriter; +import io.papermc.generator.rewriter.types.simple.trial.VillagerProfessionRewriter; +import io.papermc.generator.types.goal.MobGoalNames; +import io.papermc.generator.utils.Formatting; +import io.papermc.paper.datacomponent.DataComponentTypes; +import io.papermc.paper.datacomponent.item.consumable.ItemUseAnimation; +import io.papermc.typewriter.preset.EnumCloneRewriter; +import io.papermc.typewriter.preset.model.EnumValue; +import java.util.Map; +import java.util.function.Consumer; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import javax.lang.model.SourceVersion; +import net.kyori.adventure.text.format.NamedTextColor; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.Mob; +import net.minecraft.world.item.Rarity; +import org.bukkit.Art; +import org.bukkit.FeatureFlag; +import org.bukkit.Fluid; +import org.bukkit.GameEvent; +import org.bukkit.JukeboxSong; +import org.bukkit.Material; +import org.bukkit.MusicInstrument; +import org.bukkit.Sound; +import org.bukkit.Statistic; +import org.bukkit.Tag; +import org.bukkit.attribute.Attribute; +import org.bukkit.block.Biome; +import org.bukkit.block.BlockType; +import org.bukkit.block.banner.PatternType; +import org.bukkit.damage.DamageType; +import org.bukkit.entity.Boat; +import org.bukkit.entity.Cat; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Fox; +import org.bukkit.entity.Frog; +import org.bukkit.entity.Panda; +import org.bukkit.entity.Salmon; +import org.bukkit.entity.Sniffer; +import org.bukkit.entity.TropicalFish; +import org.bukkit.entity.Villager; +import org.bukkit.entity.Wolf; +import org.bukkit.entity.memory.MemoryKey; +import org.bukkit.generator.structure.Structure; +import org.bukkit.generator.structure.StructureType; +import org.bukkit.inventory.ItemRarity; +import org.bukkit.inventory.ItemType; +import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.bukkit.inventory.meta.trim.TrimPattern; +import org.bukkit.inventory.recipe.CookingBookCategory; +import org.bukkit.inventory.recipe.CraftingBookCategory; +import org.bukkit.map.MapCursor; +import org.bukkit.map.MapPalette; +import org.bukkit.potion.PotionType; +import org.bukkit.scoreboard.DisplaySlot; +import org.bukkit.tag.DamageTypeTags; +import org.jspecify.annotations.NullMarked; + +import static io.papermc.generator.rewriter.registration.PaperPatternSourceSetRewriter.composite; +import static io.papermc.generator.rewriter.registration.RewriterHolder.holder; +import static io.papermc.generator.utils.Formatting.quoted; + +@NullMarked +public final class Rewriters { + + public static void bootstrap(PatternSourceSetRewriter apiSourceSet, PatternSourceSetRewriter serverSourceSet) { + bootstrapApi(apiSourceSet); + bootstrapServer(serverSourceSet); + } + + public static final Consumer API = Rewriters::bootstrapApi; + public static final Consumer SERVER = Rewriters::bootstrapServer; + + private static void bootstrapApi(PatternSourceSetRewriter sourceSet) { + sourceSet + .register("PotionType", PotionType.class, new EnumRegistryRewriter<>(Registries.POTION)) + .register("EntityType", EntityType.class, new EntityTypeRewriter()) + .register("DisplaySlot", DisplaySlot.class, new EnumCloneRewriter<>(net.minecraft.world.scores.DisplaySlot.class) { + @Override + protected EnumValue.Builder rewriteEnumValue(net.minecraft.world.scores.DisplaySlot slot) { + final String name; + if (slot == net.minecraft.world.scores.DisplaySlot.LIST) { + name = "PLAYER_LIST"; + } else { + name = Formatting.formatKeyAsField(slot.getSerializedName()); + } + + return EnumValue.builder(name).argument(quoted(slot.getSerializedName())); + } + }) + .register("SnifferState", Sniffer.State.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.sniffer.Sniffer.State.class)) + .register("PandaGene", Panda.Gene.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.Panda.Gene.class) { + @Override + protected EnumValue.Builder rewriteEnumValue(net.minecraft.world.entity.animal.Panda.Gene gene) { + return super.rewriteEnumValue(gene).argument(String.valueOf(gene.isRecessive())); + } + }) + .register("CookingBookCategory", CookingBookCategory.class, new EnumCloneRewriter<>(net.minecraft.world.item.crafting.CookingBookCategory.class)) + .register("CraftingBookCategory", CraftingBookCategory.class, new EnumCloneRewriter<>(net.minecraft.world.item.crafting.CraftingBookCategory.class)) + .register("TropicalFishPattern", TropicalFish.Pattern.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.TropicalFish.Pattern.class)) + .register("BoatStatus", Boat.Status.class, new EnumCloneRewriter<>(net.minecraft.world.entity.vehicle.Boat.Status.class)) + .register("FoxType", Fox.Type.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.Fox.Variant.class)) + .register("SalmonVariant", Salmon.Variant.class, new EnumCloneRewriter<>(net.minecraft.world.entity.animal.Salmon.Variant.class)) + .register("ItemUseAnimation", ItemUseAnimation.class, new EnumCloneRewriter<>(net.minecraft.world.item.ItemUseAnimation.class)) + .register("ItemRarity", ItemRarity.class, new EnumCloneRewriter<>(Rarity.class) { + @Override + protected EnumValue.Builder rewriteEnumValue(Rarity rarity) { + return super.rewriteEnumValue(rarity).argument( + "%s.%s".formatted(NamedTextColor.class.getSimpleName(), rarity.color().name()) + ); + } + }) + .register(Material.class, composite( + holder("Blocks", new MaterialRewriter.Blocks()), + //holder("Material#isTransparent", MaterialRewriter.IsTransparent()), + + holder("Items", new MaterialRewriter.Items()) + )) + .register(Statistic.class, composite( + holder("StatisticCustom", new StatisticRewriter.Custom()), + holder("StatisticType", new StatisticRewriter.Type()) + )) + .register(Villager.class, composite( + holder("VillagerType", Villager.Type.class, new RegistryFieldRewriter<>(Registries.VILLAGER_TYPE, "getType")), + holder("VillagerProfession", Villager.Profession.class, new VillagerProfessionRewriter()) + )) + .register("JukeboxSong", JukeboxSong.class, new RegistryFieldRewriter<>(Registries.JUKEBOX_SONG, "get") { + @Override + protected String rewriteFieldName(Holder.Reference reference) { + String keyedName = super.rewriteFieldName(reference); + if (!SourceVersion.isIdentifier(keyedName)) { + // fallback to field names for invalid identifier (happens for 5, 11, 13 etc.) + return RegistryEntries.byRegistryKey(Registries.JUKEBOX_SONG).getFieldNames().get(reference.key()); + } + return keyedName; + } + }) + .register("DamageTypeTags", DamageTypeTags.class, new RegistryTagRewriter<>(Registries.DAMAGE_TYPE, DamageType.class) { + + @Deprecated // spigot mistake + private static final Map RENAMES = Map.of( + "MACE_SMASH", "IS_MACE_SMASH" + ); + + @Override + protected String rewriteFieldName(TagKey tagKey) { + String keyedName = super.rewriteFieldName(tagKey); + return RENAMES.getOrDefault(keyedName, keyedName); + } + }) + .register("MapCursorType", MapCursor.Type.class, new RegistryFieldRewriter<>(Registries.MAP_DECORATION_TYPE, "getType")) + .register("Structure", Structure.class, new RegistryFieldRewriter<>(Registries.STRUCTURE, "getStructure")) + .register("StructureType", StructureType.class, new RegistryFieldRewriter<>(Registries.STRUCTURE_TYPE, "getStructureType")) + .register("TrimPattern", TrimPattern.class, new RegistryFieldRewriter<>(Registries.TRIM_PATTERN, "getTrimPattern")) + .register("TrimMaterial", TrimMaterial.class, new RegistryFieldRewriter<>(Registries.TRIM_MATERIAL, "getTrimMaterial")) + .register("DamageType", DamageType.class, new RegistryFieldRewriter<>(Registries.DAMAGE_TYPE, "getDamageType")) + .register("GameEvent", GameEvent.class, new RegistryFieldRewriter<>(Registries.GAME_EVENT, "getEvent")) + .register("MusicInstrument", MusicInstrument.class, new RegistryFieldRewriter<>(Registries.INSTRUMENT, "getInstrument")) + .register("WolfVariant", Wolf.Variant.class, new RegistryFieldRewriter<>(Registries.WOLF_VARIANT, "getVariant")) + .register("CatType", Cat.Type.class, new RegistryFieldRewriter<>(Registries.CAT_VARIANT, "getType")) + .register("FrogVariant", Frog.Variant.class, new RegistryFieldRewriter<>(Registries.FROG_VARIANT, "getVariant")) + .register("PatternType", PatternType.class, new RegistryFieldRewriter<>(Registries.BANNER_PATTERN, "getType")) + .register("Biome", Biome.class, new RegistryFieldRewriter<>(Registries.BIOME, "getBiome")) + .register("Fluid", Fluid.class, new RegistryFieldRewriter<>(Registries.FLUID, "getFluid")) + .register("Attribute", Attribute.class, new RegistryFieldRewriter<>(Registries.ATTRIBUTE, "getAttribute")) + .register("Sound", Sound.class, new RegistryFieldRewriter<>(Registries.SOUND_EVENT, "getSound")) + .register("Art", Art.class, new RegistryFieldRewriter<>(Registries.PAINTING_VARIANT, "getArt")) + .register("MemoryKey", MemoryKey.class, new MemoryKeyRewriter()) + .register("DataComponentTypes", DataComponentTypes.class, new DataComponentTypesRewriter()) + .register("ItemType", ItemType.class, new ItemTypeRewriter()) + .register("BlockType", BlockType.class, new BlockTypeRewriter()) + .register("FeatureFlag", FeatureFlag.class, new FeatureFlagRewriter()) + .register("Tag", Tag.class, new TagRewriter()) + .register("MapPalette#colors", MapPalette.class, new MapPaletteRewriter()); + RegistryBootstrapper.bootstrapApi(sourceSet); + } + + private static void bootstrapServer(PatternSourceSetRewriter sourceSet) { + sourceSet + .register("CraftBlockData#MAP", Types.CRAFT_BLOCK_DATA, new CraftBlockDataMapping()) + .register("CraftBlockEntityStates", Types.CRAFT_BLOCK_STATES, new CraftBlockEntityStateMapping()) + .register(Types.CRAFT_STATISTIC, composite( + holder("CraftStatisticCustom", new StatisticRewriter.CraftCustom()), + holder("CraftStatisticType", new StatisticRewriter.CraftType()) + )) + .register(Types.CRAFT_POTION_UTIL, composite( + holder("CraftPotionUtil#upgradeable", new CraftPotionUtilRewriter("strong")), + holder("CraftPotionUtil#extendable", new CraftPotionUtilRewriter("long")) + )) + .register("PaperFeatureFlagProviderImpl#FLAGS", Types.PAPER_FEATURE_FLAG_PROVIDER_IMPL, new PaperFeatureFlagMapping()) + .register("MobGoalHelper#bukkitMap", Types.MOB_GOAL_HELPER, new SearchReplaceRewriter() { + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + for (Map.Entry, Class> entry : MobGoalNames.bukkitMap.entrySet()) { + builder.append(metadata.indent()).append("bukkitMap.put(%s.class, %s.class);".formatted( + entry.getKey().getCanonicalName(), this.importCollector.getShortName(entry.getValue()) + )); + builder.append('\n'); + } + } + }); + RegistryBootstrapper.bootstrapServer(sourceSet); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/registry/RegistryBootstrapper.java b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryBootstrapper.java new file mode 100644 index 0000000000..c84fcee518 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryBootstrapper.java @@ -0,0 +1,45 @@ +package io.papermc.generator.registry; + +import io.papermc.generator.rewriter.registration.PatternSourceSetRewriter; +import io.papermc.generator.rewriter.types.Types; +import io.papermc.generator.rewriter.types.registry.PaperRegistriesRewriter; +import io.papermc.generator.rewriter.types.registry.RegistryEventsRewriter; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.generator.types.registry.GeneratedKeyType; +import io.papermc.generator.types.registry.GeneratedTagKeyType; +import io.papermc.paper.registry.event.RegistryEvents; +import java.util.List; +import net.minecraft.core.registries.Registries; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class RegistryBootstrapper { + + private static final String PAPER_REGISTRY_PACKAGE = "io.papermc.paper.registry"; + + public static void bootstrap(List generators) { + // typed/tag keys + RegistryEntries.forEach(entry -> { + generators.add(new GeneratedKeyType<>(PAPER_REGISTRY_PACKAGE + ".keys", entry)); + if (entry.registry().listTags().findAny().isPresent()) { + generators.add(new GeneratedTagKeyType(entry, PAPER_REGISTRY_PACKAGE + ".keys.tags")); + } + }); + + // todo remove once entity type is a registry + generators.add(new GeneratedTagKeyType(RegistryEntries.byRegistryKey(Registries.ENTITY_TYPE), PAPER_REGISTRY_PACKAGE + ".keys.tags")); + } + + public static void bootstrap(PatternSourceSetRewriter apiSourceSet, PatternSourceSetRewriter serverSourceSet) { + bootstrapApi(apiSourceSet); + bootstrapServer(serverSourceSet); + } + + public static void bootstrapApi(PatternSourceSetRewriter sourceSet) { + sourceSet.register("RegistryEvents", RegistryEvents.class, new RegistryEventsRewriter()); + } + + public static void bootstrapServer(PatternSourceSetRewriter sourceSet) { + sourceSet.register("RegistryDefinitions", Types.PAPER_REGISTRIES, new PaperRegistriesRewriter()); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntries.java b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntries.java new file mode 100644 index 0000000000..4c065cf69d --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntries.java @@ -0,0 +1,204 @@ +package io.papermc.generator.registry; + +import io.papermc.generator.utils.ClassHelper; +import io.papermc.paper.datacomponent.DataComponentType; +import io.papermc.paper.datacomponent.DataComponentTypes; +import io.papermc.paper.registry.data.BannerPatternRegistryEntry; +import io.papermc.paper.registry.data.DamageTypeRegistryEntry; +import io.papermc.paper.registry.data.EnchantmentRegistryEntry; +import io.papermc.paper.registry.data.GameEventRegistryEntry; +import io.papermc.paper.registry.data.PaintingVariantRegistryEntry; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.damagesource.DamageTypes; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.memory.MemoryModuleType; +import net.minecraft.world.entity.animal.CatVariant; +import net.minecraft.world.entity.animal.FrogVariant; +import net.minecraft.world.entity.animal.WolfVariants; +import net.minecraft.world.entity.decoration.PaintingVariants; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.item.Instruments; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.JukeboxSongs; +import net.minecraft.world.item.alchemy.Potions; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.item.equipment.trim.TrimMaterials; +import net.minecraft.world.item.equipment.trim.TrimPatterns; +import net.minecraft.world.level.biome.Biomes; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BannerPatterns; +import net.minecraft.world.level.levelgen.structure.BuiltinStructures; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.saveddata.maps.MapDecorationTypes; +import org.bukkit.Art; +import org.bukkit.Fluid; +import org.bukkit.GameEvent; +import org.bukkit.JukeboxSong; +import org.bukkit.Keyed; +import org.bukkit.MusicInstrument; +import org.bukkit.Particle; +import org.bukkit.Sound; +import org.bukkit.attribute.Attribute; +import org.bukkit.block.Biome; +import org.bukkit.block.BlockType; +import org.bukkit.block.banner.PatternType; +import org.bukkit.damage.DamageType; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Cat; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Frog; +import org.bukkit.entity.Villager; +import org.bukkit.entity.Wolf; +import org.bukkit.entity.memory.MemoryKey; +import org.bukkit.generator.structure.Structure; +import org.bukkit.generator.structure.StructureType; +import org.bukkit.inventory.ItemType; +import org.bukkit.inventory.MenuType; +import org.bukkit.inventory.meta.trim.TrimMaterial; +import org.bukkit.inventory.meta.trim.TrimPattern; +import org.bukkit.map.MapCursor; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.potion.PotionType; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class RegistryEntries { + + // CraftBukkit entry where implementation start by "Craft" + private static RegistryEntry entry(ResourceKey> registryKey, Class holderElementsClass, Class apiClass) { + return entry(registryKey, holderElementsClass, apiClass, "Craft"); + } + + private static RegistryEntry entry(ResourceKey> registryKey, Class holderElementsClass, Class apiClass, String implPrefix) { + String name = io.papermc.typewriter.util.ClassHelper.retrieveFullNestedName(apiClass); + RegistryKeyField registryKeyField = (RegistryKeyField) REGISTRY_KEY_FIELDS.get(registryKey); + String[] classes = name.split("\\."); + if (classes.length == 0) { + return new RegistryEntry<>(registryKey, registryKeyField, holderElementsClass, apiClass, implPrefix.concat(apiClass.getSimpleName())); + } + + String implName = Arrays.stream(classes).map(implPrefix::concat).collect(Collectors.joining(".")); + return new RegistryEntry<>(registryKey, registryKeyField, holderElementsClass, apiClass, implName); + } + + @Deprecated + private static RegistryEntry inconsistentEntry(ResourceKey> registryKey, Class holderElementsClass, Class apiClass, String implClass) { + return new RegistryEntry<>(registryKey, (RegistryKeyField) REGISTRY_KEY_FIELDS.get(registryKey), holderElementsClass, apiClass, implClass); + } + + private static final Map>, RegistryKeyField> REGISTRY_KEY_FIELDS; + static { + Map>, RegistryKeyField> registryKeyFields = new IdentityHashMap<>(); + try { + for (Field field : Registries.class.getDeclaredFields()) { + if (!ResourceKey.class.isAssignableFrom(field.getType())) { + continue; + } + + if (ClassHelper.isStaticConstant(field, Modifier.PUBLIC)) { + Type elementType = ClassHelper.getNestedTypeParameter(field.getGenericType(), ResourceKey.class, Registry.class, null); + if (elementType != null) { + registryKeyFields.put(((ResourceKey>) field.get(null)), new RegistryKeyField<>(ClassHelper.eraseType(elementType), field.getName())); + } + } + } + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + REGISTRY_KEY_FIELDS = Collections.unmodifiableMap(registryKeyFields); + } + + public static final Set> REGISTRY_CLASS_NAME_BASED_ON_API = Set.of( + BlockType.class, + ItemType.class + ); + + public static final List> BUILT_IN = List.of( + entry(Registries.GAME_EVENT, net.minecraft.world.level.gameevent.GameEvent.class, GameEvent.class).apiRegistryBuilder(GameEventRegistryEntry.Builder.class, "PaperGameEventRegistryEntry.PaperBuilder"), + entry(Registries.STRUCTURE_TYPE, net.minecraft.world.level.levelgen.structure.StructureType.class, StructureType.class), + entry(Registries.MOB_EFFECT, MobEffects.class, PotionEffectType.class), + entry(Registries.BLOCK, Blocks.class, BlockType.class), + entry(Registries.ITEM, Items.class, ItemType.class), + entry(Registries.CAT_VARIANT, CatVariant.class, Cat.Type.class), + entry(Registries.FROG_VARIANT, FrogVariant.class, Frog.Variant.class), + entry(Registries.VILLAGER_PROFESSION, VillagerProfession.class, Villager.Profession.class), + entry(Registries.VILLAGER_TYPE, VillagerType.class, Villager.Type.class), + entry(Registries.MAP_DECORATION_TYPE, MapDecorationTypes.class, MapCursor.Type.class), + entry(Registries.MENU, net.minecraft.world.inventory.MenuType.class, MenuType.class), + entry(Registries.ATTRIBUTE, Attributes.class, Attribute.class), + entry(Registries.FLUID, Fluids.class, Fluid.class), + entry(Registries.SOUND_EVENT, SoundEvents.class, Sound.class).allowDirect().apiRegistryField("SOUNDS"), + entry(Registries.DATA_COMPONENT_TYPE, DataComponents.class, DataComponentType.class, "Paper").preload(DataComponentTypes.class).apiAccessName("of") + ); + + public static final List> DATA_DRIVEN = List.of( + entry(Registries.BIOME, Biomes.class, Biome.class).delayed(), + entry(Registries.STRUCTURE, BuiltinStructures.class, Structure.class).delayed(), + entry(Registries.TRIM_MATERIAL, TrimMaterials.class, TrimMaterial.class).allowDirect().delayed(), + entry(Registries.TRIM_PATTERN, TrimPatterns.class, TrimPattern.class).allowDirect().delayed(), + entry(Registries.DAMAGE_TYPE, DamageTypes.class, DamageType.class).apiRegistryBuilder(DamageTypeRegistryEntry.Builder.class, "PaperDamageTypeRegistryEntry.PaperBuilder").delayed(), + entry(Registries.WOLF_VARIANT, WolfVariants.class, Wolf.Variant.class).delayed(), + entry(Registries.ENCHANTMENT, Enchantments.class, Enchantment.class).apiRegistryBuilder(EnchantmentRegistryEntry.Builder.class, "PaperEnchantmentRegistryEntry.PaperBuilder").serializationUpdater("ENCHANTMENT_RENAME").delayed(), + entry(Registries.JUKEBOX_SONG, JukeboxSongs.class, JukeboxSong.class).delayed(), + entry(Registries.BANNER_PATTERN, BannerPatterns.class, PatternType.class).allowDirect().apiRegistryBuilder(BannerPatternRegistryEntry.Builder.class, "PaperBannerPatternRegistryEntry.PaperBuilder").delayed(), + entry(Registries.PAINTING_VARIANT, PaintingVariants.class, Art.class).allowDirect().apiRegistryBuilder(PaintingVariantRegistryEntry.Builder.class, "PaperPaintingVariantRegistryEntry.PaperBuilder").apiRegistryField("ART").delayed(), + entry(Registries.INSTRUMENT, Instruments.class, MusicInstrument.class).allowDirect().delayed() + ); + + public static final List> API_ONLY = List.of( + entry(Registries.ENTITY_TYPE, net.minecraft.world.entity.EntityType.class, EntityType.class), + entry(Registries.PARTICLE_TYPE, ParticleTypes.class, Particle.class), + entry(Registries.POTION, Potions.class, PotionType.class), + entry(Registries.MEMORY_MODULE_TYPE, MemoryModuleType.class, MemoryKey.class) + ); + + public static final Map>, RegistryEntry> BY_REGISTRY_KEY; + static { + Map>, RegistryEntry> byRegistryKey = new IdentityHashMap<>(BUILT_IN.size() + DATA_DRIVEN.size() + API_ONLY.size()); + forEach(entry -> { + byRegistryKey.put(entry.registryKey(), entry); + }, RegistryEntries.BUILT_IN, RegistryEntries.DATA_DRIVEN, RegistryEntries.API_ONLY); + BY_REGISTRY_KEY = Collections.unmodifiableMap(byRegistryKey); + } + + @SuppressWarnings("unchecked") + public static RegistryEntry byRegistryKey(ResourceKey> registryKey) { + return (RegistryEntry) Objects.requireNonNull(BY_REGISTRY_KEY.get(registryKey)); + } + + // real registries + public static void forEach(Consumer> callback) { + forEach(callback, RegistryEntries.BUILT_IN, RegistryEntries.DATA_DRIVEN); + } + + @SafeVarargs + public static void forEach(Consumer> callback, List>... datas) { + for (List> data : datas) { + for (RegistryEntry entry : data) { + callback.accept(entry); + } + } + } + + private RegistryEntries() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntry.java b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntry.java new file mode 100644 index 0000000000..26cbd71ca5 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryEntry.java @@ -0,0 +1,214 @@ +package io.papermc.generator.registry; + +import com.google.common.base.Preconditions; +import io.papermc.generator.Main; +import io.papermc.generator.utils.ClassHelper; +import java.lang.constant.ConstantDescs; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import javax.lang.model.SourceVersion; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import org.bukkit.Keyed; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public final class RegistryEntry { + + private final ResourceKey> registryKey; + private final RegistryKeyField registryKeyField; + private final Class elementClass; + private final Class holderElementsClass; + private boolean allowDirect; + + private final Class apiClass; // TODO remove Keyed + private Class preloadClass; + private final String implClass; + + private @Nullable Class apiRegistryBuilder; + private @Nullable String apiRegistryBuilderImpl; + + private @Nullable String fieldRename; + private boolean delayed; + private String apiAccessName = ConstantDescs.INIT_NAME; + private Optional apiRegistryField = Optional.empty(); + + private @Nullable Map, String> fieldNames; + + public RegistryEntry(ResourceKey> registryKey, RegistryKeyField registryKeyField, Class holderElementsClass, Class apiClass, String implClass) { + this.registryKey = registryKey; + this.registryKeyField = registryKeyField; + this.elementClass = registryKeyField.elementClass(); + this.holderElementsClass = holderElementsClass; + this.apiClass = apiClass; + this.preloadClass = apiClass; + this.implClass = implClass; + } + + public ResourceKey> registryKey() { + return this.registryKey; + } + + public Registry registry() { + return Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey); + } + + public String registryKeyField() { + return this.registryKeyField.name(); + } + + public Class apiClass() { + return this.apiClass; + } + + public String implClass() { + return this.implClass; + } + + public RegistryEntry allowDirect() { + this.allowDirect = true; + return this; + } + + public RegistryEntry delayed() { + this.delayed = true; + return this; + } + + public RegistryEntry preload(Class klass) { + this.preloadClass = klass; + return this; + } + + public RegistryEntry apiAccessName(String name) { + Preconditions.checkArgument(SourceVersion.isIdentifier(name) && !SourceVersion.isKeyword(name), "Invalid accessor name"); + this.apiAccessName = name; + return this; + } + + public RegistryEntry serializationUpdater(String fieldName) { + this.fieldRename = fieldName; + return this; + } + + public boolean canAllowDirect() { + return this.allowDirect; + } + + public boolean isDelayed() { + return this.delayed; + } + + public String apiAccessName() { + return this.apiAccessName; + } + + public Class preloadClass() { + return this.preloadClass; + } + + public @Nullable String fieldRename() { + return this.fieldRename; + } + + public @Nullable Class apiRegistryBuilder() { + return this.apiRegistryBuilder; + } + + public @Nullable String apiRegistryBuilderImpl() { + return this.apiRegistryBuilderImpl; + } + + public RegistryEntry apiRegistryBuilder(Class builderClass, String builderImplClass) { + this.apiRegistryBuilder = builderClass; + this.apiRegistryBuilderImpl = builderImplClass; + return this; + } + + public Optional apiRegistryField() { + return this.apiRegistryField; + } + + public RegistryEntry apiRegistryField(String registryField) { + this.apiRegistryField = Optional.of(registryField); + return this; + } + + public String keyClassName() { + if (RegistryEntries.REGISTRY_CLASS_NAME_BASED_ON_API.contains(this.apiClass)) { + return this.apiClass.getSimpleName(); + } + + return this.elementClass.getSimpleName(); + } + + public boolean allowCustomKeys() { + return this.apiRegistryBuilder != null || RegistryEntries.DATA_DRIVEN.contains(this); + } + + private Map, TO> getFields(Map, TO> map, Function transform) { + Registry registry = this.registry(); + try { + for (Field field : this.holderElementsClass.getDeclaredFields()) { + if (!ResourceKey.class.isAssignableFrom(field.getType()) && !Holder.Reference.class.isAssignableFrom(field.getType()) && !this.elementClass.isAssignableFrom(field.getType())) { + continue; + } + + if (ClassHelper.isStaticConstant(field, Modifier.PUBLIC)) { + ResourceKey key = null; + if (this.elementClass.isAssignableFrom(field.getType())) { + key = registry.getResourceKey(this.elementClass.cast(field.get(null))).orElseThrow(); + } else { + if (field.getGenericType() instanceof ParameterizedType complexType && complexType.getActualTypeArguments().length == 1 && + complexType.getActualTypeArguments()[0] == this.elementClass) { + + if (Holder.Reference.class.isAssignableFrom(field.getType())) { + key = ((Holder.Reference) field.get(null)).key(); + } else { + key = (ResourceKey) field.get(null); + } + } + } + if (key != null) { + TO value = transform.apply(field); + if (value != null) { + map.put(key, value); + } + } + } + } + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + return map; + } + + public Map, String> getFieldNames() { + if (this.fieldNames == null) { + this.fieldNames = this.getFields(Field::getName); + } + return this.fieldNames; + } + + public Map, TO> getFields(Function transform) { + return Collections.unmodifiableMap(this.getFields(new IdentityHashMap<>(), transform)); + } + + @Override + public String toString() { + return "RegistryEntry[" + + "registryKey=" + this.registryKey + ", " + + "registryKeyField=" + this.registryKeyField + ", " + + "apiClass=" + this.apiClass + ", " + + "implClass=" + this.implClass + ", " + + ']'; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/registry/RegistryKeyField.java b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryKeyField.java new file mode 100644 index 0000000000..7a91f0bd4b --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/registry/RegistryKeyField.java @@ -0,0 +1,7 @@ +package io.papermc.generator.registry; + +import org.jspecify.annotations.NullMarked; + +@NullMarked +public record RegistryKeyField(Class elementClass, String name) { +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PaperPatternSourceSetRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PaperPatternSourceSetRewriter.java new file mode 100644 index 0000000000..2735b23a8c --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PaperPatternSourceSetRewriter.java @@ -0,0 +1,75 @@ +package io.papermc.generator.rewriter.registration; + +import io.papermc.generator.rewriter.utils.Annotations; +import io.papermc.generator.types.SimpleGenerator; +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.SourceFile; +import io.papermc.typewriter.context.IndentUnit; +import io.papermc.typewriter.context.SourcesMetadata; +import io.papermc.typewriter.registration.SourceSetRewriterImpl; +import io.papermc.typewriter.replace.CompositeRewriter; +import io.papermc.typewriter.replace.ReplaceOptions; +import io.papermc.typewriter.replace.ReplaceOptionsLike; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.io.File; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collections; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.SharedConstants; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.VisibleForTesting; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public class PaperPatternSourceSetRewriter extends SourceSetRewriterImpl implements PatternSourceSetRewriter { + + private static final String COMMENT_MARKER_FORMAT = "%s generate - %s"; // {0} = Start|End {1} = pattern + private static final IndentUnit INDENT_UNIT = IndentUnit.parse(SimpleGenerator.INDENT_UNIT); + + public PaperPatternSourceSetRewriter() { + this(Collections.emptySet()); + } + + public PaperPatternSourceSetRewriter(Set classpath) { + super(SourcesMetadata.of(INDENT_UNIT, b -> b.classpath(classpath))); // let the runtime java version since it will always be in sync with what paperweight use + } + + public static PaperPatternSourceSetRewriter from(String classpath) { + return new PaperPatternSourceSetRewriter(Arrays.stream(classpath.split(File.pathSeparator)).map(Path::of).collect(Collectors.toSet())); + } + + @VisibleForTesting + public SourcesMetadata getMetadata() { + return this.metadata; + } + + private static ReplaceOptionsLike getOptions(String pattern, @Nullable ClassNamed targetClass) { + return ReplaceOptions.between( + COMMENT_MARKER_FORMAT.formatted("Start", pattern), + COMMENT_MARKER_FORMAT.formatted("End", pattern) + ) + .generatedComment(Annotations.annotationStyle(GeneratedFrom.class) + " " + SharedConstants.getCurrentVersion().getName()) + .targetClass(targetClass); + } + + @Override + public PatternSourceSetRewriter register(String pattern, ClassNamed targetClass, SearchReplaceRewriter rewriter) { + return super.register(SourceFile.of(targetClass.topLevel()), rewriter.withOptions(getOptions(pattern, targetClass)).customName(pattern)); + } + + @Override + public PatternSourceSetRewriter register(ClassNamed mainClass, CompositeRewriter rewriter) { + return super.register(SourceFile.of(mainClass), rewriter); + } + + @Contract(value = "_ -> new", pure = true) + public static CompositeRewriter composite(RewriterHolder... holders) { + return CompositeRewriter.bind(Arrays.stream(holders) + .map(holder -> holder.transform(PaperPatternSourceSetRewriter::getOptions)) + .toArray(SearchReplaceRewriter[]::new)); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PatternSourceSetRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PatternSourceSetRewriter.java new file mode 100644 index 0000000000..0189efb104 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/PatternSourceSetRewriter.java @@ -0,0 +1,23 @@ +package io.papermc.generator.rewriter.registration; + +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.registration.SourceSetRewriter; +import io.papermc.typewriter.replace.CompositeRewriter; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface PatternSourceSetRewriter extends SourceSetRewriter { + + default PatternSourceSetRewriter register(String pattern, Class targetClass, SearchReplaceRewriter rewriter) { + return register(pattern, new ClassNamed(targetClass), rewriter); + } + + PatternSourceSetRewriter register(String pattern, ClassNamed targetClass, SearchReplaceRewriter rewriter); + + default PatternSourceSetRewriter register(Class mainClass, CompositeRewriter rewriter) { + return this.register(new ClassNamed(mainClass), rewriter); + } + + PatternSourceSetRewriter register(ClassNamed mainClass, CompositeRewriter rewriter); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/RewriterHolder.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/RewriterHolder.java new file mode 100644 index 0000000000..0d4809a214 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/registration/RewriterHolder.java @@ -0,0 +1,27 @@ +package io.papermc.generator.rewriter.registration; + +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.replace.ReplaceOptionsLike; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.function.BiFunction; +import org.jetbrains.annotations.Contract; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public record RewriterHolder(String pattern, @Nullable ClassNamed targetClass, SearchReplaceRewriter rewriter) { + + @Contract(value = "_, _, _ -> new", pure = true) + public static RewriterHolder holder(String pattern, @Nullable Class targetClass, SearchReplaceRewriter rewriter) { + return new RewriterHolder(pattern, targetClass == null ? null : new ClassNamed(targetClass), rewriter); + } + + @Contract(value = "_, _ -> new", pure = true) + public static RewriterHolder holder(String pattern, SearchReplaceRewriter rewriter) { + return holder(pattern, null, rewriter); + } + + public SearchReplaceRewriter transform(BiFunction patternMapper) { + return this.rewriter.withOptions(patternMapper.apply(this.pattern, this.targetClass)).customName(this.pattern); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/Types.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/Types.java new file mode 100644 index 0000000000..f733d019dc --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/Types.java @@ -0,0 +1,28 @@ +package io.papermc.generator.rewriter.types; + +import io.papermc.typewriter.ClassNamed; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Types { + + public static final String BASE_PACKAGE = "org.bukkit.craftbukkit"; + + public static final ClassNamed CRAFT_BLOCK_DATA = ClassNamed.of(BASE_PACKAGE + ".block.data", "CraftBlockData"); + + public static final ClassNamed CRAFT_BLOCK_STATES = ClassNamed.of(BASE_PACKAGE + ".block", "CraftBlockStates"); + + public static final ClassNamed CRAFT_STATISTIC = ClassNamed.of(BASE_PACKAGE, "CraftStatistic"); + + public static final ClassNamed CRAFT_POTION_UTIL = ClassNamed.of(BASE_PACKAGE + ".potion", "CraftPotionUtil"); + + public static final ClassNamed FIELD_RENAME = ClassNamed.of(BASE_PACKAGE + ".legacy", "FieldRename"); + + public static final ClassNamed PAPER_REGISTRIES = ClassNamed.of("io.papermc.paper.registry", "PaperRegistries"); + + public static final ClassNamed PAPER_FEATURE_FLAG_PROVIDER_IMPL = ClassNamed.of("io.papermc.paper.world.flag", "PaperFeatureFlagProviderImpl"); + + public static final ClassNamed PAPER_SIMPLE_REGISTRY = ClassNamed.of("io.papermc.paper.registry", "PaperSimpleRegistry"); + + public static final ClassNamed MOB_GOAL_HELPER = ClassNamed.of("com.destroystokyo.paper.entity.ai", "MobGoalHelper"); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/EnumRegistryRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/EnumRegistryRewriter.java new file mode 100644 index 0000000000..4c6d055d89 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/EnumRegistryRewriter.java @@ -0,0 +1,82 @@ +package io.papermc.generator.rewriter.types.registry; + +import com.google.common.base.Suppliers; +import io.papermc.generator.Main; +import io.papermc.generator.rewriter.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.experimental.ExperimentalCollector; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.typewriter.preset.EnumRewriter; +import io.papermc.typewriter.preset.model.EnumValue; +import java.util.Map; +import java.util.function.Supplier; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.flag.FeatureElement; +import net.minecraft.world.flag.FeatureFlags; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +import static io.papermc.generator.utils.Formatting.quoted; + +@NullMarked +@ApiStatus.Obsolete +public class EnumRegistryRewriter extends EnumRewriter> { + + private final Registry registry; + private final Supplier, SingleFlagHolder>> experimentalKeys; + private final boolean isFilteredRegistry; + private final boolean hasKeyArgument; + + public EnumRegistryRewriter(ResourceKey> registryKey) { + this(registryKey, true); + } + + protected EnumRegistryRewriter(ResourceKey> registryKey, boolean hasKeyArgument) { + this.registry = Main.REGISTRY_ACCESS.lookupOrThrow(registryKey); + this.experimentalKeys = Suppliers.memoize(() -> ExperimentalCollector.collectDataDrivenElementIds(this.registry)); + this.isFilteredRegistry = FeatureElement.FILTERED_REGISTRIES.contains(registryKey); + this.hasKeyArgument = hasKeyArgument; + } + + @Override + protected Iterable> getValues() { + return this.registry.listElements().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath()))::iterator; + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference reference) { + EnumValue.Builder value = EnumValue.builder(Formatting.formatKeyAsField(reference.key().location().getPath())); + if (this.hasKeyArgument) { + value.argument(quoted(reference.key().location().getPath())); + } + return value; + } + + @Override + protected void appendEnumValue(Holder.Reference reference, StringBuilder builder, String indent, boolean reachEnd) { + // experimental annotation + SingleFlagHolder requiredFeature = this.getRequiredFeature(reference); + if (requiredFeature != null) { + Annotations.experimentalAnnotations(builder, indent, this.importCollector, requiredFeature); + } + + super.appendEnumValue(reference, builder, indent, reachEnd); + } + + protected @Nullable SingleFlagHolder getRequiredFeature(Holder.Reference reference) { + if (this.isFilteredRegistry) { + // built-in registry + FeatureElement element = (FeatureElement) reference.value(); + if (FeatureFlags.isExperimental(element.requiredFeatures())) { + return SingleFlagHolder.fromSet(element.requiredFeatures()); + } + } else { + // data-driven registry + return this.experimentalKeys.get().get(reference.key()); + } + return null; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/FeatureFlagRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/FeatureFlagRewriter.java new file mode 100644 index 0000000000..ede08c4a00 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/FeatureFlagRewriter.java @@ -0,0 +1,61 @@ +package io.papermc.generator.rewriter.types.registry; + +import com.mojang.logging.LogUtils; +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.SourceFile; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Iterator; +import java.util.Map; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.flag.FeatureFlag; +import net.minecraft.world.flag.FeatureFlagSet; +import net.minecraft.world.flag.FeatureFlags; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; +import org.slf4j.Logger; + +import static io.papermc.generator.rewriter.utils.Annotations.annotation; +import static io.papermc.generator.utils.Formatting.quoted; + +@NullMarked +public class FeatureFlagRewriter extends SearchReplaceRewriter { + + private static final Logger LOGGER = LogUtils.getLogger(); + + @Override + public boolean registerFor(SourceFile file) { + try { + org.bukkit.FeatureFlag.class.getDeclaredMethod("create", String.class); + } catch (NoSuchMethodException e) { + LOGGER.error("Fetch method not found, skipping the rewriter for feature flag", e); + return false; + } + + return super.registerFor(file); + } + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + Iterator> flagIterator = FeatureFlags.REGISTRY.names.entrySet().stream().sorted(Formatting.alphabeticKeyOrder(entry -> entry.getKey().getPath())).iterator(); + while (flagIterator.hasNext()) { + Map.Entry entry = flagIterator.next(); + ResourceLocation name = entry.getKey(); + if (FeatureFlags.isExperimental(FeatureFlagSet.of(entry.getValue()))) { + builder.append(metadata.indent()).append(annotation(ApiStatus.Experimental.class, this.importCollector)).append('\n'); + } + + builder.append(metadata.indent()); + + builder.append(org.bukkit.FeatureFlag.class.getSimpleName()).append(' ').append(Formatting.formatKeyAsField(name.getPath())); + builder.append(" = "); + builder.append("create(%s)".formatted(quoted(name.getPath()))); + builder.append(';'); + + builder.append('\n'); + if (flagIterator.hasNext()) { + builder.append('\n'); + } + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperFeatureFlagMapping.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperFeatureFlagMapping.java new file mode 100644 index 0000000000..06287f65a0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperFeatureFlagMapping.java @@ -0,0 +1,30 @@ +package io.papermc.generator.rewriter.types.registry; + +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Iterator; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.flag.FeatureFlags; +import org.bukkit.FeatureFlag; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class PaperFeatureFlagMapping extends SearchReplaceRewriter { + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + Iterator flagIterator = FeatureFlags.REGISTRY.toNames(FeatureFlags.REGISTRY.allFlags()).stream().sorted(Formatting.alphabeticKeyOrder(ResourceLocation::getPath)).iterator(); + + while (flagIterator.hasNext()) { + ResourceLocation name = flagIterator.next(); + String keyedName = Formatting.formatKeyAsField(name.getPath()); + builder.append(metadata.indent()); + builder.append("%s.%s, %s.%s".formatted(FeatureFlag.class.getSimpleName(), keyedName, FeatureFlags.class.getSimpleName(), keyedName)); + if (flagIterator.hasNext()) { + builder.append(','); + } + builder.append('\n'); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperRegistriesRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperRegistriesRewriter.java new file mode 100644 index 0000000000..ce5c691140 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/PaperRegistriesRewriter.java @@ -0,0 +1,94 @@ +package io.papermc.generator.rewriter.types.registry; + +import com.google.common.base.CaseFormat; +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.registry.RegistryEntry; +import io.papermc.generator.rewriter.types.Types; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.lang.constant.ConstantDescs; +import net.minecraft.core.registries.Registries; +import org.bukkit.Registry; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class PaperRegistriesRewriter extends SearchReplaceRewriter { + + private void appendEntry(String indent, StringBuilder builder, RegistryEntry entry, boolean canBeDelayed, boolean apiOnly) { + builder.append(indent); + builder.append("start"); + builder.append('('); + builder.append(Registries.class.getSimpleName()).append('.').append(entry.registryKeyField()); + builder.append(", "); + builder.append(RegistryKey.class.getSimpleName()).append('.').append(entry.registryKeyField()); + builder.append(")."); + if (apiOnly) { + builder.append("apiOnly("); + if (entry.apiClass().isEnum()) { + builder.append(this.importCollector.getShortName(Types.PAPER_SIMPLE_REGISTRY)).append("::").append(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, entry.registryKey().location().getPath())); + } else { + builder.append("() -> "); + builder.append(Registry.class.getCanonicalName()).append('.').append(entry.apiRegistryField().orElse(entry.registryKeyField())); + } + builder.append(')'); + } else { + builder.append("craft("); + builder.append(this.importCollector.getShortName(entry.preloadClass())).append(".class"); + builder.append(", "); + + builder.append(this.importCollector.getShortName(this.classNamedView.findFirst(entry.implClass()).resolve(this.classResolver))).append("::").append(entry.apiAccessName().equals(ConstantDescs.INIT_NAME) ? "new" : entry.apiAccessName()); + + if (entry.canAllowDirect()) { + builder.append(", "); + builder.append(Boolean.TRUE.toString()); + } + builder.append(')'); + + if (entry.fieldRename() != null) { + builder.append(".serializationUpdater(").append(Types.FIELD_RENAME.simpleName()).append('.').append(entry.fieldRename()).append(")"); + } + + if (entry.apiRegistryBuilderImpl() != null) { + builder.append(".writable("); + builder.append(this.importCollector.getShortName(this.classNamedView.findFirst(entry.apiRegistryBuilderImpl()).resolve(this.classResolver))).append("::new"); + builder.append(')'); + } else { + builder.append(".build()"); + } + } + if (canBeDelayed && entry.isDelayed()) { + builder.append(".delayed()"); + } + builder.append(','); + builder.append('\n'); + } + + @Override + public void insert(SearchMetadata metadata, StringBuilder builder) { + builder.append(metadata.indent()).append("// built-in"); + builder.append('\n'); + + for (RegistryEntry entry : RegistryEntries.BUILT_IN) { + appendEntry(metadata.indent(), builder, entry, false, false); + } + + builder.append('\n'); + builder.append(metadata.indent()).append("// data-driven"); + builder.append('\n'); + + for (RegistryEntry entry : RegistryEntries.DATA_DRIVEN) { + appendEntry(metadata.indent(), builder, entry, true, false); + } + + builder.append('\n'); + builder.append(metadata.indent()).append("// api-only"); + builder.append('\n'); + + for (RegistryEntry entry : RegistryEntries.API_ONLY) { + appendEntry(metadata.indent(), builder, entry, false, true); + } + + builder.deleteCharAt(builder.length() - 2); // delete extra comma... + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryEventsRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryEventsRewriter.java new file mode 100644 index 0000000000..6d289d4d05 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryEventsRewriter.java @@ -0,0 +1,33 @@ +package io.papermc.generator.rewriter.types.registry; + +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.event.RegistryEventProvider; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import org.jspecify.annotations.NullMarked; + +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class RegistryEventsRewriter extends SearchReplaceRewriter { + + @Override + public void insert(SearchMetadata metadata, StringBuilder builder) { + RegistryEntries.forEach(entry -> { + if (entry.apiRegistryBuilder() != null) { + builder.append(metadata.indent()); + builder.append("%s %s %s ".formatted(PUBLIC, STATIC, FINAL)); + builder.append(RegistryEventProvider.class.getSimpleName()); + builder.append("<").append(this.importCollector.getShortName(entry.apiClass())).append(", ").append(this.importCollector.getShortName(entry.apiRegistryBuilder())).append('>'); + builder.append(' '); + builder.append(entry.registryKeyField()); + builder.append(" = "); + builder.append("create(").append(RegistryKey.class.getSimpleName()).append('.').append(entry.registryKeyField()).append(");"); + builder.append('\n'); + } + }); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryFieldRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryFieldRewriter.java new file mode 100644 index 0000000000..835c3fd1c0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryFieldRewriter.java @@ -0,0 +1,135 @@ +package io.papermc.generator.rewriter.types.registry; + +import com.google.common.base.Preconditions; +import com.google.common.base.Suppliers; +import com.mojang.logging.LogUtils; +import io.papermc.generator.Main; +import io.papermc.generator.rewriter.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.experimental.ExperimentalCollector; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.SourceFile; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Iterator; +import java.util.Map; +import java.util.Objects; +import java.util.function.Supplier; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.flag.FeatureElement; +import net.minecraft.world.flag.FeatureFlags; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; + +import static io.papermc.generator.utils.Formatting.quoted; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class RegistryFieldRewriter extends SearchReplaceRewriter { + + private static final Logger LOGGER = LogUtils.getLogger(); + + private final ResourceKey> registryKey; + private final boolean isFilteredRegistry; + private final @Nullable String fetchMethod; + + protected @MonotonicNonNull ClassNamed fieldClass; + private @MonotonicNonNull Supplier, SingleFlagHolder>> experimentalKeys; + + public RegistryFieldRewriter(ResourceKey> registryKey, @Nullable String fetchMethod) { + this.registryKey = registryKey; + this.isFilteredRegistry = FeatureElement.FILTERED_REGISTRIES.contains(registryKey); + this.fetchMethod = fetchMethod; + } + + @Override + public boolean registerFor(SourceFile file) { + this.fieldClass = this.options.targetClass().orElse(file.mainClass()); + Preconditions.checkState(this.fieldClass.knownClass() != null, "This rewriter can't run without knowing the field class at runtime!"); + + if (this.fetchMethod != null) { + try { + this.fieldClass.knownClass().getDeclaredMethod(this.fetchMethod, String.class); + } catch (NoSuchMethodException e) { + LOGGER.error("Fetch method not found, skipping the rewriter for registry fields of {}", this.registryKey, e); + return false; + } + } + + return super.registerFor(file); + } + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + boolean isInterface = Objects.requireNonNull(this.fieldClass.knownClass()).isInterface(); + Registry registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey); + this.experimentalKeys = Suppliers.memoize(() -> ExperimentalCollector.collectDataDrivenElementIds(registry)); + Iterator> referenceIterator = registry.listElements().filter(this::canPrintField).sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).iterator(); + + while (referenceIterator.hasNext()) { + Holder.Reference reference = referenceIterator.next(); + + this.rewriteJavadocs(reference, metadata.replacedContent(), metadata.indent(), builder); + + SingleFlagHolder requiredFeature = this.getRequiredFeature(reference); + if (requiredFeature != null) { + Annotations.experimentalAnnotations(builder, metadata.indent(), this.importCollector, requiredFeature); + } + + builder.append(metadata.indent()); + if (!isInterface) { + builder.append("%s %s %s ".formatted(PUBLIC, STATIC, FINAL)); + } + + builder.append(this.rewriteFieldType(reference)).append(' ').append(this.rewriteFieldName(reference)); + builder.append(" = "); + builder.append(this.rewriteFieldValue(reference)); + builder.append(';'); + + builder.append('\n'); + if (referenceIterator.hasNext()) { + builder.append('\n'); + } + } + } + + protected void rewriteJavadocs(Holder.Reference reference, String replacedContent, String indent, StringBuilder builder) { + } + + protected boolean canPrintField(Holder.Reference reference) { + return true; + } + + protected String rewriteFieldType(Holder.Reference reference) { + return this.fieldClass.simpleName(); + } + + protected String rewriteFieldName(Holder.Reference reference) { + return Formatting.formatKeyAsField(reference.key().location().getPath()); + } + + protected String rewriteFieldValue(Holder.Reference reference) { + return "%s(%s)".formatted(this.fetchMethod, quoted(reference.key().location().getPath())); + } + + protected @Nullable SingleFlagHolder getRequiredFeature(Holder.Reference reference) { + if (this.isFilteredRegistry) { + // built-in registry + FeatureElement element = (FeatureElement) reference.value(); + if (FeatureFlags.isExperimental(element.requiredFeatures())) { + return SingleFlagHolder.fromSet(element.requiredFeatures()); + } + } else { + // data-driven registry + return this.experimentalKeys.get().get(reference.key()); + } + return null; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryTagRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryTagRewriter.java new file mode 100644 index 0000000000..0e28a8610b --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/RegistryTagRewriter.java @@ -0,0 +1,92 @@ +package io.papermc.generator.rewriter.types.registry; + +import com.google.common.base.Preconditions; +import com.mojang.logging.LogUtils; +import io.papermc.generator.Main; +import io.papermc.generator.rewriter.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.SourceFile; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Iterator; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.tags.TagKey; +import org.bukkit.Keyed; +import org.bukkit.Tag; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; +import org.slf4j.Logger; + +import static io.papermc.generator.utils.Formatting.quoted; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +@ApiStatus.Obsolete +public class RegistryTagRewriter extends SearchReplaceRewriter { + + private static final Logger LOGGER = LogUtils.getLogger(); + + private final ResourceKey> registryKey; + private final Class apiClass; + private final String fetchMethod = "getTag"; + + public RegistryTagRewriter(ResourceKey> registryKey, Class apiClass) { + this.registryKey = registryKey; + this.apiClass = apiClass; + } + + @Override + public boolean registerFor(SourceFile file) { + ClassNamed holderClass = this.options.targetClass().orElse(file.mainClass()); + Preconditions.checkState(holderClass.knownClass() != null, "This rewriter can't run without knowing the field class at runtime!"); + try { + holderClass.knownClass().getDeclaredMethod(this.fetchMethod, String.class); + } catch (NoSuchMethodException e) { + LOGGER.error("Fetch method not found, skipping the rewriter for registry tag fields of {}", this.registryKey, e); + return false; + } + + return super.registerFor(file); + } + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + Registry registry = Main.REGISTRY_ACCESS.lookupOrThrow(this.registryKey); + Iterator> keyIterator = registry.listTagIds().sorted(Formatting.alphabeticKeyOrder(reference -> reference.location().getPath())).iterator(); + + while (keyIterator.hasNext()) { + TagKey tagKey = keyIterator.next(); + + String featureFlagName = Main.EXPERIMENTAL_TAGS.get(tagKey); + if (featureFlagName != null) { + Annotations.experimentalAnnotations(builder, metadata.indent(), this.importCollector, SingleFlagHolder.fromName(featureFlagName)); + } + + builder.append(metadata.indent()); + builder.append("%s %s %s ".formatted(PUBLIC, STATIC, FINAL)); + + builder.append("%s<%s>".formatted(Tag.class.getSimpleName(), this.apiClass.getSimpleName())).append(' ').append(this.rewriteFieldName(tagKey)); + builder.append(" = "); + builder.append(this.rewriteFieldValue(tagKey)); + builder.append(';'); + + builder.append('\n'); + if (keyIterator.hasNext()) { + builder.append('\n'); + } + } + } + + protected String rewriteFieldName(TagKey tagKey) { + return Formatting.formatKeyAsField(tagKey.location().getPath()); + } + + protected String rewriteFieldValue(TagKey tagKey) { + return "%s(%s)".formatted(this.fetchMethod, quoted(tagKey.location().getPath())); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/TagRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/TagRewriter.java new file mode 100644 index 0000000000..fa553ad7c3 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/registry/TagRewriter.java @@ -0,0 +1,91 @@ +package io.papermc.generator.rewriter.types.registry; + +import io.papermc.generator.Main; +import io.papermc.generator.rewriter.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Iterator; +import java.util.Locale; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.tags.TagKey; +import org.bukkit.Bukkit; +import org.bukkit.Fluid; +import org.bukkit.GameEvent; +import org.bukkit.Keyed; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.EntityType; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; + +import static io.papermc.generator.utils.Formatting.quoted; + +@NullMarked +@ApiStatus.Obsolete +public class TagRewriter extends SearchReplaceRewriter { + + public record TagRegistry(String legacyFolderName, Class apiType, ResourceKey> registryKey) { // TODO remove Keyed + } + + private static final TagRegistry[] SUPPORTED_REGISTRIES = { // 1.21 folder name are normalized to registry key but api will stay as is + new TagRegistry("blocks", Material.class, Registries.BLOCK), + new TagRegistry("items", Material.class, Registries.ITEM), + new TagRegistry("fluids", Fluid.class, Registries.FLUID), + new TagRegistry("entity_types", EntityType.class, Registries.ENTITY_TYPE), + new TagRegistry("game_events", GameEvent.class, Registries.GAME_EVENT) + // new TagRegistry("damage_types", DamageType.class, Registries.DAMAGE_TYPE) - separate in DamageTypeTags + }; + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + for (int i = 0, len = SUPPORTED_REGISTRIES.length; i < len; i++) { + final TagRegistry tagRegistry = SUPPORTED_REGISTRIES[i]; + + final ResourceKey> registryKey = tagRegistry.registryKey(); + final Registry registry = Main.REGISTRY_ACCESS.lookupOrThrow(registryKey); + + final String fieldPrefix = Formatting.formatTagFieldPrefix(tagRegistry.legacyFolderName(), registryKey); + final String registryFieldName = "REGISTRY_" + tagRegistry.legacyFolderName().toUpperCase(Locale.ENGLISH); + + if (i != 0) { + builder.append('\n'); // extra line before the registry field + } + + // registry name field + builder.append(metadata.indent()); + builder.append("%s %s = %s;".formatted(String.class.getSimpleName(), registryFieldName, quoted(tagRegistry.legacyFolderName()))); + + builder.append('\n'); + builder.append('\n'); + + Iterator> keyIterator = registry.listTagIds().sorted(Formatting.alphabeticKeyOrder(tagKey -> tagKey.location().getPath())).iterator(); + + while (keyIterator.hasNext()) { + TagKey tagKey = keyIterator.next(); + final String keyPath = tagKey.location().getPath(); + final String fieldName = fieldPrefix + Formatting.formatKeyAsField(keyPath); + + // tag field + String featureFlagName = Main.EXPERIMENTAL_TAGS.get(tagKey); + if (featureFlagName != null) { + Annotations.experimentalAnnotations(builder, metadata.indent(), this.importCollector, SingleFlagHolder.fromName(featureFlagName)); + } + + builder.append(metadata.indent()); + builder.append("%s<%s>".formatted(this.source.mainClass().simpleName(), this.importCollector.getShortName(tagRegistry.apiType()))).append(' ').append(fieldName); + builder.append(" = "); + builder.append("%s.getTag(%s, %s.minecraft(%s), %s.class)".formatted(Bukkit.class.getSimpleName(), registryFieldName, NamespacedKey.class.getSimpleName(), quoted(keyPath), tagRegistry.apiType().getSimpleName())); // assume type is imported properly + builder.append(';'); + + builder.append('\n'); + if (keyIterator.hasNext()) { + builder.append('\n'); + } + } + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/BlockTypeRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/BlockTypeRewriter.java new file mode 100644 index 0000000000..9a496c75e1 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/BlockTypeRewriter.java @@ -0,0 +1,27 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.typewriter.util.ClassHelper; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.level.block.Block; +import org.bukkit.block.BlockType; +import org.bukkit.block.data.BlockData; + +public class BlockTypeRewriter extends RegistryFieldRewriter { + + public BlockTypeRewriter() { + super(Registries.BLOCK, "getBlockType"); + } + + @Override + protected String rewriteFieldType(Holder.Reference reference) { + Class blockData = BlockStateMapping.getBestSuitedApiClass(reference.value().getClass()); + if (blockData == null) { + blockData = BlockData.class; + } + + return "%s<%s>".formatted(ClassHelper.retrieveFullNestedName(BlockType.Typed.class), this.importCollector.getShortName(blockData)); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockDataMapping.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockDataMapping.java new file mode 100644 index 0000000000..2a090056e0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockDataMapping.java @@ -0,0 +1,19 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.rewriter.types.Types; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Comparator; + +public class CraftBlockDataMapping extends SearchReplaceRewriter { + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + BlockStateMapping.MAPPING.entrySet().stream().sorted(Comparator.comparing(entry -> entry.getKey().getCanonicalName())).forEach(entry -> { + builder.append(metadata.indent()); + builder.append("register(%s.class, %s.block.impl.%s::new);".formatted(entry.getKey().getCanonicalName(), Types.BASE_PACKAGE, entry.getValue().implName())); + builder.append('\n'); + }); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockEntityStateMapping.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockEntityStateMapping.java new file mode 100644 index 0000000000..2fd4d0c69f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftBlockEntityStateMapping.java @@ -0,0 +1,21 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.utils.BlockEntityMapping; +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import net.minecraft.world.level.block.entity.BlockEntityType; + +public class CraftBlockEntityStateMapping extends SearchReplaceRewriter { + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + BlockEntityMapping.MAPPING.entrySet().stream().sorted(Formatting.alphabeticKeyOrder(entry -> entry.getKey().location().getPath())).forEach(entry -> { + builder.append(metadata.indent()); + builder.append("register(%s.%s, %s.class, %s::new);".formatted( + BlockEntityType.class.getSimpleName(), Formatting.formatKeyAsField(entry.getKey().location().getPath()), + entry.getValue(), entry.getValue())); + builder.append('\n'); + }); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftPotionUtilRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftPotionUtilRewriter.java new file mode 100644 index 0000000000..df57fadbc8 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/CraftPotionUtilRewriter.java @@ -0,0 +1,32 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.util.Locale; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import org.bukkit.potion.PotionType; + +@Deprecated(forRemoval = true) +public class CraftPotionUtilRewriter extends SearchReplaceRewriter { + + private final String statePrefix; + + public CraftPotionUtilRewriter(String statePrefix) { + this.statePrefix = statePrefix; + } + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + String upperStatePrefix = this.statePrefix.toUpperCase(Locale.ENGLISH); + BuiltInRegistries.POTION.keySet().stream() + .filter(key -> BuiltInRegistries.POTION.containsKey(key.withPath(path -> this.statePrefix + "_" + path))) + .sorted(Formatting.alphabeticKeyOrder(ResourceLocation::getPath)).forEach(key -> { + String keyedName = Formatting.formatKeyAsField(key.getPath()); + builder.append(metadata.indent()); + builder.append(".put(%s.%s, %s.%s_%s)".formatted(PotionType.class.getSimpleName(), keyedName, PotionType.class.getSimpleName(), upperStatePrefix, keyedName)); + builder.append('\n'); + }); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/EntityTypeRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/EntityTypeRewriter.java new file mode 100644 index 0000000000..19d9c89640 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/EntityTypeRewriter.java @@ -0,0 +1,176 @@ +package io.papermc.generator.rewriter.types.simple; + +import com.google.common.base.CaseFormat; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.rewriter.types.registry.EnumRegistryRewriter; +import io.papermc.generator.types.goal.MobGoalNames; +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.preset.model.EnumValue; +import io.papermc.typewriter.util.ClassResolver; +import it.unimi.dsi.fastutil.objects.Object2IntMap; +import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; +import java.lang.reflect.ParameterizedType; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import net.minecraft.Util; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.Mob; + +import static io.papermc.generator.utils.Formatting.quoted; + +public class EntityTypeRewriter extends EnumRegistryRewriter> { + + private static final Map>, Class> ENTITY_GENERIC_TYPES = + RegistryEntries.byRegistryKey(Registries.ENTITY_TYPE).getFields(field -> { + if (field.getGenericType() instanceof ParameterizedType complexType && complexType.getActualTypeArguments().length == 1) { + return (Class) complexType.getActualTypeArguments()[0]; + } + return null; + }); + + private static final Map CLASS_RENAMES = ImmutableMap.builder() + .put("ExperienceBottle", "ThrownExpBottle") + .put("EyeOfEnder", "EnderSignal") + .put("EndCrystal", "EnderCrystal") + .put("FireworkRocket", "Firework") + .put("FishingBobber", "FishHook") + .put("LeashKnot", "LeashHitch") + .put("LightningBolt", "LightningStrike") + .put("Potion", "ThrownPotion") + .put("Tnt", "TNTPrimed") + .put("ChestMinecart", "StorageMinecart") + .put("CommandBlockMinecart", "CommandMinecart") + .put("TntMinecart", "ExplosiveMinecart") + .put("FurnaceMinecart", "PoweredMinecart") + .buildOrThrow(); + + @Deprecated + private static final Object2IntMap> LEGACY_ID = Util.make(new Object2IntOpenHashMap<>(), map -> { + map.put(EntityType.ITEM, 1); + map.put(EntityType.EXPERIENCE_ORB, 2); + map.put(EntityType.AREA_EFFECT_CLOUD, 3); + map.put(EntityType.ELDER_GUARDIAN, 4); + map.put(EntityType.WITHER_SKELETON, 5); + map.put(EntityType.STRAY, 6); + map.put(EntityType.EGG, 7); + map.put(EntityType.LEASH_KNOT, 8); + map.put(EntityType.PAINTING, 9); + map.put(EntityType.ARROW, 10); + map.put(EntityType.SNOWBALL, 11); + map.put(EntityType.FIREBALL, 12); + map.put(EntityType.SMALL_FIREBALL, 13); + map.put(EntityType.ENDER_PEARL, 14); + map.put(EntityType.EYE_OF_ENDER, 15); + map.put(EntityType.POTION, 16); + map.put(EntityType.EXPERIENCE_BOTTLE, 17); + map.put(EntityType.ITEM_FRAME, 18); + map.put(EntityType.WITHER_SKULL, 19); + map.put(EntityType.TNT, 20); + map.put(EntityType.FALLING_BLOCK, 21); + map.put(EntityType.FIREWORK_ROCKET, 22); + map.put(EntityType.HUSK, 23); + map.put(EntityType.SPECTRAL_ARROW, 24); + map.put(EntityType.SHULKER_BULLET, 25); + map.put(EntityType.DRAGON_FIREBALL, 26); + map.put(EntityType.ZOMBIE_VILLAGER, 27); + map.put(EntityType.SKELETON_HORSE, 28); + map.put(EntityType.ZOMBIE_HORSE, 29); + map.put(EntityType.ARMOR_STAND, 30); + map.put(EntityType.DONKEY, 31); + map.put(EntityType.MULE, 32); + map.put(EntityType.EVOKER_FANGS, 33); + map.put(EntityType.EVOKER, 34); + map.put(EntityType.VEX, 35); + map.put(EntityType.VINDICATOR, 36); + map.put(EntityType.ILLUSIONER, 37); + + map.put(EntityType.COMMAND_BLOCK_MINECART, 40); + map.put(EntityType.MINECART, 42); + map.put(EntityType.CHEST_MINECART, 43); + map.put(EntityType.FURNACE_MINECART, 44); + map.put(EntityType.TNT_MINECART, 45); + map.put(EntityType.HOPPER_MINECART, 46); + map.put(EntityType.SPAWNER_MINECART, 47); + + map.put(EntityType.CREEPER, 50); + map.put(EntityType.SKELETON, 51); + map.put(EntityType.SPIDER, 52); + map.put(EntityType.GIANT, 53); + map.put(EntityType.ZOMBIE, 54); + map.put(EntityType.SLIME, 55); + map.put(EntityType.GHAST, 56); + map.put(EntityType.ZOMBIFIED_PIGLIN, 57); + map.put(EntityType.ENDERMAN, 58); + map.put(EntityType.CAVE_SPIDER, 59); + map.put(EntityType.SILVERFISH, 60); + map.put(EntityType.BLAZE, 61); + map.put(EntityType.MAGMA_CUBE, 62); + map.put(EntityType.ENDER_DRAGON, 63); + map.put(EntityType.WITHER, 64); + map.put(EntityType.BAT, 65); + map.put(EntityType.WITCH, 66); + map.put(EntityType.ENDERMITE, 67); + map.put(EntityType.GUARDIAN, 68); + map.put(EntityType.SHULKER, 69); + + map.put(EntityType.PIG, 90); + map.put(EntityType.SHEEP, 91); + map.put(EntityType.COW, 92); + map.put(EntityType.CHICKEN, 93); + map.put(EntityType.SQUID, 94); + map.put(EntityType.WOLF, 95); + map.put(EntityType.MOOSHROOM, 96); + map.put(EntityType.SNOW_GOLEM, 97); + map.put(EntityType.OCELOT, 98); + map.put(EntityType.IRON_GOLEM, 99); + map.put(EntityType.HORSE, 100); + map.put(EntityType.RABBIT, 101); + map.put(EntityType.POLAR_BEAR, 102); + map.put(EntityType.LLAMA, 103); + map.put(EntityType.LLAMA_SPIT, 104); + map.put(EntityType.PARROT, 105); + + map.put(EntityType.VILLAGER, 120); + + map.put(EntityType.END_CRYSTAL, 200); + }); + + private static final ClassResolver runtime = new ClassResolver(EntityTypeRewriter.class.getClassLoader()); + + public EntityTypeRewriter() { + super(Registries.ENTITY_TYPE, false); + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference> reference) { + String path = reference.key().location().getPath(); + List arguments = new ArrayList<>(4); + arguments.add(quoted(path)); + arguments.add(toBukkitClass(reference).concat(".class")); + arguments.add(Integer.toString(LEGACY_ID.getOrDefault(reference.value(), -1))); + + if (!reference.value().canSummon()) { + arguments.add(Boolean.FALSE.toString()); + } + return super.rewriteEnumValue(reference).arguments(arguments); + } + + private String toBukkitClass(Holder.Reference> reference) { + Class internalClass = ENTITY_GENERIC_TYPES.get(reference.key()); + if (Mob.class.isAssignableFrom(internalClass)) { + return this.importCollector.getShortName(MobGoalNames.bukkitMap.get((Class) internalClass)); + } + + String className = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, reference.key().location().getPath()); // use the key instead of the internal class name since name match a bit more + ClassNamed resolvedClass = this.classNamedView.findFirst(CLASS_RENAMES.getOrDefault(className, className)).resolve(runtime); + Preconditions.checkArgument(org.bukkit.entity.Entity.class.isAssignableFrom(resolvedClass.knownClass()), "Generic type must be an entity"); + return this.importCollector.getShortName(this.classNamedView.findFirst(CLASS_RENAMES.getOrDefault(className, className)).resolve(runtime)); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/ItemTypeRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/ItemTypeRewriter.java new file mode 100644 index 0000000000..232cf52237 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/ItemTypeRewriter.java @@ -0,0 +1,27 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.typewriter.util.ClassHelper; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import org.bukkit.inventory.ItemType; +import org.bukkit.inventory.meta.ItemMeta; + +@Deprecated // bad generic +public class ItemTypeRewriter extends RegistryFieldRewriter { + + public ItemTypeRewriter() { + super(Registries.ITEM, "getItemType"); + } + + @Override + protected String rewriteFieldType(Holder.Reference reference) { + if (reference.value().equals(Items.AIR)) { + return super.rewriteFieldType(reference); + } + + return "%s<%s>".formatted(ClassHelper.retrieveFullNestedName(ItemType.Typed.class), ItemMeta.class.getSimpleName()); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MapPaletteRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MapPaletteRewriter.java new file mode 100644 index 0000000000..18f4902389 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MapPaletteRewriter.java @@ -0,0 +1,41 @@ +package io.papermc.generator.rewriter.types.simple; + +import com.mojang.logging.LogUtils; +import io.papermc.typewriter.replace.SearchMetadata; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import java.awt.Color; +import net.minecraft.world.level.material.MapColor; +import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; + +public class MapPaletteRewriter extends SearchReplaceRewriter { + + private static final Logger LOGGER = LogUtils.getLogger(); + private static final boolean UPDATING = Boolean.getBoolean("paper.updatingMinecraft"); + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + int count = 0; + for (@Nullable MapColor mapColor : MapColor.MATERIAL_COLORS) { + if (mapColor == null) { + continue; + } + + for (MapColor.Brightness brightness : MapColor.Brightness.values()) { + builder.append(metadata.indent()); + Color color = new Color(mapColor.calculateARGBColor(brightness), true); + if (color.getAlpha() != 0xFF) { + builder.append("new %s(0x%08X, true),".formatted(color.getClass().getSimpleName(), color.getRGB())); + } else { + builder.append("new %s(0x%06X),".formatted(color.getClass().getSimpleName(), color.getRGB() & 0x00FFFFFF)); + } + builder.append('\n'); + count++; + } + } + + if (UPDATING) { + LOGGER.warn("There are {} map colors, check CraftMapView#render for possible change and update md5 hash in CraftMapColorCache", count); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MaterialRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MaterialRewriter.java new file mode 100644 index 0000000000..1380f9f248 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MaterialRewriter.java @@ -0,0 +1,111 @@ +package io.papermc.generator.rewriter.types.simple; + +import io.papermc.generator.rewriter.types.registry.EnumRegistryRewriter; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.preset.model.EnumValue; +import java.util.Optional; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.WallSignBlock; +import org.bukkit.block.data.BlockData; + +import static io.papermc.generator.utils.Formatting.asCode; + +@Deprecated(forRemoval = true) +public class MaterialRewriter { + + // blocks + + public static class Blocks extends EnumRegistryRewriter { + + public Blocks() { + super(Registries.BLOCK, false); + } + + @Override + protected Iterable> getValues() { + return BuiltInRegistries.BLOCK.listElements().filter(reference -> !reference.value().equals(net.minecraft.world.level.block.Blocks.AIR)) + .sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath()))::iterator; + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference reference) { + EnumValue.Builder value = super.rewriteEnumValue(reference); + Block block = reference.value(); + if (BlockStateMapping.MAPPING.containsKey(block.getClass())) { + // some block can also be represented as item in that enum + // doing a double job + Optional equivalentItem = BuiltInRegistries.ITEM.getOptional(reference.key().location()); + + if (equivalentItem.isEmpty() && block instanceof WallSignBlock) { + // wall sign block stack size is 16 for some reason like the sign item? + // but that rule doesn't work for the wall hanging sign block?? + equivalentItem = Optional.of(block.asItem()); + } + + Class blockData = BlockStateMapping.getBestSuitedApiClass(block.getClass()); + if (blockData == null) { + blockData = BlockData.class; + } + if (equivalentItem.isPresent() && equivalentItem.get().getDefaultMaxStackSize() != Item.DEFAULT_MAX_STACK_SIZE) { + return value.arguments(Integer.toString(-1), Integer.toString(equivalentItem.get().getDefaultMaxStackSize()), this.importCollector.getShortName(blockData).concat(".class")); + } + return value.arguments(Integer.toString(-1), this.importCollector.getShortName(blockData).concat(".class")); + } + return value.argument(Integer.toString(-1)); // id not needed for non legacy material + } + } + + /* todo test is broken + public static class IsTransparent extends SwitchCaseRewriter { + + public IsTransparent() { + super(false); + } + + @Override + protected Iterable getCases() { + return BuiltInRegistries.BLOCK.holders().filter(reference -> reference.value().defaultBlockState().useShapeForLightOcclusion()) + .map(reference -> reference.key().location().getPath().toUpperCase(Locale.ENGLISH)).sorted(Formatting.ALPHABETIC_KEY_ORDER)::iterator; + } + }*/ + + // items + + public static class Items extends EnumRegistryRewriter { + + public Items() { + super(Registries.ITEM, false); + } + + @Override + protected Iterable> getValues() { + return BuiltInRegistries.ITEM.listElements().filter(reference -> BuiltInRegistries.BLOCK.getOptional(reference.key().location()).isEmpty() || reference.value().equals(net.minecraft.world.item.Items.AIR)) + .sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath()))::iterator; + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference reference) { + EnumValue.Builder value = super.rewriteEnumValue(reference); + Item item = reference.value(); + int maxStackSize = item.getDefaultMaxStackSize(); + int maxDamage = item.components().getOrDefault(DataComponents.MAX_DAMAGE, 0); + + if (maxStackSize != Item.DEFAULT_MAX_STACK_SIZE) { + if (maxDamage != 0) { + value.arguments(asCode(-1, maxStackSize, maxDamage)); + } else { + value.arguments(asCode(-1, maxStackSize)); + } + return value; + } + + return value.argument(Integer.toString(-1)); // id not needed for non legacy material + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MemoryKeyRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MemoryKeyRewriter.java new file mode 100644 index 0000000000..08e321aabd --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/MemoryKeyRewriter.java @@ -0,0 +1,116 @@ +package io.papermc.generator.rewriter.types.simple; + +import com.google.gson.internal.Primitives; +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.generator.utils.ClassHelper; +import java.lang.reflect.ParameterizedType; +import java.util.Map; +import java.util.Set; +import net.minecraft.core.BlockPos; +import net.minecraft.core.GlobalPos; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.util.Unit; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.ai.behavior.PositionTracker; +import net.minecraft.world.entity.ai.memory.MemoryModuleType; +import net.minecraft.world.entity.ai.memory.NearestVisibleLivingEntities; +import net.minecraft.world.entity.ai.memory.WalkTarget; +import net.minecraft.world.level.pathfinder.Path; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +import static io.papermc.generator.utils.Formatting.quoted; + +@Deprecated +public class MemoryKeyRewriter extends RegistryFieldRewriter> { + + private static final Map>, Class> MEMORY_GENERIC_TYPES = RegistryEntries.byRegistryKey(Registries.MEMORY_MODULE_TYPE).getFields(field -> { + if (field.getGenericType() instanceof ParameterizedType complexType && complexType.getActualTypeArguments().length == 1) { + return ClassHelper.eraseType(complexType.getActualTypeArguments()[0]); + } + return null; + }); + + public MemoryKeyRewriter() { + super(Registries.MEMORY_MODULE_TYPE, null); + } + + // this api is not implemented and is not backed by a proper registry + private static final Set> IGNORED_TYPES = Set.of( + NearestVisibleLivingEntities.class, + WalkTarget.class, + PositionTracker.class, + Path.class, + DamageSource.class, + Vec3.class, + BlockPos.class, + Unit.class, + Void.class + ); + + private static final Set> IGNORED_SUB_TYPES = Set.of( + Iterable.class, + Map.class, + Entity.class + ); + + private static final Map, Class> API_BRIDGE = Map.of( + GlobalPos.class, Location.class + ); + + private static final Map FIELD_RENAMES = Map.of( + "LIKED_NOTEBLOCK", "LIKED_NOTEBLOCK_POSITION" + ); + + @Override + protected boolean canPrintField(Holder.Reference> reference) { + Class memoryType = MEMORY_GENERIC_TYPES.get(reference.key()); + if (IGNORED_TYPES.contains(memoryType)) { + return false; + } + for (Class subType : IGNORED_SUB_TYPES) { + if (subType.isAssignableFrom(memoryType)) { + return false; + } + } + + return true; + } + + private @MonotonicNonNull Class apiMemoryType; + + @Override + protected String rewriteFieldType(Holder.Reference> reference) { + Class memoryType = MEMORY_GENERIC_TYPES.get(reference.key()); + + if (!Primitives.isWrapperType(memoryType) && API_BRIDGE.containsKey(memoryType)) { + this.apiMemoryType = API_BRIDGE.get(memoryType); + } else { + this.apiMemoryType = memoryType; + } + + return "%s<%s>".formatted(this.fieldClass.simpleName(), this.importCollector.getShortName(this.apiMemoryType)); + } + + @Override + protected String rewriteFieldName(Holder.Reference> reference) { + String keyedName = super.rewriteFieldName(reference); + return FIELD_RENAMES.getOrDefault(keyedName, keyedName); + } + + @Override + protected String rewriteFieldValue(Holder.Reference> reference) { + return "new %s<>(%s.minecraft(%s), %s.class)".formatted( + this.fieldClass.simpleName(), + NamespacedKey.class.getSimpleName(), + quoted(reference.key().location().getPath()), + this.apiMemoryType.getSimpleName() // assume the type is already import (see above in rewriteFieldType) + ); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/StatisticRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/StatisticRewriter.java new file mode 100644 index 0000000000..fe67513b1b --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/StatisticRewriter.java @@ -0,0 +1,170 @@ +package io.papermc.generator.rewriter.types.simple; + +import com.google.common.collect.ImmutableMap; +import io.papermc.generator.rewriter.types.registry.EnumRegistryRewriter; +import io.papermc.generator.utils.ClassHelper; +import io.papermc.generator.utils.Formatting; +import io.papermc.typewriter.preset.model.EnumValue; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.stats.StatType; +import net.minecraft.stats.Stats; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import org.bukkit.Statistic; + +import static io.papermc.generator.utils.Formatting.quoted; + +@Deprecated(forRemoval = true) +public class StatisticRewriter { + + private static final Map FIELD_RENAMES = ImmutableMap.builder() + .put("DROP", "DROP_COUNT") + .put("DROPPED", "DROP") + .put("PICKED_UP", "PICKUP") + .put("PLAY_TIME", "PLAY_ONE_MINUTE") + .put("CROUCH_TIME", "SNEAK_TIME") + .put("MINED", "MINE_BLOCK") + .put("USED", "USE_ITEM") + .put("BROKEN", "BREAK_ITEM") + .put("CRAFTED", "CRAFT_ITEM") + .put("KILLED", "KILL_ENTITY") + .put("KILLED_BY", "ENTITY_KILLED_BY") + .put("EAT_CAKE_SLICE", "CAKE_SLICES_EATEN") + .put("FILL_CAULDRON", "CAULDRON_FILLED") + .put("USE_CAULDRON", "CAULDRON_USED") + .put("CLEAN_ARMOR", "ARMOR_CLEANED") + .put("CLEAN_BANNER", "BANNER_CLEANED") + .put("INTERACT_WITH_BREWINGSTAND", "BREWINGSTAND_INTERACTION") + .put("INTERACT_WITH_BEACON", "BEACON_INTERACTION") + .put("INSPECT_DROPPER", "DROPPER_INSPECTED") + .put("INSPECT_HOPPER", "HOPPER_INSPECTED") + .put("INSPECT_DISPENSER", "DISPENSER_INSPECTED") + .put("PLAY_NOTEBLOCK", "NOTEBLOCK_PLAYED") + .put("TUNE_NOTEBLOCK", "NOTEBLOCK_TUNED") + .put("POT_FLOWER", "FLOWER_POTTED") + .put("TRIGGER_TRAPPED_CHEST", "TRAPPED_CHEST_TRIGGERED") + .put("OPEN_ENDERCHEST", "ENDERCHEST_OPENED") + .put("ENCHANT_ITEM", "ITEM_ENCHANTED") + .put("PLAY_RECORD", "RECORD_PLAYED") + .put("INTERACT_WITH_FURNACE", "FURNACE_INTERACTION") + .put("INTERACT_WITH_CRAFTING_TABLE", "CRAFTING_TABLE_INTERACTION") + .put("OPEN_CHEST", "CHEST_OPENED") + .put("OPEN_SHULKER_BOX", "SHULKER_BOX_OPENED") + .buildOrThrow(); + + public static class Custom extends EnumRegistryRewriter { + + public Custom() { + super(Registries.CUSTOM_STAT, false); + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference reference) { + return super.rewriteEnumValue(reference).rename(name -> FIELD_RENAMES.getOrDefault(name, name)); + } + } + + public static class CraftCustom extends EnumRegistryRewriter { + + private static final Map INTERNAL_FIELD_RENAMES = Map.of( + "SNEAK_TIME", "CROUCH_TIME" + ); + + public CraftCustom() { + super(Registries.CUSTOM_STAT, false); + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference reference) { + String keyedName = Formatting.formatKeyAsField(reference.key().location().getPath()); + + return super.rewriteEnumValue(reference) + .rename(name -> FIELD_RENAMES.getOrDefault(name, name)) + .argument("%s.%s".formatted(Stats.class.getSimpleName(), INTERNAL_FIELD_RENAMES.getOrDefault(keyedName, keyedName))); + } + } + + public static class Type extends EnumRegistryRewriter> { + + private static final Map, String> TYPE_MAPPING = Map.of( + Item.class, "ITEM", + Block.class, "BLOCK", + EntityType.class, "ENTITY" + ); + + private static final Map, Class> FIELD_GENERIC_TYPE; + + static { + final Map, Class> map = new IdentityHashMap<>(); + + try { + for (Field field : Stats.class.getDeclaredFields()) { + if (field.getType() != StatType.class) { + continue; + } + + if (ClassHelper.isStaticConstant(field, Modifier.PUBLIC)) { + java.lang.reflect.Type genericType = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; + map.put((StatType) field.get(null), ClassHelper.eraseType(genericType)); + } + } + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + FIELD_GENERIC_TYPE = Collections.unmodifiableMap(map); + } + + public Type() { + super(Registries.STAT_TYPE, false); + } + + @Override + protected Iterable>> getValues() { + return BuiltInRegistries.STAT_TYPE.listElements().filter(reference -> reference.value() != Stats.CUSTOM) + .sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath()))::iterator; + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference> reference) { + Class genericType = FIELD_GENERIC_TYPE.get(reference.value()); + if (!TYPE_MAPPING.containsKey(genericType)) { + throw new IllegalStateException("Unable to translate stat type generic " + genericType.getCanonicalName() + " into the api!"); + } + + return super.rewriteEnumValue(reference) + .rename(name -> FIELD_RENAMES.getOrDefault(name, name)) + .argument("%s.%s".formatted(Statistic.Type.class.getSimpleName(), TYPE_MAPPING.get(genericType))); // find a more direct way? + + } + } + + public static class CraftType extends EnumRegistryRewriter> { + + public CraftType() { + super(Registries.STAT_TYPE, false); + } + + @Override + protected Iterable>> getValues() { + return BuiltInRegistries.STAT_TYPE.listElements().filter(reference -> reference.value() != Stats.CUSTOM) + .sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath()))::iterator; + } + + @Override + protected EnumValue.Builder rewriteEnumValue(Holder.Reference> reference) { + return super.rewriteEnumValue(reference) + .rename(name -> FIELD_RENAMES.getOrDefault(name, name)) + .argument("%s.withDefaultNamespace(%s)".formatted(ResourceLocation.class.getSimpleName(), quoted(reference.key().location().getPath()))); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/package-info.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/package-info.java new file mode 100644 index 0000000000..fbb169e219 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/package-info.java @@ -0,0 +1,4 @@ +@NullMarked +package io.papermc.generator.rewriter.types.simple; + +import org.jspecify.annotations.NullMarked; diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/DataComponentTypesRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/DataComponentTypesRewriter.java new file mode 100644 index 0000000000..4a1f3fab4c --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/DataComponentTypesRewriter.java @@ -0,0 +1,261 @@ +package io.papermc.generator.rewriter.types.simple.trial; + +import com.google.gson.internal.Primitives; +import com.mojang.serialization.Codec; +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.generator.utils.ClassHelper; +import io.papermc.paper.datacomponent.item.BlockItemDataProperties; +import io.papermc.paper.datacomponent.item.ItemAdventurePredicate; +import io.papermc.paper.datacomponent.item.ItemArmorTrim; +import io.papermc.typewriter.ClassNamed; +import io.papermc.typewriter.parser.Lexer; +import io.papermc.typewriter.parser.sequence.SequenceTokens; +import io.papermc.typewriter.parser.sequence.TokenTaskBuilder; +import io.papermc.typewriter.parser.token.CharSequenceBlockToken; +import io.papermc.typewriter.parser.token.CharSequenceToken; +import io.papermc.typewriter.parser.token.TokenType; +import io.papermc.typewriter.replace.SearchMetadata; +import java.lang.annotation.Annotation; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.function.Predicate; +import java.util.function.UnaryOperator; +import net.kyori.adventure.key.Key; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.util.Unit; +import net.minecraft.world.item.AdventureModePredicate; +import net.minecraft.world.item.Instrument; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.component.BlockItemStateProperties; +import net.minecraft.world.item.component.FireworkExplosion; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.equipment.trim.ArmorTrim; +import org.bukkit.FireworkEffect; +import org.bukkit.MusicInstrument; +import org.bukkit.inventory.ItemRarity; +import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.index.qual.Positive; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.jspecify.annotations.Nullable; + +import static io.papermc.generator.utils.Formatting.quoted; + +public class DataComponentTypesRewriter extends RegistryFieldRewriter> { + + public DataComponentTypesRewriter() { + super(Registries.DATA_COMPONENT_TYPE, null); + } + + private static final Set FORMAT_TOKENS = EnumSet.of( + TokenType.COMMENT, + TokenType.SINGLE_COMMENT + ); + + private @MonotonicNonNull Map javadocsPerConstant; + + private Map parseConstantJavadocs(String content) { + Map map = new HashMap<>(); + + Lexer lex = new Lexer(content.toCharArray()); + lex.checkMarkdownDocComments = !this.sourcesMetadata.canSkipMarkdownDocComments(); + SequenceTokens.wrap(lex, FORMAT_TOKENS) + .group(action -> { + ProtoConstant constant = new ProtoConstant(); + action + .map(TokenType.JAVADOC, token -> { + constant.javadocs(((CharSequenceBlockToken) token)); + }, TokenTaskBuilder::asOptional) + .skip(TokenType.PUBLIC).skip(TokenType.STATIC).skip(TokenType.FINAL) + .skipQualifiedName(Predicate.isEqual(TokenType.JAVADOC)) + .skipClosure(TokenType.LT, TokenType.GT, true, TokenTaskBuilder::asOptional) // skip generic + .map(TokenType.IDENTIFIER, token -> { + constant.name(((CharSequenceToken) token).value()); + }) + .skip(TokenType.IDENTIFIER) + .skipClosure(TokenType.LPAREN, TokenType.RPAREN, true) + .map(TokenType.SECO, $ -> { + if (constant.isComplete()) { + map.put(constant.name(), constant.javadocs()); + } + }); + }, TokenTaskBuilder::asRepeatable) + .executeOrThrow(); + + return map; + } + + private static final Set> UNSUPPORTED_TYPES = Set.of( + DataComponents.CUSTOM_DATA, + DataComponents.CREATIVE_SLOT_LOCK, + DataComponents.DEBUG_STICK_STATE, + DataComponents.ENTITY_DATA, + DataComponents.BUCKET_ENTITY_DATA, + DataComponents.BLOCK_ENTITY_DATA, + DataComponents.BEES, + DataComponents.LOCK + ); + + private static final Map>, Type> COMPONENT_GENERIC_TYPES = RegistryEntries.byRegistryKey(Registries.DATA_COMPONENT_TYPE).getFields(field -> { + if (field.getGenericType() instanceof ParameterizedType complexType && complexType.getActualTypeArguments().length == 1) { + return complexType.getActualTypeArguments()[0]; + } + return null; + }); + + private static final Map, Class> API_BRIDGE = Map.of( + Component.class, net.kyori.adventure.text.Component.class, + ResourceLocation.class, Key.class, + Instrument.class, MusicInstrument.class, + FireworkExplosion.class, FireworkEffect.class, + Rarity.class, ItemRarity.class, + ArmorTrim.class, ItemArmorTrim.class, + // renames + BlockItemStateProperties.class, BlockItemDataProperties.class, + AdventureModePredicate.class, ItemAdventurePredicate.class + ); + + @Deprecated + private static final Map FIELD_RENAMES = Map.of( + "BLOCK_STATE", "BLOCK_DATA" + ); + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + this.javadocsPerConstant = parseConstantJavadocs(metadata.replacedContent()); + super.insert(metadata, builder); + } + + @Override + protected boolean canPrintField(Holder.Reference> reference) { + return !UNSUPPORTED_TYPES.contains(reference.value()); + } + + @Override + protected void rewriteJavadocs(Holder.Reference> reference, String replacedContent, String indent, StringBuilder builder) { + String constantName = this.rewriteFieldName(reference); + if (this.javadocsPerConstant.containsKey(constantName)) { + CharSequenceBlockToken token = this.javadocsPerConstant.get(constantName); + builder.append(indent).append(replacedContent, token.pos(), token.endPos()).append('\n'); + } + } + + private boolean isValued; + + private Class handleParameterizedType(Type type) { + if (type instanceof ParameterizedType complexType) { + Type[] args = complexType.getActualTypeArguments(); + if (args.length != 1) { + throw new UnsupportedOperationException("Unsupported type " + complexType); + } + + Class baseClass = ClassHelper.eraseType(complexType); + if (baseClass == Holder.class) { + return ClassHelper.eraseType(args[0]); + } + if (baseClass == ResourceKey.class) { + Class componentClass = ClassHelper.eraseType(args[0]); + if (componentClass == Recipe.class) { + return ResourceLocation.class; // special case recipe registry is not really a thing + } + } + } + + throw new UnsupportedOperationException("Unsupported type " + type); + } + + @Override + protected String rewriteFieldType(Holder.Reference> reference) { + Type componentType = COMPONENT_GENERIC_TYPES.get(reference.key()); + this.isValued = componentType != Unit.class; + if (this.isValued) { + Class componentClass = null; + UnaryOperator tryToWrap = UnaryOperator.identity(); + if (!reference.value().isTransient()) { + final Class annotation = getEquivalentAnnotation(reference.value().codecOrThrow()); + if (annotation != null) { + tryToWrap = value -> "@%s %s".formatted(this.importCollector.getShortName(annotation), value); + } + } + + if (componentType instanceof Class clazz) { + componentClass = clazz; + } else if (componentType instanceof ParameterizedType complexType) { + Type[] args = complexType.getActualTypeArguments(); + if (args.length != 1) { + throw new UnsupportedOperationException("Unsupported type " + componentType); + } + + Class baseClass = ClassHelper.eraseType(complexType); + if (baseClass == List.class) { + tryToWrap = value -> "%s<%s>".formatted(this.importCollector.getShortName(List.class), value); + componentClass = this.handleParameterizedType(args[0]); + } else { + componentClass = this.handleParameterizedType(complexType); + } + } + + if (componentClass == null) { + throw new UnsupportedOperationException("Unsupported type " + componentType); + } + + Class apiComponentClass = null; + if (Primitives.isWrapperType(componentClass)) { + apiComponentClass = componentClass; + } else if (API_BRIDGE.containsKey(componentClass)) { + apiComponentClass = API_BRIDGE.get(componentClass); + } + + final ClassNamed finalClass; + if (apiComponentClass == null) { + finalClass = this.classNamedView.tryFindFirst(io.papermc.typewriter.util.ClassHelper.retrieveFullNestedName(componentClass)).orElse(null); + } else { + finalClass = new ClassNamed(apiComponentClass); + } + return "%s.%s<%s>".formatted( + io.papermc.paper.datacomponent.DataComponentType.class.getSimpleName(), + io.papermc.paper.datacomponent.DataComponentType.Valued.class.getSimpleName(), + tryToWrap.apply(Optional.ofNullable(finalClass).map(this.importCollector::getShortName).orElse(componentClass.getSimpleName())) + ); + } else { + return "%s.%s".formatted( + io.papermc.paper.datacomponent.DataComponentType.class.getSimpleName(), + io.papermc.paper.datacomponent.DataComponentType.NonValued.class.getSimpleName() + ); + } + } + + private @Nullable Class getEquivalentAnnotation(Codec codec) { + Class annotation = null; // int range maybe? + if (codec == ExtraCodecs.POSITIVE_INT || codec == ExtraCodecs.POSITIVE_FLOAT) { + annotation = Positive.class; + } else if (codec == ExtraCodecs.NON_NEGATIVE_INT || codec == ExtraCodecs.NON_NEGATIVE_FLOAT) { + annotation = NonNegative.class; + } + return annotation; + } + + @Override + protected String rewriteFieldName(Holder.Reference> reference) { + String keyedName = super.rewriteFieldName(reference); + return FIELD_RENAMES.getOrDefault(keyedName, keyedName); + } + + @Override + protected String rewriteFieldValue(Holder.Reference> reference) { + return "%s(%s)".formatted(this.isValued ? "valued" : "unvalued", quoted(reference.key().location().getPath())); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/ProtoConstant.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/ProtoConstant.java new file mode 100644 index 0000000000..c370f0c81d --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/ProtoConstant.java @@ -0,0 +1,30 @@ +package io.papermc.generator.rewriter.types.simple.trial; + +import io.papermc.typewriter.parser.token.CharSequenceBlockToken; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +class ProtoConstant { + + private @MonotonicNonNull String name; + private @MonotonicNonNull CharSequenceBlockToken token; + + public void name(String name) { + this.name = name; + } + + public void javadocs(CharSequenceBlockToken token) { + this.token = token; + } + + public String name() { + return this.name; + } + + public CharSequenceBlockToken javadocs() { + return this.token; + } + + public boolean isComplete() { + return this.name != null && this.token != null; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/VillagerProfessionRewriter.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/VillagerProfessionRewriter.java new file mode 100644 index 0000000000..52884792aa --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/VillagerProfessionRewriter.java @@ -0,0 +1,101 @@ +package io.papermc.generator.rewriter.types.simple.trial; + +import io.papermc.generator.rewriter.types.registry.RegistryFieldRewriter; +import io.papermc.typewriter.parser.Lexer; +import io.papermc.typewriter.parser.sequence.SequenceTokens; +import io.papermc.typewriter.parser.sequence.TokenTaskBuilder; +import io.papermc.typewriter.parser.token.CharSequenceBlockToken; +import io.papermc.typewriter.parser.token.CharSequenceToken; +import io.papermc.typewriter.parser.token.TokenType; +import io.papermc.typewriter.replace.SearchMetadata; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; +import java.util.function.Predicate; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.entity.npc.VillagerProfession; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +public class VillagerProfessionRewriter extends RegistryFieldRewriter { + + public VillagerProfessionRewriter() { + super(Registries.VILLAGER_PROFESSION, "getProfession"); + } + + private static final Set FORMAT_TOKENS = EnumSet.of( + TokenType.COMMENT, + TokenType.SINGLE_COMMENT + ); + + private @MonotonicNonNull Map javadocsPerConstant; + + private Map parseConstantJavadocs(String content) { + Map map = new HashMap<>(); + + Lexer lex = new Lexer(content.toCharArray()); + lex.checkMarkdownDocComments = !this.sourcesMetadata.canSkipMarkdownDocComments(); + SequenceTokens.wrap(lex, FORMAT_TOKENS) + .group(action -> { + ProtoConstant constant = new ProtoConstant(); + action + .map(TokenType.JAVADOC, token -> { + constant.javadocs(((CharSequenceBlockToken) token)); + }, TokenTaskBuilder::asOptional) + .skipQualifiedName(Predicate.isEqual(TokenType.JAVADOC)) + .map(TokenType.IDENTIFIER, token -> { + constant.name(((CharSequenceToken) token).value()); + }) + .skip(TokenType.IDENTIFIER) + .skipClosure(TokenType.LPAREN, TokenType.RPAREN, true) + .map(TokenType.SECO, $ -> { + if (constant.isComplete()) { + map.put(constant.name(), constant.javadocs()); + } + }); + }, TokenTaskBuilder::asRepeatable) + .executeOrThrow(); + /* + for enums: + Set endMarkers = Set.of(TokenType.CO, TokenType.SECO); // move to static + SequenceTokens.wrap(lex, FORMAT_TOKENS) + .group(action -> { + ProtoConstant constant = new ProtoConstant(); + action + .map(TokenType.JAVADOC, token -> { + constant.javadocs(((CharSequenceBlockToken) token).value()); + }, TokenTaskBuilder::asOptional) + .map(TokenType.IDENTIFIER, token -> { + constant.name(((CharSequenceToken) token).value()); + }) + .skipClosure(TokenType.LPAREN, TokenType.RPAREN, true) + .skipClosure(TokenType.LSCOPE, TokenType.RSCOPE, true) + .map(endMarkers::contains, $ -> { + // this part will probably fail for the last entry for enum without end (,;) + if (constant.isComplete()) { + map.put(constant.name(), constant.javadocs()); + } + }); + }, TokenTaskBuilder::asRepeatable) + .executeOrThrow(); + */ + + return map; + } + + @Override + protected void insert(SearchMetadata metadata, StringBuilder builder) { + this.javadocsPerConstant = parseConstantJavadocs(metadata.replacedContent()); + super.insert(metadata, builder); + } + + @Override + protected void rewriteJavadocs(Holder.Reference reference, String replacedContent, String indent, StringBuilder builder) { + String constantName = this.rewriteFieldName(reference); + if (this.javadocsPerConstant.containsKey(constantName)) { + CharSequenceBlockToken token = this.javadocsPerConstant.get(constantName); + builder.append(indent).append(replacedContent, token.pos(), token.endPos()).append('\n'); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/package-info.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/package-info.java new file mode 100644 index 0000000000..7f71a4035f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/types/simple/trial/package-info.java @@ -0,0 +1,6 @@ +@ApiStatus.Experimental +@NullMarked +package io.papermc.generator.rewriter.types.simple.trial; + +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/Annotations.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/Annotations.java new file mode 100644 index 0000000000..a2e58656e0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/Annotations.java @@ -0,0 +1,48 @@ +package io.papermc.generator.rewriter.utils; + +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.typewriter.context.ImportCollector; +import io.papermc.typewriter.util.ClassHelper; +import java.lang.annotation.Annotation; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Annotations { + + public static String annotation(Class clazz, ImportCollector collector) { + return "@%s".formatted(collector.getShortName(clazz)); + } + + public static String annotationStyle(Class clazz) { + return "@%s".formatted(ClassHelper.retrieveFullNestedName(clazz)); + } + + public static String annotation(Class clazz, ImportCollector collector, String param, String value) { + String annotation = annotation(clazz, collector); + if (value.isEmpty()) { + return annotation; + } + return "%s(%s = %s)".formatted(annotation, param, value); + } + + public static String annotation(Class clazz, ImportCollector collector, String value) { + String annotation = annotation(clazz, collector); + if (value.isEmpty()) { + return annotation; + } + return "%s(%s)".formatted(annotation, value); + } + + public static void experimentalAnnotations(StringBuilder builder, String indent, ImportCollector importCollector, SingleFlagHolder requiredFeature) { + builder.append(indent).append(annotation(MinecraftExperimental.class, importCollector, "%s.%s".formatted( + importCollector.getShortName(MinecraftExperimental.Requires.class, false), requiredFeature.asAnnotationMember().name() + ))).append('\n'); + + builder.append(indent).append(annotation(ApiStatus.Experimental.class, importCollector)).append('\n'); + } + + private Annotations() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/ScanOldGeneratedSourceCode.java b/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/ScanOldGeneratedSourceCode.java new file mode 100644 index 0000000000..8700bb44ae --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/rewriter/utils/ScanOldGeneratedSourceCode.java @@ -0,0 +1,109 @@ +package io.papermc.generator.rewriter.utils; + +import io.papermc.generator.Rewriters; +import io.papermc.generator.rewriter.registration.PaperPatternSourceSetRewriter; +import io.papermc.paper.generated.GeneratedFrom; +import io.papermc.typewriter.SourceFile; +import io.papermc.typewriter.SourceRewriter; +import io.papermc.typewriter.context.FileMetadata; +import io.papermc.typewriter.context.IndentUnit; +import io.papermc.typewriter.parser.StringReader; +import io.papermc.typewriter.replace.CommentMarker; +import io.papermc.typewriter.replace.SearchReplaceRewriter; +import io.papermc.typewriter.replace.SearchReplaceRewriterBase; +import net.minecraft.SharedConstants; +import java.io.IOException; +import java.io.LineNumberReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import static io.papermc.typewriter.replace.CommentMarker.EMPTY_MARKER; + +public class ScanOldGeneratedSourceCode { + + private static final String CURRENT_VERSION; + + static { + SharedConstants.tryDetectVersion(); + CURRENT_VERSION = SharedConstants.getCurrentVersion().getName(); + } + + public static void main(String[] args) throws IOException { + PaperPatternSourceSetRewriter apiSourceSet = new PaperPatternSourceSetRewriter(); + PaperPatternSourceSetRewriter serverSourceSet = new PaperPatternSourceSetRewriter(); + + Rewriters.bootstrap(apiSourceSet, serverSourceSet); + + checkOutdated(apiSourceSet, Path.of(args[0], "src/main/java")); + checkOutdated(serverSourceSet, Path.of(args[1], "src/main/java")); + } + + private static void checkOutdated(PaperPatternSourceSetRewriter sourceSetRewriter, Path sourceSet) throws IOException { + IndentUnit globalIndentUnit = sourceSetRewriter.getMetadata().indentUnit();; + for (Map.Entry entry : sourceSetRewriter.getRewriters().entrySet()) { + SourceRewriter rewriter = entry.getValue(); + if (!(rewriter instanceof SearchReplaceRewriterBase srt) || + srt.getRewriters().stream().noneMatch(SearchReplaceRewriter::hasGeneratedComment)) { + continue; + } + + SourceFile file = entry.getKey(); + IndentUnit indentUnit = file.metadata().flatMap(FileMetadata::indentUnit).orElse(globalIndentUnit); + Set rewriters = new HashSet<>(srt.getRewriters()); + try (LineNumberReader reader = new LineNumberReader(Files.newBufferedReader(sourceSet.resolve(file.path()), StandardCharsets.UTF_8))) { + while (true) { + String line = reader.readLine(); + if (line == null) { + break; + } + if (line.isEmpty()) { + continue; + } + + CommentMarker marker = srt.searchStartMarker(new StringReader(line), indentUnit, rewriters); + if (marker != EMPTY_MARKER) { + int startIndentSize = marker.indentSize(); + if (startIndentSize % indentUnit.size() != 0) { + continue; + } + + String nextLine = reader.readLine(); + if (nextLine == null) { + break; + } + if (nextLine.isEmpty()) { + continue; + } + + StringReader nextLineIterator = new StringReader(nextLine); + int indentSize = nextLineIterator.skipChars(indentUnit.character()); + if (indentSize != startIndentSize) { + continue; + } + + String generatedComment = "// %s ".formatted(Annotations.annotationStyle(GeneratedFrom.class)); + if (nextLineIterator.trySkipString(generatedComment) && nextLineIterator.canRead()) { + String generatedVersion = nextLineIterator.getRemaining(); + if (!CURRENT_VERSION.equals(generatedVersion)) { + throw new AssertionError( + "Code at line %d in %s is marked as being generated in version %s when the current version is %s".formatted( + reader.getLineNumber(), file.mainClass().canonicalName(), generatedVersion, CURRENT_VERSION) + ); + } + + if (!marker.owner().getOptions().multipleOperation()) { + if (rewriters.remove(marker.owner()) && rewriters.isEmpty()) { + break; + } + } + } + } + } + } + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/OverriddenClassGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/OverriddenClassGenerator.java new file mode 100644 index 0000000000..d610fdeb2c --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/OverriddenClassGenerator.java @@ -0,0 +1,46 @@ +package io.papermc.generator.types; + +import com.mojang.logging.LogUtils; +import com.squareup.javapoet.MethodSpec; +import io.papermc.generator.utils.Annotations; +import java.util.Arrays; +import org.jspecify.annotations.NullMarked; +import org.slf4j.Logger; + +import static javax.lang.model.element.Modifier.PUBLIC; + +@NullMarked +public abstract class OverriddenClassGenerator extends SimpleGenerator { + + private static final Logger LOGGER = LogUtils.getLogger(); + + protected final Class baseClass; + protected boolean printWarningOnMissingOverride; + + protected OverriddenClassGenerator(Class baseClass, String className, String packageName) { + super(className, packageName); + this.baseClass = baseClass; + } + + public MethodSpec.Builder createMethod(String name, Class... parameterTypes) { + MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder(name) + .addModifiers(PUBLIC); + if (methodExists(name, parameterTypes)) { + methodBuilder.addAnnotation(Annotations.OVERRIDE); + } else { + if (this.printWarningOnMissingOverride) { + LOGGER.warn("Method {}#{}{} didn't override a known api method!", this.className, name, Arrays.toString(parameterTypes)); + } + } + return methodBuilder; + } + + protected boolean methodExists(String name, Class... parameterTypes) { + try { + this.baseClass.getMethod(name, parameterTypes); + return true; + } catch (NoSuchMethodException e) { + return false; + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/SimpleEnumGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/SimpleEnumGenerator.java new file mode 100644 index 0000000000..282a30568a --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/SimpleEnumGenerator.java @@ -0,0 +1,30 @@ +package io.papermc.generator.types; + +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.utils.Annotations; +import javax.lang.model.element.Modifier; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class SimpleEnumGenerator> extends SimpleGenerator { + + private final Class enumClass; + + public SimpleEnumGenerator(Class enumClass, String packageName) { + super(enumClass.getSimpleName(), packageName); + this.enumClass = enumClass; + } + + @Override + protected TypeSpec getTypeSpec() { + TypeSpec.Builder typeBuilder = TypeSpec.enumBuilder(this.enumClass.getSimpleName()) + .addModifiers(Modifier.PUBLIC) + .addAnnotations(Annotations.CLASS_HEADER); + + for (T enumValue : this.enumClass.getEnumConstants()) { + typeBuilder.addEnumConstant(enumValue.name()); + } + + return typeBuilder.build(); + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java similarity index 78% rename from paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java rename to paper-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java index 3608b449f8..c4476d50a3 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java +++ b/paper-generator/src/main/java/io/papermc/generator/types/SimpleGenerator.java @@ -2,13 +2,16 @@ package io.papermc.generator.types; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.TypeSpec; - import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Path; +import org.jspecify.annotations.NullMarked; +@NullMarked public abstract class SimpleGenerator implements SourceGenerator { + public static final String INDENT_UNIT = " "; + protected final String className; protected final String packageName; @@ -19,14 +22,15 @@ public abstract class SimpleGenerator implements SourceGenerator { protected abstract TypeSpec getTypeSpec(); - protected abstract JavaFile.Builder file(JavaFile.Builder builder); + protected JavaFile.Builder file(JavaFile.Builder builder) { + return builder; + } @Override public void writeToFile(Path parent) throws IOException { - JavaFile.Builder builder = JavaFile.builder(this.packageName, this.getTypeSpec()); this.file(builder) - .indent(" ") + .indent(INDENT_UNIT) .skipJavaLangImports(true); builder.build().writeTo(parent, StandardCharsets.UTF_8); diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java similarity index 76% rename from paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java rename to paper-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java index 2d550fa421..434b7b4822 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java +++ b/paper-generator/src/main/java/io/papermc/generator/types/SourceGenerator.java @@ -2,7 +2,9 @@ package io.papermc.generator.types; import java.io.IOException; import java.nio.file.Path; +import org.jspecify.annotations.NullMarked; +@NullMarked public interface SourceGenerator { void writeToFile(Path parent) throws IOException; diff --git a/paper-generator/src/main/java/io/papermc/generator/types/Types.java b/paper-generator/src/main/java/io/papermc/generator/types/Types.java new file mode 100644 index 0000000000..84b52e7940 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/Types.java @@ -0,0 +1,14 @@ +package io.papermc.generator.types; + +import com.squareup.javapoet.ClassName; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Types { + + public static final String BASE_PACKAGE = "org.bukkit.craftbukkit"; + + public static final ClassName CRAFT_BLOCK_DATA = ClassName.get(BASE_PACKAGE + ".block.data", "CraftBlockData"); + + public static final ClassName CRAFT_BLOCK = ClassName.get(BASE_PACKAGE + ".block", "CraftBlock"); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataBootstrapper.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataBootstrapper.java new file mode 100644 index 0000000000..fbdd1f3f21 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataBootstrapper.java @@ -0,0 +1,23 @@ +package io.papermc.generator.types.craftblockdata; + +import com.google.common.base.Preconditions; +import io.papermc.generator.types.SourceGenerator; +import io.papermc.generator.utils.BlockStateMapping; +import java.util.List; +import java.util.Map; +import net.minecraft.world.level.block.Block; +import org.bukkit.block.data.BlockData; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class CraftBlockDataBootstrapper { + + public static void bootstrap(List generators) { + for (Map.Entry, BlockStateMapping.BlockData> entry : BlockStateMapping.MAPPING.entrySet()) { + Class api = BlockStateMapping.getBestSuitedApiClass(entry.getValue()); + Preconditions.checkState(api != null, "Unknown custom BlockData api class for " + entry.getKey().getCanonicalName()); + + generators.add(new CraftBlockDataGenerator<>(entry.getKey(), entry.getValue(), api)); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataGenerator.java new file mode 100644 index 0000000000..2f2e125198 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/CraftBlockDataGenerator.java @@ -0,0 +1,243 @@ +package io.papermc.generator.types.craftblockdata; + +import com.google.common.base.CaseFormat; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import com.mojang.datafixers.util.Either; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.OverriddenClassGenerator; +import io.papermc.generator.types.Types; +import io.papermc.generator.types.craftblockdata.property.PropertyMaker; +import io.papermc.generator.types.craftblockdata.property.PropertyWriter; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.converter.Converters; +import io.papermc.generator.types.craftblockdata.property.holder.DataPropertyMaker; +import io.papermc.generator.types.craftblockdata.property.holder.VirtualField; +import io.papermc.generator.types.craftblockdata.property.holder.converter.DataConverter; +import io.papermc.generator.types.craftblockdata.property.holder.converter.DataConverters; +import io.papermc.generator.utils.Annotations; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.generator.utils.CommonVariable; +import io.papermc.generator.utils.NamingManager; +import it.unimi.dsi.fastutil.Pair; +import java.lang.reflect.Field; +import java.util.Collection; +import java.util.Map; +import java.util.function.BiConsumer; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.ChiseledBookShelfBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import org.bukkit.Axis; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Rail; +import org.jspecify.annotations.NullMarked; + +import static io.papermc.generator.utils.NamingManager.keywordGet; +import static io.papermc.generator.utils.NamingManager.keywordGetSet; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class CraftBlockDataGenerator extends OverriddenClassGenerator { + + private final Class blockClass; + private final BlockStateMapping.BlockData blockData; + + protected CraftBlockDataGenerator(Class blockClass, BlockStateMapping.BlockData blockData, Class baseClass) { + super(baseClass, blockData.implName(), Types.BASE_PACKAGE + ".block.impl"); + this.blockClass = blockClass; + this.blockData = blockData; + this.printWarningOnMissingOverride = true; + } + + // default keywords: get/set + // for single boolean property: get = is + // for indexed boolean property: get = has + private static final Map, NamingManager.AccessKeyword> FLUENT_KEYWORD = ImmutableMap., NamingManager.AccessKeyword>builder() + .put(BlockStateProperties.ATTACH_FACE, keywordGetSet("getAttached", "setAttached")) // todo remove this once switch methods are gone + .put(BlockStateProperties.EYE, keywordGet("has")) + .put(BlockStateProperties.BERRIES, keywordGet("has")) // spigot method rename + // data holder keywords is only needed for the first property they hold + .put(ChiseledBookShelfBlock.SLOT_OCCUPIED_PROPERTIES.getFirst(), keywordGet("is")) + .buildOrThrow(); + + private static final Map, BiConsumer> SETTER_PRECONDITIONS = Map.of( + BlockStateProperties.FACING, (param, method) -> { + method.addStatement("$T.checkArgument($N.isCartesian(), $S)", Preconditions.class, param, "Invalid face, only cartesian face are allowed for this property!"); + }, + BlockStateProperties.HORIZONTAL_FACING, (param, method) -> { + method.addStatement("$1T.checkArgument($2N.isCartesian() && $2N.getModY() == 0, $3S)", Preconditions.class, param, "Invalid face, only cartesian horizontal face are allowed for this property!"); + }, + BlockStateProperties.FACING_HOPPER, (param, method) -> { + method.addStatement("$1T.checkArgument($2N.isCartesian() && $2N != $3T.UP, $4S)", Preconditions.class, param, BlockFace.class, "Invalid face, only cartesian face (excluding UP) are allowed for this property!"); + }, + BlockStateProperties.VERTICAL_DIRECTION, (param, method) -> { + method.addStatement("$T.checkArgument($N.getModY() != 0, $S)", Preconditions.class, param, "Invalid face, only vertical face are allowed for this property!"); + }, + BlockStateProperties.ROTATION_16, (param, method) -> { + method.addStatement("$1T.checkArgument($2N != $3T.SELF && $2N.getModY() == 0, $4S)", Preconditions.class, param, BlockFace.class, "Invalid face, only horizontal face are allowed for this property!"); + }, + BlockStateProperties.HORIZONTAL_AXIS, (param, method) -> { + method.addStatement("$1T.checkArgument($2N == $3T.X || $2N == $3T.Z, $4S)", Preconditions.class, param, Axis.class, "Invalid axis, only horizontal axis are allowed for this property!"); + }, + BlockStateProperties.RAIL_SHAPE_STRAIGHT, (param, method) -> { + method.addStatement("$1T.checkArgument($2N != $3T.NORTH_EAST && $2N != $3T.NORTH_WEST && $2N != $3T.SOUTH_EAST && $2N != $3T.SOUTH_WEST, $4S)", Preconditions.class, param, Rail.Shape.class, "Invalid rail shape, only straight rail are allowed for this property!"); + } + ); + + private TypeSpec.Builder propertyHolder() { + TypeSpec.Builder typeBuilder = TypeSpec.classBuilder(this.className) + .addModifiers(PUBLIC) + .addAnnotation(Annotations.GENERATED_FROM) + .superclass(Types.CRAFT_BLOCK_DATA) + .addSuperinterface(this.baseClass); + + ParameterSpec parameter = ParameterSpec.builder(BlockState.class, "state").build(); + MethodSpec constructor = MethodSpec.constructorBuilder() + .addModifiers(PUBLIC) + .addParameter(parameter) + .addStatement("super($N)", parameter) + .build(); + + typeBuilder.addMethod(constructor); + return typeBuilder; + } + + @Override + protected TypeSpec getTypeSpec() { + TypeSpec.Builder typeBuilder = this.propertyHolder(); + + for (Property property : this.blockData.properties()) { + Pair, String> fieldName = PropertyWriter.referenceFieldFromVar(this.blockClass, property, this.blockData.propertyFields()); + + PropertyMaker propertyMaker = PropertyMaker.make(property); + + final String varName; + if (this.blockData.propertyFields().containsKey(property)) { + // get the name from the local class or fallback to the generic BlockStateProperties constant name if not found + varName = this.blockData.propertyFields().get(property).getName(); + } else { + varName = fieldName.right(); + } + + FieldSpec.Builder fieldBuilder = FieldSpec.builder(propertyMaker.getPropertyType(), varName, PRIVATE, STATIC, FINAL) + .initializer("$T.$L", fieldName.left(), fieldName.right()); + FieldSpec field = fieldBuilder.build(); + + typeBuilder.addField(field); + + ConverterBase converter = Converters.getOrDefault(property, propertyMaker); + Class apiClass = converter.getApiType(); + + NamingManager.AccessKeyword accessKeyword = null; + if (apiClass == Boolean.TYPE) { + accessKeyword = keywordGet("is"); + } + accessKeyword = FLUENT_KEYWORD.getOrDefault(property, accessKeyword); + NamingManager naming = new NamingManager(accessKeyword, CaseFormat.LOWER_UNDERSCORE, property.getName()); + + // get + { + MethodSpec.Builder methodBuilder = createMethod(naming.simpleGetterName(name -> !name.startsWith("is_") && !name.startsWith("has_"))); + converter.convertGetter(methodBuilder, field); + methodBuilder.returns(apiClass); + + typeBuilder.addMethod(methodBuilder.build()); + } + + // set + { + String paramName = naming.paramName(apiClass); + ParameterSpec parameter = ParameterSpec.builder(apiClass, paramName, FINAL).build(); + + MethodSpec.Builder methodBuilder = createMethod(naming.simpleSetterName(name -> !name.startsWith("is_")), apiClass).addParameter(parameter); + if (!apiClass.isPrimitive()) { + methodBuilder.addStatement("$T.checkArgument($N != null, $S)", Preconditions.class, parameter, "%s cannot be null!".formatted(paramName)); + } + if (SETTER_PRECONDITIONS.containsKey(property)) { + SETTER_PRECONDITIONS.get(property).accept(parameter, methodBuilder); + } + converter.convertSetter(methodBuilder, field, parameter); + + typeBuilder.addMethod(methodBuilder.build()); + } + + // extra + propertyMaker.addExtras(typeBuilder, field, this, naming); + } + + for (Map.Entry, Collection>> complexFields : this.blockData.complexPropertyFields().asMap().entrySet()) { + Either fieldData = complexFields.getKey(); + Collection> properties = complexFields.getValue(); + Property firstProperty = properties.iterator().next(); + + PropertyMaker propertyMaker = PropertyMaker.make(firstProperty); + ConverterBase propertyConverter = Converters.getOrDefault(firstProperty, propertyMaker); + + DataPropertyMaker dataPropertyMaker = DataPropertyMaker.make(properties, this.blockClass, fieldData); + + FieldSpec field = dataPropertyMaker.getOrCreateField(this.blockData.propertyFields()).build(); + typeBuilder.addField(field); + + DataConverter converter = DataConverters.getOrThrow(dataPropertyMaker.getType()); + Class apiClass = propertyConverter.getApiType(); + + NamingManager.AccessKeyword accessKeyword = null; + if (apiClass == Boolean.TYPE) { + accessKeyword = NamingManager.keywordGet("has"); + } + accessKeyword = FLUENT_KEYWORD.getOrDefault(firstProperty, accessKeyword); + NamingManager naming = new NamingManager(accessKeyword, CaseFormat.UPPER_UNDERSCORE, dataPropertyMaker.getBaseName()); + + ParameterSpec indexParameter = ParameterSpec.builder(dataPropertyMaker.getIndexClass(), dataPropertyMaker.getIndexClass() == Integer.TYPE ? CommonVariable.INDEX : naming.paramName(dataPropertyMaker.getIndexClass()), FINAL).build(); + + // get + { + MethodSpec.Builder methodBuilder = createMethod(naming.simpleGetterName(name -> true), dataPropertyMaker.getIndexClass()) + .addParameter(indexParameter); + if (!dataPropertyMaker.getIndexClass().isPrimitive()) { + methodBuilder.addStatement("$T.checkArgument($N != null, $S)", Preconditions.class, indexParameter, "%s cannot be null!".formatted(indexParameter.name)); + } + converter.convertGetter(propertyConverter, methodBuilder, field, indexParameter); + methodBuilder.returns(apiClass); + + typeBuilder.addMethod(methodBuilder.build()); + } + + // set + { + String paramName = naming.paramName(apiClass); + ParameterSpec parameter = ParameterSpec.builder(apiClass, paramName, FINAL).build(); + + MethodSpec.Builder methodBuilder = createMethod(naming.simpleSetterName(name -> true), dataPropertyMaker.getIndexClass(), apiClass) + .addParameter(indexParameter) + .addParameter(parameter); + if (!dataPropertyMaker.getIndexClass().isPrimitive()) { + methodBuilder.addStatement("$T.checkArgument($N != null, $S)", Preconditions.class, indexParameter, "%s cannot be null!".formatted(indexParameter.name)); + } + if (!apiClass.isPrimitive()) { + methodBuilder.addStatement("$T.checkArgument($N != null, $S)", Preconditions.class, parameter, "%s cannot be null!".formatted(paramName)); + } + if (SETTER_PRECONDITIONS.containsKey(firstProperty)) { + SETTER_PRECONDITIONS.get(firstProperty).accept(parameter, methodBuilder); + } + converter.convertSetter(propertyConverter, methodBuilder, field, indexParameter, parameter); + + typeBuilder.addMethod(methodBuilder.build()); + } + + // extra + dataPropertyMaker.addExtras(typeBuilder, field, indexParameter, propertyConverter, this, naming); + } + + return typeBuilder.build(); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/EnumPropertyWriter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/EnumPropertyWriter.java new file mode 100644 index 0000000000..9c38001d09 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/EnumPropertyWriter.java @@ -0,0 +1,46 @@ +package io.papermc.generator.types.craftblockdata.property; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import io.papermc.generator.utils.BlockStateMapping; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class EnumPropertyWriter & StringRepresentable> extends PropertyWriter { + + protected EnumPropertyWriter(EnumProperty property) { + super(property); + } + + @Override + public TypeName getPropertyType() { + if (this.property.getClass() == EnumProperty.class) { // exact match + return ParameterizedTypeName.get(this.property.getClass(), this.property.getValueClass()); + } + return super.getPropertyType(); + } + + @Override + protected Class processApiType() { + Class apiClass = this.property.getValueClass(); + apiClass = BlockStateMapping.ENUM_BRIDGE.get(apiClass); + if (apiClass == null) { + throw new IllegalStateException("Unknown enum type for " + this.property); + } + return apiClass; + } + + @Override + public void convertGetter(MethodSpec.Builder method, FieldSpec field) { + method.addStatement("return " + this.rawGetExprent().formatted("$N"), field, this.getApiType()); + } + + @Override + public String rawGetExprent() { + return "this.get(%s, $T.class)"; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/IntegerPropertyWriter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/IntegerPropertyWriter.java new file mode 100644 index 0000000000..5d5fb8c8be --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/IntegerPropertyWriter.java @@ -0,0 +1,44 @@ +package io.papermc.generator.types.craftblockdata.property; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.Converters; +import io.papermc.generator.utils.NamingManager; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class IntegerPropertyWriter extends PropertyWriter { + + protected IntegerPropertyWriter(IntegerProperty property) { + super(property); + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, CraftBlockDataGenerator generator, NamingManager naming) { + if (Converters.has(this.property)) { + return; + } + + IntegerProperty property = (IntegerProperty) this.property; + + if (property.min != 0 || property.getName().equals(BlockStateProperties.LEVEL.getName())) { // special case (levelled: composter) + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getterName(name -> true).pre("Minimum").concat()); + methodBuilder.addStatement("return $N.min", field); + methodBuilder.returns(this.getApiType()); + + builder.addMethod(methodBuilder.build()); + } + + { + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getterName(name -> true).pre("Maximum").concat()); + methodBuilder.addStatement("return $N.max", field); + methodBuilder.returns(this.getApiType()); + + builder.addMethod(methodBuilder.build()); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyMaker.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyMaker.java new file mode 100644 index 0000000000..0560e19f07 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyMaker.java @@ -0,0 +1,25 @@ +package io.papermc.generator.types.craftblockdata.property; + +import com.squareup.javapoet.TypeName; +import io.papermc.generator.types.craftblockdata.property.appender.AppenderBase; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface PropertyMaker extends ConverterBase, AppenderBase { + + TypeName getPropertyType(); + + static > PropertyMaker make(Property property) { + if (property instanceof IntegerProperty intProperty) { + return new IntegerPropertyWriter(intProperty); + } + if (property instanceof EnumProperty enumProperty) { + return new EnumPropertyWriter<>(enumProperty); + } + return new PropertyWriter<>(property); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyWriter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyWriter.java new file mode 100644 index 0000000000..60c93f27a9 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/PropertyWriter.java @@ -0,0 +1,88 @@ +package io.papermc.generator.types.craftblockdata.property; + +import com.google.common.base.Suppliers; +import com.google.common.primitives.Primitives; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.appender.PropertyAppenders; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.generator.utils.NamingManager; +import it.unimi.dsi.fastutil.Pair; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Map; +import java.util.function.Supplier; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class PropertyWriter> implements PropertyMaker { + + protected final Property property; + private final Supplier> apiClassSupplier; + + protected PropertyWriter(Property property) { + this.property = property; + this.apiClassSupplier = Suppliers.memoize(this::processApiType); + } + + @Override + public TypeName getPropertyType() { + return TypeName.get(this.property.getClass()); + } + + protected Class processApiType() { + Class apiClass = this.property.getValueClass(); + if (Primitives.isWrapperType(apiClass)) { + apiClass = Primitives.unwrap(apiClass); + } + return apiClass; + } + + @Override + public Class getApiType() { + return this.apiClassSupplier.get(); + } + + @Override + public String rawSetExprent() { + return "this.set(%s, $N)"; + } + + @Override + public String rawGetExprent() { + return "this.get(%s)"; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, CraftBlockDataGenerator generator, NamingManager naming) { + PropertyAppenders.ifPresent(this.property, appender -> appender.addExtras(builder, field, generator, naming)); + } + + public static Pair, String> referenceField(Class from, Property property, Map, Field> fields) { + Class fieldAccess = from; + Field field = fields.get(property); + if (field == null || !Modifier.isPublic(field.getModifiers())) { + fieldAccess = BlockStateProperties.class; + field = BlockStateMapping.FALLBACK_GENERIC_FIELDS.get(property); + } + return Pair.of(fieldAccess, field.getName()); + } + + public static Pair, String> referenceFieldFromVar(Class from, Property property, Map, Field> fields) { + Class fieldAccess = from; + Field field = fields.get(property); + Field genericField = BlockStateMapping.FALLBACK_GENERIC_FIELDS.get(property); + if (field == null || !Modifier.isPublic(field.getModifiers()) || !genericField.getType().equals(field.getType())) { + // field type can differ from BlockStateProperties constants (that's the case for the shulker box (#FACING) and the vault (#STATE)) ref: 1.20.5 + // in that case fallback to the more accurate type to avoid compile error + fieldAccess = BlockStateProperties.class; + field = genericField; + } + return Pair.of(fieldAccess, field.getName()); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/AppenderBase.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/AppenderBase.java new file mode 100644 index 0000000000..b1e149e75b --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/AppenderBase.java @@ -0,0 +1,13 @@ +package io.papermc.generator.types.craftblockdata.property.appender; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.utils.NamingManager; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface AppenderBase { + + void addExtras(TypeSpec.Builder builder, FieldSpec field, CraftBlockDataGenerator generator, NamingManager naming); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/EnumValuesAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/EnumValuesAppender.java new file mode 100644 index 0000000000..0898c37475 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/EnumValuesAppender.java @@ -0,0 +1,45 @@ +package io.papermc.generator.types.craftblockdata.property.appender; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.utils.NamingManager; +import java.util.Set; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class EnumValuesAppender & StringRepresentable, A extends Enum
> implements PropertyAppender { + + private final EnumProperty property; + private final Class apiType; + private final String methodName; + + public EnumValuesAppender(EnumProperty property, Class apiType, String methodName) { + this.property = property; + this.apiType = apiType; + this.methodName = methodName; + } + + @Override + public EnumProperty getProperty() { + return this.property; + } + + @Override + public Class getApiType() { + return this.apiType; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, CraftBlockDataGenerator generator, NamingManager naming) { + MethodSpec.Builder methodBuilder = generator.createMethod(this.methodName); + methodBuilder.addStatement("return this.getValues($N, $T.class)", field, this.apiType); + methodBuilder.returns(ParameterizedTypeName.get(Set.class, this.apiType)); + + builder.addMethod(methodBuilder.build()); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppender.java new file mode 100644 index 0000000000..63bc0dbd28 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppender.java @@ -0,0 +1,12 @@ +package io.papermc.generator.types.craftblockdata.property.appender; + +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface PropertyAppender, A> extends AppenderBase { + + Property getProperty(); + + Class getApiType(); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppenders.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppenders.java new file mode 100644 index 0000000000..9ddfe158c6 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/appender/PropertyAppenders.java @@ -0,0 +1,33 @@ +package io.papermc.generator.types.craftblockdata.property.appender; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import org.bukkit.Axis; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Rail; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class PropertyAppenders { + + private static final Map, AppenderBase> APPENDERS = Stream.of( + new EnumValuesAppender<>(BlockStateProperties.AXIS, Axis.class, "getAxes"), + new EnumValuesAppender<>(BlockStateProperties.HORIZONTAL_AXIS, Axis.class, "getAxes"), + new EnumValuesAppender<>(BlockStateProperties.FACING, BlockFace.class, "getFaces"), + new EnumValuesAppender<>(BlockStateProperties.HORIZONTAL_FACING, BlockFace.class, "getFaces"), + new EnumValuesAppender<>(BlockStateProperties.FACING_HOPPER, BlockFace.class, "getFaces"), + new EnumValuesAppender<>(BlockStateProperties.RAIL_SHAPE, Rail.Shape.class, "getShapes"), + new EnumValuesAppender<>(BlockStateProperties.RAIL_SHAPE_STRAIGHT, Rail.Shape.class, "getShapes"), + new EnumValuesAppender<>(BlockStateProperties.VERTICAL_DIRECTION, BlockFace.class, "getVerticalDirections") + ).collect(Collectors.toUnmodifiableMap(PropertyAppender::getProperty, key -> key)); + + public static void ifPresent(Property property, Consumer callback) { + if (APPENDERS.containsKey(property)) { + callback.accept(APPENDERS.get(property)); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converter.java new file mode 100644 index 0000000000..f4c3205c84 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converter.java @@ -0,0 +1,13 @@ +package io.papermc.generator.types.craftblockdata.property.converter; + +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface Converter, A> extends ConverterBase { + + Property getProperty(); + + @Override + Class getApiType(); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/ConverterBase.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/ConverterBase.java new file mode 100644 index 0000000000..cbe2e0f59a --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/ConverterBase.java @@ -0,0 +1,24 @@ +package io.papermc.generator.types.craftblockdata.property.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface ConverterBase { + + Class getApiType(); + + default void convertSetter(MethodSpec.Builder method, FieldSpec field, ParameterSpec parameter) { + method.addStatement(this.rawSetExprent().formatted("$N"), field, parameter); + } + + String rawSetExprent(); // this go on two layers which can be hard to follow refactor? + + default void convertGetter(MethodSpec.Builder method, FieldSpec field) { + method.addStatement("return " + this.rawGetExprent().formatted("$N"), field); + } + + String rawGetExprent(); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converters.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converters.java new file mode 100644 index 0000000000..ee2f8d3d5f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/Converters.java @@ -0,0 +1,25 @@ +package io.papermc.generator.types.craftblockdata.property.converter; + +import io.papermc.generator.types.craftblockdata.property.PropertyMaker; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Converters { + + private static final Map, ConverterBase> CONVERTERS = Stream.of( + new RotationConverter(), + new NoteConverter() + ).collect(Collectors.toUnmodifiableMap(Converter::getProperty, key -> key)); + + public static ConverterBase getOrDefault(Property property, PropertyMaker maker) { + return CONVERTERS.getOrDefault(property, maker); + } + + public static boolean has(Property property) { + return CONVERTERS.containsKey(property); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/NoteConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/NoteConverter.java new file mode 100644 index 0000000000..91189dd6a5 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/NoteConverter.java @@ -0,0 +1,37 @@ +package io.papermc.generator.types.craftblockdata.property.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import org.bukkit.Note; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class NoteConverter implements Converter { + + @Override + public Property getProperty() { + return BlockStateProperties.NOTE; + } + + @Override + public Class getApiType() { + return Note.class; + } + + @Override + public String rawSetExprent() { + return "this.set(%s, (int) $N.getId())"; + } + + @Override + public void convertGetter(MethodSpec.Builder method, FieldSpec field) { + method.addStatement("return " + this.rawGetExprent().formatted("$N"), this.getApiType(), field); + } + + @Override + public String rawGetExprent() { + return "new $T(this.get(%s))"; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/RotationConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/RotationConverter.java new file mode 100644 index 0000000000..7726efd33c --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/converter/RotationConverter.java @@ -0,0 +1,45 @@ +package io.papermc.generator.types.craftblockdata.property.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.util.Vector; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class RotationConverter implements Converter { + + private static final String DIRECTION_VAR = "dir"; + private static final String ANGLE_VAR = "angle"; + + @Override + public Property getProperty() { + return BlockStateProperties.ROTATION_16; + } + + @Override + public Class getApiType() { + return BlockFace.class; + } + + @Override + public void convertSetter(MethodSpec.Builder method, FieldSpec field, ParameterSpec parameter) { + method.addStatement("$T $L = $N.getDirection()", Vector.class, DIRECTION_VAR, parameter); + method.addStatement("$1T $2L = ($1T) -$3T.toDegrees($3T.atan2($4L.getX(), $4L.getZ()))", Float.TYPE, ANGLE_VAR, Math.class, DIRECTION_VAR); + method.addStatement(this.rawSetExprent().formatted("$N", ANGLE_VAR), field, RotationSegment.class); + } + + @Override + public String rawSetExprent() { + return "this.set(%s, $T.convertToSegment(%s))"; + } + + @Override + public String rawGetExprent() { + return "CraftBlockData.ROTATION_CYCLE[this.get(%s)]"; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataHolderType.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataHolderType.java new file mode 100644 index 0000000000..86a70923c1 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataHolderType.java @@ -0,0 +1,7 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +public enum DataHolderType { + MAP, + LIST, + ARRAY +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyMaker.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyMaker.java new file mode 100644 index 0000000000..117b2cd8a2 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyMaker.java @@ -0,0 +1,31 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +import com.mojang.datafixers.util.Either; +import com.squareup.javapoet.FieldSpec; +import io.papermc.generator.types.craftblockdata.property.holder.appender.DataAppender; +import java.lang.reflect.Field; +import java.util.Collection; +import java.util.Map; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface DataPropertyMaker extends DataAppender { + + FieldSpec.Builder getOrCreateField(Map, Field> fields); + + Class getIndexClass(); + + @Override + DataHolderType getType(); + + String getBaseName(); + + static DataPropertyMaker make(Collection> properties, Class blockClass, Either fieldData) { + return fieldData.map( + field -> new DataPropertyWriter(field, properties, blockClass), + virtualField -> new VirtualDataPropertyWriter(virtualField, properties, blockClass) + ); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriter.java new file mode 100644 index 0000000000..965b26e7e6 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriter.java @@ -0,0 +1,162 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.Types; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.appender.DataAppenders; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.generator.utils.ClassHelper; +import io.papermc.generator.utils.CommonVariable; +import io.papermc.generator.utils.NamingManager; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.ChiseledBookShelfBlock; +import net.minecraft.world.level.block.MossyCarpetBlock; +import net.minecraft.world.level.block.state.properties.Property; +import org.bukkit.block.BlockFace; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.jspecify.annotations.NullMarked; + +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class DataPropertyWriter extends DataPropertyWriterBase { + + private record FieldKey(Class blockClass, String fieldName) { + } + + private static FieldKey key(Class blockClass, String fieldName) { + return new FieldKey(blockClass, fieldName); + } + + private static final Map FIELD_TO_BASE_NAME = Map.of( + BlockStateMapping.PIPE_FIELD_NAME, "FACE" + ); + + private static final Map FIELD_TO_BASE_NAME_SPECIFICS = Map.of( + key(ChiseledBookShelfBlock.class, "SLOT_OCCUPIED_PROPERTIES"), "SLOT_OCCUPIED", + key(MossyCarpetBlock.class, "PROPERTY_BY_DIRECTION"), "HEIGHT" + ); + + protected final Field field; + protected @MonotonicNonNull DataHolderType type; + protected @MonotonicNonNull Class indexClass, internalIndexClass; + protected @MonotonicNonNull TypeName fieldType; + + protected DataPropertyWriter(Field field, Collection> properties, Class blockClass) { + super(properties, blockClass); + this.field = field; + this.computeTypes(field); + } + + protected void computeTypes(Field field) { + this.fieldType = TypeName.get(field.getGenericType()); + + if (field.getType().isArray()) { + this.type = DataHolderType.ARRAY; + this.indexClass = Integer.TYPE; + } else if (List.class.isAssignableFrom(field.getType())) { + this.type = DataHolderType.LIST; + this.indexClass = Integer.TYPE; + } else if (Map.class.isAssignableFrom(field.getType()) && field.getGenericType() instanceof ParameterizedType complexType) { + this.type = DataHolderType.MAP; + this.internalIndexClass = ClassHelper.eraseType(complexType.getActualTypeArguments()[0]); + if (this.internalIndexClass.isEnum()) { + this.indexClass = BlockStateMapping.ENUM_BRIDGE.getOrDefault(this.internalIndexClass, (Class>) this.internalIndexClass); + this.fieldType = ParameterizedTypeName.get( + ClassName.get(field.getType()), + ClassName.get(this.indexClass), + ClassName.get(complexType.getActualTypeArguments()[1]) + ); + } else { + this.indexClass = this.internalIndexClass; + } + } else { + throw new IllegalStateException("Don't know how to turn " + field + " into api"); + } + } + + @Override + public FieldSpec.Builder getOrCreateField(Map, Field> fields) { + FieldSpec.Builder fieldBuilder = FieldSpec.builder(this.fieldType, this.field.getName(), PRIVATE, STATIC, FINAL); + if (Modifier.isPublic(this.field.getModifiers())) { + // accessible phew + if (this.type == DataHolderType.MAP && + this.internalIndexClass == Direction.class && this.indexClass == BlockFace.class) { // Direction -> BlockFace + // convert the key manually only this one is needed for now + fieldBuilder.initializer("$[$1T.$2L.entrySet().stream()\n.collect($3T.toMap($4L -> $5T.notchToBlockFace($4L.getKey()), $4L -> $4L.getValue()))$]", + this.blockClass, this.field.getName(), Collectors.class, CommonVariable.MAP_ENTRY, Types.CRAFT_BLOCK); + } else { + fieldBuilder.initializer("$T.$L", this.blockClass, this.field.getName()); + } + } else { + if (this.type == DataHolderType.ARRAY || this.type == DataHolderType.LIST) { + CodeBlock.Builder code = CodeBlock.builder(); + this.createSyntheticCollection(code, this.type == DataHolderType.ARRAY, fields); + fieldBuilder.initializer(code.build()); + } else if (this.type == DataHolderType.MAP) { + CodeBlock.Builder code = CodeBlock.builder(); + this.createSyntheticMap(code, this.indexClass, fields); + fieldBuilder.initializer(code.build()); + } + } + return fieldBuilder; + } + + @Override + public Class getIndexClass() { + return this.indexClass; + } + + @Override + public DataHolderType getType() { + return this.type; + } + + @Override + public String getBaseName() { + String constantName = this.field.getName(); + + FieldKey key = key(this.blockClass, constantName); + if (FIELD_TO_BASE_NAME_SPECIFICS.containsKey(key)) { + return FIELD_TO_BASE_NAME_SPECIFICS.get(key); + } + + if (FIELD_TO_BASE_NAME.containsKey(constantName)) { + return FIELD_TO_BASE_NAME.get(constantName); + } + return stripFieldAccessKeyword(constantName); + } + + private static final List CUSTOM_KEYWORD = List.of("HAS", "IS", "CAN"); + + private String stripFieldAccessKeyword(String name) { + for (String keyword : CUSTOM_KEYWORD) { + if (name.startsWith(keyword + "_")) { + return name.substring(keyword.length() + 1); + } + } + return name; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase childConverter, CraftBlockDataGenerator generator, NamingManager naming) { + DataAppenders.ifPresent(this.type, appender -> appender.addExtras(builder, field, indexParameter, childConverter, generator, naming)); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriterBase.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriterBase.java new file mode 100644 index 0000000000..ef6aa97629 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/DataPropertyWriterBase.java @@ -0,0 +1,66 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +import com.squareup.javapoet.CodeBlock; +import io.papermc.generator.types.craftblockdata.property.PropertyWriter; +import io.papermc.generator.utils.Formatting; +import it.unimi.dsi.fastutil.Pair; +import java.lang.reflect.Field; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.Property; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public abstract class DataPropertyWriterBase implements DataPropertyMaker { + + protected final Collection> properties; + protected final Class blockClass; + + protected DataPropertyWriterBase(Collection> properties, Class blockClass) { + this.properties = properties; + this.blockClass = blockClass; + } + + protected void createSyntheticCollection(CodeBlock.Builder code, boolean isArray, Map, Field> fields) { + if (isArray) { + code.add("{\n"); + } else { + code.add("$T.of(\n", List.class); + } + code.indent(); + Iterator> it = this.properties.iterator(); + while (it.hasNext()) { + Property property = it.next(); + Pair, String> fieldName = PropertyWriter.referenceField(this.blockClass, property, fields); + code.add("$T.$L", fieldName.left(), fieldName.right()); + if (it.hasNext()) { + code.add(","); + } + code.add("\n"); + } + code.unindent().add(isArray ? "}" : ")"); + } + + protected void createSyntheticMap(CodeBlock.Builder code, Class indexClass, Map, Field> fields) { + // assume indexClass is an enum with its values matching the property names + code.add("$T.of(\n", Map.class).indent(); + Iterator> it = this.properties.iterator(); + while (it.hasNext()) { + Property property = it.next(); + String name = Formatting.formatKeyAsField(property.getName()); + Pair, String> fieldName = PropertyWriter.referenceField(this.blockClass, property, fields); + code.add("$T.$L, $T.$L", indexClass, name, fieldName.left(), fieldName.right()); + if (it.hasNext()) { + code.add(","); + } + code.add("\n"); + } + code.unindent().add(")"); + } + + @Override + public abstract Class getIndexClass(); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualDataPropertyWriter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualDataPropertyWriter.java new file mode 100644 index 0000000000..df7ef4cfda --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualDataPropertyWriter.java @@ -0,0 +1,99 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +import com.squareup.javapoet.ArrayTypeName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.utils.BlockStateMapping; +import io.papermc.generator.utils.NamingManager; +import java.lang.reflect.Field; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.Property; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; +import org.jspecify.annotations.NullMarked; + +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class VirtualDataPropertyWriter extends DataPropertyWriterBase { + + private final VirtualField virtualField; + protected @MonotonicNonNull Class indexClass; + protected @MonotonicNonNull TypeName fieldType; + + protected VirtualDataPropertyWriter(VirtualField virtualField, Collection> properties, Class blockClass) { + super(properties, blockClass); + this.virtualField = virtualField; + this.computeTypes(virtualField); + } + + protected void computeTypes(VirtualField virtualField) { + switch (virtualField.holderType()) { + case ARRAY -> { + this.indexClass = Integer.TYPE; + this.fieldType = ArrayTypeName.of(virtualField.valueType()); + } + case LIST -> { + this.indexClass = Integer.TYPE; + this.fieldType = ParameterizedTypeName.get(List.class, virtualField.valueType()); + } + case MAP -> { + if (virtualField.keyClass() != null) { + this.indexClass = virtualField.keyClass(); + } else { + this.indexClass = this.properties.iterator().next().getValueClass(); + if (this.indexClass.isEnum()) { + this.indexClass = BlockStateMapping.ENUM_BRIDGE.getOrDefault(this.indexClass, (Class>) this.indexClass); + } + } + this.fieldType = ParameterizedTypeName.get(Map.class, this.indexClass, virtualField.valueType()); + } + } + } + + @Override + public FieldSpec.Builder getOrCreateField(Map, Field> fields) { + FieldSpec.Builder fieldBuilder = FieldSpec.builder(this.fieldType, this.virtualField.name(), PRIVATE, STATIC, FINAL); + if (this.getType() == DataHolderType.ARRAY || this.getType() == DataHolderType.LIST) { + CodeBlock.Builder code = CodeBlock.builder(); + this.createSyntheticCollection(code, this.getType() == DataHolderType.ARRAY, fields); + fieldBuilder.initializer(code.build()); + } else if (this.getType() == DataHolderType.MAP) { + CodeBlock.Builder code = CodeBlock.builder(); + this.createSyntheticMap(code, this.indexClass, fields); + fieldBuilder.initializer(code.build()); + } + + return fieldBuilder; + } + + @Override + public Class getIndexClass() { + return this.indexClass; + } + + @Override + public DataHolderType getType() { + return this.virtualField.holderType(); + } + + @Override + public String getBaseName() { + return this.virtualField.baseName(); + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase converter, CraftBlockDataGenerator generator, NamingManager naming) { + + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualField.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualField.java new file mode 100644 index 0000000000..26245f80d7 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/VirtualField.java @@ -0,0 +1,72 @@ +package io.papermc.generator.types.craftblockdata.property.holder; + +import com.google.common.base.Preconditions; +import com.google.common.reflect.TypeToken; +import java.lang.reflect.Type; +import java.util.Collection; +import java.util.List; +import net.minecraft.world.level.block.state.properties.Property; +import org.jetbrains.annotations.Contract; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public record VirtualField( + String name, + Type valueType, + DataHolderType holderType, + String baseName, + @Nullable Class keyClass, + Collection> values +) { + + @Contract(value = "_, _, _, _ -> new", pure = true) + public static >> VirtualField.FieldValue createCollection(String name, TypeToken valueType, boolean isArray, String baseName) { + return new VirtualField.FieldValue<>(name, valueType, isArray ? DataHolderType.ARRAY : DataHolderType.LIST, baseName, null); + } + + @Contract(value = "_, _, _, _ -> new", pure = true) + public static >> VirtualField.FieldValue createCollection(String name, Class valueType, boolean isArray, String baseName) { + return createCollection(name, TypeToken.of(valueType), isArray, baseName); + } + + @Contract(value = "_, _, _, _ -> new", pure = true) + public static >> VirtualField.FieldValue createMap(String name, Class keyClass, TypeToken valueType, String baseName) { + return new VirtualField.FieldValue<>(name, valueType, DataHolderType.MAP, baseName, keyClass); + } + + @Contract(value = "_, _, _, _ -> new", pure = true) + public static >> VirtualField.FieldValue createMap(String name, Class keyClass, Class valueType, String baseName) { + return createMap(name, keyClass, TypeToken.of(valueType), baseName); + } + + public static class FieldValue>> { + + private final String name; + private final DataHolderType holderType; + private final TypeToken valueTypeToken; + private final String baseName; + private final @Nullable Class keyClass; + + private @Nullable Collection values; + + public FieldValue(String name, TypeToken valueTypeToken, DataHolderType holderType, String baseName, @Nullable Class keyClass) { + this.name = name; + this.valueTypeToken = valueTypeToken; + this.holderType = holderType; + this.baseName = baseName; + this.keyClass = keyClass; + } + + @Contract(value = "_ -> this", mutates = "this") + public FieldValue withValues(Collection properties) { + this.values = List.copyOf(properties); + return this; + } + + public VirtualField make() { + Preconditions.checkState(this.values != null && !this.values.isEmpty(), "The field should doesn't have any content"); + return new VirtualField(this.name, this.valueTypeToken.getType(), this.holderType, this.baseName, this.keyClass, this.values); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ArrayAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ArrayAppender.java new file mode 100644 index 0000000000..88853a234f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ArrayAppender.java @@ -0,0 +1,54 @@ +package io.papermc.generator.types.craftblockdata.property.holder.appender; + +import com.google.common.collect.ImmutableSet; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import io.papermc.generator.utils.CommonVariable; +import io.papermc.generator.utils.NamingManager; +import java.util.Set; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class ArrayAppender implements DataAppender { + + @Override + public DataHolderType getType() { + return DataHolderType.ARRAY; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase childConverter, CraftBlockDataGenerator generator, NamingManager naming) { + if (childConverter.getApiType() == Boolean.TYPE) { + String collectVarName = naming.getVariableNameWrapper().post("s").concat(); + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getMethodNameWrapper().post("s").concat()); + methodBuilder.addStatement("$T $L = $T.builder()", ParameterizedTypeName.get(ImmutableSet.Builder.class, Integer.class), collectVarName, ImmutableSet.class); + methodBuilder.beginControlFlow("for (int $1L = 0, len = $2N.length; $1L < len; $1L++)", CommonVariable.INDEX, field); + { + methodBuilder.beginControlFlow("if (" + childConverter.rawGetExprent().formatted("$N[$N]") + ")", field, indexParameter); + { + methodBuilder.addStatement("$L.add($L)", collectVarName, CommonVariable.INDEX); + } + methodBuilder.endControlFlow(); + } + methodBuilder.endControlFlow(); + methodBuilder.addStatement("return $L.build()", collectVarName); + methodBuilder.returns(ParameterizedTypeName.get(Set.class, Integer.class)); + + builder.addMethod(methodBuilder.build()); + } + + { + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getMethodNameWrapper().pre("Maximum").post("s").concat()); + methodBuilder.addStatement("return $N.length", field); + methodBuilder.returns(Integer.TYPE); + + builder.addMethod(methodBuilder.build()); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppender.java new file mode 100644 index 0000000000..3d42772f69 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppender.java @@ -0,0 +1,18 @@ +package io.papermc.generator.types.craftblockdata.property.holder.appender; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import io.papermc.generator.utils.NamingManager; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface DataAppender { + + DataHolderType getType(); + + void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase converter, CraftBlockDataGenerator generator, NamingManager naming); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppenders.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppenders.java new file mode 100644 index 0000000000..fb484ff56b --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/DataAppenders.java @@ -0,0 +1,24 @@ +package io.papermc.generator.types.craftblockdata.property.holder.appender; + +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class DataAppenders { + + private static final Map APPENDERS = Stream.of( + new ArrayAppender(), + new ListAppender(), + new MapAppender() + ).collect(Collectors.toUnmodifiableMap(DataAppender::getType, key -> key)); + + public static void ifPresent(DataHolderType type, Consumer callback) { + if (APPENDERS.containsKey(type)) { + callback.accept(APPENDERS.get(type)); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ListAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ListAppender.java new file mode 100644 index 0000000000..67c4d72bac --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/ListAppender.java @@ -0,0 +1,61 @@ +package io.papermc.generator.types.craftblockdata.property.holder.appender; + +import com.google.common.collect.ImmutableSet; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import io.papermc.generator.utils.CommonVariable; +import io.papermc.generator.utils.NamingManager; +import java.util.Map; +import java.util.Set; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class ListAppender implements DataAppender { + + private static final Map METHOD_BASE_RENAMES = Map.of( + "SlotOccupied", "OccupiedSlot" + ); + + @Override + public DataHolderType getType() { + return DataHolderType.LIST; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase childConverter, CraftBlockDataGenerator generator, NamingManager naming) { + NamingManager.NameWrapper methodName = NamingManager.NameWrapper.wrap("get", METHOD_BASE_RENAMES.getOrDefault(naming.getMethodBaseName(), naming.getMethodBaseName())); + + if (childConverter.getApiType() == Boolean.TYPE) { + String collectVarName = naming.getVariableNameWrapper().post("s").concat(); + MethodSpec.Builder methodBuilder = generator.createMethod(methodName.post("s").concat()); + methodBuilder.addStatement("$T $L = $T.builder()", ParameterizedTypeName.get(ImmutableSet.Builder.class, Integer.class), collectVarName, ImmutableSet.class); + methodBuilder.beginControlFlow("for (int $1L = 0, size = $2N.size(); $1L < size; $1L++)", CommonVariable.INDEX, field); + { + methodBuilder.beginControlFlow("if (" + childConverter.rawGetExprent().formatted("$N.get($N)") + ")", field, indexParameter); + { + methodBuilder.addStatement("$L.add($L)", collectVarName, CommonVariable.INDEX); + } + methodBuilder.endControlFlow(); + } + methodBuilder.endControlFlow(); + methodBuilder.addStatement("return $L.build()", collectVarName); + methodBuilder.returns(ParameterizedTypeName.get(Set.class, Integer.class)); + + builder.addMethod(methodBuilder.build()); + } + + { + MethodSpec.Builder methodBuilder = generator.createMethod(methodName.pre("Maximum").post("s").concat()); + methodBuilder.addStatement("return $N.size()", field); + methodBuilder.returns(Integer.TYPE); + + builder.addMethod(methodBuilder.build()); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/MapAppender.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/MapAppender.java new file mode 100644 index 0000000000..f7ebd43ffd --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/appender/MapAppender.java @@ -0,0 +1,58 @@ +package io.papermc.generator.types.craftblockdata.property.holder.appender; + +import com.google.common.collect.ImmutableSet; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.types.craftblockdata.CraftBlockDataGenerator; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import io.papermc.generator.utils.CommonVariable; +import io.papermc.generator.utils.NamingManager; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class MapAppender implements DataAppender { + + @Override + public DataHolderType getType() { + return DataHolderType.MAP; + } + + @Override + public void addExtras(TypeSpec.Builder builder, FieldSpec field, ParameterSpec indexParameter, ConverterBase childConverter, CraftBlockDataGenerator generator, NamingManager naming) { + if (childConverter.getApiType() == Boolean.TYPE) { + String collectVarName = naming.getVariableNameWrapper().post("s").concat(); + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getMethodNameWrapper().post("s").concat()); + methodBuilder.addStatement("$T $L = $T.builder()", ParameterizedTypeName.get(ClassName.get(ImmutableSet.Builder.class), indexParameter.type), collectVarName, ImmutableSet.class); + methodBuilder.beginControlFlow("for ($T $N : $N.entrySet())", ParameterizedTypeName.get(ClassName.get(Map.Entry.class), indexParameter.type, ClassName.get(BooleanProperty.class)), CommonVariable.MAP_ENTRY, field); + { + methodBuilder.beginControlFlow("if (" + childConverter.rawGetExprent().formatted("$L.getValue()") + ")", CommonVariable.MAP_ENTRY); + { + methodBuilder.addStatement("$L.add($N.getKey())", collectVarName, CommonVariable.MAP_ENTRY); + } + methodBuilder.endControlFlow(); + } + methodBuilder.endControlFlow(); + methodBuilder.addStatement("return $L.build()", collectVarName); + methodBuilder.returns(ParameterizedTypeName.get(ClassName.get(Set.class), indexParameter.type)); + + builder.addMethod(methodBuilder.build()); + } + + { + MethodSpec.Builder methodBuilder = generator.createMethod(naming.getMethodNameWrapper().pre("Allowed").post("s").concat()); + methodBuilder.addStatement("return $T.unmodifiableSet($N.keySet())", Collections.class, field); + methodBuilder.returns(ParameterizedTypeName.get(ClassName.get(Set.class), indexParameter.type)); + + builder.addMethod(methodBuilder.build()); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ArrayConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ArrayConverter.java new file mode 100644 index 0000000000..a9b943bc0a --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ArrayConverter.java @@ -0,0 +1,32 @@ +package io.papermc.generator.types.craftblockdata.property.holder.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import io.papermc.generator.types.craftblockdata.property.EnumPropertyWriter; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class ArrayConverter implements DataConverter { + + @Override + public DataHolderType getType() { + return DataHolderType.ARRAY; + } + + @Override + public void convertSetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter, ParameterSpec parameter) { + method.addStatement(childConverter.rawSetExprent().formatted("$N[$N]"), field, indexParameter, parameter); + } + + @Override + public void convertGetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter) { + if (childConverter instanceof EnumPropertyWriter enumConverter) { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$N[$N]"), field, indexParameter, enumConverter.getApiType()); + } else { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$N[$N]"), field, indexParameter); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverter.java new file mode 100644 index 0000000000..596eb31cc6 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverter.java @@ -0,0 +1,18 @@ +package io.papermc.generator.types.craftblockdata.property.holder.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface DataConverter { + + DataHolderType getType(); + + void convertSetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter, ParameterSpec parameter); + + void convertGetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverters.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverters.java new file mode 100644 index 0000000000..cfe7e37d4e --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/DataConverters.java @@ -0,0 +1,25 @@ +package io.papermc.generator.types.craftblockdata.property.holder.converter; + +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class DataConverters { + + private static final Map CONVERTERS = Stream.of( + new ArrayConverter(), + new ListConverter(), + new MapConverter() + ).collect(Collectors.toUnmodifiableMap(DataConverter::getType, key -> key)); + + public static DataConverter getOrThrow(DataHolderType type) { + DataConverter converter = CONVERTERS.get(type); + if (converter == null) { + throw new IllegalStateException("Cannot handle data holder type: " + type); + } + return converter; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ListConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ListConverter.java new file mode 100644 index 0000000000..157b519345 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/ListConverter.java @@ -0,0 +1,32 @@ +package io.papermc.generator.types.craftblockdata.property.holder.converter; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import io.papermc.generator.types.craftblockdata.property.EnumPropertyWriter; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class ListConverter implements DataConverter { + + @Override + public DataHolderType getType() { + return DataHolderType.LIST; + } + + @Override + public void convertSetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter, ParameterSpec parameter) { + method.addStatement(childConverter.rawSetExprent().formatted("$N.get($N)"), field, indexParameter, parameter); + } + + @Override + public void convertGetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter) { + if (childConverter instanceof EnumPropertyWriter enumConverter) { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$N.get($N)"), field, indexParameter, enumConverter.getApiType()); + } else { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$N.get($N)"), field, indexParameter); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/MapConverter.java b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/MapConverter.java new file mode 100644 index 0000000000..73903ef5f9 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/craftblockdata/property/holder/converter/MapConverter.java @@ -0,0 +1,45 @@ +package io.papermc.generator.types.craftblockdata.property.holder.converter; + +import com.google.common.base.Preconditions; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import io.papermc.generator.types.craftblockdata.property.EnumPropertyWriter; +import io.papermc.generator.types.craftblockdata.property.converter.ConverterBase; +import io.papermc.generator.types.craftblockdata.property.holder.DataHolderType; +import java.util.stream.Collectors; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class MapConverter implements DataConverter { + + private static final String PROPERTY_VAR = "property"; + + @Override + public DataHolderType getType() { + return DataHolderType.MAP; + } + + @Override + public void convertSetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter, ParameterSpec parameter) { + method.addStatement("$T $L = $N.get($N)", ((ParameterizedTypeName) field.type).typeArguments.get(1), PROPERTY_VAR, field, indexParameter); + method.addStatement("$T.checkArgument($N != null, $S, $N.keySet().stream().map($T::name).collect($T.joining($S)))", + Preconditions.class, PROPERTY_VAR, "Invalid " + indexParameter.name + ", only %s are allowed!", field, Enum.class, Collectors.class, ", "); + + method.addStatement(childConverter.rawSetExprent().formatted("$L"), PROPERTY_VAR, parameter); + } + + @Override + public void convertGetter(ConverterBase childConverter, MethodSpec.Builder method, FieldSpec field, ParameterSpec indexParameter) { + method.addStatement("$T $L = $N.get($N)", ((ParameterizedTypeName) field.type).typeArguments.get(1), PROPERTY_VAR, field, indexParameter); + method.addStatement("$T.checkArgument($N != null, $S, $N.keySet().stream().map($T::name).collect($T.joining($S)))", + Preconditions.class, PROPERTY_VAR, "Invalid " + indexParameter.name + ", only %s are allowed!", field, Enum.class, Collectors.class, ", "); + + if (childConverter instanceof EnumPropertyWriter enumConverter) { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$L"), PROPERTY_VAR, enumConverter.getApiType()); + } else { + method.addStatement("return " + childConverter.rawGetExprent().formatted("$L"), PROPERTY_VAR); + } + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java b/paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java similarity index 76% rename from paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java rename to paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java index abcc93e61a..0740f0d3bd 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java +++ b/paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalGenerator.java @@ -3,7 +3,6 @@ package io.papermc.generator.types.goal; import com.destroystokyo.paper.entity.ai.GoalKey; import com.squareup.javapoet.ClassName; import com.squareup.javapoet.FieldSpec; -import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.MethodSpec; import com.squareup.javapoet.ParameterSpec; import com.squareup.javapoet.ParameterizedTypeName; @@ -16,28 +15,29 @@ import io.papermc.generator.types.SimpleGenerator; import io.papermc.generator.utils.Annotations; import io.papermc.generator.utils.Formatting; import io.papermc.generator.utils.Javadocs; +import io.papermc.typewriter.util.ClassHelper; import java.util.Comparator; import java.util.List; +import java.util.stream.Stream; import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.goal.GoalSelector; import net.minecraft.world.entity.ai.goal.WrappedGoal; import org.bukkit.NamespacedKey; import org.bukkit.entity.Mob; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.framework.qual.DefaultQualifier; -import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked; import static javax.lang.model.element.Modifier.FINAL; import static javax.lang.model.element.Modifier.PRIVATE; import static javax.lang.model.element.Modifier.PUBLIC; import static javax.lang.model.element.Modifier.STATIC; -@DefaultQualifier(NonNull.class) +@NullMarked public class MobGoalGenerator extends SimpleGenerator { - private static final String CLASS_HEADER = Javadocs.getVersionDependentClassHeader("Mob Goals"); + private static final String CLASS_HEADER = Javadocs.getVersionDependentClassHeader("keys", "Mob Goals"); - public MobGoalGenerator(final String keysClassName, final String pkg) { - super(keysClassName, pkg); + public MobGoalGenerator(String className, String packageName) { + super(className, packageName); } @Override @@ -51,9 +51,8 @@ public class MobGoalGenerator extends SimpleGenerator { .addJavadoc(CLASS_HEADER); TypeName mobType = ParameterizedTypeName.get(ClassName.get(Class.class), type); - TypeName keyType = TypeName.get(String.class); - ParameterSpec keyParam = ParameterSpec.builder(keyType, "key", FINAL).build(); + ParameterSpec keyParam = ParameterSpec.builder(String.class, "key", FINAL).build(); ParameterSpec typeParam = ParameterSpec.builder(mobType, "type", FINAL).build(); MethodSpec.Builder createMethod = MethodSpec.methodBuilder("create") .addModifiers(PRIVATE, STATIC) @@ -68,33 +67,25 @@ public class MobGoalGenerator extends SimpleGenerator { classes = scanResult.getSubclasses(Goal.class.getName()).loadClasses(Goal.class); } - List> vanillaNames = classes.stream() + Stream> vanillaGoals = classes.stream() .filter(clazz -> !java.lang.reflect.Modifier.isAbstract(clazz.getModifiers())) + .filter(clazz -> !clazz.isAnonymousClass() || ClassHelper.getTopLevelClass(clazz) != GoalSelector.class) .filter(clazz -> !WrappedGoal.class.equals(clazz)) // TODO - properly fix - .map(goalClass -> MobGoalNames.getKey(goalClass.getName(), goalClass)) - .filter((key) -> !MobGoalNames.isIgnored(key.getNamespacedKey().getKey())) + .map(MobGoalNames::getKey) .sorted(Comparator., String>comparing(o -> o.getEntityClass().getSimpleName()) .thenComparing(vanillaGoalKey -> vanillaGoalKey.getNamespacedKey().getKey()) - ) - .toList(); + ); - - for (final GoalKey goalKey : vanillaNames) { - TypeName typedKey = ParameterizedTypeName.get(GoalKey.class, goalKey.getEntityClass()); - NamespacedKey key = goalKey.getNamespacedKey(); - - String keyPath = key.getKey(); + vanillaGoals.forEach(goalKey -> { + String keyPath = goalKey.getNamespacedKey().getKey(); String fieldName = Formatting.formatKeyAsField(keyPath); + + TypeName typedKey = ParameterizedTypeName.get(GoalKey.class, goalKey.getEntityClass()); FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKey, fieldName, PUBLIC, STATIC, FINAL) .initializer("$N($S, $T.class)", createMethod.build(), keyPath, goalKey.getEntityClass()); typeBuilder.addField(fieldBuilder.build()); - } + }); return typeBuilder.addMethod(createMethod.build()).build(); } - - @Override - protected JavaFile.Builder file(JavaFile.Builder builder) { - return builder; - } } diff --git a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java b/paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java similarity index 51% rename from paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java rename to paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java index 047b9af5f7..261763fb53 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java +++ b/paper-generator/src/main/java/io/papermc/generator/types/goal/MobGoalNames.java @@ -2,140 +2,32 @@ package io.papermc.generator.types.goal; import com.destroystokyo.paper.entity.RangedEntity; import com.destroystokyo.paper.entity.ai.GoalKey; -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import net.minecraft.world.entity.FlyingMob; -import net.minecraft.world.entity.PathfinderMob; -import net.minecraft.world.entity.TamableAnimal; -import net.minecraft.world.entity.ai.goal.Goal; -import net.minecraft.world.entity.ambient.AmbientCreature; -import net.minecraft.world.entity.animal.AbstractFish; -import net.minecraft.world.entity.animal.AbstractGolem; -import net.minecraft.world.entity.animal.AbstractSchoolingFish; -import net.minecraft.world.entity.animal.Animal; -import net.minecraft.world.entity.animal.Pufferfish; -import net.minecraft.world.entity.animal.ShoulderRidingEntity; -import net.minecraft.world.entity.animal.SnowGolem; -import net.minecraft.world.entity.animal.WaterAnimal; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; -import net.minecraft.world.entity.boss.wither.WitherBoss; -import net.minecraft.world.entity.monster.AbstractIllager; -import net.minecraft.world.entity.monster.EnderMan; -import net.minecraft.world.entity.monster.PatrollingMonster; -import net.minecraft.world.entity.monster.RangedAttackMob; -import net.minecraft.world.entity.monster.SpellcasterIllager; -import net.minecraft.world.entity.monster.ZombifiedPiglin; -import net.minecraft.world.entity.monster.piglin.AbstractPiglin; -import org.bukkit.NamespacedKey; -import org.bukkit.entity.AbstractHorse; -import org.bukkit.entity.AbstractSkeleton; -import org.bukkit.entity.AbstractVillager; -import org.bukkit.entity.Ageable; -import org.bukkit.entity.Ambient; -import org.bukkit.entity.Animals; -import org.bukkit.entity.Bat; -import org.bukkit.entity.Bee; -import org.bukkit.entity.Blaze; -import org.bukkit.entity.Cat; -import org.bukkit.entity.CaveSpider; -import org.bukkit.entity.ChestedHorse; -import org.bukkit.entity.Chicken; -import org.bukkit.entity.Cod; -import org.bukkit.entity.Cow; -import org.bukkit.entity.Creature; -import org.bukkit.entity.Creeper; -import org.bukkit.entity.Dolphin; -import org.bukkit.entity.Donkey; -import org.bukkit.entity.Drowned; -import org.bukkit.entity.ElderGuardian; -import org.bukkit.entity.EnderDragon; -import org.bukkit.entity.Enderman; -import org.bukkit.entity.Endermite; -import org.bukkit.entity.Evoker; -import org.bukkit.entity.Fish; -import org.bukkit.entity.Flying; -import org.bukkit.entity.Fox; -import org.bukkit.entity.Ghast; -import org.bukkit.entity.Giant; -import org.bukkit.entity.Golem; -import org.bukkit.entity.Guardian; -import org.bukkit.entity.Hoglin; -import org.bukkit.entity.Horse; -import org.bukkit.entity.Husk; -import org.bukkit.entity.Illager; -import org.bukkit.entity.Illusioner; -import org.bukkit.entity.IronGolem; -import org.bukkit.entity.Llama; -import org.bukkit.entity.MagmaCube; -import org.bukkit.entity.Mob; -import org.bukkit.entity.Monster; -import org.bukkit.entity.Mule; -import org.bukkit.entity.MushroomCow; -import org.bukkit.entity.Ocelot; -import org.bukkit.entity.Panda; -import org.bukkit.entity.Parrot; -import org.bukkit.entity.Phantom; -import org.bukkit.entity.Pig; -import org.bukkit.entity.PigZombie; -import org.bukkit.entity.Piglin; -import org.bukkit.entity.PiglinAbstract; -import org.bukkit.entity.PiglinBrute; -import org.bukkit.entity.Pillager; -import org.bukkit.entity.PolarBear; -import org.bukkit.entity.PufferFish; -import org.bukkit.entity.Rabbit; -import org.bukkit.entity.Raider; -import org.bukkit.entity.Ravager; -import org.bukkit.entity.Salmon; -import org.bukkit.entity.Sheep; -import org.bukkit.entity.Shulker; -import org.bukkit.entity.Silverfish; -import org.bukkit.entity.Skeleton; -import org.bukkit.entity.SkeletonHorse; -import org.bukkit.entity.Slime; -import org.bukkit.entity.Snowman; -import org.bukkit.entity.Spellcaster; -import org.bukkit.entity.Spider; -import org.bukkit.entity.Squid; -import org.bukkit.entity.Stray; -import org.bukkit.entity.Strider; -import org.bukkit.entity.Tameable; -import org.bukkit.entity.TraderLlama; -import org.bukkit.entity.TropicalFish; -import org.bukkit.entity.Turtle; -import org.bukkit.entity.Vex; -import org.bukkit.entity.Villager; -import org.bukkit.entity.Vindicator; -import org.bukkit.entity.WanderingTrader; -import org.bukkit.entity.WaterMob; -import org.bukkit.entity.Witch; -import org.bukkit.entity.Wither; -import org.bukkit.entity.WitherSkeleton; -import org.bukkit.entity.Wolf; -import org.bukkit.entity.Zoglin; -import org.bukkit.entity.Zombie; -import org.bukkit.entity.ZombieHorse; -import org.bukkit.entity.ZombieVillager; - +import com.google.common.base.CaseFormat; +import io.papermc.generator.utils.Formatting; +import io.papermc.paper.entity.SchoolableFish; import java.lang.reflect.Constructor; import java.util.HashMap; -import java.util.HashSet; -import java.util.Locale; +import java.util.LinkedHashMap; import java.util.Map; -import java.util.Set; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.monster.RangedAttackMob; +import org.apache.commons.lang3.math.NumberUtils; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.*; +import org.jspecify.annotations.NullMarked; -public class MobGoalNames { +@NullMarked +public final class MobGoalNames { // todo sync with MobGoalHelper ideally this should not be duplicated private static final Map, Class> entityClassCache = new HashMap<>(); - public static final Map, Class> bukkitMap = new HashMap<>(); - + public static final Map, Class> bukkitMap = new LinkedHashMap<>(); static { // bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class); bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class); - bukkitMap.put(AmbientCreature.class, Ambient.class); - bukkitMap.put(Animal.class, Animals.class); + bukkitMap.put(net.minecraft.world.entity.ambient.AmbientCreature.class, Ambient.class); + bukkitMap.put(net.minecraft.world.entity.animal.Animal.class, Animals.class); bukkitMap.put(net.minecraft.world.entity.ambient.Bat.class, Bat.class); bukkitMap.put(net.minecraft.world.entity.animal.Bee.class, Bee.class); bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class); @@ -144,51 +36,51 @@ public class MobGoalNames { bukkitMap.put(net.minecraft.world.entity.animal.Chicken.class, Chicken.class); bukkitMap.put(net.minecraft.world.entity.animal.Cod.class, Cod.class); bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class); - bukkitMap.put(PathfinderMob.class, Creature.class); + bukkitMap.put(net.minecraft.world.entity.PathfinderMob.class, Creature.class); bukkitMap.put(net.minecraft.world.entity.monster.Creeper.class, Creeper.class); bukkitMap.put(net.minecraft.world.entity.animal.Dolphin.class, Dolphin.class); bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class); bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.class); - bukkitMap.put(EnderMan.class, Enderman.class); + bukkitMap.put(net.minecraft.world.entity.monster.EnderMan.class, Enderman.class); bukkitMap.put(net.minecraft.world.entity.monster.Endermite.class, Endermite.class); bukkitMap.put(net.minecraft.world.entity.monster.Evoker.class, Evoker.class); - bukkitMap.put(AbstractFish.class, Fish.class); - bukkitMap.put(AbstractSchoolingFish.class, io.papermc.paper.entity.SchoolableFish.class); - bukkitMap.put(FlyingMob.class, Flying.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractFish.class, Fish.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractSchoolingFish.class, SchoolableFish.class); + bukkitMap.put(net.minecraft.world.entity.FlyingMob.class, Flying.class); bukkitMap.put(net.minecraft.world.entity.animal.Fox.class, Fox.class); bukkitMap.put(net.minecraft.world.entity.monster.Ghast.class, Ghast.class); bukkitMap.put(net.minecraft.world.entity.monster.Giant.class, Giant.class); - bukkitMap.put(AbstractGolem.class, Golem.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractGolem.class, Golem.class); bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class); bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class); - bukkitMap.put(AbstractChestedHorse.class, ChestedHorse.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractChestedHorse.class, ChestedHorse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Mule.class, Mule.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.SkeletonHorse.class, SkeletonHorse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class); bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, org.bukkit.entity.Camel.class); - bukkitMap.put(AbstractIllager.class, Illager.class); + bukkitMap.put(net.minecraft.world.entity.monster.AbstractIllager.class, Illager.class); bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.class); - bukkitMap.put(SpellcasterIllager.class, Spellcaster.class); + bukkitMap.put(net.minecraft.world.entity.monster.SpellcasterIllager.class, Spellcaster.class); bukkitMap.put(net.minecraft.world.entity.animal.IronGolem.class, IronGolem.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Llama.class, Llama.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.TraderLlama.class, TraderLlama.class); bukkitMap.put(net.minecraft.world.entity.monster.MagmaCube.class, MagmaCube.class); bukkitMap.put(net.minecraft.world.entity.monster.Monster.class, Monster.class); - bukkitMap.put(PatrollingMonster.class, Raider.class); // close enough + bukkitMap.put(net.minecraft.world.entity.monster.PatrollingMonster.class, Raider.class); // close enough bukkitMap.put(net.minecraft.world.entity.animal.MushroomCow.class, MushroomCow.class); bukkitMap.put(net.minecraft.world.entity.animal.Ocelot.class, Ocelot.class); bukkitMap.put(net.minecraft.world.entity.animal.Panda.class, Panda.class); bukkitMap.put(net.minecraft.world.entity.animal.Parrot.class, Parrot.class); - bukkitMap.put(ShoulderRidingEntity.class, Parrot.class); // close enough + bukkitMap.put(net.minecraft.world.entity.animal.ShoulderRidingEntity.class, Parrot.class); // close enough bukkitMap.put(net.minecraft.world.entity.monster.Phantom.class, Phantom.class); bukkitMap.put(net.minecraft.world.entity.animal.Pig.class, Pig.class); - bukkitMap.put(ZombifiedPiglin.class, PigZombie.class); + bukkitMap.put(net.minecraft.world.entity.monster.ZombifiedPiglin.class, PigZombie.class); bukkitMap.put(net.minecraft.world.entity.monster.Pillager.class, Pillager.class); bukkitMap.put(net.minecraft.world.entity.animal.PolarBear.class, PolarBear.class); - bukkitMap.put(Pufferfish.class, PufferFish.class); + bukkitMap.put(net.minecraft.world.entity.animal.Pufferfish.class, PufferFish.class); bukkitMap.put(net.minecraft.world.entity.animal.Rabbit.class, Rabbit.class); bukkitMap.put(net.minecraft.world.entity.raid.Raider.class, Raider.class); bukkitMap.put(net.minecraft.world.entity.monster.Ravager.class, Ravager.class); @@ -201,10 +93,10 @@ public class MobGoalNames { bukkitMap.put(net.minecraft.world.entity.monster.Stray.class, Stray.class); bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class); bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class); - bukkitMap.put(SnowGolem.class, Snowman.class); + bukkitMap.put(net.minecraft.world.entity.animal.SnowGolem.class, Snowman.class); bukkitMap.put(net.minecraft.world.entity.monster.Spider.class, Spider.class); bukkitMap.put(net.minecraft.world.entity.animal.Squid.class, Squid.class); - bukkitMap.put(TamableAnimal.class, Tameable.class); + bukkitMap.put(net.minecraft.world.entity.TamableAnimal.class, Tameable.class); bukkitMap.put(net.minecraft.world.entity.animal.TropicalFish.class, TropicalFish.class); bukkitMap.put(net.minecraft.world.entity.animal.Turtle.class, Turtle.class); bukkitMap.put(net.minecraft.world.entity.monster.Vex.class, Vex.class); @@ -212,108 +104,85 @@ public class MobGoalNames { bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class); bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class); bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class); - bukkitMap.put(WaterAnimal.class, WaterMob.class); + bukkitMap.put(net.minecraft.world.entity.animal.WaterAnimal.class, WaterMob.class); bukkitMap.put(net.minecraft.world.entity.monster.Witch.class, Witch.class); - bukkitMap.put(WitherBoss.class, Wither.class); + bukkitMap.put(net.minecraft.world.entity.boss.wither.WitherBoss.class, Wither.class); bukkitMap.put(net.minecraft.world.entity.animal.Wolf.class, Wolf.class); bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class); bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class); bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class); bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class); bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class); - bukkitMap.put(AbstractPiglin.class, PiglinAbstract.class); + bukkitMap.put(net.minecraft.world.entity.monster.piglin.AbstractPiglin.class, PiglinAbstract.class); bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.class); bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class); bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class); - bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, org.bukkit.entity.GlowSquid.class); - bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, org.bukkit.entity.Axolotl.class); - bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, org.bukkit.entity.Goat.class); - bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, org.bukkit.entity.Frog.class); - bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, org.bukkit.entity.Tadpole.class); - bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, org.bukkit.entity.Warden.class); - bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, org.bukkit.entity.Allay.class); - bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, org.bukkit.entity.Sniffer.class); - bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, org.bukkit.entity.Breeze.class); - bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class); - bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class); - bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class); - bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough + bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, GlowSquid.class); + bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, Axolotl.class); + bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, Goat.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, Frog.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, Tadpole.class); + bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, Warden.class); + bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, Allay.class); + bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, Sniffer.class); + bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, Breeze.class); + bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, Armadillo.class); + bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, Bogged.class); + bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, Creaking.class); + bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, Squid.class); // close enough // } - private static final BiMap deobfuscationMap = HashBiMap.create(); - static final Set ignored = new HashSet<>(); + private static final Map deobfuscationMap = new HashMap<>(); static { + // TODO these kinda should be checked on each release, in case obfuscation changes deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee"); - - ignored.add("goal_selector_1"); - ignored.add("goal_selector_2"); - ignored.add("selector_1"); - ignored.add("selector_2"); - ignored.add("wrapped"); } - public static String getUsableName(String name) { - final String original = name; - name = name.substring(name.lastIndexOf(".") + 1); - boolean flag = false; + private static String getPathName(String name) { + String pathName = name.substring(name.lastIndexOf('.') + 1); + boolean needDeobfMap = false; + // inner classes - if (name.contains("$")) { - String cut = name.substring(name.indexOf("$") + 1); - if (cut.length() <= 2) { - name = name.replace("Entity", ""); - name = name.replace("$", "_"); - flag = true; - } else { - // mapped, wooo - name = cut; + int firstInnerDelimiter = pathName.indexOf('$'); + if (firstInnerDelimiter != -1) { + String innerClassName = pathName.substring(firstInnerDelimiter + 1); + for (String nestedClass : innerClassName.split("\\$")) { + if (NumberUtils.isDigits(nestedClass)) { + needDeobfMap = true; + break; + } } + if (!needDeobfMap) { + pathName = innerClassName; + } + pathName = pathName.replace('$', '_'); + // mapped, wooo! } - name = name.replace("PathfinderGoal", ""); - name = name.replace("TargetGoal", ""); - name = name.replace("Goal", ""); - StringBuilder sb = new StringBuilder(); - for (char c : name.toCharArray()) { - if (c >= 'A' && c <= 'Z') { - sb.append("_"); - sb.append(Character.toLowerCase(c)); - } else { - sb.append(c); - } - } - name = sb.toString(); - name = name.replaceFirst("_", ""); + pathName = Formatting.stripWordOfCamelCaseName(pathName, "TargetGoal", true); // replace last? reverse search? + pathName = Formatting.stripWordOfCamelCaseName(pathName, "Goal", true); + pathName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, pathName); - if (flag && !deobfuscationMap.containsKey(name.toLowerCase(Locale.ROOT)) && !ignored.contains(name)) { - System.out.println("need to map " + original + " (" + name.toLowerCase(Locale.ROOT) + ")"); + if (needDeobfMap && !deobfuscationMap.containsKey(pathName)) { + System.err.println("need to map " + name + " (" + pathName + ")"); } // did we rename this key? - return deobfuscationMap.getOrDefault(name, name); + return deobfuscationMap.getOrDefault(pathName, pathName); } - public static boolean isIgnored(String name) { - return ignored.contains(name); - } - - - public static GoalKey getKey(String clazzName, Class goalClass) { - String name = getUsableName(clazzName); - if (MobGoalNames.isIgnored(name)) { - //noinspection unchecked - return (GoalKey) GoalKey.of(Mob.class, NamespacedKey.minecraft(name)); - } + public static GoalKey getKey(Class goalClass) { + String name = getPathName(goalClass.getName()); return GoalKey.of(getEntity(goalClass), NamespacedKey.minecraft(name)); } - public static Class getEntity(Class goalClass) { + private static Class getEntity(Class goalClass) { //noinspection unchecked return (Class) entityClassCache.computeIfAbsent(goalClass, key -> { for (Constructor ctor : key.getDeclaredConstructors()) { - for (int i = 0; i < ctor.getParameterCount(); i++) { - Class param = ctor.getParameterTypes()[i]; + for (Class param : ctor.getParameterTypes()) { if (net.minecraft.world.entity.Mob.class.isAssignableFrom(param)) { //noinspection unchecked return toBukkitClass((Class) param); @@ -322,11 +191,11 @@ public class MobGoalNames { } } } - throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return EntityInsentient? + throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return Mob? }); } - public static Class toBukkitClass(Class nmsClass) { + private static Class toBukkitClass(Class nmsClass) { Class bukkitClass = bukkitMap.get(nmsClass); if (bukkitClass == null) { throw new RuntimeException("Can't figure out applicable bukkit entity for nms entity " + nmsClass); // maybe just return Mob? diff --git a/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedKeyType.java b/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedKeyType.java new file mode 100644 index 0000000000..51ec209f15 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedKeyType.java @@ -0,0 +1,136 @@ +package io.papermc.generator.types.registry; + +import com.google.common.base.Suppliers; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.registry.RegistryEntry; +import io.papermc.generator.types.SimpleGenerator; +import io.papermc.generator.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.Javadocs; +import io.papermc.generator.utils.experimental.ExperimentalCollector; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.TypedKey; +import java.util.Map; +import java.util.function.Supplier; +import javax.lang.model.SourceVersion; +import net.kyori.adventure.key.Key; +import net.minecraft.core.Holder; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.flag.FeatureElement; +import net.minecraft.world.flag.FeatureFlags; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +import static com.squareup.javapoet.TypeSpec.classBuilder; +import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION; +import static io.papermc.generator.utils.Annotations.experimentalAnnotations; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class GeneratedKeyType extends SimpleGenerator { + + private final RegistryEntry entry; + private final Supplier, SingleFlagHolder>> experimentalKeys; + private final boolean isFilteredRegistry; + + public GeneratedKeyType(String packageName, RegistryEntry entry) { + super(entry.keyClassName().concat("Keys"), packageName); + this.entry = entry; + this.experimentalKeys = Suppliers.memoize(() -> ExperimentalCollector.collectDataDrivenElementIds(entry.registry())); + this.isFilteredRegistry = FeatureElement.FILTERED_REGISTRIES.contains(entry.registryKey()); + } + + private MethodSpec.Builder createMethod(TypeName returnType) { + boolean publicCreateKeyMethod = this.entry.allowCustomKeys(); + + ParameterSpec keyParam = ParameterSpec.builder(Key.class, "key", FINAL).build(); + MethodSpec.Builder create = MethodSpec.methodBuilder("create") + .addModifiers(publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC) + .addParameter(keyParam) + .addCode("return $T.create($T.$L, $N);", TypedKey.class, RegistryKey.class, this.entry.registryKeyField(), keyParam) + .returns(returnType); + if (publicCreateKeyMethod) { + create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental + create.addJavadoc(Javadocs.CREATE_TYPED_KEY_JAVADOC, this.entry.apiClass(), this.entry.registryKey().location().toString()); + } + return create; + } + + private TypeSpec.Builder keyHolderType() { + return classBuilder(this.className) + .addModifiers(PUBLIC, FINAL) + .addJavadoc(Javadocs.getVersionDependentClassHeader("keys", "{@link $T#$L}"), RegistryKey.class, this.entry.registryKeyField()) + .addAnnotations(Annotations.CLASS_HEADER) + .addMethod(MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .build() + ); + } + + @Override + protected TypeSpec getTypeSpec() { + TypeName typedKeyType = ParameterizedTypeName.get(TypedKey.class, this.entry.apiClass()); + + TypeSpec.Builder typeBuilder = this.keyHolderType(); + MethodSpec.Builder createMethod = this.createMethod(typedKeyType); + + boolean allExperimental = true; + for (Holder.Reference reference : this.entry.registry().listElements().sorted(Formatting.alphabeticKeyOrder(reference -> reference.key().location().getPath())).toList()) { + ResourceKey key = reference.key(); + String keyPath = key.location().getPath(); + String fieldName = Formatting.formatKeyAsField(keyPath); + if (!SourceVersion.isIdentifier(fieldName) && this.entry.getFieldNames().containsKey(key)) { + fieldName = this.entry.getFieldNames().get(key); + } + + FieldSpec.Builder fieldBuilder = FieldSpec.builder(typedKeyType, fieldName, PUBLIC, STATIC, FINAL) + .initializer("$N(key($S))", createMethod.build(), keyPath) + .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), key.location().toString()); + + SingleFlagHolder requiredFeature = this.getRequiredFeature(reference); + if (requiredFeature != null) { + fieldBuilder.addAnnotations(experimentalAnnotations(requiredFeature)); + } else { + allExperimental = false; + } + typeBuilder.addField(fieldBuilder.build()); + } + + if (allExperimental) { + typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); + createMethod.addAnnotation(EXPERIMENTAL_API_ANNOTATION); + } else { + typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API + } + return typeBuilder.addMethod(createMethod.build()).build(); + } + + @Override + protected JavaFile.Builder file(JavaFile.Builder builder) { + return builder.addStaticImport(Key.class, "key"); + } + + protected @Nullable SingleFlagHolder getRequiredFeature(Holder.Reference reference) { + if (this.isFilteredRegistry) { + // built-in registry + FeatureElement element = (FeatureElement) reference.value(); + if (FeatureFlags.isExperimental(element.requiredFeatures())) { + return SingleFlagHolder.fromSet(element.requiredFeatures()); + } + } else { + // data-driven registry + return this.experimentalKeys.get().get(reference.key()); + } + return null; + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedTagKeyType.java b/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedTagKeyType.java new file mode 100644 index 0000000000..e1c5cb71f0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/types/registry/GeneratedTagKeyType.java @@ -0,0 +1,103 @@ +package io.papermc.generator.types.registry; + +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; +import io.papermc.generator.Main; +import io.papermc.generator.registry.RegistryEntry; +import io.papermc.generator.types.SimpleGenerator; +import io.papermc.generator.utils.Annotations; +import io.papermc.generator.utils.Formatting; +import io.papermc.generator.utils.Javadocs; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.paper.registry.RegistryKey; +import io.papermc.paper.registry.tag.TagKey; +import java.util.concurrent.atomic.AtomicBoolean; +import net.kyori.adventure.key.Key; +import org.jspecify.annotations.NullMarked; + +import static com.squareup.javapoet.TypeSpec.classBuilder; +import static io.papermc.generator.utils.Annotations.EXPERIMENTAL_API_ANNOTATION; +import static io.papermc.generator.utils.Annotations.experimentalAnnotations; +import static javax.lang.model.element.Modifier.FINAL; +import static javax.lang.model.element.Modifier.PRIVATE; +import static javax.lang.model.element.Modifier.PUBLIC; +import static javax.lang.model.element.Modifier.STATIC; + +@NullMarked +public class GeneratedTagKeyType extends SimpleGenerator { + + private final RegistryEntry entry; + + public GeneratedTagKeyType(RegistryEntry entry, String packageName) { + super(entry.keyClassName().concat("TagKeys"), packageName); + this.entry = entry; + } + + private MethodSpec.Builder createMethod(TypeName returnType) { + boolean publicCreateKeyMethod = true; // tag lifecycle event exists + + ParameterSpec keyParam = ParameterSpec.builder(Key.class, "key", FINAL).build(); + MethodSpec.Builder create = MethodSpec.methodBuilder("create") + .addModifiers(publicCreateKeyMethod ? PUBLIC : PRIVATE, STATIC) + .addParameter(keyParam) + .addCode("return $T.create($T.$L, $N);", TagKey.class, RegistryKey.class, this.entry.registryKeyField(), keyParam) + .returns(returnType); + if (publicCreateKeyMethod) { + create.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO remove once not experimental + create.addJavadoc(Javadocs.CREATED_TAG_KEY_JAVADOC, this.entry.apiClass(), this.entry.registryKey().location().toString()); + } + return create; + } + + private TypeSpec.Builder keyHolderType() { + return classBuilder(this.className) + .addModifiers(PUBLIC, FINAL) + .addJavadoc(Javadocs.getVersionDependentClassHeader("tag keys", "{@link $T#$L}"), RegistryKey.class, this.entry.registryKeyField()) + .addAnnotations(Annotations.CLASS_HEADER) + .addMethod(MethodSpec.constructorBuilder() + .addModifiers(PRIVATE) + .build() + ); + } + + @Override + protected TypeSpec getTypeSpec() { + TypeName tagKeyType = ParameterizedTypeName.get(TagKey.class, this.entry.apiClass()); + + TypeSpec.Builder typeBuilder = this.keyHolderType(); + MethodSpec.Builder createMethod = this.createMethod(tagKeyType); + + AtomicBoolean allExperimental = new AtomicBoolean(true); + this.entry.registry().listTagIds().sorted(Formatting.alphabeticKeyOrder(tagKey -> tagKey.location().getPath())).forEach(tagKey -> { + String fieldName = Formatting.formatKeyAsField(tagKey.location().getPath()); + FieldSpec.Builder fieldBuilder = FieldSpec.builder(tagKeyType, fieldName, PUBLIC, STATIC, FINAL) + .initializer("$N(key($S))", createMethod.build(), tagKey.location().getPath()) + .addJavadoc(Javadocs.getVersionDependentField("{@code $L}"), "#" + tagKey.location()); + + String featureFlagName = Main.EXPERIMENTAL_TAGS.get(tagKey); + if (featureFlagName != null) { + fieldBuilder.addAnnotations(experimentalAnnotations(SingleFlagHolder.fromName(featureFlagName))); + } else { + allExperimental.set(false); + } + typeBuilder.addField(fieldBuilder.build()); + }); + if (allExperimental.get()) { + typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); + createMethod.addAnnotation(EXPERIMENTAL_API_ANNOTATION); + } else { + typeBuilder.addAnnotation(EXPERIMENTAL_API_ANNOTATION); // TODO experimental API + } + return typeBuilder.addMethod(createMethod.build()).build(); + } + + @Override + protected JavaFile.Builder file(JavaFile.Builder builder) { + return builder.addStaticImport(Key.class, "key"); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/Annotations.java b/paper-generator/src/main/java/io/papermc/generator/utils/Annotations.java new file mode 100644 index 0000000000..47322695e4 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/Annotations.java @@ -0,0 +1,48 @@ +package io.papermc.generator.utils; + +import com.squareup.javapoet.AnnotationSpec; +import io.papermc.generator.utils.experimental.SingleFlagHolder; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.List; +import net.minecraft.SharedConstants; +import org.bukkit.MinecraftExperimental; +import org.jetbrains.annotations.ApiStatus; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Annotations { + + public static List experimentalAnnotations(SingleFlagHolder requiredFeature) { + AnnotationSpec.Builder builder = AnnotationSpec.builder(MinecraftExperimental.class); + builder.addMember("value", "$T.$L", MinecraftExperimental.Requires.class, requiredFeature.asAnnotationMember().name()); + + return List.of( + AnnotationSpec.builder(ApiStatus.Experimental.class).build(), + builder.build() + ); + } + + public static AnnotationSpec suppressWarnings(String... values) { + AnnotationSpec.Builder builder = AnnotationSpec.builder(SuppressWarnings.class); + for (String value : values) { + builder.addMember("value", "$S", value); + } + return builder.build(); + } + + @ApiStatus.Experimental + public static final AnnotationSpec EXPERIMENTAL_API_ANNOTATION = AnnotationSpec.builder(ApiStatus.Experimental.class).build(); + public static final AnnotationSpec NULL_MARKED = AnnotationSpec.builder(NullMarked.class).build(); + public static final AnnotationSpec OVERRIDE = AnnotationSpec.builder(Override.class).build(); + public static final AnnotationSpec GENERATED_FROM = AnnotationSpec.builder(GeneratedFrom.class) + .addMember("value", "$S", SharedConstants.getCurrentVersion().getName()) + .build(); + public static final Iterable CLASS_HEADER = List.of( + suppressWarnings("unused", "SpellCheckingInspection"), + NULL_MARKED, + GENERATED_FROM + ); + + private Annotations() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/BlockEntityMapping.java b/paper-generator/src/main/java/io/papermc/generator/utils/BlockEntityMapping.java new file mode 100644 index 0000000000..d8d7d0f56a --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/BlockEntityMapping.java @@ -0,0 +1,37 @@ +package io.papermc.generator.utils; + +import com.google.common.base.CaseFormat; +import com.google.common.collect.ImmutableMap; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.block.entity.BlockEntityType; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class BlockEntityMapping { + + // if this become painful/too weird like the blockdata just rename the impl directly again + private static final Map RENAMES = ImmutableMap.builder() + .put("CraftFurnace", "CraftFurnaceFurnace") + .put("CraftMobSpawner", "CraftCreatureSpawner") + .put("CraftPiston", "CraftMovingPiston") + .put("CraftTrappedChest", "CraftChest") // not really a rename + .buildOrThrow(); + + public static final Map>, String> MAPPING; + + static { + Map>, String> mapping = new IdentityHashMap<>(); + BuiltInRegistries.BLOCK_ENTITY_TYPE.registryKeySet().forEach(key -> { + String name = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, key.location().getPath()); + String implName = "Craft".concat(name); + + mapping.put(key, RENAMES.getOrDefault(implName, implName)); + }); + + MAPPING = Collections.unmodifiableMap(mapping); + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/BlockStateMapping.java b/paper-generator/src/main/java/io/papermc/generator/utils/BlockStateMapping.java new file mode 100644 index 0000000000..07cc283b46 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/BlockStateMapping.java @@ -0,0 +1,504 @@ +package io.papermc.generator.utils; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; +import com.google.common.reflect.TypeToken; +import com.mojang.datafixers.util.Either; +import io.papermc.generator.types.craftblockdata.property.holder.VirtualField; +import java.lang.reflect.Field; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import net.minecraft.core.Direction; +import net.minecraft.core.FrontAndTop; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.level.block.AbstractFurnaceBlock; +import net.minecraft.world.level.block.BigDripleafStemBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.CommandBlock; +import net.minecraft.world.level.block.IronBarsBlock; +import net.minecraft.world.level.block.MultifaceBlock; +import net.minecraft.world.level.block.NoteBlock; +import net.minecraft.world.level.block.PipeBlock; +import net.minecraft.world.level.block.StructureBlock; +import net.minecraft.world.level.block.WallBlock; +import net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState; +import net.minecraft.world.level.block.entity.vault.VaultState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraft.world.level.block.state.properties.BambooLeaves; +import net.minecraft.world.level.block.state.properties.BedPart; +import net.minecraft.world.level.block.state.properties.BellAttachType; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.ChestType; +import net.minecraft.world.level.block.state.properties.ComparatorMode; +import net.minecraft.world.level.block.state.properties.DoorHingeSide; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.DripstoneThickness; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.Half; +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import net.minecraft.world.level.block.state.properties.PistonType; +import net.minecraft.world.level.block.state.properties.Property; +import net.minecraft.world.level.block.state.properties.RailShape; +import net.minecraft.world.level.block.state.properties.RedstoneSide; +import net.minecraft.world.level.block.state.properties.SculkSensorPhase; +import net.minecraft.world.level.block.state.properties.SlabType; +import net.minecraft.world.level.block.state.properties.StairsShape; +import net.minecraft.world.level.block.state.properties.StructureMode; +import net.minecraft.world.level.block.state.properties.Tilt; +import net.minecraft.world.level.block.state.properties.WallSide; +import org.bukkit.Axis; +import org.bukkit.Instrument; +import org.bukkit.block.BlockFace; +import org.bukkit.block.Orientation; +import org.bukkit.block.data.Ageable; +import org.bukkit.block.data.AnaloguePowerable; +import org.bukkit.block.data.Bisected; +import org.bukkit.block.data.Brushable; +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.FaceAttachable; +import org.bukkit.block.data.Hangable; +import org.bukkit.block.data.Hatchable; +import org.bukkit.block.data.Levelled; +import org.bukkit.block.data.Lightable; +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.block.data.Openable; +import org.bukkit.block.data.Orientable; +import org.bukkit.block.data.Powerable; +import org.bukkit.block.data.Rail; +import org.bukkit.block.data.Rotatable; +import org.bukkit.block.data.Snowable; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.block.data.type.Bamboo; +import org.bukkit.block.data.type.Bed; +import org.bukkit.block.data.type.Bell; +import org.bukkit.block.data.type.BigDripleaf; +import org.bukkit.block.data.type.Chest; +import org.bukkit.block.data.type.Comparator; +import org.bukkit.block.data.type.Door; +import org.bukkit.block.data.type.Dripleaf; +import org.bukkit.block.data.type.Fence; +import org.bukkit.block.data.type.Furnace; +import org.bukkit.block.data.type.PointedDripstone; +import org.bukkit.block.data.type.RedstoneRail; +import org.bukkit.block.data.type.RedstoneWire; +import org.bukkit.block.data.type.ResinClump; +import org.bukkit.block.data.type.SculkSensor; +import org.bukkit.block.data.type.Slab; +import org.bukkit.block.data.type.Stairs; +import org.bukkit.block.data.type.Switch; +import org.bukkit.block.data.type.TechnicalPiston; +import org.bukkit.block.data.type.TrialSpawner; +import org.bukkit.block.data.type.Vault; +import org.bukkit.block.data.type.Wall; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public final class BlockStateMapping { + + public static final String PIPE_FIELD_NAME = "PROPERTY_BY_DIRECTION"; + + public record BlockData(String implName, @Nullable Class api, + Collection> properties, Map, Field> propertyFields, + Multimap, Property> complexPropertyFields) { + } + + private static final Map API_RENAMES = ImmutableMap.builder() + .put("SnowLayer", "Snow") + .put("StainedGlassPane", "GlassPane") // weird that this one implements glass pane but not the regular glass pane + .put("CeilingHangingSign", "HangingSign") + .put("RedStoneWire", "RedstoneWire") + .put("TripWire", "Tripwire") + .put("TripWireHook", "TripwireHook") + .put("Tnt", "TNT") + .put("BambooStalk", "Bamboo") + .put("Farm", "Farmland") + .put("ChiseledBookShelf", "ChiseledBookshelf") + .put("StandingSign", "Sign") + .put("FenceGate", "Gate") + .buildOrThrow(); + + private static final Set> BLOCK_SUFFIX_INTENDED = Set.of( + CommandBlock.class, + StructureBlock.class, + NoteBlock.class + ); + + // virtual data that doesn't exist as constant in the source but still organized this way in the api + public static final ImmutableMultimap, VirtualField> VIRTUAL_NODES = ImmutableMultimap., VirtualField>builder() + .put(WallBlock.class, + VirtualField.createMap("PROPERTY_BY_FACE", BlockFace.class, new TypeToken>() {}, "HEIGHT") + .withValues(List.of( + WallBlock.EAST_WALL, + WallBlock.NORTH_WALL, + WallBlock.SOUTH_WALL, + WallBlock.WEST_WALL + )).make()) + .build(); + + public static final Map, Field> FALLBACK_GENERIC_FIELDS; + + static { + Map, Field> fallbackGenericFields = new HashMap<>(); + fetchProperties(BlockStateProperties.class, (field, property) -> fallbackGenericFields.put(property, field), null); + FALLBACK_GENERIC_FIELDS = Collections.unmodifiableMap(fallbackGenericFields); + } + + public static final Map, BlockData> MAPPING; + + static { + Map, Collection>> specialBlocks = new IdentityHashMap<>(); + for (Block block : BuiltInRegistries.BLOCK) { + if (!block.getStateDefinition().getProperties().isEmpty()) { + specialBlocks.put(block.getClass(), block.getStateDefinition().getProperties()); + } + } + + Map, BlockData> map = new IdentityHashMap<>(); + for (Map.Entry, Collection>> entry : specialBlocks.entrySet()) { + Class specialBlock = entry.getKey(); + + Collection> properties = new ArrayList<>(entry.getValue()); + + Map, Field> propertyFields = new HashMap<>(properties.size()); + Multimap, Property> complexPropertyFields = ArrayListMultimap.create(); + + fetchProperties(specialBlock, (field, property) -> { + if (properties.contains(property)) { + propertyFields.put(property, field); + } + }, (field, property) -> { + if (field.getName().equals(BlockStateMapping.PIPE_FIELD_NAME) && + PipeBlock.PROPERTY_BY_DIRECTION.containsValue(property)) { // need another check to avoid conflict with redstone connection + // handled later with further check + return; + } + + if (properties.remove(property)) { // handle those separately and only count if the property was in the state definition + complexPropertyFields.put(Either.left(field), property); + } + }); + + // multiple facing + List> commonPipeProperties = new ArrayList<>(properties); + commonPipeProperties.retainAll(PipeBlock.PROPERTY_BY_DIRECTION.values()); + if (commonPipeProperties.size() >= 2) { + Field field = fetchPipeFieldMap(specialBlock); + if (field != null) { + properties.removeAll(commonPipeProperties); + complexPropertyFields.putAll(Either.left(field), commonPipeProperties); + } + } + + // virtual nodes + if (VIRTUAL_NODES.containsKey(specialBlock)) { + for (VirtualField virtualField : VIRTUAL_NODES.get(specialBlock)) { + for (Property property : virtualField.values()) { + if (properties.remove(property)) { + complexPropertyFields.put(Either.right(virtualField), property); + } else { + throw new IllegalStateException("Unhandled virtual node " + virtualField.name() + " for " + property); + } + } + } + } + + String apiName = formatApiName(specialBlock); + String implName = "Craft".concat(apiName); // before renames + + apiName = Formatting.stripWordOfCamelCaseName(apiName, "Base", true); + apiName = API_RENAMES.getOrDefault(apiName, apiName); + + Class api = ClassHelper.classOr("org.bukkit.block.data.type." + apiName, null); + if (api == null) { + Class directParent = specialBlock.getSuperclass(); + if (specialBlocks.containsKey(directParent)) { + // if the properties are the same then always consider the parent + // check deeper in the tree? + if (specialBlocks.get(directParent).equals(entry.getValue())) { + String parentApiName = formatApiName(directParent); + parentApiName = Formatting.stripWordOfCamelCaseName(parentApiName, "Base", true); + parentApiName = API_RENAMES.getOrDefault(parentApiName, parentApiName); + api = ClassHelper.classOr("org.bukkit.block.data.type." + parentApiName, api); + } + } + } + if (api == null) { // todo remove this part + if (AbstractFurnaceBlock.class.isAssignableFrom(specialBlock)) { + api = Furnace.class; // for smoker and blast furnace + } else if (specialBlock == BigDripleafStemBlock.class) { + api = Dripleaf.class; + } else if (specialBlock == IronBarsBlock.class) { + api = Fence.class; // for glass pane (regular) and iron bars + } else if (specialBlock == MultifaceBlock.class) { + api = ResinClump.class; + } + } + + map.put(specialBlock, new BlockData(implName, api, properties, propertyFields, complexPropertyFields)); + } + MAPPING = Collections.unmodifiableMap(map); + } + + private static final Map> NAME_TO_DATA = Map.of( + BlockStateProperties.AGE_1.getName(), Ageable.class, + BlockStateProperties.LEVEL.getName(), Levelled.class + ); + + private static final Map, Class> PROPERTY_TO_DATA = ImmutableMap., Class>builder() + // levelled and ageable are done using the property name + .put(BlockStateProperties.POWER, AnaloguePowerable.class) + .put(BlockStateProperties.HALF, Bisected.class) + .put(BlockStateProperties.DOUBLE_BLOCK_HALF, Bisected.class) + .put(BlockStateProperties.DUSTED, Brushable.class) + .put(BlockStateProperties.FACING, Directional.class) + .put(BlockStateProperties.HORIZONTAL_FACING, Directional.class) + .put(BlockStateProperties.ATTACH_FACE, FaceAttachable.class) + .put(BlockStateProperties.HANGING, Hangable.class) + .put(BlockStateProperties.HATCH, Hatchable.class) + .put(BlockStateProperties.LIT, Lightable.class) + // multiple facing is done by matching two or more pipe block properties + .put(BlockStateProperties.OPEN, Openable.class) + .put(BlockStateProperties.HORIZONTAL_AXIS, Orientable.class) + .put(BlockStateProperties.AXIS, Orientable.class) + .put(BlockStateProperties.POWERED, Powerable.class) + .put(BlockStateProperties.RAIL_SHAPE, Rail.class) + .put(BlockStateProperties.RAIL_SHAPE_STRAIGHT, Rail.class) + .put(BlockStateProperties.ROTATION_16, Rotatable.class) + .put(BlockStateProperties.SNOWY, Snowable.class) + .put(BlockStateProperties.WATERLOGGED, Waterlogged.class) + .buildOrThrow(); + + private static final Map, Class> MAIN_PROPERTY_TO_DATA = Map.of( + BlockStateProperties.PISTON_TYPE, TechnicalPiston.class, + BlockStateProperties.STAIRS_SHAPE, Stairs.class + ); + + public static final Map>, Class>> ENUM_BRIDGE = ImmutableMap.>, Class>>builder() + .put(DoorHingeSide.class, Door.Hinge.class) + .put(SlabType.class, Slab.Type.class) + .put(StructureMode.class, org.bukkit.block.data.type.StructureBlock.Mode.class) + .put(DripstoneThickness.class, PointedDripstone.Thickness.class) + .put(WallSide.class, Wall.Height.class) + .put(BellAttachType.class, Bell.Attachment.class) + .put(NoteBlockInstrument.class, Instrument.class) + .put(StairsShape.class, Stairs.Shape.class) + .put(Direction.class, BlockFace.class) + .put(ComparatorMode.class, Comparator.Mode.class) + .put(PistonType.class, TechnicalPiston.Type.class) + .put(BedPart.class, Bed.Part.class) + .put(Half.class, Bisected.Half.class) + .put(AttachFace.class, FaceAttachable.AttachedFace.class) + .put(RailShape.class, Rail.Shape.class) + .put(SculkSensorPhase.class, SculkSensor.Phase.class) + .put(DoubleBlockHalf.class, Bisected.Half.class) + .put(Tilt.class, BigDripleaf.Tilt.class) + .put(ChestType.class, Chest.Type.class) + .put(RedstoneSide.class, RedstoneWire.Connection.class) + .put(Direction.Axis.class, Axis.class) + .put(BambooLeaves.class, Bamboo.Leaves.class) + .put(TrialSpawnerState.class, TrialSpawner.State.class) + .put(FrontAndTop.class, Orientation.class) + .put(VaultState.class, Vault.State.class) + .buildOrThrow(); + + public static @Nullable Class getBestSuitedApiClass(Class block) { + if (!MAPPING.containsKey(block)) { + return null; + } + + return getBestSuitedApiClass(MAPPING.get(block)); + } + + public static @Nullable Class getBestSuitedApiClass(BlockData data) { + if (data.api() != null) { + return data.api(); + } + + int pipeProps = 0; + Set> extensions = new LinkedHashSet<>(); + for (Property property : data.properties()) { + if (MAIN_PROPERTY_TO_DATA.containsKey(property)) { + return MAIN_PROPERTY_TO_DATA.get(property); + } + + if (NAME_TO_DATA.containsKey(property.getName())) { + extensions.add(NAME_TO_DATA.get(property.getName())); + continue; + } + + if (PROPERTY_TO_DATA.containsKey(property)) { + extensions.add(PROPERTY_TO_DATA.get(property)); + continue; + } + + if (PipeBlock.PROPERTY_BY_DIRECTION.containsValue(property)) { + pipeProps++; + } + } + + if (!extensions.isEmpty()) { + if (isExactly(extensions, Switch.class)) { + return Switch.class; + } + if (isExactly(extensions, RedstoneRail.class)) { + return RedstoneRail.class; + } + + return extensions.iterator().next(); + } + + for (Property property : data.complexPropertyFields().values()) { + if (PipeBlock.PROPERTY_BY_DIRECTION.containsValue(property)) { + pipeProps++; + } + } + + if (pipeProps >= 2) { + return MultipleFacing.class; + } + return null; + } + + private static boolean isExactly(Set> extensions, Class globClass) { + return extensions.equals(ClassHelper.getAllInterfaces(globClass, org.bukkit.block.data.BlockData.class, new HashSet<>())); + } + + private static String formatApiName(Class specialBlock) { + String apiName = specialBlock.getSimpleName(); + if (!BLOCK_SUFFIX_INTENDED.contains(specialBlock)) { + return apiName.substring(0, apiName.length() - "Block".length()); + } + return apiName; + } + + private static @Nullable Field fetchPipeFieldMap(Class block) { + Field field = null; + Class searchClass = block; + do { + try { + field = searchClass.getDeclaredField(PIPE_FIELD_NAME); + } catch (NoSuchFieldException ignored) { + } + searchClass = searchClass.getSuperclass(); + } while (field == null && searchClass != Block.class); + + if (field == null) { + return null; + } + + if (!ClassHelper.isStaticConstant(field, 0)) { + return null; + } + + if (Map.class.isAssignableFrom(field.getType()) && field.getGenericType() instanceof ParameterizedType complexType) { + Type[] args = complexType.getActualTypeArguments(); + if (args.length == 2 && args[0] == Direction.class && args[1] == BooleanProperty.class) { + if (field.trySetAccessible()) { + try { + List properties = new ArrayList<>(((Map) field.get(null)).values()); + int originalSize = properties.size(); + properties.retainAll(PipeBlock.PROPERTY_BY_DIRECTION.values()); + if (properties.size() != originalSize) { + return null; + } + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } + return field; + } + } + return null; + } + + private static boolean handleComplexType(Field field, BiConsumer> complexCallback) throws IllegalAccessException { + if (field.getType().isArray() && Property.class.isAssignableFrom(field.getType().getComponentType())) { + if (!field.trySetAccessible()) { + return true; + } + + for (Property property : (Property[]) field.get(null)) { + complexCallback.accept(field, property); + } + return true; + } + if (Iterable.class.isAssignableFrom(field.getType()) && field.getGenericType() instanceof ParameterizedType complexType) { + Type[] args = complexType.getActualTypeArguments(); + if (args.length == 1 && Property.class.isAssignableFrom(ClassHelper.eraseType(args[0]))) { + if (!field.trySetAccessible()) { + return true; + } + + for (Property property : (Iterable>) field.get(null)) { + complexCallback.accept(field, property); + } + } + return true; + } + if (Map.class.isAssignableFrom(field.getType()) && field.getGenericType() instanceof ParameterizedType complexType) { + if (!field.trySetAccessible()) { + return true; + } + + Type[] args = complexType.getActualTypeArguments(); + if (args.length == 2 && Property.class.isAssignableFrom(ClassHelper.eraseType(args[1]))) { + for (Property property : ((Map>) field.get(null)).values()) { + complexCallback.accept(field, property); + } + return true; + } + } + return false; + } + + private static void fetchProperties(Class block, BiConsumer> simpleCallback, @Nullable BiConsumer> complexCallback) { + try { + for (Field field : block.getDeclaredFields()) { + if (ClassHelper.isStaticConstant(field, 0)) { + if (complexCallback != null && handleComplexType(field, complexCallback)) { + continue; + } + + if (!Property.class.isAssignableFrom(field.getType())) { + continue; + } + + if (field.trySetAccessible()) { + Property property = ((Property) field.get(null)); + simpleCallback.accept(field, property); + } + } + } + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + + if (block.isInterface()) { + return; + } + + // look deeper + if (block.getSuperclass() != null && block.getSuperclass() != Block.class) { + fetchProperties(block.getSuperclass(), simpleCallback, complexCallback); + } + for (Class ext : block.getInterfaces()) { + fetchProperties(ext, simpleCallback, complexCallback); + } + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/ClassHelper.java b/paper-generator/src/main/java/io/papermc/generator/utils/ClassHelper.java new file mode 100644 index 0000000000..51e3df843e --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/ClassHelper.java @@ -0,0 +1,72 @@ +package io.papermc.generator.utils; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.Set; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public final class ClassHelper { + + public static Set> getAllInterfaces(Class clazz, Class ignored, Set> interfaces) { + Class[] classes = clazz.getInterfaces(); + interfaces.addAll(Arrays.asList(classes)); + for (Class farClass : classes) { + if (farClass == ignored) { + continue; + } + getAllInterfaces(farClass, ignored, interfaces); + } + interfaces.remove(ignored); + return interfaces; + } + + public static @Nullable Type getNestedTypeParameter(Type type, @Nullable Class... classes) { + for (Class clazz : classes) { + if (!(type instanceof ParameterizedType complexType)) { + return null; + } + + Type[] types = complexType.getActualTypeArguments(); + if (types.length != 1) { + return null; + } + + if (clazz == null || eraseType(types[0]) == clazz) { + type = types[0]; + } + } + + return type; + } + + public static Class eraseType(Type type) { + if (type instanceof Class clazz) { + return clazz; + } + if (type instanceof ParameterizedType complexType) { + return eraseType(complexType.getRawType()); + } + throw new UnsupportedOperationException("Don't know how to turn " + type + " into its erased type!"); + } + + public static boolean isStaticConstant(Field field, int extraFlags) { + int flags = extraFlags | Modifier.STATIC | Modifier.FINAL; + return (field.getModifiers() & flags) == flags; + } + + public static @Nullable Class classOr(String className, @Nullable Class defaultClass) { + try { + return (Class) Class.forName(className); + } catch (ClassNotFoundException ignored) { + return defaultClass; + } + } + + private ClassHelper() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/CommonVariable.java b/paper-generator/src/main/java/io/papermc/generator/utils/CommonVariable.java new file mode 100644 index 0000000000..55ea8c742f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/CommonVariable.java @@ -0,0 +1,10 @@ +package io.papermc.generator.utils; + +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class CommonVariable { + + public static final String INDEX = "index"; + public static final String MAP_ENTRY = "entry"; +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/Formatting.java b/paper-generator/src/main/java/io/papermc/generator/utils/Formatting.java new file mode 100644 index 0000000000..e571a785f2 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/Formatting.java @@ -0,0 +1,111 @@ +package io.papermc.generator.utils; + +import java.util.Optional; +import org.apache.commons.lang3.math.NumberUtils; +import java.util.Comparator; +import java.util.Locale; +import java.util.OptionalInt; +import java.util.function.Function; +import java.util.regex.Pattern; +import java.util.stream.IntStream; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Formatting { + + private static final Pattern ILLEGAL_FIELD_CHARACTERS = Pattern.compile("[.-/]"); + + public static String formatKeyAsField(String path) { + return ILLEGAL_FIELD_CHARACTERS.matcher(path.toUpperCase(Locale.ENGLISH)).replaceAll("_"); + } + + public static String formatTagFieldPrefix(String name, ResourceKey> registryKey) { + if (registryKey == Registries.BLOCK) { + return ""; + } + if (registryKey == Registries.GAME_EVENT) { + return "GAME_EVENT_"; // Paper doesn't follow the format (should be GAME_EVENTS_) (pre 1.21) + } + return name.toUpperCase(Locale.ENGLISH) + "_"; + } + + public static Optional formatTagKey(String tagDir, String resourcePath) { + int tagsIndex = resourcePath.indexOf(tagDir); + int dotIndex = resourcePath.lastIndexOf('.'); + if (tagsIndex == -1 || dotIndex == -1) { + return Optional.empty(); + } + return Optional.of(resourcePath.substring(tagsIndex + tagDir.length() + 1, dotIndex)); // namespace/tags/registry_key/[tag_key].json + } + + public static String quoted(String value) { + return "\"" + value + "\""; + } + + public static String asCode(Enum enumValue) { + return enumValue.getClass().getSimpleName() + "." + enumValue.name(); + } + + public static String[] asCode(int... values) { + return IntStream.of(values).mapToObj(Integer::toString).toArray(String[]::new); + } + + public static String stripWordOfCamelCaseName(String name, String word, boolean onlyOnce) { + String newName = name; + int startIndex = 0; + while (true) { + int baseIndex = newName.indexOf(word, startIndex); + if (baseIndex == -1) { + return newName; + } + + if ((baseIndex > 0 && !Character.isLowerCase(newName.charAt(baseIndex - 1))) || + (baseIndex + word.length() < newName.length() && !Character.isUpperCase(newName.charAt(baseIndex + word.length())))) { + startIndex = baseIndex + word.length(); + continue; + } + + newName = newName.substring(0, baseIndex) + newName.substring(baseIndex + word.length()); + startIndex = baseIndex; + if (onlyOnce) { + break; + } + } + return newName; + } + + public static final Comparator ALPHABETIC_KEY_ORDER = alphabeticKeyOrder(path -> path); + + public static Comparator alphabeticKeyOrder(Function mapper) { + return (o1, o2) -> { + String path1 = mapper.apply(o1); + String path2 = mapper.apply(o2); + + OptionalInt trailingInt1 = tryParseTrailingInt(path1); + OptionalInt trailingInt2 = tryParseTrailingInt(path2); + + if (trailingInt1.isPresent() && trailingInt2.isPresent()) { + return Integer.compare(trailingInt1.getAsInt(), trailingInt2.getAsInt()); + } + + return path1.compareTo(path2); + }; + } + + private static OptionalInt tryParseTrailingInt(String path) { + int delimiterIndex = path.lastIndexOf('_'); + if (delimiterIndex != -1) { + String score = path.substring(delimiterIndex + 1); + if (NumberUtils.isDigits(score)) { + return OptionalInt.of(Integer.parseInt(score)); + } + } + return OptionalInt.empty(); + } + + private Formatting() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/Javadocs.java b/paper-generator/src/main/java/io/papermc/generator/utils/Javadocs.java new file mode 100644 index 0000000000..4c52440793 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/Javadocs.java @@ -0,0 +1,44 @@ +package io.papermc.generator.utils; + +import org.jspecify.annotations.NullMarked; + +@NullMarked +public final class Javadocs { + + public static String getVersionDependentClassHeader(String objectIdentifier, String headerIdentifier) { + return """ + Vanilla %s for %s. + + @apiNote The fields provided here are a direct representation of + what is available from the vanilla game source. They may be + changed (including removals) on any Minecraft version + bump, so cross-version compatibility is not provided on the + same level as it is on most of the other API. + """.formatted(objectIdentifier, headerIdentifier); + } + + public static String getVersionDependentField(String headerIdentifier) { + return """ + %s + + @apiNote This field is version-dependant and may be removed in future Minecraft versions + """.formatted(headerIdentifier); + } + + public static final String CREATE_TYPED_KEY_JAVADOC = """ + Creates a typed key for {@link $T} in the registry {@code $L}. + + @param key the value's key in the registry + @return a new typed key + """; + + public static final String CREATED_TAG_KEY_JAVADOC = """ + Creates a tag key for {@link $T} in the registry {@code $L}. + + @param key the tag key's key + @return a new tag key + """; + + private Javadocs() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/NamingManager.java b/paper-generator/src/main/java/io/papermc/generator/utils/NamingManager.java new file mode 100644 index 0000000000..d5ca379ae7 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/NamingManager.java @@ -0,0 +1,141 @@ +package io.papermc.generator.utils; + +import com.google.common.base.CaseFormat; +import java.util.Optional; +import java.util.function.Predicate; +import javax.lang.model.SourceVersion; +import org.jetbrains.annotations.Contract; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +@NullMarked +public class NamingManager { + + private final @Nullable AccessKeyword accessKeyword; + private final String baseName; + private final String lowerCamelName, upperCamelName; + + public NamingManager(NamingManager.@Nullable AccessKeyword accessKeyword, CaseFormat format, String baseName) { + this.accessKeyword = accessKeyword; // this is a little bit too restrictive for extra data hmm + this.baseName = baseName; + this.upperCamelName = format.to(CaseFormat.UPPER_CAMEL, baseName); + this.lowerCamelName = format.to(CaseFormat.LOWER_CAMEL, baseName); + } + + public String getVariableName() { + return this.lowerCamelName; + } + + public String getMethodBaseName() { + return this.upperCamelName; + } + + public NameWrapper getMethodNameWrapper() { + return NameWrapper.wrap("get", this.upperCamelName); + } + + public NameWrapper getVariableNameWrapper() { + return NameWrapper.wrap("", this.lowerCamelName); + } + + public NameWrapper getterName(Predicate keywordPredicate) { + return accessName(keywordPredicate, AccessKeyword::get, "get"); + } + + public NameWrapper setterName(Predicate keywordPredicate) { + return accessName(keywordPredicate, AccessKeyword::set, "set"); + } + + public String simpleGetterName(Predicate keywordPredicate) { + return getterName(keywordPredicate).concat(); + } + + public String simpleSetterName(Predicate keywordPredicate) { + return setterName(keywordPredicate).concat(); + } + + private NameWrapper accessName(Predicate keywordPredicate, KeywordFetcher keywordFetcher, String fallbackKeyword) { + final String name; + String accessKeyword; + if (keywordPredicate.test(this.baseName)) { + accessKeyword = Optional.ofNullable(this.accessKeyword).flatMap(keywordFetcher::fetch).orElse(fallbackKeyword); + name = this.upperCamelName; + } else { + accessKeyword = ""; + name = this.lowerCamelName; + } + return NameWrapper.wrap(accessKeyword, name); + } + + public String paramName(Class type) { + final String paramName; + if (type.isPrimitive()) { + paramName = this.lowerCamelName; + } else { + paramName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, type.getSimpleName()); + } + return ensureValidName(paramName); + } + + public static String ensureValidName(String name) { + if (!SourceVersion.isIdentifier(name) || SourceVersion.isKeyword(name)) { + return "_" + name; + } + return name; + } + + public static class NameWrapper { + + private final String keyword; + private final String name; + private String preValue = "", postValue = ""; + + private NameWrapper(String keyword, String name) { + this.keyword = keyword; + this.name = name; + } + + public static NameWrapper wrap(String keyword, String name) { + return new NameWrapper(keyword, name); + } + + @Contract(value = "_ -> this", mutates = "this") + public NameWrapper pre(String value) { + this.preValue = value; + return this; + } + + @Contract(value = "_ -> this", mutates = "this") + public NameWrapper post(String value) { + this.postValue = value; + return this; + } + + public String concat() { + String finalName = this.keyword + this.preValue + this.name + this.postValue; + this.preValue = this.postValue = ""; // reset + return ensureValidName(finalName); + } + } + + @FunctionalInterface + private interface KeywordFetcher { + + Optional fetch(AccessKeyword accessKeyword); + } + + public static AccessKeyword keywordGet(String keyword) { + return new AccessKeyword(Optional.of(keyword), Optional.empty()); + } + + public static AccessKeyword keywordSet(String keyword) { + return new AccessKeyword(Optional.empty(), Optional.of(keyword)); + } + + public static AccessKeyword keywordGetSet(String getter, String setter) { + return new AccessKeyword(Optional.of(getter), Optional.of(setter)); + } + + public record AccessKeyword(Optional get, Optional set) { + } +} diff --git a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/CollectingContext.java similarity index 51% rename from paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java rename to paper-generator/src/main/java/io/papermc/generator/utils/experimental/CollectingContext.java index c2fbaa2a05..c360dc6faf 100644 --- a/paper-api-generator/src/main/java/io/papermc/generator/utils/CollectingContext.java +++ b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/CollectingContext.java @@ -1,4 +1,4 @@ -package io.papermc.generator.utils; +package io.papermc.generator.utils.experimental; import com.mojang.serialization.Lifecycle; import io.papermc.generator.Main; @@ -8,21 +8,20 @@ import net.minecraft.core.HolderGetter; import net.minecraft.core.Registry; import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.framework.qual.DefaultQualifier; +import org.jspecify.annotations.NullMarked; -@DefaultQualifier(NonNull.class) +@NullMarked public record CollectingContext(Set> registered, Registry registry) implements BootstrapContext { @Override - public Holder.Reference register(final ResourceKey resourceKey, final @NonNull T t, final Lifecycle lifecycle) { - this.registered.add(resourceKey); - return Holder.Reference.createStandAlone(this.registry, resourceKey); + public Holder.Reference register(ResourceKey key, T value, Lifecycle lifecycle) { + this.registered.add(key); + return Holder.Reference.createStandAlone(this.registry, key); } @Override - public HolderGetter lookup(final ResourceKey> resourceKey) { - return Main.REGISTRY_ACCESS.lookupOrThrow(resourceKey); + public HolderGetter lookup(ResourceKey> key) { + return Main.REGISTRY_ACCESS.lookupOrThrow(key); } } diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/experimental/ExperimentalCollector.java b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/ExperimentalCollector.java new file mode 100644 index 0000000000..5e715d0383 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/ExperimentalCollector.java @@ -0,0 +1,132 @@ +package io.papermc.generator.utils.experimental; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.mojang.logging.LogUtils; +import io.papermc.generator.Main; +import io.papermc.generator.utils.Formatting; +import java.util.Collection; +import java.util.Collections; +import java.util.IdentityHashMap; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.core.RegistrySetBuilder; +import net.minecraft.core.registries.Registries; +import net.minecraft.data.registries.TradeRebalanceRegistries; +import net.minecraft.data.registries.VanillaRegistries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.repository.BuiltInPackSource; +import net.minecraft.server.packs.resources.MultiPackResourceManager; +import net.minecraft.tags.TagKey; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; + +@NullMarked +public final class ExperimentalCollector { + + private static final Logger LOGGER = LogUtils.getLogger(); + + private static final Map>, RegistrySetBuilder.RegistryBootstrap> VANILLA_REGISTRY_ENTRIES = VanillaRegistries.BUILDER.entries.stream() + .collect(Collectors.toMap(RegistrySetBuilder.RegistryStub::key, RegistrySetBuilder.RegistryStub::bootstrap)); + + private static final Map EXPERIMENTAL_REGISTRY_FLAGS = Map.of( + // Update for Experimental API + TradeRebalanceRegistries.BUILDER, FlagHolders.TRADE_REBALANCE + ); + + private static final Multimap>, Map.Entry>> EXPERIMENTAL_REGISTRY_ENTRIES; + static { + EXPERIMENTAL_REGISTRY_ENTRIES = HashMultimap.create(); + for (Map.Entry entry : EXPERIMENTAL_REGISTRY_FLAGS.entrySet()) { + for (RegistrySetBuilder.RegistryStub stub : entry.getKey().entries) { + EXPERIMENTAL_REGISTRY_ENTRIES.put(stub.key(), Map.entry(entry.getValue(), stub.bootstrap())); + } + } + } + + @SuppressWarnings("unchecked") + public static Map, SingleFlagHolder> collectDataDrivenElementIds(Registry registry) { + Collection>> experimentalEntries = EXPERIMENTAL_REGISTRY_ENTRIES.get(registry.key()); + if (experimentalEntries.isEmpty()) { + return Collections.emptyMap(); + } + + Map, SingleFlagHolder> result = new IdentityHashMap<>(); + for (Map.Entry> experimentalEntry : experimentalEntries) { + RegistrySetBuilder.RegistryBootstrap experimentalBootstrap = (RegistrySetBuilder.RegistryBootstrap) experimentalEntry.getValue(); + Set> experimental = Collections.newSetFromMap(new IdentityHashMap<>()); + CollectingContext experimentalCollector = new CollectingContext<>(experimental, registry); + experimentalBootstrap.run(experimentalCollector); + result.putAll(experimental.stream().collect(Collectors.toMap(key -> key, key -> experimentalEntry.getKey()))); + } + + RegistrySetBuilder.@Nullable RegistryBootstrap vanillaBootstrap = (RegistrySetBuilder.RegistryBootstrap) VANILLA_REGISTRY_ENTRIES.get(registry.key()); + if (vanillaBootstrap != null) { + Set> vanilla = Collections.newSetFromMap(new IdentityHashMap<>()); + CollectingContext vanillaCollector = new CollectingContext<>(vanilla, registry); + vanillaBootstrap.run(vanillaCollector); + result.keySet().removeAll(vanilla); + } + return result; + } + + // collect all the tags by grabbing the json from the data-packs + // another (probably) way is to hook into the data generator like the typed keys generator + public static Map, String> collectTags(MultiPackResourceManager resourceManager) { + Map, String> result = new IdentityHashMap<>(); + + // collect all vanilla tags + Multimap>, String> vanillaTags = HashMultimap.create(); + PackResources vanillaPack = resourceManager.listPacks() + .filter(packResources -> packResources.packId().equals(BuiltInPackSource.VANILLA_ID)) + .findFirst() + .orElseThrow(); + collectTagsFromPack(vanillaPack, (entry, path) -> vanillaTags.put(entry.key(), path)); + + // then distinct with other data-pack tags to know for sure newly created tags and so experimental one + resourceManager.listPacks().forEach(pack -> { + String packId = pack.packId(); + if (packId.equals(BuiltInPackSource.VANILLA_ID)) return; + + collectTagsFromPack(pack, (entry, path) -> { + if (vanillaTags.get(entry.key()).contains(path)) { + return; + } + + result.put(entry.value().listTagIds() + .filter(tagKey -> tagKey.location().getPath().equals(path)) + .findFirst() + .orElseThrow(), packId); + }); + }); + return Collections.unmodifiableMap(result); + } + + private static void collectTagsFromPack(PackResources pack, BiConsumer, String> output) { + Set namespaces = pack.getNamespaces(PackType.SERVER_DATA); + + for (String namespace : namespaces) { + Main.REGISTRY_ACCESS.registries().forEach(entry -> { + // this is probably expensive but can't find another way around and data-pack loader has similar logic + // the issue is that registry key can have parent/key but tag key can also have parent/key so parsing become a mess + // without having at least one of the two values + String tagDir = Registries.tagsDirPath(entry.key()); + pack.listResources(PackType.SERVER_DATA, namespace, tagDir, (id, supplier) -> { + Formatting.formatTagKey(tagDir, id.getPath()).ifPresentOrElse(path -> output.accept(entry, path), () -> { + LOGGER.warn("Unable to parse the path: {}/{}/{}.json in the data-pack {} into a tag key", namespace, tagDir, id.getPath(), pack.packId()); + }); + }); + }); + } + } + + private ExperimentalCollector() { + } +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolder.java b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolder.java new file mode 100644 index 0000000000..a6c9ad76f0 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolder.java @@ -0,0 +1,16 @@ +package io.papermc.generator.utils.experimental; + +import net.minecraft.world.flag.FeatureFlag; +import net.minecraft.world.flag.FeatureFlagSet; +import net.minecraft.world.flag.FeatureFlags; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public interface FlagHolder { + + default FeatureFlagSet flagSet() { + return FeatureFlags.REGISTRY.subset(this.flag()); + } + + FeatureFlag flag(); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolders.java b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolders.java new file mode 100644 index 0000000000..1472ebb594 --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/FlagHolders.java @@ -0,0 +1,24 @@ +package io.papermc.generator.utils.experimental; + +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; +import net.minecraft.Util; +import net.minecraft.world.flag.FeatureFlag; +import net.minecraft.world.flag.FeatureFlags; +import org.bukkit.MinecraftExperimental; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public class FlagHolders { + + public static final SingleFlagHolder TRADE_REBALANCE = SingleFlagHolder.fromValue(FeatureFlags.TRADE_REBALANCE); + public static final SingleFlagHolder REDSTONE_EXPERIMENTS = SingleFlagHolder.fromValue(FeatureFlags.REDSTONE_EXPERIMENTS); + public static final SingleFlagHolder MINECART_IMPROVEMENTS = SingleFlagHolder.fromValue(FeatureFlags.MINECART_IMPROVEMENTS); + + static final Map ANNOTATION_EQUIVALENT = Util.make(new HashMap(), map -> { + map.put(TRADE_REBALANCE, MinecraftExperimental.Requires.TRADE_REBALANCE); + map.put(REDSTONE_EXPERIMENTS, MinecraftExperimental.Requires.REDSTONE_EXPERIMENTS); + map.put(MINECART_IMPROVEMENTS, MinecraftExperimental.Requires.MINECART_IMPROVEMENTS); + }).entrySet().stream().collect(Collectors.toMap(entry -> entry.getKey().flag(), Map.Entry::getValue)); +} diff --git a/paper-generator/src/main/java/io/papermc/generator/utils/experimental/SingleFlagHolder.java b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/SingleFlagHolder.java new file mode 100644 index 0000000000..497805310f --- /dev/null +++ b/paper-generator/src/main/java/io/papermc/generator/utils/experimental/SingleFlagHolder.java @@ -0,0 +1,49 @@ +package io.papermc.generator.utils.experimental; + +import com.google.common.base.Preconditions; +import com.google.common.collect.HashBiMap; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.flag.FeatureFlag; +import net.minecraft.world.flag.FeatureFlagSet; +import net.minecraft.world.flag.FeatureFlags; +import org.bukkit.MinecraftExperimental; +import org.jspecify.annotations.NullMarked; + +@NullMarked +public record SingleFlagHolder(FeatureFlag flag) implements FlagHolder { // todo support multiple flags? + + private static final Map FEATURE_FLAG_CACHE = new HashMap<>(); + private static final Map FEATURE_FLAG_NAME = HashBiMap.create(FeatureFlags.REGISTRY.names).inverse(); + + static SingleFlagHolder fromValue(FeatureFlag flag) { + return new SingleFlagHolder(flag); + } + + public static SingleFlagHolder fromSet(FeatureFlagSet standaloneSet) { + Preconditions.checkArgument(Long.bitCount(standaloneSet.mask) == 1, "Flag set size must be equals to 1."); + + for (FeatureFlag flag : FeatureFlags.REGISTRY.names.values()) { + if (standaloneSet.contains(flag)) { + return fromValue(flag); + } + } + + throw new IllegalStateException(); + } + + public static SingleFlagHolder fromName(String name) { + return fromValue(FEATURE_FLAG_CACHE.computeIfAbsent(name, key -> { + return FeatureFlags.REGISTRY.names.get(ResourceLocation.withDefaultNamespace(key)); + })); + } + + public MinecraftExperimental.Requires asAnnotationMember() { + MinecraftExperimental.Requires annotationMember = FlagHolders.ANNOTATION_EQUIVALENT.get(this.flag); + if (annotationMember == null) { + throw new UnsupportedOperationException("Don't know that feature flag: " + FEATURE_FLAG_NAME.get(this.flag)); + } + return annotationMember; + } +} diff --git a/paper-generator/src/test/java/io/papermc/generator/BlockStatePropertyTest.java b/paper-generator/src/test/java/io/papermc/generator/BlockStatePropertyTest.java new file mode 100644 index 0000000000..d0c6c2cfa2 --- /dev/null +++ b/paper-generator/src/test/java/io/papermc/generator/BlockStatePropertyTest.java @@ -0,0 +1,74 @@ +package io.papermc.generator; + +import io.papermc.generator.utils.BlockStateMapping; +import java.lang.invoke.MethodHandles; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collections; +import java.util.HashSet; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import io.papermc.generator.utils.ClassHelper; +import net.minecraft.SharedConstants; +import net.minecraft.server.Bootstrap; +import net.minecraft.world.level.block.ChiseledBookShelfBlock; +import net.minecraft.world.level.block.MossyCarpetBlock; +import net.minecraft.world.level.block.PipeBlock; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +public class BlockStatePropertyTest { + + private static Set>> ENUM_PROPERTY_VALUES; + + @BeforeAll + public static void getAllProperties() { + // bootstrap + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + Bootstrap.validate(); + + // get all properties + Set>> enumPropertyValues = Collections.newSetFromMap(new IdentityHashMap<>()); + try { + for (Field field : BlockStateProperties.class.getDeclaredFields()) { + if (ClassHelper.isStaticConstant(field, Modifier.PUBLIC)) { + if (!EnumProperty.class.isAssignableFrom(field.getType())) { + continue; + } + + enumPropertyValues.add(((EnumProperty) field.get(null)).getValueClass()); + } + } + ENUM_PROPERTY_VALUES = Collections.unmodifiableSet(enumPropertyValues); + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + } + + @Test + public void testReferences() throws NoSuchFieldException, IllegalAccessException { + // if renamed should change DataPropertyWriter#FIELD_TO_BASE_NAME/FIELD_TO_BASE_NAME_SPECIFICS + MethodHandles.Lookup lookup = MethodHandles.lookup(); + lookup.findStaticVarHandle(ChiseledBookShelfBlock.class, "SLOT_OCCUPIED_PROPERTIES", List.class); + lookup.findStaticVarHandle(PipeBlock.class, "PROPERTY_BY_DIRECTION", Map.class); + MethodHandles.privateLookupIn(MossyCarpetBlock.class, lookup).findStaticVarHandle(MossyCarpetBlock.class, "PROPERTY_BY_DIRECTION", Map.class); + } + + @Test + public void testBridge() { + Set missingApiEquivalents = new HashSet<>(); + for (Class> value : ENUM_PROPERTY_VALUES) { + if (!BlockStateMapping.ENUM_BRIDGE.containsKey(value)) { + missingApiEquivalents.add(value.getCanonicalName()); + } + } + + Assertions.assertTrue(missingApiEquivalents.isEmpty(), () -> "Missing some api equivalent in the block state mapping enum bridge (BlockStateMapping#ENUM_BRIDGE) : " + String.join(", ", missingApiEquivalents)); + } +} diff --git a/paper-api-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java b/paper-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java similarity index 74% rename from paper-api-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java rename to paper-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java index 9bc9f6b400..56052d6b58 100644 --- a/paper-api-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java +++ b/paper-generator/src/test/java/io/papermc/generator/MobGoalConverterTest.java @@ -3,21 +3,21 @@ package io.papermc.generator; import io.github.classgraph.ClassGraph; import io.github.classgraph.ScanResult; import io.papermc.generator.types.goal.MobGoalNames; +import java.util.ArrayList; +import java.util.List; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Mob; import org.junit.jupiter.api.Test; -import java.util.ArrayList; -import java.util.List; import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assertions.assertTrue; public class MobGoalConverterTest { @Test public void testBukkitMap() { final List> classes; - try (ScanResult scanResult = new ClassGraph().enableAllInfo().whitelistPackages(Entity.class.getPackageName()).scan()) { + try (ScanResult scanResult = new ClassGraph().enableClassInfo().whitelistPackages(Entity.class.getPackageName()).scan()) { classes = scanResult.getSubclasses(Mob.class.getName()).loadClasses(Mob.class); } @@ -30,8 +30,6 @@ public class MobGoalConverterTest { } } - if (!missingClasses.isEmpty()) { - fail("Missing some entity classes in the bukkit map: " + String.join(", ", missingClasses)); - } + assertTrue(missingClasses.isEmpty(), () -> "Missing some entity classes in the bukkit map: " + String.join(", ", missingClasses)); } } diff --git a/paper-generator/src/test/java/io/papermc/generator/RegistryMigrationTest.java b/paper-generator/src/test/java/io/papermc/generator/RegistryMigrationTest.java new file mode 100644 index 0000000000..61a2648438 --- /dev/null +++ b/paper-generator/src/test/java/io/papermc/generator/RegistryMigrationTest.java @@ -0,0 +1,50 @@ +package io.papermc.generator; + +import io.papermc.generator.registry.RegistryEntries; +import io.papermc.generator.registry.RegistryEntry; +import java.util.HashSet; +import java.util.Set; +import net.minecraft.SharedConstants; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.Bootstrap; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +public class RegistryMigrationTest { + + @BeforeAll + public static void setup() { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + Bootstrap.validate(); + } + + @Test + public void testBuiltInToDataDriven() { + Set migratedRegistries = new HashSet<>(); + for (RegistryEntry entry : RegistryEntries.BUILT_IN) { + ResourceKey> key = entry.registryKey(); + if (!BuiltInRegistries.REGISTRY.containsKey(key.location())) { + migratedRegistries.add(key.toString()); + } + } + + Assertions.assertTrue(migratedRegistries.isEmpty(), () -> "Some registries have become data-driven: %s".formatted(String.join(", ", migratedRegistries))); + } + + @Test + public void testDataDrivenToBuiltIn() { // shouldn't really happen but just in case + Set migratedRegistries = new HashSet<>(); + for (RegistryEntry entry : RegistryEntries.DATA_DRIVEN) { + ResourceKey> key = entry.registryKey(); + if (BuiltInRegistries.REGISTRY.containsKey(key.location())) { + migratedRegistries.add(key.toString()); + } + } + + Assertions.assertTrue(migratedRegistries.isEmpty(), () -> "Some registries have become built-in: %s".formatted(String.join(", ", migratedRegistries))); + } +} diff --git a/paper-api-generator/wideners.at b/paper-generator/wideners.at similarity index 52% rename from paper-api-generator/wideners.at rename to paper-generator/wideners.at index 6c8ce1529e..9e582e37be 100644 --- a/paper-api-generator/wideners.at +++ b/paper-generator/wideners.at @@ -1,6 +1,10 @@ +public net/minecraft/world/level/material/MapColor MATERIAL_COLORS +public net/minecraft/world/level/block/state/properties/IntegerProperty min + # for auto-marking experimental stuff public net/minecraft/core/RegistrySetBuilder entries public net/minecraft/core/RegistrySetBuilder$RegistryStub public net/minecraft/data/registries/VanillaRegistries BUILDER -public net/minecraft/data/registries/WinterDropRegistries BUILDER public net/minecraft/data/registries/TradeRebalanceRegistries BUILDER +public net/minecraft/world/flag/FeatureFlagRegistry names +public net/minecraft/world/flag/FeatureFlagSet mask diff --git a/paper-server/build.gradle.kts b/paper-server/build.gradle.kts index e24fe4a245..0b271b4f2e 100644 --- a/paper-server/build.gradle.kts +++ b/paper-server/build.gradle.kts @@ -1,10 +1,14 @@ import io.papermc.paperweight.attribute.DevBundleOutput import io.papermc.paperweight.util.* +import io.papermc.paperweight.util.data.FileEntry +import paper.libs.com.google.gson.annotations.SerializedName import java.time.Instant +import kotlin.io.path.readText plugins { `java-library` `maven-publish` + idea id("io.papermc.paperweight.core") } @@ -46,6 +50,30 @@ tasks.generateDevelopmentBundle { ) } +data class PackVersion( + val data: Double, + val resource: Double +) + +data class Version( + @SerializedName("pack_version") + val packVersion: PackVersion +) + +tasks.processResources { + val packVersion: Provider = tasks.extractFromBundler.flatMap { it.serverJar }.map { + it.path.openZip().use { fs -> + return@map gson.fromJson(fs.getPath(FileEntry.VERSION_JSON).readText(), Version::class.java).packVersion.data.toInt() + } + } + inputs.property("version", packVersion) + filesMatching("data/minecraft/datapacks/paper/pack.mcmeta") { + expand(mapOf( + "version" to packVersion.get() + )) + } +} + abstract class Services { @get:Inject abstract val softwareComponentFactory: SoftwareComponentFactory @@ -107,6 +135,10 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { } val alsoShade: Configuration by configurations.creating +val runtimeConfiguration by configurations.consumable("runtimeConfiguration") { + attributes.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) +} + // Configure mockito agent that is needed in newer java versions val mockitoAgent = configurations.register("mockitoAgent") abstract class MockitoAgentProvider : CommandLineArgumentProvider { @@ -125,6 +157,7 @@ dependencies { implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.kyori:adventure-text-serializer-ansi:4.18.0") // Keep in sync with adventureVersion from Paper-API build file + runtimeConfiguration(sourceSets.main.map { it.runtimeClasspath }) /* Required to add the missing Log4j2Plugins.dat file from log4j-core @@ -212,13 +245,13 @@ tasks.compileTestJava { options.compilerArgs.add("-parameters") } -val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { +val scanJarForBadCalls by tasks.registering(io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") jarToScan.set(tasks.jar.flatMap { it.archiveFile }) classpath.from(configurations.compileClasspath) } tasks.check { - dependsOn(scanJar) + dependsOn(scanJarForBadCalls) } // Use TCA for console improvements @@ -249,6 +282,32 @@ tasks.test { jvmArgumentProviders.add(provider) } +val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath() +idea { + module { + generatedSourceDirs.add(generatedDir.toFile()) + } +} +sourceSets { + main { + java { + srcDir(generatedDir) + } + } +} + +if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) { + val scanJarForOldGeneratedCode by tasks.registering(io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) { + mcVersion.set(providers.gradleProperty("mcVersion")) + annotation.set("Lio/papermc/paper/generated/GeneratedFrom;") + jarToScan.set(tasks.jar.flatMap { it.archiveFile }) + classpath.from(configurations.compileClasspath) + } + tasks.check { + dependsOn(scanJarForOldGeneratedCode) + } +} + fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit diff --git a/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/Goal.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/Goal.java.patch index 8760a911ad..e64289b685 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/Goal.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/ai/goal/Goal.java.patch @@ -23,13 +23,13 @@ } + // Paper start - Mob goal api -+ private com.destroystokyo.paper.entity.ai.PaperVanillaGoal vanillaGoal; -+ public com.destroystokyo.paper.entity.ai.Goal asPaperVanillaGoal() { -+ if (this.vanillaGoal == null) { -+ this.vanillaGoal = new com.destroystokyo.paper.entity.ai.PaperVanillaGoal<>(this); ++ private com.destroystokyo.paper.entity.ai.PaperGoal paperGoal; ++ public com.destroystokyo.paper.entity.ai.Goal asPaperGoal() { ++ if (this.paperGoal == null) { ++ this.paperGoal = new com.destroystokyo.paper.entity.ai.PaperGoal<>(this); + } + //noinspection unchecked -+ return (com.destroystokyo.paper.entity.ai.Goal) this.vanillaGoal; ++ return (com.destroystokyo.paper.entity.ai.Goal) this.paperGoal; + } + // Paper end - Mob goal api + diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java new file mode 100644 index 0000000000..831c41b3ab --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.AmethystClusterBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.AmethystCluster; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftAmethystCluster extends CraftBlockData implements AmethystCluster { + private static final EnumProperty FACING = AmethystClusterBlock.FACING; + + private static final BooleanProperty WATERLOGGED = AmethystClusterBlock.WATERLOGGED; + + public CraftAmethystCluster(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java new file mode 100644 index 0000000000..e2c1b6bbb2 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.AnvilBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftAnvil extends CraftBlockData implements Directional { + private static final EnumProperty FACING = AnvilBlock.FACING; + + public CraftAnvil(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAttachedStem.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAttachedStem.java new file mode 100644 index 0000000000..b6b30b3d4e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftAttachedStem.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.AttachedStemBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftAttachedStem extends CraftBlockData implements Directional { + private static final EnumProperty FACING = AttachedStemBlock.FACING; + + public CraftAttachedStem(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBambooStalk.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBambooStalk.java new file mode 100644 index 0000000000..1031dd696d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBambooStalk.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BambooStalkBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BambooLeaves; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Bamboo; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBambooStalk extends CraftBlockData implements Bamboo { + private static final IntegerProperty AGE = BambooStalkBlock.AGE; + + private static final EnumProperty LEAVES = BambooStalkBlock.LEAVES; + + private static final IntegerProperty STAGE = BambooStalkBlock.STAGE; + + public CraftBambooStalk(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public Bamboo.Leaves getLeaves() { + return this.get(LEAVES, Bamboo.Leaves.class); + } + + @Override + public void setLeaves(final Bamboo.Leaves leaves) { + Preconditions.checkArgument(leaves != null, "leaves cannot be null!"); + this.set(LEAVES, leaves); + } + + @Override + public int getStage() { + return this.get(STAGE); + } + + @Override + public void setStage(final int stage) { + this.set(STAGE, stage); + } + + @Override + public int getMaximumStage() { + return STAGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java new file mode 100644 index 0000000000..f07ba5234e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java @@ -0,0 +1,35 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BannerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Rotatable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftBanner extends CraftBlockData implements Rotatable { + private static final IntegerProperty ROTATION = BannerBlock.ROTATION; + + public CraftBanner(BlockState state) { + super(state); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java new file mode 100644 index 0000000000..2fc5700748 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BarrelBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Barrel; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBarrel extends CraftBlockData implements Barrel { + private static final EnumProperty FACING = BarrelBlock.FACING; + + private static final BooleanProperty OPEN = BarrelBlock.OPEN; + + public CraftBarrel(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java new file mode 100644 index 0000000000..5e98c3c2d6 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BarrierBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBarrier extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = BarrierBlock.WATERLOGGED; + + public CraftBarrier(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralFan.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralFan.java new file mode 100644 index 0000000000..80a323967e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralFan.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BaseCoralFanBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBaseCoralFan extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = BaseCoralFanBlock.WATERLOGGED; + + public CraftBaseCoralFan(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralPlant.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralPlant.java new file mode 100644 index 0000000000..280375a289 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralPlant.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BaseCoralPlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBaseCoralPlant extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = BaseCoralPlantBlock.WATERLOGGED; + + public CraftBaseCoralPlant(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralWallFan.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralWallFan.java new file mode 100644 index 0000000000..ff28922760 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBaseCoralWallFan.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BaseCoralWallFanBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.CoralWallFan; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBaseCoralWallFan extends CraftBlockData implements CoralWallFan { + private static final EnumProperty FACING = BaseCoralWallFanBlock.FACING; + + private static final BooleanProperty WATERLOGGED = BaseCoralWallFanBlock.WATERLOGGED; + + public CraftBaseCoralWallFan(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBed.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBed.java new file mode 100644 index 0000000000..049322cce5 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBed.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BedBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BedPart; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Bed; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBed extends CraftBlockData implements Bed { + private static final EnumProperty FACING = BedBlock.FACING; + + private static final BooleanProperty OCCUPIED = BedBlock.OCCUPIED; + + private static final EnumProperty PART = BedBlock.PART; + + public CraftBed(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isOccupied() { + return this.get(OCCUPIED); + } + + @Override + public void setOccupied(final boolean occupied) { + this.set(OCCUPIED, occupied); + } + + @Override + public Bed.Part getPart() { + return this.get(PART, Bed.Part.class); + } + + @Override + public void setPart(final Bed.Part part) { + Preconditions.checkArgument(part != null, "part cannot be null!"); + this.set(PART, part); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java new file mode 100644 index 0000000000..994cff12f3 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java @@ -0,0 +1,56 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BeehiveBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Beehive; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBeehive extends CraftBlockData implements Beehive { + private static final EnumProperty FACING = BeehiveBlock.FACING; + + private static final IntegerProperty HONEY_LEVEL = BeehiveBlock.HONEY_LEVEL; + + public CraftBeehive(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public int getHoneyLevel() { + return this.get(HONEY_LEVEL); + } + + @Override + public void setHoneyLevel(final int honeyLevel) { + this.set(HONEY_LEVEL, honeyLevel); + } + + @Override + public int getMaximumHoneyLevel() { + return HONEY_LEVEL.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java new file mode 100644 index 0000000000..58f4cc5f89 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BeetrootBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBeetroot extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = BeetrootBlock.AGE; + + public CraftBeetroot(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBell.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBell.java new file mode 100644 index 0000000000..416207e094 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBell.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BellBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BellAttachType; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Bell; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBell extends CraftBlockData implements Bell { + private static final EnumProperty ATTACHMENT = BellBlock.ATTACHMENT; + + private static final EnumProperty FACING = BellBlock.FACING; + + private static final BooleanProperty POWERED = BellBlock.POWERED; + + public CraftBell(BlockState state) { + super(state); + } + + @Override + public Bell.Attachment getAttachment() { + return this.get(ATTACHMENT, Bell.Attachment.class); + } + + @Override + public void setAttachment(final Bell.Attachment attachment) { + Preconditions.checkArgument(attachment != null, "attachment cannot be null!"); + this.set(ATTACHMENT, attachment); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java new file mode 100644 index 0000000000..5f12b03389 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BigDripleafBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.BigDripleaf; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBigDripleaf extends CraftBlockData implements BigDripleaf { + private static final EnumProperty FACING = BigDripleafBlock.FACING; + + private static final EnumProperty TILT = BlockStateProperties.TILT; + + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftBigDripleaf(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public BigDripleaf.Tilt getTilt() { + return this.get(TILT, BigDripleaf.Tilt.class); + } + + @Override + public void setTilt(final BigDripleaf.Tilt tilt) { + Preconditions.checkArgument(tilt != null, "tilt cannot be null!"); + this.set(TILT, tilt); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java new file mode 100644 index 0000000000..3e724f3c77 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java @@ -0,0 +1,52 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BigDripleafStemBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Dripleaf; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBigDripleafStem extends CraftBlockData implements Dripleaf { + private static final EnumProperty FACING = BigDripleafStemBlock.FACING; + + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftBigDripleafStem(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java new file mode 100644 index 0000000000..3c4b042f42 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.BlastFurnaceBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Furnace; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBlastFurnace extends CraftBlockData implements Furnace { + private static final EnumProperty FACING = BlastFurnaceBlock.FACING; + + private static final BooleanProperty LIT = BlastFurnaceBlock.LIT; + + public CraftBlastFurnace(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java new file mode 100644 index 0000000000..f62fec5183 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java @@ -0,0 +1,45 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.world.level.block.BrewingStandBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.BrewingStand; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBrewingStand extends CraftBlockData implements BrewingStand { + private static final BooleanProperty[] HAS_BOTTLE = BrewingStandBlock.HAS_BOTTLE; + + public CraftBrewingStand(BlockState state) { + super(state); + } + + @Override + public boolean hasBottle(final int index) { + return this.get(HAS_BOTTLE[index]); + } + + @Override + public void setBottle(final int index, final boolean bottle) { + this.set(HAS_BOTTLE[index], bottle); + } + + @Override + public Set getBottles() { + ImmutableSet.Builder bottles = ImmutableSet.builder(); + for (int index = 0, len = HAS_BOTTLE.length; index < len; index++) { + if (this.get(HAS_BOTTLE[index])) { + bottles.add(index); + } + } + return bottles.build(); + } + + @Override + public int getMaximumBottles() { + return HAS_BOTTLE.length; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java new file mode 100644 index 0000000000..7b9eb43830 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Brushable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBrushable extends CraftBlockData implements Brushable { + private static final IntegerProperty DUSTED = BlockStateProperties.DUSTED; + + public CraftBrushable(BlockState state) { + super(state); + } + + @Override + public int getDusted() { + return this.get(DUSTED); + } + + @Override + public void setDusted(final int dusted) { + this.set(DUSTED, dusted); + } + + @Override + public int getMaximumDusted() { + return DUSTED.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java new file mode 100644 index 0000000000..d0af329ea7 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.BubbleColumnBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.BubbleColumn; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftBubbleColumn extends CraftBlockData implements BubbleColumn { + private static final BooleanProperty DRAG_DOWN = BubbleColumnBlock.DRAG_DOWN; + + public CraftBubbleColumn(BlockState state) { + super(state); + } + + @Override + public boolean isDrag() { + return this.get(DRAG_DOWN); + } + + @Override + public void setDrag(final boolean drag) { + this.set(DRAG_DOWN, drag); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftButton.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftButton.java new file mode 100644 index 0000000000..0123210a4f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftButton.java @@ -0,0 +1,66 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ButtonBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Switch; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftButton extends CraftBlockData implements Switch { + private static final EnumProperty FACE = ButtonBlock.FACE; + + private static final EnumProperty FACING = ButtonBlock.FACING; + + private static final BooleanProperty POWERED = ButtonBlock.POWERED; + + public CraftButton(BlockState state) { + super(state); + } + + @Override + public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { + return this.get(FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); + } + + @Override + public void setAttachedFace( + final org.bukkit.block.data.FaceAttachable.AttachedFace attachedFace) { + Preconditions.checkArgument(attachedFace != null, "attachedFace cannot be null!"); + this.set(FACE, attachedFace); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java new file mode 100644 index 0000000000..56bccb51af --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CactusBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCactus extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = CactusBlock.AGE; + + public CraftCactus(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCake.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCake.java new file mode 100644 index 0000000000..bccea8fa76 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCake.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CakeBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Cake; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCake extends CraftBlockData implements Cake { + private static final IntegerProperty BITES = CakeBlock.BITES; + + public CraftCake(BlockState state) { + super(state); + } + + @Override + public int getBites() { + return this.get(BITES); + } + + @Override + public void setBites(final int bites) { + this.set(BITES, bites); + } + + @Override + public int getMaximumBites() { + return BITES.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java new file mode 100644 index 0000000000..204cb08638 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java @@ -0,0 +1,83 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CalibratedSculkSensorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.SculkSensorPhase; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.CalibratedSculkSensor; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCalibratedSculkSensor extends CraftBlockData implements CalibratedSculkSensor { + private static final EnumProperty FACING = CalibratedSculkSensorBlock.FACING; + + private static final IntegerProperty POWER = CalibratedSculkSensorBlock.POWER; + + private static final EnumProperty PHASE = CalibratedSculkSensorBlock.PHASE; + + private static final BooleanProperty WATERLOGGED = CalibratedSculkSensorBlock.WATERLOGGED; + + public CraftCalibratedSculkSensor(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public int getPower() { + return this.get(POWER); + } + + @Override + public void setPower(final int power) { + this.set(POWER, power); + } + + @Override + public int getMaximumPower() { + return POWER.max; + } + + @Override + public org.bukkit.block.data.type.SculkSensor.Phase getSculkSensorPhase() { + return this.get(PHASE, org.bukkit.block.data.type.SculkSensor.Phase.class); + } + + @Override + public void setSculkSensorPhase(final org.bukkit.block.data.type.SculkSensor.Phase phase) { + Preconditions.checkArgument(phase != null, "phase cannot be null!"); + this.set(PHASE, phase); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java new file mode 100644 index 0000000000..90199950ce --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java @@ -0,0 +1,75 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CampfireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Campfire; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCampfire extends CraftBlockData implements Campfire { + private static final EnumProperty FACING = CampfireBlock.FACING; + + private static final BooleanProperty LIT = CampfireBlock.LIT; + + private static final BooleanProperty SIGNAL_FIRE = CampfireBlock.SIGNAL_FIRE; + + private static final BooleanProperty WATERLOGGED = CampfireBlock.WATERLOGGED; + + public CraftCampfire(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } + + @Override + public boolean isSignalFire() { + return this.get(SIGNAL_FIRE); + } + + @Override + public void setSignalFire(final boolean signalFire) { + this.set(SIGNAL_FIRE, signalFire); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java new file mode 100644 index 0000000000..c721f2f336 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CandleBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Candle; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCandle extends CraftBlockData implements Candle { + private static final IntegerProperty CANDLES = CandleBlock.CANDLES; + + private static final BooleanProperty LIT = CandleBlock.LIT; + + private static final BooleanProperty WATERLOGGED = CandleBlock.WATERLOGGED; + + public CraftCandle(BlockState state) { + super(state); + } + + @Override + public int getCandles() { + return this.get(CANDLES); + } + + @Override + public void setCandles(final int candles) { + this.set(CANDLES, candles); + } + + @Override + public int getMinimumCandles() { + return CANDLES.min; + } + + @Override + public int getMaximumCandles() { + return CANDLES.max; + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java new file mode 100644 index 0000000000..72b5084542 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CandleCakeBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Lightable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCandleCake extends CraftBlockData implements Lightable { + private static final BooleanProperty LIT = CandleCakeBlock.LIT; + + public CraftCandleCake(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarrot.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarrot.java new file mode 100644 index 0000000000..c3c220831d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarrot.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CarrotBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCarrot extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = CarrotBlock.AGE; + + public CraftCarrot(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarvedPumpkin.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarvedPumpkin.java new file mode 100644 index 0000000000..9481407850 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCarvedPumpkin.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CarvedPumpkinBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCarvedPumpkin extends CraftBlockData implements Directional { + private static final EnumProperty FACING = CarvedPumpkinBlock.FACING; + + public CraftCarvedPumpkin(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java new file mode 100644 index 0000000000..3ac13dc312 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java @@ -0,0 +1,45 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CaveVinesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.CaveVines; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCaveVines extends CraftBlockData implements CaveVines { + private static final IntegerProperty AGE = CaveVinesBlock.AGE; + + private static final BooleanProperty BERRIES = CaveVinesBlock.BERRIES; + + public CraftCaveVines(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public boolean hasBerries() { + return this.get(BERRIES); + } + + @Override + public void setBerries(final boolean berries) { + this.set(BERRIES, berries); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java new file mode 100644 index 0000000000..4e12a4e601 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CaveVinesPlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.CaveVinesPlant; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCaveVinesPlant extends CraftBlockData implements CaveVinesPlant { + private static final BooleanProperty BERRIES = CaveVinesPlantBlock.BERRIES; + + public CraftCaveVinesPlant(BlockState state) { + super(state); + } + + @Override + public boolean hasBerries() { + return this.get(BERRIES); + } + + @Override + public void setBerries(final boolean berries) { + this.set(BERRIES, berries); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java new file mode 100644 index 0000000000..b504aef24a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java @@ -0,0 +1,60 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CeilingHangingSignBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.HangingSign; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftCeilingHangingSign extends CraftBlockData implements HangingSign { + private static final BooleanProperty ATTACHED = CeilingHangingSignBlock.ATTACHED; + + private static final IntegerProperty ROTATION = CeilingHangingSignBlock.ROTATION; + + private static final BooleanProperty WATERLOGGED = CeilingHangingSignBlock.WATERLOGGED; + + public CraftCeilingHangingSign(BlockState state) { + super(state); + } + + @Override + public boolean isAttached() { + return this.get(ATTACHED); + } + + @Override + public void setAttached(final boolean attached) { + this.set(ATTACHED, attached); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChain.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChain.java new file mode 100644 index 0000000000..c6f0e6dd7a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChain.java @@ -0,0 +1,50 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ChainBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.type.Chain; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftChain extends CraftBlockData implements Chain { + private static final EnumProperty AXIS = ChainBlock.AXIS; + + private static final BooleanProperty WATERLOGGED = ChainBlock.WATERLOGGED; + + public CraftChain(BlockState state) { + super(state); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChest.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChest.java new file mode 100644 index 0000000000..7d39da6c17 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChest.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ChestBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.ChestType; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Chest; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftChest extends CraftBlockData implements Chest { + private static final EnumProperty FACING = ChestBlock.FACING; + + private static final EnumProperty TYPE = ChestBlock.TYPE; + + private static final BooleanProperty WATERLOGGED = ChestBlock.WATERLOGGED; + + public CraftChest(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public Chest.Type getType() { + return this.get(TYPE, Chest.Type.class); + } + + @Override + public void setType(final Chest.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java new file mode 100644 index 0000000000..45d1c7bc8a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java @@ -0,0 +1,70 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.List; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ChiseledBookShelfBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.ChiseledBookshelf; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftChiseledBookShelf extends CraftBlockData implements ChiseledBookshelf { + private static final EnumProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING; + + private static final List SLOT_OCCUPIED_PROPERTIES = ChiseledBookShelfBlock.SLOT_OCCUPIED_PROPERTIES; + + public CraftChiseledBookShelf(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(HORIZONTAL_FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(HORIZONTAL_FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(HORIZONTAL_FACING, BlockFace.class); + } + + @Override + public boolean isSlotOccupied(final int index) { + return this.get(SLOT_OCCUPIED_PROPERTIES.get(index)); + } + + @Override + public void setSlotOccupied(final int index, final boolean slotOccupied) { + this.set(SLOT_OCCUPIED_PROPERTIES.get(index), slotOccupied); + } + + @Override + public Set getOccupiedSlots() { + ImmutableSet.Builder slotOccupieds = ImmutableSet.builder(); + for (int index = 0, size = SLOT_OCCUPIED_PROPERTIES.size(); index < size; index++) { + if (this.get(SLOT_OCCUPIED_PROPERTIES.get(index))) { + slotOccupieds.add(index); + } + } + return slotOccupieds.build(); + } + + @Override + public int getMaximumOccupiedSlots() { + return SLOT_OCCUPIED_PROPERTIES.size(); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java new file mode 100644 index 0000000000..244340552a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.ChorusFlowerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftChorusFlower extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = ChorusFlowerBlock.AGE; + + public CraftChorusFlower(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusPlant.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusPlant.java new file mode 100644 index 0000000000..3f416ad238 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftChorusPlant.java @@ -0,0 +1,58 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.ChorusPlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.craftbukkit.block.CraftBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftChorusPlant extends CraftBlockData implements MultipleFacing { + private static final Map PROPERTY_BY_DIRECTION = ChorusPlantBlock.PROPERTY_BY_DIRECTION.entrySet().stream() + .collect(Collectors.toMap(entry -> CraftBlock.notchToBlockFace(entry.getKey()), entry -> entry.getValue())); + + public CraftChorusPlant(BlockState state) { + super(state); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java new file mode 100644 index 0000000000..1ed614dc53 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java @@ -0,0 +1,56 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CocoaBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Cocoa; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCocoa extends CraftBlockData implements Cocoa { + private static final IntegerProperty AGE = CocoaBlock.AGE; + + private static final EnumProperty FACING = CocoaBlock.FACING; + + public CraftCocoa(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCommandBlock.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCommandBlock.java new file mode 100644 index 0000000000..61289edc85 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCommandBlock.java @@ -0,0 +1,50 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.CommandBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCommandBlock extends CraftBlockData implements CommandBlock { + private static final BooleanProperty CONDITIONAL = net.minecraft.world.level.block.CommandBlock.CONDITIONAL; + + private static final EnumProperty FACING = net.minecraft.world.level.block.CommandBlock.FACING; + + public CraftCommandBlock(BlockState state) { + super(state); + } + + @Override + public boolean isConditional() { + return this.get(CONDITIONAL); + } + + @Override + public void setConditional(final boolean conditional) { + this.set(CONDITIONAL, conditional); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComparator.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComparator.java new file mode 100644 index 0000000000..b6aa094ed7 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComparator.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ComparatorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.ComparatorMode; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Comparator; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftComparator extends CraftBlockData implements Comparator { + private static final EnumProperty FACING = ComparatorBlock.FACING; + + private static final EnumProperty MODE = ComparatorBlock.MODE; + + private static final BooleanProperty POWERED = ComparatorBlock.POWERED; + + public CraftComparator(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public Comparator.Mode getMode() { + return this.get(MODE, Comparator.Mode.class); + } + + @Override + public void setMode(final Comparator.Mode mode) { + Preconditions.checkArgument(mode != null, "mode cannot be null!"); + this.set(MODE, mode); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java new file mode 100644 index 0000000000..8fb91b98d3 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.ComposterBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Levelled; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftComposter extends CraftBlockData implements Levelled { + private static final IntegerProperty LEVEL = ComposterBlock.LEVEL; + + public CraftComposter(BlockState state) { + super(state); + } + + @Override + public int getLevel() { + return this.get(LEVEL); + } + + @Override + public void setLevel(final int level) { + this.set(LEVEL, level); + } + + @Override + public int getMinimumLevel() { + return LEVEL.min; + } + + @Override + public int getMaximumLevel() { + return LEVEL.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java new file mode 100644 index 0000000000..a09c79ed64 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.ConduitBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftConduit extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = ConduitBlock.WATERLOGGED; + + public CraftConduit(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java new file mode 100644 index 0000000000..52b835e6f1 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java @@ -0,0 +1,39 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CopperBulbBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.CopperBulb; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCopperBulb extends CraftBlockData implements CopperBulb { + private static final BooleanProperty LIT = CopperBulbBlock.LIT; + + private static final BooleanProperty POWERED = CopperBulbBlock.POWERED; + + public CraftCopperBulb(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java new file mode 100644 index 0000000000..7fa5a10845 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CoralFanBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCoralFan extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = CoralFanBlock.WATERLOGGED; + + public CraftCoralFan(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java new file mode 100644 index 0000000000..7c4a1f8f24 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CoralPlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCoralPlant extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = CoralPlantBlock.WATERLOGGED; + + public CraftCoralPlant(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralWallFan.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralWallFan.java new file mode 100644 index 0000000000..a35e57703b --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCoralWallFan.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CoralWallFanBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.CoralWallFan; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCoralWallFan extends CraftBlockData implements CoralWallFan { + private static final EnumProperty FACING = CoralWallFanBlock.FACING; + + private static final BooleanProperty WATERLOGGED = CoralWallFanBlock.WATERLOGGED; + + public CraftCoralWallFan(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java new file mode 100644 index 0000000000..84489458cd --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java @@ -0,0 +1,56 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.core.FrontAndTop; +import net.minecraft.world.level.block.CrafterBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.type.Crafter; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCrafter extends CraftBlockData implements Crafter { + private static final BooleanProperty CRAFTING = CrafterBlock.CRAFTING; + + private static final EnumProperty ORIENTATION = BlockStateProperties.ORIENTATION; + + private static final BooleanProperty TRIGGERED = CrafterBlock.TRIGGERED; + + public CraftCrafter(BlockState state) { + super(state); + } + + @Override + public boolean isCrafting() { + return this.get(CRAFTING); + } + + @Override + public void setCrafting(final boolean crafting) { + this.set(CRAFTING, crafting); + } + + @Override + public org.bukkit.block.Orientation getOrientation() { + return this.get(ORIENTATION, org.bukkit.block.Orientation.class); + } + + @Override + public void setOrientation(final org.bukkit.block.Orientation orientation) { + Preconditions.checkArgument(orientation != null, "orientation cannot be null!"); + this.set(ORIENTATION, orientation); + } + + @Override + public boolean isTriggered() { + return this.get(TRIGGERED); + } + + @Override + public void setTriggered(final boolean triggered) { + this.set(TRIGGERED, triggered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java new file mode 100644 index 0000000000..36955486d9 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.CreakingHeartBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.type.CreakingHeart; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCreakingHeart extends CraftBlockData implements CreakingHeart { + private static final BooleanProperty ACTIVE = CreakingHeartBlock.ACTIVE; + + private static final EnumProperty AXIS = CreakingHeartBlock.AXIS; + + private static final BooleanProperty NATURAL = CreakingHeartBlock.NATURAL; + + public CraftCreakingHeart(BlockState state) { + super(state); + } + + @Override + public boolean isActive() { + return this.get(ACTIVE); + } + + @Override + public void setActive(final boolean active) { + this.set(ACTIVE, active); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } + + @Override + public boolean isNatural() { + return this.get(NATURAL); + } + + @Override + public void setNatural(final boolean natural) { + this.set(NATURAL, natural); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrop.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrop.java new file mode 100644 index 0000000000..af49c4f671 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftCrop.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.CropBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftCrop extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = CropBlock.AGE; + + public CraftCrop(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java new file mode 100644 index 0000000000..3fd6e3a9e3 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java @@ -0,0 +1,45 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.DaylightDetectorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.DaylightDetector; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDaylightDetector extends CraftBlockData implements DaylightDetector { + private static final BooleanProperty INVERTED = DaylightDetectorBlock.INVERTED; + + private static final IntegerProperty POWER = DaylightDetectorBlock.POWER; + + public CraftDaylightDetector(BlockState state) { + super(state); + } + + @Override + public boolean isInverted() { + return this.get(INVERTED); + } + + @Override + public void setInverted(final boolean inverted) { + this.set(INVERTED, inverted); + } + + @Override + public int getPower() { + return this.get(POWER); + } + + @Override + public void setPower(final int power) { + this.set(POWER, power); + } + + @Override + public int getMaximumPower() { + return POWER.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java new file mode 100644 index 0000000000..91169c404f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java @@ -0,0 +1,64 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.DecoratedPotBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.DecoratedPot; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDecoratedPot extends CraftBlockData implements DecoratedPot { + private static final BooleanProperty CRACKED = DecoratedPotBlock.CRACKED; + + private static final EnumProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING; + + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftDecoratedPot(BlockState state) { + super(state); + } + + @Override + public boolean isCracked() { + return this.get(CRACKED); + } + + @Override + public void setCracked(final boolean cracked) { + this.set(CRACKED, cracked); + } + + @Override + public BlockFace getFacing() { + return this.get(HORIZONTAL_FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(HORIZONTAL_FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(HORIZONTAL_FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDetectorRail.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDetectorRail.java new file mode 100644 index 0000000000..207dd7018a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDetectorRail.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.world.level.block.DetectorRailBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.RailShape; +import org.bukkit.block.data.type.RedstoneRail; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDetectorRail extends CraftBlockData implements RedstoneRail { + private static final BooleanProperty POWERED = DetectorRailBlock.POWERED; + + private static final EnumProperty SHAPE = DetectorRailBlock.SHAPE; + + private static final BooleanProperty WATERLOGGED = DetectorRailBlock.WATERLOGGED; + + public CraftDetectorRail(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public org.bukkit.block.data.Rail.Shape getShape() { + return this.get(SHAPE, org.bukkit.block.data.Rail.Shape.class); + } + + @Override + public void setShape(final org.bukkit.block.data.Rail.Shape shape) { + Preconditions.checkArgument(shape != null, "shape cannot be null!"); + Preconditions.checkArgument(shape != org.bukkit.block.data.Rail.Shape.NORTH_EAST && shape != org.bukkit.block.data.Rail.Shape.NORTH_WEST && shape != org.bukkit.block.data.Rail.Shape.SOUTH_EAST && shape != org.bukkit.block.data.Rail.Shape.SOUTH_WEST, "Invalid rail shape, only straight rail are allowed for this property!"); + this.set(SHAPE, shape); + } + + @Override + public Set getShapes() { + return this.getValues(SHAPE, org.bukkit.block.data.Rail.Shape.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java new file mode 100644 index 0000000000..2432203ee0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.DispenserBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Dispenser; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDispenser extends CraftBlockData implements Dispenser { + private static final EnumProperty FACING = DispenserBlock.FACING; + + private static final BooleanProperty TRIGGERED = DispenserBlock.TRIGGERED; + + public CraftDispenser(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isTriggered() { + return this.get(TRIGGERED); + } + + @Override + public void setTriggered(final boolean triggered) { + this.set(TRIGGERED, triggered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java new file mode 100644 index 0000000000..4864583b38 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java @@ -0,0 +1,91 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.DoorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DoorHingeSide; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Door; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDoor extends CraftBlockData implements Door { + private static final EnumProperty FACING = DoorBlock.FACING; + + private static final EnumProperty HALF = DoorBlock.HALF; + + private static final EnumProperty HINGE = DoorBlock.HINGE; + + private static final BooleanProperty OPEN = DoorBlock.OPEN; + + private static final BooleanProperty POWERED = DoorBlock.POWERED; + + public CraftDoor(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public Door.Hinge getHinge() { + return this.get(HINGE, Door.Hinge.class); + } + + @Override + public void setHinge(final Door.Hinge hinge) { + Preconditions.checkArgument(hinge != null, "hinge cannot be null!"); + this.set(HINGE, hinge); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoublePlant.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoublePlant.java new file mode 100644 index 0000000000..dc79cdefc4 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDoublePlant.java @@ -0,0 +1,30 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.DoublePlantBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.Bisected; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDoublePlant extends CraftBlockData implements Bisected { + private static final EnumProperty HALF = DoublePlantBlock.HALF; + + public CraftDoublePlant(BlockState state) { + super(state); + } + + @Override + public Bisected.Half getHalf() { + return this.get(HALF, Bisected.Half.class); + } + + @Override + public void setHalf(final Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java new file mode 100644 index 0000000000..20ed535fbe --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.DropperBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Dispenser; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftDropper extends CraftBlockData implements Dispenser { + private static final EnumProperty FACING = DropperBlock.FACING; + + private static final BooleanProperty TRIGGERED = DropperBlock.TRIGGERED; + + public CraftDropper(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isTriggered() { + return this.get(TRIGGERED); + } + + @Override + public void setTriggered(final boolean triggered) { + this.set(TRIGGERED, triggered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndPortalFrame.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndPortalFrame.java new file mode 100644 index 0000000000..9adcada07f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndPortalFrame.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.EndPortalFrameBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.EndPortalFrame; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftEndPortalFrame extends CraftBlockData implements EndPortalFrame { + private static final BooleanProperty HAS_EYE = EndPortalFrameBlock.HAS_EYE; + + private static final EnumProperty FACING = EndPortalFrameBlock.FACING; + + public CraftEndPortalFrame(BlockState state) { + super(state); + } + + @Override + public boolean hasEye() { + return this.get(HAS_EYE); + } + + @Override + public void setEye(final boolean eye) { + this.set(HAS_EYE, eye); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java new file mode 100644 index 0000000000..1fd7c67b3e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.EndRodBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftEndRod extends CraftBlockData implements Directional { + private static final EnumProperty FACING = EndRodBlock.FACING; + + public CraftEndRod(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java new file mode 100644 index 0000000000..4bfcb66901 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.EnderChestBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.EnderChest; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftEnderChest extends CraftBlockData implements EnderChest { + private static final EnumProperty FACING = EnderChestBlock.FACING; + + private static final BooleanProperty WATERLOGGED = EnderChestBlock.WATERLOGGED; + + public CraftEnderChest(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFarm.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFarm.java new file mode 100644 index 0000000000..a6cdeddfb8 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFarm.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.FarmBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Farmland; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFarm extends CraftBlockData implements Farmland { + private static final IntegerProperty MOISTURE = FarmBlock.MOISTURE; + + public CraftFarm(BlockState state) { + super(state); + } + + @Override + public int getMoisture() { + return this.get(MOISTURE); + } + + @Override + public void setMoisture(final int moisture) { + this.set(MOISTURE, moisture); + } + + @Override + public int getMaximumMoisture() { + return MOISTURE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFence.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFence.java new file mode 100644 index 0000000000..a64b1ba919 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFence.java @@ -0,0 +1,73 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.FenceBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Fence; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFence extends CraftBlockData implements Fence { + private static final BooleanProperty WATERLOGGED = FenceBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.EAST, FenceBlock.EAST, + BlockFace.NORTH, FenceBlock.NORTH, + BlockFace.SOUTH, FenceBlock.SOUTH, + BlockFace.WEST, FenceBlock.WEST + ); + + public CraftFence(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java new file mode 100644 index 0000000000..141da08ff9 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java @@ -0,0 +1,75 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Gate; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFenceGate extends CraftBlockData implements Gate { + private static final EnumProperty FACING = FenceGateBlock.FACING; + + private static final BooleanProperty IN_WALL = FenceGateBlock.IN_WALL; + + private static final BooleanProperty OPEN = FenceGateBlock.OPEN; + + private static final BooleanProperty POWERED = FenceGateBlock.POWERED; + + public CraftFenceGate(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isInWall() { + return this.get(IN_WALL); + } + + @Override + public void setInWall(final boolean inWall) { + this.set(IN_WALL, inWall); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFire.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFire.java new file mode 100644 index 0000000000..5d4dd7ff4d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFire.java @@ -0,0 +1,80 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.FireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Fire; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFire extends CraftBlockData implements Fire { + private static final IntegerProperty AGE = FireBlock.AGE; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.EAST, FireBlock.EAST, + BlockFace.NORTH, FireBlock.NORTH, + BlockFace.SOUTH, FireBlock.SOUTH, + BlockFace.UP, FireBlock.UP, + BlockFace.WEST, FireBlock.WEST + ); + + public CraftFire(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFrostedIce.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFrostedIce.java new file mode 100644 index 0000000000..2a22da158a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFrostedIce.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.FrostedIceBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFrostedIce extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = FrostedIceBlock.AGE; + + public CraftFrostedIce(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFurnace.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFurnace.java new file mode 100644 index 0000000000..03a5810d92 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftFurnace.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.FurnaceBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Furnace; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftFurnace extends CraftBlockData implements Furnace { + private static final EnumProperty FACING = FurnaceBlock.FACING; + + private static final BooleanProperty LIT = FurnaceBlock.LIT; + + public CraftFurnace(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java new file mode 100644 index 0000000000..41477f4e76 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.GlazedTerracottaBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftGlazedTerracotta extends CraftBlockData implements Directional { + private static final EnumProperty FACING = GlazedTerracottaBlock.FACING; + + public CraftGlazedTerracotta(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java new file mode 100644 index 0000000000..6309ca7020 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java @@ -0,0 +1,76 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.GlowLichenBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.GlowLichen; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftGlowLichen extends CraftBlockData implements GlowLichen { + private static final BooleanProperty WATERLOGGED = GlowLichenBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.DOWN, BlockStateProperties.DOWN, + BlockFace.EAST, BlockStateProperties.EAST, + BlockFace.NORTH, BlockStateProperties.NORTH, + BlockFace.SOUTH, BlockStateProperties.SOUTH, + BlockFace.UP, BlockStateProperties.UP, + BlockFace.WEST, BlockStateProperties.WEST + ); + + public CraftGlowLichen(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java new file mode 100644 index 0000000000..ba074f78e3 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.GrassBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Snowable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftGrass extends CraftBlockData implements Snowable { + private static final BooleanProperty SNOWY = GrassBlock.SNOWY; + + public CraftGrass(BlockState state) { + super(state); + } + + @Override + public boolean isSnowy() { + return this.get(SNOWY); + } + + @Override + public void setSnowy(final boolean snowy) { + this.set(SNOWY, snowy); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java new file mode 100644 index 0000000000..0b6bdc8d6e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java @@ -0,0 +1,53 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.GrindstoneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Grindstone; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftGrindstone extends CraftBlockData implements Grindstone { + private static final EnumProperty FACE = GrindstoneBlock.FACE; + + private static final EnumProperty FACING = GrindstoneBlock.FACING; + + public CraftGrindstone(BlockState state) { + super(state); + } + + @Override + public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { + return this.get(FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); + } + + @Override + public void setAttachedFace( + final org.bukkit.block.data.FaceAttachable.AttachedFace attachedFace) { + Preconditions.checkArgument(attachedFace != null, "attachedFace cannot be null!"); + this.set(FACE, attachedFace); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java new file mode 100644 index 0000000000..fc46827a7b --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.HangingMossBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.HangingMoss; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHangingMoss extends CraftBlockData implements HangingMoss { + private static final BooleanProperty TIP = HangingMossBlock.TIP; + + public CraftHangingMoss(BlockState state) { + super(state); + } + + @Override + public boolean isTip() { + return this.get(TIP); + } + + @Override + public void setTip(final boolean tip) { + this.set(TIP, tip); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java new file mode 100644 index 0000000000..a8952773a4 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHangingRoots extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftHangingRoots(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHay.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHay.java new file mode 100644 index 0000000000..c9175d9b54 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHay.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.HayBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.Orientable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHay extends CraftBlockData implements Orientable { + private static final EnumProperty AXIS = HayBlock.AXIS; + + public CraftHay(BlockState state) { + super(state); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java new file mode 100644 index 0000000000..a9a3b69c40 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.HeavyCoreBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHeavyCore extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = HeavyCoreBlock.WATERLOGGED; + + public CraftHeavyCore(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java new file mode 100644 index 0000000000..a334bf2ef5 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.HopperBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Hopper; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHopper extends CraftBlockData implements Hopper { + private static final BooleanProperty ENABLED = HopperBlock.ENABLED; + + private static final EnumProperty FACING = HopperBlock.FACING; + + public CraftHopper(BlockState state) { + super(state); + } + + @Override + public boolean isEnabled() { + return this.get(ENABLED); + } + + @Override + public void setEnabled(final boolean enabled) { + this.set(ENABLED, enabled); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace != BlockFace.UP, "Invalid face, only cartesian face (excluding UP) are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java new file mode 100644 index 0000000000..bf4998ab31 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java @@ -0,0 +1,63 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.HugeMushroomBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftHugeMushroom extends CraftBlockData implements MultipleFacing { + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.DOWN, HugeMushroomBlock.DOWN, + BlockFace.EAST, HugeMushroomBlock.EAST, + BlockFace.NORTH, HugeMushroomBlock.NORTH, + BlockFace.SOUTH, HugeMushroomBlock.SOUTH, + BlockFace.UP, HugeMushroomBlock.UP, + BlockFace.WEST, HugeMushroomBlock.WEST + ); + + public CraftHugeMushroom(BlockState state) { + super(state); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java new file mode 100644 index 0000000000..b09bd1c67c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.Orientable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftInfestedRotatedPillar extends CraftBlockData implements Orientable { + private static final EnumProperty AXIS = BlockStateProperties.AXIS; + + public CraftInfestedRotatedPillar(BlockState state) { + super(state); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java new file mode 100644 index 0000000000..2f4d30045e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java @@ -0,0 +1,73 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.IronBarsBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Fence; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftIronBars extends CraftBlockData implements Fence { + private static final BooleanProperty WATERLOGGED = IronBarsBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.EAST, IronBarsBlock.EAST, + BlockFace.NORTH, IronBarsBlock.NORTH, + BlockFace.SOUTH, IronBarsBlock.SOUTH, + BlockFace.WEST, IronBarsBlock.WEST + ); + + public CraftIronBars(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java new file mode 100644 index 0000000000..7ca563029f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java @@ -0,0 +1,30 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.core.FrontAndTop; +import net.minecraft.world.level.block.JigsawBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.type.Jigsaw; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftJigsaw extends CraftBlockData implements Jigsaw { + private static final EnumProperty ORIENTATION = JigsawBlock.ORIENTATION; + + public CraftJigsaw(BlockState state) { + super(state); + } + + @Override + public org.bukkit.block.Orientation getOrientation() { + return this.get(ORIENTATION, org.bukkit.block.Orientation.class); + } + + @Override + public void setOrientation(final org.bukkit.block.Orientation orientation) { + Preconditions.checkArgument(orientation != null, "orientation cannot be null!"); + this.set(ORIENTATION, orientation); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJukebox.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJukebox.java new file mode 100644 index 0000000000..e27dfadb79 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftJukebox.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.JukeboxBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.Jukebox; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftJukebox extends CraftBlockData implements Jukebox { + private static final BooleanProperty HAS_RECORD = JukeboxBlock.HAS_RECORD; + + public CraftJukebox(BlockState state) { + super(state); + } + + @Override + public boolean hasRecord() { + return this.get(HAS_RECORD); + } + + @Override + public void setHasRecord(final boolean hasRecord) { + this.set(HAS_RECORD, hasRecord); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java new file mode 100644 index 0000000000..8cb9493a92 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.KelpBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftKelp extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = KelpBlock.AGE; + + public CraftKelp(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java new file mode 100644 index 0000000000..6e5f188398 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.LadderBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Ladder; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLadder extends CraftBlockData implements Ladder { + private static final EnumProperty FACING = LadderBlock.FACING; + + private static final BooleanProperty WATERLOGGED = LadderBlock.WATERLOGGED; + + public CraftLadder(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java new file mode 100644 index 0000000000..7f7da89829 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java @@ -0,0 +1,39 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.LanternBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.Lantern; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLantern extends CraftBlockData implements Lantern { + private static final BooleanProperty HANGING = LanternBlock.HANGING; + + private static final BooleanProperty WATERLOGGED = LanternBlock.WATERLOGGED; + + public CraftLantern(BlockState state) { + super(state); + } + + @Override + public boolean isHanging() { + return this.get(HANGING); + } + + @Override + public void setHanging(final boolean hanging) { + this.set(HANGING, hanging); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java new file mode 100644 index 0000000000..f85a88d549 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.LayeredCauldronBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Levelled; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLayeredCauldron extends CraftBlockData implements Levelled { + private static final IntegerProperty LEVEL = LayeredCauldronBlock.LEVEL; + + public CraftLayeredCauldron(BlockState state) { + super(state); + } + + @Override + public int getLevel() { + return this.get(LEVEL); + } + + @Override + public void setLevel(final int level) { + this.set(LEVEL, level); + } + + @Override + public int getMinimumLevel() { + return LEVEL.min; + } + + @Override + public int getMaximumLevel() { + return LEVEL.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java new file mode 100644 index 0000000000..53b4645e77 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.LeavesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Leaves; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLeaves extends CraftBlockData implements Leaves { + private static final IntegerProperty DISTANCE = LeavesBlock.DISTANCE; + + private static final BooleanProperty PERSISTENT = LeavesBlock.PERSISTENT; + + private static final BooleanProperty WATERLOGGED = LeavesBlock.WATERLOGGED; + + public CraftLeaves(BlockState state) { + super(state); + } + + @Override + public int getDistance() { + return this.get(DISTANCE); + } + + @Override + public void setDistance(final int distance) { + this.set(DISTANCE, distance); + } + + @Override + public int getMinimumDistance() { + return DISTANCE.min; + } + + @Override + public int getMaximumDistance() { + return DISTANCE.max; + } + + @Override + public boolean isPersistent() { + return this.get(PERSISTENT); + } + + @Override + public void setPersistent(final boolean persistent) { + this.set(PERSISTENT, persistent); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java new file mode 100644 index 0000000000..354dbed159 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java @@ -0,0 +1,63 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.LecternBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Lectern; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLectern extends CraftBlockData implements Lectern { + private static final EnumProperty FACING = LecternBlock.FACING; + + private static final BooleanProperty HAS_BOOK = LecternBlock.HAS_BOOK; + + private static final BooleanProperty POWERED = LecternBlock.POWERED; + + public CraftLectern(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean hasBook() { + return this.get(HAS_BOOK); + } + + @Override + public void setHasBook(final boolean hasBook) { + this.set(HAS_BOOK, hasBook); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLever.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLever.java new file mode 100644 index 0000000000..6c133aaf61 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLever.java @@ -0,0 +1,66 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.LeverBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.AttachFace; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Switch; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLever extends CraftBlockData implements Switch { + private static final EnumProperty FACE = LeverBlock.FACE; + + private static final EnumProperty FACING = LeverBlock.FACING; + + private static final BooleanProperty POWERED = LeverBlock.POWERED; + + public CraftLever(BlockState state) { + super(state); + } + + @Override + public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { + return this.get(FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); + } + + @Override + public void setAttachedFace( + final org.bukkit.block.data.FaceAttachable.AttachedFace attachedFace) { + Preconditions.checkArgument(attachedFace != null, "attachedFace cannot be null!"); + this.set(FACE, attachedFace); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLight.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLight.java new file mode 100644 index 0000000000..cb6c4b10f9 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLight.java @@ -0,0 +1,50 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.LightBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Light; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLight extends CraftBlockData implements Light { + private static final IntegerProperty LEVEL = LightBlock.LEVEL; + + private static final BooleanProperty WATERLOGGED = LightBlock.WATERLOGGED; + + public CraftLight(BlockState state) { + super(state); + } + + @Override + public int getLevel() { + return this.get(LEVEL); + } + + @Override + public void setLevel(final int level) { + this.set(LEVEL, level); + } + + @Override + public int getMinimumLevel() { + return LEVEL.min; + } + + @Override + public int getMaximumLevel() { + return LEVEL.max; + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java new file mode 100644 index 0000000000..30075eb59a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java @@ -0,0 +1,63 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.LightningRodBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.LightningRod; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLightningRod extends CraftBlockData implements LightningRod { + private static final EnumProperty FACING = LightningRodBlock.FACING; + + private static final BooleanProperty POWERED = LightningRodBlock.POWERED; + + private static final BooleanProperty WATERLOGGED = LightningRodBlock.WATERLOGGED; + + public CraftLightningRod(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLiquid.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLiquid.java new file mode 100644 index 0000000000..da8090c1b6 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLiquid.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Levelled; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLiquid extends CraftBlockData implements Levelled { + private static final IntegerProperty LEVEL = LiquidBlock.LEVEL; + + public CraftLiquid(BlockState state) { + super(state); + } + + @Override + public int getLevel() { + return this.get(LEVEL); + } + + @Override + public void setLevel(final int level) { + this.set(LEVEL, level); + } + + @Override + public int getMinimumLevel() { + return LEVEL.min; + } + + @Override + public int getMaximumLevel() { + return LEVEL.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java new file mode 100644 index 0000000000..69fdbc9602 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.LoomBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftLoom extends CraftBlockData implements Directional { + private static final EnumProperty FACING = LoomBlock.FACING; + + public CraftLoom(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java new file mode 100644 index 0000000000..347893b746 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.MangroveLeavesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Leaves; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMangroveLeaves extends CraftBlockData implements Leaves { + private static final IntegerProperty DISTANCE = MangroveLeavesBlock.DISTANCE; + + private static final BooleanProperty PERSISTENT = MangroveLeavesBlock.PERSISTENT; + + private static final BooleanProperty WATERLOGGED = MangroveLeavesBlock.WATERLOGGED; + + public CraftMangroveLeaves(BlockState state) { + super(state); + } + + @Override + public int getDistance() { + return this.get(DISTANCE); + } + + @Override + public void setDistance(final int distance) { + this.set(DISTANCE, distance); + } + + @Override + public int getMinimumDistance() { + return DISTANCE.min; + } + + @Override + public int getMaximumDistance() { + return DISTANCE.max; + } + + @Override + public boolean isPersistent() { + return this.get(PERSISTENT); + } + + @Override + public void setPersistent(final boolean persistent) { + this.set(PERSISTENT, persistent); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java new file mode 100644 index 0000000000..3ffd6a4a7d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java @@ -0,0 +1,75 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.MangrovePropaguleBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.MangrovePropagule; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMangrovePropagule extends CraftBlockData implements MangrovePropagule { + private static final IntegerProperty AGE = MangrovePropaguleBlock.AGE; + + private static final BooleanProperty HANGING = MangrovePropaguleBlock.HANGING; + + private static final IntegerProperty STAGE = MangrovePropaguleBlock.STAGE; + + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftMangrovePropagule(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public boolean isHanging() { + return this.get(HANGING); + } + + @Override + public void setHanging(final boolean hanging) { + this.set(HANGING, hanging); + } + + @Override + public int getStage() { + return this.get(STAGE); + } + + @Override + public void setStage(final int stage) { + this.set(STAGE, stage); + } + + @Override + public int getMaximumStage() { + return STAGE.max; + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java new file mode 100644 index 0000000000..9c65ec726f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.MangroveRootsBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMangroveRoots extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = MangroveRootsBlock.WATERLOGGED; + + public CraftMangroveRoots(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java new file mode 100644 index 0000000000..1ccfb34613 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.MossyCarpetBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.WallSide; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.MossyCarpet; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMossyCarpet extends CraftBlockData implements MossyCarpet { + private static final BooleanProperty BASE = MossyCarpetBlock.BASE; + + private static final Map> PROPERTY_BY_DIRECTION = Map.of( + BlockFace.NORTH, BlockStateProperties.NORTH_WALL, + BlockFace.SOUTH, BlockStateProperties.SOUTH_WALL, + BlockFace.WEST, BlockStateProperties.WEST_WALL, + BlockFace.EAST, BlockStateProperties.EAST_WALL + ); + + public CraftMossyCarpet(BlockState state) { + super(state); + } + + @Override + public boolean isBottom() { + return this.get(BASE); + } + + @Override + public void setBottom(final boolean bottom) { + this.set(BASE, bottom); + } + + @Override + public org.bukkit.block.data.type.Wall.Height getHeight(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + EnumProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property, org.bukkit.block.data.type.Wall.Height.class); + } + + @Override + public void setHeight(final BlockFace blockFace, + final org.bukkit.block.data.type.Wall.Height height) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(height != null, "height cannot be null!"); + EnumProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, height); + } + + public Set getAllowedHeights() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMovingPiston.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMovingPiston.java new file mode 100644 index 0000000000..e601fe8b4a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMovingPiston.java @@ -0,0 +1,52 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.piston.MovingPistonBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.PistonType; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.TechnicalPiston; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMovingPiston extends CraftBlockData implements TechnicalPiston { + private static final EnumProperty FACING = MovingPistonBlock.FACING; + + private static final EnumProperty TYPE = MovingPistonBlock.TYPE; + + public CraftMovingPiston(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public TechnicalPiston.Type getType() { + return this.get(TYPE, TechnicalPiston.Type.class); + } + + @Override + public void setType(final TechnicalPiston.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java new file mode 100644 index 0000000000..1dc6c3ce42 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java @@ -0,0 +1,76 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.MultifaceBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.ResinClump; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMultiface extends CraftBlockData implements ResinClump { + private static final BooleanProperty WATERLOGGED = MultifaceBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.DOWN, BlockStateProperties.DOWN, + BlockFace.EAST, BlockStateProperties.EAST, + BlockFace.NORTH, BlockStateProperties.NORTH, + BlockFace.SOUTH, BlockStateProperties.SOUTH, + BlockFace.UP, BlockStateProperties.UP, + BlockFace.WEST, BlockStateProperties.WEST + ); + + public CraftMultiface(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMycelium.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMycelium.java new file mode 100644 index 0000000000..ff6b8b483b --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftMycelium.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.MyceliumBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Snowable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftMycelium extends CraftBlockData implements Snowable { + private static final BooleanProperty SNOWY = MyceliumBlock.SNOWY; + + public CraftMycelium(BlockState state) { + super(state); + } + + @Override + public boolean isSnowy() { + return this.get(SNOWY); + } + + @Override + public void setSnowy(final boolean snowy) { + this.set(SNOWY, snowy); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherPortal.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherPortal.java new file mode 100644 index 0000000000..8a0133e804 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherPortal.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.NetherPortalBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.Orientable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftNetherPortal extends CraftBlockData implements Orientable { + private static final EnumProperty AXIS = NetherPortalBlock.AXIS; + + public CraftNetherPortal(BlockState state) { + super(state); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + Preconditions.checkArgument(axis == Axis.X || axis == Axis.Z, "Invalid axis, only horizontal axis are allowed for this property!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java new file mode 100644 index 0000000000..f86f2255dd --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.NetherWartBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftNetherWart extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = NetherWartBlock.AGE; + + public CraftNetherWart(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNoteBlock.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNoteBlock.java new file mode 100644 index 0000000000..eef2c6abf0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftNoteBlock.java @@ -0,0 +1,58 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; +import org.bukkit.Instrument; +import org.bukkit.Note; +import org.bukkit.block.data.type.NoteBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftNoteBlock extends CraftBlockData implements NoteBlock { + private static final EnumProperty INSTRUMENT = net.minecraft.world.level.block.NoteBlock.INSTRUMENT; + + private static final IntegerProperty NOTE = net.minecraft.world.level.block.NoteBlock.NOTE; + + private static final BooleanProperty POWERED = net.minecraft.world.level.block.NoteBlock.POWERED; + + public CraftNoteBlock(BlockState state) { + super(state); + } + + @Override + public Instrument getInstrument() { + return this.get(INSTRUMENT, Instrument.class); + } + + @Override + public void setInstrument(final Instrument instrument) { + Preconditions.checkArgument(instrument != null, "instrument cannot be null!"); + this.set(INSTRUMENT, instrument); + } + + @Override + public Note getNote() { + return new Note(this.get(NOTE)); + } + + @Override + public void setNote(final Note note) { + Preconditions.checkArgument(note != null, "note cannot be null!"); + this.set(NOTE, (int) note.getId()); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java new file mode 100644 index 0000000000..ea4abed7c0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ObserverBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Observer; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftObserver extends CraftBlockData implements Observer { + private static final EnumProperty FACING = ObserverBlock.FACING; + + private static final BooleanProperty POWERED = ObserverBlock.POWERED; + + public CraftObserver(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java new file mode 100644 index 0000000000..1916f88c09 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.ParticleLeavesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Leaves; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftParticleLeaves extends CraftBlockData implements Leaves { + private static final IntegerProperty DISTANCE = ParticleLeavesBlock.DISTANCE; + + private static final BooleanProperty PERSISTENT = ParticleLeavesBlock.PERSISTENT; + + private static final BooleanProperty WATERLOGGED = ParticleLeavesBlock.WATERLOGGED; + + public CraftParticleLeaves(BlockState state) { + super(state); + } + + @Override + public int getDistance() { + return this.get(DISTANCE); + } + + @Override + public void setDistance(final int distance) { + this.set(DISTANCE, distance); + } + + @Override + public int getMinimumDistance() { + return DISTANCE.min; + } + + @Override + public int getMaximumDistance() { + return DISTANCE.max; + } + + @Override + public boolean isPersistent() { + return this.get(PERSISTENT); + } + + @Override + public void setPersistent(final boolean persistent) { + this.set(PERSISTENT, persistent); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java new file mode 100644 index 0000000000..b00af0b955 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.PiglinWallSkullBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallSkull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPiglinWallSkull extends CraftBlockData implements WallSkull { + private static final EnumProperty FACING = PiglinWallSkullBlock.FACING; + + private static final BooleanProperty POWERED = PiglinWallSkullBlock.POWERED; + + public CraftPiglinWallSkull(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java new file mode 100644 index 0000000000..fbb11e55e5 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java @@ -0,0 +1,61 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.PinkPetalsBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.PinkPetals; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPinkPetals extends CraftBlockData implements PinkPetals { + private static final EnumProperty FACING = PinkPetalsBlock.FACING; + + private static final IntegerProperty AMOUNT = PinkPetalsBlock.AMOUNT; + + public CraftPinkPetals(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public int getFlowerAmount() { + return this.get(AMOUNT); + } + + @Override + public void setFlowerAmount(final int flowerAmount) { + this.set(AMOUNT, flowerAmount); + } + + @Override + public int getMinimumFlowerAmount() { + return AMOUNT.min; + } + + @Override + public int getMaximumFlowerAmount() { + return AMOUNT.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonBase.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonBase.java new file mode 100644 index 0000000000..921e5dfd2c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonBase.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.piston.PistonBaseBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Piston; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPistonBase extends CraftBlockData implements Piston { + private static final BooleanProperty EXTENDED = PistonBaseBlock.EXTENDED; + + private static final EnumProperty FACING = PistonBaseBlock.FACING; + + public CraftPistonBase(BlockState state) { + super(state); + } + + @Override + public boolean isExtended() { + return this.get(EXTENDED); + } + + @Override + public void setExtended(final boolean extended) { + this.set(EXTENDED, extended); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonHead.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonHead.java new file mode 100644 index 0000000000..488859ba96 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPistonHead.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.piston.PistonHeadBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.PistonType; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.PistonHead; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPistonHead extends CraftBlockData implements PistonHead { + private static final EnumProperty FACING = PistonHeadBlock.FACING; + + private static final BooleanProperty SHORT = PistonHeadBlock.SHORT; + + private static final EnumProperty TYPE = PistonHeadBlock.TYPE; + + public CraftPistonHead(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isShort() { + return this.get(SHORT); + } + + @Override + public void setShort(final boolean _short) { + this.set(SHORT, _short); + } + + @Override + public org.bukkit.block.data.type.TechnicalPiston.Type getType() { + return this.get(TYPE, org.bukkit.block.data.type.TechnicalPiston.Type.class); + } + + @Override + public void setType(final org.bukkit.block.data.type.TechnicalPiston.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java new file mode 100644 index 0000000000..8a93c6c5cc --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java @@ -0,0 +1,48 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.PitcherCropBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.PitcherCrop; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPitcherCrop extends CraftBlockData implements PitcherCrop { + private static final IntegerProperty AGE = PitcherCropBlock.AGE; + + private static final EnumProperty HALF = PitcherCropBlock.HALF; + + public CraftPitcherCrop(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerHead.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerHead.java new file mode 100644 index 0000000000..67b71d0df7 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerHead.java @@ -0,0 +1,48 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.PlayerHeadBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Skull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftPlayerHead extends CraftBlockData implements Skull { + private static final BooleanProperty POWERED = PlayerHeadBlock.POWERED; + + private static final IntegerProperty ROTATION = PlayerHeadBlock.ROTATION; + + public CraftPlayerHead(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerWallHead.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerWallHead.java new file mode 100644 index 0000000000..e4399bdf28 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPlayerWallHead.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.PlayerWallHeadBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallSkull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPlayerWallHead extends CraftBlockData implements WallSkull { + private static final EnumProperty FACING = PlayerWallHeadBlock.FACING; + + private static final BooleanProperty POWERED = PlayerWallHeadBlock.POWERED; + + public CraftPlayerWallHead(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java new file mode 100644 index 0000000000..ca4ae12a7b --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.PointedDripstoneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DripstoneThickness; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.PointedDripstone; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPointedDripstone extends CraftBlockData implements PointedDripstone { + private static final EnumProperty THICKNESS = PointedDripstoneBlock.THICKNESS; + + private static final EnumProperty TIP_DIRECTION = PointedDripstoneBlock.TIP_DIRECTION; + + private static final BooleanProperty WATERLOGGED = PointedDripstoneBlock.WATERLOGGED; + + public CraftPointedDripstone(BlockState state) { + super(state); + } + + @Override + public PointedDripstone.Thickness getThickness() { + return this.get(THICKNESS, PointedDripstone.Thickness.class); + } + + @Override + public void setThickness(final PointedDripstone.Thickness thickness) { + Preconditions.checkArgument(thickness != null, "thickness cannot be null!"); + this.set(THICKNESS, thickness); + } + + @Override + public BlockFace getVerticalDirection() { + return this.get(TIP_DIRECTION, BlockFace.class); + } + + @Override + public void setVerticalDirection(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.getModY() != 0, "Invalid face, only vertical face are allowed for this property!"); + this.set(TIP_DIRECTION, blockFace); + } + + @Override + public Set getVerticalDirections() { + return this.getValues(TIP_DIRECTION, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPotato.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPotato.java new file mode 100644 index 0000000000..95fc35aa58 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPotato.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.PotatoBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPotato extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = PotatoBlock.AGE; + + public CraftPotato(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java new file mode 100644 index 0000000000..f60f0b8bab --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java @@ -0,0 +1,62 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.world.level.block.PoweredRailBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.RailShape; +import org.bukkit.block.data.type.RedstoneRail; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPoweredRail extends CraftBlockData implements RedstoneRail { + private static final BooleanProperty POWERED = PoweredRailBlock.POWERED; + + private static final EnumProperty SHAPE = PoweredRailBlock.SHAPE; + + private static final BooleanProperty WATERLOGGED = PoweredRailBlock.WATERLOGGED; + + public CraftPoweredRail(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public org.bukkit.block.data.Rail.Shape getShape() { + return this.get(SHAPE, org.bukkit.block.data.Rail.Shape.class); + } + + @Override + public void setShape(final org.bukkit.block.data.Rail.Shape shape) { + Preconditions.checkArgument(shape != null, "shape cannot be null!"); + Preconditions.checkArgument(shape != org.bukkit.block.data.Rail.Shape.NORTH_EAST && shape != org.bukkit.block.data.Rail.Shape.NORTH_WEST && shape != org.bukkit.block.data.Rail.Shape.SOUTH_EAST && shape != org.bukkit.block.data.Rail.Shape.SOUTH_WEST, "Invalid rail shape, only straight rail are allowed for this property!"); + this.set(SHAPE, shape); + } + + @Override + public Set getShapes() { + return this.getValues(SHAPE, org.bukkit.block.data.Rail.Shape.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlate.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlate.java new file mode 100644 index 0000000000..e54321bbcc --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlate.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.PressurePlateBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Powerable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftPressurePlate extends CraftBlockData implements Powerable { + private static final BooleanProperty POWERED = PressurePlateBlock.POWERED; + + public CraftPressurePlate(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRail.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRail.java new file mode 100644 index 0000000000..374bca36bd --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRail.java @@ -0,0 +1,49 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.world.level.block.RailBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.RailShape; +import org.bukkit.block.data.Rail; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRail extends CraftBlockData implements Rail { + private static final EnumProperty SHAPE = RailBlock.SHAPE; + + private static final BooleanProperty WATERLOGGED = RailBlock.WATERLOGGED; + + public CraftRail(BlockState state) { + super(state); + } + + @Override + public Rail.Shape getShape() { + return this.get(SHAPE, Rail.Shape.class); + } + + @Override + public void setShape(final Rail.Shape shape) { + Preconditions.checkArgument(shape != null, "shape cannot be null!"); + this.set(SHAPE, shape); + } + + @Override + public Set getShapes() { + return this.getValues(SHAPE, Rail.Shape.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneOre.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneOre.java new file mode 100644 index 0000000000..051e5ed532 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneOre.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.RedStoneOreBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Lightable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRedStoneOre extends CraftBlockData implements Lightable { + private static final BooleanProperty LIT = RedStoneOreBlock.LIT; + + public CraftRedStoneOre(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneWire.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneWire.java new file mode 100644 index 0000000000..4defded3c9 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedStoneWire.java @@ -0,0 +1,66 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.RedStoneWireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RedstoneSide; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.RedstoneWire; +import org.bukkit.craftbukkit.block.CraftBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRedStoneWire extends CraftBlockData implements RedstoneWire { + private static final IntegerProperty POWER = RedStoneWireBlock.POWER; + + private static final Map> PROPERTY_BY_DIRECTION = RedStoneWireBlock.PROPERTY_BY_DIRECTION.entrySet().stream() + .collect(Collectors.toMap(entry -> CraftBlock.notchToBlockFace(entry.getKey()), entry -> entry.getValue())); + + public CraftRedStoneWire(BlockState state) { + super(state); + } + + @Override + public int getPower() { + return this.get(POWER); + } + + @Override + public void setPower(final int power) { + this.set(POWER, power); + } + + @Override + public int getMaximumPower() { + return POWER.max; + } + + @Override + public RedstoneWire.Connection getFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + EnumProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property, RedstoneWire.Connection.class); + } + + @Override + public void setFace(final BlockFace blockFace, final RedstoneWire.Connection connection) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(connection != null, "connection cannot be null!"); + EnumProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, connection); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java new file mode 100644 index 0000000000..da418939ab --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.RedstoneLampBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Lightable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRedstoneLamp extends CraftBlockData implements Lightable { + private static final BooleanProperty LIT = RedstoneLampBlock.LIT; + + public CraftRedstoneLamp(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java new file mode 100644 index 0000000000..7a2b141b3c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.RedstoneTorchBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Lightable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRedstoneTorch extends CraftBlockData implements Lightable { + private static final BooleanProperty LIT = RedstoneTorchBlock.LIT; + + public CraftRedstoneTorch(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWallTorch.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWallTorch.java new file mode 100644 index 0000000000..ff25a7ff54 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWallTorch.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.RedstoneWallTorchBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.RedstoneWallTorch; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRedstoneWallTorch extends CraftBlockData implements RedstoneWallTorch { + private static final EnumProperty FACING = RedstoneWallTorchBlock.FACING; + + private static final BooleanProperty LIT = RedstoneWallTorchBlock.LIT; + + public CraftRedstoneWallTorch(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java new file mode 100644 index 0000000000..8cd0d0a7e0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java @@ -0,0 +1,86 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.RepeaterBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Repeater; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRepeater extends CraftBlockData implements Repeater { + private static final IntegerProperty DELAY = RepeaterBlock.DELAY; + + private static final EnumProperty FACING = RepeaterBlock.FACING; + + private static final BooleanProperty LOCKED = RepeaterBlock.LOCKED; + + private static final BooleanProperty POWERED = RepeaterBlock.POWERED; + + public CraftRepeater(BlockState state) { + super(state); + } + + @Override + public int getDelay() { + return this.get(DELAY); + } + + @Override + public void setDelay(final int delay) { + this.set(DELAY, delay); + } + + @Override + public int getMinimumDelay() { + return DELAY.min; + } + + @Override + public int getMaximumDelay() { + return DELAY.max; + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLocked() { + return this.get(LOCKED); + } + + @Override + public void setLocked(final boolean locked) { + this.set(LOCKED, locked); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java new file mode 100644 index 0000000000..e02515177c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.RespawnAnchorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.RespawnAnchor; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRespawnAnchor extends CraftBlockData implements RespawnAnchor { + private static final IntegerProperty CHARGE = RespawnAnchorBlock.CHARGE; + + public CraftRespawnAnchor(BlockState state) { + super(state); + } + + @Override + public int getCharges() { + return this.get(CHARGE); + } + + @Override + public void setCharges(final int charges) { + this.set(CHARGE, charges); + } + + @Override + public int getMaximumCharges() { + return CHARGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRotatedPillar.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRotatedPillar.java new file mode 100644 index 0000000000..01154d6897 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftRotatedPillar.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.Axis; +import org.bukkit.block.data.Orientable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftRotatedPillar extends CraftBlockData implements Orientable { + private static final EnumProperty AXIS = RotatedPillarBlock.AXIS; + + public CraftRotatedPillar(BlockState state) { + super(state); + } + + @Override + public Axis getAxis() { + return this.get(AXIS, Axis.class); + } + + @Override + public void setAxis(final Axis axis) { + Preconditions.checkArgument(axis != null, "axis cannot be null!"); + this.set(AXIS, axis); + } + + @Override + public Set getAxes() { + return this.getValues(AXIS, Axis.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java new file mode 100644 index 0000000000..73807dc42d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SaplingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Sapling; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSapling extends CraftBlockData implements Sapling { + private static final IntegerProperty STAGE = SaplingBlock.STAGE; + + public CraftSapling(BlockState state) { + super(state); + } + + @Override + public int getStage() { + return this.get(STAGE); + } + + @Override + public void setStage(final int stage) { + this.set(STAGE, stage); + } + + @Override + public int getMaximumStage() { + return STAGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java new file mode 100644 index 0000000000..dc402bcd8a --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java @@ -0,0 +1,57 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.ScaffoldingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Scaffolding; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftScaffolding extends CraftBlockData implements Scaffolding { + private static final BooleanProperty BOTTOM = ScaffoldingBlock.BOTTOM; + + private static final IntegerProperty DISTANCE = ScaffoldingBlock.DISTANCE; + + private static final BooleanProperty WATERLOGGED = ScaffoldingBlock.WATERLOGGED; + + public CraftScaffolding(BlockState state) { + super(state); + } + + @Override + public boolean isBottom() { + return this.get(BOTTOM); + } + + @Override + public void setBottom(final boolean bottom) { + this.set(BOTTOM, bottom); + } + + @Override + public int getDistance() { + return this.get(DISTANCE); + } + + @Override + public void setDistance(final int distance) { + this.set(DISTANCE, distance); + } + + @Override + public int getMaximumDistance() { + return DISTANCE.max; + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java new file mode 100644 index 0000000000..10b7799850 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SculkCatalystBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.SculkCatalyst; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSculkCatalyst extends CraftBlockData implements SculkCatalyst { + private static final BooleanProperty PULSE = SculkCatalystBlock.PULSE; + + public CraftSculkCatalyst(BlockState state) { + super(state); + } + + @Override + public boolean isBloom() { + return this.get(PULSE); + } + + @Override + public void setBloom(final boolean bloom) { + this.set(PULSE, bloom); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java new file mode 100644 index 0000000000..090f4af3be --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java @@ -0,0 +1,61 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SculkSensorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.SculkSensorPhase; +import org.bukkit.block.data.type.SculkSensor; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSculkSensor extends CraftBlockData implements SculkSensor { + private static final IntegerProperty POWER = SculkSensorBlock.POWER; + + private static final EnumProperty PHASE = SculkSensorBlock.PHASE; + + private static final BooleanProperty WATERLOGGED = SculkSensorBlock.WATERLOGGED; + + public CraftSculkSensor(BlockState state) { + super(state); + } + + @Override + public int getPower() { + return this.get(POWER); + } + + @Override + public void setPower(final int power) { + this.set(POWER, power); + } + + @Override + public int getMaximumPower() { + return POWER.max; + } + + @Override + public SculkSensor.Phase getSculkSensorPhase() { + return this.get(PHASE, SculkSensor.Phase.class); + } + + @Override + public void setSculkSensorPhase(final SculkSensor.Phase phase) { + Preconditions.checkArgument(phase != null, "phase cannot be null!"); + this.set(PHASE, phase); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java new file mode 100644 index 0000000000..e8e1631bdf --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SculkShriekerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.SculkShrieker; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSculkShrieker extends CraftBlockData implements SculkShrieker { + private static final BooleanProperty CAN_SUMMON = SculkShriekerBlock.CAN_SUMMON; + + private static final BooleanProperty SHRIEKING = SculkShriekerBlock.SHRIEKING; + + private static final BooleanProperty WATERLOGGED = SculkShriekerBlock.WATERLOGGED; + + public CraftSculkShrieker(BlockState state) { + super(state); + } + + @Override + public boolean isCanSummon() { + return this.get(CAN_SUMMON); + } + + @Override + public void setCanSummon(final boolean canSummon) { + this.set(CAN_SUMMON, canSummon); + } + + @Override + public boolean isShrieking() { + return this.get(SHRIEKING); + } + + @Override + public void setShrieking(final boolean shrieking) { + this.set(SHRIEKING, shrieking); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java new file mode 100644 index 0000000000..2de16b55b6 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java @@ -0,0 +1,76 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.SculkVeinBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.SculkVein; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSculkVein extends CraftBlockData implements SculkVein { + private static final BooleanProperty WATERLOGGED = SculkVeinBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.DOWN, BlockStateProperties.DOWN, + BlockFace.EAST, BlockStateProperties.EAST, + BlockFace.NORTH, BlockStateProperties.NORTH, + BlockFace.SOUTH, BlockStateProperties.SOUTH, + BlockFace.UP, BlockStateProperties.UP, + BlockFace.WEST, BlockStateProperties.WEST + ); + + public CraftSculkVein(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java new file mode 100644 index 0000000000..db0b38c9eb --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java @@ -0,0 +1,50 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SeaPickleBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.SeaPickle; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSeaPickle extends CraftBlockData implements SeaPickle { + private static final IntegerProperty PICKLES = SeaPickleBlock.PICKLES; + + private static final BooleanProperty WATERLOGGED = SeaPickleBlock.WATERLOGGED; + + public CraftSeaPickle(BlockState state) { + super(state); + } + + @Override + public int getPickles() { + return this.get(PICKLES); + } + + @Override + public void setPickles(final int pickles) { + this.set(PICKLES, pickles); + } + + @Override + public int getMinimumPickles() { + return PICKLES.min; + } + + @Override + public int getMaximumPickles() { + return PICKLES.max; + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java new file mode 100644 index 0000000000..e9c77a5d1c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.ShulkerBoxBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftShulkerBox extends CraftBlockData implements Directional { + private static final EnumProperty FACING = ShulkerBoxBlock.FACING; + + public CraftShulkerBox(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian(), "Invalid face, only cartesian face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java new file mode 100644 index 0000000000..158f643ad3 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java @@ -0,0 +1,48 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SkullBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Skull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftSkull extends CraftBlockData implements Skull { + private static final BooleanProperty POWERED = SkullBlock.POWERED; + + private static final IntegerProperty ROTATION = SkullBlock.ROTATION; + + public CraftSkull(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSlab.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSlab.java new file mode 100644 index 0000000000..98f3a8c857 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSlab.java @@ -0,0 +1,43 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.SlabType; +import org.bukkit.block.data.type.Slab; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSlab extends CraftBlockData implements Slab { + private static final EnumProperty TYPE = SlabBlock.TYPE; + + private static final BooleanProperty WATERLOGGED = SlabBlock.WATERLOGGED; + + public CraftSlab(BlockState state) { + super(state); + } + + @Override + public Slab.Type getType() { + return this.get(TYPE, Slab.Type.class); + } + + @Override + public void setType(final Slab.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java new file mode 100644 index 0000000000..4554ace052 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java @@ -0,0 +1,66 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.SmallDripleafBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.SmallDripleaf; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSmallDripleaf extends CraftBlockData implements SmallDripleaf { + private static final EnumProperty FACING = SmallDripleafBlock.FACING; + + private static final EnumProperty HALF = SmallDripleafBlock.HALF; + + private static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + + public CraftSmallDripleaf(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java new file mode 100644 index 0000000000..5e467f577e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.SmokerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Furnace; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSmoker extends CraftBlockData implements Furnace { + private static final EnumProperty FACING = SmokerBlock.FACING; + + private static final BooleanProperty LIT = SmokerBlock.LIT; + + public CraftSmoker(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java new file mode 100644 index 0000000000..5b95935a34 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SnifferEggBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Hatchable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSnifferEgg extends CraftBlockData implements Hatchable { + private static final IntegerProperty HATCH = SnifferEggBlock.HATCH; + + public CraftSnifferEgg(BlockState state) { + super(state); + } + + @Override + public int getHatch() { + return this.get(HATCH); + } + + @Override + public void setHatch(final int hatch) { + this.set(HATCH, hatch); + } + + @Override + public int getMaximumHatch() { + return HATCH.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowLayer.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowLayer.java new file mode 100644 index 0000000000..22c64f985f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowLayer.java @@ -0,0 +1,37 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SnowLayerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.Snow; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSnowLayer extends CraftBlockData implements Snow { + private static final IntegerProperty LAYERS = SnowLayerBlock.LAYERS; + + public CraftSnowLayer(BlockState state) { + super(state); + } + + @Override + public int getLayers() { + return this.get(LAYERS); + } + + @Override + public void setLayers(final int layers) { + this.set(LAYERS, layers); + } + + @Override + public int getMinimumLayers() { + return LAYERS.min; + } + + @Override + public int getMaximumLayers() { + return LAYERS.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowyDirt.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowyDirt.java new file mode 100644 index 0000000000..fa3dd4ef6d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSnowyDirt.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SnowyDirtBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Snowable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSnowyDirt extends CraftBlockData implements Snowable { + private static final BooleanProperty SNOWY = SnowyDirtBlock.SNOWY; + + public CraftSnowyDirt(BlockState state) { + super(state); + } + + @Override + public boolean isSnowy() { + return this.get(SNOWY); + } + + @Override + public void setSnowy(final boolean snowy) { + this.set(SNOWY, snowy); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java new file mode 100644 index 0000000000..dd6595a5ff --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java @@ -0,0 +1,73 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.StainedGlassPaneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.GlassPane; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftStainedGlassPane extends CraftBlockData implements GlassPane { + private static final BooleanProperty WATERLOGGED = StainedGlassPaneBlock.WATERLOGGED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.EAST, StainedGlassPaneBlock.EAST, + BlockFace.NORTH, StainedGlassPaneBlock.NORTH, + BlockFace.SOUTH, StainedGlassPaneBlock.SOUTH, + BlockFace.WEST, StainedGlassPaneBlock.WEST + ); + + public CraftStainedGlassPane(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStair.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStair.java new file mode 100644 index 0000000000..30d7d72282 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStair.java @@ -0,0 +1,78 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.StairBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.StairsShape; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Stairs; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftStair extends CraftBlockData implements Stairs { + private static final EnumProperty FACING = StairBlock.FACING; + + private static final EnumProperty HALF = StairBlock.HALF; + + private static final EnumProperty SHAPE = StairBlock.SHAPE; + + private static final BooleanProperty WATERLOGGED = StairBlock.WATERLOGGED; + + public CraftStair(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public Stairs.Shape getShape() { + return this.get(SHAPE, Stairs.Shape.class); + } + + @Override + public void setShape(final Stairs.Shape shape) { + Preconditions.checkArgument(shape != null, "shape cannot be null!"); + this.set(SHAPE, shape); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStandingSign.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStandingSign.java new file mode 100644 index 0000000000..27defc4856 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStandingSign.java @@ -0,0 +1,48 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.StandingSignBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Sign; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftStandingSign extends CraftBlockData implements Sign { + private static final IntegerProperty ROTATION = StandingSignBlock.ROTATION; + + private static final BooleanProperty WATERLOGGED = StandingSignBlock.WATERLOGGED; + + public CraftStandingSign(BlockState state) { + super(state); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStem.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStem.java new file mode 100644 index 0000000000..f0bff1c763 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStem.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.StemBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftStem extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = StemBlock.AGE; + + public CraftStem(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java new file mode 100644 index 0000000000..12a4e6fe91 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.StonecutterBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftStonecutter extends CraftBlockData implements Directional { + private static final EnumProperty FACING = StonecutterBlock.FACING; + + public CraftStonecutter(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStructureBlock.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStructureBlock.java new file mode 100644 index 0000000000..af14ac3a50 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftStructureBlock.java @@ -0,0 +1,29 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.StructureMode; +import org.bukkit.block.data.type.StructureBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftStructureBlock extends CraftBlockData implements StructureBlock { + private static final EnumProperty MODE = net.minecraft.world.level.block.StructureBlock.MODE; + + public CraftStructureBlock(BlockState state) { + super(state); + } + + @Override + public StructureBlock.Mode getMode() { + return this.get(MODE, StructureBlock.Mode.class); + } + + @Override + public void setMode(final StructureBlock.Mode mode) { + Preconditions.checkArgument(mode != null, "mode cannot be null!"); + this.set(MODE, mode); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSugarCane.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSugarCane.java new file mode 100644 index 0000000000..b4a60deebf --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSugarCane.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SugarCaneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSugarCane extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = SugarCaneBlock.AGE; + + public CraftSugarCane(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java new file mode 100644 index 0000000000..a69c6df7e2 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.SweetBerryBushBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftSweetBerryBush extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = SweetBerryBushBlock.AGE; + + public CraftSweetBerryBush(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallFlower.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallFlower.java new file mode 100644 index 0000000000..83b9168cb0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallFlower.java @@ -0,0 +1,30 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TallFlowerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.Bisected; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTallFlower extends CraftBlockData implements Bisected { + private static final EnumProperty HALF = TallFlowerBlock.HALF; + + public CraftTallFlower(BlockState state) { + super(state); + } + + @Override + public Bisected.Half getHalf() { + return this.get(HALF, Bisected.Half.class); + } + + @Override + public void setHalf(final Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java new file mode 100644 index 0000000000..302493ba8e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java @@ -0,0 +1,30 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TallSeagrassBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.Bisected; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTallSeagrass extends CraftBlockData implements Bisected { + private static final EnumProperty HALF = TallSeagrassBlock.HALF; + + public CraftTallSeagrass(BlockState state) { + super(state); + } + + @Override + public Bisected.Half getHalf() { + return this.get(HALF, Bisected.Half.class); + } + + @Override + public void setHalf(final Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java new file mode 100644 index 0000000000..023802b815 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.AnaloguePowerable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTarget extends CraftBlockData implements AnaloguePowerable { + private static final IntegerProperty OUTPUT_POWER = BlockStateProperties.POWER; + + public CraftTarget(BlockState state) { + super(state); + } + + @Override + public int getPower() { + return this.get(OUTPUT_POWER); + } + + @Override + public void setPower(final int power) { + this.set(OUTPUT_POWER, power); + } + + @Override + public int getMaximumPower() { + return OUTPUT_POWER.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTnt.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTnt.java new file mode 100644 index 0000000000..a9cbf259f0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTnt.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TntBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.TNT; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTnt extends CraftBlockData implements TNT { + private static final BooleanProperty UNSTABLE = TntBlock.UNSTABLE; + + public CraftTnt(BlockState state) { + super(state); + } + + @Override + public boolean isUnstable() { + return this.get(UNSTABLE); + } + + @Override + public void setUnstable(final boolean unstable) { + this.set(UNSTABLE, unstable); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java new file mode 100644 index 0000000000..6d35a414fe --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TorchflowerCropBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTorchflowerCrop extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = TorchflowerCropBlock.AGE; + + public CraftTorchflowerCrop(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrapDoor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrapDoor.java new file mode 100644 index 0000000000..aa130a5d90 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrapDoor.java @@ -0,0 +1,88 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.TrapDoorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.TrapDoor; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTrapDoor extends CraftBlockData implements TrapDoor { + private static final EnumProperty FACING = TrapDoorBlock.FACING; + + private static final EnumProperty HALF = TrapDoorBlock.HALF; + + private static final BooleanProperty OPEN = TrapDoorBlock.OPEN; + + private static final BooleanProperty POWERED = TrapDoorBlock.POWERED; + + private static final BooleanProperty WATERLOGGED = TrapDoorBlock.WATERLOGGED; + + public CraftTrapDoor(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrappedChest.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrappedChest.java new file mode 100644 index 0000000000..5799baf9d0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrappedChest.java @@ -0,0 +1,65 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.TrappedChestBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.ChestType; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Chest; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTrappedChest extends CraftBlockData implements Chest { + private static final EnumProperty FACING = TrappedChestBlock.FACING; + + private static final EnumProperty TYPE = TrappedChestBlock.TYPE; + + private static final BooleanProperty WATERLOGGED = TrappedChestBlock.WATERLOGGED; + + public CraftTrappedChest(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public Chest.Type getType() { + return this.get(TYPE, Chest.Type.class); + } + + @Override + public void setType(final Chest.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java new file mode 100644 index 0000000000..7247edf18f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java @@ -0,0 +1,43 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TrialSpawnerBlock; +import net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.data.type.TrialSpawner; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTrialSpawner extends CraftBlockData implements TrialSpawner { + private static final BooleanProperty OMINOUS = TrialSpawnerBlock.OMINOUS; + + private static final EnumProperty STATE = TrialSpawnerBlock.STATE; + + public CraftTrialSpawner(BlockState state) { + super(state); + } + + @Override + public boolean isOminous() { + return this.get(OMINOUS); + } + + @Override + public void setOminous(final boolean ominous) { + this.set(OMINOUS, ominous); + } + + @Override + public TrialSpawner.State getTrialSpawnerState() { + return this.get(STATE, TrialSpawner.State.class); + } + + @Override + public void setTrialSpawnerState(final TrialSpawner.State state) { + Preconditions.checkArgument(state != null, "state cannot be null!"); + this.set(STATE, state); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWire.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWire.java new file mode 100644 index 0000000000..bc7f4c9ec0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWire.java @@ -0,0 +1,97 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.TripWireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Tripwire; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTripWire extends CraftBlockData implements Tripwire { + private static final BooleanProperty ATTACHED = TripWireBlock.ATTACHED; + + private static final BooleanProperty DISARMED = TripWireBlock.DISARMED; + + private static final BooleanProperty POWERED = TripWireBlock.POWERED; + + private static final Map PROPERTY_BY_DIRECTION = Map.of( + BlockFace.EAST, TripWireBlock.EAST, + BlockFace.NORTH, TripWireBlock.NORTH, + BlockFace.SOUTH, TripWireBlock.SOUTH, + BlockFace.WEST, TripWireBlock.WEST + ); + + public CraftTripWire(BlockState state) { + super(state); + } + + @Override + public boolean isAttached() { + return this.get(ATTACHED); + } + + @Override + public void setAttached(final boolean attached) { + this.set(ATTACHED, attached); + } + + @Override + public boolean isDisarmed() { + return this.get(DISARMED); + } + + @Override + public void setDisarmed(final boolean disarmed) { + this.set(DISARMED, disarmed); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWireHook.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWireHook.java new file mode 100644 index 0000000000..69658eefd7 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTripWireHook.java @@ -0,0 +1,63 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.TripWireHookBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.TripwireHook; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTripWireHook extends CraftBlockData implements TripwireHook { + private static final BooleanProperty ATTACHED = TripWireHookBlock.ATTACHED; + + private static final EnumProperty FACING = TripWireHookBlock.FACING; + + private static final BooleanProperty POWERED = TripWireHookBlock.POWERED; + + public CraftTripWireHook(BlockState state) { + super(state); + } + + @Override + public boolean isAttached() { + return this.get(ATTACHED); + } + + @Override + public void setAttached(final boolean attached) { + this.set(ATTACHED, attached); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java new file mode 100644 index 0000000000..bc2d3fb7ff --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java @@ -0,0 +1,54 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TurtleEggBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.type.TurtleEgg; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTurtleEgg extends CraftBlockData implements TurtleEgg { + private static final IntegerProperty EGGS = TurtleEggBlock.EGGS; + + private static final IntegerProperty HATCH = TurtleEggBlock.HATCH; + + public CraftTurtleEgg(BlockState state) { + super(state); + } + + @Override + public int getEggs() { + return this.get(EGGS); + } + + @Override + public void setEggs(final int eggs) { + this.set(EGGS, eggs); + } + + @Override + public int getMinimumEggs() { + return EGGS.min; + } + + @Override + public int getMaximumEggs() { + return EGGS.max; + } + + @Override + public int getHatch() { + return this.get(HATCH); + } + + @Override + public void setHatch(final int hatch) { + this.set(HATCH, hatch); + } + + @Override + public int getMaximumHatch() { + return HATCH.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java new file mode 100644 index 0000000000..279ea1ce49 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.TwistingVinesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftTwistingVines extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = TwistingVinesBlock.AGE; + + public CraftTwistingVines(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVault.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVault.java new file mode 100644 index 0000000000..938391d1e8 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVault.java @@ -0,0 +1,66 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.VaultBlock; +import net.minecraft.world.level.block.entity.vault.VaultState; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Vault; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftVault extends CraftBlockData implements Vault { + private static final EnumProperty FACING = VaultBlock.FACING; + + private static final BooleanProperty OMINOUS = VaultBlock.OMINOUS; + + private static final EnumProperty STATE = BlockStateProperties.VAULT_STATE; + + public CraftVault(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isOminous() { + return this.get(OMINOUS); + } + + @Override + public void setOminous(final boolean ominous) { + this.set(OMINOUS, ominous); + } + + @Override + public Vault.State getVaultState() { + return this.get(STATE, Vault.State.class); + } + + @Override + public void setVaultState(final Vault.State state) { + Preconditions.checkArgument(state != null, "state cannot be null!"); + this.set(STATE, state); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVine.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVine.java new file mode 100644 index 0000000000..09463d179c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftVine.java @@ -0,0 +1,58 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.VineBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.craftbukkit.block.CraftBlock; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftVine extends CraftBlockData implements MultipleFacing { + private static final Map PROPERTY_BY_DIRECTION = VineBlock.PROPERTY_BY_DIRECTION.entrySet().stream() + .collect(Collectors.toMap(entry -> CraftBlock.notchToBlockFace(entry.getKey()), entry -> entry.getValue())); + + public CraftVine(BlockState state) { + super(state); + } + + @Override + public boolean hasFace(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property); + } + + @Override + public void setFace(final BlockFace blockFace, final boolean face) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + BooleanProperty property = PROPERTY_BY_DIRECTION.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_DIRECTION.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, face); + } + + @Override + public Set getFaces() { + ImmutableSet.Builder faces = ImmutableSet.builder(); + for (Map.Entry entry : PROPERTY_BY_DIRECTION.entrySet()) { + if (this.get(entry.getValue())) { + faces.add(entry.getKey()); + } + } + return faces.build(); + } + + @Override + public Set getAllowedFaces() { + return Collections.unmodifiableSet(PROPERTY_BY_DIRECTION.keySet()); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWall.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWall.java new file mode 100644 index 0000000000..84b1fb4515 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWall.java @@ -0,0 +1,69 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Map; +import java.util.stream.Collectors; +import net.minecraft.world.level.block.WallBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.WallSide; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Wall; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWall extends CraftBlockData implements Wall { + private static final BooleanProperty UP = WallBlock.UP; + + private static final BooleanProperty WATERLOGGED = WallBlock.WATERLOGGED; + + private static final Map> PROPERTY_BY_FACE = Map.of( + BlockFace.EAST, WallBlock.EAST_WALL, + BlockFace.NORTH, WallBlock.NORTH_WALL, + BlockFace.SOUTH, WallBlock.SOUTH_WALL, + BlockFace.WEST, WallBlock.WEST_WALL + ); + + public CraftWall(BlockState state) { + super(state); + } + + @Override + public boolean isUp() { + return this.get(UP); + } + + @Override + public void setUp(final boolean up) { + this.set(UP, up); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } + + @Override + public Wall.Height getHeight(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + EnumProperty property = PROPERTY_BY_FACE.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_FACE.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + return this.get(property, Wall.Height.class); + } + + @Override + public void setHeight(final BlockFace blockFace, final Wall.Height height) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(height != null, "height cannot be null!"); + EnumProperty property = PROPERTY_BY_FACE.get(blockFace); + Preconditions.checkArgument(property != null, "Invalid blockFace, only %s are allowed!", PROPERTY_BY_FACE.keySet().stream().map(Enum::name).collect(Collectors.joining(", "))); + this.set(property, height); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallBanner.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallBanner.java new file mode 100644 index 0000000000..ca411139c0 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallBanner.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WallBannerBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWallBanner extends CraftBlockData implements Directional { + private static final EnumProperty FACING = WallBannerBlock.FACING; + + public CraftWallBanner(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java new file mode 100644 index 0000000000..c960cc4e25 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WallHangingSignBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallHangingSign; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWallHangingSign extends CraftBlockData implements WallHangingSign { + private static final EnumProperty FACING = WallHangingSignBlock.FACING; + + private static final BooleanProperty WATERLOGGED = WallHangingSignBlock.WATERLOGGED; + + public CraftWallHangingSign(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java new file mode 100644 index 0000000000..ad185e86c5 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WallSignBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallSign; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWallSign extends CraftBlockData implements WallSign { + private static final EnumProperty FACING = WallSignBlock.FACING; + + private static final BooleanProperty WATERLOGGED = WallSignBlock.WATERLOGGED; + + public CraftWallSign(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSkull.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSkull.java new file mode 100644 index 0000000000..3daa0892be --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallSkull.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WallSkullBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallSkull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWallSkull extends CraftBlockData implements WallSkull { + private static final EnumProperty FACING = WallSkullBlock.FACING; + + private static final BooleanProperty POWERED = WallSkullBlock.POWERED; + + public CraftWallSkull(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallTorch.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallTorch.java new file mode 100644 index 0000000000..dd5fe54ebb --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWallTorch.java @@ -0,0 +1,38 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WallTorchBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWallTorch extends CraftBlockData implements Directional { + private static final EnumProperty FACING = WallTorchBlock.FACING; + + public CraftWallTorch(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java new file mode 100644 index 0000000000..403fbf3439 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WaterloggedTransparentBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWaterloggedTransparent extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = WaterloggedTransparentBlock.WATERLOGGED; + + public CraftWaterloggedTransparent(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java new file mode 100644 index 0000000000..56b0304d75 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java @@ -0,0 +1,39 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WeatheringCopperBulbBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.type.CopperBulb; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperBulb extends CraftBlockData implements CopperBulb { + private static final BooleanProperty LIT = WeatheringCopperBulbBlock.LIT; + + private static final BooleanProperty POWERED = WeatheringCopperBulbBlock.POWERED; + + public CraftWeatheringCopperBulb(BlockState state) { + super(state); + } + + @Override + public boolean isLit() { + return this.get(LIT); + } + + @Override + public void setLit(final boolean lit) { + this.set(LIT, lit); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java new file mode 100644 index 0000000000..61b6d84db2 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java @@ -0,0 +1,91 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WeatheringCopperDoorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DoorHingeSide; +import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Door; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperDoor extends CraftBlockData implements Door { + private static final EnumProperty FACING = WeatheringCopperDoorBlock.FACING; + + private static final EnumProperty HALF = WeatheringCopperDoorBlock.HALF; + + private static final EnumProperty HINGE = WeatheringCopperDoorBlock.HINGE; + + private static final BooleanProperty OPEN = WeatheringCopperDoorBlock.OPEN; + + private static final BooleanProperty POWERED = WeatheringCopperDoorBlock.POWERED; + + public CraftWeatheringCopperDoor(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public Door.Hinge getHinge() { + return this.get(HINGE, Door.Hinge.class); + } + + @Override + public void setHinge(final Door.Hinge hinge) { + Preconditions.checkArgument(hinge != null, "hinge cannot be null!"); + this.set(HINGE, hinge); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java new file mode 100644 index 0000000000..70baf2c41d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java @@ -0,0 +1,27 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WeatheringCopperGrateBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperGrate extends CraftBlockData implements Waterlogged { + private static final BooleanProperty WATERLOGGED = WeatheringCopperGrateBlock.WATERLOGGED; + + public CraftWeatheringCopperGrate(BlockState state) { + super(state); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java new file mode 100644 index 0000000000..9bf557ae8f --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java @@ -0,0 +1,43 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WeatheringCopperSlabBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.SlabType; +import org.bukkit.block.data.type.Slab; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperSlab extends CraftBlockData implements Slab { + private static final EnumProperty TYPE = WeatheringCopperSlabBlock.TYPE; + + private static final BooleanProperty WATERLOGGED = WeatheringCopperSlabBlock.WATERLOGGED; + + public CraftWeatheringCopperSlab(BlockState state) { + super(state); + } + + @Override + public Slab.Type getType() { + return this.get(TYPE, Slab.Type.class); + } + + @Override + public void setType(final Slab.Type type) { + Preconditions.checkArgument(type != null, "type cannot be null!"); + this.set(TYPE, type); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java new file mode 100644 index 0000000000..fbe25b7c1c --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java @@ -0,0 +1,78 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WeatheringCopperStairBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.StairsShape; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Stairs; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperStair extends CraftBlockData implements Stairs { + private static final EnumProperty FACING = WeatheringCopperStairBlock.FACING; + + private static final EnumProperty HALF = WeatheringCopperStairBlock.HALF; + + private static final EnumProperty SHAPE = WeatheringCopperStairBlock.SHAPE; + + private static final BooleanProperty WATERLOGGED = WeatheringCopperStairBlock.WATERLOGGED; + + public CraftWeatheringCopperStair(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public Stairs.Shape getShape() { + return this.get(SHAPE, Stairs.Shape.class); + } + + @Override + public void setShape(final Stairs.Shape shape) { + Preconditions.checkArgument(shape != null, "shape cannot be null!"); + this.set(SHAPE, shape); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java new file mode 100644 index 0000000000..1c552b6391 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java @@ -0,0 +1,88 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.TrapDoor; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeatheringCopperTrapDoor extends CraftBlockData implements TrapDoor { + private static final EnumProperty FACING = WeatheringCopperTrapDoorBlock.FACING; + + private static final EnumProperty HALF = WeatheringCopperTrapDoorBlock.HALF; + + private static final BooleanProperty OPEN = WeatheringCopperTrapDoorBlock.OPEN; + + private static final BooleanProperty POWERED = WeatheringCopperTrapDoorBlock.POWERED; + + private static final BooleanProperty WATERLOGGED = WeatheringCopperTrapDoorBlock.WATERLOGGED; + + public CraftWeatheringCopperTrapDoor(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public org.bukkit.block.data.Bisected.Half getHalf() { + return this.get(HALF, org.bukkit.block.data.Bisected.Half.class); + } + + @Override + public void setHalf(final org.bukkit.block.data.Bisected.Half half) { + Preconditions.checkArgument(half != null, "half cannot be null!"); + this.set(HALF, half); + } + + @Override + public boolean isOpen() { + return this.get(OPEN); + } + + @Override + public void setOpen(final boolean open) { + this.set(OPEN, open); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public boolean isWaterlogged() { + return this.get(WATERLOGGED); + } + + @Override + public void setWaterlogged(final boolean waterlogged) { + this.set(WATERLOGGED, waterlogged); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java new file mode 100644 index 0000000000..13314a9851 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WeepingVinesBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.Ageable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeepingVines extends CraftBlockData implements Ageable { + private static final IntegerProperty AGE = WeepingVinesBlock.AGE; + + public CraftWeepingVines(BlockState state) { + super(state); + } + + @Override + public int getAge() { + return this.get(AGE); + } + + @Override + public void setAge(final int age) { + this.set(AGE, age); + } + + @Override + public int getMaximumAge() { + return AGE.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeightedPressurePlate.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeightedPressurePlate.java new file mode 100644 index 0000000000..05cfecb50e --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWeightedPressurePlate.java @@ -0,0 +1,32 @@ +package org.bukkit.craftbukkit.block.impl; + +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WeightedPressurePlateBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.bukkit.block.data.AnaloguePowerable; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWeightedPressurePlate extends CraftBlockData implements AnaloguePowerable { + private static final IntegerProperty POWER = WeightedPressurePlateBlock.POWER; + + public CraftWeightedPressurePlate(BlockState state) { + super(state); + } + + @Override + public int getPower() { + return this.get(POWER); + } + + @Override + public void setPower(final int power) { + this.set(POWER, power); + } + + @Override + public int getMaximumPower() { + return POWER.max; + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java new file mode 100644 index 0000000000..a36f82378d --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java @@ -0,0 +1,48 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import net.minecraft.world.level.block.WitherSkullBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.block.state.properties.RotationSegment; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Skull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.util.Vector; + +@GeneratedFrom("1.21.4") +public class CraftWitherSkull extends CraftBlockData implements Skull { + private static final BooleanProperty POWERED = WitherSkullBlock.POWERED; + + private static final IntegerProperty ROTATION = WitherSkullBlock.ROTATION; + + public CraftWitherSkull(BlockState state) { + super(state); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } + + @Override + public BlockFace getRotation() { + return CraftBlockData.ROTATION_CYCLE[this.get(ROTATION)]; + } + + @Override + public void setRotation(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace != BlockFace.SELF && blockFace.getModY() == 0, "Invalid face, only horizontal face are allowed for this property!"); + Vector dir = blockFace.getDirection(); + float angle = (float) -Math.toDegrees(Math.atan2(dir.getX(), dir.getZ())); + this.set(ROTATION, RotationSegment.convertToSegment(angle)); + } +} diff --git a/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherWallSkull.java b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherWallSkull.java new file mode 100644 index 0000000000..33ba595ec1 --- /dev/null +++ b/paper-server/src/generated/java/org/bukkit/craftbukkit/block/impl/CraftWitherWallSkull.java @@ -0,0 +1,51 @@ +package org.bukkit.craftbukkit.block.impl; + +import com.google.common.base.Preconditions; +import io.papermc.paper.generated.GeneratedFrom; +import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.WitherWallSkullBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.WallSkull; +import org.bukkit.craftbukkit.block.data.CraftBlockData; + +@GeneratedFrom("1.21.4") +public class CraftWitherWallSkull extends CraftBlockData implements WallSkull { + private static final EnumProperty FACING = WitherWallSkullBlock.FACING; + + private static final BooleanProperty POWERED = WitherWallSkullBlock.POWERED; + + public CraftWitherWallSkull(BlockState state) { + super(state); + } + + @Override + public BlockFace getFacing() { + return this.get(FACING, BlockFace.class); + } + + @Override + public void setFacing(final BlockFace blockFace) { + Preconditions.checkArgument(blockFace != null, "blockFace cannot be null!"); + Preconditions.checkArgument(blockFace.isCartesian() && blockFace.getModY() == 0, "Invalid face, only cartesian horizontal face are allowed for this property!"); + this.set(FACING, blockFace); + } + + @Override + public Set getFaces() { + return this.getValues(FACING, BlockFace.class); + } + + @Override + public boolean isPowered() { + return this.get(POWERED); + } + + @Override + public void setPowered(final boolean powered) { + this.set(POWERED, powered); + } +} diff --git a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java index 6bdc683b5a..2228860c51 100644 --- a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java +++ b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java @@ -3,6 +3,7 @@ package com.destroystokyo.paper.entity.ai; import com.destroystokyo.paper.entity.RangedEntity; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; +import io.papermc.paper.entity.SchoolableFish; import io.papermc.paper.util.ObfHelper; import java.lang.reflect.Constructor; import java.util.EnumSet; @@ -10,120 +11,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -import net.minecraft.world.entity.FlyingMob; -import net.minecraft.world.entity.PathfinderMob; -import net.minecraft.world.entity.TamableAnimal; import net.minecraft.world.entity.ai.goal.Goal; -import net.minecraft.world.entity.ambient.AmbientCreature; -import net.minecraft.world.entity.animal.AbstractFish; -import net.minecraft.world.entity.animal.AbstractGolem; -import net.minecraft.world.entity.animal.AbstractSchoolingFish; -import net.minecraft.world.entity.animal.Animal; -import net.minecraft.world.entity.animal.Pufferfish; -import net.minecraft.world.entity.animal.ShoulderRidingEntity; -import net.minecraft.world.entity.animal.SnowGolem; -import net.minecraft.world.entity.animal.WaterAnimal; -import net.minecraft.world.entity.animal.camel.Camel; -import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; -import net.minecraft.world.entity.boss.wither.WitherBoss; -import net.minecraft.world.entity.monster.AbstractIllager; -import net.minecraft.world.entity.monster.EnderMan; -import net.minecraft.world.entity.monster.PatrollingMonster; import net.minecraft.world.entity.monster.RangedAttackMob; -import net.minecraft.world.entity.monster.SpellcasterIllager; -import net.minecraft.world.entity.monster.ZombifiedPiglin; -import net.minecraft.world.entity.monster.breeze.Breeze; -import net.minecraft.world.entity.monster.piglin.AbstractPiglin; import org.bukkit.NamespacedKey; -import org.bukkit.entity.AbstractHorse; -import org.bukkit.entity.AbstractSkeleton; -import org.bukkit.entity.AbstractVillager; -import org.bukkit.entity.Ageable; -import org.bukkit.entity.Ambient; -import org.bukkit.entity.Animals; -import org.bukkit.entity.Bat; -import org.bukkit.entity.Bee; -import org.bukkit.entity.Blaze; -import org.bukkit.entity.Cat; -import org.bukkit.entity.CaveSpider; -import org.bukkit.entity.ChestedHorse; -import org.bukkit.entity.Chicken; -import org.bukkit.entity.Cod; -import org.bukkit.entity.Cow; -import org.bukkit.entity.Creature; -import org.bukkit.entity.Creeper; -import org.bukkit.entity.Dolphin; -import org.bukkit.entity.Donkey; -import org.bukkit.entity.Drowned; -import org.bukkit.entity.ElderGuardian; -import org.bukkit.entity.EnderDragon; -import org.bukkit.entity.Enderman; -import org.bukkit.entity.Endermite; -import org.bukkit.entity.Evoker; -import org.bukkit.entity.Fish; -import org.bukkit.entity.Flying; -import org.bukkit.entity.Fox; -import org.bukkit.entity.Ghast; -import org.bukkit.entity.Giant; -import org.bukkit.entity.Golem; -import org.bukkit.entity.Guardian; -import org.bukkit.entity.Hoglin; -import org.bukkit.entity.Horse; -import org.bukkit.entity.Husk; -import org.bukkit.entity.Illager; -import org.bukkit.entity.Illusioner; -import org.bukkit.entity.IronGolem; -import org.bukkit.entity.Llama; -import org.bukkit.entity.MagmaCube; -import org.bukkit.entity.Mob; -import org.bukkit.entity.Monster; -import org.bukkit.entity.Mule; -import org.bukkit.entity.MushroomCow; -import org.bukkit.entity.Ocelot; -import org.bukkit.entity.Panda; -import org.bukkit.entity.Parrot; -import org.bukkit.entity.Phantom; -import org.bukkit.entity.Pig; -import org.bukkit.entity.PigZombie; -import org.bukkit.entity.Piglin; -import org.bukkit.entity.PiglinAbstract; -import org.bukkit.entity.PiglinBrute; -import org.bukkit.entity.Pillager; -import org.bukkit.entity.PolarBear; -import org.bukkit.entity.PufferFish; -import org.bukkit.entity.Rabbit; -import org.bukkit.entity.Raider; -import org.bukkit.entity.Ravager; -import org.bukkit.entity.Salmon; -import org.bukkit.entity.Sheep; -import org.bukkit.entity.Shulker; -import org.bukkit.entity.Silverfish; -import org.bukkit.entity.Skeleton; -import org.bukkit.entity.SkeletonHorse; -import org.bukkit.entity.Slime; -import org.bukkit.entity.Snowman; -import org.bukkit.entity.Spellcaster; -import org.bukkit.entity.Spider; -import org.bukkit.entity.Squid; -import org.bukkit.entity.Stray; -import org.bukkit.entity.Strider; -import org.bukkit.entity.Tameable; -import org.bukkit.entity.TraderLlama; -import org.bukkit.entity.TropicalFish; -import org.bukkit.entity.Turtle; -import org.bukkit.entity.Vex; -import org.bukkit.entity.Villager; -import org.bukkit.entity.Vindicator; -import org.bukkit.entity.WanderingTrader; -import org.bukkit.entity.WaterMob; -import org.bukkit.entity.Witch; -import org.bukkit.entity.Wither; -import org.bukkit.entity.WitherSkeleton; -import org.bukkit.entity.Wolf; -import org.bukkit.entity.Zoglin; -import org.bukkit.entity.Zombie; -import org.bukkit.entity.ZombieHorse; -import org.bukkit.entity.ZombieVillager; +import org.bukkit.entity.*; public class MobGoalHelper { @@ -143,10 +34,13 @@ public class MobGoalHelper { ignored.add("selector_2"); ignored.add("wrapped"); + // + // Start generate - MobGoalHelper#bukkitMap + // @GeneratedFrom 1.21.4 bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class); bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class); - bukkitMap.put(AmbientCreature.class, Ambient.class); - bukkitMap.put(Animal.class, Animals.class); + bukkitMap.put(net.minecraft.world.entity.ambient.AmbientCreature.class, Ambient.class); + bukkitMap.put(net.minecraft.world.entity.animal.Animal.class, Animals.class); bukkitMap.put(net.minecraft.world.entity.ambient.Bat.class, Bat.class); bukkitMap.put(net.minecraft.world.entity.animal.Bee.class, Bee.class); bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class); @@ -155,51 +49,51 @@ public class MobGoalHelper { bukkitMap.put(net.minecraft.world.entity.animal.Chicken.class, Chicken.class); bukkitMap.put(net.minecraft.world.entity.animal.Cod.class, Cod.class); bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class); - bukkitMap.put(PathfinderMob.class, Creature.class); + bukkitMap.put(net.minecraft.world.entity.PathfinderMob.class, Creature.class); bukkitMap.put(net.minecraft.world.entity.monster.Creeper.class, Creeper.class); bukkitMap.put(net.minecraft.world.entity.animal.Dolphin.class, Dolphin.class); bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class); bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.class); - bukkitMap.put(EnderMan.class, Enderman.class); + bukkitMap.put(net.minecraft.world.entity.monster.EnderMan.class, Enderman.class); bukkitMap.put(net.minecraft.world.entity.monster.Endermite.class, Endermite.class); bukkitMap.put(net.minecraft.world.entity.monster.Evoker.class, Evoker.class); - bukkitMap.put(AbstractFish.class, Fish.class); - bukkitMap.put(AbstractSchoolingFish.class, io.papermc.paper.entity.SchoolableFish.class); - bukkitMap.put(FlyingMob.class, Flying.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractFish.class, Fish.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractSchoolingFish.class, SchoolableFish.class); + bukkitMap.put(net.minecraft.world.entity.FlyingMob.class, Flying.class); bukkitMap.put(net.minecraft.world.entity.animal.Fox.class, Fox.class); bukkitMap.put(net.minecraft.world.entity.monster.Ghast.class, Ghast.class); bukkitMap.put(net.minecraft.world.entity.monster.Giant.class, Giant.class); - bukkitMap.put(AbstractGolem.class, Golem.class); + bukkitMap.put(net.minecraft.world.entity.animal.AbstractGolem.class, Golem.class); bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class); bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class); - bukkitMap.put(AbstractChestedHorse.class, ChestedHorse.class); + bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractChestedHorse.class, ChestedHorse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Mule.class, Mule.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.SkeletonHorse.class, SkeletonHorse.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class); - bukkitMap.put(Camel.class, org.bukkit.entity.Camel.class); - bukkitMap.put(AbstractIllager.class, Illager.class); + bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, Camel.class); + bukkitMap.put(net.minecraft.world.entity.monster.AbstractIllager.class, Illager.class); bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.class); - bukkitMap.put(SpellcasterIllager.class, Spellcaster.class); + bukkitMap.put(net.minecraft.world.entity.monster.SpellcasterIllager.class, Spellcaster.class); bukkitMap.put(net.minecraft.world.entity.animal.IronGolem.class, IronGolem.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.Llama.class, Llama.class); bukkitMap.put(net.minecraft.world.entity.animal.horse.TraderLlama.class, TraderLlama.class); bukkitMap.put(net.minecraft.world.entity.monster.MagmaCube.class, MagmaCube.class); bukkitMap.put(net.minecraft.world.entity.monster.Monster.class, Monster.class); - bukkitMap.put(PatrollingMonster.class, Raider.class); // close enough + bukkitMap.put(net.minecraft.world.entity.monster.PatrollingMonster.class, Raider.class); bukkitMap.put(net.minecraft.world.entity.animal.MushroomCow.class, MushroomCow.class); bukkitMap.put(net.minecraft.world.entity.animal.Ocelot.class, Ocelot.class); bukkitMap.put(net.minecraft.world.entity.animal.Panda.class, Panda.class); bukkitMap.put(net.minecraft.world.entity.animal.Parrot.class, Parrot.class); - bukkitMap.put(ShoulderRidingEntity.class, Parrot.class); // close enough + bukkitMap.put(net.minecraft.world.entity.animal.ShoulderRidingEntity.class, Parrot.class); bukkitMap.put(net.minecraft.world.entity.monster.Phantom.class, Phantom.class); bukkitMap.put(net.minecraft.world.entity.animal.Pig.class, Pig.class); - bukkitMap.put(ZombifiedPiglin.class, PigZombie.class); + bukkitMap.put(net.minecraft.world.entity.monster.ZombifiedPiglin.class, PigZombie.class); bukkitMap.put(net.minecraft.world.entity.monster.Pillager.class, Pillager.class); bukkitMap.put(net.minecraft.world.entity.animal.PolarBear.class, PolarBear.class); - bukkitMap.put(Pufferfish.class, PufferFish.class); + bukkitMap.put(net.minecraft.world.entity.animal.Pufferfish.class, PufferFish.class); bukkitMap.put(net.minecraft.world.entity.animal.Rabbit.class, Rabbit.class); bukkitMap.put(net.minecraft.world.entity.raid.Raider.class, Raider.class); bukkitMap.put(net.minecraft.world.entity.monster.Ravager.class, Ravager.class); @@ -212,10 +106,10 @@ public class MobGoalHelper { bukkitMap.put(net.minecraft.world.entity.monster.Stray.class, Stray.class); bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class); bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class); - bukkitMap.put(SnowGolem.class, Snowman.class); + bukkitMap.put(net.minecraft.world.entity.animal.SnowGolem.class, Snowman.class); bukkitMap.put(net.minecraft.world.entity.monster.Spider.class, Spider.class); bukkitMap.put(net.minecraft.world.entity.animal.Squid.class, Squid.class); - bukkitMap.put(TamableAnimal.class, Tameable.class); + bukkitMap.put(net.minecraft.world.entity.TamableAnimal.class, Tameable.class); bukkitMap.put(net.minecraft.world.entity.animal.TropicalFish.class, TropicalFish.class); bukkitMap.put(net.minecraft.world.entity.animal.Turtle.class, Turtle.class); bukkitMap.put(net.minecraft.world.entity.monster.Vex.class, Vex.class); @@ -223,32 +117,34 @@ public class MobGoalHelper { bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class); bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class); bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class); - bukkitMap.put(WaterAnimal.class, WaterMob.class); + bukkitMap.put(net.minecraft.world.entity.animal.WaterAnimal.class, WaterMob.class); bukkitMap.put(net.minecraft.world.entity.monster.Witch.class, Witch.class); - bukkitMap.put(WitherBoss.class, Wither.class); + bukkitMap.put(net.minecraft.world.entity.boss.wither.WitherBoss.class, Wither.class); bukkitMap.put(net.minecraft.world.entity.animal.Wolf.class, Wolf.class); bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class); bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class); bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class); bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class); bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class); - bukkitMap.put(AbstractPiglin.class, PiglinAbstract.class); + bukkitMap.put(net.minecraft.world.entity.monster.piglin.AbstractPiglin.class, PiglinAbstract.class); bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.class); bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class); bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class); - bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, org.bukkit.entity.GlowSquid.class); - bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, org.bukkit.entity.Axolotl.class); - bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, org.bukkit.entity.Goat.class); - bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, org.bukkit.entity.Frog.class); - bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, org.bukkit.entity.Tadpole.class); - bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, org.bukkit.entity.Warden.class); - bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, org.bukkit.entity.Allay.class); - bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, org.bukkit.entity.Sniffer.class); - bukkitMap.put(Breeze.class, org.bukkit.entity.Breeze.class); - bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, org.bukkit.entity.Armadillo.class); - bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, org.bukkit.entity.Bogged.class); - bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, org.bukkit.entity.Creaking.class); - bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, org.bukkit.entity.Squid.class); // close enough + bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, GlowSquid.class); + bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, Axolotl.class); + bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, Goat.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, Frog.class); + bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, Tadpole.class); + bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, Warden.class); + bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, Allay.class); + bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, Sniffer.class); + bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, Breeze.class); + bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, Armadillo.class); + bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, Bogged.class); + bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, Creaking.class); + bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, Squid.class); + // End generate - MobGoalHelper#bukkitMap + // } public static String getUsableName(Class clazz) { @@ -267,7 +163,6 @@ public class MobGoalHelper { name = cut; } } - name = name.replace("PathfinderGoal", ""); name = name.replace("TargetGoal", ""); name = name.replace("Goal", ""); StringBuilder sb = new StringBuilder(); @@ -365,7 +260,7 @@ public class MobGoalHelper { } } } - throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return EntityInsentient? + throw new RuntimeException("Can't figure out applicable entity for mob goal " + goalClass); // maybe just return Mob? }); } diff --git a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperGoal.java similarity index 89% rename from paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java rename to paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperGoal.java index b5c594a549..74d172166b 100644 --- a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperVanillaGoal.java +++ b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperGoal.java @@ -7,14 +7,14 @@ import org.bukkit.entity.Mob; /** * Wraps vanilla in api */ -public class PaperVanillaGoal implements VanillaGoal { +public class PaperGoal implements com.destroystokyo.paper.entity.ai.Goal { private final Goal handle; private final GoalKey key; private final EnumSet types; - public PaperVanillaGoal(Goal handle) { + public PaperGoal(Goal handle) { this.handle = handle; this.key = MobGoalHelper.getKey(handle.getClass()); this.types = MobGoalHelper.vanillaToPaper(handle); diff --git a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java index 7e72fbb165..a617e3d618 100644 --- a/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java +++ b/paper-server/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java @@ -20,8 +20,8 @@ public class PaperMobGoals implements MobGoals { CraftMob craftMob = (CraftMob) mob; net.minecraft.world.entity.ai.goal.Goal mojangGoal; - if (goal instanceof PaperVanillaGoal vanillaGoal) { - mojangGoal = vanillaGoal.getHandle(); + if (goal instanceof PaperGoal paperGoal) { + mojangGoal = paperGoal.getHandle(); } else { mojangGoal = new PaperCustomGoal<>(goal); } @@ -34,8 +34,8 @@ public class PaperMobGoals implements MobGoals { CraftMob craftMob = (CraftMob) mob; if (goal instanceof PaperCustomGoal) { getHandle(craftMob, goal.getTypes()).removeGoal((net.minecraft.world.entity.ai.goal.Goal) goal); - } else if (goal instanceof PaperVanillaGoal) { - getHandle(craftMob, goal.getTypes()).removeGoal(((PaperVanillaGoal) goal).getHandle()); + } else if (goal instanceof PaperGoal) { + getHandle(craftMob, goal.getTypes()).removeGoal(((PaperGoal) goal).getHandle()); } else { List toRemove = new LinkedList<>(); for (WrappedGoal item : getHandle(craftMob, goal.getTypes()).getAvailableGoals()) { @@ -127,7 +127,7 @@ public class PaperMobGoals implements MobGoals { //noinspection unchecked goals.add(((PaperCustomGoal) item.getGoal()).getHandle()); } else { - goals.add(item.getGoal().asPaperVanillaGoal()); + goals.add(item.getGoal().asPaperGoal()); } } return goals; @@ -150,7 +150,7 @@ public class PaperMobGoals implements MobGoals { //noinspection unchecked goals.add(((PaperCustomGoal) item.getGoal()).getHandle()); } else { - goals.add(item.getGoal().asPaperVanillaGoal()); + goals.add(item.getGoal().asPaperGoal()); } } } @@ -178,7 +178,7 @@ public class PaperMobGoals implements MobGoals { //noinspection unchecked goals.add(((PaperCustomGoal) item.getGoal()).getHandle()); } else { - goals.add(item.getGoal().asPaperVanillaGoal()); + goals.add(item.getGoal().asPaperGoal()); } }); return goals; @@ -201,7 +201,7 @@ public class PaperMobGoals implements MobGoals { //noinspection unchecked goals.add(((PaperCustomGoal) item.getGoal()).getHandle()); } else { - goals.add(item.getGoal().asPaperVanillaGoal()); + goals.add(item.getGoal().asPaperGoal()); } }); } diff --git a/paper-server/src/main/java/io/papermc/paper/block/fluid/PaperFluidData.java b/paper-server/src/main/java/io/papermc/paper/block/fluid/PaperFluidData.java index 479bc32241..c50e06ff83 100644 --- a/paper-server/src/main/java/io/papermc/paper/block/fluid/PaperFluidData.java +++ b/paper-server/src/main/java/io/papermc/paper/block/fluid/PaperFluidData.java @@ -4,12 +4,7 @@ import com.google.common.base.Preconditions; import io.papermc.paper.block.fluid.type.PaperFallingFluidData; import io.papermc.paper.block.fluid.type.PaperFlowingFluidData; import io.papermc.paper.util.MCUtil; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; import net.minecraft.world.level.material.FluidState; -import net.minecraft.world.level.material.LavaFluid; -import net.minecraft.world.level.material.WaterFluid; import org.bukkit.Fluid; import org.bukkit.Location; import org.bukkit.craftbukkit.CraftFluid; @@ -88,23 +83,10 @@ public class PaperFluidData implements FluidData { return "PaperFluidData{" + this.state + "}"; } - /* Registry */ - private static final Map, Function> MAP = new HashMap<>(); - static { - // - register(LavaFluid.Source.class, PaperFallingFluidData::new); - register(WaterFluid.Source.class, PaperFallingFluidData::new); - register(LavaFluid.Flowing.class, PaperFlowingFluidData::new); - register(WaterFluid.Flowing.class, PaperFlowingFluidData::new); - // - } - - static void register(final Class fluid, final Function creator) { - Preconditions.checkState(MAP.put(fluid, creator) == null, "Duplicate mapping %s->%s", fluid, creator); - MAP.put(fluid, creator); - } - public static PaperFluidData createData(final FluidState state) { - return MAP.getOrDefault(state.getType().getClass(), PaperFluidData::new).apply(state); + if (state.isEmpty()) { + return new PaperFluidData(state); + } + return state.isSource() ? new PaperFallingFluidData(state) : new PaperFlowingFluidData(state); } } diff --git a/paper-server/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/paper-server/src/main/java/io/papermc/paper/registry/PaperRegistries.java index c0b17315a3..4952df704f 100644 --- a/paper-server/src/main/java/io/papermc/paper/registry/PaperRegistries.java +++ b/paper-server/src/main/java/io/papermc/paper/registry/PaperRegistries.java @@ -83,7 +83,9 @@ public final class PaperRegistries { private static final Map, RegistryEntry> BY_RESOURCE_KEY; static { REGISTRY_ENTRIES = List.of( - // built-ins + // Start generate - RegistryDefinitions + // @GeneratedFrom 1.21.4 + // built-in start(Registries.GAME_EVENT, RegistryKey.GAME_EVENT).craft(GameEvent.class, CraftGameEvent::new).writable(PaperGameEventRegistryEntry.PaperBuilder::new), start(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE).craft(StructureType.class, CraftStructureType::new).build(), start(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT).craft(PotionEffectType.class, CraftPotionEffectType::new).build(), @@ -100,7 +102,7 @@ public final class PaperRegistries { start(Registries.SOUND_EVENT, RegistryKey.SOUND_EVENT).craft(Sound.class, CraftSound::new, true).build(), start(Registries.DATA_COMPONENT_TYPE, RegistryKey.DATA_COMPONENT_TYPE).craft(DataComponentTypes.class, PaperDataComponentType::of).build(), - // data-drivens + // data-driven start(Registries.BIOME, RegistryKey.BIOME).craft(Biome.class, CraftBiome::new).build().delayed(), start(Registries.STRUCTURE, RegistryKey.STRUCTURE).craft(Structure.class, CraftStructure::new).build().delayed(), start(Registries.TRIM_MATERIAL, RegistryKey.TRIM_MATERIAL).craft(TrimMaterial.class, CraftTrimMaterial::new, true).build().delayed(), @@ -117,7 +119,8 @@ public final class PaperRegistries { start(Registries.ENTITY_TYPE, RegistryKey.ENTITY_TYPE).apiOnly(PaperSimpleRegistry::entityType), start(Registries.PARTICLE_TYPE, RegistryKey.PARTICLE_TYPE).apiOnly(PaperSimpleRegistry::particleType), start(Registries.POTION, RegistryKey.POTION).apiOnly(PaperSimpleRegistry::potion), - start(Registries.MEMORY_MODULE_TYPE, RegistryKey.MEMORY_MODULE_TYPE).apiOnly(() -> (org.bukkit.Registry>) (org.bukkit.Registry) org.bukkit.Registry.MEMORY_MODULE_TYPE) + start(Registries.MEMORY_MODULE_TYPE, RegistryKey.MEMORY_MODULE_TYPE).apiOnly(() -> org.bukkit.Registry.MEMORY_MODULE_TYPE) + // End generate - RegistryDefinitions ); final Map, RegistryEntry> byRegistryKey = new IdentityHashMap<>(REGISTRY_ENTRIES.size()); final Map, RegistryEntry> byResourceKey = new IdentityHashMap<>(REGISTRY_ENTRIES.size()); diff --git a/paper-server/src/main/java/io/papermc/paper/world/flag/PaperFeatureFlagProviderImpl.java b/paper-server/src/main/java/io/papermc/paper/world/flag/PaperFeatureFlagProviderImpl.java index f70bc7833f..caa96435e9 100644 --- a/paper-server/src/main/java/io/papermc/paper/world/flag/PaperFeatureFlagProviderImpl.java +++ b/paper-server/src/main/java/io/papermc/paper/world/flag/PaperFeatureFlagProviderImpl.java @@ -19,10 +19,13 @@ import org.bukkit.potion.PotionType; public class PaperFeatureFlagProviderImpl implements FeatureFlagProvider { public static final BiMap FLAGS = ImmutableBiMap.of( - FeatureFlag.VANILLA, FeatureFlags.VANILLA, - FeatureFlag.TRADE_REBALANCE, FeatureFlags.TRADE_REBALANCE, + // Start generate - PaperFeatureFlagProviderImpl#FLAGS + // @GeneratedFrom 1.21.4 FeatureFlag.MINECART_IMPROVEMENTS, FeatureFlags.MINECART_IMPROVEMENTS, - FeatureFlag.REDSTONE_EXPERIMENTS, FeatureFlags.REDSTONE_EXPERIMENTS + FeatureFlag.REDSTONE_EXPERIMENTS, FeatureFlags.REDSTONE_EXPERIMENTS, + FeatureFlag.TRADE_REBALANCE, FeatureFlags.TRADE_REBALANCE, + FeatureFlag.VANILLA, FeatureFlags.VANILLA + // End generate - PaperFeatureFlagProviderImpl#FLAGS ); @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftStatistic.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftStatistic.java index ccee1f637d..474ba04e57 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftStatistic.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftStatistic.java @@ -20,89 +20,95 @@ import org.bukkit.craftbukkit.inventory.CraftItemType; import org.bukkit.entity.EntityType; public enum CraftStatistic { - DAMAGE_DEALT(Stats.DAMAGE_DEALT), - DAMAGE_TAKEN(Stats.DAMAGE_TAKEN), - DEATHS(Stats.DEATHS), - MOB_KILLS(Stats.MOB_KILLS), - PLAYER_KILLS(Stats.PLAYER_KILLS), - FISH_CAUGHT(Stats.FISH_CAUGHT), + // Start generate - CraftStatisticCustom + // @GeneratedFrom 1.21.4 ANIMALS_BRED(Stats.ANIMALS_BRED), - LEAVE_GAME(Stats.LEAVE_GAME), - JUMP(Stats.JUMP), - DROP_COUNT(Stats.DROP), - DROP(ResourceLocation.withDefaultNamespace("dropped")), - PICKUP(ResourceLocation.withDefaultNamespace("picked_up")), - PLAY_ONE_MINUTE(Stats.PLAY_TIME), - TOTAL_WORLD_TIME(Stats.TOTAL_WORLD_TIME), - WALK_ONE_CM(Stats.WALK_ONE_CM), - WALK_ON_WATER_ONE_CM(Stats.WALK_ON_WATER_ONE_CM), - FALL_ONE_CM(Stats.FALL_ONE_CM), - SNEAK_TIME(Stats.CROUCH_TIME), - CLIMB_ONE_CM(Stats.CLIMB_ONE_CM), - FLY_ONE_CM(Stats.FLY_ONE_CM), - WALK_UNDER_WATER_ONE_CM(Stats.WALK_UNDER_WATER_ONE_CM), - MINECART_ONE_CM(Stats.MINECART_ONE_CM), - BOAT_ONE_CM(Stats.BOAT_ONE_CM), - PIG_ONE_CM(Stats.PIG_ONE_CM), - HORSE_ONE_CM(Stats.HORSE_ONE_CM), - SPRINT_ONE_CM(Stats.SPRINT_ONE_CM), - CROUCH_ONE_CM(Stats.CROUCH_ONE_CM), AVIATE_ONE_CM(Stats.AVIATE_ONE_CM), - MINE_BLOCK(ResourceLocation.withDefaultNamespace("mined")), - USE_ITEM(ResourceLocation.withDefaultNamespace("used")), - BREAK_ITEM(ResourceLocation.withDefaultNamespace("broken")), - CRAFT_ITEM(ResourceLocation.withDefaultNamespace("crafted")), - KILL_ENTITY(ResourceLocation.withDefaultNamespace("killed")), - ENTITY_KILLED_BY(ResourceLocation.withDefaultNamespace("killed_by")), - TIME_SINCE_DEATH(Stats.TIME_SINCE_DEATH), - TALKED_TO_VILLAGER(Stats.TALKED_TO_VILLAGER), - TRADED_WITH_VILLAGER(Stats.TRADED_WITH_VILLAGER), - CAKE_SLICES_EATEN(Stats.EAT_CAKE_SLICE), - CAULDRON_FILLED(Stats.FILL_CAULDRON), - CAULDRON_USED(Stats.USE_CAULDRON), + BELL_RING(Stats.BELL_RING), + BOAT_ONE_CM(Stats.BOAT_ONE_CM), ARMOR_CLEANED(Stats.CLEAN_ARMOR), BANNER_CLEANED(Stats.CLEAN_BANNER), - BREWINGSTAND_INTERACTION(Stats.INTERACT_WITH_BREWINGSTAND), - BEACON_INTERACTION(Stats.INTERACT_WITH_BEACON), - DROPPER_INSPECTED(Stats.INSPECT_DROPPER), - HOPPER_INSPECTED(Stats.INSPECT_HOPPER), - DISPENSER_INSPECTED(Stats.INSPECT_DISPENSER), - NOTEBLOCK_PLAYED(Stats.PLAY_NOTEBLOCK), - NOTEBLOCK_TUNED(Stats.TUNE_NOTEBLOCK), - FLOWER_POTTED(Stats.POT_FLOWER), - TRAPPED_CHEST_TRIGGERED(Stats.TRIGGER_TRAPPED_CHEST), - ENDERCHEST_OPENED(Stats.OPEN_ENDERCHEST), - ITEM_ENCHANTED(Stats.ENCHANT_ITEM), - RECORD_PLAYED(Stats.PLAY_RECORD), - FURNACE_INTERACTION(Stats.INTERACT_WITH_FURNACE), - CRAFTING_TABLE_INTERACTION(Stats.INTERACT_WITH_CRAFTING_TABLE), - CHEST_OPENED(Stats.OPEN_CHEST), - SLEEP_IN_BED(Stats.SLEEP_IN_BED), - SHULKER_BOX_OPENED(Stats.OPEN_SHULKER_BOX), - TIME_SINCE_REST(Stats.TIME_SINCE_REST), - SWIM_ONE_CM(Stats.SWIM_ONE_CM), + CLEAN_SHULKER_BOX(Stats.CLEAN_SHULKER_BOX), + CLIMB_ONE_CM(Stats.CLIMB_ONE_CM), + CROUCH_ONE_CM(Stats.CROUCH_ONE_CM), + DAMAGE_ABSORBED(Stats.DAMAGE_ABSORBED), + DAMAGE_BLOCKED_BY_SHIELD(Stats.DAMAGE_BLOCKED_BY_SHIELD), + DAMAGE_DEALT(Stats.DAMAGE_DEALT), DAMAGE_DEALT_ABSORBED(Stats.DAMAGE_DEALT_ABSORBED), DAMAGE_DEALT_RESISTED(Stats.DAMAGE_DEALT_RESISTED), - DAMAGE_BLOCKED_BY_SHIELD(Stats.DAMAGE_BLOCKED_BY_SHIELD), - DAMAGE_ABSORBED(Stats.DAMAGE_ABSORBED), DAMAGE_RESISTED(Stats.DAMAGE_RESISTED), - CLEAN_SHULKER_BOX(Stats.CLEAN_SHULKER_BOX), - OPEN_BARREL(Stats.OPEN_BARREL), + DAMAGE_TAKEN(Stats.DAMAGE_TAKEN), + DEATHS(Stats.DEATHS), + DROP_COUNT(Stats.DROP), + CAKE_SLICES_EATEN(Stats.EAT_CAKE_SLICE), + ITEM_ENCHANTED(Stats.ENCHANT_ITEM), + FALL_ONE_CM(Stats.FALL_ONE_CM), + CAULDRON_FILLED(Stats.FILL_CAULDRON), + FISH_CAUGHT(Stats.FISH_CAUGHT), + FLY_ONE_CM(Stats.FLY_ONE_CM), + HORSE_ONE_CM(Stats.HORSE_ONE_CM), + DISPENSER_INSPECTED(Stats.INSPECT_DISPENSER), + DROPPER_INSPECTED(Stats.INSPECT_DROPPER), + HOPPER_INSPECTED(Stats.INSPECT_HOPPER), + INTERACT_WITH_ANVIL(Stats.INTERACT_WITH_ANVIL), + BEACON_INTERACTION(Stats.INTERACT_WITH_BEACON), INTERACT_WITH_BLAST_FURNACE(Stats.INTERACT_WITH_BLAST_FURNACE), - INTERACT_WITH_SMOKER(Stats.INTERACT_WITH_SMOKER), - INTERACT_WITH_LECTERN(Stats.INTERACT_WITH_LECTERN), + BREWINGSTAND_INTERACTION(Stats.INTERACT_WITH_BREWINGSTAND), INTERACT_WITH_CAMPFIRE(Stats.INTERACT_WITH_CAMPFIRE), INTERACT_WITH_CARTOGRAPHY_TABLE(Stats.INTERACT_WITH_CARTOGRAPHY_TABLE), + CRAFTING_TABLE_INTERACTION(Stats.INTERACT_WITH_CRAFTING_TABLE), + FURNACE_INTERACTION(Stats.INTERACT_WITH_FURNACE), + INTERACT_WITH_GRINDSTONE(Stats.INTERACT_WITH_GRINDSTONE), + INTERACT_WITH_LECTERN(Stats.INTERACT_WITH_LECTERN), INTERACT_WITH_LOOM(Stats.INTERACT_WITH_LOOM), + INTERACT_WITH_SMITHING_TABLE(Stats.INTERACT_WITH_SMITHING_TABLE), + INTERACT_WITH_SMOKER(Stats.INTERACT_WITH_SMOKER), INTERACT_WITH_STONECUTTER(Stats.INTERACT_WITH_STONECUTTER), - BELL_RING(Stats.BELL_RING), + JUMP(Stats.JUMP), + LEAVE_GAME(Stats.LEAVE_GAME), + MINECART_ONE_CM(Stats.MINECART_ONE_CM), + MOB_KILLS(Stats.MOB_KILLS), + OPEN_BARREL(Stats.OPEN_BARREL), + CHEST_OPENED(Stats.OPEN_CHEST), + ENDERCHEST_OPENED(Stats.OPEN_ENDERCHEST), + SHULKER_BOX_OPENED(Stats.OPEN_SHULKER_BOX), + PIG_ONE_CM(Stats.PIG_ONE_CM), + NOTEBLOCK_PLAYED(Stats.PLAY_NOTEBLOCK), + RECORD_PLAYED(Stats.PLAY_RECORD), + PLAY_ONE_MINUTE(Stats.PLAY_TIME), + PLAYER_KILLS(Stats.PLAYER_KILLS), + FLOWER_POTTED(Stats.POT_FLOWER), RAID_TRIGGER(Stats.RAID_TRIGGER), RAID_WIN(Stats.RAID_WIN), - INTERACT_WITH_ANVIL(Stats.INTERACT_WITH_ANVIL), - INTERACT_WITH_GRINDSTONE(Stats.INTERACT_WITH_GRINDSTONE), + SLEEP_IN_BED(Stats.SLEEP_IN_BED), + SNEAK_TIME(Stats.CROUCH_TIME), + SPRINT_ONE_CM(Stats.SPRINT_ONE_CM), + STRIDER_ONE_CM(Stats.STRIDER_ONE_CM), + SWIM_ONE_CM(Stats.SWIM_ONE_CM), + TALKED_TO_VILLAGER(Stats.TALKED_TO_VILLAGER), TARGET_HIT(Stats.TARGET_HIT), - INTERACT_WITH_SMITHING_TABLE(Stats.INTERACT_WITH_SMITHING_TABLE), - STRIDER_ONE_CM(Stats.STRIDER_ONE_CM); + TIME_SINCE_DEATH(Stats.TIME_SINCE_DEATH), + TIME_SINCE_REST(Stats.TIME_SINCE_REST), + TOTAL_WORLD_TIME(Stats.TOTAL_WORLD_TIME), + TRADED_WITH_VILLAGER(Stats.TRADED_WITH_VILLAGER), + TRAPPED_CHEST_TRIGGERED(Stats.TRIGGER_TRAPPED_CHEST), + NOTEBLOCK_TUNED(Stats.TUNE_NOTEBLOCK), + CAULDRON_USED(Stats.USE_CAULDRON), + WALK_ON_WATER_ONE_CM(Stats.WALK_ON_WATER_ONE_CM), + WALK_ONE_CM(Stats.WALK_ONE_CM), + WALK_UNDER_WATER_ONE_CM(Stats.WALK_UNDER_WATER_ONE_CM), + // End generate - CraftStatisticCustom + // Start generate - CraftStatisticType + // @GeneratedFrom 1.21.4 + BREAK_ITEM(ResourceLocation.withDefaultNamespace("broken")), + CRAFT_ITEM(ResourceLocation.withDefaultNamespace("crafted")), + DROP(ResourceLocation.withDefaultNamespace("dropped")), + KILL_ENTITY(ResourceLocation.withDefaultNamespace("killed")), + ENTITY_KILLED_BY(ResourceLocation.withDefaultNamespace("killed_by")), + MINE_BLOCK(ResourceLocation.withDefaultNamespace("mined")), + PICKUP(ResourceLocation.withDefaultNamespace("picked_up")), + USE_ITEM(ResourceLocation.withDefaultNamespace("used")); + // End generate - CraftStatisticType private final ResourceLocation minecraftKey; private final org.bukkit.Statistic bukkit; private static final BiMap statistics; diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java index 56453454cb..acda45ddab 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java @@ -133,53 +133,54 @@ public final class CraftBlockStates { // Paper end static { - // Paper start - simplify - register(BlockEntityType.SIGN, CraftSign.class, CraftSign::new); - register(BlockEntityType.HANGING_SIGN, CraftHangingSign.class, CraftHangingSign::new); - register(BlockEntityType.SKULL, CraftSkull.class, CraftSkull::new); - register(BlockEntityType.COMMAND_BLOCK, CraftCommandBlock.class, CraftCommandBlock::new); + // Start generate - CraftBlockEntityStates + // @GeneratedFrom 1.21.4 register(BlockEntityType.BANNER, CraftBanner.class, CraftBanner::new); - register(BlockEntityType.SHULKER_BOX, CraftShulkerBox.class, CraftShulkerBox::new); - register(BlockEntityType.BED, CraftBed.class, CraftBed::new); - register(BlockEntityType.BEEHIVE, CraftBeehive.class, CraftBeehive::new); - register(BlockEntityType.CAMPFIRE, CraftCampfire.class, CraftCampfire::new); register(BlockEntityType.BARREL, CraftBarrel.class, CraftBarrel::new); register(BlockEntityType.BEACON, CraftBeacon.class, CraftBeacon::new); + register(BlockEntityType.BED, CraftBed.class, CraftBed::new); + register(BlockEntityType.BEEHIVE, CraftBeehive.class, CraftBeehive::new); register(BlockEntityType.BELL, CraftBell.class, CraftBell::new); register(BlockEntityType.BLAST_FURNACE, CraftBlastFurnace.class, CraftBlastFurnace::new); register(BlockEntityType.BREWING_STAND, CraftBrewingStand.class, CraftBrewingStand::new); + register(BlockEntityType.BRUSHABLE_BLOCK, CraftBrushableBlock.class, CraftBrushableBlock::new); + register(BlockEntityType.CALIBRATED_SCULK_SENSOR, CraftCalibratedSculkSensor.class, CraftCalibratedSculkSensor::new); + register(BlockEntityType.CAMPFIRE, CraftCampfire.class, CraftCampfire::new); register(BlockEntityType.CHEST, CraftChest.class, CraftChest::new); register(BlockEntityType.CHISELED_BOOKSHELF, CraftChiseledBookshelf.class, CraftChiseledBookshelf::new); + register(BlockEntityType.COMMAND_BLOCK, CraftCommandBlock.class, CraftCommandBlock::new); register(BlockEntityType.COMPARATOR, CraftComparator.class, CraftComparator::new); register(BlockEntityType.CONDUIT, CraftConduit.class, CraftConduit::new); + register(BlockEntityType.CRAFTER, CraftCrafter.class, CraftCrafter::new); register(BlockEntityType.CREAKING_HEART, CraftCreakingHeart.class, CraftCreakingHeart::new); register(BlockEntityType.DAYLIGHT_DETECTOR, CraftDaylightDetector.class, CraftDaylightDetector::new); register(BlockEntityType.DECORATED_POT, CraftDecoratedPot.class, CraftDecoratedPot::new); register(BlockEntityType.DISPENSER, CraftDispenser.class, CraftDispenser::new); register(BlockEntityType.DROPPER, CraftDropper.class, CraftDropper::new); register(BlockEntityType.ENCHANTING_TABLE, CraftEnchantingTable.class, CraftEnchantingTable::new); - register(BlockEntityType.ENDER_CHEST, CraftEnderChest.class, CraftEnderChest::new); register(BlockEntityType.END_GATEWAY, CraftEndGateway.class, CraftEndGateway::new); register(BlockEntityType.END_PORTAL, CraftEndPortal.class, CraftEndPortal::new); + register(BlockEntityType.ENDER_CHEST, CraftEnderChest.class, CraftEnderChest::new); register(BlockEntityType.FURNACE, CraftFurnaceFurnace.class, CraftFurnaceFurnace::new); + register(BlockEntityType.HANGING_SIGN, CraftHangingSign.class, CraftHangingSign::new); register(BlockEntityType.HOPPER, CraftHopper.class, CraftHopper::new); register(BlockEntityType.JIGSAW, CraftJigsaw.class, CraftJigsaw::new); register(BlockEntityType.JUKEBOX, CraftJukebox.class, CraftJukebox::new); register(BlockEntityType.LECTERN, CraftLectern.class, CraftLectern::new); + register(BlockEntityType.MOB_SPAWNER, CraftCreatureSpawner.class, CraftCreatureSpawner::new); register(BlockEntityType.PISTON, CraftMovingPiston.class, CraftMovingPiston::new); register(BlockEntityType.SCULK_CATALYST, CraftSculkCatalyst.class, CraftSculkCatalyst::new); register(BlockEntityType.SCULK_SENSOR, CraftSculkSensor.class, CraftSculkSensor::new); register(BlockEntityType.SCULK_SHRIEKER, CraftSculkShrieker.class, CraftSculkShrieker::new); - register(BlockEntityType.CALIBRATED_SCULK_SENSOR, CraftCalibratedSculkSensor.class, CraftCalibratedSculkSensor::new); + register(BlockEntityType.SHULKER_BOX, CraftShulkerBox.class, CraftShulkerBox::new); + register(BlockEntityType.SIGN, CraftSign.class, CraftSign::new); + register(BlockEntityType.SKULL, CraftSkull.class, CraftSkull::new); register(BlockEntityType.SMOKER, CraftSmoker.class, CraftSmoker::new); - register(BlockEntityType.MOB_SPAWNER, CraftCreatureSpawner.class, CraftCreatureSpawner::new); register(BlockEntityType.STRUCTURE_BLOCK, CraftStructureBlock.class, CraftStructureBlock::new); - register(BlockEntityType.BRUSHABLE_BLOCK, CraftBrushableBlock.class, CraftBrushableBlock::new); // note: spigot still uses CraftSuspiciousSand impl for that block type register(BlockEntityType.TRAPPED_CHEST, CraftChest.class, CraftChest::new); - register(BlockEntityType.CRAFTER, CraftCrafter.class, CraftCrafter::new); register(BlockEntityType.TRIAL_SPAWNER, CraftTrialSpawner.class, CraftTrialSpawner::new); register(BlockEntityType.VAULT, CraftVault.class, CraftVault::new); - // Paper end + // End generate - CraftBlockEntityStates } private static void register(Material blockType, BlockStateFactory factory) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAgeable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAgeable.java deleted file mode 100644 index 09616eb1b2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAgeable.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Ageable; - -public abstract class CraftAgeable extends CraftBlockData implements Ageable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger("age"); - - @Override - public int getAge() { - return this.get(CraftAgeable.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftAgeable.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftAgeable.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAnaloguePowerable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAnaloguePowerable.java deleted file mode 100644 index 2b9b115a7b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAnaloguePowerable.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.AnaloguePowerable; - -public abstract class CraftAnaloguePowerable extends CraftBlockData implements AnaloguePowerable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger("power"); - - @Override - public int getPower() { - return this.get(CraftAnaloguePowerable.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftAnaloguePowerable.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftAnaloguePowerable.POWER); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAttachable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAttachable.java deleted file mode 100644 index 005ff155e1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftAttachable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Attachable; - -public abstract class CraftAttachable extends CraftBlockData implements Attachable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ATTACHED = getBoolean("attached"); - - @Override - public boolean isAttached() { - return this.get(CraftAttachable.ATTACHED); - } - - @Override - public void setAttached(boolean attached) { - this.set(CraftAttachable.ATTACHED, attached); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBisected.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBisected.java deleted file mode 100644 index c8dd400c7b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBisected.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Bisected; - -public class CraftBisected extends CraftBlockData implements Bisected { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum("half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftBisected.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftBisected.HALF, half); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java index 66e40149a5..a77deb2d7a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java @@ -340,197 +340,181 @@ public class CraftBlockData implements BlockData { return state; } - /** - * Get the minimum value allowed by the BlockStateInteger. - * - * @param state the state to check - * @return the minimum value allowed - */ - protected static int getMin(IntegerProperty state) { - return state.min; - } + public static final BlockFace[] ROTATION_CYCLE = { + BlockFace.SOUTH, BlockFace.SOUTH_SOUTH_WEST, BlockFace.SOUTH_WEST, BlockFace.WEST_SOUTH_WEST, + BlockFace.WEST, BlockFace.WEST_NORTH_WEST, BlockFace.NORTH_WEST, BlockFace.NORTH_NORTH_WEST, + BlockFace.NORTH, BlockFace.NORTH_NORTH_EAST, BlockFace.NORTH_EAST, BlockFace.EAST_NORTH_EAST, + BlockFace.EAST, BlockFace.EAST_SOUTH_EAST, BlockFace.SOUTH_EAST, BlockFace.SOUTH_SOUTH_EAST + }; - /** - * Get the maximum value allowed by the BlockStateInteger. - * - * @param state the state to check - * @return the maximum value allowed - */ - protected static int getMax(IntegerProperty state) { - return state.max; - } - - // private static final Map, Function> MAP = new HashMap<>(); static { // + // Start generate - CraftBlockData#MAP + // @GeneratedFrom 1.21.4 register(net.minecraft.world.level.block.AmethystClusterBlock.class, org.bukkit.craftbukkit.block.impl.CraftAmethystCluster::new); - register(net.minecraft.world.level.block.BigDripleafBlock.class, org.bukkit.craftbukkit.block.impl.CraftBigDripleaf::new); - register(net.minecraft.world.level.block.BigDripleafStemBlock.class, org.bukkit.craftbukkit.block.impl.CraftBigDripleafStem::new); register(net.minecraft.world.level.block.AnvilBlock.class, org.bukkit.craftbukkit.block.impl.CraftAnvil::new); - register(net.minecraft.world.level.block.BambooStalkBlock.class, org.bukkit.craftbukkit.block.impl.CraftBamboo::new); + register(net.minecraft.world.level.block.AttachedStemBlock.class, org.bukkit.craftbukkit.block.impl.CraftAttachedStem::new); + register(net.minecraft.world.level.block.BambooStalkBlock.class, org.bukkit.craftbukkit.block.impl.CraftBambooStalk::new); register(net.minecraft.world.level.block.BannerBlock.class, org.bukkit.craftbukkit.block.impl.CraftBanner::new); - register(net.minecraft.world.level.block.WallBannerBlock.class, org.bukkit.craftbukkit.block.impl.CraftBannerWall::new); register(net.minecraft.world.level.block.BarrelBlock.class, org.bukkit.craftbukkit.block.impl.CraftBarrel::new); register(net.minecraft.world.level.block.BarrierBlock.class, org.bukkit.craftbukkit.block.impl.CraftBarrier::new); + register(net.minecraft.world.level.block.BaseCoralFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftBaseCoralFan::new); + register(net.minecraft.world.level.block.BaseCoralPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftBaseCoralPlant::new); + register(net.minecraft.world.level.block.BaseCoralWallFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftBaseCoralWallFan::new); register(net.minecraft.world.level.block.BedBlock.class, org.bukkit.craftbukkit.block.impl.CraftBed::new); register(net.minecraft.world.level.block.BeehiveBlock.class, org.bukkit.craftbukkit.block.impl.CraftBeehive::new); register(net.minecraft.world.level.block.BeetrootBlock.class, org.bukkit.craftbukkit.block.impl.CraftBeetroot::new); register(net.minecraft.world.level.block.BellBlock.class, org.bukkit.craftbukkit.block.impl.CraftBell::new); + register(net.minecraft.world.level.block.BigDripleafBlock.class, org.bukkit.craftbukkit.block.impl.CraftBigDripleaf::new); + register(net.minecraft.world.level.block.BigDripleafStemBlock.class, org.bukkit.craftbukkit.block.impl.CraftBigDripleafStem::new); register(net.minecraft.world.level.block.BlastFurnaceBlock.class, org.bukkit.craftbukkit.block.impl.CraftBlastFurnace::new); register(net.minecraft.world.level.block.BrewingStandBlock.class, org.bukkit.craftbukkit.block.impl.CraftBrewingStand::new); + register(net.minecraft.world.level.block.BrushableBlock.class, org.bukkit.craftbukkit.block.impl.CraftBrushable::new); register(net.minecraft.world.level.block.BubbleColumnBlock.class, org.bukkit.craftbukkit.block.impl.CraftBubbleColumn::new); - register(net.minecraft.world.level.block.ButtonBlock.class, org.bukkit.craftbukkit.block.impl.CraftButtonAbstract::new); + register(net.minecraft.world.level.block.ButtonBlock.class, org.bukkit.craftbukkit.block.impl.CraftButton::new); register(net.minecraft.world.level.block.CactusBlock.class, org.bukkit.craftbukkit.block.impl.CraftCactus::new); register(net.minecraft.world.level.block.CakeBlock.class, org.bukkit.craftbukkit.block.impl.CraftCake::new); - register(net.minecraft.world.level.block.CampfireBlock.class, org.bukkit.craftbukkit.block.impl.CraftCampfire::new); - register(net.minecraft.world.level.block.CarrotBlock.class, org.bukkit.craftbukkit.block.impl.CraftCarrots::new); - register(net.minecraft.world.level.block.ChainBlock.class, org.bukkit.craftbukkit.block.impl.CraftChain::new); - register(net.minecraft.world.level.block.ChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftChest::new); - register(net.minecraft.world.level.block.TrappedChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftChestTrapped::new); - register(net.minecraft.world.level.block.ChorusFlowerBlock.class, org.bukkit.craftbukkit.block.impl.CraftChorusFlower::new); - register(net.minecraft.world.level.block.ChorusPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftChorusFruit::new); - register(net.minecraft.world.level.block.WallBlock.class, org.bukkit.craftbukkit.block.impl.CraftCobbleWall::new); - register(net.minecraft.world.level.block.CocoaBlock.class, org.bukkit.craftbukkit.block.impl.CraftCocoa::new); - register(net.minecraft.world.level.block.CommandBlock.class, org.bukkit.craftbukkit.block.impl.CraftCommand::new); - register(net.minecraft.world.level.block.ComposterBlock.class, org.bukkit.craftbukkit.block.impl.CraftComposter::new); - register(net.minecraft.world.level.block.ConduitBlock.class, org.bukkit.craftbukkit.block.impl.CraftConduit::new); - register(net.minecraft.world.level.block.BaseCoralPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralDead::new); - register(net.minecraft.world.level.block.CoralFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralFan::new); - register(net.minecraft.world.level.block.BaseCoralFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanAbstract::new); - register(net.minecraft.world.level.block.CoralWallFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanWall::new); - register(net.minecraft.world.level.block.BaseCoralWallFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralFanWallAbstract::new); - register(net.minecraft.world.level.block.CoralPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralPlant::new); - register(net.minecraft.world.level.block.CropBlock.class, org.bukkit.craftbukkit.block.impl.CraftCrops::new); - register(net.minecraft.world.level.block.DaylightDetectorBlock.class, org.bukkit.craftbukkit.block.impl.CraftDaylightDetector::new); - register(net.minecraft.world.level.block.SnowyDirtBlock.class, org.bukkit.craftbukkit.block.impl.CraftDirtSnow::new); - register(net.minecraft.world.level.block.DispenserBlock.class, org.bukkit.craftbukkit.block.impl.CraftDispenser::new); - register(net.minecraft.world.level.block.DoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftDoor::new); - register(net.minecraft.world.level.block.DropperBlock.class, org.bukkit.craftbukkit.block.impl.CraftDropper::new); - register(net.minecraft.world.level.block.EndRodBlock.class, org.bukkit.craftbukkit.block.impl.CraftEndRod::new); - register(net.minecraft.world.level.block.EnderChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftEnderChest::new); - register(net.minecraft.world.level.block.EndPortalFrameBlock.class, org.bukkit.craftbukkit.block.impl.CraftEnderPortalFrame::new); - register(net.minecraft.world.level.block.FenceBlock.class, org.bukkit.craftbukkit.block.impl.CraftFence::new); - register(net.minecraft.world.level.block.FenceGateBlock.class, org.bukkit.craftbukkit.block.impl.CraftFenceGate::new); - register(net.minecraft.world.level.block.FireBlock.class, org.bukkit.craftbukkit.block.impl.CraftFire::new); - register(net.minecraft.world.level.block.StandingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftFloorSign::new); - register(net.minecraft.world.level.block.LiquidBlock.class, org.bukkit.craftbukkit.block.impl.CraftFluids::new); - register(net.minecraft.world.level.block.FurnaceBlock.class, org.bukkit.craftbukkit.block.impl.CraftFurnaceFurace::new); - register(net.minecraft.world.level.block.GlazedTerracottaBlock.class, org.bukkit.craftbukkit.block.impl.CraftGlazedTerracotta::new); - register(net.minecraft.world.level.block.GrassBlock.class, org.bukkit.craftbukkit.block.impl.CraftGrass::new); - register(net.minecraft.world.level.block.GrindstoneBlock.class, org.bukkit.craftbukkit.block.impl.CraftGrindstone::new); - register(net.minecraft.world.level.block.HayBlock.class, org.bukkit.craftbukkit.block.impl.CraftHay::new); - register(net.minecraft.world.level.block.HopperBlock.class, org.bukkit.craftbukkit.block.impl.CraftHopper::new); - register(net.minecraft.world.level.block.HugeMushroomBlock.class, org.bukkit.craftbukkit.block.impl.CraftHugeMushroom::new); - register(net.minecraft.world.level.block.FrostedIceBlock.class, org.bukkit.craftbukkit.block.impl.CraftIceFrost::new); - register(net.minecraft.world.level.block.IronBarsBlock.class, org.bukkit.craftbukkit.block.impl.CraftIronBars::new); - register(net.minecraft.world.level.block.JigsawBlock.class, org.bukkit.craftbukkit.block.impl.CraftJigsaw::new); - register(net.minecraft.world.level.block.JukeboxBlock.class, org.bukkit.craftbukkit.block.impl.CraftJukeBox::new); - register(net.minecraft.world.level.block.KelpBlock.class, org.bukkit.craftbukkit.block.impl.CraftKelp::new); - register(net.minecraft.world.level.block.LadderBlock.class, org.bukkit.craftbukkit.block.impl.CraftLadder::new); - register(net.minecraft.world.level.block.LanternBlock.class, org.bukkit.craftbukkit.block.impl.CraftLantern::new); - register(net.minecraft.world.level.block.LeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftLeaves::new); - register(net.minecraft.world.level.block.LecternBlock.class, org.bukkit.craftbukkit.block.impl.CraftLectern::new); - register(net.minecraft.world.level.block.LeverBlock.class, org.bukkit.craftbukkit.block.impl.CraftLever::new); - register(net.minecraft.world.level.block.LoomBlock.class, org.bukkit.craftbukkit.block.impl.CraftLoom::new); - register(net.minecraft.world.level.block.DetectorRailBlock.class, org.bukkit.craftbukkit.block.impl.CraftMinecartDetector::new); - register(net.minecraft.world.level.block.RailBlock.class, org.bukkit.craftbukkit.block.impl.CraftMinecartTrack::new); - register(net.minecraft.world.level.block.MyceliumBlock.class, org.bukkit.craftbukkit.block.impl.CraftMycel::new); - register(net.minecraft.world.level.block.NetherWartBlock.class, org.bukkit.craftbukkit.block.impl.CraftNetherWart::new); - register(net.minecraft.world.level.block.NoteBlock.class, org.bukkit.craftbukkit.block.impl.CraftNote::new); - register(net.minecraft.world.level.block.ObserverBlock.class, org.bukkit.craftbukkit.block.impl.CraftObserver::new); - register(net.minecraft.world.level.block.NetherPortalBlock.class, org.bukkit.craftbukkit.block.impl.CraftPortal::new); - register(net.minecraft.world.level.block.PotatoBlock.class, org.bukkit.craftbukkit.block.impl.CraftPotatoes::new); - register(net.minecraft.world.level.block.PoweredRailBlock.class, org.bukkit.craftbukkit.block.impl.CraftPoweredRail::new); - register(net.minecraft.world.level.block.PressurePlateBlock.class, org.bukkit.craftbukkit.block.impl.CraftPressurePlateBinary::new); - register(net.minecraft.world.level.block.WeightedPressurePlateBlock.class, org.bukkit.craftbukkit.block.impl.CraftPressurePlateWeighted::new); - register(net.minecraft.world.level.block.CarvedPumpkinBlock.class, org.bukkit.craftbukkit.block.impl.CraftPumpkinCarved::new); - register(net.minecraft.world.level.block.ComparatorBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneComparator::new); - register(net.minecraft.world.level.block.RedstoneLampBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneLamp::new); - register(net.minecraft.world.level.block.RedStoneOreBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneOre::new); - register(net.minecraft.world.level.block.RedstoneTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneTorch::new); - register(net.minecraft.world.level.block.RedstoneWallTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneTorchWall::new); - register(net.minecraft.world.level.block.RedStoneWireBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneWire::new); - register(net.minecraft.world.level.block.SugarCaneBlock.class, org.bukkit.craftbukkit.block.impl.CraftReed::new); - register(net.minecraft.world.level.block.RepeaterBlock.class, org.bukkit.craftbukkit.block.impl.CraftRepeater::new); - register(net.minecraft.world.level.block.RespawnAnchorBlock.class, org.bukkit.craftbukkit.block.impl.CraftRespawnAnchor::new); - register(net.minecraft.world.level.block.RotatedPillarBlock.class, org.bukkit.craftbukkit.block.impl.CraftRotatable::new); - register(net.minecraft.world.level.block.SaplingBlock.class, org.bukkit.craftbukkit.block.impl.CraftSapling::new); - register(net.minecraft.world.level.block.ScaffoldingBlock.class, org.bukkit.craftbukkit.block.impl.CraftScaffolding::new); - register(net.minecraft.world.level.block.SeaPickleBlock.class, org.bukkit.craftbukkit.block.impl.CraftSeaPickle::new); - register(net.minecraft.world.level.block.ShulkerBoxBlock.class, org.bukkit.craftbukkit.block.impl.CraftShulkerBox::new); - register(net.minecraft.world.level.block.SkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftSkull::new); - register(net.minecraft.world.level.block.PlayerHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftSkullPlayer::new); - register(net.minecraft.world.level.block.PlayerWallHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftSkullPlayerWall::new); - register(net.minecraft.world.level.block.WallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftSkullWall::new); - register(net.minecraft.world.level.block.SmokerBlock.class, org.bukkit.craftbukkit.block.impl.CraftSmoker::new); - register(net.minecraft.world.level.block.SnowLayerBlock.class, org.bukkit.craftbukkit.block.impl.CraftSnow::new); - register(net.minecraft.world.level.block.FarmBlock.class, org.bukkit.craftbukkit.block.impl.CraftSoil::new); - register(net.minecraft.world.level.block.StainedGlassPaneBlock.class, org.bukkit.craftbukkit.block.impl.CraftStainedGlassPane::new); - register(net.minecraft.world.level.block.StairBlock.class, org.bukkit.craftbukkit.block.impl.CraftStairs::new); - register(net.minecraft.world.level.block.StemBlock.class, org.bukkit.craftbukkit.block.impl.CraftStem::new); - register(net.minecraft.world.level.block.AttachedStemBlock.class, org.bukkit.craftbukkit.block.impl.CraftStemAttached::new); - register(net.minecraft.world.level.block.SlabBlock.class, org.bukkit.craftbukkit.block.impl.CraftStepAbstract::new); - register(net.minecraft.world.level.block.StonecutterBlock.class, org.bukkit.craftbukkit.block.impl.CraftStonecutter::new); - register(net.minecraft.world.level.block.StructureBlock.class, org.bukkit.craftbukkit.block.impl.CraftStructure::new); - register(net.minecraft.world.level.block.SweetBerryBushBlock.class, org.bukkit.craftbukkit.block.impl.CraftSweetBerryBush::new); - register(net.minecraft.world.level.block.TntBlock.class, org.bukkit.craftbukkit.block.impl.CraftTNT::new); - register(net.minecraft.world.level.block.DoublePlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftTallPlant::new); - register(net.minecraft.world.level.block.TallFlowerBlock.class, org.bukkit.craftbukkit.block.impl.CraftTallPlantFlower::new); - register(net.minecraft.world.level.block.TargetBlock.class, org.bukkit.craftbukkit.block.impl.CraftTarget::new); - register(net.minecraft.world.level.block.WallTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftTorchWall::new); - register(net.minecraft.world.level.block.TrapDoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftTrapdoor::new); - register(net.minecraft.world.level.block.TripWireBlock.class, org.bukkit.craftbukkit.block.impl.CraftTripwire::new); - register(net.minecraft.world.level.block.TripWireHookBlock.class, org.bukkit.craftbukkit.block.impl.CraftTripwireHook::new); - register(net.minecraft.world.level.block.TurtleEggBlock.class, org.bukkit.craftbukkit.block.impl.CraftTurtleEgg::new); - register(net.minecraft.world.level.block.TwistingVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftTwistingVines::new); - register(net.minecraft.world.level.block.VineBlock.class, org.bukkit.craftbukkit.block.impl.CraftVine::new); - register(net.minecraft.world.level.block.WallSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallSign::new); - register(net.minecraft.world.level.block.WeepingVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeepingVines::new); - register(net.minecraft.world.level.block.WitherSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftWitherSkull::new); - register(net.minecraft.world.level.block.WitherWallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftWitherSkullWall::new); - register(net.minecraft.world.level.block.BrushableBlock.class, org.bukkit.craftbukkit.block.impl.CraftBrushable::new); register(net.minecraft.world.level.block.CalibratedSculkSensorBlock.class, org.bukkit.craftbukkit.block.impl.CraftCalibratedSculkSensor::new); + register(net.minecraft.world.level.block.CampfireBlock.class, org.bukkit.craftbukkit.block.impl.CraftCampfire::new); register(net.minecraft.world.level.block.CandleBlock.class, org.bukkit.craftbukkit.block.impl.CraftCandle::new); register(net.minecraft.world.level.block.CandleCakeBlock.class, org.bukkit.craftbukkit.block.impl.CraftCandleCake::new); + register(net.minecraft.world.level.block.CarrotBlock.class, org.bukkit.craftbukkit.block.impl.CraftCarrot::new); + register(net.minecraft.world.level.block.CarvedPumpkinBlock.class, org.bukkit.craftbukkit.block.impl.CraftCarvedPumpkin::new); register(net.minecraft.world.level.block.CaveVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftCaveVines::new); register(net.minecraft.world.level.block.CaveVinesPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftCaveVinesPlant::new); register(net.minecraft.world.level.block.CeilingHangingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftCeilingHangingSign::new); + register(net.minecraft.world.level.block.ChainBlock.class, org.bukkit.craftbukkit.block.impl.CraftChain::new); + register(net.minecraft.world.level.block.ChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftChest::new); register(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, org.bukkit.craftbukkit.block.impl.CraftChiseledBookShelf::new); + register(net.minecraft.world.level.block.ChorusFlowerBlock.class, org.bukkit.craftbukkit.block.impl.CraftChorusFlower::new); + register(net.minecraft.world.level.block.ChorusPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftChorusPlant::new); + register(net.minecraft.world.level.block.CocoaBlock.class, org.bukkit.craftbukkit.block.impl.CraftCocoa::new); + register(net.minecraft.world.level.block.CommandBlock.class, org.bukkit.craftbukkit.block.impl.CraftCommandBlock::new); + register(net.minecraft.world.level.block.ComparatorBlock.class, org.bukkit.craftbukkit.block.impl.CraftComparator::new); + register(net.minecraft.world.level.block.ComposterBlock.class, org.bukkit.craftbukkit.block.impl.CraftComposter::new); + register(net.minecraft.world.level.block.ConduitBlock.class, org.bukkit.craftbukkit.block.impl.CraftConduit::new); register(net.minecraft.world.level.block.CopperBulbBlock.class, org.bukkit.craftbukkit.block.impl.CraftCopperBulb::new); + register(net.minecraft.world.level.block.CoralFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralFan::new); + register(net.minecraft.world.level.block.CoralPlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralPlant::new); + register(net.minecraft.world.level.block.CoralWallFanBlock.class, org.bukkit.craftbukkit.block.impl.CraftCoralWallFan::new); register(net.minecraft.world.level.block.CrafterBlock.class, org.bukkit.craftbukkit.block.impl.CraftCrafter::new); register(net.minecraft.world.level.block.CreakingHeartBlock.class, org.bukkit.craftbukkit.block.impl.CraftCreakingHeart::new); + register(net.minecraft.world.level.block.CropBlock.class, org.bukkit.craftbukkit.block.impl.CraftCrop::new); + register(net.minecraft.world.level.block.DaylightDetectorBlock.class, org.bukkit.craftbukkit.block.impl.CraftDaylightDetector::new); register(net.minecraft.world.level.block.DecoratedPotBlock.class, org.bukkit.craftbukkit.block.impl.CraftDecoratedPot::new); + register(net.minecraft.world.level.block.DetectorRailBlock.class, org.bukkit.craftbukkit.block.impl.CraftDetectorRail::new); + register(net.minecraft.world.level.block.DispenserBlock.class, org.bukkit.craftbukkit.block.impl.CraftDispenser::new); + register(net.minecraft.world.level.block.DoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftDoor::new); + register(net.minecraft.world.level.block.DoublePlantBlock.class, org.bukkit.craftbukkit.block.impl.CraftDoublePlant::new); + register(net.minecraft.world.level.block.DropperBlock.class, org.bukkit.craftbukkit.block.impl.CraftDropper::new); + register(net.minecraft.world.level.block.EndPortalFrameBlock.class, org.bukkit.craftbukkit.block.impl.CraftEndPortalFrame::new); + register(net.minecraft.world.level.block.EndRodBlock.class, org.bukkit.craftbukkit.block.impl.CraftEndRod::new); + register(net.minecraft.world.level.block.EnderChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftEnderChest::new); + register(net.minecraft.world.level.block.FarmBlock.class, org.bukkit.craftbukkit.block.impl.CraftFarm::new); + register(net.minecraft.world.level.block.FenceBlock.class, org.bukkit.craftbukkit.block.impl.CraftFence::new); + register(net.minecraft.world.level.block.FenceGateBlock.class, org.bukkit.craftbukkit.block.impl.CraftFenceGate::new); + register(net.minecraft.world.level.block.FireBlock.class, org.bukkit.craftbukkit.block.impl.CraftFire::new); + register(net.minecraft.world.level.block.FrostedIceBlock.class, org.bukkit.craftbukkit.block.impl.CraftFrostedIce::new); + register(net.minecraft.world.level.block.FurnaceBlock.class, org.bukkit.craftbukkit.block.impl.CraftFurnace::new); + register(net.minecraft.world.level.block.GlazedTerracottaBlock.class, org.bukkit.craftbukkit.block.impl.CraftGlazedTerracotta::new); register(net.minecraft.world.level.block.GlowLichenBlock.class, org.bukkit.craftbukkit.block.impl.CraftGlowLichen::new); + register(net.minecraft.world.level.block.GrassBlock.class, org.bukkit.craftbukkit.block.impl.CraftGrass::new); + register(net.minecraft.world.level.block.GrindstoneBlock.class, org.bukkit.craftbukkit.block.impl.CraftGrindstone::new); register(net.minecraft.world.level.block.HangingMossBlock.class, org.bukkit.craftbukkit.block.impl.CraftHangingMoss::new); register(net.minecraft.world.level.block.HangingRootsBlock.class, org.bukkit.craftbukkit.block.impl.CraftHangingRoots::new); + register(net.minecraft.world.level.block.HayBlock.class, org.bukkit.craftbukkit.block.impl.CraftHay::new); register(net.minecraft.world.level.block.HeavyCoreBlock.class, org.bukkit.craftbukkit.block.impl.CraftHeavyCore::new); + register(net.minecraft.world.level.block.HopperBlock.class, org.bukkit.craftbukkit.block.impl.CraftHopper::new); + register(net.minecraft.world.level.block.HugeMushroomBlock.class, org.bukkit.craftbukkit.block.impl.CraftHugeMushroom::new); register(net.minecraft.world.level.block.InfestedRotatedPillarBlock.class, org.bukkit.craftbukkit.block.impl.CraftInfestedRotatedPillar::new); + register(net.minecraft.world.level.block.IronBarsBlock.class, org.bukkit.craftbukkit.block.impl.CraftIronBars::new); + register(net.minecraft.world.level.block.JigsawBlock.class, org.bukkit.craftbukkit.block.impl.CraftJigsaw::new); + register(net.minecraft.world.level.block.JukeboxBlock.class, org.bukkit.craftbukkit.block.impl.CraftJukebox::new); + register(net.minecraft.world.level.block.KelpBlock.class, org.bukkit.craftbukkit.block.impl.CraftKelp::new); + register(net.minecraft.world.level.block.LadderBlock.class, org.bukkit.craftbukkit.block.impl.CraftLadder::new); + register(net.minecraft.world.level.block.LanternBlock.class, org.bukkit.craftbukkit.block.impl.CraftLantern::new); register(net.minecraft.world.level.block.LayeredCauldronBlock.class, org.bukkit.craftbukkit.block.impl.CraftLayeredCauldron::new); + register(net.minecraft.world.level.block.LeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftLeaves::new); + register(net.minecraft.world.level.block.LecternBlock.class, org.bukkit.craftbukkit.block.impl.CraftLectern::new); + register(net.minecraft.world.level.block.LeverBlock.class, org.bukkit.craftbukkit.block.impl.CraftLever::new); register(net.minecraft.world.level.block.LightBlock.class, org.bukkit.craftbukkit.block.impl.CraftLight::new); register(net.minecraft.world.level.block.LightningRodBlock.class, org.bukkit.craftbukkit.block.impl.CraftLightningRod::new); + register(net.minecraft.world.level.block.LiquidBlock.class, org.bukkit.craftbukkit.block.impl.CraftLiquid::new); + register(net.minecraft.world.level.block.LoomBlock.class, org.bukkit.craftbukkit.block.impl.CraftLoom::new); register(net.minecraft.world.level.block.MangroveLeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftMangroveLeaves::new); register(net.minecraft.world.level.block.MangrovePropaguleBlock.class, org.bukkit.craftbukkit.block.impl.CraftMangrovePropagule::new); register(net.minecraft.world.level.block.MangroveRootsBlock.class, org.bukkit.craftbukkit.block.impl.CraftMangroveRoots::new); register(net.minecraft.world.level.block.MossyCarpetBlock.class, org.bukkit.craftbukkit.block.impl.CraftMossyCarpet::new); register(net.minecraft.world.level.block.MultifaceBlock.class, org.bukkit.craftbukkit.block.impl.CraftMultiface::new); + register(net.minecraft.world.level.block.MyceliumBlock.class, org.bukkit.craftbukkit.block.impl.CraftMycelium::new); + register(net.minecraft.world.level.block.NetherPortalBlock.class, org.bukkit.craftbukkit.block.impl.CraftNetherPortal::new); + register(net.minecraft.world.level.block.NetherWartBlock.class, org.bukkit.craftbukkit.block.impl.CraftNetherWart::new); + register(net.minecraft.world.level.block.NoteBlock.class, org.bukkit.craftbukkit.block.impl.CraftNoteBlock::new); + register(net.minecraft.world.level.block.ObserverBlock.class, org.bukkit.craftbukkit.block.impl.CraftObserver::new); register(net.minecraft.world.level.block.ParticleLeavesBlock.class, org.bukkit.craftbukkit.block.impl.CraftParticleLeaves::new); register(net.minecraft.world.level.block.PiglinWallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftPiglinWallSkull::new); register(net.minecraft.world.level.block.PinkPetalsBlock.class, org.bukkit.craftbukkit.block.impl.CraftPinkPetals::new); register(net.minecraft.world.level.block.PitcherCropBlock.class, org.bukkit.craftbukkit.block.impl.CraftPitcherCrop::new); + register(net.minecraft.world.level.block.PlayerHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftPlayerHead::new); + register(net.minecraft.world.level.block.PlayerWallHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftPlayerWallHead::new); register(net.minecraft.world.level.block.PointedDripstoneBlock.class, org.bukkit.craftbukkit.block.impl.CraftPointedDripstone::new); + register(net.minecraft.world.level.block.PotatoBlock.class, org.bukkit.craftbukkit.block.impl.CraftPotato::new); + register(net.minecraft.world.level.block.PoweredRailBlock.class, org.bukkit.craftbukkit.block.impl.CraftPoweredRail::new); + register(net.minecraft.world.level.block.PressurePlateBlock.class, org.bukkit.craftbukkit.block.impl.CraftPressurePlate::new); + register(net.minecraft.world.level.block.RailBlock.class, org.bukkit.craftbukkit.block.impl.CraftRail::new); + register(net.minecraft.world.level.block.RedStoneOreBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedStoneOre::new); + register(net.minecraft.world.level.block.RedStoneWireBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedStoneWire::new); + register(net.minecraft.world.level.block.RedstoneLampBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneLamp::new); + register(net.minecraft.world.level.block.RedstoneTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneTorch::new); + register(net.minecraft.world.level.block.RedstoneWallTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftRedstoneWallTorch::new); + register(net.minecraft.world.level.block.RepeaterBlock.class, org.bukkit.craftbukkit.block.impl.CraftRepeater::new); + register(net.minecraft.world.level.block.RespawnAnchorBlock.class, org.bukkit.craftbukkit.block.impl.CraftRespawnAnchor::new); + register(net.minecraft.world.level.block.RotatedPillarBlock.class, org.bukkit.craftbukkit.block.impl.CraftRotatedPillar::new); + register(net.minecraft.world.level.block.SaplingBlock.class, org.bukkit.craftbukkit.block.impl.CraftSapling::new); + register(net.minecraft.world.level.block.ScaffoldingBlock.class, org.bukkit.craftbukkit.block.impl.CraftScaffolding::new); register(net.minecraft.world.level.block.SculkCatalystBlock.class, org.bukkit.craftbukkit.block.impl.CraftSculkCatalyst::new); register(net.minecraft.world.level.block.SculkSensorBlock.class, org.bukkit.craftbukkit.block.impl.CraftSculkSensor::new); register(net.minecraft.world.level.block.SculkShriekerBlock.class, org.bukkit.craftbukkit.block.impl.CraftSculkShrieker::new); register(net.minecraft.world.level.block.SculkVeinBlock.class, org.bukkit.craftbukkit.block.impl.CraftSculkVein::new); + register(net.minecraft.world.level.block.SeaPickleBlock.class, org.bukkit.craftbukkit.block.impl.CraftSeaPickle::new); + register(net.minecraft.world.level.block.ShulkerBoxBlock.class, org.bukkit.craftbukkit.block.impl.CraftShulkerBox::new); + register(net.minecraft.world.level.block.SkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftSkull::new); + register(net.minecraft.world.level.block.SlabBlock.class, org.bukkit.craftbukkit.block.impl.CraftSlab::new); register(net.minecraft.world.level.block.SmallDripleafBlock.class, org.bukkit.craftbukkit.block.impl.CraftSmallDripleaf::new); + register(net.minecraft.world.level.block.SmokerBlock.class, org.bukkit.craftbukkit.block.impl.CraftSmoker::new); register(net.minecraft.world.level.block.SnifferEggBlock.class, org.bukkit.craftbukkit.block.impl.CraftSnifferEgg::new); + register(net.minecraft.world.level.block.SnowLayerBlock.class, org.bukkit.craftbukkit.block.impl.CraftSnowLayer::new); + register(net.minecraft.world.level.block.SnowyDirtBlock.class, org.bukkit.craftbukkit.block.impl.CraftSnowyDirt::new); + register(net.minecraft.world.level.block.StainedGlassPaneBlock.class, org.bukkit.craftbukkit.block.impl.CraftStainedGlassPane::new); + register(net.minecraft.world.level.block.StairBlock.class, org.bukkit.craftbukkit.block.impl.CraftStair::new); + register(net.minecraft.world.level.block.StandingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftStandingSign::new); + register(net.minecraft.world.level.block.StemBlock.class, org.bukkit.craftbukkit.block.impl.CraftStem::new); + register(net.minecraft.world.level.block.StonecutterBlock.class, org.bukkit.craftbukkit.block.impl.CraftStonecutter::new); + register(net.minecraft.world.level.block.StructureBlock.class, org.bukkit.craftbukkit.block.impl.CraftStructureBlock::new); + register(net.minecraft.world.level.block.SugarCaneBlock.class, org.bukkit.craftbukkit.block.impl.CraftSugarCane::new); + register(net.minecraft.world.level.block.SweetBerryBushBlock.class, org.bukkit.craftbukkit.block.impl.CraftSweetBerryBush::new); + register(net.minecraft.world.level.block.TallFlowerBlock.class, org.bukkit.craftbukkit.block.impl.CraftTallFlower::new); register(net.minecraft.world.level.block.TallSeagrassBlock.class, org.bukkit.craftbukkit.block.impl.CraftTallSeagrass::new); + register(net.minecraft.world.level.block.TargetBlock.class, org.bukkit.craftbukkit.block.impl.CraftTarget::new); + register(net.minecraft.world.level.block.TntBlock.class, org.bukkit.craftbukkit.block.impl.CraftTnt::new); register(net.minecraft.world.level.block.TorchflowerCropBlock.class, org.bukkit.craftbukkit.block.impl.CraftTorchflowerCrop::new); + register(net.minecraft.world.level.block.TrapDoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftTrapDoor::new); + register(net.minecraft.world.level.block.TrappedChestBlock.class, org.bukkit.craftbukkit.block.impl.CraftTrappedChest::new); register(net.minecraft.world.level.block.TrialSpawnerBlock.class, org.bukkit.craftbukkit.block.impl.CraftTrialSpawner::new); + register(net.minecraft.world.level.block.TripWireBlock.class, org.bukkit.craftbukkit.block.impl.CraftTripWire::new); + register(net.minecraft.world.level.block.TripWireHookBlock.class, org.bukkit.craftbukkit.block.impl.CraftTripWireHook::new); + register(net.minecraft.world.level.block.TurtleEggBlock.class, org.bukkit.craftbukkit.block.impl.CraftTurtleEgg::new); + register(net.minecraft.world.level.block.TwistingVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftTwistingVines::new); register(net.minecraft.world.level.block.VaultBlock.class, org.bukkit.craftbukkit.block.impl.CraftVault::new); + register(net.minecraft.world.level.block.VineBlock.class, org.bukkit.craftbukkit.block.impl.CraftVine::new); + register(net.minecraft.world.level.block.WallBannerBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallBanner::new); + register(net.minecraft.world.level.block.WallBlock.class, org.bukkit.craftbukkit.block.impl.CraftWall::new); register(net.minecraft.world.level.block.WallHangingSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallHangingSign::new); + register(net.minecraft.world.level.block.WallSignBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallSign::new); + register(net.minecraft.world.level.block.WallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallSkull::new); + register(net.minecraft.world.level.block.WallTorchBlock.class, org.bukkit.craftbukkit.block.impl.CraftWallTorch::new); register(net.minecraft.world.level.block.WaterloggedTransparentBlock.class, org.bukkit.craftbukkit.block.impl.CraftWaterloggedTransparent::new); register(net.minecraft.world.level.block.WeatheringCopperBulbBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperBulb::new); register(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperDoor::new); @@ -538,9 +522,14 @@ public class CraftBlockData implements BlockData { register(net.minecraft.world.level.block.WeatheringCopperSlabBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperSlab::new); register(net.minecraft.world.level.block.WeatheringCopperStairBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperStair::new); register(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeatheringCopperTrapDoor::new); - register(net.minecraft.world.level.block.piston.PistonBaseBlock.class, org.bukkit.craftbukkit.block.impl.CraftPiston::new); - register(net.minecraft.world.level.block.piston.PistonHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftPistonExtension::new); - register(net.minecraft.world.level.block.piston.MovingPistonBlock.class, org.bukkit.craftbukkit.block.impl.CraftPistonMoving::new); + register(net.minecraft.world.level.block.WeepingVinesBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeepingVines::new); + register(net.minecraft.world.level.block.WeightedPressurePlateBlock.class, org.bukkit.craftbukkit.block.impl.CraftWeightedPressurePlate::new); + register(net.minecraft.world.level.block.WitherSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftWitherSkull::new); + register(net.minecraft.world.level.block.WitherWallSkullBlock.class, org.bukkit.craftbukkit.block.impl.CraftWitherWallSkull::new); + register(net.minecraft.world.level.block.piston.MovingPistonBlock.class, org.bukkit.craftbukkit.block.impl.CraftMovingPiston::new); + register(net.minecraft.world.level.block.piston.PistonBaseBlock.class, org.bukkit.craftbukkit.block.impl.CraftPistonBase::new); + register(net.minecraft.world.level.block.piston.PistonHeadBlock.class, org.bukkit.craftbukkit.block.impl.CraftPistonHead::new); + // End generate - CraftBlockData#MAP // } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBrushable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBrushable.java deleted file mode 100644 index dfc651e5b6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftBrushable.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Brushable; - -public abstract class CraftBrushable extends CraftBlockData implements Brushable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DUSTED = getInteger("dusted"); - - @Override - public int getDusted() { - return this.get(CraftBrushable.DUSTED); - } - - @Override - public void setDusted(int dusted) { - this.set(CraftBrushable.DUSTED, dusted); - } - - @Override - public int getMaximumDusted() { - return getMax(CraftBrushable.DUSTED); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftDirectional.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftDirectional.java deleted file mode 100644 index 88b765e2fa..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftDirectional.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Directional; - -public abstract class CraftDirectional extends CraftBlockData implements Directional { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum("facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftDirectional.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftDirectional.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftDirectional.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftFaceAttachable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftFaceAttachable.java deleted file mode 100644 index 9cf2eb595c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftFaceAttachable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.FaceAttachable; - -public abstract class CraftFaceAttachable extends CraftBlockData implements FaceAttachable { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACH_FACE = getEnum("face"); - - @Override - public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { - return this.get(CraftFaceAttachable.ATTACH_FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); - } - - @Override - public void setAttachedFace(org.bukkit.block.data.FaceAttachable.AttachedFace face) { - this.set(CraftFaceAttachable.ATTACH_FACE, face); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHangable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHangable.java deleted file mode 100644 index 5b99b7225c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHangable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Hangable; - -public abstract class CraftHangable extends CraftBlockData implements Hangable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HANGING = getBoolean("hanging"); - - @Override - public boolean isHanging() { - return this.get(CraftHangable.HANGING); - } - - @Override - public void setHanging(boolean hanging) { - this.set(CraftHangable.HANGING, hanging); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHatchable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHatchable.java deleted file mode 100644 index 0e23223624..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftHatchable.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Hatchable; - -public abstract class CraftHatchable extends CraftBlockData implements Hatchable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty HATCH = getInteger("hatch"); - - @Override - public int getHatch() { - return this.get(CraftHatchable.HATCH); - } - - @Override - public void setHatch(int hatch) { - this.set(CraftHatchable.HATCH, hatch); - } - - @Override - public int getMaximumHatch() { - return getMax(CraftHatchable.HATCH); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLevelled.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLevelled.java deleted file mode 100644 index a462418296..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLevelled.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Levelled; - -public abstract class CraftLevelled extends CraftBlockData implements Levelled { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LEVEL = getInteger("level"); - - @Override - public int getLevel() { - return this.get(CraftLevelled.LEVEL); - } - - @Override - public void setLevel(int level) { - this.set(CraftLevelled.LEVEL, level); - } - - @Override - public int getMaximumLevel() { - return getMax(CraftLevelled.LEVEL); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLightable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLightable.java deleted file mode 100644 index ca2b780037..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftLightable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Lightable; - -public abstract class CraftLightable extends CraftBlockData implements Lightable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean("lit"); - - @Override - public boolean isLit() { - return this.get(CraftLightable.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftLightable.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftMultipleFacing.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftMultipleFacing.java deleted file mode 100644 index 2d0af804bc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftMultipleFacing.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.MultipleFacing; - -public abstract class CraftMultipleFacing extends CraftBlockData implements MultipleFacing { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean("north", true), getBoolean("east", true), getBoolean("south", true), getBoolean("west", true), getBoolean("up", true), getBoolean("down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftMultipleFacing.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftMultipleFacing.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftMultipleFacing.FACES.length; i++) { - if (CraftMultipleFacing.FACES[i] != null && this.get(CraftMultipleFacing.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftMultipleFacing.FACES.length; i++) { - if (CraftMultipleFacing.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOpenable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOpenable.java deleted file mode 100644 index 46a0e3e4cb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOpenable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Openable; - -public abstract class CraftOpenable extends CraftBlockData implements Openable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean("open"); - - @Override - public boolean isOpen() { - return this.get(CraftOpenable.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftOpenable.OPEN, open); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOrientable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOrientable.java deleted file mode 100644 index 55d96a0dc4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftOrientable.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Orientable; - -public class CraftOrientable extends CraftBlockData implements Orientable { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum("axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftOrientable.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftOrientable.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftOrientable.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftPowerable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftPowerable.java deleted file mode 100644 index 70c58e0351..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftPowerable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Powerable; - -public abstract class CraftPowerable extends CraftBlockData implements Powerable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean("powered"); - - @Override - public boolean isPowered() { - return this.get(CraftPowerable.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftPowerable.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRail.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRail.java deleted file mode 100644 index 8a4937b38c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRail.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Rail; - -public abstract class CraftRail extends CraftBlockData implements Rail { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum("shape"); - - @Override - public org.bukkit.block.data.Rail.Shape getShape() { - return this.get(CraftRail.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.Rail.Shape shape) { - this.set(CraftRail.SHAPE, shape); - } - - @Override - public java.util.Set getShapes() { - return this.getValues(CraftRail.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRotatable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRotatable.java deleted file mode 100644 index 665b52ad2a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftRotatable.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Rotatable; - -public abstract class CraftRotatable extends CraftBlockData implements Rotatable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger("rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftRotatable.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftRotatable.ROTATION, val); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftSnowable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftSnowable.java deleted file mode 100644 index 1f5c02feb8..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftSnowable.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Snowable; - -public abstract class CraftSnowable extends CraftBlockData implements Snowable { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SNOWY = getBoolean("snowy"); - - @Override - public boolean isSnowy() { - return this.get(CraftSnowable.SNOWY); - } - - @Override - public void setSnowy(boolean snowy) { - this.set(CraftSnowable.SNOWY, snowy); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftWaterlogged.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftWaterlogged.java deleted file mode 100644 index 73679510b9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/CraftWaterlogged.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.bukkit.craftbukkit.block.data; - -import org.bukkit.block.data.Waterlogged; - -public abstract class CraftWaterlogged extends CraftBlockData implements Waterlogged { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean("waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWaterlogged.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWaterlogged.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBamboo.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBamboo.java deleted file mode 100644 index 2e657e4bcf..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBamboo.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Bamboo; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBamboo extends CraftBlockData implements Bamboo { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty LEAVES = getEnum("leaves"); - - @Override - public org.bukkit.block.data.type.Bamboo.Leaves getLeaves() { - return this.get(CraftBamboo.LEAVES, org.bukkit.block.data.type.Bamboo.Leaves.class); - } - - @Override - public void setLeaves(org.bukkit.block.data.type.Bamboo.Leaves leaves) { - this.set(CraftBamboo.LEAVES, leaves); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java deleted file mode 100644 index f636a6b691..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBed.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Bed; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBed extends CraftBlockData implements Bed { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty PART = getEnum("part"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OCCUPIED = getBoolean("occupied"); - - @Override - public org.bukkit.block.data.type.Bed.Part getPart() { - return this.get(CraftBed.PART, org.bukkit.block.data.type.Bed.Part.class); - } - - @Override - public void setPart(org.bukkit.block.data.type.Bed.Part part) { - this.set(CraftBed.PART, part); - } - - @Override - public boolean isOccupied() { - return this.get(CraftBed.OCCUPIED); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBeehive.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBeehive.java deleted file mode 100644 index cf4185a309..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBeehive.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Beehive; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBeehive extends CraftBlockData implements Beehive { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty HONEY_LEVEL = getInteger("honey_level"); - - @Override - public int getHoneyLevel() { - return this.get(CraftBeehive.HONEY_LEVEL); - } - - @Override - public void setHoneyLevel(int honeyLevel) { - this.set(CraftBeehive.HONEY_LEVEL, honeyLevel); - } - - @Override - public int getMaximumHoneyLevel() { - return getMax(CraftBeehive.HONEY_LEVEL); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBell.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBell.java deleted file mode 100644 index 7ffb256c33..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBell.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Bell; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBell extends CraftBlockData implements Bell { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACHMENT = getEnum("attachment"); - - @Override - public org.bukkit.block.data.type.Bell.Attachment getAttachment() { - return this.get(CraftBell.ATTACHMENT, org.bukkit.block.data.type.Bell.Attachment.class); - } - - @Override - public void setAttachment(org.bukkit.block.data.type.Bell.Attachment leaves) { - this.set(CraftBell.ATTACHMENT, leaves); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBigDripleaf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBigDripleaf.java deleted file mode 100644 index 25bbb744a8..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBigDripleaf.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.BigDripleaf; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBigDripleaf extends CraftBlockData implements BigDripleaf { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TILT = getEnum("tilt"); - - @Override - public Tilt getTilt() { - return this.get(CraftBigDripleaf.TILT, org.bukkit.block.data.type.BigDripleaf.Tilt.class); - } - - @Override - public void setTilt(org.bukkit.block.data.type.BigDripleaf.Tilt tilt) { - this.set(CraftBigDripleaf.TILT, tilt); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrewingStand.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrewingStand.java deleted file mode 100644 index fceebad37f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrewingStand.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.BrewingStand; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBrewingStand extends CraftBlockData implements BrewingStand { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] HAS_BOTTLE = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean("has_bottle_0"), getBoolean("has_bottle_1"), getBoolean("has_bottle_2") - }; - - @Override - public boolean hasBottle(int bottle) { - return this.get(CraftBrewingStand.HAS_BOTTLE[bottle]); - } - - @Override - public void setBottle(int bottle, boolean has) { - this.set(CraftBrewingStand.HAS_BOTTLE[bottle], has); - } - - @Override - public java.util.Set getBottles() { - com.google.common.collect.ImmutableSet.Builder bottles = com.google.common.collect.ImmutableSet.builder(); - - for (int index = 0; index < this.getMaximumBottles(); index++) { - if (this.hasBottle(index)) { - bottles.add(index); - } - } - - return bottles.build(); - } - - @Override - public int getMaximumBottles() { - return CraftBrewingStand.HAS_BOTTLE.length; - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrushable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrushable.java deleted file mode 100644 index 52f053b7ce..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBrushable.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.Brushable; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBrushable extends CraftBlockData implements Brushable { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DUSTED = getInteger("dusted"); - - @Override - public int getDusted() { - return this.get(CraftBrushable.DUSTED); - } - - @Override - public void setDusted(int dusted) { - this.set(CraftBrushable.DUSTED, dusted); - } - - @Override - public int getMaximumDusted() { - return getMax(CraftBrushable.DUSTED); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBubbleColumn.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBubbleColumn.java deleted file mode 100644 index dd9661a5c6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftBubbleColumn.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.BubbleColumn; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftBubbleColumn extends CraftBlockData implements BubbleColumn { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty DRAG = getBoolean("drag"); - - @Override - public boolean isDrag() { - return this.get(CraftBubbleColumn.DRAG); - } - - @Override - public void setDrag(boolean drag) { - this.set(CraftBubbleColumn.DRAG, drag); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCake.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCake.java deleted file mode 100644 index d33ab8bc33..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCake.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Cake; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCake extends CraftBlockData implements Cake { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty BITES = getInteger("bites"); - - @Override - public int getBites() { - return this.get(CraftCake.BITES); - } - - @Override - public void setBites(int bites) { - this.set(CraftCake.BITES, bites); - } - - @Override - public int getMaximumBites() { - return getMax(CraftCake.BITES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCampfire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCampfire.java deleted file mode 100644 index cd69fa35be..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCampfire.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Campfire; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCampfire extends CraftBlockData implements Campfire { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SIGNAL_FIRE = getBoolean("signal_fire"); - - @Override - public boolean isSignalFire() { - return this.get(CraftCampfire.SIGNAL_FIRE); - } - - @Override - public void setSignalFire(boolean signalFire) { - this.set(CraftCampfire.SIGNAL_FIRE, signalFire); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCandle.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCandle.java deleted file mode 100644 index 8a3505009d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCandle.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Candle; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCandle extends CraftBlockData implements Candle { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty CANDLES = getInteger("candles"); - - @Override - public int getCandles() { - return this.get(CraftCandle.CANDLES); - } - - @Override - public void setCandles(int candles) { - this.set(CraftCandle.CANDLES, candles); - } - - @Override - public int getMaximumCandles() { - return getMax(CraftCandle.CANDLES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCaveVinesPlant.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCaveVinesPlant.java deleted file mode 100644 index 52c032e5fb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCaveVinesPlant.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.CaveVinesPlant; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCaveVinesPlant extends CraftBlockData implements CaveVinesPlant { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BERRIES = getBoolean("berries"); - - @Override - public boolean isBerries() { - return this.get(CraftCaveVinesPlant.BERRIES); - } - - @Override - public void setBerries(boolean berries) { - this.set(CraftCaveVinesPlant.BERRIES, berries); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChest.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChest.java deleted file mode 100644 index 02ddf75b61..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChest.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Chest; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftChest extends CraftBlockData implements Chest { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum("type"); - - @Override - public org.bukkit.block.data.type.Chest.Type getType() { - return this.get(CraftChest.TYPE, org.bukkit.block.data.type.Chest.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Chest.Type type) { - this.set(CraftChest.TYPE, type); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChiseledBookshelf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChiseledBookshelf.java deleted file mode 100644 index 49a5c5c6b5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftChiseledBookshelf.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.ChiseledBookshelf; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftChiseledBookshelf extends CraftBlockData implements ChiseledBookshelf { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] SLOT_OCCUPIED = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean("slot_0_occupied"), getBoolean("slot_1_occupied"), getBoolean("slot_2_occupied"), - getBoolean("slot_3_occupied"), getBoolean("slot_4_occupied"), getBoolean("slot_5_occupied") - }; - - @Override - public boolean isSlotOccupied(int slot) { - return this.get(CraftChiseledBookshelf.SLOT_OCCUPIED[slot]); - } - - @Override - public void setSlotOccupied(int slot, boolean has) { - this.set(CraftChiseledBookshelf.SLOT_OCCUPIED[slot], has); - } - - @Override - public java.util.Set getOccupiedSlots() { - com.google.common.collect.ImmutableSet.Builder slots = com.google.common.collect.ImmutableSet.builder(); - - for (int index = 0; index < this.getMaximumOccupiedSlots(); index++) { - if (this.isSlotOccupied(index)) { - slots.add(index); - } - } - - return slots.build(); - } - - @Override - public int getMaximumOccupiedSlots() { - return CraftChiseledBookshelf.SLOT_OCCUPIED.length; - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCommandBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCommandBlock.java deleted file mode 100644 index 453573189b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCommandBlock.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.CommandBlock; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCommandBlock extends CraftBlockData implements CommandBlock { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CONDITIONAL = getBoolean("conditional"); - - @Override - public boolean isConditional() { - return this.get(CraftCommandBlock.CONDITIONAL); - } - - @Override - public void setConditional(boolean conditional) { - this.set(CraftCommandBlock.CONDITIONAL, conditional); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftComparator.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftComparator.java deleted file mode 100644 index d9bc382369..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftComparator.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Comparator; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftComparator extends CraftBlockData implements Comparator { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty MODE = getEnum("mode"); - - @Override - public org.bukkit.block.data.type.Comparator.Mode getMode() { - return this.get(CraftComparator.MODE, org.bukkit.block.data.type.Comparator.Mode.class); - } - - @Override - public void setMode(org.bukkit.block.data.type.Comparator.Mode mode) { - this.set(CraftComparator.MODE, mode); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCrafter.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCrafter.java deleted file mode 100644 index b42a212b03..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCrafter.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Crafter; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCrafter extends CraftBlockData implements Crafter { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CRAFTING = getBoolean("crafting"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TRIGGERED = getBoolean("triggered"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty ORIENTATION = getEnum("orientation"); - - @Override - public boolean isCrafting() { - return this.get(CraftCrafter.CRAFTING); - } - - @Override - public void setCrafting(boolean crafting) { - this.set(CraftCrafter.CRAFTING, crafting); - } - - @Override - public boolean isTriggered() { - return this.get(CraftCrafter.TRIGGERED); - } - - @Override - public void setTriggered(boolean triggered) { - this.set(CraftCrafter.TRIGGERED, triggered); - } - - @Override - public org.bukkit.block.data.type.Crafter.Orientation getOrientation() { - return this.get(CraftCrafter.ORIENTATION, org.bukkit.block.data.type.Crafter.Orientation.class); - } - - @Override - public void setOrientation(org.bukkit.block.data.type.Crafter.Orientation orientation) { - this.set(CraftCrafter.ORIENTATION, orientation); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCreakingHeart.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCreakingHeart.java deleted file mode 100644 index 03510587af..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftCreakingHeart.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.CreakingHeart; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftCreakingHeart extends CraftBlockData implements CreakingHeart { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ACTIVE = getBoolean("active"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty NATURAL = getBoolean("natural"); - - @Override - public boolean isActive() { - return this.get(CraftCreakingHeart.ACTIVE); - } - - @Override - public void setActive(boolean active) { - this.set(CraftCreakingHeart.ACTIVE, active); - } - - @Override - public boolean isNatural() { - return this.get(CraftCreakingHeart.NATURAL); - } - - @Override - public void setNatural(boolean natural) { - this.set(CraftCreakingHeart.NATURAL, natural); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDaylightDetector.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDaylightDetector.java deleted file mode 100644 index 87d092483a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDaylightDetector.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.DaylightDetector; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftDaylightDetector extends CraftBlockData implements DaylightDetector { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty INVERTED = getBoolean("inverted"); - - @Override - public boolean isInverted() { - return this.get(CraftDaylightDetector.INVERTED); - } - - @Override - public void setInverted(boolean inverted) { - this.set(CraftDaylightDetector.INVERTED, inverted); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDispenser.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDispenser.java deleted file mode 100644 index 911d02e8da..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDispenser.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Dispenser; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftDispenser extends CraftBlockData implements Dispenser { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TRIGGERED = getBoolean("triggered"); - - @Override - public boolean isTriggered() { - return this.get(CraftDispenser.TRIGGERED); - } - - @Override - public void setTriggered(boolean triggered) { - this.set(CraftDispenser.TRIGGERED, triggered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDoor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDoor.java deleted file mode 100644 index 9563cb7994..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftDoor.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Door; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftDoor extends CraftBlockData implements Door { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HINGE = getEnum("hinge"); - - @Override - public org.bukkit.block.data.type.Door.Hinge getHinge() { - return this.get(CraftDoor.HINGE, org.bukkit.block.data.type.Door.Hinge.class); - } - - @Override - public void setHinge(org.bukkit.block.data.type.Door.Hinge hinge) { - this.set(CraftDoor.HINGE, hinge); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftEndPortalFrame.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftEndPortalFrame.java deleted file mode 100644 index d974174864..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftEndPortalFrame.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.EndPortalFrame; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftEndPortalFrame extends CraftBlockData implements EndPortalFrame { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty EYE = getBoolean("eye"); - - @Override - public boolean hasEye() { - return this.get(CraftEndPortalFrame.EYE); - } - - @Override - public void setEye(boolean eye) { - this.set(CraftEndPortalFrame.EYE, eye); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftFarmland.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftFarmland.java deleted file mode 100644 index b90c918866..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftFarmland.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Farmland; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftFarmland extends CraftBlockData implements Farmland { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty MOISTURE = getInteger("moisture"); - - @Override - public int getMoisture() { - return this.get(CraftFarmland.MOISTURE); - } - - @Override - public void setMoisture(int moisture) { - this.set(CraftFarmland.MOISTURE, moisture); - } - - @Override - public int getMaximumMoisture() { - return getMax(CraftFarmland.MOISTURE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftGate.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftGate.java deleted file mode 100644 index cd2350f5a7..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftGate.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Gate; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftGate extends CraftBlockData implements Gate { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty IN_WALL = getBoolean("in_wall"); - - @Override - public boolean isInWall() { - return this.get(CraftGate.IN_WALL); - } - - @Override - public void setInWall(boolean inWall) { - this.set(CraftGate.IN_WALL, inWall); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHangingMoss.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHangingMoss.java deleted file mode 100644 index fe8699ed73..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHangingMoss.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.HangingMoss; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftHangingMoss extends CraftBlockData implements HangingMoss { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TIP = getBoolean("tip"); - - @Override - public boolean isTip() { - return this.get(CraftHangingMoss.TIP); - } - - @Override - public void setTip(boolean tip) { - this.set(CraftHangingMoss.TIP, tip); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHopper.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHopper.java deleted file mode 100644 index 2da0ea263d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftHopper.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Hopper; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftHopper extends CraftBlockData implements Hopper { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ENABLED = getBoolean("enabled"); - - @Override - public boolean isEnabled() { - return this.get(CraftHopper.ENABLED); - } - - @Override - public void setEnabled(boolean enabled) { - this.set(CraftHopper.ENABLED, enabled); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJigsaw.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJigsaw.java deleted file mode 100644 index 0c88bb8248..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJigsaw.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Jigsaw; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftJigsaw extends CraftBlockData implements Jigsaw { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ORIENTATION = getEnum("orientation"); - - @Override - public org.bukkit.block.data.type.Jigsaw.Orientation getOrientation() { - return this.get(CraftJigsaw.ORIENTATION, org.bukkit.block.data.type.Jigsaw.Orientation.class); - } - - @Override - public void setOrientation(org.bukkit.block.data.type.Jigsaw.Orientation orientation) { - this.set(CraftJigsaw.ORIENTATION, orientation); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJukebox.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJukebox.java deleted file mode 100644 index 2f22f99bc0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftJukebox.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Jukebox; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftJukebox extends CraftBlockData implements Jukebox { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HAS_RECORD = getBoolean("has_record"); - - @Override - public boolean hasRecord() { - return this.get(CraftJukebox.HAS_RECORD); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLeaves.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLeaves.java deleted file mode 100644 index 832c984bc9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLeaves.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Leaves; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftLeaves extends CraftBlockData implements Leaves { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger("distance"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty PERSISTENT = getBoolean("persistent"); - - @Override - public boolean isPersistent() { - return this.get(CraftLeaves.PERSISTENT); - } - - @Override - public void setPersistent(boolean persistent) { - this.set(CraftLeaves.PERSISTENT, persistent); - } - - @Override - public int getDistance() { - return this.get(CraftLeaves.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftLeaves.DISTANCE, distance); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLectern.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLectern.java deleted file mode 100644 index dcbe832b19..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftLectern.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Lectern; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftLectern extends CraftBlockData implements Lectern { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HAS_BOOK = getBoolean("has_book"); - - @Override - public boolean hasBook() { - return this.get(CraftLectern.HAS_BOOK); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftMossyCarpet.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftMossyCarpet.java deleted file mode 100644 index 80a646334e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftMossyCarpet.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.MossyCarpet; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftMossyCarpet extends CraftBlockData implements MossyCarpet { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BOTTOM = getBoolean("bottom"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty[] HEIGHTS = new net.minecraft.world.level.block.state.properties.EnumProperty[]{ - getEnum("north"), getEnum("east"), getEnum("south"), getEnum("west") - }; - - @Override - public boolean isBottom() { - return this.get(CraftMossyCarpet.BOTTOM); - } - - @Override - public void setBottom(boolean up) { - this.set(CraftMossyCarpet.BOTTOM, up); - } - - @Override - public org.bukkit.block.data.type.MossyCarpet.Height getHeight(org.bukkit.block.BlockFace face) { - return this.get(CraftMossyCarpet.HEIGHTS[face.ordinal()], org.bukkit.block.data.type.MossyCarpet.Height.class); - } - - @Override - public void setHeight(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.MossyCarpet.Height height) { - this.set(CraftMossyCarpet.HEIGHTS[face.ordinal()], height); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftNoteBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftNoteBlock.java deleted file mode 100644 index c44d33fb3a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftNoteBlock.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.NoteBlock; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftNoteBlock extends CraftBlockData implements NoteBlock { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty INSTRUMENT = getEnum("instrument"); - private static final net.minecraft.world.level.block.state.properties.IntegerProperty NOTE = getInteger("note"); - - @Override - public org.bukkit.Instrument getInstrument() { - return this.get(CraftNoteBlock.INSTRUMENT, org.bukkit.Instrument.class); - } - - @Override - public void setInstrument(org.bukkit.Instrument instrument) { - this.set(CraftNoteBlock.INSTRUMENT, instrument); - } - - @Override - public org.bukkit.Note getNote() { - return new org.bukkit.Note(this.get(CraftNoteBlock.NOTE)); - } - - @Override - public void setNote(org.bukkit.Note note) { - this.set(CraftNoteBlock.NOTE, (int) note.getId()); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPinkPetals.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPinkPetals.java deleted file mode 100644 index 97fd7e4a39..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPinkPetals.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.PinkPetals; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftPinkPetals extends CraftBlockData implements PinkPetals { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty FLOWER_AMOUNT = getInteger("flower_amount"); - - @Override - public int getFlowerAmount() { - return this.get(CraftPinkPetals.FLOWER_AMOUNT); - } - - @Override - public void setFlowerAmount(int flower_amount) { - this.set(CraftPinkPetals.FLOWER_AMOUNT, flower_amount); - } - - @Override - public int getMaximumFlowerAmount() { - return getMax(CraftPinkPetals.FLOWER_AMOUNT); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPiston.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPiston.java deleted file mode 100644 index 193cf626c4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPiston.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Piston; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftPiston extends CraftBlockData implements Piston { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty EXTENDED = getBoolean("extended"); - - @Override - public boolean isExtended() { - return this.get(CraftPiston.EXTENDED); - } - - @Override - public void setExtended(boolean extended) { - this.set(CraftPiston.EXTENDED, extended); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPistonHead.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPistonHead.java deleted file mode 100644 index 07447b9550..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPistonHead.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.PistonHead; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftPistonHead extends CraftBlockData implements PistonHead { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SHORT = getBoolean("short"); - - @Override - public boolean isShort() { - return this.get(CraftPistonHead.SHORT); - } - - @Override - public void setShort(boolean _short) { - this.set(CraftPistonHead.SHORT, _short); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPointedDripstone.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPointedDripstone.java deleted file mode 100644 index bfff4e16b2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftPointedDripstone.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.PointedDripstone; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftPointedDripstone extends CraftBlockData implements PointedDripstone { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty VERTICAL_DIRECTION = getEnum("vertical_direction"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty THICKNESS = getEnum("thickness"); - - @Override - public org.bukkit.block.BlockFace getVerticalDirection() { - return this.get(CraftPointedDripstone.VERTICAL_DIRECTION, org.bukkit.block.BlockFace.class); - } - - @Override - public void setVerticalDirection(org.bukkit.block.BlockFace direction) { - this.set(CraftPointedDripstone.VERTICAL_DIRECTION, direction); - } - - @Override - public java.util.Set getVerticalDirections() { - return this.getValues(CraftPointedDripstone.VERTICAL_DIRECTION, org.bukkit.block.BlockFace.class); - } - - @Override - public org.bukkit.block.data.type.PointedDripstone.Thickness getThickness() { - return this.get(CraftPointedDripstone.THICKNESS, org.bukkit.block.data.type.PointedDripstone.Thickness.class); - } - - @Override - public void setThickness(org.bukkit.block.data.type.PointedDripstone.Thickness thickness) { - this.set(CraftPointedDripstone.THICKNESS, thickness); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRedstoneWire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRedstoneWire.java deleted file mode 100644 index 9d1f4d0b20..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRedstoneWire.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.RedstoneWire; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftRedstoneWire extends CraftBlockData implements RedstoneWire { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty NORTH = getEnum("north"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty EAST = getEnum("east"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty SOUTH = getEnum("south"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty WEST = getEnum("west"); - - @Override - public org.bukkit.block.data.type.RedstoneWire.Connection getFace(org.bukkit.block.BlockFace face) { - switch (face) { - case NORTH: - return this.get(CraftRedstoneWire.NORTH, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case EAST: - return this.get(CraftRedstoneWire.EAST, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case SOUTH: - return this.get(CraftRedstoneWire.SOUTH, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case WEST: - return this.get(CraftRedstoneWire.WEST, org.bukkit.block.data.type.RedstoneWire.Connection.class); - default: - throw new IllegalArgumentException("Cannot have face " + face); - } - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.RedstoneWire.Connection connection) { - switch (face) { - case NORTH: - this.set(CraftRedstoneWire.NORTH, connection); - break; - case EAST: - this.set(CraftRedstoneWire.EAST, connection); - break; - case SOUTH: - this.set(CraftRedstoneWire.SOUTH, connection); - break; - case WEST: - this.set(CraftRedstoneWire.WEST, connection); - break; - default: - throw new IllegalArgumentException("Cannot have face " + face); - } - } - - @Override - public java.util.Set getAllowedFaces() { - return com.google.common.collect.ImmutableSet.of(org.bukkit.block.BlockFace.NORTH, org.bukkit.block.BlockFace.EAST, org.bukkit.block.BlockFace.SOUTH, org.bukkit.block.BlockFace.WEST); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRepeater.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRepeater.java deleted file mode 100644 index 8f2f55f917..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRepeater.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Repeater; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftRepeater extends CraftBlockData implements Repeater { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DELAY = getInteger("delay"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LOCKED = getBoolean("locked"); - - @Override - public int getDelay() { - return this.get(CraftRepeater.DELAY); - } - - @Override - public void setDelay(int delay) { - this.set(CraftRepeater.DELAY, delay); - } - - @Override - public int getMinimumDelay() { - return getMin(CraftRepeater.DELAY); - } - - @Override - public int getMaximumDelay() { - return getMax(CraftRepeater.DELAY); - } - - @Override - public boolean isLocked() { - return this.get(CraftRepeater.LOCKED); - } - - @Override - public void setLocked(boolean locked) { - this.set(CraftRepeater.LOCKED, locked); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRespawnAnchor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRespawnAnchor.java deleted file mode 100644 index eb4f393801..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftRespawnAnchor.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.RespawnAnchor; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftRespawnAnchor extends CraftBlockData implements RespawnAnchor { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty CHARGES = getInteger("charges"); - - @Override - public int getCharges() { - return this.get(CraftRespawnAnchor.CHARGES); - } - - @Override - public void setCharges(int charges) { - this.set(CraftRespawnAnchor.CHARGES, charges); - } - - @Override - public int getMaximumCharges() { - return getMax(CraftRespawnAnchor.CHARGES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSapling.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSapling.java deleted file mode 100644 index a0a4249e7f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSapling.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Sapling; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSapling extends CraftBlockData implements Sapling { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty STAGE = getInteger("stage"); - - @Override - public int getStage() { - return this.get(CraftSapling.STAGE); - } - - @Override - public void setStage(int stage) { - this.set(CraftSapling.STAGE, stage); - } - - @Override - public int getMaximumStage() { - return getMax(CraftSapling.STAGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftScaffolding.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftScaffolding.java deleted file mode 100644 index d8f4ddf8cf..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftScaffolding.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Scaffolding; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftScaffolding extends CraftBlockData implements Scaffolding { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BOTTOM = getBoolean("bottom"); - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger("distance"); - - @Override - public boolean isBottom() { - return this.get(CraftScaffolding.BOTTOM); - } - - @Override - public void setBottom(boolean bottom) { - this.set(CraftScaffolding.BOTTOM, bottom); - } - - @Override - public int getDistance() { - return this.get(CraftScaffolding.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftScaffolding.DISTANCE, distance); - } - - @Override - public int getMaximumDistance() { - return getMax(CraftScaffolding.DISTANCE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkCatalyst.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkCatalyst.java deleted file mode 100644 index 8b714e0371..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkCatalyst.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.SculkCatalyst; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSculkCatalyst extends CraftBlockData implements SculkCatalyst { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BLOOM = getBoolean("bloom"); - - @Override - public boolean isBloom() { - return this.get(CraftSculkCatalyst.BLOOM); - } - - @Override - public void setBloom(boolean bloom) { - this.set(CraftSculkCatalyst.BLOOM, bloom); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkSensor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkSensor.java deleted file mode 100644 index de48a235af..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkSensor.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.SculkSensor; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSculkSensor extends CraftBlockData implements SculkSensor { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty PHASE = getEnum("sculk_sensor_phase"); - - @Override - public org.bukkit.block.data.type.SculkSensor.Phase getPhase() { - return this.get(CraftSculkSensor.PHASE, org.bukkit.block.data.type.SculkSensor.Phase.class); - } - - @Override - public void setPhase(org.bukkit.block.data.type.SculkSensor.Phase phase) { - this.set(CraftSculkSensor.PHASE, phase); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkShrieker.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkShrieker.java deleted file mode 100644 index a3fb0f17aa..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSculkShrieker.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.SculkShrieker; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSculkShrieker extends CraftBlockData implements SculkShrieker { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CAN_SUMMON = getBoolean("can_summon"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SHRIEKING = getBoolean("shrieking"); - - @Override - public boolean isCanSummon() { - return this.get(CraftSculkShrieker.CAN_SUMMON); - } - - @Override - public void setCanSummon(boolean can_summon) { - this.set(CraftSculkShrieker.CAN_SUMMON, can_summon); - } - - @Override - public boolean isShrieking() { - return this.get(CraftSculkShrieker.SHRIEKING); - } - - @Override - public void setShrieking(boolean shrieking) { - this.set(CraftSculkShrieker.SHRIEKING, shrieking); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSeaPickle.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSeaPickle.java deleted file mode 100644 index 71ab0b24a7..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSeaPickle.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.SeaPickle; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSeaPickle extends CraftBlockData implements SeaPickle { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty PICKLES = getInteger("pickles"); - - @Override - public int getPickles() { - return this.get(CraftSeaPickle.PICKLES); - } - - @Override - public void setPickles(int pickles) { - this.set(CraftSeaPickle.PICKLES, pickles); - } - - @Override - public int getMinimumPickles() { - return getMin(CraftSeaPickle.PICKLES); - } - - @Override - public int getMaximumPickles() { - return getMax(CraftSeaPickle.PICKLES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSlab.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSlab.java deleted file mode 100644 index c64c1baa7e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSlab.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Slab; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSlab extends CraftBlockData implements Slab { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum("type"); - - @Override - public org.bukkit.block.data.type.Slab.Type getType() { - return this.get(CraftSlab.TYPE, org.bukkit.block.data.type.Slab.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Slab.Type type) { - this.set(CraftSlab.TYPE, type); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSnow.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSnow.java deleted file mode 100644 index e3c9182866..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSnow.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Snow; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public class CraftSnow extends CraftBlockData implements Snow { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LAYERS = getInteger("layers"); - - @Override - public int getLayers() { - return this.get(CraftSnow.LAYERS); - } - - @Override - public void setLayers(int layers) { - this.set(CraftSnow.LAYERS, layers); - } - - @Override - public int getMinimumLayers() { - return getMin(CraftSnow.LAYERS); - } - - @Override - public int getMaximumLayers() { - return getMax(CraftSnow.LAYERS); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStairs.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStairs.java deleted file mode 100644 index 1155492322..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStairs.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Stairs; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftStairs extends CraftBlockData implements Stairs { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum("shape"); - - @Override - public org.bukkit.block.data.type.Stairs.Shape getShape() { - return this.get(CraftStairs.SHAPE, org.bukkit.block.data.type.Stairs.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.type.Stairs.Shape shape) { - this.set(CraftStairs.SHAPE, shape); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStructureBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStructureBlock.java deleted file mode 100644 index dc4cb64ade..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftStructureBlock.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.StructureBlock; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftStructureBlock extends CraftBlockData implements StructureBlock { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty MODE = getEnum("mode"); - - @Override - public org.bukkit.block.data.type.StructureBlock.Mode getMode() { - return this.get(CraftStructureBlock.MODE, org.bukkit.block.data.type.StructureBlock.Mode.class); - } - - @Override - public void setMode(org.bukkit.block.data.type.StructureBlock.Mode mode) { - this.set(CraftStructureBlock.MODE, mode); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSwitch.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSwitch.java deleted file mode 100644 index f756460fc5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftSwitch.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Switch; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftSwitch extends CraftBlockData implements Switch { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACE = getEnum("face"); - - @Override - public org.bukkit.block.data.type.Switch.Face getFace() { - return this.get(CraftSwitch.FACE, org.bukkit.block.data.type.Switch.Face.class); - } - - @Override - public void setFace(org.bukkit.block.data.type.Switch.Face face) { - this.set(CraftSwitch.FACE, face); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTNT.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTNT.java deleted file mode 100644 index 47fa133dd5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTNT.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.TNT; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftTNT extends CraftBlockData implements TNT { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty UNSTABLE = getBoolean("unstable"); - - @Override - public boolean isUnstable() { - return this.get(CraftTNT.UNSTABLE); - } - - @Override - public void setUnstable(boolean unstable) { - this.set(CraftTNT.UNSTABLE, unstable); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTechnicalPiston.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTechnicalPiston.java deleted file mode 100644 index 8a9b45733c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTechnicalPiston.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.TechnicalPiston; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftTechnicalPiston extends CraftBlockData implements TechnicalPiston { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum("type"); - - @Override - public org.bukkit.block.data.type.TechnicalPiston.Type getType() { - return this.get(CraftTechnicalPiston.TYPE, org.bukkit.block.data.type.TechnicalPiston.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.TechnicalPiston.Type type) { - this.set(CraftTechnicalPiston.TYPE, type); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTrialSpawner.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTrialSpawner.java deleted file mode 100644 index 9aba1df5d1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTrialSpawner.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.TrialSpawner; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftTrialSpawner extends CraftBlockData implements TrialSpawner { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TRIAL_SPAWNER_STATE = getEnum("trial_spawner_state"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OMINOUS = getBoolean("ominous"); - - @Override - public org.bukkit.block.data.type.TrialSpawner.State getTrialSpawnerState() { - return this.get(CraftTrialSpawner.TRIAL_SPAWNER_STATE, org.bukkit.block.data.type.TrialSpawner.State.class); - } - - @Override - public void setTrialSpawnerState(org.bukkit.block.data.type.TrialSpawner.State state) { - this.set(CraftTrialSpawner.TRIAL_SPAWNER_STATE, state); - } - - @Override - public boolean isOminous() { - return this.get(CraftTrialSpawner.OMINOUS); - } - - @Override - public void setOminous(boolean ominous) { - this.set(CraftTrialSpawner.OMINOUS, ominous); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTripwire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTripwire.java deleted file mode 100644 index 7e943cdf00..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTripwire.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Tripwire; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftTripwire extends CraftBlockData implements Tripwire { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty DISARMED = getBoolean("disarmed"); - - @Override - public boolean isDisarmed() { - return this.get(CraftTripwire.DISARMED); - } - - @Override - public void setDisarmed(boolean disarmed) { - this.set(CraftTripwire.DISARMED, disarmed); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTurtleEgg.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTurtleEgg.java deleted file mode 100644 index 98c0a4e9cd..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftTurtleEgg.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.TurtleEgg; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftTurtleEgg extends CraftBlockData implements TurtleEgg { - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty EGGS = getInteger("eggs"); - - @Override - public int getEggs() { - return this.get(CraftTurtleEgg.EGGS); - } - - @Override - public void setEggs(int eggs) { - this.set(CraftTurtleEgg.EGGS, eggs); - } - - @Override - public int getMinimumEggs() { - return getMin(CraftTurtleEgg.EGGS); - } - - @Override - public int getMaximumEggs() { - return getMax(CraftTurtleEgg.EGGS); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftVault.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftVault.java deleted file mode 100644 index 37c850cccb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftVault.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Vault; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftVault extends CraftBlockData implements Vault { - - private static final net.minecraft.world.level.block.state.properties.EnumProperty VAULT_STATE = getEnum("vault_state"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OMINOUS = getBoolean("ominous"); - - @Override - public org.bukkit.block.data.type.Vault.State getVaultState() { - return this.get(CraftVault.VAULT_STATE, org.bukkit.block.data.type.Vault.State.class); - } - - @Override - public org.bukkit.block.data.type.Vault.State getTrialSpawnerState() { - return this.getVaultState(); - } - - @Override - public void setVaultState(org.bukkit.block.data.type.Vault.State state) { - this.set(CraftVault.VAULT_STATE, state); - } - - @Override - public void setTrialSpawnerState(org.bukkit.block.data.type.Vault.State state) { - this.setVaultState(state); - } - - @Override - public boolean isOminous() { - return this.get(CraftVault.OMINOUS); - } - - @Override - public void setOminous(boolean ominous) { - this.set(CraftVault.OMINOUS, ominous); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftWall.java deleted file mode 100644 index 00f287a84f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/data/type/CraftWall.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.bukkit.craftbukkit.block.data.type; - -import org.bukkit.block.data.type.Wall; -import org.bukkit.craftbukkit.block.data.CraftBlockData; - -public abstract class CraftWall extends CraftBlockData implements Wall { - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty UP = getBoolean("up"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty[] HEIGHTS = new net.minecraft.world.level.block.state.properties.EnumProperty[]{ - getEnum("north"), getEnum("east"), getEnum("south"), getEnum("west") - }; - - @Override - public boolean isUp() { - return this.get(CraftWall.UP); - } - - @Override - public void setUp(boolean up) { - this.set(CraftWall.UP, up); - } - - @Override - public org.bukkit.block.data.type.Wall.Height getHeight(org.bukkit.block.BlockFace face) { - return this.get(CraftWall.HEIGHTS[face.ordinal()], org.bukkit.block.data.type.Wall.Height.class); - } - - @Override - public void setHeight(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.Wall.Height height) { - this.set(CraftWall.HEIGHTS[face.ordinal()], height); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java deleted file mode 100644 index a78c931b3f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAmethystCluster.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftAmethystCluster extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.AmethystCluster, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftAmethystCluster() { - super(); - } - - public CraftAmethystCluster(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.AmethystClusterBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftAmethystCluster.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftAmethystCluster.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftAmethystCluster.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.AmethystClusterBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftAmethystCluster.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftAmethystCluster.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java deleted file mode 100644 index b2ffbebdeb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftAnvil.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftAnvil extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftAnvil() { - super(); - } - - public CraftAnvil(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.AnvilBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftAnvil.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftAnvil.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftAnvil.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBamboo.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBamboo.java deleted file mode 100644 index ef37065539..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBamboo.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBamboo extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Bamboo, org.bukkit.block.data.Ageable, org.bukkit.block.data.type.Sapling { - - public CraftBamboo() { - super(); - } - - public CraftBamboo(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBamboo - - private static final net.minecraft.world.level.block.state.properties.EnumProperty LEAVES = getEnum(net.minecraft.world.level.block.BambooStalkBlock.class, "leaves"); - - @Override - public org.bukkit.block.data.type.Bamboo.Leaves getLeaves() { - return this.get(CraftBamboo.LEAVES, org.bukkit.block.data.type.Bamboo.Leaves.class); - } - - @Override - public void setLeaves(org.bukkit.block.data.type.Bamboo.Leaves leaves) { - this.set(CraftBamboo.LEAVES, leaves); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.BambooStalkBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftBamboo.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftBamboo.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftBamboo.AGE); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSapling - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty STAGE = getInteger(net.minecraft.world.level.block.BambooStalkBlock.class, "stage"); - - @Override - public int getStage() { - return this.get(CraftBamboo.STAGE); - } - - @Override - public void setStage(int stage) { - this.set(CraftBamboo.STAGE, stage); - } - - @Override - public int getMaximumStage() { - return getMax(CraftBamboo.STAGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java deleted file mode 100644 index 79055ee1e1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBanner.java +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBanner extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Rotatable { - - public CraftBanner() { - super(); - } - - public CraftBanner(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.BannerBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftBanner.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftBanner.ROTATION, val); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBannerWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBannerWall.java deleted file mode 100644 index 03f2ca6784..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBannerWall.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBannerWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftBannerWall() { - super(); - } - - public CraftBannerWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WallBannerBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBannerWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBannerWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBannerWall.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java deleted file mode 100644 index 511460a8fa..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrel.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBarrel extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Barrel, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable { - - public CraftBarrel() { - super(); - } - - public CraftBarrel(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BarrelBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBarrel.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBarrel.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBarrel.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.BarrelBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftBarrel.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftBarrel.OPEN, open); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java deleted file mode 100644 index 1e810e5be4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBarrier.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBarrier extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftBarrier() { - super(); - } - - public CraftBarrier(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BarrierBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftBarrier.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftBarrier.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java deleted file mode 100644 index e5450d3511..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBed.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBed extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Bed, org.bukkit.block.data.Directional { - - public CraftBed() { - super(); - } - - public CraftBed(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBed - - private static final net.minecraft.world.level.block.state.properties.EnumProperty PART = getEnum(net.minecraft.world.level.block.BedBlock.class, "part"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OCCUPIED = getBoolean(net.minecraft.world.level.block.BedBlock.class, "occupied"); - - @Override - public org.bukkit.block.data.type.Bed.Part getPart() { - return this.get(CraftBed.PART, org.bukkit.block.data.type.Bed.Part.class); - } - - @Override - public void setPart(org.bukkit.block.data.type.Bed.Part part) { - this.set(CraftBed.PART, part); - } - - @Override - public boolean isOccupied() { - return this.get(CraftBed.OCCUPIED); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BedBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBed.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBed.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBed.FACING, org.bukkit.block.BlockFace.class); - } - - // Paper start - @Override - public void setOccupied(boolean occupied) { - set(CraftBed.OCCUPIED, occupied); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java deleted file mode 100644 index a081a19ece..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeehive.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBeehive extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Beehive, org.bukkit.block.data.Directional { - - public CraftBeehive() { - super(); - } - - public CraftBeehive(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBeehive - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty HONEY_LEVEL = getInteger(net.minecraft.world.level.block.BeehiveBlock.class, "honey_level"); - - @Override - public int getHoneyLevel() { - return this.get(CraftBeehive.HONEY_LEVEL); - } - - @Override - public void setHoneyLevel(int honeyLevel) { - this.set(CraftBeehive.HONEY_LEVEL, honeyLevel); - } - - @Override - public int getMaximumHoneyLevel() { - return getMax(CraftBeehive.HONEY_LEVEL); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BeehiveBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBeehive.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBeehive.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBeehive.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java deleted file mode 100644 index 90b4883f3e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBeetroot.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBeetroot extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftBeetroot() { - super(); - } - - public CraftBeetroot(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.BeetrootBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftBeetroot.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftBeetroot.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftBeetroot.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBell.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBell.java deleted file mode 100644 index b534cb23ab..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBell.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBell extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Bell, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftBell() { - super(); - } - - public CraftBell(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBell - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACHMENT = getEnum(net.minecraft.world.level.block.BellBlock.class, "attachment"); - - @Override - public org.bukkit.block.data.type.Bell.Attachment getAttachment() { - return this.get(CraftBell.ATTACHMENT, org.bukkit.block.data.type.Bell.Attachment.class); - } - - @Override - public void setAttachment(org.bukkit.block.data.type.Bell.Attachment leaves) { - this.set(CraftBell.ATTACHMENT, leaves); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BellBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBell.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBell.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBell.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.BellBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftBell.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftBell.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java deleted file mode 100644 index 9fe7d42176..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleaf.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBigDripleaf extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.BigDripleaf, org.bukkit.block.data.type.Dripleaf, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftBigDripleaf() { - super(); - } - - public CraftBigDripleaf(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBigDripleaf - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TILT = getEnum(net.minecraft.world.level.block.BigDripleafBlock.class, "tilt"); - - @Override - public Tilt getTilt() { - return this.get(CraftBigDripleaf.TILT, org.bukkit.block.data.type.BigDripleaf.Tilt.class); - } - - @Override - public void setTilt(org.bukkit.block.data.type.BigDripleaf.Tilt tilt) { - this.set(CraftBigDripleaf.TILT, tilt); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BigDripleafBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBigDripleaf.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBigDripleaf.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBigDripleaf.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BigDripleafBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftBigDripleaf.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftBigDripleaf.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java deleted file mode 100644 index 64b872cbde..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBigDripleafStem.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBigDripleafStem extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Dripleaf, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftBigDripleafStem() { - super(); - } - - public CraftBigDripleafStem(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BigDripleafStemBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBigDripleafStem.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBigDripleafStem.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBigDripleafStem.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BigDripleafStemBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftBigDripleafStem.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftBigDripleafStem.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java deleted file mode 100644 index 64e18412c6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBlastFurnace.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBlastFurnace extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Furnace, org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable { - - public CraftBlastFurnace() { - super(); - } - - public CraftBlastFurnace(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BlastFurnaceBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftBlastFurnace.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftBlastFurnace.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftBlastFurnace.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.BlastFurnaceBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftBlastFurnace.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftBlastFurnace.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java deleted file mode 100644 index 1815adec06..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrewingStand.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBrewingStand extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.BrewingStand { - - public CraftBrewingStand() { - super(); - } - - public CraftBrewingStand(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBrewingStand - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] HAS_BOTTLE = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.BrewingStandBlock.class, "has_bottle_0"), getBoolean(net.minecraft.world.level.block.BrewingStandBlock.class, "has_bottle_1"), getBoolean(net.minecraft.world.level.block.BrewingStandBlock.class, "has_bottle_2") - }; - - @Override - public boolean hasBottle(int bottle) { - return this.get(CraftBrewingStand.HAS_BOTTLE[bottle]); - } - - @Override - public void setBottle(int bottle, boolean has) { - this.set(CraftBrewingStand.HAS_BOTTLE[bottle], has); - } - - @Override - public java.util.Set getBottles() { - com.google.common.collect.ImmutableSet.Builder bottles = com.google.common.collect.ImmutableSet.builder(); - - for (int index = 0; index < this.getMaximumBottles(); index++) { - if (this.hasBottle(index)) { - bottles.add(index); - } - } - - return bottles.build(); - } - - @Override - public int getMaximumBottles() { - return CraftBrewingStand.HAS_BOTTLE.length; - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java deleted file mode 100644 index 303d624263..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBrushable.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBrushable extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Brushable { - - public CraftBrushable() { - super(); - } - - public CraftBrushable(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBrushable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DUSTED = getInteger(net.minecraft.world.level.block.BrushableBlock.class, "dusted"); - - @Override - public int getDusted() { - return this.get(CraftBrushable.DUSTED); - } - - @Override - public void setDusted(int dusted) { - this.set(CraftBrushable.DUSTED, dusted); - } - - @Override - public int getMaximumDusted() { - return getMax(CraftBrushable.DUSTED); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java deleted file mode 100644 index 9c51ee58b9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftBubbleColumn.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftBubbleColumn extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.BubbleColumn { - - public CraftBubbleColumn() { - super(); - } - - public CraftBubbleColumn(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftBubbleColumn - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty DRAG = getBoolean(net.minecraft.world.level.block.BubbleColumnBlock.class, "drag"); - - @Override - public boolean isDrag() { - return this.get(CraftBubbleColumn.DRAG); - } - - @Override - public void setDrag(boolean drag) { - this.set(CraftBubbleColumn.DRAG, drag); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftButtonAbstract.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftButtonAbstract.java deleted file mode 100644 index e71fd199fd..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftButtonAbstract.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftButtonAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Switch, org.bukkit.block.data.Directional, org.bukkit.block.data.FaceAttachable, org.bukkit.block.data.Powerable { - - public CraftButtonAbstract() { - super(); - } - - public CraftButtonAbstract(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSwitch - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACE = getEnum(net.minecraft.world.level.block.ButtonBlock.class, "face"); - - @Override - public org.bukkit.block.data.type.Switch.Face getFace() { - return this.get(CraftButtonAbstract.FACE, org.bukkit.block.data.type.Switch.Face.class); - } - - @Override - public void setFace(org.bukkit.block.data.type.Switch.Face face) { - this.set(CraftButtonAbstract.FACE, face); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ButtonBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftButtonAbstract.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftButtonAbstract.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftButtonAbstract.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftFaceAttachable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACH_FACE = getEnum(net.minecraft.world.level.block.ButtonBlock.class, "face"); - - @Override - public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { - return this.get(CraftButtonAbstract.ATTACH_FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); - } - - @Override - public void setAttachedFace(org.bukkit.block.data.FaceAttachable.AttachedFace face) { - this.set(CraftButtonAbstract.ATTACH_FACE, face); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.ButtonBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftButtonAbstract.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftButtonAbstract.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java deleted file mode 100644 index 463217199f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCactus.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCactus extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftCactus() { - super(); - } - - public CraftCactus(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.CactusBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftCactus.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftCactus.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftCactus.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCake.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCake.java deleted file mode 100644 index 50347a79b0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCake.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCake extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Cake { - - public CraftCake() { - super(); - } - - public CraftCake(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCake - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty BITES = getInteger(net.minecraft.world.level.block.CakeBlock.class, "bites"); - - @Override - public int getBites() { - return this.get(CraftCake.BITES); - } - - @Override - public void setBites(int bites) { - this.set(CraftCake.BITES, bites); - } - - @Override - public int getMaximumBites() { - return getMax(CraftCake.BITES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java deleted file mode 100644 index decacf616d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCalibratedSculkSensor.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCalibratedSculkSensor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CalibratedSculkSensor, org.bukkit.block.data.Directional, org.bukkit.block.data.type.SculkSensor, org.bukkit.block.data.AnaloguePowerable, org.bukkit.block.data.Waterlogged { - - public CraftCalibratedSculkSensor() { - super(); - } - - public CraftCalibratedSculkSensor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CalibratedSculkSensorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCalibratedSculkSensor.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCalibratedSculkSensor.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCalibratedSculkSensor.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSculkSensor - - private static final net.minecraft.world.level.block.state.properties.EnumProperty PHASE = getEnum(net.minecraft.world.level.block.CalibratedSculkSensorBlock.class, "sculk_sensor_phase"); - - @Override - public org.bukkit.block.data.type.SculkSensor.Phase getPhase() { - return this.get(CraftCalibratedSculkSensor.PHASE, org.bukkit.block.data.type.SculkSensor.Phase.class); - } - - @Override - public void setPhase(org.bukkit.block.data.type.SculkSensor.Phase phase) { - this.set(CraftCalibratedSculkSensor.PHASE, phase); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.CalibratedSculkSensorBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftCalibratedSculkSensor.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftCalibratedSculkSensor.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftCalibratedSculkSensor.POWER); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CalibratedSculkSensorBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCalibratedSculkSensor.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCalibratedSculkSensor.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java deleted file mode 100644 index 52b3b5abe6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCampfire.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCampfire extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Campfire, org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable, org.bukkit.block.data.Waterlogged { - - public CraftCampfire() { - super(); - } - - public CraftCampfire(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCampfire - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SIGNAL_FIRE = getBoolean(net.minecraft.world.level.block.CampfireBlock.class, "signal_fire"); - - @Override - public boolean isSignalFire() { - return this.get(CraftCampfire.SIGNAL_FIRE); - } - - @Override - public void setSignalFire(boolean signalFire) { - this.set(CraftCampfire.SIGNAL_FIRE, signalFire); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CampfireBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCampfire.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCampfire.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCampfire.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.CampfireBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftCampfire.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftCampfire.LIT, lit); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CampfireBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCampfire.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCampfire.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java deleted file mode 100644 index 08436bfeba..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandle.java +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCandle extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Candle, org.bukkit.block.data.Lightable, org.bukkit.block.data.Waterlogged { - - public CraftCandle() { - super(); - } - - public CraftCandle(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCandle - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty CANDLES = getInteger(net.minecraft.world.level.block.CandleBlock.class, "candles"); - - @Override - public int getCandles() { - return this.get(CraftCandle.CANDLES); - } - - @Override - public void setCandles(int candles) { - this.set(CraftCandle.CANDLES, candles); - } - - @Override - public int getMaximumCandles() { - return getMax(CraftCandle.CANDLES); - } - // Paper start - @Override - public int getMinimumCandles() { - return getMin(CraftCandle.CANDLES); - } - // Paper end - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.CandleBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftCandle.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftCandle.LIT, lit); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CandleBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCandle.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCandle.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java deleted file mode 100644 index adc224dd4b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCandleCake.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCandleCake extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Lightable { - - public CraftCandleCake() { - super(); - } - - public CraftCandleCake(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.CandleCakeBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftCandleCake.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftCandleCake.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java deleted file mode 100644 index 270416eb51..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCarrots.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCarrots extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftCarrots() { - super(); - } - - public CraftCarrots(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.CarrotBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftCarrots.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftCarrots.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftCarrots.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java deleted file mode 100644 index 5b387ce833..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVines.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCaveVines extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CaveVines, org.bukkit.block.data.Ageable, org.bukkit.block.data.type.CaveVinesPlant { - - public CraftCaveVines() { - super(); - } - - public CraftCaveVines(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.CaveVinesBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftCaveVines.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftCaveVines.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftCaveVines.AGE); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCaveVinesPlant - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BERRIES = getBoolean(net.minecraft.world.level.block.CaveVinesBlock.class, "berries"); - - @Override - public boolean isBerries() { - return this.get(CraftCaveVines.BERRIES); - } - - @Override - public void setBerries(boolean berries) { - this.set(CraftCaveVines.BERRIES, berries); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java deleted file mode 100644 index b8c199bfbe..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCaveVinesPlant.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCaveVinesPlant extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CaveVinesPlant { - - public CraftCaveVinesPlant() { - super(); - } - - public CraftCaveVinesPlant(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCaveVinesPlant - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BERRIES = getBoolean(net.minecraft.world.level.block.CaveVinesPlantBlock.class, "berries"); - - @Override - public boolean isBerries() { - return this.get(CraftCaveVinesPlant.BERRIES); - } - - @Override - public void setBerries(boolean berries) { - this.set(CraftCaveVinesPlant.BERRIES, berries); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java deleted file mode 100644 index fcda570877..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCeilingHangingSign.java +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCeilingHangingSign extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.HangingSign, org.bukkit.block.data.Attachable, org.bukkit.block.data.Rotatable, org.bukkit.block.data.Waterlogged { - - public CraftCeilingHangingSign() { - super(); - } - - public CraftCeilingHangingSign(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAttachable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ATTACHED = getBoolean(net.minecraft.world.level.block.CeilingHangingSignBlock.class, "attached"); - - @Override - public boolean isAttached() { - return this.get(CraftCeilingHangingSign.ATTACHED); - } - - @Override - public void setAttached(boolean attached) { - this.set(CraftCeilingHangingSign.ATTACHED, attached); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.CeilingHangingSignBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftCeilingHangingSign.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftCeilingHangingSign.ROTATION, val); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CeilingHangingSignBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCeilingHangingSign.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCeilingHangingSign.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChain.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChain.java deleted file mode 100644 index 50b317d484..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChain.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChain extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Chain, org.bukkit.block.data.Orientable, org.bukkit.block.data.Waterlogged { - - public CraftChain() { - super(); - } - - public CraftChain(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.ChainBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftChain.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftChain.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftChain.AXIS, org.bukkit.Axis.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.ChainBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftChain.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftChain.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChest.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChest.java deleted file mode 100644 index 383b146dee..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChest.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChest extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Chest, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftChest() { - super(); - } - - public CraftChest(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftChest - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.ChestBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.Chest.Type getType() { - return this.get(CraftChest.TYPE, org.bukkit.block.data.type.Chest.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Chest.Type type) { - this.set(CraftChest.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ChestBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftChest.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftChest.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftChest.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.ChestBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftChest.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftChest.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChestTrapped.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChestTrapped.java deleted file mode 100644 index b24a40c084..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChestTrapped.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChestTrapped extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Chest, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftChestTrapped() { - super(); - } - - public CraftChestTrapped(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftChest - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.TrappedChestBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.Chest.Type getType() { - return this.get(CraftChestTrapped.TYPE, org.bukkit.block.data.type.Chest.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Chest.Type type) { - this.set(CraftChestTrapped.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.TrappedChestBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftChestTrapped.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftChestTrapped.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftChestTrapped.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.TrappedChestBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftChestTrapped.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftChestTrapped.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java deleted file mode 100644 index 26cfac0ae5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChiseledBookShelf.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChiseledBookShelf extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.ChiseledBookshelf, org.bukkit.block.data.Directional { - - public CraftChiseledBookShelf() { - super(); - } - - public CraftChiseledBookShelf(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftChiseledBookshelf - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] SLOT_OCCUPIED = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_0_occupied"), getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_1_occupied"), getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_2_occupied"), - getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_3_occupied"), getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_4_occupied"), getBoolean(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "slot_5_occupied") - }; - - @Override - public boolean isSlotOccupied(int slot) { - return this.get(CraftChiseledBookShelf.SLOT_OCCUPIED[slot]); - } - - @Override - public void setSlotOccupied(int slot, boolean has) { - this.set(CraftChiseledBookShelf.SLOT_OCCUPIED[slot], has); - } - - @Override - public java.util.Set getOccupiedSlots() { - com.google.common.collect.ImmutableSet.Builder slots = com.google.common.collect.ImmutableSet.builder(); - - for (int index = 0; index < this.getMaximumOccupiedSlots(); index++) { - if (this.isSlotOccupied(index)) { - slots.add(index); - } - } - - return slots.build(); - } - - @Override - public int getMaximumOccupiedSlots() { - return CraftChiseledBookShelf.SLOT_OCCUPIED.length; - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ChiseledBookShelfBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftChiseledBookShelf.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftChiseledBookShelf.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftChiseledBookShelf.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java deleted file mode 100644 index 1c759be1ed..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFlower.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChorusFlower extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftChorusFlower() { - super(); - } - - public CraftChorusFlower(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.ChorusFlowerBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftChorusFlower.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftChorusFlower.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftChorusFlower.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFruit.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFruit.java deleted file mode 100644 index 60190a7ce9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftChorusFruit.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftChorusFruit extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.MultipleFacing { - - public CraftChorusFruit() { - super(); - } - - public CraftChorusFruit(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.ChorusPlantBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftChorusFruit.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftChorusFruit.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftChorusFruit.FACES.length; i++) { - if (CraftChorusFruit.FACES[i] != null && this.get(CraftChorusFruit.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftChorusFruit.FACES.length; i++) { - if (CraftChorusFruit.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCobbleWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCobbleWall.java deleted file mode 100644 index f860bb309a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCobbleWall.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCobbleWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Wall, org.bukkit.block.data.Waterlogged { - - public CraftCobbleWall() { - super(); - } - - public CraftCobbleWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftWall - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty UP = getBoolean(net.minecraft.world.level.block.WallBlock.class, "up"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty[] HEIGHTS = new net.minecraft.world.level.block.state.properties.EnumProperty[]{ - getEnum(net.minecraft.world.level.block.WallBlock.class, "north"), getEnum(net.minecraft.world.level.block.WallBlock.class, "east"), getEnum(net.minecraft.world.level.block.WallBlock.class, "south"), getEnum(net.minecraft.world.level.block.WallBlock.class, "west") - }; - - @Override - public boolean isUp() { - return this.get(CraftCobbleWall.UP); - } - - @Override - public void setUp(boolean up) { - this.set(CraftCobbleWall.UP, up); - } - - @Override - public org.bukkit.block.data.type.Wall.Height getHeight(org.bukkit.block.BlockFace face) { - return this.get(CraftCobbleWall.HEIGHTS[face.ordinal()], org.bukkit.block.data.type.Wall.Height.class); - } - - @Override - public void setHeight(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.Wall.Height height) { - this.set(CraftCobbleWall.HEIGHTS[face.ordinal()], height); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WallBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCobbleWall.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCobbleWall.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java deleted file mode 100644 index 56167946a2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCocoa.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCocoa extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Cocoa, org.bukkit.block.data.Ageable, org.bukkit.block.data.Directional { - - public CraftCocoa() { - super(); - } - - public CraftCocoa(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.CocoaBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftCocoa.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftCocoa.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftCocoa.AGE); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CocoaBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCocoa.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCocoa.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCocoa.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCommand.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCommand.java deleted file mode 100644 index 14a788410c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCommand.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCommand extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CommandBlock, org.bukkit.block.data.Directional { - - public CraftCommand() { - super(); - } - - public CraftCommand(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCommandBlock - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CONDITIONAL = getBoolean(net.minecraft.world.level.block.CommandBlock.class, "conditional"); - - @Override - public boolean isConditional() { - return this.get(CraftCommand.CONDITIONAL); - } - - @Override - public void setConditional(boolean conditional) { - this.set(CraftCommand.CONDITIONAL, conditional); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CommandBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCommand.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCommand.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCommand.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java deleted file mode 100644 index 5ae27fc8f9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftComposter.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftComposter extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Levelled { - - public CraftComposter() { - super(); - } - - public CraftComposter(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLevelled - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LEVEL = getInteger(net.minecraft.world.level.block.ComposterBlock.class, "level"); - - @Override - public int getLevel() { - return this.get(CraftComposter.LEVEL); - } - - @Override - public void setLevel(int level) { - this.set(CraftComposter.LEVEL, level); - } - - @Override - public int getMaximumLevel() { - return getMax(CraftComposter.LEVEL); - } - - // Paper start - @Override - public int getMinimumLevel() { - return getMin(CraftComposter.LEVEL); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java deleted file mode 100644 index be87c2d5e6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftConduit.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftConduit extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftConduit() { - super(); - } - - public CraftConduit(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.ConduitBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftConduit.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftConduit.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java deleted file mode 100644 index e85ccc6e4a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCopperBulb.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCopperBulb extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CopperBulb, org.bukkit.block.data.Lightable, org.bukkit.block.data.Powerable { - - public CraftCopperBulb() { - super(); - } - - public CraftCopperBulb(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.CopperBulbBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftCopperBulb.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftCopperBulb.LIT, lit); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.CopperBulbBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftCopperBulb.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftCopperBulb.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralDead.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralDead.java deleted file mode 100644 index 927ee9b69a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralDead.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralDead extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftCoralDead() { - super(); - } - - public CraftCoralDead(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BaseCoralPlantBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralDead.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralDead.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java deleted file mode 100644 index 42f8430d6c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFan.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralFan extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftCoralFan() { - super(); - } - - public CraftCoralFan(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CoralFanBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralFan.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralFan.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanAbstract.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanAbstract.java deleted file mode 100644 index 88c371ca28..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanAbstract.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralFanAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftCoralFanAbstract() { - super(); - } - - public CraftCoralFanAbstract(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BaseCoralFanBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralFanAbstract.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralFanAbstract.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWall.java deleted file mode 100644 index 0928c60c29..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWall.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralFanWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CoralWallFan, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftCoralFanWall() { - super(); - } - - public CraftCoralFanWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CoralWallFanBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCoralFanWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCoralFanWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCoralFanWall.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CoralWallFanBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralFanWall.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralFanWall.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWallAbstract.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWallAbstract.java deleted file mode 100644 index b1715fcac8..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralFanWallAbstract.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralFanWallAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CoralWallFan, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftCoralFanWallAbstract() { - super(); - } - - public CraftCoralFanWallAbstract(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.BaseCoralWallFanBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftCoralFanWallAbstract.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftCoralFanWallAbstract.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftCoralFanWallAbstract.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.BaseCoralWallFanBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralFanWallAbstract.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralFanWallAbstract.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java deleted file mode 100644 index 447c4e1db5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCoralPlant.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCoralPlant extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftCoralPlant() { - super(); - } - - public CraftCoralPlant(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.CoralPlantBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftCoralPlant.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftCoralPlant.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java deleted file mode 100644 index 78b8a7cda5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrafter.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCrafter extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Crafter { - - public CraftCrafter() { - super(); - } - - public CraftCrafter(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCrafter - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CRAFTING = getBoolean(net.minecraft.world.level.block.CrafterBlock.class, "crafting"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TRIGGERED = getBoolean(net.minecraft.world.level.block.CrafterBlock.class, "triggered"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty ORIENTATION = getEnum(net.minecraft.world.level.block.CrafterBlock.class, "orientation"); - - @Override - public boolean isCrafting() { - return this.get(CraftCrafter.CRAFTING); - } - - @Override - public void setCrafting(boolean crafting) { - this.set(CraftCrafter.CRAFTING, crafting); - } - - @Override - public boolean isTriggered() { - return this.get(CraftCrafter.TRIGGERED); - } - - @Override - public void setTriggered(boolean triggered) { - this.set(CraftCrafter.TRIGGERED, triggered); - } - - @Override - public org.bukkit.block.data.type.Crafter.Orientation getOrientation() { - return this.get(CraftCrafter.ORIENTATION, org.bukkit.block.data.type.Crafter.Orientation.class); - } - - @Override - public void setOrientation(org.bukkit.block.data.type.Crafter.Orientation orientation) { - this.set(CraftCrafter.ORIENTATION, orientation); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java deleted file mode 100644 index 90d6f9655b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCreakingHeart.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCreakingHeart extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CreakingHeart, org.bukkit.block.data.Orientable { - - public CraftCreakingHeart() { - super(); - } - - public CraftCreakingHeart(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftCreakingHeart - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ACTIVE = getBoolean(net.minecraft.world.level.block.CreakingHeartBlock.class, "active"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty NATURAL = getBoolean(net.minecraft.world.level.block.CreakingHeartBlock.class, "natural"); - - @Override - public boolean isActive() { - return this.get(CraftCreakingHeart.ACTIVE); - } - - @Override - public void setActive(boolean active) { - this.set(CraftCreakingHeart.ACTIVE, active); - } - - @Override - public boolean isNatural() { - return this.get(CraftCreakingHeart.NATURAL); - } - - @Override - public void setNatural(boolean natural) { - this.set(CraftCreakingHeart.NATURAL, natural); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.CreakingHeartBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftCreakingHeart.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftCreakingHeart.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftCreakingHeart.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java deleted file mode 100644 index d186de7098..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftCrops.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftCrops extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftCrops() { - super(); - } - - public CraftCrops(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.CropBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftCrops.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftCrops.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftCrops.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java deleted file mode 100644 index 3fd2f7b86f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDaylightDetector.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDaylightDetector extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.DaylightDetector, org.bukkit.block.data.AnaloguePowerable { - - public CraftDaylightDetector() { - super(); - } - - public CraftDaylightDetector(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftDaylightDetector - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty INVERTED = getBoolean(net.minecraft.world.level.block.DaylightDetectorBlock.class, "inverted"); - - @Override - public boolean isInverted() { - return this.get(CraftDaylightDetector.INVERTED); - } - - @Override - public void setInverted(boolean inverted) { - this.set(CraftDaylightDetector.INVERTED, inverted); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.DaylightDetectorBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftDaylightDetector.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftDaylightDetector.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftDaylightDetector.POWER); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java deleted file mode 100644 index b7ea9a6fba..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDecoratedPot.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDecoratedPot extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.DecoratedPot, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftDecoratedPot() { - super(); - } - - public CraftDecoratedPot(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.DecoratedPotBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftDecoratedPot.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftDecoratedPot.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftDecoratedPot.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.DecoratedPotBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftDecoratedPot.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftDecoratedPot.WATERLOGGED, waterlogged); - } - - // Paper start - add missing block data api - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CRACKED = getBoolean(net.minecraft.world.level.block.DecoratedPotBlock.class, "cracked"); - - @Override - public boolean isCracked() { - return this.get(CraftDecoratedPot.CRACKED); - } - - @Override - public void setCracked(final boolean cracked) { - this.set(CraftDecoratedPot.CRACKED, cracked); - } - // Paper end - add missing block data api -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDirtSnow.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDirtSnow.java deleted file mode 100644 index a2d3b1f7a7..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDirtSnow.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDirtSnow extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Snowable { - - public CraftDirtSnow() { - super(); - } - - public CraftDirtSnow(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftSnowable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SNOWY = getBoolean(net.minecraft.world.level.block.SnowyDirtBlock.class, "snowy"); - - @Override - public boolean isSnowy() { - return this.get(CraftDirtSnow.SNOWY); - } - - @Override - public void setSnowy(boolean snowy) { - this.set(CraftDirtSnow.SNOWY, snowy); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java deleted file mode 100644 index 444c0ef7b1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDispenser.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDispenser extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Dispenser, org.bukkit.block.data.Directional { - - public CraftDispenser() { - super(); - } - - public CraftDispenser(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftDispenser - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TRIGGERED = getBoolean(net.minecraft.world.level.block.DispenserBlock.class, "triggered"); - - @Override - public boolean isTriggered() { - return this.get(CraftDispenser.TRIGGERED); - } - - @Override - public void setTriggered(boolean triggered) { - this.set(CraftDispenser.TRIGGERED, triggered); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.DispenserBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftDispenser.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftDispenser.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftDispenser.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java deleted file mode 100644 index 633e7fd045..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDoor.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDoor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Door, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable, org.bukkit.block.data.Powerable { - - public CraftDoor() { - super(); - } - - public CraftDoor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftDoor - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HINGE = getEnum(net.minecraft.world.level.block.DoorBlock.class, "hinge"); - - @Override - public org.bukkit.block.data.type.Door.Hinge getHinge() { - return this.get(CraftDoor.HINGE, org.bukkit.block.data.type.Door.Hinge.class); - } - - @Override - public void setHinge(org.bukkit.block.data.type.Door.Hinge hinge) { - this.set(CraftDoor.HINGE, hinge); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.DoorBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftDoor.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftDoor.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.DoorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftDoor.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftDoor.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftDoor.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.DoorBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftDoor.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftDoor.OPEN, open); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.DoorBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftDoor.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftDoor.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java deleted file mode 100644 index c460bb6766..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftDropper.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftDropper extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Dispenser, org.bukkit.block.data.Directional { - - public CraftDropper() { - super(); - } - - public CraftDropper(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftDispenser - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TRIGGERED = getBoolean(net.minecraft.world.level.block.DropperBlock.class, "triggered"); - - @Override - public boolean isTriggered() { - return this.get(CraftDropper.TRIGGERED); - } - - @Override - public void setTriggered(boolean triggered) { - this.set(CraftDropper.TRIGGERED, triggered); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.DropperBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftDropper.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftDropper.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftDropper.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java deleted file mode 100644 index 81ad91969c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEndRod.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftEndRod extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftEndRod() { - super(); - } - - public CraftEndRod(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.EndRodBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftEndRod.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftEndRod.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftEndRod.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java deleted file mode 100644 index b259fc7fcb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderChest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftEnderChest extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.EnderChest, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftEnderChest() { - super(); - } - - public CraftEnderChest(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.EnderChestBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftEnderChest.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftEnderChest.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftEnderChest.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.EnderChestBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftEnderChest.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftEnderChest.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderPortalFrame.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderPortalFrame.java deleted file mode 100644 index d1959292a5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftEnderPortalFrame.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftEnderPortalFrame extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.EndPortalFrame, org.bukkit.block.data.Directional { - - public CraftEnderPortalFrame() { - super(); - } - - public CraftEnderPortalFrame(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftEndPortalFrame - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty EYE = getBoolean(net.minecraft.world.level.block.EndPortalFrameBlock.class, "eye"); - - @Override - public boolean hasEye() { - return this.get(CraftEnderPortalFrame.EYE); - } - - @Override - public void setEye(boolean eye) { - this.set(CraftEnderPortalFrame.EYE, eye); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.EndPortalFrameBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftEnderPortalFrame.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftEnderPortalFrame.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftEnderPortalFrame.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFence.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFence.java deleted file mode 100644 index 11f2f10703..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFence.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFence extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Fence, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftFence() { - super(); - } - - public CraftFence(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.FenceBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.FenceBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.FenceBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.FenceBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.FenceBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.FenceBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftFence.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftFence.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftFence.FACES.length; i++) { - if (CraftFence.FACES[i] != null && this.get(CraftFence.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftFence.FACES.length; i++) { - if (CraftFence.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.FenceBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftFence.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftFence.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java deleted file mode 100644 index b31474d3b2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFenceGate.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFenceGate extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Gate, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable, org.bukkit.block.data.Powerable { - - public CraftFenceGate() { - super(); - } - - public CraftFenceGate(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftGate - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty IN_WALL = getBoolean(net.minecraft.world.level.block.FenceGateBlock.class, "in_wall"); - - @Override - public boolean isInWall() { - return this.get(CraftFenceGate.IN_WALL); - } - - @Override - public void setInWall(boolean inWall) { - this.set(CraftFenceGate.IN_WALL, inWall); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.FenceGateBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftFenceGate.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftFenceGate.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftFenceGate.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.FenceGateBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftFenceGate.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftFenceGate.OPEN, open); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.FenceGateBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftFenceGate.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftFenceGate.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFire.java deleted file mode 100644 index b4a0566cd9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFire.java +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFire extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Fire, org.bukkit.block.data.Ageable, org.bukkit.block.data.MultipleFacing { - - public CraftFire() { - super(); - } - - public CraftFire(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.FireBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftFire.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftFire.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftFire.AGE); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.FireBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.FireBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.FireBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.FireBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.FireBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.FireBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftFire.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftFire.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftFire.FACES.length; i++) { - if (CraftFire.FACES[i] != null && this.get(CraftFire.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftFire.FACES.length; i++) { - if (CraftFire.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFloorSign.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFloorSign.java deleted file mode 100644 index 6c5c012370..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFloorSign.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFloorSign extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Sign, org.bukkit.block.data.Rotatable, org.bukkit.block.data.Waterlogged { - - public CraftFloorSign() { - super(); - } - - public CraftFloorSign(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.StandingSignBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftFloorSign.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftFloorSign.ROTATION, val); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.StandingSignBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftFloorSign.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftFloorSign.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFluids.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFluids.java deleted file mode 100644 index 1af5fe48c5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFluids.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFluids extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Levelled { - - public CraftFluids() { - super(); - } - - public CraftFluids(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLevelled - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LEVEL = getInteger(net.minecraft.world.level.block.LiquidBlock.class, "level"); - - @Override - public int getLevel() { - return this.get(CraftFluids.LEVEL); - } - - @Override - public void setLevel(int level) { - this.set(CraftFluids.LEVEL, level); - } - - @Override - public int getMaximumLevel() { - return getMax(CraftFluids.LEVEL); - } - - // Paper start - @Override - public int getMinimumLevel() { - return getMin(CraftFluids.LEVEL); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFurnaceFurace.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFurnaceFurace.java deleted file mode 100644 index 5698cb115b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftFurnaceFurace.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftFurnaceFurace extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Furnace, org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable { - - public CraftFurnaceFurace() { - super(); - } - - public CraftFurnaceFurace(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.FurnaceBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftFurnaceFurace.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftFurnaceFurace.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftFurnaceFurace.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.FurnaceBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftFurnaceFurace.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftFurnaceFurace.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java deleted file mode 100644 index bae1e6e750..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlazedTerracotta.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftGlazedTerracotta extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftGlazedTerracotta() { - super(); - } - - public CraftGlazedTerracotta(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.GlazedTerracottaBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftGlazedTerracotta.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftGlazedTerracotta.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftGlazedTerracotta.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java deleted file mode 100644 index b921b97f35..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGlowLichen.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftGlowLichen extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.GlowLichen, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftGlowLichen() { - super(); - } - - public CraftGlowLichen(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftGlowLichen.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftGlowLichen.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftGlowLichen.FACES.length; i++) { - if (CraftGlowLichen.FACES[i] != null && this.get(CraftGlowLichen.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftGlowLichen.FACES.length; i++) { - if (CraftGlowLichen.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.GlowLichenBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftGlowLichen.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftGlowLichen.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java deleted file mode 100644 index 550a80ec5c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrass.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftGrass extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Snowable { - - public CraftGrass() { - super(); - } - - public CraftGrass(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftSnowable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SNOWY = getBoolean(net.minecraft.world.level.block.GrassBlock.class, "snowy"); - - @Override - public boolean isSnowy() { - return this.get(CraftGrass.SNOWY); - } - - @Override - public void setSnowy(boolean snowy) { - this.set(CraftGrass.SNOWY, snowy); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java deleted file mode 100644 index 6f1f0d1ba5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftGrindstone.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftGrindstone extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Grindstone, org.bukkit.block.data.Directional, org.bukkit.block.data.FaceAttachable { - - public CraftGrindstone() { - super(); - } - - public CraftGrindstone(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.GrindstoneBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftGrindstone.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftGrindstone.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftGrindstone.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftFaceAttachable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACH_FACE = getEnum(net.minecraft.world.level.block.GrindstoneBlock.class, "face"); - - @Override - public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { - return this.get(CraftGrindstone.ATTACH_FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); - } - - @Override - public void setAttachedFace(org.bukkit.block.data.FaceAttachable.AttachedFace face) { - this.set(CraftGrindstone.ATTACH_FACE, face); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java deleted file mode 100644 index b216aad4ee..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingMoss.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHangingMoss extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.HangingMoss { - - public CraftHangingMoss() { - super(); - } - - public CraftHangingMoss(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftHangingMoss - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty TIP = getBoolean(net.minecraft.world.level.block.HangingMossBlock.class, "tip"); - - @Override - public boolean isTip() { - return this.get(CraftHangingMoss.TIP); - } - - @Override - public void setTip(boolean tip) { - this.set(CraftHangingMoss.TIP, tip); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java deleted file mode 100644 index c3e66c6d55..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHangingRoots.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHangingRoots extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftHangingRoots() { - super(); - } - - public CraftHangingRoots(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.HangingRootsBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftHangingRoots.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftHangingRoots.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHay.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHay.java deleted file mode 100644 index 3801685a7d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHay.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHay extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Orientable { - - public CraftHay() { - super(); - } - - public CraftHay(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.HayBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftHay.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftHay.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftHay.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java deleted file mode 100644 index d070fc8c36..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHeavyCore.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHeavyCore extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftHeavyCore() { - super(); - } - - public CraftHeavyCore(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.HeavyCoreBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftHeavyCore.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftHeavyCore.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java deleted file mode 100644 index 26091ba15d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHopper.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHopper extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Hopper, org.bukkit.block.data.Directional { - - public CraftHopper() { - super(); - } - - public CraftHopper(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftHopper - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ENABLED = getBoolean(net.minecraft.world.level.block.HopperBlock.class, "enabled"); - - @Override - public boolean isEnabled() { - return this.get(CraftHopper.ENABLED); - } - - @Override - public void setEnabled(boolean enabled) { - this.set(CraftHopper.ENABLED, enabled); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.HopperBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftHopper.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftHopper.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftHopper.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java deleted file mode 100644 index ebd0633f98..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftHugeMushroom.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftHugeMushroom extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.MultipleFacing { - - public CraftHugeMushroom() { - super(); - } - - public CraftHugeMushroom(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.HugeMushroomBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftHugeMushroom.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftHugeMushroom.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftHugeMushroom.FACES.length; i++) { - if (CraftHugeMushroom.FACES[i] != null && this.get(CraftHugeMushroom.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftHugeMushroom.FACES.length; i++) { - if (CraftHugeMushroom.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIceFrost.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIceFrost.java deleted file mode 100644 index 85367beecc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIceFrost.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftIceFrost extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftIceFrost() { - super(); - } - - public CraftIceFrost(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.FrostedIceBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftIceFrost.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftIceFrost.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftIceFrost.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java deleted file mode 100644 index e3272b34dc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftInfestedRotatedPillar.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftInfestedRotatedPillar extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Orientable { - - public CraftInfestedRotatedPillar() { - super(); - } - - public CraftInfestedRotatedPillar(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.InfestedRotatedPillarBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftInfestedRotatedPillar.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftInfestedRotatedPillar.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftInfestedRotatedPillar.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java deleted file mode 100644 index 485d212ce5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftIronBars.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftIronBars extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Fence, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftIronBars() { - super(); - } - - public CraftIronBars(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftIronBars.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftIronBars.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftIronBars.FACES.length; i++) { - if (CraftIronBars.FACES[i] != null && this.get(CraftIronBars.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftIronBars.FACES.length; i++) { - if (CraftIronBars.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.IronBarsBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftIronBars.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftIronBars.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java deleted file mode 100644 index 12237538df..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJigsaw.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftJigsaw extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Jigsaw { - - public CraftJigsaw() { - super(); - } - - public CraftJigsaw(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftJigsaw - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ORIENTATION = getEnum(net.minecraft.world.level.block.JigsawBlock.class, "orientation"); - - @Override - public org.bukkit.block.data.type.Jigsaw.Orientation getOrientation() { - return this.get(CraftJigsaw.ORIENTATION, org.bukkit.block.data.type.Jigsaw.Orientation.class); - } - - @Override - public void setOrientation(org.bukkit.block.data.type.Jigsaw.Orientation orientation) { - this.set(CraftJigsaw.ORIENTATION, orientation); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJukeBox.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJukeBox.java deleted file mode 100644 index 3e37557bf6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftJukeBox.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftJukeBox extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Jukebox { - - public CraftJukeBox() { - super(); - } - - public CraftJukeBox(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftJukebox - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HAS_RECORD = getBoolean(net.minecraft.world.level.block.JukeboxBlock.class, "has_record"); - - @Override - public boolean hasRecord() { - return this.get(CraftJukeBox.HAS_RECORD); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java deleted file mode 100644 index 299b91121a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftKelp.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftKelp extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftKelp() { - super(); - } - - public CraftKelp(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.KelpBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftKelp.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftKelp.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftKelp.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java deleted file mode 100644 index 26e5905647..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLadder.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLadder extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Ladder, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftLadder() { - super(); - } - - public CraftLadder(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.LadderBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftLadder.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftLadder.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftLadder.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.LadderBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftLadder.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftLadder.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java deleted file mode 100644 index 37ab63bb8d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLantern.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLantern extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Lantern, org.bukkit.block.data.Hangable, org.bukkit.block.data.Waterlogged { - - public CraftLantern() { - super(); - } - - public CraftLantern(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftHangable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HANGING = getBoolean(net.minecraft.world.level.block.LanternBlock.class, "hanging"); - - @Override - public boolean isHanging() { - return this.get(CraftLantern.HANGING); - } - - @Override - public void setHanging(boolean hanging) { - this.set(CraftLantern.HANGING, hanging); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.LanternBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftLantern.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftLantern.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java deleted file mode 100644 index c0e0cbceb0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLayeredCauldron.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLayeredCauldron extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Levelled { - - public CraftLayeredCauldron() { - super(); - } - - public CraftLayeredCauldron(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLevelled - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LEVEL = getInteger(net.minecraft.world.level.block.LayeredCauldronBlock.class, "level"); - - @Override - public int getLevel() { - return this.get(CraftLayeredCauldron.LEVEL); - } - - @Override - public void setLevel(int level) { - this.set(CraftLayeredCauldron.LEVEL, level); - } - - @Override - public int getMaximumLevel() { - return getMax(CraftLayeredCauldron.LEVEL); - } - - // Paper start - @Override - public int getMinimumLevel() { - return getMin(CraftLayeredCauldron.LEVEL); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java deleted file mode 100644 index ab336b400c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLeaves.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLeaves extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Leaves, org.bukkit.block.data.Waterlogged { - - public CraftLeaves() { - super(); - } - - public CraftLeaves(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftLeaves - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger(net.minecraft.world.level.block.LeavesBlock.class, "distance"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty PERSISTENT = getBoolean(net.minecraft.world.level.block.LeavesBlock.class, "persistent"); - - @Override - public boolean isPersistent() { - return this.get(CraftLeaves.PERSISTENT); - } - - @Override - public void setPersistent(boolean persistent) { - this.set(CraftLeaves.PERSISTENT, persistent); - } - - @Override - public int getDistance() { - return this.get(CraftLeaves.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftLeaves.DISTANCE, distance); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.LeavesBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftLeaves.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftLeaves.WATERLOGGED, waterlogged); - } - - // Paper start - @Override - public int getMaximumDistance() { - return getMax(CraftLeaves.DISTANCE); - } - - @Override - public int getMinimumDistance() { - return getMin(CraftLeaves.DISTANCE); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java deleted file mode 100644 index ee53b15208..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLectern.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLectern extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Lectern, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftLectern() { - super(); - } - - public CraftLectern(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftLectern - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HAS_BOOK = getBoolean(net.minecraft.world.level.block.LecternBlock.class, "has_book"); - - @Override - public boolean hasBook() { - return this.get(CraftLectern.HAS_BOOK); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.LecternBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftLectern.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftLectern.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftLectern.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.LecternBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftLectern.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftLectern.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLever.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLever.java deleted file mode 100644 index 761ab0fb13..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLever.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLever extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Switch, org.bukkit.block.data.Directional, org.bukkit.block.data.FaceAttachable, org.bukkit.block.data.Powerable { - - public CraftLever() { - super(); - } - - public CraftLever(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSwitch - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACE = getEnum(net.minecraft.world.level.block.LeverBlock.class, "face"); - - @Override - public org.bukkit.block.data.type.Switch.Face getFace() { - return this.get(CraftLever.FACE, org.bukkit.block.data.type.Switch.Face.class); - } - - @Override - public void setFace(org.bukkit.block.data.type.Switch.Face face) { - this.set(CraftLever.FACE, face); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.LeverBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftLever.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftLever.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftLever.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftFaceAttachable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty ATTACH_FACE = getEnum(net.minecraft.world.level.block.LeverBlock.class, "face"); - - @Override - public org.bukkit.block.data.FaceAttachable.AttachedFace getAttachedFace() { - return this.get(CraftLever.ATTACH_FACE, org.bukkit.block.data.FaceAttachable.AttachedFace.class); - } - - @Override - public void setAttachedFace(org.bukkit.block.data.FaceAttachable.AttachedFace face) { - this.set(CraftLever.ATTACH_FACE, face); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.LeverBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftLever.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftLever.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLight.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLight.java deleted file mode 100644 index 8c936a95ef..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLight.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLight extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Light, org.bukkit.block.data.Levelled, org.bukkit.block.data.Waterlogged { - - public CraftLight() { - super(); - } - - public CraftLight(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLevelled - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LEVEL = getInteger(net.minecraft.world.level.block.LightBlock.class, "level"); - - @Override - public int getLevel() { - return this.get(CraftLight.LEVEL); - } - - @Override - public void setLevel(int level) { - this.set(CraftLight.LEVEL, level); - } - - @Override - public int getMaximumLevel() { - return getMax(CraftLight.LEVEL); - } - - // Paper start - @Override - public int getMinimumLevel() { - return getMin(CraftLight.LEVEL); - } - // Paper end - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.LightBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftLight.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftLight.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java deleted file mode 100644 index b3bc8b411c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLightningRod.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLightningRod extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.LightningRod, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable, org.bukkit.block.data.Waterlogged { - - public CraftLightningRod() { - super(); - } - - public CraftLightningRod(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.LightningRodBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftLightningRod.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftLightningRod.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftLightningRod.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.LightningRodBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftLightningRod.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftLightningRod.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.LightningRodBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftLightningRod.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftLightningRod.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java deleted file mode 100644 index e39737c6a7..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftLoom.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftLoom extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftLoom() { - super(); - } - - public CraftLoom(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.LoomBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftLoom.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftLoom.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftLoom.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java deleted file mode 100644 index 8b621aaead..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveLeaves.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMangroveLeaves extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Leaves, org.bukkit.block.data.Waterlogged { - - public CraftMangroveLeaves() { - super(); - } - - public CraftMangroveLeaves(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftLeaves - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger(net.minecraft.world.level.block.MangroveLeavesBlock.class, "distance"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty PERSISTENT = getBoolean(net.minecraft.world.level.block.MangroveLeavesBlock.class, "persistent"); - - @Override - public boolean isPersistent() { - return this.get(CraftMangroveLeaves.PERSISTENT); - } - - @Override - public void setPersistent(boolean persistent) { - this.set(CraftMangroveLeaves.PERSISTENT, persistent); - } - - @Override - public int getDistance() { - return this.get(CraftMangroveLeaves.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftMangroveLeaves.DISTANCE, distance); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.MangroveLeavesBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMangroveLeaves.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMangroveLeaves.WATERLOGGED, waterlogged); - } - - // Paper start - @Override - public int getMinimumDistance() { - return getMin(CraftMangroveLeaves.DISTANCE); - } - - @Override - public int getMaximumDistance() { - return getMax(CraftMangroveLeaves.DISTANCE); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java deleted file mode 100644 index 5a48fdd96b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangrovePropagule.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMangrovePropagule extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.MangrovePropagule, org.bukkit.block.data.Ageable, org.bukkit.block.data.Hangable, org.bukkit.block.data.type.Sapling, org.bukkit.block.data.Waterlogged { - - public CraftMangrovePropagule() { - super(); - } - - public CraftMangrovePropagule(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.MangrovePropaguleBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftMangrovePropagule.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftMangrovePropagule.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftMangrovePropagule.AGE); - } - - // org.bukkit.craftbukkit.block.data.CraftHangable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty HANGING = getBoolean(net.minecraft.world.level.block.MangrovePropaguleBlock.class, "hanging"); - - @Override - public boolean isHanging() { - return this.get(CraftMangrovePropagule.HANGING); - } - - @Override - public void setHanging(boolean hanging) { - this.set(CraftMangrovePropagule.HANGING, hanging); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSapling - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty STAGE = getInteger(net.minecraft.world.level.block.MangrovePropaguleBlock.class, "stage"); - - @Override - public int getStage() { - return this.get(CraftMangrovePropagule.STAGE); - } - - @Override - public void setStage(int stage) { - this.set(CraftMangrovePropagule.STAGE, stage); - } - - @Override - public int getMaximumStage() { - return getMax(CraftMangrovePropagule.STAGE); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.MangrovePropaguleBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMangrovePropagule.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMangrovePropagule.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java deleted file mode 100644 index 1442ed8cf8..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMangroveRoots.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMangroveRoots extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftMangroveRoots() { - super(); - } - - public CraftMangroveRoots(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.MangroveRootsBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMangroveRoots.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMangroveRoots.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartDetector.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartDetector.java deleted file mode 100644 index a462ef71be..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartDetector.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMinecartDetector extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.RedstoneRail, org.bukkit.block.data.Powerable, org.bukkit.block.data.Rail, org.bukkit.block.data.Waterlogged { - - public CraftMinecartDetector() { - super(); - } - - public CraftMinecartDetector(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.DetectorRailBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftMinecartDetector.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftMinecartDetector.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftRail - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum(net.minecraft.world.level.block.DetectorRailBlock.class, "shape"); - - @Override - public org.bukkit.block.data.Rail.Shape getShape() { - return this.get(CraftMinecartDetector.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.Rail.Shape shape) { - this.set(CraftMinecartDetector.SHAPE, shape); - } - - @Override - public java.util.Set getShapes() { - return this.getValues(CraftMinecartDetector.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.DetectorRailBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMinecartDetector.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMinecartDetector.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartTrack.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartTrack.java deleted file mode 100644 index f58d2af86a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMinecartTrack.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMinecartTrack extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Rail, org.bukkit.block.data.Waterlogged { - - public CraftMinecartTrack() { - super(); - } - - public CraftMinecartTrack(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftRail - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum(net.minecraft.world.level.block.RailBlock.class, "shape"); - - @Override - public org.bukkit.block.data.Rail.Shape getShape() { - return this.get(CraftMinecartTrack.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.Rail.Shape shape) { - this.set(CraftMinecartTrack.SHAPE, shape); - } - - @Override - public java.util.Set getShapes() { - return this.getValues(CraftMinecartTrack.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.RailBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMinecartTrack.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMinecartTrack.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java deleted file mode 100644 index 745eaca8b7..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMossyCarpet.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMossyCarpet extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.MossyCarpet { - - public CraftMossyCarpet() { - super(); - } - - public CraftMossyCarpet(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftMossyCarpet - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BOTTOM = getBoolean(net.minecraft.world.level.block.MossyCarpetBlock.class, "bottom"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty[] HEIGHTS = new net.minecraft.world.level.block.state.properties.EnumProperty[]{ - getEnum(net.minecraft.world.level.block.MossyCarpetBlock.class, "north"), getEnum(net.minecraft.world.level.block.MossyCarpetBlock.class, "east"), getEnum(net.minecraft.world.level.block.MossyCarpetBlock.class, "south"), getEnum(net.minecraft.world.level.block.MossyCarpetBlock.class, "west") - }; - - @Override - public boolean isBottom() { - return this.get(CraftMossyCarpet.BOTTOM); - } - - @Override - public void setBottom(boolean up) { - this.set(CraftMossyCarpet.BOTTOM, up); - } - - @Override - public org.bukkit.block.data.type.MossyCarpet.Height getHeight(org.bukkit.block.BlockFace face) { - return this.get(CraftMossyCarpet.HEIGHTS[face.ordinal()], org.bukkit.block.data.type.MossyCarpet.Height.class); - } - - @Override - public void setHeight(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.MossyCarpet.Height height) { - this.set(CraftMossyCarpet.HEIGHTS[face.ordinal()], height); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java deleted file mode 100644 index c4796d88de..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMultiface.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMultiface extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.ResinClump, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftMultiface() { - super(); - } - - public CraftMultiface(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftMultiface.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftMultiface.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftMultiface.FACES.length; i++) { - if (CraftMultiface.FACES[i] != null && this.get(CraftMultiface.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftMultiface.FACES.length; i++) { - if (CraftMultiface.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.MultifaceBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftMultiface.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftMultiface.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMycel.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMycel.java deleted file mode 100644 index ec10c721e8..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftMycel.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftMycel extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Snowable { - - public CraftMycel() { - super(); - } - - public CraftMycel(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftSnowable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SNOWY = getBoolean(net.minecraft.world.level.block.MyceliumBlock.class, "snowy"); - - @Override - public boolean isSnowy() { - return this.get(CraftMycel.SNOWY); - } - - @Override - public void setSnowy(boolean snowy) { - this.set(CraftMycel.SNOWY, snowy); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java deleted file mode 100644 index b98d7f857b..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNetherWart.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftNetherWart extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftNetherWart() { - super(); - } - - public CraftNetherWart(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.NetherWartBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftNetherWart.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftNetherWart.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftNetherWart.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNote.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNote.java deleted file mode 100644 index 60675e5519..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftNote.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftNote extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.NoteBlock, org.bukkit.block.data.Powerable { - - public CraftNote() { - super(); - } - - public CraftNote(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftNoteBlock - - private static final net.minecraft.world.level.block.state.properties.EnumProperty INSTRUMENT = getEnum(net.minecraft.world.level.block.NoteBlock.class, "instrument"); - private static final net.minecraft.world.level.block.state.properties.IntegerProperty NOTE = getInteger(net.minecraft.world.level.block.NoteBlock.class, "note"); - - @Override - public org.bukkit.Instrument getInstrument() { - return this.get(CraftNote.INSTRUMENT, org.bukkit.Instrument.class); - } - - @Override - public void setInstrument(org.bukkit.Instrument instrument) { - this.set(CraftNote.INSTRUMENT, instrument); - } - - @Override - public org.bukkit.Note getNote() { - return new org.bukkit.Note(this.get(CraftNote.NOTE)); - } - - @Override - public void setNote(org.bukkit.Note note) { - this.set(CraftNote.NOTE, (int) note.getId()); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.NoteBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftNote.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftNote.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java deleted file mode 100644 index e6364d5bfc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftObserver.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftObserver extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Observer, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftObserver() { - super(); - } - - public CraftObserver(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ObserverBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftObserver.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftObserver.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftObserver.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.ObserverBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftObserver.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftObserver.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java deleted file mode 100644 index e37e84c333..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftParticleLeaves.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftParticleLeaves extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Leaves, org.bukkit.block.data.Waterlogged { - - public CraftParticleLeaves() { - super(); - } - - public CraftParticleLeaves(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftLeaves - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger(net.minecraft.world.level.block.ParticleLeavesBlock.class, "distance"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty PERSISTENT = getBoolean(net.minecraft.world.level.block.ParticleLeavesBlock.class, "persistent"); - - @Override - public boolean isPersistent() { - return this.get(CraftParticleLeaves.PERSISTENT); - } - - @Override - public void setPersistent(boolean persistent) { - this.set(CraftParticleLeaves.PERSISTENT, persistent); - } - - @Override - public int getDistance() { - return this.get(CraftParticleLeaves.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftParticleLeaves.DISTANCE, distance); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.ParticleLeavesBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftParticleLeaves.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftParticleLeaves.WATERLOGGED, waterlogged); - } - - // Paper start - @Override - public int getMaximumDistance() { - return getMax(DISTANCE); - } - - @Override - public int getMinimumDistance() { - return getMin(DISTANCE); - } - // Paper end -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java deleted file mode 100644 index 60b246ab4d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiglinWallSkull.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPiglinWallSkull extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallSkull, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftPiglinWallSkull() { - super(); - } - - public CraftPiglinWallSkull(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.PiglinWallSkullBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPiglinWallSkull.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPiglinWallSkull.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPiglinWallSkull.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.PiglinWallSkullBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftPiglinWallSkull.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftPiglinWallSkull.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java deleted file mode 100644 index 0f7df1b4c5..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPinkPetals.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPinkPetals extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.PinkPetals, org.bukkit.block.data.Directional { - - public CraftPinkPetals() { - super(); - } - - public CraftPinkPetals(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftPinkPetals - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty FLOWER_AMOUNT = getInteger(net.minecraft.world.level.block.PinkPetalsBlock.class, "flower_amount"); - - @Override - public int getFlowerAmount() { - return this.get(CraftPinkPetals.FLOWER_AMOUNT); - } - - @Override - public void setFlowerAmount(int flower_amount) { - this.set(CraftPinkPetals.FLOWER_AMOUNT, flower_amount); - } - - // Paper start - @Override - public int getMinimumFlowerAmount() { - return getMin(CraftPinkPetals.FLOWER_AMOUNT); - } - // Paper end - - @Override - public int getMaximumFlowerAmount() { - return getMax(CraftPinkPetals.FLOWER_AMOUNT); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.PinkPetalsBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPinkPetals.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPinkPetals.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPinkPetals.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiston.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiston.java deleted file mode 100644 index f31db7daf2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPiston.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPiston extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Piston, org.bukkit.block.data.Directional { - - public CraftPiston() { - super(); - } - - public CraftPiston(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftPiston - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty EXTENDED = getBoolean(net.minecraft.world.level.block.piston.PistonBaseBlock.class, "extended"); - - @Override - public boolean isExtended() { - return this.get(CraftPiston.EXTENDED); - } - - @Override - public void setExtended(boolean extended) { - this.set(CraftPiston.EXTENDED, extended); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.piston.PistonBaseBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPiston.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPiston.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPiston.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonExtension.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonExtension.java deleted file mode 100644 index 21b6d3c11c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonExtension.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPistonExtension extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.PistonHead, org.bukkit.block.data.type.TechnicalPiston, org.bukkit.block.data.Directional { - - public CraftPistonExtension() { - super(); - } - - public CraftPistonExtension(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftPistonHead - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SHORT = getBoolean(net.minecraft.world.level.block.piston.PistonHeadBlock.class, "short"); - - @Override - public boolean isShort() { - return this.get(CraftPistonExtension.SHORT); - } - - @Override - public void setShort(boolean _short) { - this.set(CraftPistonExtension.SHORT, _short); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTechnicalPiston - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.piston.PistonHeadBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.TechnicalPiston.Type getType() { - return this.get(CraftPistonExtension.TYPE, org.bukkit.block.data.type.TechnicalPiston.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.TechnicalPiston.Type type) { - this.set(CraftPistonExtension.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.piston.PistonHeadBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPistonExtension.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPistonExtension.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPistonExtension.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonMoving.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonMoving.java deleted file mode 100644 index 497843a5e6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPistonMoving.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPistonMoving extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TechnicalPiston, org.bukkit.block.data.Directional { - - public CraftPistonMoving() { - super(); - } - - public CraftPistonMoving(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTechnicalPiston - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.piston.MovingPistonBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.TechnicalPiston.Type getType() { - return this.get(CraftPistonMoving.TYPE, org.bukkit.block.data.type.TechnicalPiston.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.TechnicalPiston.Type type) { - this.set(CraftPistonMoving.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.piston.MovingPistonBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPistonMoving.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPistonMoving.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPistonMoving.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java deleted file mode 100644 index e21d374ad9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPitcherCrop.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPitcherCrop extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.PitcherCrop, org.bukkit.block.data.Ageable, org.bukkit.block.data.Bisected { - - public CraftPitcherCrop() { - super(); - } - - public CraftPitcherCrop(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.PitcherCropBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftPitcherCrop.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftPitcherCrop.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftPitcherCrop.AGE); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.PitcherCropBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftPitcherCrop.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftPitcherCrop.HALF, half); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java deleted file mode 100644 index bdf6d3fce9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPointedDripstone.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPointedDripstone extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.PointedDripstone, org.bukkit.block.data.Waterlogged { - - public CraftPointedDripstone() { - super(); - } - - public CraftPointedDripstone(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftPointedDripstone - - private static final net.minecraft.world.level.block.state.properties.EnumProperty VERTICAL_DIRECTION = getEnum(net.minecraft.world.level.block.PointedDripstoneBlock.class, "vertical_direction"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty THICKNESS = getEnum(net.minecraft.world.level.block.PointedDripstoneBlock.class, "thickness"); - - @Override - public org.bukkit.block.BlockFace getVerticalDirection() { - return this.get(CraftPointedDripstone.VERTICAL_DIRECTION, org.bukkit.block.BlockFace.class); - } - - @Override - public void setVerticalDirection(org.bukkit.block.BlockFace direction) { - this.set(CraftPointedDripstone.VERTICAL_DIRECTION, direction); - } - - @Override - public java.util.Set getVerticalDirections() { - return this.getValues(CraftPointedDripstone.VERTICAL_DIRECTION, org.bukkit.block.BlockFace.class); - } - - @Override - public org.bukkit.block.data.type.PointedDripstone.Thickness getThickness() { - return this.get(CraftPointedDripstone.THICKNESS, org.bukkit.block.data.type.PointedDripstone.Thickness.class); - } - - @Override - public void setThickness(org.bukkit.block.data.type.PointedDripstone.Thickness thickness) { - this.set(CraftPointedDripstone.THICKNESS, thickness); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.PointedDripstoneBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftPointedDripstone.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftPointedDripstone.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPortal.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPortal.java deleted file mode 100644 index 0f182381c1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPortal.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPortal extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Orientable { - - public CraftPortal() { - super(); - } - - public CraftPortal(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.NetherPortalBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftPortal.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftPortal.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftPortal.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java deleted file mode 100644 index ee3faab6b3..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPotatoes.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPotatoes extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftPotatoes() { - super(); - } - - public CraftPotatoes(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.PotatoBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftPotatoes.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftPotatoes.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftPotatoes.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java deleted file mode 100644 index a52e3dcedf..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPoweredRail.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPoweredRail extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.RedstoneRail, org.bukkit.block.data.Powerable, org.bukkit.block.data.Rail, org.bukkit.block.data.Waterlogged { - - public CraftPoweredRail() { - super(); - } - - public CraftPoweredRail(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.PoweredRailBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftPoweredRail.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftPoweredRail.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftRail - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum(net.minecraft.world.level.block.PoweredRailBlock.class, "shape"); - - @Override - public org.bukkit.block.data.Rail.Shape getShape() { - return this.get(CraftPoweredRail.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.Rail.Shape shape) { - this.set(CraftPoweredRail.SHAPE, shape); - } - - @Override - public java.util.Set getShapes() { - return this.getValues(CraftPoweredRail.SHAPE, org.bukkit.block.data.Rail.Shape.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.PoweredRailBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftPoweredRail.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftPoweredRail.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateBinary.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateBinary.java deleted file mode 100644 index 05c7662f44..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateBinary.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPressurePlateBinary extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Powerable { - - public CraftPressurePlateBinary() { - super(); - } - - public CraftPressurePlateBinary(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.PressurePlateBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftPressurePlateBinary.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftPressurePlateBinary.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateWeighted.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateWeighted.java deleted file mode 100644 index 0eb4b7bdee..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPressurePlateWeighted.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPressurePlateWeighted extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.AnaloguePowerable { - - public CraftPressurePlateWeighted() { - super(); - } - - public CraftPressurePlateWeighted(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.WeightedPressurePlateBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftPressurePlateWeighted.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftPressurePlateWeighted.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftPressurePlateWeighted.POWER); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPumpkinCarved.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPumpkinCarved.java deleted file mode 100644 index ddd573ae55..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftPumpkinCarved.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftPumpkinCarved extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftPumpkinCarved() { - super(); - } - - public CraftPumpkinCarved(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.CarvedPumpkinBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftPumpkinCarved.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftPumpkinCarved.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftPumpkinCarved.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneComparator.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneComparator.java deleted file mode 100644 index d3d68ae06e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneComparator.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneComparator extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Comparator, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftRedstoneComparator() { - super(); - } - - public CraftRedstoneComparator(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftComparator - - private static final net.minecraft.world.level.block.state.properties.EnumProperty MODE = getEnum(net.minecraft.world.level.block.ComparatorBlock.class, "mode"); - - @Override - public org.bukkit.block.data.type.Comparator.Mode getMode() { - return this.get(CraftRedstoneComparator.MODE, org.bukkit.block.data.type.Comparator.Mode.class); - } - - @Override - public void setMode(org.bukkit.block.data.type.Comparator.Mode mode) { - this.set(CraftRedstoneComparator.MODE, mode); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ComparatorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftRedstoneComparator.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftRedstoneComparator.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftRedstoneComparator.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.ComparatorBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftRedstoneComparator.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftRedstoneComparator.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java deleted file mode 100644 index 99ea9327b1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneLamp.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneLamp extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Lightable { - - public CraftRedstoneLamp() { - super(); - } - - public CraftRedstoneLamp(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.RedstoneLampBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftRedstoneLamp.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftRedstoneLamp.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneOre.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneOre.java deleted file mode 100644 index 5069c1ba07..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneOre.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneOre extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Lightable { - - public CraftRedstoneOre() { - super(); - } - - public CraftRedstoneOre(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.RedStoneOreBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftRedstoneOre.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftRedstoneOre.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java deleted file mode 100644 index 9ffd14f886..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorch.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneTorch extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Lightable { - - public CraftRedstoneTorch() { - super(); - } - - public CraftRedstoneTorch(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.RedstoneTorchBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftRedstoneTorch.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftRedstoneTorch.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorchWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorchWall.java deleted file mode 100644 index 4df2452825..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneTorchWall.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneTorchWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.RedstoneWallTorch, org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable { - - public CraftRedstoneTorchWall() { - super(); - } - - public CraftRedstoneTorchWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.RedstoneWallTorchBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftRedstoneTorchWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftRedstoneTorchWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftRedstoneTorchWall.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.RedstoneWallTorchBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftRedstoneTorchWall.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftRedstoneTorchWall.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWire.java deleted file mode 100644 index 009be1c9a4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRedstoneWire.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRedstoneWire extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.RedstoneWire, org.bukkit.block.data.AnaloguePowerable { - - public CraftRedstoneWire() { - super(); - } - - public CraftRedstoneWire(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftRedstoneWire - - private static final net.minecraft.world.level.block.state.properties.EnumProperty NORTH = getEnum(net.minecraft.world.level.block.RedStoneWireBlock.class, "north"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty EAST = getEnum(net.minecraft.world.level.block.RedStoneWireBlock.class, "east"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty SOUTH = getEnum(net.minecraft.world.level.block.RedStoneWireBlock.class, "south"); - private static final net.minecraft.world.level.block.state.properties.EnumProperty WEST = getEnum(net.minecraft.world.level.block.RedStoneWireBlock.class, "west"); - - @Override - public org.bukkit.block.data.type.RedstoneWire.Connection getFace(org.bukkit.block.BlockFace face) { - switch (face) { - case NORTH: - return this.get(CraftRedstoneWire.NORTH, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case EAST: - return this.get(CraftRedstoneWire.EAST, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case SOUTH: - return this.get(CraftRedstoneWire.SOUTH, org.bukkit.block.data.type.RedstoneWire.Connection.class); - case WEST: - return this.get(CraftRedstoneWire.WEST, org.bukkit.block.data.type.RedstoneWire.Connection.class); - default: - throw new IllegalArgumentException("Cannot have face " + face); - } - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, org.bukkit.block.data.type.RedstoneWire.Connection connection) { - switch (face) { - case NORTH: - this.set(CraftRedstoneWire.NORTH, connection); - break; - case EAST: - this.set(CraftRedstoneWire.EAST, connection); - break; - case SOUTH: - this.set(CraftRedstoneWire.SOUTH, connection); - break; - case WEST: - this.set(CraftRedstoneWire.WEST, connection); - break; - default: - throw new IllegalArgumentException("Cannot have face " + face); - } - } - - @Override - public java.util.Set getAllowedFaces() { - return com.google.common.collect.ImmutableSet.of(org.bukkit.block.BlockFace.NORTH, org.bukkit.block.BlockFace.EAST, org.bukkit.block.BlockFace.SOUTH, org.bukkit.block.BlockFace.WEST); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.RedStoneWireBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftRedstoneWire.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftRedstoneWire.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftRedstoneWire.POWER); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftReed.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftReed.java deleted file mode 100644 index 4d613c6703..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftReed.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftReed extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftReed() { - super(); - } - - public CraftReed(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.SugarCaneBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftReed.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftReed.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftReed.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java deleted file mode 100644 index 5894cea1d0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRepeater.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRepeater extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Repeater, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftRepeater() { - super(); - } - - public CraftRepeater(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftRepeater - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DELAY = getInteger(net.minecraft.world.level.block.RepeaterBlock.class, "delay"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LOCKED = getBoolean(net.minecraft.world.level.block.RepeaterBlock.class, "locked"); - - @Override - public int getDelay() { - return this.get(CraftRepeater.DELAY); - } - - @Override - public void setDelay(int delay) { - this.set(CraftRepeater.DELAY, delay); - } - - @Override - public int getMinimumDelay() { - return getMin(CraftRepeater.DELAY); - } - - @Override - public int getMaximumDelay() { - return getMax(CraftRepeater.DELAY); - } - - @Override - public boolean isLocked() { - return this.get(CraftRepeater.LOCKED); - } - - @Override - public void setLocked(boolean locked) { - this.set(CraftRepeater.LOCKED, locked); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.RepeaterBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftRepeater.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftRepeater.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftRepeater.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.RepeaterBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftRepeater.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftRepeater.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java deleted file mode 100644 index 4ee32a2513..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRespawnAnchor.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRespawnAnchor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.RespawnAnchor { - - public CraftRespawnAnchor() { - super(); - } - - public CraftRespawnAnchor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftRespawnAnchor - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty CHARGES = getInteger(net.minecraft.world.level.block.RespawnAnchorBlock.class, "charges"); - - @Override - public int getCharges() { - return this.get(CraftRespawnAnchor.CHARGES); - } - - @Override - public void setCharges(int charges) { - this.set(CraftRespawnAnchor.CHARGES, charges); - } - - @Override - public int getMaximumCharges() { - return getMax(CraftRespawnAnchor.CHARGES); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRotatable.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRotatable.java deleted file mode 100644 index 4f28a405db..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftRotatable.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftRotatable extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Orientable { - - public CraftRotatable() { - super(); - } - - public CraftRotatable(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftOrientable - - private static final net.minecraft.world.level.block.state.properties.EnumProperty AXIS = getEnum(net.minecraft.world.level.block.RotatedPillarBlock.class, "axis"); - - @Override - public org.bukkit.Axis getAxis() { - return this.get(CraftRotatable.AXIS, org.bukkit.Axis.class); - } - - @Override - public void setAxis(org.bukkit.Axis axis) { - this.set(CraftRotatable.AXIS, axis); - } - - @Override - public java.util.Set getAxes() { - return this.getValues(CraftRotatable.AXIS, org.bukkit.Axis.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java deleted file mode 100644 index 9ba586d5ce..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSapling.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSapling extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Sapling { - - public CraftSapling() { - super(); - } - - public CraftSapling(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSapling - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty STAGE = getInteger(net.minecraft.world.level.block.SaplingBlock.class, "stage"); - - @Override - public int getStage() { - return this.get(CraftSapling.STAGE); - } - - @Override - public void setStage(int stage) { - this.set(CraftSapling.STAGE, stage); - } - - @Override - public int getMaximumStage() { - return getMax(CraftSapling.STAGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java deleted file mode 100644 index 4b4f6853dc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftScaffolding.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftScaffolding extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Scaffolding, org.bukkit.block.data.Waterlogged { - - public CraftScaffolding() { - super(); - } - - public CraftScaffolding(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftScaffolding - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BOTTOM = getBoolean(net.minecraft.world.level.block.ScaffoldingBlock.class, "bottom"); - private static final net.minecraft.world.level.block.state.properties.IntegerProperty DISTANCE = getInteger(net.minecraft.world.level.block.ScaffoldingBlock.class, "distance"); - - @Override - public boolean isBottom() { - return this.get(CraftScaffolding.BOTTOM); - } - - @Override - public void setBottom(boolean bottom) { - this.set(CraftScaffolding.BOTTOM, bottom); - } - - @Override - public int getDistance() { - return this.get(CraftScaffolding.DISTANCE); - } - - @Override - public void setDistance(int distance) { - this.set(CraftScaffolding.DISTANCE, distance); - } - - @Override - public int getMaximumDistance() { - return getMax(CraftScaffolding.DISTANCE); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.ScaffoldingBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftScaffolding.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftScaffolding.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java deleted file mode 100644 index 653cb1930d..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkCatalyst.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSculkCatalyst extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SculkCatalyst { - - public CraftSculkCatalyst() { - super(); - } - - public CraftSculkCatalyst(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSculkCatalyst - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty BLOOM = getBoolean(net.minecraft.world.level.block.SculkCatalystBlock.class, "bloom"); - - @Override - public boolean isBloom() { - return this.get(CraftSculkCatalyst.BLOOM); - } - - @Override - public void setBloom(boolean bloom) { - this.set(CraftSculkCatalyst.BLOOM, bloom); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java deleted file mode 100644 index 10eb0ac019..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkSensor.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSculkSensor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SculkSensor, org.bukkit.block.data.AnaloguePowerable, org.bukkit.block.data.Waterlogged { - - public CraftSculkSensor() { - super(); - } - - public CraftSculkSensor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSculkSensor - - private static final net.minecraft.world.level.block.state.properties.EnumProperty PHASE = getEnum(net.minecraft.world.level.block.SculkSensorBlock.class, "sculk_sensor_phase"); - - @Override - public org.bukkit.block.data.type.SculkSensor.Phase getPhase() { - return this.get(CraftSculkSensor.PHASE, org.bukkit.block.data.type.SculkSensor.Phase.class); - } - - @Override - public void setPhase(org.bukkit.block.data.type.SculkSensor.Phase phase) { - this.set(CraftSculkSensor.PHASE, phase); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.SculkSensorBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftSculkSensor.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftSculkSensor.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftSculkSensor.POWER); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SculkSensorBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftSculkSensor.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftSculkSensor.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java deleted file mode 100644 index 099169583a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkShrieker.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSculkShrieker extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SculkShrieker, org.bukkit.block.data.Waterlogged { - - public CraftSculkShrieker() { - super(); - } - - public CraftSculkShrieker(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSculkShrieker - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty CAN_SUMMON = getBoolean(net.minecraft.world.level.block.SculkShriekerBlock.class, "can_summon"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty SHRIEKING = getBoolean(net.minecraft.world.level.block.SculkShriekerBlock.class, "shrieking"); - - @Override - public boolean isCanSummon() { - return this.get(CraftSculkShrieker.CAN_SUMMON); - } - - @Override - public void setCanSummon(boolean can_summon) { - this.set(CraftSculkShrieker.CAN_SUMMON, can_summon); - } - - @Override - public boolean isShrieking() { - return this.get(CraftSculkShrieker.SHRIEKING); - } - - @Override - public void setShrieking(boolean shrieking) { - this.set(CraftSculkShrieker.SHRIEKING, shrieking); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SculkShriekerBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftSculkShrieker.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftSculkShrieker.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java deleted file mode 100644 index c753e94075..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSculkVein.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSculkVein extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SculkVein, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftSculkVein() { - super(); - } - - public CraftSculkVein(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftSculkVein.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftSculkVein.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftSculkVein.FACES.length; i++) { - if (CraftSculkVein.FACES[i] != null && this.get(CraftSculkVein.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftSculkVein.FACES.length; i++) { - if (CraftSculkVein.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SculkVeinBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftSculkVein.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftSculkVein.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java deleted file mode 100644 index 37d1b9c8fc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSeaPickle.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSeaPickle extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SeaPickle, org.bukkit.block.data.Waterlogged { - - public CraftSeaPickle() { - super(); - } - - public CraftSeaPickle(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSeaPickle - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty PICKLES = getInteger(net.minecraft.world.level.block.SeaPickleBlock.class, "pickles"); - - @Override - public int getPickles() { - return this.get(CraftSeaPickle.PICKLES); - } - - @Override - public void setPickles(int pickles) { - this.set(CraftSeaPickle.PICKLES, pickles); - } - - @Override - public int getMinimumPickles() { - return getMin(CraftSeaPickle.PICKLES); - } - - @Override - public int getMaximumPickles() { - return getMax(CraftSeaPickle.PICKLES); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SeaPickleBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftSeaPickle.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftSeaPickle.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java deleted file mode 100644 index 37b0253538..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftShulkerBox.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftShulkerBox extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftShulkerBox() { - super(); - } - - public CraftShulkerBox(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.ShulkerBoxBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftShulkerBox.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftShulkerBox.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftShulkerBox.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java deleted file mode 100644 index 49f0ee79f4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkull.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSkull extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Skull, org.bukkit.block.data.Powerable, org.bukkit.block.data.Rotatable { - - public CraftSkull() { - super(); - } - - public CraftSkull(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.SkullBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftSkull.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftSkull.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.SkullBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftSkull.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftSkull.ROTATION, val); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayer.java deleted file mode 100644 index 9f956fd19c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayer.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSkullPlayer extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Skull, org.bukkit.block.data.Powerable, org.bukkit.block.data.Rotatable { - - public CraftSkullPlayer() { - super(); - } - - public CraftSkullPlayer(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.PlayerHeadBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftSkullPlayer.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftSkullPlayer.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.PlayerHeadBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftSkullPlayer.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftSkullPlayer.ROTATION, val); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayerWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayerWall.java deleted file mode 100644 index c73be942b0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullPlayerWall.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSkullPlayerWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallSkull, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftSkullPlayerWall() { - super(); - } - - public CraftSkullPlayerWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.PlayerWallHeadBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftSkullPlayerWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftSkullPlayerWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftSkullPlayerWall.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.PlayerWallHeadBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftSkullPlayerWall.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftSkullPlayerWall.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullWall.java deleted file mode 100644 index 538fd08e8c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSkullWall.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSkullWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallSkull, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftSkullWall() { - super(); - } - - public CraftSkullWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WallSkullBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftSkullWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftSkullWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftSkullWall.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WallSkullBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftSkullWall.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftSkullWall.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java deleted file mode 100644 index 34a41353d1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmallDripleaf.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSmallDripleaf extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.SmallDripleaf, org.bukkit.block.data.type.Dripleaf, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftSmallDripleaf() { - super(); - } - - public CraftSmallDripleaf(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.SmallDripleafBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftSmallDripleaf.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftSmallDripleaf.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.SmallDripleafBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftSmallDripleaf.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftSmallDripleaf.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftSmallDripleaf.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SmallDripleafBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftSmallDripleaf.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftSmallDripleaf.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java deleted file mode 100644 index 5eb2508d64..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSmoker.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSmoker extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Furnace, org.bukkit.block.data.Directional, org.bukkit.block.data.Lightable { - - public CraftSmoker() { - super(); - } - - public CraftSmoker(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.SmokerBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftSmoker.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftSmoker.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftSmoker.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.SmokerBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftSmoker.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftSmoker.LIT, lit); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java deleted file mode 100644 index 35978b240e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnifferEgg.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSnifferEgg extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Hatchable { - - public CraftSnifferEgg() { - super(); - } - - public CraftSnifferEgg(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftHatchable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty HATCH = getInteger(net.minecraft.world.level.block.SnifferEggBlock.class, "hatch"); - - @Override - public int getHatch() { - return this.get(CraftSnifferEgg.HATCH); - } - - @Override - public void setHatch(int hatch) { - this.set(CraftSnifferEgg.HATCH, hatch); - } - - @Override - public int getMaximumHatch() { - return getMax(CraftSnifferEgg.HATCH); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnow.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnow.java deleted file mode 100644 index ff340637f1..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSnow.java +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSnow extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Snow { - - public CraftSnow() { - super(); - } - - public CraftSnow(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSnow - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty LAYERS = getInteger(net.minecraft.world.level.block.SnowLayerBlock.class, "layers"); - - @Override - public int getLayers() { - return this.get(CraftSnow.LAYERS); - } - - @Override - public void setLayers(int layers) { - this.set(CraftSnow.LAYERS, layers); - } - - @Override - public int getMinimumLayers() { - return getMin(CraftSnow.LAYERS); - } - - @Override - public int getMaximumLayers() { - return getMax(CraftSnow.LAYERS); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSoil.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSoil.java deleted file mode 100644 index 56f701e9f0..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSoil.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSoil extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Farmland { - - public CraftSoil() { - super(); - } - - public CraftSoil(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftFarmland - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty MOISTURE = getInteger(net.minecraft.world.level.block.FarmBlock.class, "moisture"); - - @Override - public int getMoisture() { - return this.get(CraftSoil.MOISTURE); - } - - @Override - public void setMoisture(int moisture) { - this.set(CraftSoil.MOISTURE, moisture); - } - - @Override - public int getMaximumMoisture() { - return getMax(CraftSoil.MOISTURE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java deleted file mode 100644 index 91467410bb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStainedGlassPane.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStainedGlassPane extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.GlassPane, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Waterlogged { - - public CraftStainedGlassPane() { - super(); - } - - public CraftStainedGlassPane(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftStainedGlassPane.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftStainedGlassPane.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftStainedGlassPane.FACES.length; i++) { - if (CraftStainedGlassPane.FACES[i] != null && this.get(CraftStainedGlassPane.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftStainedGlassPane.FACES.length; i++) { - if (CraftStainedGlassPane.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.StainedGlassPaneBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftStainedGlassPane.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftStainedGlassPane.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStairs.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStairs.java deleted file mode 100644 index 4cec825496..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStairs.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStairs extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Stairs, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftStairs() { - super(); - } - - public CraftStairs(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftStairs - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum(net.minecraft.world.level.block.StairBlock.class, "shape"); - - @Override - public org.bukkit.block.data.type.Stairs.Shape getShape() { - return this.get(CraftStairs.SHAPE, org.bukkit.block.data.type.Stairs.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.type.Stairs.Shape shape) { - this.set(CraftStairs.SHAPE, shape); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.StairBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftStairs.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftStairs.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.StairBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftStairs.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftStairs.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftStairs.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.StairBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftStairs.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftStairs.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStem.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStem.java deleted file mode 100644 index e85eaca094..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStem.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStem extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftStem() { - super(); - } - - public CraftStem(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.StemBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftStem.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftStem.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftStem.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStemAttached.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStemAttached.java deleted file mode 100644 index 6da1ae7a8f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStemAttached.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStemAttached extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftStemAttached() { - super(); - } - - public CraftStemAttached(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.AttachedStemBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftStemAttached.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftStemAttached.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftStemAttached.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStepAbstract.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStepAbstract.java deleted file mode 100644 index a0d01902c4..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStepAbstract.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStepAbstract extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Slab, org.bukkit.block.data.Waterlogged { - - public CraftStepAbstract() { - super(); - } - - public CraftStepAbstract(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSlab - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.SlabBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.Slab.Type getType() { - return this.get(CraftStepAbstract.TYPE, org.bukkit.block.data.type.Slab.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Slab.Type type) { - this.set(CraftStepAbstract.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.SlabBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftStepAbstract.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftStepAbstract.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java deleted file mode 100644 index 40bc47547f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStonecutter.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStonecutter extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftStonecutter() { - super(); - } - - public CraftStonecutter(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.StonecutterBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftStonecutter.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftStonecutter.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftStonecutter.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStructure.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStructure.java deleted file mode 100644 index f505d440b9..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftStructure.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftStructure extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.StructureBlock { - - public CraftStructure() { - super(); - } - - public CraftStructure(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftStructureBlock - - private static final net.minecraft.world.level.block.state.properties.EnumProperty MODE = getEnum(net.minecraft.world.level.block.StructureBlock.class, "mode"); - - @Override - public org.bukkit.block.data.type.StructureBlock.Mode getMode() { - return this.get(CraftStructure.MODE, org.bukkit.block.data.type.StructureBlock.Mode.class); - } - - @Override - public void setMode(org.bukkit.block.data.type.StructureBlock.Mode mode) { - this.set(CraftStructure.MODE, mode); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java deleted file mode 100644 index 9f135401ee..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftSweetBerryBush.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftSweetBerryBush extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftSweetBerryBush() { - super(); - } - - public CraftSweetBerryBush(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.SweetBerryBushBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftSweetBerryBush.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftSweetBerryBush.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftSweetBerryBush.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTNT.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTNT.java deleted file mode 100644 index 75fc4fe977..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTNT.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTNT extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TNT { - - public CraftTNT() { - super(); - } - - public CraftTNT(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTNT - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty UNSTABLE = getBoolean(net.minecraft.world.level.block.TntBlock.class, "unstable"); - - @Override - public boolean isUnstable() { - return this.get(CraftTNT.UNSTABLE); - } - - @Override - public void setUnstable(boolean unstable) { - this.set(CraftTNT.UNSTABLE, unstable); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlant.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlant.java deleted file mode 100644 index 0bbe254ba2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlant.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTallPlant extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Bisected { - - public CraftTallPlant() { - super(); - } - - public CraftTallPlant(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.DoublePlantBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftTallPlant.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftTallPlant.HALF, half); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlantFlower.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlantFlower.java deleted file mode 100644 index f13cdcd3af..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallPlantFlower.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTallPlantFlower extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Bisected { - - public CraftTallPlantFlower() { - super(); - } - - public CraftTallPlantFlower(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.TallFlowerBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftTallPlantFlower.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftTallPlantFlower.HALF, half); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java deleted file mode 100644 index a69b28f41c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTallSeagrass.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTallSeagrass extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Bisected { - - public CraftTallSeagrass() { - super(); - } - - public CraftTallSeagrass(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.TallSeagrassBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftTallSeagrass.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftTallSeagrass.HALF, half); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java deleted file mode 100644 index baae9feace..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTarget.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTarget extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.AnaloguePowerable { - - public CraftTarget() { - super(); - } - - public CraftTarget(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAnaloguePowerable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty POWER = getInteger(net.minecraft.world.level.block.TargetBlock.class, "power"); - - @Override - public int getPower() { - return this.get(CraftTarget.POWER); - } - - @Override - public void setPower(int power) { - this.set(CraftTarget.POWER, power); - } - - @Override - public int getMaximumPower() { - return getMax(CraftTarget.POWER); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchWall.java deleted file mode 100644 index 2d5eefabb2..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchWall.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTorchWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Directional { - - public CraftTorchWall() { - super(); - } - - public CraftTorchWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WallTorchBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftTorchWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftTorchWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftTorchWall.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java deleted file mode 100644 index 2a4ade3518..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTorchflowerCrop.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTorchflowerCrop extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftTorchflowerCrop() { - super(); - } - - public CraftTorchflowerCrop(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.TorchflowerCropBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftTorchflowerCrop.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftTorchflowerCrop.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftTorchflowerCrop.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrapdoor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrapdoor.java deleted file mode 100644 index 5e88ff74bb..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrapdoor.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTrapdoor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TrapDoor, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable, org.bukkit.block.data.Powerable, org.bukkit.block.data.Waterlogged { - - public CraftTrapdoor() { - super(); - } - - public CraftTrapdoor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.TrapDoorBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftTrapdoor.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftTrapdoor.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.TrapDoorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftTrapdoor.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftTrapdoor.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftTrapdoor.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.TrapDoorBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftTrapdoor.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftTrapdoor.OPEN, open); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.TrapDoorBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftTrapdoor.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftTrapdoor.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.TrapDoorBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftTrapdoor.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftTrapdoor.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java deleted file mode 100644 index f510ff9c84..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTrialSpawner.java +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTrialSpawner extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TrialSpawner { - - public CraftTrialSpawner() { - super(); - } - - public CraftTrialSpawner(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTrialSpawner - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TRIAL_SPAWNER_STATE = getEnum(net.minecraft.world.level.block.TrialSpawnerBlock.class, "trial_spawner_state"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OMINOUS = getBoolean(net.minecraft.world.level.block.TrialSpawnerBlock.class, "ominous"); - - @Override - public org.bukkit.block.data.type.TrialSpawner.State getTrialSpawnerState() { - return this.get(CraftTrialSpawner.TRIAL_SPAWNER_STATE, org.bukkit.block.data.type.TrialSpawner.State.class); - } - - @Override - public void setTrialSpawnerState(org.bukkit.block.data.type.TrialSpawner.State state) { - this.set(CraftTrialSpawner.TRIAL_SPAWNER_STATE, state); - } - - @Override - public boolean isOminous() { - return this.get(CraftTrialSpawner.OMINOUS); - } - - @Override - public void setOminous(boolean ominous) { - this.set(CraftTrialSpawner.OMINOUS, ominous); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwire.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwire.java deleted file mode 100644 index 83375648cc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwire.java +++ /dev/null @@ -1,107 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTripwire extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Tripwire, org.bukkit.block.data.Attachable, org.bukkit.block.data.MultipleFacing, org.bukkit.block.data.Powerable { - - public CraftTripwire() { - super(); - } - - public CraftTripwire(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTripwire - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty DISARMED = getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "disarmed"); - - @Override - public boolean isDisarmed() { - return this.get(CraftTripwire.DISARMED); - } - - @Override - public void setDisarmed(boolean disarmed) { - this.set(CraftTripwire.DISARMED, disarmed); - } - - // org.bukkit.craftbukkit.block.data.CraftAttachable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ATTACHED = getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "attached"); - - @Override - public boolean isAttached() { - return this.get(CraftTripwire.ATTACHED); - } - - @Override - public void setAttached(boolean attached) { - this.set(CraftTripwire.ATTACHED, attached); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftTripwire.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftTripwire.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftTripwire.FACES.length; i++) { - if (CraftTripwire.FACES[i] != null && this.get(CraftTripwire.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftTripwire.FACES.length; i++) { - if (CraftTripwire.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.TripWireBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftTripwire.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftTripwire.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwireHook.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwireHook.java deleted file mode 100644 index e072799d84..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTripwireHook.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTripwireHook extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TripwireHook, org.bukkit.block.data.Attachable, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftTripwireHook() { - super(); - } - - public CraftTripwireHook(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAttachable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty ATTACHED = getBoolean(net.minecraft.world.level.block.TripWireHookBlock.class, "attached"); - - @Override - public boolean isAttached() { - return this.get(CraftTripwireHook.ATTACHED); - } - - @Override - public void setAttached(boolean attached) { - this.set(CraftTripwireHook.ATTACHED, attached); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.TripWireHookBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftTripwireHook.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftTripwireHook.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftTripwireHook.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.TripWireHookBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftTripwireHook.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftTripwireHook.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java deleted file mode 100644 index e4fac5e181..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTurtleEgg.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTurtleEgg extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TurtleEgg, org.bukkit.block.data.Hatchable { - - public CraftTurtleEgg() { - super(); - } - - public CraftTurtleEgg(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftTurtleEgg - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty EGGS = getInteger(net.minecraft.world.level.block.TurtleEggBlock.class, "eggs"); - - @Override - public int getEggs() { - return this.get(CraftTurtleEgg.EGGS); - } - - @Override - public void setEggs(int eggs) { - this.set(CraftTurtleEgg.EGGS, eggs); - } - - @Override - public int getMinimumEggs() { - return getMin(CraftTurtleEgg.EGGS); - } - - @Override - public int getMaximumEggs() { - return getMax(CraftTurtleEgg.EGGS); - } - - // org.bukkit.craftbukkit.block.data.CraftHatchable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty HATCH = getInteger(net.minecraft.world.level.block.TurtleEggBlock.class, "hatch"); - - @Override - public int getHatch() { - return this.get(CraftTurtleEgg.HATCH); - } - - @Override - public void setHatch(int hatch) { - this.set(CraftTurtleEgg.HATCH, hatch); - } - - @Override - public int getMaximumHatch() { - return getMax(CraftTurtleEgg.HATCH); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java deleted file mode 100644 index 116bb8706c..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftTwistingVines.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftTwistingVines extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftTwistingVines() { - super(); - } - - public CraftTwistingVines(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.TwistingVinesBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftTwistingVines.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftTwistingVines.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftTwistingVines.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVault.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVault.java deleted file mode 100644 index 15e91d1bfa..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVault.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftVault extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Vault, org.bukkit.block.data.Directional { - - public CraftVault() { - super(); - } - - public CraftVault(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftVault - - private static final net.minecraft.world.level.block.state.properties.EnumProperty VAULT_STATE = getEnum(net.minecraft.world.level.block.VaultBlock.class, "vault_state"); - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OMINOUS = getBoolean(net.minecraft.world.level.block.VaultBlock.class, "ominous"); - - @Override - public org.bukkit.block.data.type.Vault.State getVaultState() { - return this.get(CraftVault.VAULT_STATE, org.bukkit.block.data.type.Vault.State.class); - } - - @Override - public org.bukkit.block.data.type.Vault.State getTrialSpawnerState() { - return this.getVaultState(); - } - - @Override - public void setVaultState(org.bukkit.block.data.type.Vault.State state) { - this.set(CraftVault.VAULT_STATE, state); - } - - @Override - public void setTrialSpawnerState(org.bukkit.block.data.type.Vault.State state) { - this.setVaultState(state); - } - - @Override - public boolean isOminous() { - return this.get(CraftVault.OMINOUS); - } - - @Override - public void setOminous(boolean ominous) { - this.set(CraftVault.OMINOUS, ominous); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.VaultBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftVault.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftVault.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftVault.FACING, org.bukkit.block.BlockFace.class); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVine.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVine.java deleted file mode 100644 index d595dac1bd..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftVine.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftVine extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.MultipleFacing { - - public CraftVine() { - super(); - } - - public CraftVine(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftMultipleFacing - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty[] FACES = new net.minecraft.world.level.block.state.properties.BooleanProperty[]{ - getBoolean(net.minecraft.world.level.block.VineBlock.class, "north", true), getBoolean(net.minecraft.world.level.block.VineBlock.class, "east", true), getBoolean(net.minecraft.world.level.block.VineBlock.class, "south", true), getBoolean(net.minecraft.world.level.block.VineBlock.class, "west", true), getBoolean(net.minecraft.world.level.block.VineBlock.class, "up", true), getBoolean(net.minecraft.world.level.block.VineBlock.class, "down", true) - }; - - @Override - public boolean hasFace(org.bukkit.block.BlockFace face) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftVine.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - return this.get(state); - } - - @Override - public void setFace(org.bukkit.block.BlockFace face, boolean has) { - net.minecraft.world.level.block.state.properties.BooleanProperty state = CraftVine.FACES[face.ordinal()]; - if (state == null) { - throw new IllegalArgumentException("Non-allowed face " + face + ". Check MultipleFacing.getAllowedFaces."); - } - this.set(state, has); - } - - @Override - public java.util.Set getFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftVine.FACES.length; i++) { - if (CraftVine.FACES[i] != null && this.get(CraftVine.FACES[i])) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } - - @Override - public java.util.Set getAllowedFaces() { - com.google.common.collect.ImmutableSet.Builder faces = com.google.common.collect.ImmutableSet.builder(); - - for (int i = 0; i < CraftVine.FACES.length; i++) { - if (CraftVine.FACES[i] != null) { - faces.add(org.bukkit.block.BlockFace.values()[i]); - } - } - - return faces.build(); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java deleted file mode 100644 index 1f30973fd6..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallHangingSign.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWallHangingSign extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallHangingSign, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftWallHangingSign() { - super(); - } - - public CraftWallHangingSign(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WallHangingSignBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWallHangingSign.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWallHangingSign.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWallHangingSign.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WallHangingSignBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWallHangingSign.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWallHangingSign.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java deleted file mode 100644 index 573d189b6e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWallSign.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWallSign extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallSign, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftWallSign() { - super(); - } - - public CraftWallSign(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WallSignBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWallSign.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWallSign.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWallSign.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WallSignBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWallSign.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWallSign.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java deleted file mode 100644 index 4bde4b7b16..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWaterloggedTransparent.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWaterloggedTransparent extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftWaterloggedTransparent() { - super(); - } - - public CraftWaterloggedTransparent(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WaterloggedTransparentBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWaterloggedTransparent.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWaterloggedTransparent.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java deleted file mode 100644 index bb4aa08507..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperBulb.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperBulb extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.CopperBulb, org.bukkit.block.data.Lightable, org.bukkit.block.data.Powerable { - - public CraftWeatheringCopperBulb() { - super(); - } - - public CraftWeatheringCopperBulb(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftLightable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty LIT = getBoolean(net.minecraft.world.level.block.WeatheringCopperBulbBlock.class, "lit"); - - @Override - public boolean isLit() { - return this.get(CraftWeatheringCopperBulb.LIT); - } - - @Override - public void setLit(boolean lit) { - this.set(CraftWeatheringCopperBulb.LIT, lit); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WeatheringCopperBulbBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftWeatheringCopperBulb.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftWeatheringCopperBulb.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java deleted file mode 100644 index 32371d4992..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperDoor.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperDoor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Door, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable, org.bukkit.block.data.Powerable { - - public CraftWeatheringCopperDoor() { - super(); - } - - public CraftWeatheringCopperDoor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftDoor - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HINGE = getEnum(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, "hinge"); - - @Override - public org.bukkit.block.data.type.Door.Hinge getHinge() { - return this.get(CraftWeatheringCopperDoor.HINGE, org.bukkit.block.data.type.Door.Hinge.class); - } - - @Override - public void setHinge(org.bukkit.block.data.type.Door.Hinge hinge) { - this.set(CraftWeatheringCopperDoor.HINGE, hinge); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftWeatheringCopperDoor.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftWeatheringCopperDoor.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWeatheringCopperDoor.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWeatheringCopperDoor.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWeatheringCopperDoor.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftWeatheringCopperDoor.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftWeatheringCopperDoor.OPEN, open); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WeatheringCopperDoorBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftWeatheringCopperDoor.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftWeatheringCopperDoor.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java deleted file mode 100644 index 8c695d8f99..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperGrate.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperGrate extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Waterlogged { - - public CraftWeatheringCopperGrate() { - super(); - } - - public CraftWeatheringCopperGrate(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WeatheringCopperGrateBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWeatheringCopperGrate.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWeatheringCopperGrate.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java deleted file mode 100644 index 61ba7dedfc..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperSlab.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperSlab extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Slab, org.bukkit.block.data.Waterlogged { - - public CraftWeatheringCopperSlab() { - super(); - } - - public CraftWeatheringCopperSlab(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftSlab - - private static final net.minecraft.world.level.block.state.properties.EnumProperty TYPE = getEnum(net.minecraft.world.level.block.WeatheringCopperSlabBlock.class, "type"); - - @Override - public org.bukkit.block.data.type.Slab.Type getType() { - return this.get(CraftWeatheringCopperSlab.TYPE, org.bukkit.block.data.type.Slab.Type.class); - } - - @Override - public void setType(org.bukkit.block.data.type.Slab.Type type) { - this.set(CraftWeatheringCopperSlab.TYPE, type); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WeatheringCopperSlabBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWeatheringCopperSlab.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWeatheringCopperSlab.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java deleted file mode 100644 index 1229a2864a..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperStair.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperStair extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Stairs, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Waterlogged { - - public CraftWeatheringCopperStair() { - super(); - } - - public CraftWeatheringCopperStair(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.type.CraftStairs - - private static final net.minecraft.world.level.block.state.properties.EnumProperty SHAPE = getEnum(net.minecraft.world.level.block.WeatheringCopperStairBlock.class, "shape"); - - @Override - public org.bukkit.block.data.type.Stairs.Shape getShape() { - return this.get(CraftWeatheringCopperStair.SHAPE, org.bukkit.block.data.type.Stairs.Shape.class); - } - - @Override - public void setShape(org.bukkit.block.data.type.Stairs.Shape shape) { - this.set(CraftWeatheringCopperStair.SHAPE, shape); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.WeatheringCopperStairBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftWeatheringCopperStair.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftWeatheringCopperStair.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WeatheringCopperStairBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWeatheringCopperStair.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWeatheringCopperStair.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWeatheringCopperStair.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WeatheringCopperStairBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWeatheringCopperStair.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWeatheringCopperStair.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java deleted file mode 100644 index c50a8f6b2e..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeatheringCopperTrapDoor.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeatheringCopperTrapDoor extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.TrapDoor, org.bukkit.block.data.Bisected, org.bukkit.block.data.Directional, org.bukkit.block.data.Openable, org.bukkit.block.data.Powerable, org.bukkit.block.data.Waterlogged { - - public CraftWeatheringCopperTrapDoor() { - super(); - } - - public CraftWeatheringCopperTrapDoor(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftBisected - - private static final net.minecraft.world.level.block.state.properties.EnumProperty HALF = getEnum(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, "half"); - - @Override - public org.bukkit.block.data.Bisected.Half getHalf() { - return this.get(CraftWeatheringCopperTrapDoor.HALF, org.bukkit.block.data.Bisected.Half.class); - } - - @Override - public void setHalf(org.bukkit.block.data.Bisected.Half half) { - this.set(CraftWeatheringCopperTrapDoor.HALF, half); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWeatheringCopperTrapDoor.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWeatheringCopperTrapDoor.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWeatheringCopperTrapDoor.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftOpenable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty OPEN = getBoolean(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, "open"); - - @Override - public boolean isOpen() { - return this.get(CraftWeatheringCopperTrapDoor.OPEN); - } - - @Override - public void setOpen(boolean open) { - this.set(CraftWeatheringCopperTrapDoor.OPEN, open); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftWeatheringCopperTrapDoor.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftWeatheringCopperTrapDoor.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftWaterlogged - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty WATERLOGGED = getBoolean(net.minecraft.world.level.block.WeatheringCopperTrapDoorBlock.class, "waterlogged"); - - @Override - public boolean isWaterlogged() { - return this.get(CraftWeatheringCopperTrapDoor.WATERLOGGED); - } - - @Override - public void setWaterlogged(boolean waterlogged) { - this.set(CraftWeatheringCopperTrapDoor.WATERLOGGED, waterlogged); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java deleted file mode 100644 index 6a7202cb84..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWeepingVines.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWeepingVines extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.Ageable { - - public CraftWeepingVines() { - super(); - } - - public CraftWeepingVines(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftAgeable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty AGE = getInteger(net.minecraft.world.level.block.WeepingVinesBlock.class, "age"); - - @Override - public int getAge() { - return this.get(CraftWeepingVines.AGE); - } - - @Override - public void setAge(int age) { - this.set(CraftWeepingVines.AGE, age); - } - - @Override - public int getMaximumAge() { - return getMax(CraftWeepingVines.AGE); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java deleted file mode 100644 index 21ea363a90..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkull.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWitherSkull extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.Skull, org.bukkit.block.data.Powerable, org.bukkit.block.data.Rotatable { - - public CraftWitherSkull() { - super(); - } - - public CraftWitherSkull(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WitherSkullBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftWitherSkull.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftWitherSkull.POWERED, powered); - } - - // org.bukkit.craftbukkit.block.data.CraftRotatable - - private static final net.minecraft.world.level.block.state.properties.IntegerProperty ROTATION = getInteger(net.minecraft.world.level.block.WitherSkullBlock.class, "rotation"); - - @Override - public org.bukkit.block.BlockFace getRotation() { - int data = this.get(CraftWitherSkull.ROTATION); - switch (data) { - case 0x0: - return org.bukkit.block.BlockFace.SOUTH; - case 0x1: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_WEST; - case 0x2: - return org.bukkit.block.BlockFace.SOUTH_WEST; - case 0x3: - return org.bukkit.block.BlockFace.WEST_SOUTH_WEST; - case 0x4: - return org.bukkit.block.BlockFace.WEST; - case 0x5: - return org.bukkit.block.BlockFace.WEST_NORTH_WEST; - case 0x6: - return org.bukkit.block.BlockFace.NORTH_WEST; - case 0x7: - return org.bukkit.block.BlockFace.NORTH_NORTH_WEST; - case 0x8: - return org.bukkit.block.BlockFace.NORTH; - case 0x9: - return org.bukkit.block.BlockFace.NORTH_NORTH_EAST; - case 0xA: - return org.bukkit.block.BlockFace.NORTH_EAST; - case 0xB: - return org.bukkit.block.BlockFace.EAST_NORTH_EAST; - case 0xC: - return org.bukkit.block.BlockFace.EAST; - case 0xD: - return org.bukkit.block.BlockFace.EAST_SOUTH_EAST; - case 0xE: - return org.bukkit.block.BlockFace.SOUTH_EAST; - case 0xF: - return org.bukkit.block.BlockFace.SOUTH_SOUTH_EAST; - default: - throw new IllegalArgumentException("Unknown rotation " + data); - } - } - - @Override - public void setRotation(org.bukkit.block.BlockFace rotation) { - int val; - switch (rotation) { - case SOUTH: - val = 0x0; - break; - case SOUTH_SOUTH_WEST: - val = 0x1; - break; - case SOUTH_WEST: - val = 0x2; - break; - case WEST_SOUTH_WEST: - val = 0x3; - break; - case WEST: - val = 0x4; - break; - case WEST_NORTH_WEST: - val = 0x5; - break; - case NORTH_WEST: - val = 0x6; - break; - case NORTH_NORTH_WEST: - val = 0x7; - break; - case NORTH: - val = 0x8; - break; - case NORTH_NORTH_EAST: - val = 0x9; - break; - case NORTH_EAST: - val = 0xA; - break; - case EAST_NORTH_EAST: - val = 0xB; - break; - case EAST: - val = 0xC; - break; - case EAST_SOUTH_EAST: - val = 0xD; - break; - case SOUTH_EAST: - val = 0xE; - break; - case SOUTH_SOUTH_EAST: - val = 0xF; - break; - default: - throw new IllegalArgumentException("Illegal rotation " + rotation); - } - this.set(CraftWitherSkull.ROTATION, val); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkullWall.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkullWall.java deleted file mode 100644 index b43db5180f..0000000000 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/impl/CraftWitherSkullWall.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Automatically generated file, changes will be lost. - */ -package org.bukkit.craftbukkit.block.impl; - -public final class CraftWitherSkullWall extends org.bukkit.craftbukkit.block.data.CraftBlockData implements org.bukkit.block.data.type.WallSkull, org.bukkit.block.data.Directional, org.bukkit.block.data.Powerable { - - public CraftWitherSkullWall() { - super(); - } - - public CraftWitherSkullWall(net.minecraft.world.level.block.state.BlockState state) { - super(state); - } - - // org.bukkit.craftbukkit.block.data.CraftDirectional - - private static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = getEnum(net.minecraft.world.level.block.WitherWallSkullBlock.class, "facing"); - - @Override - public org.bukkit.block.BlockFace getFacing() { - return this.get(CraftWitherSkullWall.FACING, org.bukkit.block.BlockFace.class); - } - - @Override - public void setFacing(org.bukkit.block.BlockFace facing) { - this.set(CraftWitherSkullWall.FACING, facing); - } - - @Override - public java.util.Set getFaces() { - return this.getValues(CraftWitherSkullWall.FACING, org.bukkit.block.BlockFace.class); - } - - // org.bukkit.craftbukkit.block.data.CraftPowerable - - private static final net.minecraft.world.level.block.state.properties.BooleanProperty POWERED = getBoolean(net.minecraft.world.level.block.WitherWallSkullBlock.class, "powered"); - - @Override - public boolean isPowered() { - return this.get(CraftWitherSkullWall.POWERED); - } - - @Override - public void setPowered(boolean powered) { - this.set(CraftWitherSkullWall.POWERED, powered); - } -} diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java index 9e53c30801..238ab5c01a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java @@ -1,11 +1,8 @@ package org.bukkit.craftbukkit.entity; -import java.util.HashMap; -import java.util.Map; import org.bukkit.DyeColor; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.TropicalFish; -import org.bukkit.entity.TropicalFish.Pattern; public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFish implements TropicalFish { // Paper - Schooling Fish API @@ -53,48 +50,9 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi this.getHandle().setPackedVariant(CraftTropicalFish.getData(this.getPatternColor(), this.getBodyColor(), pattern)); } - public static enum CraftPattern { - KOB(0, false), - SUNSTREAK(1, false), - SNOOPER(2, false), - DASHER(3, false), - BRINELY(4, false), - SPOTTY(5, false), - FLOPPER(0, true), - STRIPEY(1, true), - GLITTER(2, true), - BLOCKFISH(3, true), - BETTY(4, true), - CLAYFISH(5, true); - - private final int variant; - private final boolean large; - - // - private static final Map BY_DATA = new HashMap<>(); - - static { - for (CraftPattern type : values()) { - BY_DATA.put(type.getDataValue(), Pattern.values()[type.ordinal()]); - } - } - - public static Pattern fromData(int data) { - return BY_DATA.get(data); - } - - private CraftPattern(int variant, boolean large) { - this.variant = variant; - this.large = large; - } - - public int getDataValue() { - return this.variant << 8 | ((this.large) ? 1 : 0); - } - } - public static int getData(DyeColor patternColor, DyeColor bodyColor, Pattern type) { - return patternColor.getWoolData() << 24 | bodyColor.getWoolData() << 16 | CraftPattern.values()[type.ordinal()].getDataValue(); + net.minecraft.world.entity.animal.TropicalFish.Pattern pattern = net.minecraft.world.entity.animal.TropicalFish.Pattern.valueOf(type.name()); + return patternColor.getWoolData() << 24 | bodyColor.getWoolData() << 16 | pattern.getPackedId(); } public static DyeColor getPatternColor(int data) { @@ -106,6 +64,6 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi } public static Pattern getPattern(int data) { - return CraftPattern.fromData(data & 0xFFFF); + return Pattern.valueOf(net.minecraft.world.entity.animal.TropicalFish.getPattern(data).name()); } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/memory/CraftMemoryKey.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/memory/CraftMemoryKey.java index 43cd5ef2dc..291a19c39b 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/memory/CraftMemoryKey.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/memory/CraftMemoryKey.java @@ -17,7 +17,7 @@ public final class CraftMemoryKey { } net.minecraft.core.Registry> registry = CraftRegistry.getMinecraftRegistry(Registries.MEMORY_MODULE_TYPE); - MemoryKey bukkit = Registry.MEMORY_MODULE_TYPE.get(CraftNamespacedKey.fromMinecraft(registry.getResourceKey(minecraft).orElseThrow().location())); + MemoryKey bukkit = (MemoryKey) Registry.MEMORY_MODULE_TYPE.get(CraftNamespacedKey.fromMinecraft(registry.getResourceKey(minecraft).orElseThrow().location())); return bukkit; } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapColorCache.java b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapColorCache.java index 8149b9c51b..db51e0f1ad 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapColorCache.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapColorCache.java @@ -20,7 +20,7 @@ import org.bukkit.map.MapPalette; public class CraftMapColorCache implements MapPalette.MapColorCache { - private static final String MD5_CACHE_HASH = "E88EDD068D12D39934B40E8B6B124C83"; + private static final String MD5_CACHE_HASH = "E88EDD068D12D39934B40E8B6B124C83"; // 248 colors private static final File CACHE_FILE = new File("map-color-cache.dat"); private byte[] cache; private final Logger logger; @@ -31,10 +31,16 @@ public class CraftMapColorCache implements MapPalette.MapColorCache { this.logger = logger; } + private static CraftMapColorCache dryRun() { + CraftMapColorCache mapColorCache = new CraftMapColorCache(Logger.getGlobal()); + mapColorCache.cache = new byte[256 * 256 * 256]; + mapColorCache.buildCache(); + return mapColorCache; + } + // Builds and prints the md5 hash of the cache, this should be run when new map colors are added to update the MD5_CACHE_HASH string public static void main(String[] args) { - CraftMapColorCache craftMapColorCache = new CraftMapColorCache(Logger.getGlobal()); - craftMapColorCache.buildCache(); + CraftMapColorCache craftMapColorCache = CraftMapColorCache.dryRun(); try { byte[] hash = MessageDigest.getInstance("MD5").digest(craftMapColorCache.cache); System.out.println("MD5_CACHE_HASH: " + CraftMapColorCache.bytesToString(hash)); @@ -151,7 +157,7 @@ public class CraftMapColorCache implements MapPalette.MapColorCache { @Override public byte matchColor(Color color) { - Preconditions.checkState(this.isCached(), "Cache not build jet"); + Preconditions.checkState(this.isCached(), "Cache not build yet"); return this.cache[this.toInt(color)]; } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java index cb11f0624e..349108473e 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionUtil.java @@ -14,30 +14,36 @@ import org.bukkit.potion.PotionType; public class CraftPotionUtil { private static final BiMap upgradeable = ImmutableBiMap.builder() - .put(PotionType.LEAPING, PotionType.STRONG_LEAPING) - .put(PotionType.SWIFTNESS, PotionType.STRONG_SWIFTNESS) - .put(PotionType.HEALING, PotionType.STRONG_HEALING) + // Start generate - CraftPotionUtil#upgradeable + // @GeneratedFrom 1.21.4 .put(PotionType.HARMING, PotionType.STRONG_HARMING) + .put(PotionType.HEALING, PotionType.STRONG_HEALING) + .put(PotionType.LEAPING, PotionType.STRONG_LEAPING) .put(PotionType.POISON, PotionType.STRONG_POISON) .put(PotionType.REGENERATION, PotionType.STRONG_REGENERATION) - .put(PotionType.STRENGTH, PotionType.STRONG_STRENGTH) .put(PotionType.SLOWNESS, PotionType.STRONG_SLOWNESS) + .put(PotionType.STRENGTH, PotionType.STRONG_STRENGTH) + .put(PotionType.SWIFTNESS, PotionType.STRONG_SWIFTNESS) .put(PotionType.TURTLE_MASTER, PotionType.STRONG_TURTLE_MASTER) + // End generate - CraftPotionUtil#upgradeable .build(); private static final BiMap extendable = ImmutableBiMap.builder() - .put(PotionType.NIGHT_VISION, PotionType.LONG_NIGHT_VISION) + // Start generate - CraftPotionUtil#extendable + // @GeneratedFrom 1.21.4 + .put(PotionType.FIRE_RESISTANCE, PotionType.LONG_FIRE_RESISTANCE) .put(PotionType.INVISIBILITY, PotionType.LONG_INVISIBILITY) .put(PotionType.LEAPING, PotionType.LONG_LEAPING) - .put(PotionType.FIRE_RESISTANCE, PotionType.LONG_FIRE_RESISTANCE) - .put(PotionType.SWIFTNESS, PotionType.LONG_SWIFTNESS) - .put(PotionType.SLOWNESS, PotionType.LONG_SLOWNESS) - .put(PotionType.WATER_BREATHING, PotionType.LONG_WATER_BREATHING) + .put(PotionType.NIGHT_VISION, PotionType.LONG_NIGHT_VISION) .put(PotionType.POISON, PotionType.LONG_POISON) .put(PotionType.REGENERATION, PotionType.LONG_REGENERATION) - .put(PotionType.STRENGTH, PotionType.LONG_STRENGTH) - .put(PotionType.WEAKNESS, PotionType.LONG_WEAKNESS) - .put(PotionType.TURTLE_MASTER, PotionType.LONG_TURTLE_MASTER) .put(PotionType.SLOW_FALLING, PotionType.LONG_SLOW_FALLING) + .put(PotionType.SLOWNESS, PotionType.LONG_SLOWNESS) + .put(PotionType.STRENGTH, PotionType.LONG_STRENGTH) + .put(PotionType.SWIFTNESS, PotionType.LONG_SWIFTNESS) + .put(PotionType.TURTLE_MASTER, PotionType.LONG_TURTLE_MASTER) + .put(PotionType.WATER_BREATHING, PotionType.LONG_WATER_BREATHING) + .put(PotionType.WEAKNESS, PotionType.LONG_WEAKNESS) + // End generate - CraftPotionUtil#extendable .build(); public static PotionType fromBukkit(PotionData data) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java b/paper-server/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java index 711d227f5e..c010106443 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftScoreboardTranslations.java @@ -1,29 +1,19 @@ package org.bukkit.craftbukkit.scoreboard; -import com.google.common.collect.ImmutableBiMap; import net.minecraft.world.scores.criteria.ObjectiveCriteria; import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.RenderType; public final class CraftScoreboardTranslations { - static final int MAX_DISPLAY_SLOT = 19; - @Deprecated // Paper - static final ImmutableBiMap SLOTS = ImmutableBiMap.builder() - .put(DisplaySlot.BELOW_NAME, "below_name") - .put(DisplaySlot.PLAYER_LIST, "list") - .put(DisplaySlot.SIDEBAR, "sidebar") - .buildOrThrow(); private CraftScoreboardTranslations() {} public static DisplaySlot toBukkitSlot(net.minecraft.world.scores.DisplaySlot minecraft) { - if (true) return DisplaySlot.NAMES.value(minecraft.getSerializedName()); // Paper - return CraftScoreboardTranslations.SLOTS.inverse().get(minecraft.getSerializedName()); + return DisplaySlot.NAMES.value(minecraft.getSerializedName()); // Paper } public static net.minecraft.world.scores.DisplaySlot fromBukkitSlot(DisplaySlot slot) { - if (true) return net.minecraft.world.scores.DisplaySlot.CODEC.byName(slot.getId()); // Paper - return net.minecraft.world.scores.DisplaySlot.CODEC.byName(CraftScoreboardTranslations.SLOTS.get(slot)); + return net.minecraft.world.scores.DisplaySlot.CODEC.byName(slot.getId()); // Paper } static RenderType toBukkitRender(ObjectiveCriteria.RenderType display) { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/paper-server/src/main/java/org/bukkit/craftbukkit/util/Commodore.java index 2a2e37a7c6..1d9d597856 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/util/Commodore.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/util/Commodore.java @@ -79,7 +79,10 @@ public class Commodore { private static final Map RENAMES = Map.of( "org/bukkit/entity/TextDisplay$TextAligment", "org/bukkit/entity/TextDisplay$TextAlignment", // SPIGOT-7335 "org/spigotmc/event/entity/EntityMountEvent", "org/bukkit/event/entity/EntityMountEvent", - "org/spigotmc/event/entity/EntityDismountEvent", "org/bukkit/event/entity/EntityDismountEvent" + "org/spigotmc/event/entity/EntityDismountEvent", "org/bukkit/event/entity/EntityDismountEvent", + "org/bukkit/block/data/type/Crafter$Orientation", "org/bukkit/block/Orientation", + "org/bukkit/block/data/type/Jigsaw$Orientation", "org/bukkit/block/Orientation", + "org/bukkit/block/data/type/MossyCarpet$Height", "org/bukkit/block/data/type/Wall$Height" ); private static final Map CLASS_TO_INTERFACE = Map.ofEntries( diff --git a/paper-server/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta b/paper-server/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta index dacc63ab6e..0e2d383b51 100644 --- a/paper-server/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta +++ b/paper-server/src/main/resources/data/minecraft/datapacks/paper/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { "description": "Built-in Paper Datapack", - "pack_format": 61 + "pack_format": ${version} } } diff --git a/paper-server/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java b/paper-server/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java index 18e0ae8155..120263fbae 100644 --- a/paper-server/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java +++ b/paper-server/src/test/java/io/papermc/paper/entity/EntitySetItemSlotSilentOverrideTest.java @@ -9,6 +9,7 @@ import io.github.classgraph.ScanResult; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; +import net.minecraft.world.entity.LivingEntity; import org.bukkit.support.environment.Normal; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -26,7 +27,7 @@ public class EntitySetItemSlotSilentOverrideTest { .whitelistPackages("net.minecraft") .scan() ) { - for (final ClassInfo subclass : scanResult.getSubclasses("net.minecraft.world.entity.LivingEntity")) { + for (final ClassInfo subclass : scanResult.getSubclasses(LivingEntity.class.getName())) { final MethodInfoList setItemSlot = subclass.getDeclaredMethodInfo("setItemSlot"); if (!setItemSlot.isEmpty()) { classInfo.add(subclass); diff --git a/paper-server/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java b/paper-server/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java deleted file mode 100644 index 345c96bfb6..0000000000 --- a/paper-server/src/test/java/io/papermc/paper/scoreboard/DisplaySlotTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.papermc.paper.scoreboard; - -import org.bukkit.craftbukkit.scoreboard.CraftScoreboardTranslations; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.support.environment.Normal; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.assertNotNull; - -@Normal -public class DisplaySlotTest { - - @Test - public void testBukkitToMinecraftDisplaySlots() { - for (DisplaySlot bukkitSlot : DisplaySlot.values()) { - assertNotNull(CraftScoreboardTranslations.fromBukkitSlot(bukkitSlot)); - } - } - - @Test - public void testMinecraftToBukkitDisplaySlots() { - for (net.minecraft.world.scores.DisplaySlot nmsSlot : net.minecraft.world.scores.DisplaySlot.values()) { - assertNotNull(CraftScoreboardTranslations.toBukkitSlot(nmsSlot)); - } - } -} diff --git a/paper-server/src/test/java/io/papermc/paper/world/block/BlockPlayerDestroyOverrideTest.java b/paper-server/src/test/java/io/papermc/paper/world/block/BlockPlayerDestroyOverrideTest.java index 22145bf698..750488cb2f 100644 --- a/paper-server/src/test/java/io/papermc/paper/world/block/BlockPlayerDestroyOverrideTest.java +++ b/paper-server/src/test/java/io/papermc/paper/world/block/BlockPlayerDestroyOverrideTest.java @@ -9,6 +9,7 @@ import io.github.classgraph.ScanResult; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; +import net.minecraft.world.level.block.Block; import org.bukkit.support.environment.Normal; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -26,7 +27,7 @@ public class BlockPlayerDestroyOverrideTest { .whitelistPackages("net.minecraft") .scan() ) { - for (final ClassInfo subclass : scanResult.getSubclasses("net.minecraft.world.level.block.Block")) { + for (final ClassInfo subclass : scanResult.getSubclasses(Block.class.getName())) { final MethodInfoList playerDestroy = subclass.getDeclaredMethodInfo("playerDestroy"); if (!playerDestroy.isEmpty()) { classInfo.add(subclass); diff --git a/paper-server/src/test/java/org/bukkit/ArtTest.java b/paper-server/src/test/java/org/bukkit/ArtTest.java deleted file mode 100644 index 5e922e6805..0000000000 --- a/paper-server/src/test/java/org/bukkit/ArtTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.bukkit; - -import static org.junit.jupiter.api.Assertions.*; -import java.util.stream.Stream; -import org.bukkit.support.environment.VanillaFeature; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -@VanillaFeature -public class ArtTest { - - public static Stream widthData() { - return Stream.of(Arguments.of(Art.KEBAB, 1), - Arguments.of(Art.WANDERER, 1), - Arguments.of(Art.POOL, 2), - Arguments.of(Art.MATCH, 2), - Arguments.of(Art.BOUQUET, 3), - Arguments.of(Art.BACKYARD, 3), - Arguments.of(Art.FIGHTERS, 4), - Arguments.of(Art.SKELETON, 4), - Arguments.of(Art.POINTER, 4)); - } - - public static Stream heightData() { - return Stream.of(Arguments.of(Art.KEBAB, 1), - Arguments.of(Art.WANDERER, 2), - Arguments.of(Art.POOL, 1), - Arguments.of(Art.MATCH, 2), - Arguments.of(Art.BOUQUET, 3), - Arguments.of(Art.BACKYARD, 4), - Arguments.of(Art.FIGHTERS, 2), - Arguments.of(Art.SKELETON, 3), - Arguments.of(Art.POINTER, 4)); - } - - @ParameterizedTest - @MethodSource("widthData") - public void testWidth(Art art, int expected) { - assertEquals(expected, art.getBlockWidth(), """ - Art '%s' does not have the correct width. - This can be caused by either a change in the Implementation. - Or the width for this specific art was changed in which case the test needs to be updated. - """.formatted(art.getKey())); - } - - @ParameterizedTest - @MethodSource("heightData") - public void testHeight(Art art, int expected) { - assertEquals(expected, art.getBlockHeight(), """ - Art '%s' does not have the correct height. - This can be caused by either a change in the Implementation. - Or the height for this specific art was changed in which case the test needs to be updated. - """.formatted(art.getKey())); - } -} diff --git a/paper-server/src/test/java/org/bukkit/BiomeTest.java b/paper-server/src/test/java/org/bukkit/BiomeTest.java deleted file mode 100644 index f17d553f51..0000000000 --- a/paper-server/src/test/java/org/bukkit/BiomeTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.bukkit; - -import static org.junit.jupiter.api.Assertions.*; -import net.minecraft.core.registries.Registries; -import org.bukkit.block.Biome; -import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.block.CraftBiome; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class BiomeTest { - - @Test - public void testBukkitToMinecraft() { - for (Biome biome : Biome.values()) { - if (biome == Biome.CUSTOM) { - continue; - } - - assertNotNull(CraftBiome.bukkitToMinecraftHolder(biome), "No NMS mapping for " + biome); - } - } - - @Test - public void testMinecraftToBukkit() { - for (net.minecraft.world.level.biome.Biome biomeBase : CraftRegistry.getMinecraftRegistry(Registries.BIOME)) { - Biome biome = CraftBiome.minecraftToBukkit(biomeBase); - assertTrue(biome != null && biome != Biome.CUSTOM, "No Bukkit mapping for " + biomeBase); - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/EffectTest.java b/paper-server/src/test/java/org/bukkit/EffectTest.java index 3129212415..5eaa832abb 100644 --- a/paper-server/src/test/java/org/bukkit/EffectTest.java +++ b/paper-server/src/test/java/org/bukkit/EffectTest.java @@ -12,9 +12,7 @@ import java.util.Set; import net.minecraft.world.level.block.LevelEvent; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; public class EffectTest { diff --git a/paper-server/src/test/java/org/bukkit/EnchantmentTest.java b/paper-server/src/test/java/org/bukkit/EnchantmentTest.java deleted file mode 100644 index 1b22f02b04..0000000000 --- a/paper-server/src/test/java/org/bukkit/EnchantmentTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.bukkit; - -import static org.junit.jupiter.api.Assertions.*; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.util.CraftNamespacedKey; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class EnchantmentTest { - - @Test - public void verifyMapping() { - for (ResourceLocation key : CraftRegistry.getMinecraftRegistry(Registries.ENCHANTMENT).keySet()) { - net.minecraft.world.item.enchantment.Enchantment nms = CraftRegistry.getMinecraftRegistry(Registries.ENCHANTMENT).getValue(key); - - Enchantment bukkitById = Enchantment.getByKey(CraftNamespacedKey.fromMinecraft(key)); - - assertFalse(bukkitById.getName().startsWith("UNKNOWN"), "Unknown enchant name for " + key); - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/GameEventTest.java b/paper-server/src/test/java/org/bukkit/GameEventTest.java deleted file mode 100644 index 7d2f13ff72..0000000000 --- a/paper-server/src/test/java/org/bukkit/GameEventTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.bukkit; - -import static org.junit.jupiter.api.Assertions.*; -import net.minecraft.core.registries.BuiltInRegistries; -import org.bukkit.craftbukkit.util.CraftNamespacedKey; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class GameEventTest { - - @Test - public void toBukkit() { - for (net.minecraft.world.level.gameevent.GameEvent nms : BuiltInRegistries.GAME_EVENT) { - GameEvent bukkit = GameEvent.getByKey(CraftNamespacedKey.fromMinecraft(BuiltInRegistries.GAME_EVENT.getKey(nms))); - - assertNotNull(bukkit, "Bukkit should not be null " + nms); - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/MaterialTest.java b/paper-server/src/test/java/org/bukkit/MaterialTest.java index d4bfec42fa..e0efd8636c 100644 --- a/paper-server/src/test/java/org/bukkit/MaterialTest.java +++ b/paper-server/src/test/java/org/bukkit/MaterialTest.java @@ -4,14 +4,9 @@ import static org.bukkit.support.MatcherAssert.*; import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.*; import com.google.common.collect.Maps; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; -import java.util.Comparator; import java.util.Iterator; -import java.util.List; import java.util.Map; -import java.util.stream.StreamSupport; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; @@ -51,28 +46,4 @@ public class MaterialTest { assertThat(materials, is(Collections.EMPTY_MAP)); } - - @Test - public void verifyMaterialOrder() { - List expectedOrder = new ArrayList<>(Material.values().length); - - // Start with items in the same order as BuiltInRegistries.ITEM - StreamSupport.stream(BuiltInRegistries.ITEM.spliterator(), false) - .map(CraftMagicNumbers::getMaterial) - .forEach(expectedOrder::add); - - // Then non-item blocks in the same order as BuiltInRegistries.BLOCK - StreamSupport.stream(BuiltInRegistries.BLOCK.spliterator(), false) - .map(CraftMagicNumbers::getMaterial) - .filter(block -> !block.isItem()) - .forEach(expectedOrder::add); - - // Then legacy materials in order of ID - Arrays.stream(Material.values()) - .filter(Material::isLegacy) - .sorted(Comparator.comparingInt(Material::getId)) - .forEach(expectedOrder::add); - - assertArrayEquals(expectedOrder.toArray(), Material.values()); - } } diff --git a/paper-server/src/test/java/org/bukkit/PerMaterialTest.java b/paper-server/src/test/java/org/bukkit/PerMaterialTest.java index 6961730365..3bd7900e31 100644 --- a/paper-server/src/test/java/org/bukkit/PerMaterialTest.java +++ b/paper-server/src/test/java/org/bukkit/PerMaterialTest.java @@ -3,115 +3,23 @@ package org.bukkit; import static org.bukkit.support.MatcherAssert.*; import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.*; -import java.util.Map; -import net.minecraft.core.BlockPos; + import net.minecraft.core.component.DataComponents; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.equipment.Equippable; -import net.minecraft.world.level.EmptyBlockGetter; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.Fallable; -import net.minecraft.world.level.block.FireBlock; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; import org.bukkit.block.data.BlockData; -import org.bukkit.craftbukkit.CraftEquipmentSlot; -import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.enchantments.EnchantmentTarget; -import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; -import org.bukkit.support.LegacyHelper; import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @AllFeatures public class PerMaterialTest { - private static Map fireValues; - - @BeforeAll - public static void getFireValues() { - PerMaterialTest.fireValues = ((FireBlock) Blocks.FIRE).igniteOdds; - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isBlock(Material material) { - if (material != Material.AIR && material != Material.CAVE_AIR && material != Material.VOID_AIR) { - assertThat(material.isBlock(), is(not(CraftMagicNumbers.getBlock(material) == null))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isSolid(Material material) { - if (material == Material.AIR) { - assertFalse(material.isSolid()); - } else if (material.isBlock()) { - assertThat(material.isSolid(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().blocksMotion())); - } else { - assertFalse(material.isSolid()); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isEdible(Material material) { - if (material.isBlock()) { - assertFalse(material.isEdible()); - } else { - assertThat(material.isEdible(), is(CraftMagicNumbers.getItem(material).components().has(DataComponents.FOOD))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isRecord(Material material) { - if (material.isBlock()) { - assertFalse(material.isRecord()); - } else { - assertThat(material.isRecord(), is(CraftMagicNumbers.getItem(material).components().has(DataComponents.JUKEBOX_PLAYABLE))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void maxDurability(Material material) { - if (LegacyHelper.getInvalidatedMaterials().contains(material)) return; - - if (material == Material.AIR) { - assertThat((int) material.getMaxDurability(), is(0)); - } else if (material.isBlock()) { - Item item = CraftMagicNumbers.getItem(material); - assertThat((int) material.getMaxDurability(), is(item.components().getOrDefault(DataComponents.MAX_DAMAGE, 0))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void maxStackSize(Material material) { - if (LegacyHelper.getInvalidatedMaterials().contains(material)) return; - - final ItemStack bukkit = new ItemStack(material); - final CraftItemStack craft = CraftItemStack.asCraftCopy(bukkit); - - // Paper - remove air exception - int max = CraftMagicNumbers.getItem(material).components().getOrDefault(DataComponents.MAX_STACK_SIZE, 64); - assertThat(material.getMaxStackSize(), is(max)); - assertThat(bukkit.getMaxStackSize(), is(max)); - assertThat(craft.getMaxStackSize(), is(max)); - // Paper - remove air exception - } @ParameterizedTest @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) + @Disabled public void isTransparent(Material material) { if (material == Material.AIR) { assertTrue(material.isTransparent()); @@ -122,47 +30,6 @@ public class PerMaterialTest { } } - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isFlammable(Material material) { - if (material != Material.AIR && material.isBlock()) { - assertThat(material.isFlammable(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().ignitedByLava())); - } else { - assertFalse(material.isFlammable()); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isBurnable(Material material) { - if (material.isBlock()) { - Block block = CraftMagicNumbers.getBlock(material); - assertThat(material.isBurnable(), is(PerMaterialTest.fireValues.containsKey(block) && PerMaterialTest.fireValues.get(block) > 0)); - } else { - assertFalse(material.isBurnable()); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void isOccluding(Material material) { - if (material.isBlock()) { - assertThat(material.isOccluding(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().isRedstoneConductor(EmptyBlockGetter.INSTANCE, BlockPos.ZERO))); - } else { - assertFalse(material.isOccluding()); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void hasGravity(Material material) { - if (material.isBlock()) { - assertThat(material.hasGravity(), is(CraftMagicNumbers.getBlock(material) instanceof Fallable)); - } else { - assertFalse(material.hasGravity()); - } - } - @ParameterizedTest @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) public void usesDurability(Material material) { @@ -173,104 +40,6 @@ public class PerMaterialTest { } } - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testDurability(Material material) { - if (!material.isBlock()) { - assertThat(material.getMaxDurability(), is((short) (int) CraftMagicNumbers.getItem(material).components().getOrDefault(DataComponents.MAX_DAMAGE, 0))); - } else { - assertThat(material.getMaxDurability(), is((short) 0)); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testBlock(Material material) { - if (material == Material.AIR) { - assertTrue(material.isBlock()); - } else { - assertThat(material.isBlock(), is(equalTo(CraftMagicNumbers.getBlock(material) != null))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testAir(Material material) { - if (material.isBlock()) { - assertThat(material.isAir(), is(equalTo(CraftMagicNumbers.getBlock(material).defaultBlockState().isAir()))); - } else { - assertThat(material.isAir(), is(equalTo(false))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testItem(Material material) { - if (material == Material.AIR) { - assertTrue(material.isItem()); - } else { - assertThat(material.isItem(), is(equalTo(CraftMagicNumbers.getItem(material) != null))); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testInteractable(Material material) throws ReflectiveOperationException { - if (material.isBlock()) { - Class clazz = CraftMagicNumbers.getBlock(material).getClass(); - - boolean hasMethod = this.hasMethod(clazz, "useWithoutItem", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, BlockHitResult.class) - || this.hasMethod(clazz, "useItemOn", net.minecraft.world.item.ItemStack.class, BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class); - - if (!hasMethod && clazz.getSuperclass() != BlockBehaviour.class) { - clazz = clazz.getSuperclass(); - - hasMethod = this.hasMethod(clazz, "useWithoutItem", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, BlockHitResult.class) - || this.hasMethod(clazz, "useItemOn", net.minecraft.world.item.ItemStack.class, BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class); - } - - assertThat(material.isInteractable(), - is(hasMethod)); - } else { - assertFalse(material.isInteractable()); - } - } - - private boolean hasMethod(Class clazz, String methodName, Class... params) { - boolean hasMethod; - try { - hasMethod = clazz.getDeclaredMethod(methodName, params) != null; - } catch (NoSuchMethodException ex) { - hasMethod = false; - } - - return hasMethod; - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testBlockHardness(Material material) { - if (material.isBlock()) { - assertThat(material.getHardness(), is(CraftMagicNumbers.getBlock(material).defaultBlockState().destroySpeed)); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testBlastResistance(Material material) { - if (material.isBlock()) { - assertThat(material.getBlastResistance(), is(CraftMagicNumbers.getBlock(material).getExplosionResistance())); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testSlipperiness(Material material) { - if (material.isBlock()) { - assertThat(material.getSlipperiness(), is(CraftMagicNumbers.getBlock(material).getFriction())); - } - } - @ParameterizedTest @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) public void testBlockDataCreation(Material material) { @@ -279,27 +48,6 @@ public class PerMaterialTest { } } - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testCraftingRemainingItem(Material material) { - if (material.isItem()) { - net.minecraft.world.item.ItemStack expectedItem = CraftMagicNumbers.getItem(material).getCraftingRemainder(); - Material expected = expectedItem.isEmpty() ? null : CraftMagicNumbers.getMaterial(expectedItem.getItem()); - - assertThat(material.getCraftingRemainingItem(), is(expected)); - } - } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testEquipmentSlot(Material material) { - if (material.isItem()) { - Equippable equipable = CraftItemStack.asNMSCopy(new ItemStack(material)).get(DataComponents.EQUIPPABLE); - EquipmentSlot expected = CraftEquipmentSlot.getSlot(equipable != null ? equipable.slot() : net.minecraft.world.entity.EquipmentSlot.MAINHAND); - assertThat(material.getEquipmentSlot(), is(expected)); - } - } - @ParameterizedTest @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) public void testBlockDataClass(Material material) { @@ -311,12 +59,4 @@ public class PerMaterialTest { } } } - - @ParameterizedTest - @EnumSource(value = Material.class, names = "LEGACY_.*", mode = EnumSource.Mode.MATCH_NONE) - public void testCreativeCategory(Material material) { - if (material.isItem()) { - material.getCreativeCategory(); - } - } } diff --git a/paper-server/src/test/java/org/bukkit/SoundTest.java b/paper-server/src/test/java/org/bukkit/SoundTest.java index 607e7da136..ef268c0436 100644 --- a/paper-server/src/test/java/org/bukkit/SoundTest.java +++ b/paper-server/src/test/java/org/bukkit/SoundTest.java @@ -1,32 +1,13 @@ package org.bukkit; -import static org.bukkit.support.MatcherAssert.*; -import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.*; -import java.util.Locale; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; -import org.bukkit.craftbukkit.CraftSound; + import org.bukkit.support.environment.AllFeatures; import org.junit.jupiter.api.Test; @AllFeatures public class SoundTest { - @Test - public void testGetSound() { - for (Sound sound : Sound.values()) { - assertThat(CraftSound.bukkitToMinecraft(sound), is(not(nullValue())), sound.name()); - } - } - - @Test - public void testReverse() { - for (ResourceLocation effect : BuiltInRegistries.SOUND_EVENT.keySet()) { - assertNotNull(Sound.valueOf(effect.getPath().replace('.', '_').toUpperCase(Locale.ROOT)), effect + ""); - } - } - @Test public void testCategory() { for (SoundCategory category : SoundCategory.values()) { diff --git a/paper-server/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java b/paper-server/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java index 270befba49..34548dcc73 100644 --- a/paper-server/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java +++ b/paper-server/src/test/java/org/bukkit/StatisticsAndAchievementsTest.java @@ -15,8 +15,7 @@ import org.junit.jupiter.api.Test; public class StatisticsAndAchievementsTest { @Test - @SuppressWarnings("unchecked") - public void verifyEntityMapping() throws Throwable { + public void verifyEntityMapping() { for (Statistic statistic : Statistic.values()) { if (statistic.getType() == Statistic.Type.ENTITY) { for (EntityType entity : EntityType.values()) { @@ -30,7 +29,7 @@ public class StatisticsAndAchievementsTest { @Test @SuppressWarnings("unchecked") - public void verifyStatisticMapping() throws Throwable { + public void verifyStatisticMapping() { HashMultiset statistics = HashMultiset.create(); for (StatType wrapper : BuiltInRegistries.STAT_TYPE) { for (Object child : wrapper.getRegistry()) { diff --git a/paper-server/src/test/java/org/bukkit/block/banner/PatternTypeTest.java b/paper-server/src/test/java/org/bukkit/block/banner/PatternTypeTest.java deleted file mode 100644 index 66db0cf71b..0000000000 --- a/paper-server/src/test/java/org/bukkit/block/banner/PatternTypeTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.bukkit.block.banner; - -import static org.junit.jupiter.api.Assertions.*; - -import net.minecraft.core.registries.Registries; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.level.block.entity.BannerPattern; -import org.bukkit.NamespacedKey; -import org.bukkit.Registry; -import org.bukkit.craftbukkit.util.CraftNamespacedKey; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class PatternTypeTest { - - @Test - public void testToBukkit() { - for (BannerPattern nms : MinecraftServer.getDefaultRegistryAccess().lookupOrThrow(Registries.BANNER_PATTERN)) { - PatternType bukkit = Registry.BANNER_PATTERN.get(CraftNamespacedKey.fromMinecraft(nms.assetId())); - - assertNotNull(bukkit, "No Bukkit banner pattern for " + nms + " " + nms); - } - } - - @Test - public void testToNMS() { - net.minecraft.core.Registry registry = MinecraftServer.getDefaultRegistryAccess().lookupOrThrow(Registries.BANNER_PATTERN); - for (PatternType bukkit : PatternType.values()) { - BannerPattern found = null; - for (BannerPattern nms : registry) { - NamespacedKey nmsKey = CraftNamespacedKey.fromMinecraft(registry.getKey(nms)); - if (bukkit.getKey().equals(nmsKey)) { - found = nms; - break; - } - } - - assertNotNull(found, "No NMS banner pattern for " + bukkit + " " + bukkit.getKey()); - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/craftbukkit/inventory/ItemTypeTest.java b/paper-server/src/test/java/org/bukkit/craftbukkit/inventory/ItemTypeTest.java index ccf5fff9aa..f4932f1755 100644 --- a/paper-server/src/test/java/org/bukkit/craftbukkit/inventory/ItemTypeTest.java +++ b/paper-server/src/test/java/org/bukkit/craftbukkit/inventory/ItemTypeTest.java @@ -56,7 +56,7 @@ public class ItemTypeTest { @Test public void testStaticItemTypeUsageBuilder() { final ItemStack armor = ItemType.DIAMOND_LEGGINGS.createItemStack(a -> - a.setTrim(new ArmorTrim(TrimMaterial.EMERALD, TrimPattern.COAST)) + ((ArmorMeta) a).setTrim(new ArmorTrim(TrimMaterial.EMERALD, TrimPattern.COAST)) ); final ItemMeta itemMeta = armor.getItemMeta(); diff --git a/paper-server/src/test/java/org/bukkit/entity/EntityTypesTest.java b/paper-server/src/test/java/org/bukkit/entity/EntityTypesTest.java index d513d926dd..a4e2c42e9a 100644 --- a/paper-server/src/test/java/org/bukkit/entity/EntityTypesTest.java +++ b/paper-server/src/test/java/org/bukkit/entity/EntityTypesTest.java @@ -1,33 +1,13 @@ package org.bukkit.entity; import static org.junit.jupiter.api.Assertions.*; -import java.util.Arrays; -import java.util.Set; -import java.util.stream.Collectors; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; + import org.bukkit.support.environment.AllFeatures; import org.junit.jupiter.api.Test; @AllFeatures public class EntityTypesTest { - @Test - public void testMaps() { - Set allBukkit = Arrays.stream(EntityType.values()).filter((b) -> b.getName() != null).collect(Collectors.toSet()); - - for (net.minecraft.world.entity.EntityType nms : BuiltInRegistries.ENTITY_TYPE) { // Paper - remap fix - ResourceLocation key = net.minecraft.world.entity.EntityType.getKey(nms); // Paper - remap fix - - org.bukkit.entity.EntityType bukkit = org.bukkit.entity.EntityType.fromName(key.getPath()); - assertNotNull(bukkit, "Missing nms->bukkit " + key); - - assertTrue(allBukkit.remove(bukkit), "Duplicate entity nms->" + bukkit); - } - - assertTrue(allBukkit.isEmpty(), "Unmapped bukkit entities " + allBukkit); - } - @Test public void testTranslationKey() { for (org.bukkit.entity.EntityType entityType : org.bukkit.entity.EntityType.values()) { diff --git a/paper-server/src/test/java/org/bukkit/entity/PandaGeneTest.java b/paper-server/src/test/java/org/bukkit/entity/PandaGeneTest.java deleted file mode 100644 index e8520f541f..0000000000 --- a/paper-server/src/test/java/org/bukkit/entity/PandaGeneTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.bukkit.entity; - -import static org.junit.jupiter.api.Assertions.*; - -import org.bukkit.craftbukkit.entity.CraftPanda; -import org.bukkit.support.environment.Normal; -import org.junit.jupiter.api.Test; - -@Normal -public class PandaGeneTest { - - @Test - public void testBukkit() { - for (Panda.Gene gene : Panda.Gene.values()) { // Paper - remap fix - net.minecraft.world.entity.animal.Panda.Gene nms = CraftPanda.toNms(gene); // Paper - remap fix - - assertNotNull(nms, "NMS gene null for " + gene); - assertEquals(gene.isRecessive(), nms.isRecessive(), "Recessive status did not match " + gene); - assertEquals(gene, CraftPanda.fromNms(nms), "Gene did not convert back " + gene); - } - } - - @Test - public void testNMS() { - for (net.minecraft.world.entity.animal.Panda.Gene gene : net.minecraft.world.entity.animal.Panda.Gene.values()) { // Paper - remap fix - org.bukkit.entity.Panda.Gene bukkit = CraftPanda.fromNms(gene); - - assertNotNull(bukkit, "Bukkit gene null for " + gene); - assertEquals(gene.isRecessive(), bukkit.isRecessive(), "Recessive status did not match " + gene); - assertEquals(gene, CraftPanda.toNms(bukkit), "Gene did not convert back " + gene); - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/entity/memory/CraftMemoryKeyTest.java b/paper-server/src/test/java/org/bukkit/entity/memory/CraftMemoryKeyTest.java deleted file mode 100644 index b54282894a..0000000000 --- a/paper-server/src/test/java/org/bukkit/entity/memory/CraftMemoryKeyTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.bukkit.entity.memory; - -import static org.junit.jupiter.api.Assertions.*; -import net.minecraft.core.GlobalPos; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.world.entity.ai.memory.MemoryModuleType; -import org.bukkit.Location; -import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class CraftMemoryKeyTest { - - @Test - public void shouldConvertBukkitHomeKeyToNMSRepresentation() { - MemoryModuleType nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.HOME); - assertEquals(MemoryModuleType.HOME, nmsHomeKey, "MemoryModuleType should be HOME"); - } - - @Test - public void shouldConvertBukkitJobSiteKeyToNMSRepresentation() { - MemoryModuleType nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.JOB_SITE); - assertEquals(MemoryModuleType.JOB_SITE, nmsHomeKey, "MemoryModuleType should be JOB_SITE"); - } - - @Test - public void shouldConvertBukkitMeetingPointKeyToNMSRepresentation() { - MemoryModuleType nmsHomeKey = CraftMemoryKey.bukkitToMinecraft(MemoryKey.MEETING_POINT); - assertEquals(MemoryModuleType.MEETING_POINT, nmsHomeKey, "MemoryModuleType should be MEETING_POINT"); - } - - @Test - public void shouldConvertNMSHomeKeyToBukkitRepresentation() { - MemoryKey bukkitHomeKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.HOME); - assertEquals(MemoryKey.HOME, bukkitHomeKey, "MemoryModuleType should be HOME"); - } - - @Test - public void shouldConvertNMSJobSiteKeyToBukkitRepresentation() { - MemoryKey bukkitJobSiteKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.JOB_SITE); - assertEquals(MemoryKey.JOB_SITE, bukkitJobSiteKey, "MemoryKey should be JOB_SITE"); - } - - @Test - public void shouldConvertNMSMeetingPointKeyToBukkitRepresentation() { - MemoryKey bukkitHomeKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.MEETING_POINT); - assertEquals(MemoryKey.MEETING_POINT, bukkitHomeKey, "MemoryKey should be MEETING_POINT"); - } - - @Test - public void shouldReturnNullWhenBukkitRepresentationOfKeyisNotAvailable() { - MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(MemoryModuleType.NEAREST_LIVING_ENTITIES); - assertNull(bukkitNoKey, "MemoryModuleType should be null"); - } - - @Test - public void shouldReturnNullWhenBukkitRepresentationOfKeyisNotAvailableAndSerializerIsNotPresent() { - for (MemoryModuleType memoryModuleType : BuiltInRegistries.MEMORY_MODULE_TYPE) { - if (!memoryModuleType.getCodec().isPresent()) { - MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(memoryModuleType); - assertNull(bukkitNoKey, "MemoryModuleType should be null"); - } - } - } - - @Test - @Disabled("Unit type not yet implemented") - public void shouldReturnAnInstanceOfMemoryKeyWhenBukkitRepresentationOfKeyisAvailableAndSerializerIsPresent() { - for (MemoryModuleType memoryModuleType : BuiltInRegistries.MEMORY_MODULE_TYPE) { - if (memoryModuleType.getCodec().isPresent()) { - MemoryKey bukkitNoKey = CraftMemoryKey.minecraftToBukkit(memoryModuleType); - assertNotNull(bukkitNoKey, "MemoryModuleType should not be null " + BuiltInRegistries.MEMORY_MODULE_TYPE.getKey(memoryModuleType)); - } - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/generator/structure/StructureTest.java b/paper-server/src/test/java/org/bukkit/generator/structure/StructureTest.java deleted file mode 100644 index cbfc533ed8..0000000000 --- a/paper-server/src/test/java/org/bukkit/generator/structure/StructureTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.bukkit.generator.structure; - -import static org.junit.jupiter.api.Assertions.*; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.Locale; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import org.bukkit.NamespacedKey; -import org.bukkit.Registry; -import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.util.CraftNamespacedKey; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class StructureTest { - - @Test - public void testBukkitToMinecraftFieldName() { - for (Field field : Structure.class.getFields()) { - if (field.getType() != Structure.class) { - continue; - } - if (!Modifier.isStatic(field.getModifiers())) { - continue; - } - - String name = field.getName(); - assertNotNull(Registry.STRUCTURE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))), "No structure for field name " + name); - } - } - - @Test - public void testMinecraftToBukkitFieldName() { - net.minecraft.core.Registry structureBuiltInRegistries = CraftRegistry.getMinecraftRegistry(Registries.STRUCTURE); - for (net.minecraft.world.level.levelgen.structure.Structure structure : structureBuiltInRegistries) { - ResourceLocation minecraftKey = structureBuiltInRegistries.getKey(structure); - - try { - Structure bukkit = (Structure) Structure.class.getField(minecraftKey.getPath().toUpperCase(Locale.ROOT)).get(null); - - assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey); - } catch (NoSuchFieldException e) { - fail("No Bukkit default structure for " + minecraftKey); - } catch (IllegalAccessException e) { - fail("Bukkit field is not access able for " + minecraftKey); - } catch (ClassCastException e) { - fail("Bukkit field is not of type structure for" + minecraftKey); - } - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/generator/structure/StructureTypeTest.java b/paper-server/src/test/java/org/bukkit/generator/structure/StructureTypeTest.java deleted file mode 100644 index 78fa3f3166..0000000000 --- a/paper-server/src/test/java/org/bukkit/generator/structure/StructureTypeTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.bukkit.generator.structure; - -import static org.junit.jupiter.api.Assertions.*; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.Locale; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; -import net.minecraft.resources.ResourceLocation; -import org.bukkit.NamespacedKey; -import org.bukkit.Registry; -import org.bukkit.craftbukkit.CraftRegistry; -import org.bukkit.craftbukkit.util.CraftNamespacedKey; -import org.bukkit.support.environment.AllFeatures; -import org.junit.jupiter.api.Test; - -@AllFeatures -public class StructureTypeTest { - - @Test - public void testBukkitToMinecraftFieldName() { - for (Field field : StructureType.class.getFields()) { - if (field.getType() != StructureType.class) { - continue; - } - if (!Modifier.isStatic(field.getModifiers())) { - continue; - } - - String name = field.getName(); - assertNotNull(Registry.STRUCTURE_TYPE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))), "No enchantment for field name " + name); - } - } - - @Test - public void testMinecraftToBukkitFieldName() { - for (net.minecraft.world.level.levelgen.structure.StructureType structureType : CraftRegistry.getMinecraftRegistry(Registries.STRUCTURE_TYPE)) { - ResourceLocation minecraftKey = BuiltInRegistries.STRUCTURE_TYPE.getKey(structureType); - - try { - StructureType bukkit = (StructureType) StructureType.class.getField(minecraftKey.getPath().toUpperCase(Locale.ROOT)).get(null); - - assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey); - } catch (NoSuchFieldException e) { - fail("No Bukkit default enchantment for " + minecraftKey); - } catch (IllegalAccessException e) { - fail("Bukkit field is not access able for " + minecraftKey); - } catch (ClassCastException e) { - fail("Bukkit field is not of type enchantment for" + minecraftKey); - } - } - } -} diff --git a/paper-server/src/test/java/org/bukkit/map/MapTest.java b/paper-server/src/test/java/org/bukkit/map/MapTest.java index 51ee862f3e..a16dfc104b 100644 --- a/paper-server/src/test/java/org/bukkit/map/MapTest.java +++ b/paper-server/src/test/java/org/bukkit/map/MapTest.java @@ -3,11 +3,8 @@ package org.bukkit.map; import static org.junit.jupiter.api.Assertions.*; import java.awt.Color; import java.util.concurrent.ExecutionException; -import java.util.logging.Level; import java.util.logging.Logger; -import net.minecraft.world.level.material.MapColor; import org.bukkit.craftbukkit.map.CraftMapColorCache; -import org.bukkit.support.environment.Normal; import org.bukkit.support.environment.Slow; import org.junit.jupiter.api.Test; @@ -15,55 +12,6 @@ public class MapTest { private static final Logger logger = Logger.getLogger("MapTest"); - private static final int[] modifiers = {180, 220, 255, 135}; - - @Test - @Normal - public void testColors() { - MapColor[] nmsColors = MapColor.MATERIAL_COLORS; - Color[] bukkitColors = MapPalette.colors; - - boolean fail = false; - for (int i = 0; i < nmsColors.length; i++) { - if (nmsColors[i] == null) { - break; - } - int rgb = nmsColors[i].col; - - int r = (rgb >> 16) & 0xFF; - int g = (rgb >> 8) & 0xFF; - int b = rgb & 0xFF; - - if (i + 1 > bukkitColors.length / 4) { - for (int modi : MapTest.modifiers) { - int mr = (r * modi) / 255; - int mg = (g * modi) / 255; - int mb = (b * modi) / 255; - MapTest.logger.log(Level.WARNING, "Missing color (check CraftMapView#render and update md5 hash in CraftMapColorCache): c({0}, {1}, {2})", new Object[]{mr, mg, mb}); - } - fail = true; - } else { - for (int j = 0; j < MapTest.modifiers.length; j++) { - int modi = MapTest.modifiers[j]; - Color bukkit = bukkitColors[i * 4 + j]; - int mr = (r * modi) / 255; - int mg = (g * modi) / 255; - int mb = (b * modi) / 255; - - if (bukkit.getRed() != mr || bukkit.getGreen() != mg || bukkit.getBlue() != mb) { - MapTest.logger.log(Level.WARNING, "Incorrect color: {6} {7} c({0}, {1}, {2}) != c({3}, {4}, {5})", new Object[]{ - bukkit.getRed(), bukkit.getGreen(), bukkit.getBlue(), - mr, mg, mb, - i, j - }); - fail = true; - } - } - } - } - assertFalse(fail); - } - @Test @Slow("Test takes around 25 seconds, should be run by changes to the map color conversion") public void testMapColorCacheBuilding() throws ExecutionException, InterruptedException { diff --git a/paper-server/src/test/java/org/bukkit/potion/PotionTest.java b/paper-server/src/test/java/org/bukkit/potion/PotionTest.java index b07e88813c..0cfe19d91d 100644 --- a/paper-server/src/test/java/org/bukkit/potion/PotionTest.java +++ b/paper-server/src/test/java/org/bukkit/potion/PotionTest.java @@ -16,23 +16,6 @@ import org.junit.jupiter.api.Test; @AllFeatures public class PotionTest { - @Test - public void testEffectCompleteness() throws Throwable { - Map effects = new EnumMap(PotionType.class); - for (Potion reg : BuiltInRegistries.POTION) { - List eff = reg.getEffects(); - if (eff.size() != 1) continue; - PotionEffectType type = CraftPotionEffectType.minecraftHolderToBukkit(eff.get(0).getEffect()); - assertNotNull(type, String.valueOf(reg)); - - PotionType enumType = PotionType.getByEffect(type); - assertNotNull(enumType, type.getName()); - - effects.put(enumType, enumType.name()); - } - - assertEquals(PotionType.values().length - /* PotionTypes with no/shared Effects */ (5 + 22 /* There are 22 new strong / long potion types */), effects.entrySet().size()); - } @Test public void testEffectType() { @@ -42,7 +25,6 @@ public class PotionTest { PotionEffectType bukkit = CraftPotionEffectType.minecraftToBukkit(nms); assertNotNull(bukkit, "No Bukkit type for " + key); - assertFalse(bukkit.getName().contains("UNKNOWN"), "No name for " + key); PotionEffectType byName = FieldRename.getByName_PotionEffectType(bukkit.getName()); assertEquals(bukkit, byName, "Same type not returned by name " + key); diff --git a/paper-server/src/test/java/org/bukkit/support/extension/AllFeaturesExtension.java b/paper-server/src/test/java/org/bukkit/support/extension/AllFeaturesExtension.java index 8fef8421e3..a17f783d0c 100644 --- a/paper-server/src/test/java/org/bukkit/support/extension/AllFeaturesExtension.java +++ b/paper-server/src/test/java/org/bukkit/support/extension/AllFeaturesExtension.java @@ -1,7 +1,5 @@ package org.bukkit.support.extension; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; import java.util.HashMap; import java.util.Map; import net.minecraft.world.flag.FeatureFlags; @@ -17,7 +15,6 @@ import org.junit.jupiter.api.extension.ExtensionContext; public class AllFeaturesExtension extends BaseExtension { private static final Map, Registry> realRegistries = new HashMap<>(); - private static final Map, Registry> spyRegistries = new HashMap<>(); public AllFeaturesExtension() { super("AllFeatures"); diff --git a/paper-server/src/test/java/org/bukkit/support/extension/LegacyExtension.java b/paper-server/src/test/java/org/bukkit/support/extension/LegacyExtension.java index c9c3227c3b..ae8a16160b 100644 --- a/paper-server/src/test/java/org/bukkit/support/extension/LegacyExtension.java +++ b/paper-server/src/test/java/org/bukkit/support/extension/LegacyExtension.java @@ -1,13 +1,7 @@ package org.bukkit.support.extension; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; -import java.util.HashMap; -import java.util.Map; import net.minecraft.world.flag.FeatureFlags; import org.bukkit.Bukkit; -import org.bukkit.Keyed; -import org.bukkit.Registry; import org.bukkit.Server; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.support.DummyServerHelper; @@ -16,8 +10,6 @@ import org.junit.jupiter.api.extension.ExtensionContext; public class LegacyExtension extends BaseExtension { - private static final Map, Registry> registries = new HashMap<>(); - public LegacyExtension() { super("Legacy"); } diff --git a/paper-server/src/test/java/org/bukkit/support/extension/SlowExtension.java b/paper-server/src/test/java/org/bukkit/support/extension/SlowExtension.java index 87364f223f..eb0960fa11 100644 --- a/paper-server/src/test/java/org/bukkit/support/extension/SlowExtension.java +++ b/paper-server/src/test/java/org/bukkit/support/extension/SlowExtension.java @@ -1,13 +1,7 @@ package org.bukkit.support.extension; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; -import java.util.HashMap; -import java.util.Map; import net.minecraft.world.flag.FeatureFlags; import org.bukkit.Bukkit; -import org.bukkit.Keyed; -import org.bukkit.Registry; import org.bukkit.Server; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.support.DummyServerHelper; @@ -16,8 +10,6 @@ import org.junit.jupiter.api.extension.ExtensionContext; public class SlowExtension extends BaseExtension { - private static final Map, Registry> registries = new HashMap<>(); - public SlowExtension() { super("Slow"); } diff --git a/paper-server/src/test/java/org/bukkit/support/extension/VanillaFeatureExtension.java b/paper-server/src/test/java/org/bukkit/support/extension/VanillaFeatureExtension.java index 626c3033e3..66db95cfca 100644 --- a/paper-server/src/test/java/org/bukkit/support/extension/VanillaFeatureExtension.java +++ b/paper-server/src/test/java/org/bukkit/support/extension/VanillaFeatureExtension.java @@ -1,13 +1,7 @@ package org.bukkit.support.extension; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; -import java.util.HashMap; -import java.util.Map; import net.minecraft.world.flag.FeatureFlags; import org.bukkit.Bukkit; -import org.bukkit.Keyed; -import org.bukkit.Registry; import org.bukkit.Server; import org.bukkit.craftbukkit.CraftRegistry; import org.bukkit.support.DummyServerHelper; @@ -16,8 +10,6 @@ import org.junit.jupiter.api.extension.ExtensionContext; public class VanillaFeatureExtension extends BaseExtension { - private static final Map, Registry> registries = new HashMap<>(); - public VanillaFeatureExtension() { super("VanillaFeature"); } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2e832ab34f..e603a336cd 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,14 +34,17 @@ if (!file(".git").exists()) { rootProject.name = "paper" for (name in listOf("paper-api", "paper-server")) { - val projName = name.lowercase(Locale.ENGLISH) - include(projName) + include(name) file(name).mkdirs() - findProject(":$projName")!!.projectDir = file(name) } optionalInclude("test-plugin") -optionalInclude("paper-api-generator") + +if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) { + include("paper-generator") +} else { + optionalInclude("paper-generator") +} fun optionalInclude(name: String, op: (ProjectDescriptor.() -> Unit)? = null) { val settingsFile = file("$name.settings.gradle.kts")