From 1c4802d97e0c11c311d20a2464a841c0baeab2e3 Mon Sep 17 00:00:00 2001 From: SuperGamerTron <45374546+SuperGamerTron@users.noreply.github.com> Date: Sun, 27 Oct 2024 03:53:12 -0600 Subject: [PATCH] Add missing attributes data generators (#28) * 1.13 * 1.14 * 1.15 * 1.16 * 1.17 * 1.18 * 1.19 * 1.19.2 * 1.20 * 1.20.4 * 1.20.5 * Updated 1.16+ to match attributes schema * 1.21 * 1.21.3 --- .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../mixin/LanguageAccessor.java | 13 +++++++ .../minecraft-data-generator.mixins.json | 1 + .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../mixin/LanguageAccessor.java | 13 +++++++ .../minecraft-data-generator.mixins.json | 1 + .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../mixin/LanguageAccessor.java | 13 +++++++ .../minecraft-data-generator.mixins.json | 1 + .../generators/AttributesDataGenerator.java | 30 ++++++++++++++++ .../mixin/ClampedEntityAttributeAccessor.java | 14 ++++++++ .../minecraft-data-generator.mixins.json | 1 + .../generators/AttributesDataGenerator.java | 30 ++++++++++++++++ .../generators/AttributesDataGenerator.java | 30 ++++++++++++++++ .../generators/AttributesDataGenerator.java | 30 ++++++++++++++++ .../generators/AttributesDataGenerator.java | 30 ++++++++++++++++ .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ .../generators/AttributesDataGenerator.java | 34 +++++++++++++++++++ .../generators/AttributesDataGenerator.java | 32 +++++++++++++++++ 21 files changed, 465 insertions(+) create mode 100644 1.13/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.13/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java create mode 100644 1.14/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.14/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java create mode 100644 1.15/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.15/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java create mode 100644 1.16/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.16/src/main/java/dev/u9g/minecraftdatagenerator/mixin/ClampedEntityAttributeAccessor.java create mode 100644 1.17/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.18/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.19.2/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.19/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.20.4/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.20.5/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.20/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java create mode 100644 1.21/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java diff --git a/1.13/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.13/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..3dddd48 --- /dev/null +++ b/1.13/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.mixin.LanguageAccessor; +import net.minecraft.util.Language; + +import java.util.Map; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + Map translations = ((LanguageAccessor) new Language()).translations(); + JsonArray arr = new JsonArray(); + for (Map.Entry translation : translations.entrySet()) { + String key = translation.getKey(); + if (!key.startsWith("attribute.name.")) continue; + JsonObject obj = new JsonObject(); + key = key.replace("attribute.name.", ""); + obj.addProperty("name", key.split("\\.")[1]); + obj.addProperty("resource", key); + arr.add(obj); + } + return arr; + } +} diff --git a/1.13/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java b/1.13/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java new file mode 100644 index 0000000..7bfd95f --- /dev/null +++ b/1.13/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java @@ -0,0 +1,13 @@ +package dev.u9g.minecraftdatagenerator.mixin; + +import net.minecraft.util.Language; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.Map; + +@Mixin(Language.class) +public interface LanguageAccessor { + @Accessor("translations") + Map translations(); +} diff --git a/1.13/src/main/resources/minecraft-data-generator.mixins.json b/1.13/src/main/resources/minecraft-data-generator.mixins.json index 12957a1..5565d37 100644 --- a/1.13/src/main/resources/minecraft-data-generator.mixins.json +++ b/1.13/src/main/resources/minecraft-data-generator.mixins.json @@ -4,6 +4,7 @@ "package": "dev.u9g.minecraftdatagenerator.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "LanguageAccessor", "MiningToolItemAccessor", "ReadyMixin", "StatusEffectAccessor" diff --git a/1.14/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.14/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..3dddd48 --- /dev/null +++ b/1.14/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.mixin.LanguageAccessor; +import net.minecraft.util.Language; + +import java.util.Map; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + Map translations = ((LanguageAccessor) new Language()).translations(); + JsonArray arr = new JsonArray(); + for (Map.Entry translation : translations.entrySet()) { + String key = translation.getKey(); + if (!key.startsWith("attribute.name.")) continue; + JsonObject obj = new JsonObject(); + key = key.replace("attribute.name.", ""); + obj.addProperty("name", key.split("\\.")[1]); + obj.addProperty("resource", key); + arr.add(obj); + } + return arr; + } +} diff --git a/1.14/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java b/1.14/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java new file mode 100644 index 0000000..7bfd95f --- /dev/null +++ b/1.14/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java @@ -0,0 +1,13 @@ +package dev.u9g.minecraftdatagenerator.mixin; + +import net.minecraft.util.Language; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.Map; + +@Mixin(Language.class) +public interface LanguageAccessor { + @Accessor("translations") + Map translations(); +} diff --git a/1.14/src/main/resources/minecraft-data-generator.mixins.json b/1.14/src/main/resources/minecraft-data-generator.mixins.json index ea255f5..78ccd4f 100644 --- a/1.14/src/main/resources/minecraft-data-generator.mixins.json +++ b/1.14/src/main/resources/minecraft-data-generator.mixins.json @@ -4,6 +4,7 @@ "package": "dev.u9g.minecraftdatagenerator.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "LanguageAccessor", "MiningToolItemAccessor", "ReadyMixin", "StatusEffectAccessor" diff --git a/1.15/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.15/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..3dddd48 --- /dev/null +++ b/1.15/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.mixin.LanguageAccessor; +import net.minecraft.util.Language; + +import java.util.Map; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + Map translations = ((LanguageAccessor) new Language()).translations(); + JsonArray arr = new JsonArray(); + for (Map.Entry translation : translations.entrySet()) { + String key = translation.getKey(); + if (!key.startsWith("attribute.name.")) continue; + JsonObject obj = new JsonObject(); + key = key.replace("attribute.name.", ""); + obj.addProperty("name", key.split("\\.")[1]); + obj.addProperty("resource", key); + arr.add(obj); + } + return arr; + } +} diff --git a/1.15/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java b/1.15/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java new file mode 100644 index 0000000..7bfd95f --- /dev/null +++ b/1.15/src/main/java/dev/u9g/minecraftdatagenerator/mixin/LanguageAccessor.java @@ -0,0 +1,13 @@ +package dev.u9g.minecraftdatagenerator.mixin; + +import net.minecraft.util.Language; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.Map; + +@Mixin(Language.class) +public interface LanguageAccessor { + @Accessor("translations") + Map translations(); +} diff --git a/1.15/src/main/resources/minecraft-data-generator.mixins.json b/1.15/src/main/resources/minecraft-data-generator.mixins.json index ea255f5..78ccd4f 100644 --- a/1.15/src/main/resources/minecraft-data-generator.mixins.json +++ b/1.15/src/main/resources/minecraft-data-generator.mixins.json @@ -4,6 +4,7 @@ "package": "dev.u9g.minecraftdatagenerator.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "LanguageAccessor", "MiningToolItemAccessor", "ReadyMixin", "StatusEffectAccessor" diff --git a/1.16/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.16/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..ef2ef93 --- /dev/null +++ b/1.16/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,30 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.mixin.ClampedEntityAttributeAccessor; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.util.registry.Registry; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + for (EntityAttribute attribute : Registry.ATTRIBUTE) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Registry.ATTRIBUTE.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", Registry.ATTRIBUTE.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttributeAccessor) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttributeAccessor) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.16/src/main/java/dev/u9g/minecraftdatagenerator/mixin/ClampedEntityAttributeAccessor.java b/1.16/src/main/java/dev/u9g/minecraftdatagenerator/mixin/ClampedEntityAttributeAccessor.java new file mode 100644 index 0000000..6f46af5 --- /dev/null +++ b/1.16/src/main/java/dev/u9g/minecraftdatagenerator/mixin/ClampedEntityAttributeAccessor.java @@ -0,0 +1,14 @@ +package dev.u9g.minecraftdatagenerator.mixin; + +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ClampedEntityAttribute.class) +public interface ClampedEntityAttributeAccessor { + @Accessor("minValue") + double getMinValue(); + + @Accessor("maxValue") + double getMaxValue(); +} diff --git a/1.16/src/main/resources/minecraft-data-generator.mixins.json b/1.16/src/main/resources/minecraft-data-generator.mixins.json index 7154c90..1bf67a5 100644 --- a/1.16/src/main/resources/minecraft-data-generator.mixins.json +++ b/1.16/src/main/resources/minecraft-data-generator.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_17", "mixins": [ "BiomeEffectsAccessor", + "ClampedEntityAttributeAccessor", "EULAMixin", "MiningToolItemAccessor", "ReadyMixin", diff --git a/1.17/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.17/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..ae09543 --- /dev/null +++ b/1.17/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,30 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.util.registry.Registry; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + for (EntityAttribute attribute : Registry.ATTRIBUTE) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Registry.ATTRIBUTE.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", Registry.ATTRIBUTE.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.18/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.18/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..ae09543 --- /dev/null +++ b/1.18/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,30 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.util.registry.Registry; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + for (EntityAttribute attribute : Registry.ATTRIBUTE) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Registry.ATTRIBUTE.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", Registry.ATTRIBUTE.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.19.2/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.19.2/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..ae09543 --- /dev/null +++ b/1.19.2/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,30 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.util.registry.Registry; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + for (EntityAttribute attribute : Registry.ATTRIBUTE) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Registry.ATTRIBUTE.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", Registry.ATTRIBUTE.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.19/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.19/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..ae09543 --- /dev/null +++ b/1.19/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,30 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.util.registry.Registry; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + for (EntityAttribute attribute : Registry.ATTRIBUTE) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Registry.ATTRIBUTE.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", Registry.ATTRIBUTE.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.20.4/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.20.4/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..1132573 --- /dev/null +++ b/1.20.4/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.util.DGU; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.registry.RegistryKeys; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + var registry = DGU.getWorld().getRegistryManager().get(RegistryKeys.ATTRIBUTE); + for (EntityAttribute attribute : registry) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", registry.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", registry.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.20.5/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.20.5/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..1132573 --- /dev/null +++ b/1.20.5/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.util.DGU; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.registry.RegistryKeys; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + var registry = DGU.getWorld().getRegistryManager().get(RegistryKeys.ATTRIBUTE); + for (EntityAttribute attribute : registry) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", registry.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", registry.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.20/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.20/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..1132573 --- /dev/null +++ b/1.20/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.util.DGU; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.registry.RegistryKeys; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + var registry = DGU.getWorld().getRegistryManager().get(RegistryKeys.ATTRIBUTE); + for (EntityAttribute attribute : registry) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", registry.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", registry.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} diff --git a/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..8054ecd --- /dev/null +++ b/1.21.3/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,34 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.util.DGU; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.registry.RegistryKeys; + +import java.util.Objects; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + var registry = DGU.getWorld().getRegistryManager().getOrThrow(RegistryKeys.ATTRIBUTE); + for (EntityAttribute attribute : registry) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", Objects.requireNonNull(registry.getId(attribute)).toShortTranslationKey()); + obj.addProperty("resource", Objects.requireNonNull(registry.getId(attribute)).toTranslationKey()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +} \ No newline at end of file diff --git a/1.21/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java b/1.21/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java new file mode 100644 index 0000000..1132573 --- /dev/null +++ b/1.21/src/main/java/dev/u9g/minecraftdatagenerator/generators/AttributesDataGenerator.java @@ -0,0 +1,32 @@ +package dev.u9g.minecraftdatagenerator.generators; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import dev.u9g.minecraftdatagenerator.util.DGU; +import net.minecraft.entity.attribute.ClampedEntityAttribute; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.registry.RegistryKeys; + +public class AttributesDataGenerator implements IDataGenerator { + @Override + public String getDataName() { + return "attributes"; + } + + @Override + public JsonElement generateDataJson() { + JsonArray arr = new JsonArray(); + var registry = DGU.getWorld().getRegistryManager().get(RegistryKeys.ATTRIBUTE); + for (EntityAttribute attribute : registry) { + JsonObject obj = new JsonObject(); + obj.addProperty("name", registry.getId(attribute).getPath().split("\\.")[1]); + obj.addProperty("resource", registry.getId(attribute).getPath()); + obj.addProperty("min", ((ClampedEntityAttribute) attribute).getMinValue()); + obj.addProperty("max", ((ClampedEntityAttribute) attribute).getMaxValue()); + obj.addProperty("default", attribute.getDefaultValue()); + arr.add(obj); + } + return arr; + } +}