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
This commit is contained in:
SuperGamerTron
2024-10-27 10:53:12 +01:00
committed by GitHub
parent f8368f95a4
commit 1c4802d97e
21 changed files with 465 additions and 0 deletions
@@ -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<String, String> translations = ((LanguageAccessor) new Language()).translations();
JsonArray arr = new JsonArray();
for (Map.Entry<String, String> 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;
}
}
@@ -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<String, String> translations();
}
@@ -4,6 +4,7 @@
"package": "dev.u9g.minecraftdatagenerator.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"LanguageAccessor",
"MiningToolItemAccessor",
"ReadyMixin",
"StatusEffectAccessor"
@@ -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<String, String> translations = ((LanguageAccessor) new Language()).translations();
JsonArray arr = new JsonArray();
for (Map.Entry<String, String> 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;
}
}
@@ -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<String, String> translations();
}
@@ -4,6 +4,7 @@
"package": "dev.u9g.minecraftdatagenerator.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"LanguageAccessor",
"MiningToolItemAccessor",
"ReadyMixin",
"StatusEffectAccessor"
@@ -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<String, String> translations = ((LanguageAccessor) new Language()).translations();
JsonArray arr = new JsonArray();
for (Map.Entry<String, String> 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;
}
}
@@ -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<String, String> translations();
}
@@ -4,6 +4,7 @@
"package": "dev.u9g.minecraftdatagenerator.mixin",
"compatibilityLevel": "JAVA_17",
"mixins": [
"LanguageAccessor",
"MiningToolItemAccessor",
"ReadyMixin",
"StatusEffectAccessor"
@@ -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;
}
}
@@ -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();
}
@@ -5,6 +5,7 @@
"compatibilityLevel": "JAVA_17",
"mixins": [
"BiomeEffectsAccessor",
"ClampedEntityAttributeAccessor",
"EULAMixin",
"MiningToolItemAccessor",
"ReadyMixin",
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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;
}
}