mirror of
https://github.com/PaperMC/Paper.git
synced 2025-05-19 05:30:23 -07:00
add task to format/update input files
This commit is contained in:
parent
d3a2d131ac
commit
d346e8c548
@ -77,6 +77,20 @@ tasks.register("generate") {
|
|||||||
dependsOn(generateApi, generateImpl)
|
dependsOn(generateApi, generateImpl)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.register<JavaExec>("prepareInputFiles") {
|
||||||
|
group = "generation"
|
||||||
|
description = "Prepare input files by sorting them (and updating them if possible)"
|
||||||
|
javaLauncher = javaToolchains.defaultJavaLauncher(project)
|
||||||
|
mainClass.set("io.papermc.generator.utils.PrepareInputFiles")
|
||||||
|
classpath(sourceSets.main.map { it.runtimeClasspath })
|
||||||
|
|
||||||
|
inputs.property("gameVersion", gameVersion)
|
||||||
|
val resourceDir = layout.projectDirectory.dir("src/main/resources")
|
||||||
|
args(resourceDir)
|
||||||
|
inputs.dir(resourceDir)
|
||||||
|
outputs.dir(resourceDir)
|
||||||
|
}
|
||||||
|
|
||||||
if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) {
|
if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) {
|
||||||
val scanOldGeneratedSourceCode by tasks.registering(JavaExec::class) {
|
val scanOldGeneratedSourceCode by tasks.registering(JavaExec::class) {
|
||||||
group = "verification"
|
group = "verification"
|
||||||
|
@ -182,7 +182,7 @@ public final class Rewriters {
|
|||||||
.register("MobGoalHelper#bukkitMap", Types.MOB_GOAL_HELPER, new SearchReplaceRewriter() {
|
.register("MobGoalHelper#bukkitMap", Types.MOB_GOAL_HELPER, new SearchReplaceRewriter() {
|
||||||
@Override
|
@Override
|
||||||
protected void insert(SearchMetadata metadata, StringBuilder builder) {
|
protected void insert(SearchMetadata metadata, StringBuilder builder) {
|
||||||
for (Map.Entry<Class<? extends Mob>, ClassName> entry : MobGoalNames.ENTITY_NAMES.entrySet()) {
|
for (Map.Entry<Class<? extends Mob>, ClassName> entry : MobGoalNames.ENTITY_CLASS_NAMES.entrySet()) {
|
||||||
builder.append(metadata.indent()).append("bukkitMap.put(%s.class, %s.class);".formatted(
|
builder.append(metadata.indent()).append("bukkitMap.put(%s.class, %s.class);".formatted(
|
||||||
entry.getKey().getCanonicalName(), this.importCollector.getShortName(Types.typed(entry.getValue()))
|
entry.getKey().getCanonicalName(), this.importCollector.getShortName(Types.typed(entry.getValue()))
|
||||||
));
|
));
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.papermc.generator.rewriter.types.simple;
|
package io.papermc.generator.rewriter.types.simple;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import com.mojang.datafixers.util.Either;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.JsonOps;
|
import com.mojang.serialization.JsonOps;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
@ -26,24 +27,31 @@ import static io.papermc.generator.utils.Formatting.quoted;
|
|||||||
|
|
||||||
public class EntityTypeRewriter extends EnumRegistryRewriter<EntityType<?>> {
|
public class EntityTypeRewriter extends EnumRegistryRewriter<EntityType<?>> {
|
||||||
|
|
||||||
record Data(ClassNamed api, int legacyId) {
|
public record Data(ClassNamed api, int legacyId) {
|
||||||
|
|
||||||
|
private static final int NO_LEGACY_ID = -1;
|
||||||
|
|
||||||
public Data(ClassNamed api) {
|
public Data(ClassNamed api) {
|
||||||
this(api, -1);
|
this(api, NO_LEGACY_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Codec<Data> DIRECT_CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
public static final Codec<Data> DIRECT_CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||||
SourceCodecs.CLASS_NAMED.fieldOf("api").forGetter(Data::api),
|
SourceCodecs.CLASS_NAMED.fieldOf("api").forGetter(Data::api),
|
||||||
ExtraCodecs.intRange(-1, Integer.MAX_VALUE).optionalFieldOf("legacy_id", -1).deprecated(13).forGetter(Data::legacyId)
|
ExtraCodecs.intRange(-1, Integer.MAX_VALUE).optionalFieldOf("legacy_id", NO_LEGACY_ID).deprecated(13).forGetter(Data::legacyId)
|
||||||
).apply(instance, Data::new));
|
).apply(instance, Data::new));
|
||||||
|
|
||||||
private static final Codec<Data> CLASS_ONLY_CODEC = SourceCodecs.CLASS_NAMED.xmap(Data::new, Data::api);
|
private static final Codec<Data> CLASS_ONLY_CODEC = SourceCodecs.CLASS_NAMED.xmap(Data::new, Data::api);
|
||||||
|
|
||||||
public static final Codec<Data> CODEC = Codec.withAlternative(CLASS_ONLY_CODEC, DIRECT_CODEC);
|
public static final Codec<Data> CODEC = Codec.either(CLASS_ONLY_CODEC, DIRECT_CODEC).xmap(Either::unwrap, data -> {
|
||||||
|
if (data.legacyId() != NO_LEGACY_ID) {
|
||||||
|
return Either.right(data);
|
||||||
|
}
|
||||||
|
return Either.left(data);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<ResourceKey<EntityType<?>>, Data> DATA;
|
private static final Map<ResourceKey<EntityType<?>>, Data> DATA;
|
||||||
private static final Codec<Map<ResourceKey<EntityType<?>>, Data>> DATA_CODEC = Codec.unboundedMap(ResourceKey.codec(Registries.ENTITY_TYPE), Data.CODEC);
|
public static final Codec<Map<ResourceKey<EntityType<?>>, Data>> DATA_CODEC = Codec.unboundedMap(ResourceKey.codec(Registries.ENTITY_TYPE), Data.CODEC);
|
||||||
static {
|
static {
|
||||||
try (Reader input = new BufferedReader(new InputStreamReader(EntityTypeRewriter.class.getClassLoader().getResourceAsStream("data/entity_types.json")))) {
|
try (Reader input = new BufferedReader(new InputStreamReader(EntityTypeRewriter.class.getClassLoader().getResourceAsStream("data/entity_types.json")))) {
|
||||||
JsonObject registries = SourceCodecs.GSON.fromJson(input, JsonObject.class);
|
JsonObject registries = SourceCodecs.GSON.fromJson(input, JsonObject.class);
|
||||||
|
@ -26,15 +26,15 @@ import org.jspecify.annotations.NullMarked;
|
|||||||
public final class MobGoalNames { // todo sync with MobGoalHelper ideally this should not be duplicated
|
public final class MobGoalNames { // todo sync with MobGoalHelper ideally this should not be duplicated
|
||||||
|
|
||||||
private static final Map<Class<? extends Goal>, ClassName> entityClassCache = new HashMap<>();
|
private static final Map<Class<? extends Goal>, ClassName> entityClassCache = new HashMap<>();
|
||||||
public static final Map<Class<? extends Mob>, ClassName> ENTITY_NAMES;
|
public static final Map<Class<? extends Mob>, ClassName> ENTITY_CLASS_NAMES;
|
||||||
private static final Codec<Map<Class<? extends Mob>, ClassName>> ENTITY_NAMES_CODEC = Codec.unboundedMap(
|
public static final Codec<Map<Class<? extends Mob>, ClassName>> ENTITY_CLASS_NAMES_CODEC = Codec.unboundedMap(
|
||||||
SourceCodecs.classCodec(Mob.class), SourceCodecs.CLASS_NAME
|
SourceCodecs.classCodec(Mob.class), SourceCodecs.CLASS_NAME
|
||||||
);
|
);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
try (Reader input = new BufferedReader(new InputStreamReader(MobGoalNames.class.getClassLoader().getResourceAsStream("data/entity_class_names.json")))) {
|
try (Reader input = new BufferedReader(new InputStreamReader(MobGoalNames.class.getClassLoader().getResourceAsStream("data/entity_class_names.json")))) {
|
||||||
JsonObject names = SourceCodecs.GSON.fromJson(input, JsonObject.class);
|
JsonObject names = SourceCodecs.GSON.fromJson(input, JsonObject.class);
|
||||||
ENTITY_NAMES = ENTITY_NAMES_CODEC.parse(JsonOps.INSTANCE, names).getOrThrow();
|
ENTITY_CLASS_NAMES = ENTITY_CLASS_NAMES_CODEC.parse(JsonOps.INSTANCE, names).getOrThrow();
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ public final class MobGoalNames { // todo sync with MobGoalHelper ideally this s
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static ClassName toBukkitClass(Class<? extends net.minecraft.world.entity.Mob> nmsClass) {
|
private static ClassName toBukkitClass(Class<? extends net.minecraft.world.entity.Mob> nmsClass) {
|
||||||
ClassName bukkitClass = ENTITY_NAMES.get(nmsClass);
|
ClassName bukkitClass = ENTITY_CLASS_NAMES.get(nmsClass);
|
||||||
if (bukkitClass == null) {
|
if (bukkitClass == null) {
|
||||||
throw new RuntimeException("Can't figure out applicable bukkit entity for nms entity " + nmsClass); // maybe just return Mob?
|
throw new RuntimeException("Can't figure out applicable bukkit entity for nms entity " + nmsClass); // maybe just return Mob?
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import com.google.gson.JsonElement;
|
|||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.mojang.datafixers.util.Either;
|
import com.mojang.datafixers.util.Either;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
|
import com.mojang.serialization.DataResult;
|
||||||
import com.mojang.serialization.JsonOps;
|
import com.mojang.serialization.JsonOps;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import io.papermc.generator.types.craftblockdata.property.holder.VirtualField;
|
import io.papermc.generator.types.craftblockdata.property.holder.VirtualField;
|
||||||
@ -47,6 +48,7 @@ import org.bukkit.block.data.type.Furnace;
|
|||||||
import org.bukkit.block.data.type.RedstoneRail;
|
import org.bukkit.block.data.type.RedstoneRail;
|
||||||
import org.bukkit.block.data.type.ResinClump;
|
import org.bukkit.block.data.type.ResinClump;
|
||||||
import org.bukkit.block.data.type.Switch;*/
|
import org.bukkit.block.data.type.Switch;*/
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jspecify.annotations.NullMarked;
|
import org.jspecify.annotations.NullMarked;
|
||||||
import org.jspecify.annotations.Nullable;
|
import org.jspecify.annotations.Nullable;
|
||||||
|
|
||||||
@ -180,14 +182,35 @@ public final class BlockStateMapping {
|
|||||||
MAPPING = Collections.unmodifiableMap(map);
|
MAPPING = Collections.unmodifiableMap(map);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
record PropertyData(Optional<String> field, Optional<String> name, ClassNamed api, boolean pure) {
|
public record PropertyData(Optional<String> field, Optional<String> name, ClassNamed api, boolean pure) implements Comparable<PropertyData> { // todo either? fieldOrName but keep them separate in the codec
|
||||||
|
|
||||||
public static final Codec<PropertyData> CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
public static final Codec<PropertyData> UNSAFE_CODEC = RecordCodecBuilder.create(instance -> instance.group(
|
||||||
SourceCodecs.IDENTIFIER.optionalFieldOf("field").forGetter(PropertyData::field),
|
SourceCodecs.IDENTIFIER.optionalFieldOf("field").forGetter(PropertyData::field),
|
||||||
Codec.STRING.optionalFieldOf("name").forGetter(PropertyData::name),
|
Codec.STRING.optionalFieldOf("name").forGetter(PropertyData::name),
|
||||||
SourceCodecs.CLASS_NAMED.fieldOf("api").forGetter(PropertyData::api),
|
SourceCodecs.CLASS_NAMED.fieldOf("api").forGetter(PropertyData::api),
|
||||||
Codec.BOOL.optionalFieldOf("pure", false).forGetter(PropertyData::pure)
|
Codec.BOOL.optionalFieldOf("pure", false).forGetter(PropertyData::pure)
|
||||||
).apply(instance, PropertyData::new));
|
).apply(instance, PropertyData::new));
|
||||||
|
|
||||||
|
public static final Codec<PropertyData> CODEC = UNSAFE_CODEC.validate(data -> {
|
||||||
|
return data.field().isEmpty() && data.name().isEmpty() ? DataResult.error(() -> "Must contains a name or a field") : DataResult.success(data);
|
||||||
|
});
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(@NotNull BlockStateMapping.PropertyData data) {
|
||||||
|
if (this.field().isPresent() && data.field().isPresent()) {
|
||||||
|
return this.field().orElseThrow().compareTo(data.field().orElseThrow());
|
||||||
|
} else if (this.name().isPresent() && data.name().isPresent()) {
|
||||||
|
return this.name().orElseThrow().compareTo(data.name().orElseThrow());
|
||||||
|
} else {
|
||||||
|
if (this.name().isPresent() && data.field().isPresent()) {
|
||||||
|
return 1;
|
||||||
|
} else if (this.field().isPresent() && data.name().isPresent()) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0; // shouldn't happen
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// levelled and ageable are done using the property name
|
// levelled and ageable are done using the property name
|
||||||
@ -196,11 +219,12 @@ public final class BlockStateMapping {
|
|||||||
private static final Map<String, ClassNamed> NAME_TO_DATA;
|
private static final Map<String, ClassNamed> NAME_TO_DATA;
|
||||||
private static final Map<Property<?>, ClassNamed> PROPERTY_TO_DATA;
|
private static final Map<Property<?>, ClassNamed> PROPERTY_TO_DATA;
|
||||||
private static final Map<Property<?>, ClassNamed> MAIN_PROPERTY_TO_DATA;
|
private static final Map<Property<?>, ClassNamed> MAIN_PROPERTY_TO_DATA;
|
||||||
|
public static final Codec<List<PropertyData>> PROPERTY_DATA_CODEC = PropertyData.CODEC.listOf();
|
||||||
static {
|
static {
|
||||||
List<PropertyData> propertyData;
|
List<PropertyData> propertyData;
|
||||||
try (Reader input = new BufferedReader(new InputStreamReader(BlockStateMapping.class.getClassLoader().getResourceAsStream("data/block_state_properties.json")))) {
|
try (Reader input = new BufferedReader(new InputStreamReader(BlockStateMapping.class.getClassLoader().getResourceAsStream("data/block_state_properties.json")))) {
|
||||||
JsonArray properties = SourceCodecs.GSON.fromJson(input, JsonArray.class);
|
JsonArray properties = SourceCodecs.GSON.fromJson(input, JsonArray.class);
|
||||||
propertyData = PropertyData.CODEC.listOf().parse(JsonOps.INSTANCE, properties).getOrThrow();
|
propertyData = PROPERTY_DATA_CODEC.parse(JsonOps.INSTANCE, properties).getOrThrow();
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
throw new RuntimeException(ex);
|
throw new RuntimeException(ex);
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,9 @@ import com.mojang.serialization.Codec;
|
|||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import io.papermc.generator.Main;
|
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.core.Registry;
|
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
|
||||||
import net.minecraft.tags.TagKey;
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.util.ExtraCodecs;
|
import net.minecraft.util.ExtraCodecs;
|
||||||
import net.minecraft.util.StringRepresentable;
|
import net.minecraft.util.StringRepresentable;
|
||||||
@ -96,23 +93,21 @@ public sealed interface ItemPredicate permits ItemPredicate.IsClassPredicate, It
|
|||||||
|
|
||||||
record IsElementPredicate(ExtraCodecs.TagOrElementLocation value) implements ItemPredicate {
|
record IsElementPredicate(ExtraCodecs.TagOrElementLocation value) implements ItemPredicate {
|
||||||
|
|
||||||
private static final Codec<ExtraCodecs.TagOrElementLocation> ITEM_TAG_OR_ELEMENT_ID = ExtraCodecs.TAG_OR_ELEMENT_ID.validate(
|
private static final Codec<ExtraCodecs.TagOrElementLocation> ITEM_TAG_OR_ELEMENT_ID = ExtraCodecs.TAG_OR_ELEMENT_ID.validate(value -> {
|
||||||
value -> {
|
if (value.tag()) {
|
||||||
if (value.tag()) {
|
if (BuiltInRegistries.ITEM.get(TagKey.create(Registries.ITEM, value.id())).isPresent()) {
|
||||||
if (BuiltInRegistries.ITEM.get(TagKey.create(Registries.ITEM, value.id())).isPresent()) {
|
return DataResult.success(value);
|
||||||
return DataResult.success(value);
|
|
||||||
} else {
|
|
||||||
return DataResult.error(() -> "Invalid tag id: " + value);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (BuiltInRegistries.ITEM.get(value.id()).isPresent()) {
|
return DataResult.error(() -> "Invalid tag id: " + value);
|
||||||
return DataResult.success(value);
|
}
|
||||||
} else {
|
} else {
|
||||||
return DataResult.error(() -> "Invalid element id: " + value);
|
if (BuiltInRegistries.ITEM.get(value.id()).isPresent()) {
|
||||||
}
|
return DataResult.success(value);
|
||||||
|
} else {
|
||||||
|
return DataResult.error(() -> "Invalid element id: " + value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
||||||
public static final MapCodec<IsElementPredicate> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
|
public static final MapCodec<IsElementPredicate> CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(
|
||||||
ITEM_TAG_OR_ELEMENT_ID.fieldOf("value").forGetter(IsElementPredicate::value)
|
ITEM_TAG_OR_ELEMENT_ID.fieldOf("value").forGetter(IsElementPredicate::value)
|
||||||
|
@ -0,0 +1,77 @@
|
|||||||
|
package io.papermc.generator.utils;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.mojang.serialization.Codec;
|
||||||
|
import com.mojang.serialization.JsonOps;
|
||||||
|
import io.papermc.generator.Main;
|
||||||
|
import io.papermc.generator.rewriter.types.simple.EntityTypeRewriter;
|
||||||
|
import io.papermc.generator.types.goal.MobGoalNames;
|
||||||
|
import io.papermc.typewriter.ClassNamed;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
public class PrepareInputFiles {
|
||||||
|
|
||||||
|
static {
|
||||||
|
Main.bootStrap(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
|
public interface Transmuter<A> {
|
||||||
|
|
||||||
|
A transmute(A value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private record DataFile<A>(String path, Codec<A> codec, Transmuter<A> transmuter) {
|
||||||
|
|
||||||
|
public A transmuteRaw(Object value) {
|
||||||
|
return this.transmuter.transmute((A) value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <K, V> Transmuter<Map<K, V>> transmuteMap(Comparator<K> comparator) {
|
||||||
|
return value -> {
|
||||||
|
TreeMap<K, V> map = new TreeMap<>(comparator);
|
||||||
|
map.putAll(value);
|
||||||
|
return map;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final List<DataFile<?>> DATA_FILES = List.of(
|
||||||
|
new DataFile<>("block_state_properties.json", BlockStateMapping.PROPERTY_DATA_CODEC, value -> {
|
||||||
|
List<BlockStateMapping.PropertyData> mutableValue = new ArrayList<>(value);
|
||||||
|
mutableValue.sort(Comparator.naturalOrder());
|
||||||
|
return mutableValue;
|
||||||
|
}),
|
||||||
|
new DataFile<>("enum_property_types.json", BlockStateMapping.ENUM_PROPERTY_TYPES_CODEC, transmuteMap(Comparator.comparing((Class<?> klass) -> klass.getCanonicalName()))),
|
||||||
|
new DataFile<>("entity_types.json", EntityTypeRewriter.DATA_CODEC, transmuteMap(Formatting.alphabeticKeyOrder((ResourceKey<EntityType<?>> key) -> key.location().getPath()))),
|
||||||
|
new DataFile<>("entity_class_names.json", MobGoalNames.ENTITY_CLASS_NAMES_CODEC, transmuteMap(Comparator.comparing((Class<?> klass) -> klass.getCanonicalName()))),
|
||||||
|
new DataFile<>("item_meta/bridge.json", ItemMetaData.BRIDGE_CODEC, transmuteMap(Comparator.comparing(ClassNamed::canonicalName)))
|
||||||
|
);
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
String resourceDir = args[0];
|
||||||
|
for (DataFile<?> file : DATA_FILES) {
|
||||||
|
Path resourcePath = Path.of(resourceDir, "data/" + file.path());
|
||||||
|
try (Reader input = Files.newBufferedReader(resourcePath)) {
|
||||||
|
JsonElement element = SourceCodecs.GSON.fromJson(input, JsonElement.class);
|
||||||
|
Object javaElement = file.transmuteRaw(file.codec().parse(JsonOps.INSTANCE, element).getOrThrow());
|
||||||
|
element = ((Codec<Object>) file.codec()).encodeStart(JsonOps.INSTANCE, javaElement).getOrThrow();
|
||||||
|
Files.writeString(resourcePath, SourceCodecs.GSON.toJson(element) + "\n", StandardCharsets.UTF_8);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,17 +1,19 @@
|
|||||||
package io.papermc.generator.utils;
|
package io.papermc.generator.utils;
|
||||||
|
|
||||||
import com.google.common.reflect.TypeToken;
|
import com.google.common.reflect.TypeToken;
|
||||||
|
import com.google.gson.FormattingStyle;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import com.squareup.javapoet.ClassName;
|
import com.squareup.javapoet.ClassName;
|
||||||
|
import io.papermc.generator.types.SimpleGenerator;
|
||||||
import io.papermc.typewriter.ClassNamed;
|
import io.papermc.typewriter.ClassNamed;
|
||||||
import javax.lang.model.SourceVersion;
|
import javax.lang.model.SourceVersion;
|
||||||
|
|
||||||
public final class SourceCodecs {
|
public final class SourceCodecs {
|
||||||
|
|
||||||
public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
|
public static final Gson GSON = new GsonBuilder().setFormattingStyle(FormattingStyle.PRETTY.withIndent(SimpleGenerator.INDENT_UNIT)).create();
|
||||||
|
|
||||||
private SourceCodecs() {
|
private SourceCodecs() {
|
||||||
}
|
}
|
||||||
@ -30,7 +32,7 @@ public final class SourceCodecs {
|
|||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
return DataResult.error(() -> "Class not found: %s".formatted(e.getMessage()));
|
return DataResult.error(() -> "Class not found: %s".formatted(e.getMessage()));
|
||||||
}
|
}
|
||||||
}, Class::toString);
|
}, Class::getName);
|
||||||
|
|
||||||
public static <T> Codec<Class<? extends T>> classCodec(Class<T> baseClass) {
|
public static <T> Codec<Class<? extends T>> classCodec(Class<T> baseClass) {
|
||||||
return CLASS.comapFlatMap(klass -> {
|
return CLASS.comapFlatMap(klass -> {
|
||||||
|
@ -1,109 +1,109 @@
|
|||||||
{
|
{
|
||||||
"net.minecraft.world.entity.animal.horse.AbstractChestedHorse": "org.bukkit.entity.ChestedHorse",
|
"net.minecraft.world.entity.AgeableMob": "org.bukkit.entity.Ageable",
|
||||||
|
"net.minecraft.world.entity.FlyingMob": "org.bukkit.entity.Flying",
|
||||||
|
"net.minecraft.world.entity.GlowSquid": "org.bukkit.entity.GlowSquid",
|
||||||
|
"net.minecraft.world.entity.Mob": "org.bukkit.entity.Mob",
|
||||||
|
"net.minecraft.world.entity.PathfinderMob": "org.bukkit.entity.Creature",
|
||||||
|
"net.minecraft.world.entity.TamableAnimal": "org.bukkit.entity.Tameable",
|
||||||
|
"net.minecraft.world.entity.ambient.AmbientCreature": "org.bukkit.entity.Ambient",
|
||||||
|
"net.minecraft.world.entity.ambient.Bat": "org.bukkit.entity.Bat",
|
||||||
"net.minecraft.world.entity.animal.AbstractCow": "org.bukkit.entity.AbstractCow",
|
"net.minecraft.world.entity.animal.AbstractCow": "org.bukkit.entity.AbstractCow",
|
||||||
"net.minecraft.world.entity.animal.AbstractFish": "org.bukkit.entity.Fish",
|
"net.minecraft.world.entity.animal.AbstractFish": "org.bukkit.entity.Fish",
|
||||||
"net.minecraft.world.entity.animal.AbstractGolem": "org.bukkit.entity.Golem",
|
"net.minecraft.world.entity.animal.AbstractGolem": "org.bukkit.entity.Golem",
|
||||||
"net.minecraft.world.entity.animal.horse.AbstractHorse": "org.bukkit.entity.AbstractHorse",
|
|
||||||
"net.minecraft.world.entity.monster.AbstractIllager": "org.bukkit.entity.Illager",
|
|
||||||
"net.minecraft.world.entity.monster.piglin.AbstractPiglin": "org.bukkit.entity.PiglinAbstract",
|
|
||||||
"net.minecraft.world.entity.animal.AbstractSchoolingFish": "io.papermc.paper.entity.SchoolableFish",
|
"net.minecraft.world.entity.animal.AbstractSchoolingFish": "io.papermc.paper.entity.SchoolableFish",
|
||||||
"net.minecraft.world.entity.monster.AbstractSkeleton": "org.bukkit.entity.AbstractSkeleton",
|
|
||||||
"net.minecraft.world.entity.npc.AbstractVillager": "org.bukkit.entity.AbstractVillager",
|
|
||||||
"net.minecraft.world.entity.AgeableMob": "org.bukkit.entity.Ageable",
|
|
||||||
"net.minecraft.world.entity.animal.AgeableWaterCreature": "org.bukkit.entity.Squid",
|
"net.minecraft.world.entity.animal.AgeableWaterCreature": "org.bukkit.entity.Squid",
|
||||||
"net.minecraft.world.entity.animal.allay.Allay": "org.bukkit.entity.Allay",
|
|
||||||
"net.minecraft.world.entity.ambient.AmbientCreature": "org.bukkit.entity.Ambient",
|
|
||||||
"net.minecraft.world.entity.animal.Animal": "org.bukkit.entity.Animals",
|
"net.minecraft.world.entity.animal.Animal": "org.bukkit.entity.Animals",
|
||||||
"net.minecraft.world.entity.animal.armadillo.Armadillo": "org.bukkit.entity.Armadillo",
|
|
||||||
"net.minecraft.world.entity.animal.axolotl.Axolotl": "org.bukkit.entity.Axolotl",
|
|
||||||
"net.minecraft.world.entity.ambient.Bat": "org.bukkit.entity.Bat",
|
|
||||||
"net.minecraft.world.entity.animal.Bee": "org.bukkit.entity.Bee",
|
"net.minecraft.world.entity.animal.Bee": "org.bukkit.entity.Bee",
|
||||||
"net.minecraft.world.entity.monster.Blaze": "org.bukkit.entity.Blaze",
|
|
||||||
"net.minecraft.world.entity.monster.Bogged": "org.bukkit.entity.Bogged",
|
|
||||||
"net.minecraft.world.entity.monster.breeze.Breeze": "org.bukkit.entity.Breeze",
|
|
||||||
"net.minecraft.world.entity.animal.camel.Camel": "org.bukkit.entity.Camel",
|
|
||||||
"net.minecraft.world.entity.animal.Cat": "org.bukkit.entity.Cat",
|
"net.minecraft.world.entity.animal.Cat": "org.bukkit.entity.Cat",
|
||||||
"net.minecraft.world.entity.monster.CaveSpider": "org.bukkit.entity.CaveSpider",
|
|
||||||
"net.minecraft.world.entity.animal.Chicken": "org.bukkit.entity.Chicken",
|
"net.minecraft.world.entity.animal.Chicken": "org.bukkit.entity.Chicken",
|
||||||
"net.minecraft.world.entity.animal.Cod": "org.bukkit.entity.Cod",
|
"net.minecraft.world.entity.animal.Cod": "org.bukkit.entity.Cod",
|
||||||
"net.minecraft.world.entity.animal.Cow": "org.bukkit.entity.Cow",
|
"net.minecraft.world.entity.animal.Cow": "org.bukkit.entity.Cow",
|
||||||
"net.minecraft.world.entity.monster.creaking.Creaking": "org.bukkit.entity.Creaking",
|
|
||||||
"net.minecraft.world.entity.monster.Creeper": "org.bukkit.entity.Creeper",
|
|
||||||
"net.minecraft.world.entity.animal.Dolphin": "org.bukkit.entity.Dolphin",
|
"net.minecraft.world.entity.animal.Dolphin": "org.bukkit.entity.Dolphin",
|
||||||
"net.minecraft.world.entity.animal.horse.Donkey": "org.bukkit.entity.Donkey",
|
|
||||||
"net.minecraft.world.entity.monster.Drowned": "org.bukkit.entity.Drowned",
|
|
||||||
"net.minecraft.world.entity.monster.ElderGuardian": "org.bukkit.entity.ElderGuardian",
|
|
||||||
"net.minecraft.world.entity.boss.enderdragon.EnderDragon": "org.bukkit.entity.EnderDragon",
|
|
||||||
"net.minecraft.world.entity.monster.EnderMan": "org.bukkit.entity.Enderman",
|
|
||||||
"net.minecraft.world.entity.monster.Endermite": "org.bukkit.entity.Endermite",
|
|
||||||
"net.minecraft.world.entity.monster.Evoker": "org.bukkit.entity.Evoker",
|
|
||||||
"net.minecraft.world.entity.FlyingMob": "org.bukkit.entity.Flying",
|
|
||||||
"net.minecraft.world.entity.animal.Fox": "org.bukkit.entity.Fox",
|
"net.minecraft.world.entity.animal.Fox": "org.bukkit.entity.Fox",
|
||||||
"net.minecraft.world.entity.animal.frog.Frog": "org.bukkit.entity.Frog",
|
|
||||||
"net.minecraft.world.entity.monster.Ghast": "org.bukkit.entity.Ghast",
|
|
||||||
"net.minecraft.world.entity.monster.Giant": "org.bukkit.entity.Giant",
|
|
||||||
"net.minecraft.world.entity.GlowSquid": "org.bukkit.entity.GlowSquid",
|
|
||||||
"net.minecraft.world.entity.animal.goat.Goat": "org.bukkit.entity.Goat",
|
|
||||||
"net.minecraft.world.entity.monster.Guardian": "org.bukkit.entity.Guardian",
|
|
||||||
"net.minecraft.world.entity.monster.hoglin.Hoglin": "org.bukkit.entity.Hoglin",
|
|
||||||
"net.minecraft.world.entity.animal.horse.Horse": "org.bukkit.entity.Horse",
|
|
||||||
"net.minecraft.world.entity.monster.Husk": "org.bukkit.entity.Husk",
|
|
||||||
"net.minecraft.world.entity.monster.Illusioner": "org.bukkit.entity.Illusioner",
|
|
||||||
"net.minecraft.world.entity.animal.IronGolem": "org.bukkit.entity.IronGolem",
|
"net.minecraft.world.entity.animal.IronGolem": "org.bukkit.entity.IronGolem",
|
||||||
"net.minecraft.world.entity.animal.horse.Llama": "org.bukkit.entity.Llama",
|
|
||||||
"net.minecraft.world.entity.monster.MagmaCube": "org.bukkit.entity.MagmaCube",
|
|
||||||
"net.minecraft.world.entity.Mob": "org.bukkit.entity.Mob",
|
|
||||||
"net.minecraft.world.entity.monster.Monster": "org.bukkit.entity.Monster",
|
|
||||||
"net.minecraft.world.entity.animal.horse.Mule": "org.bukkit.entity.Mule",
|
|
||||||
"net.minecraft.world.entity.animal.MushroomCow": "org.bukkit.entity.MushroomCow",
|
"net.minecraft.world.entity.animal.MushroomCow": "org.bukkit.entity.MushroomCow",
|
||||||
"net.minecraft.world.entity.animal.Ocelot": "org.bukkit.entity.Ocelot",
|
"net.minecraft.world.entity.animal.Ocelot": "org.bukkit.entity.Ocelot",
|
||||||
"net.minecraft.world.entity.animal.Panda": "org.bukkit.entity.Panda",
|
"net.minecraft.world.entity.animal.Panda": "org.bukkit.entity.Panda",
|
||||||
"net.minecraft.world.entity.animal.Parrot": "org.bukkit.entity.Parrot",
|
"net.minecraft.world.entity.animal.Parrot": "org.bukkit.entity.Parrot",
|
||||||
"net.minecraft.world.entity.PathfinderMob": "org.bukkit.entity.Creature",
|
|
||||||
"net.minecraft.world.entity.monster.PatrollingMonster": "org.bukkit.entity.Raider",
|
|
||||||
"net.minecraft.world.entity.monster.Phantom": "org.bukkit.entity.Phantom",
|
|
||||||
"net.minecraft.world.entity.animal.Pig": "org.bukkit.entity.Pig",
|
"net.minecraft.world.entity.animal.Pig": "org.bukkit.entity.Pig",
|
||||||
"net.minecraft.world.entity.monster.piglin.Piglin": "org.bukkit.entity.Piglin",
|
|
||||||
"net.minecraft.world.entity.monster.piglin.PiglinBrute": "org.bukkit.entity.PiglinBrute",
|
|
||||||
"net.minecraft.world.entity.monster.Pillager": "org.bukkit.entity.Pillager",
|
|
||||||
"net.minecraft.world.entity.animal.PolarBear": "org.bukkit.entity.PolarBear",
|
"net.minecraft.world.entity.animal.PolarBear": "org.bukkit.entity.PolarBear",
|
||||||
"net.minecraft.world.entity.animal.Pufferfish": "org.bukkit.entity.PufferFish",
|
"net.minecraft.world.entity.animal.Pufferfish": "org.bukkit.entity.PufferFish",
|
||||||
"net.minecraft.world.entity.animal.Rabbit": "org.bukkit.entity.Rabbit",
|
"net.minecraft.world.entity.animal.Rabbit": "org.bukkit.entity.Rabbit",
|
||||||
"net.minecraft.world.entity.raid.Raider": "org.bukkit.entity.Raider",
|
|
||||||
"net.minecraft.world.entity.monster.Ravager": "org.bukkit.entity.Ravager",
|
|
||||||
"net.minecraft.world.entity.animal.Salmon": "org.bukkit.entity.Salmon",
|
"net.minecraft.world.entity.animal.Salmon": "org.bukkit.entity.Salmon",
|
||||||
"net.minecraft.world.entity.animal.sheep.Sheep": "org.bukkit.entity.Sheep",
|
|
||||||
"net.minecraft.world.entity.animal.ShoulderRidingEntity": "org.bukkit.entity.Parrot",
|
"net.minecraft.world.entity.animal.ShoulderRidingEntity": "org.bukkit.entity.Parrot",
|
||||||
|
"net.minecraft.world.entity.animal.SnowGolem": "org.bukkit.entity.Snowman",
|
||||||
|
"net.minecraft.world.entity.animal.Squid": "org.bukkit.entity.Squid",
|
||||||
|
"net.minecraft.world.entity.animal.TropicalFish": "org.bukkit.entity.TropicalFish",
|
||||||
|
"net.minecraft.world.entity.animal.Turtle": "org.bukkit.entity.Turtle",
|
||||||
|
"net.minecraft.world.entity.animal.WaterAnimal": "org.bukkit.entity.WaterMob",
|
||||||
|
"net.minecraft.world.entity.animal.allay.Allay": "org.bukkit.entity.Allay",
|
||||||
|
"net.minecraft.world.entity.animal.armadillo.Armadillo": "org.bukkit.entity.Armadillo",
|
||||||
|
"net.minecraft.world.entity.animal.axolotl.Axolotl": "org.bukkit.entity.Axolotl",
|
||||||
|
"net.minecraft.world.entity.animal.camel.Camel": "org.bukkit.entity.Camel",
|
||||||
|
"net.minecraft.world.entity.animal.frog.Frog": "org.bukkit.entity.Frog",
|
||||||
|
"net.minecraft.world.entity.animal.frog.Tadpole": "org.bukkit.entity.Tadpole",
|
||||||
|
"net.minecraft.world.entity.animal.goat.Goat": "org.bukkit.entity.Goat",
|
||||||
|
"net.minecraft.world.entity.animal.horse.AbstractChestedHorse": "org.bukkit.entity.ChestedHorse",
|
||||||
|
"net.minecraft.world.entity.animal.horse.AbstractHorse": "org.bukkit.entity.AbstractHorse",
|
||||||
|
"net.minecraft.world.entity.animal.horse.Donkey": "org.bukkit.entity.Donkey",
|
||||||
|
"net.minecraft.world.entity.animal.horse.Horse": "org.bukkit.entity.Horse",
|
||||||
|
"net.minecraft.world.entity.animal.horse.Llama": "org.bukkit.entity.Llama",
|
||||||
|
"net.minecraft.world.entity.animal.horse.Mule": "org.bukkit.entity.Mule",
|
||||||
|
"net.minecraft.world.entity.animal.horse.SkeletonHorse": "org.bukkit.entity.SkeletonHorse",
|
||||||
|
"net.minecraft.world.entity.animal.horse.TraderLlama": "org.bukkit.entity.TraderLlama",
|
||||||
|
"net.minecraft.world.entity.animal.horse.ZombieHorse": "org.bukkit.entity.ZombieHorse",
|
||||||
|
"net.minecraft.world.entity.animal.sheep.Sheep": "org.bukkit.entity.Sheep",
|
||||||
|
"net.minecraft.world.entity.animal.sniffer.Sniffer": "org.bukkit.entity.Sniffer",
|
||||||
|
"net.minecraft.world.entity.animal.wolf.Wolf": "org.bukkit.entity.Wolf",
|
||||||
|
"net.minecraft.world.entity.boss.enderdragon.EnderDragon": "org.bukkit.entity.EnderDragon",
|
||||||
|
"net.minecraft.world.entity.boss.wither.WitherBoss": "org.bukkit.entity.Wither",
|
||||||
|
"net.minecraft.world.entity.monster.AbstractIllager": "org.bukkit.entity.Illager",
|
||||||
|
"net.minecraft.world.entity.monster.AbstractSkeleton": "org.bukkit.entity.AbstractSkeleton",
|
||||||
|
"net.minecraft.world.entity.monster.Blaze": "org.bukkit.entity.Blaze",
|
||||||
|
"net.minecraft.world.entity.monster.Bogged": "org.bukkit.entity.Bogged",
|
||||||
|
"net.minecraft.world.entity.monster.CaveSpider": "org.bukkit.entity.CaveSpider",
|
||||||
|
"net.minecraft.world.entity.monster.Creeper": "org.bukkit.entity.Creeper",
|
||||||
|
"net.minecraft.world.entity.monster.Drowned": "org.bukkit.entity.Drowned",
|
||||||
|
"net.minecraft.world.entity.monster.ElderGuardian": "org.bukkit.entity.ElderGuardian",
|
||||||
|
"net.minecraft.world.entity.monster.EnderMan": "org.bukkit.entity.Enderman",
|
||||||
|
"net.minecraft.world.entity.monster.Endermite": "org.bukkit.entity.Endermite",
|
||||||
|
"net.minecraft.world.entity.monster.Evoker": "org.bukkit.entity.Evoker",
|
||||||
|
"net.minecraft.world.entity.monster.Ghast": "org.bukkit.entity.Ghast",
|
||||||
|
"net.minecraft.world.entity.monster.Giant": "org.bukkit.entity.Giant",
|
||||||
|
"net.minecraft.world.entity.monster.Guardian": "org.bukkit.entity.Guardian",
|
||||||
|
"net.minecraft.world.entity.monster.Husk": "org.bukkit.entity.Husk",
|
||||||
|
"net.minecraft.world.entity.monster.Illusioner": "org.bukkit.entity.Illusioner",
|
||||||
|
"net.minecraft.world.entity.monster.MagmaCube": "org.bukkit.entity.MagmaCube",
|
||||||
|
"net.minecraft.world.entity.monster.Monster": "org.bukkit.entity.Monster",
|
||||||
|
"net.minecraft.world.entity.monster.PatrollingMonster": "org.bukkit.entity.Raider",
|
||||||
|
"net.minecraft.world.entity.monster.Phantom": "org.bukkit.entity.Phantom",
|
||||||
|
"net.minecraft.world.entity.monster.Pillager": "org.bukkit.entity.Pillager",
|
||||||
|
"net.minecraft.world.entity.monster.Ravager": "org.bukkit.entity.Ravager",
|
||||||
"net.minecraft.world.entity.monster.Shulker": "org.bukkit.entity.Shulker",
|
"net.minecraft.world.entity.monster.Shulker": "org.bukkit.entity.Shulker",
|
||||||
"net.minecraft.world.entity.monster.Silverfish": "org.bukkit.entity.Silverfish",
|
"net.minecraft.world.entity.monster.Silverfish": "org.bukkit.entity.Silverfish",
|
||||||
"net.minecraft.world.entity.monster.Skeleton": "org.bukkit.entity.Skeleton",
|
"net.minecraft.world.entity.monster.Skeleton": "org.bukkit.entity.Skeleton",
|
||||||
"net.minecraft.world.entity.animal.horse.SkeletonHorse": "org.bukkit.entity.SkeletonHorse",
|
|
||||||
"net.minecraft.world.entity.monster.Slime": "org.bukkit.entity.Slime",
|
"net.minecraft.world.entity.monster.Slime": "org.bukkit.entity.Slime",
|
||||||
"net.minecraft.world.entity.animal.sniffer.Sniffer": "org.bukkit.entity.Sniffer",
|
|
||||||
"net.minecraft.world.entity.animal.SnowGolem": "org.bukkit.entity.Snowman",
|
|
||||||
"net.minecraft.world.entity.monster.SpellcasterIllager": "org.bukkit.entity.Spellcaster",
|
"net.minecraft.world.entity.monster.SpellcasterIllager": "org.bukkit.entity.Spellcaster",
|
||||||
"net.minecraft.world.entity.monster.Spider": "org.bukkit.entity.Spider",
|
"net.minecraft.world.entity.monster.Spider": "org.bukkit.entity.Spider",
|
||||||
"net.minecraft.world.entity.animal.Squid": "org.bukkit.entity.Squid",
|
|
||||||
"net.minecraft.world.entity.monster.Stray": "org.bukkit.entity.Stray",
|
"net.minecraft.world.entity.monster.Stray": "org.bukkit.entity.Stray",
|
||||||
"net.minecraft.world.entity.monster.Strider": "org.bukkit.entity.Strider",
|
"net.minecraft.world.entity.monster.Strider": "org.bukkit.entity.Strider",
|
||||||
"net.minecraft.world.entity.animal.frog.Tadpole": "org.bukkit.entity.Tadpole",
|
|
||||||
"net.minecraft.world.entity.TamableAnimal": "org.bukkit.entity.Tameable",
|
|
||||||
"net.minecraft.world.entity.animal.horse.TraderLlama": "org.bukkit.entity.TraderLlama",
|
|
||||||
"net.minecraft.world.entity.animal.TropicalFish": "org.bukkit.entity.TropicalFish",
|
|
||||||
"net.minecraft.world.entity.animal.Turtle": "org.bukkit.entity.Turtle",
|
|
||||||
"net.minecraft.world.entity.monster.Vex": "org.bukkit.entity.Vex",
|
"net.minecraft.world.entity.monster.Vex": "org.bukkit.entity.Vex",
|
||||||
"net.minecraft.world.entity.npc.Villager": "org.bukkit.entity.Villager",
|
|
||||||
"net.minecraft.world.entity.monster.Vindicator": "org.bukkit.entity.Vindicator",
|
"net.minecraft.world.entity.monster.Vindicator": "org.bukkit.entity.Vindicator",
|
||||||
"net.minecraft.world.entity.npc.WanderingTrader": "org.bukkit.entity.WanderingTrader",
|
|
||||||
"net.minecraft.world.entity.monster.warden.Warden": "org.bukkit.entity.Warden",
|
|
||||||
"net.minecraft.world.entity.animal.WaterAnimal": "org.bukkit.entity.WaterMob",
|
|
||||||
"net.minecraft.world.entity.monster.Witch": "org.bukkit.entity.Witch",
|
"net.minecraft.world.entity.monster.Witch": "org.bukkit.entity.Witch",
|
||||||
"net.minecraft.world.entity.boss.wither.WitherBoss": "org.bukkit.entity.Wither",
|
|
||||||
"net.minecraft.world.entity.monster.WitherSkeleton": "org.bukkit.entity.WitherSkeleton",
|
"net.minecraft.world.entity.monster.WitherSkeleton": "org.bukkit.entity.WitherSkeleton",
|
||||||
"net.minecraft.world.entity.animal.wolf.Wolf": "org.bukkit.entity.Wolf",
|
|
||||||
"net.minecraft.world.entity.monster.Zoglin": "org.bukkit.entity.Zoglin",
|
"net.minecraft.world.entity.monster.Zoglin": "org.bukkit.entity.Zoglin",
|
||||||
"net.minecraft.world.entity.monster.Zombie": "org.bukkit.entity.Zombie",
|
"net.minecraft.world.entity.monster.Zombie": "org.bukkit.entity.Zombie",
|
||||||
"net.minecraft.world.entity.animal.horse.ZombieHorse": "org.bukkit.entity.ZombieHorse",
|
|
||||||
"net.minecraft.world.entity.monster.ZombieVillager": "org.bukkit.entity.ZombieVillager",
|
"net.minecraft.world.entity.monster.ZombieVillager": "org.bukkit.entity.ZombieVillager",
|
||||||
"net.minecraft.world.entity.monster.ZombifiedPiglin": "org.bukkit.entity.PigZombie"
|
"net.minecraft.world.entity.monster.ZombifiedPiglin": "org.bukkit.entity.PigZombie",
|
||||||
|
"net.minecraft.world.entity.monster.breeze.Breeze": "org.bukkit.entity.Breeze",
|
||||||
|
"net.minecraft.world.entity.monster.creaking.Creaking": "org.bukkit.entity.Creaking",
|
||||||
|
"net.minecraft.world.entity.monster.hoglin.Hoglin": "org.bukkit.entity.Hoglin",
|
||||||
|
"net.minecraft.world.entity.monster.piglin.AbstractPiglin": "org.bukkit.entity.PiglinAbstract",
|
||||||
|
"net.minecraft.world.entity.monster.piglin.Piglin": "org.bukkit.entity.Piglin",
|
||||||
|
"net.minecraft.world.entity.monster.piglin.PiglinBrute": "org.bukkit.entity.PiglinBrute",
|
||||||
|
"net.minecraft.world.entity.monster.warden.Warden": "org.bukkit.entity.Warden",
|
||||||
|
"net.minecraft.world.entity.npc.AbstractVillager": "org.bukkit.entity.AbstractVillager",
|
||||||
|
"net.minecraft.world.entity.npc.Villager": "org.bukkit.entity.Villager",
|
||||||
|
"net.minecraft.world.entity.npc.WanderingTrader": "org.bukkit.entity.WanderingTrader",
|
||||||
|
"net.minecraft.world.entity.raid.Raider": "org.bukkit.entity.Raider"
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
{
|
{
|
||||||
"net.minecraft.world.level.block.state.properties.AttachFace": "org.bukkit.block.data.FaceAttachable.AttachedFace",
|
"net.minecraft.core.Direction": "org.bukkit.block.BlockFace",
|
||||||
"net.minecraft.core.Direction$Axis": "org.bukkit.Axis",
|
"net.minecraft.core.Direction$Axis": "org.bukkit.Axis",
|
||||||
|
"net.minecraft.core.FrontAndTop": "org.bukkit.block.Orientation",
|
||||||
|
"net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState": "org.bukkit.block.data.type.TrialSpawner.State",
|
||||||
|
"net.minecraft.world.level.block.entity.vault.VaultState": "org.bukkit.block.data.type.Vault.State",
|
||||||
|
"net.minecraft.world.level.block.state.properties.AttachFace": "org.bukkit.block.data.FaceAttachable.AttachedFace",
|
||||||
"net.minecraft.world.level.block.state.properties.BambooLeaves": "org.bukkit.block.data.type.Bamboo.Leaves",
|
"net.minecraft.world.level.block.state.properties.BambooLeaves": "org.bukkit.block.data.type.Bamboo.Leaves",
|
||||||
"net.minecraft.world.level.block.state.properties.BedPart": "org.bukkit.block.data.type.Bed.Part",
|
"net.minecraft.world.level.block.state.properties.BedPart": "org.bukkit.block.data.type.Bed.Part",
|
||||||
"net.minecraft.world.level.block.state.properties.BellAttachType": "org.bukkit.block.data.type.Bell.Attachment",
|
"net.minecraft.world.level.block.state.properties.BellAttachType": "org.bukkit.block.data.type.Bell.Attachment",
|
||||||
"net.minecraft.world.level.block.state.properties.ChestType": "org.bukkit.block.data.type.Chest.Type",
|
"net.minecraft.world.level.block.state.properties.ChestType": "org.bukkit.block.data.type.Chest.Type",
|
||||||
"net.minecraft.world.level.block.state.properties.ComparatorMode": "org.bukkit.block.data.type.Comparator.Mode",
|
"net.minecraft.world.level.block.state.properties.ComparatorMode": "org.bukkit.block.data.type.Comparator.Mode",
|
||||||
"net.minecraft.world.level.block.state.properties.CreakingHeartState": "org.bukkit.block.data.type.CreakingHeart.State",
|
"net.minecraft.world.level.block.state.properties.CreakingHeartState": "org.bukkit.block.data.type.CreakingHeart.State",
|
||||||
"net.minecraft.core.Direction": "org.bukkit.block.BlockFace",
|
|
||||||
"net.minecraft.world.level.block.state.properties.DoorHingeSide": "org.bukkit.block.data.type.Door.Hinge",
|
"net.minecraft.world.level.block.state.properties.DoorHingeSide": "org.bukkit.block.data.type.Door.Hinge",
|
||||||
"net.minecraft.world.level.block.state.properties.DoubleBlockHalf": "org.bukkit.block.data.Bisected.Half",
|
"net.minecraft.world.level.block.state.properties.DoubleBlockHalf": "org.bukkit.block.data.Bisected.Half",
|
||||||
"net.minecraft.world.level.block.state.properties.DripstoneThickness": "org.bukkit.block.data.type.PointedDripstone.Thickness",
|
"net.minecraft.world.level.block.state.properties.DripstoneThickness": "org.bukkit.block.data.type.PointedDripstone.Thickness",
|
||||||
"net.minecraft.core.FrontAndTop": "org.bukkit.block.Orientation",
|
|
||||||
"net.minecraft.world.level.block.state.properties.Half": "org.bukkit.block.data.Bisected.Half",
|
"net.minecraft.world.level.block.state.properties.Half": "org.bukkit.block.data.Bisected.Half",
|
||||||
"net.minecraft.world.level.block.state.properties.NoteBlockInstrument": "org.bukkit.Instrument",
|
"net.minecraft.world.level.block.state.properties.NoteBlockInstrument": "org.bukkit.Instrument",
|
||||||
"net.minecraft.world.level.block.state.properties.PistonType": "org.bukkit.block.data.type.TechnicalPiston.Type",
|
"net.minecraft.world.level.block.state.properties.PistonType": "org.bukkit.block.data.type.TechnicalPiston.Type",
|
||||||
@ -23,7 +25,5 @@
|
|||||||
"net.minecraft.world.level.block.state.properties.StructureMode": "org.bukkit.block.data.type.StructureBlock.Mode",
|
"net.minecraft.world.level.block.state.properties.StructureMode": "org.bukkit.block.data.type.StructureBlock.Mode",
|
||||||
"net.minecraft.world.level.block.state.properties.TestBlockMode": "org.bukkit.block.data.type.TestBlock.Mode",
|
"net.minecraft.world.level.block.state.properties.TestBlockMode": "org.bukkit.block.data.type.TestBlock.Mode",
|
||||||
"net.minecraft.world.level.block.state.properties.Tilt": "org.bukkit.block.data.type.BigDripleaf.Tilt",
|
"net.minecraft.world.level.block.state.properties.Tilt": "org.bukkit.block.data.type.BigDripleaf.Tilt",
|
||||||
"net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerState": "org.bukkit.block.data.type.TrialSpawner.State",
|
|
||||||
"net.minecraft.world.level.block.entity.vault.VaultState": "org.bukkit.block.data.type.Vault.State",
|
|
||||||
"net.minecraft.world.level.block.state.properties.WallSide": "org.bukkit.block.data.type.Wall.Height"
|
"net.minecraft.world.level.block.state.properties.WallSide": "org.bukkit.block.data.type.Wall.Height"
|
||||||
}
|
}
|
||||||
|
@ -1,99 +1,75 @@
|
|||||||
{
|
{
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaArmorStand": {
|
|
||||||
"api": "com.destroystokyo.paper.inventory.meta.ArmorStandMeta",
|
|
||||||
"field": "ARMOR_STAND_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaBookSigned": {
|
|
||||||
"api": "org.bukkit.inventory.meta.BookMeta",
|
|
||||||
"field": "SIGNED_BOOK_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaBook": {
|
|
||||||
"api": "org.bukkit.inventory.meta.BookMeta",
|
|
||||||
"field": "WRITABLE_BOOK_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaSkull": {
|
|
||||||
"api": "org.bukkit.inventory.meta.SkullMeta",
|
|
||||||
"field": "SKULL_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaArmor": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaArmor": {
|
||||||
"api": "org.bukkit.inventory.meta.ArmorMeta",
|
"api": "org.bukkit.inventory.meta.ArmorMeta",
|
||||||
"field": "ARMOR_META_DATA"
|
"field": "ARMOR_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaColorableArmor": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaArmorStand": {
|
||||||
"api": "org.bukkit.inventory.meta.ColorableArmorMeta",
|
"api": "com.destroystokyo.paper.inventory.meta.ArmorStandMeta",
|
||||||
"field": "COLORABLE_ARMOR_META_DATA"
|
"field": "ARMOR_STAND_META_DATA"
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaLeatherArmor": {
|
|
||||||
"api": "org.bukkit.inventory.meta.LeatherArmorMeta",
|
|
||||||
"field": "LEATHER_ARMOR_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaPotion": {
|
|
||||||
"api": "org.bukkit.inventory.meta.PotionMeta",
|
|
||||||
"field": "POTION_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaMap": {
|
|
||||||
"api": "org.bukkit.inventory.meta.MapMeta",
|
|
||||||
"field": "MAP_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaFirework": {
|
|
||||||
"api": "org.bukkit.inventory.meta.FireworkMeta",
|
|
||||||
"field": "FIREWORK_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaCharge": {
|
|
||||||
"api": "org.bukkit.inventory.meta.FireworkEffectMeta",
|
|
||||||
"field": "CHARGE_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaEnchantedBook": {
|
|
||||||
"api": "org.bukkit.inventory.meta.EnchantmentStorageMeta",
|
|
||||||
"field": "ENCHANTED_BOOK_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaBanner": {
|
|
||||||
"api": "org.bukkit.inventory.meta.BannerMeta",
|
|
||||||
"field": "BANNER_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaSpawnEgg": {
|
|
||||||
"api": "org.bukkit.inventory.meta.SpawnEggMeta",
|
|
||||||
"field": "SPAWN_EGG_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaKnowledgeBook": {
|
|
||||||
"api": "org.bukkit.inventory.meta.KnowledgeBookMeta",
|
|
||||||
"field": "KNOWLEDGE_BOOK_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaBlockState": {
|
|
||||||
"api": "org.bukkit.inventory.meta.BlockStateMeta",
|
|
||||||
"field": "BLOCK_STATE_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaShield": {
|
|
||||||
"api": "org.bukkit.inventory.meta.ShieldMeta",
|
|
||||||
"field": "SHIELD_META_DATA"
|
|
||||||
},
|
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaTropicalFishBucket": {
|
|
||||||
"api": "org.bukkit.inventory.meta.TropicalFishBucketMeta",
|
|
||||||
"field": "TROPICAL_FISH_BUCKET_META_DATA"
|
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaAxolotlBucket": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaAxolotlBucket": {
|
||||||
"api": "org.bukkit.inventory.meta.AxolotlBucketMeta",
|
"api": "org.bukkit.inventory.meta.AxolotlBucketMeta",
|
||||||
"field": "AXOLOTL_BUCKET_META_DATA"
|
"field": "AXOLOTL_BUCKET_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaCrossbow": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaBanner": {
|
||||||
"api": "org.bukkit.inventory.meta.CrossbowMeta",
|
"api": "org.bukkit.inventory.meta.BannerMeta",
|
||||||
"field": "CROSSBOW_META_DATA"
|
"field": "BANNER_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaSuspiciousStew": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaBlockState": {
|
||||||
"api": "org.bukkit.inventory.meta.SuspiciousStewMeta",
|
"api": "org.bukkit.inventory.meta.BlockStateMeta",
|
||||||
"field": "SUSPICIOUS_STEW_META_DATA"
|
"field": "BLOCK_STATE_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaEntityTag": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaBook": {
|
||||||
"api": "org.bukkit.inventory.meta.ItemMeta",
|
"api": "org.bukkit.inventory.meta.BookMeta",
|
||||||
"field": "ENTITY_TAG_META_DATA"
|
"field": "WRITABLE_BOOK_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaBookSigned": {
|
||||||
|
"api": "org.bukkit.inventory.meta.BookMeta",
|
||||||
|
"field": "SIGNED_BOOK_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaBundle": {
|
||||||
|
"api": "org.bukkit.inventory.meta.BundleMeta",
|
||||||
|
"field": "BUNDLE_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaCharge": {
|
||||||
|
"api": "org.bukkit.inventory.meta.FireworkEffectMeta",
|
||||||
|
"field": "CHARGE_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaColorableArmor": {
|
||||||
|
"api": "org.bukkit.inventory.meta.ColorableArmorMeta",
|
||||||
|
"field": "COLORABLE_ARMOR_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaCompass": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaCompass": {
|
||||||
"api": "org.bukkit.inventory.meta.CompassMeta",
|
"api": "org.bukkit.inventory.meta.CompassMeta",
|
||||||
"field": "COMPASS_META_DATA"
|
"field": "COMPASS_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaBundle": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaCrossbow": {
|
||||||
"api": "org.bukkit.inventory.meta.BundleMeta",
|
"api": "org.bukkit.inventory.meta.CrossbowMeta",
|
||||||
"field": "BUNDLE_META_DATA"
|
"field": "CROSSBOW_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaEnchantedBook": {
|
||||||
|
"api": "org.bukkit.inventory.meta.EnchantmentStorageMeta",
|
||||||
|
"field": "ENCHANTED_BOOK_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaEntityTag": {
|
||||||
|
"api": "org.bukkit.inventory.meta.ItemMeta",
|
||||||
|
"field": "ENTITY_TAG_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaFirework": {
|
||||||
|
"api": "org.bukkit.inventory.meta.FireworkMeta",
|
||||||
|
"field": "FIREWORK_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaKnowledgeBook": {
|
||||||
|
"api": "org.bukkit.inventory.meta.KnowledgeBookMeta",
|
||||||
|
"field": "KNOWLEDGE_BOOK_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaLeatherArmor": {
|
||||||
|
"api": "org.bukkit.inventory.meta.LeatherArmorMeta",
|
||||||
|
"field": "LEATHER_ARMOR_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaMap": {
|
||||||
|
"api": "org.bukkit.inventory.meta.MapMeta",
|
||||||
|
"field": "MAP_META_DATA"
|
||||||
},
|
},
|
||||||
"org.bukkit.craftbukkit.inventory.CraftMetaMusicInstrument": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaMusicInstrument": {
|
||||||
"api": "org.bukkit.inventory.meta.MusicInstrumentMeta",
|
"api": "org.bukkit.inventory.meta.MusicInstrumentMeta",
|
||||||
@ -102,5 +78,29 @@
|
|||||||
"org.bukkit.craftbukkit.inventory.CraftMetaOminousBottle": {
|
"org.bukkit.craftbukkit.inventory.CraftMetaOminousBottle": {
|
||||||
"api": "org.bukkit.inventory.meta.OminousBottleMeta",
|
"api": "org.bukkit.inventory.meta.OminousBottleMeta",
|
||||||
"field": "OMINOUS_BOTTLE_META_DATA"
|
"field": "OMINOUS_BOTTLE_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaPotion": {
|
||||||
|
"api": "org.bukkit.inventory.meta.PotionMeta",
|
||||||
|
"field": "POTION_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaShield": {
|
||||||
|
"api": "org.bukkit.inventory.meta.ShieldMeta",
|
||||||
|
"field": "SHIELD_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaSkull": {
|
||||||
|
"api": "org.bukkit.inventory.meta.SkullMeta",
|
||||||
|
"field": "SKULL_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaSpawnEgg": {
|
||||||
|
"api": "org.bukkit.inventory.meta.SpawnEggMeta",
|
||||||
|
"field": "SPAWN_EGG_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaSuspiciousStew": {
|
||||||
|
"api": "org.bukkit.inventory.meta.SuspiciousStewMeta",
|
||||||
|
"field": "SUSPICIOUS_STEW_META_DATA"
|
||||||
|
},
|
||||||
|
"org.bukkit.craftbukkit.inventory.CraftMetaTropicalFishBucket": {
|
||||||
|
"api": "org.bukkit.inventory.meta.TropicalFishBucketMeta",
|
||||||
|
"field": "TROPICAL_FISH_BUCKET_META_DATA"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,17 +23,12 @@ import org.junit.jupiter.api.Assertions;
|
|||||||
import org.junit.jupiter.api.BeforeAll;
|
import org.junit.jupiter.api.BeforeAll;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
public class BlockStatePropertyTest {
|
public class BlockStatePropertyTest extends BootstrapTest {
|
||||||
|
|
||||||
private static Set<Class<? extends Comparable<?>>> ENUM_PROPERTY_VALUES;
|
private static Set<Class<? extends Comparable<?>>> ENUM_PROPERTY_VALUES;
|
||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
public static void getAllProperties() {
|
public static void getAllProperties() {
|
||||||
// bootstrap
|
|
||||||
SharedConstants.tryDetectVersion();
|
|
||||||
Bootstrap.bootStrap();
|
|
||||||
Bootstrap.validate();
|
|
||||||
|
|
||||||
// get all properties
|
// get all properties
|
||||||
Set<Class<? extends Comparable<?>>> enumPropertyValues = Collections.newSetFromMap(new IdentityHashMap<>());
|
Set<Class<? extends Comparable<?>>> enumPropertyValues = Collections.newSetFromMap(new IdentityHashMap<>());
|
||||||
try {
|
try {
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package io.papermc.generator;
|
||||||
|
|
||||||
|
import net.minecraft.SharedConstants;
|
||||||
|
import net.minecraft.server.Bootstrap;
|
||||||
|
|
||||||
|
public class BootstrapTest {
|
||||||
|
|
||||||
|
static {
|
||||||
|
SharedConstants.tryDetectVersion();
|
||||||
|
Bootstrap.bootStrap();
|
||||||
|
Bootstrap.validate();
|
||||||
|
}
|
||||||
|
}
|
@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
public class MobGoalConverterTest {
|
public class MobGoalConverterTest extends BootstrapTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBukkitMap() {
|
public void testBukkitMap() {
|
||||||
@ -25,7 +25,7 @@ public class MobGoalConverterTest {
|
|||||||
|
|
||||||
List<String> missingClasses = new ArrayList<>();
|
List<String> missingClasses = new ArrayList<>();
|
||||||
for (Class<Mob> nmsClass : classes) {
|
for (Class<Mob> nmsClass : classes) {
|
||||||
if (!MobGoalNames.ENTITY_NAMES.containsKey(nmsClass)) {
|
if (!MobGoalNames.ENTITY_CLASS_NAMES.containsKey(nmsClass)) {
|
||||||
missingClasses.add(nmsClass.getCanonicalName());
|
missingClasses.add(nmsClass.getCanonicalName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,113 +37,113 @@ public class MobGoalHelper {
|
|||||||
//<editor-fold defaultstate="collapsed" desc="bukkitMap Entities">
|
//<editor-fold defaultstate="collapsed" desc="bukkitMap Entities">
|
||||||
// Start generate - MobGoalHelper#bukkitMap
|
// Start generate - MobGoalHelper#bukkitMap
|
||||||
// @GeneratedFrom 1.21.5
|
// @GeneratedFrom 1.21.5
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractChestedHorse.class, ChestedHorse.class);
|
bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.FlyingMob.class, Flying.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.GlowSquid.class, GlowSquid.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.PathfinderMob.class, Creature.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.TamableAnimal.class, Tameable.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.ambient.AmbientCreature.class, Ambient.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.ambient.Bat.class, Bat.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.AbstractCow.class, AbstractCow.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.AbstractCow.class, AbstractCow.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.AbstractFish.class, Fish.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.AbstractFish.class, Fish.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.AbstractGolem.class, Golem.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.AbstractGolem.class, Golem.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.AbstractIllager.class, Illager.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.piglin.AbstractPiglin.class, PiglinAbstract.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.AbstractSchoolingFish.class, SchoolableFish.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.AbstractSchoolingFish.class, SchoolableFish.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.AbstractSkeleton.class, AbstractSkeleton.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.AgeableMob.class, Ageable.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, Squid.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.AgeableWaterCreature.class, Squid.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, Allay.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.animal.Animal.class, Animals.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, Armadillo.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, Axolotl.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.animal.Bee.class, Bee.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, Bogged.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, Breeze.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, Camel.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.Cat.class, Cat.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.Cat.class, Cat.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.CaveSpider.class, CaveSpider.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.Chicken.class, Chicken.class);
|
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.Cod.class, Cod.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.Cow.class, Cow.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, Creaking.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.animal.Dolphin.class, Dolphin.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.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(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.animal.Fox.class, Fox.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.frog.Frog.class, Frog.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(net.minecraft.world.entity.GlowSquid.class, GlowSquid.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.goat.Goat.class, Goat.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.IronGolem.class, IronGolem.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.monster.MagmaCube.class, MagmaCube.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.Mob.class, Mob.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Monster.class, Monster.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.Mule.class, Mule.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.MushroomCow.class, MushroomCow.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.Ocelot.class, Ocelot.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.Panda.class, Panda.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(net.minecraft.world.entity.animal.Parrot.class, Parrot.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.PathfinderMob.class, Creature.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.PatrollingMonster.class, Raider.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(net.minecraft.world.entity.animal.Pig.class, Pig.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.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(net.minecraft.world.entity.animal.PolarBear.class, PolarBear.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.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.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);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.Salmon.class, Salmon.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.Salmon.class, Salmon.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.sheep.Sheep.class, Sheep.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.ShoulderRidingEntity.class, Parrot.class);
|
bukkitMap.put(net.minecraft.world.entity.animal.ShoulderRidingEntity.class, Parrot.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.SnowGolem.class, Snowman.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.Squid.class, Squid.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.animal.WaterAnimal.class, WaterMob.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.allay.Allay.class, Allay.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.armadillo.Armadillo.class, Armadillo.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.axolotl.Axolotl.class, Axolotl.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.camel.Camel.class, Camel.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.animal.goat.Goat.class, Goat.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractChestedHorse.class, ChestedHorse.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.AbstractHorse.class, AbstractHorse.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.Donkey.class, Donkey.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.Horse.class, Horse.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.Llama.class, Llama.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.TraderLlama.class, TraderLlama.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.sheep.Sheep.class, Sheep.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, Sniffer.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.animal.wolf.Wolf.class, Wolf.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.boss.enderdragon.EnderDragon.class, EnderDragon.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.boss.wither.WitherBoss.class, Wither.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.AbstractIllager.class, Illager.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.AbstractSkeleton.class, AbstractSkeleton.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Blaze.class, Blaze.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Bogged.class, Bogged.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.CaveSpider.class, CaveSpider.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Creeper.class, Creeper.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Drowned.class, Drowned.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.ElderGuardian.class, ElderGuardian.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(net.minecraft.world.entity.monster.Ghast.class, Ghast.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Giant.class, Giant.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Guardian.class, Guardian.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Husk.class, Husk.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Illusioner.class, Illusioner.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(net.minecraft.world.entity.monster.PatrollingMonster.class, Raider.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Phantom.class, Phantom.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Pillager.class, Pillager.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.Ravager.class, Ravager.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Shulker.class, Shulker.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Shulker.class, Shulker.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Silverfish.class, Silverfish.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Silverfish.class, Silverfish.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Skeleton.class, Skeleton.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Skeleton.class, Skeleton.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.SkeletonHorse.class, SkeletonHorse.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Slime.class, Slime.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.sniffer.Sniffer.class, Sniffer.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.SnowGolem.class, Snowman.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.SpellcasterIllager.class, Spellcaster.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.SpellcasterIllager.class, Spellcaster.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Spider.class, Spider.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(net.minecraft.world.entity.monster.Stray.class, Stray.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Stray.class, Stray.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Strider.class, Strider.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.frog.Tadpole.class, Tadpole.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.TamableAnimal.class, Tameable.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.TraderLlama.class, TraderLlama.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);
|
bukkitMap.put(net.minecraft.world.entity.monster.Vex.class, Vex.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.npc.Villager.class, Villager.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Vindicator.class, Vindicator.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, Warden.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(net.minecraft.world.entity.monster.Witch.class, Witch.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.boss.wither.WitherBoss.class, Wither.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.WitherSkeleton.class, WitherSkeleton.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.wolf.Wolf.class, Wolf.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Zoglin.class, Zoglin.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.Zombie.class, Zombie.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.animal.horse.ZombieHorse.class, ZombieHorse.class);
|
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.ZombieVillager.class, ZombieVillager.class);
|
||||||
bukkitMap.put(net.minecraft.world.entity.monster.ZombifiedPiglin.class, PigZombie.class);
|
bukkitMap.put(net.minecraft.world.entity.monster.ZombifiedPiglin.class, PigZombie.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.breeze.Breeze.class, Breeze.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.creaking.Creaking.class, Creaking.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.hoglin.Hoglin.class, Hoglin.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.piglin.AbstractPiglin.class, PiglinAbstract.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.piglin.Piglin.class, Piglin.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.piglin.PiglinBrute.class, PiglinBrute.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.monster.warden.Warden.class, Warden.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.npc.AbstractVillager.class, AbstractVillager.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.npc.Villager.class, Villager.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.npc.WanderingTrader.class, WanderingTrader.class);
|
||||||
|
bukkitMap.put(net.minecraft.world.entity.raid.Raider.class, Raider.class);
|
||||||
// End generate - MobGoalHelper#bukkitMap
|
// End generate - MobGoalHelper#bukkitMap
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user