aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-10-17 18:14:57 -0400
committerGitHub <noreply@github.com>2023-10-17 18:14:57 -0400
commit7c572db73914cbdbfbd5e38325a8c09a27935e33 (patch)
tree9a5c5de0261bf8e65abb51ecf0cd7249ea67aeec /src
parent150c9e4fed1973cf4eb14d8f10323a129266e602 (diff)
parent61b3fbd28b64cb103caaf19305e12164a80d6a40 (diff)
downloadSkyblocker-7c572db73914cbdbfbd5e38325a8c09a27935e33.tar.gz
Skyblocker-7c572db73914cbdbfbd5e38325a8c09a27935e33.tar.bz2
Skyblocker-7c572db73914cbdbfbd5e38325a8c09a27935e33.zip
Merge pull request #367 from AzureAaron/codec-tests
Codec-based Test
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java8
-rw-r--r--src/test/java/de/hysky/skyblocker/skyblock/item/ArmorTrimIdSerializationTest.java19
2 files changed, 20 insertions, 7 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
index 9242d47b..ff9e13c9 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/CustomArmorTrims.java
@@ -3,6 +3,9 @@ package de.hysky.skyblocker.skyblock.item;
import com.mojang.brigadier.Command;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.suggestion.SuggestionProvider;
+import com.mojang.serialization.Codec;
+import com.mojang.serialization.codecs.RecordCodecBuilder;
+
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.events.SkyblockEvents;
import de.hysky.skyblocker.utils.ItemUtils;
@@ -137,6 +140,11 @@ public class CustomArmorTrims {
}
public record ArmorTrimId(@SerialEntry Identifier material, @SerialEntry Identifier pattern) implements Pair<Identifier, Identifier> {
+ public static final Codec<ArmorTrimId> CODEC = RecordCodecBuilder.create(instance -> instance.group(
+ Identifier.CODEC.fieldOf("material").forGetter(ArmorTrimId::material),
+ Identifier.CODEC.fieldOf("pattern").forGetter(ArmorTrimId::pattern))
+ .apply(instance, ArmorTrimId::new));
+
@Override
public Identifier left() {
return material();
diff --git a/src/test/java/de/hysky/skyblocker/skyblock/item/ArmorTrimIdSerializationTest.java b/src/test/java/de/hysky/skyblocker/skyblock/item/ArmorTrimIdSerializationTest.java
index 36b65cae..2709aba4 100644
--- a/src/test/java/de/hysky/skyblocker/skyblock/item/ArmorTrimIdSerializationTest.java
+++ b/src/test/java/de/hysky/skyblocker/skyblock/item/ArmorTrimIdSerializationTest.java
@@ -1,27 +1,32 @@
package de.hysky.skyblocker.skyblock.item;
import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.mojang.serialization.JsonOps;
+
+import de.hysky.skyblocker.skyblock.item.CustomArmorTrims.ArmorTrimId;
import net.minecraft.util.Identifier;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class ArmorTrimIdSerializationTest {
- private final Gson gson = new GsonBuilder().registerTypeAdapter(Identifier.class, new Identifier.Serializer()).create();
+ private final Gson gson = new Gson();
@Test
void serialize() {
- CustomArmorTrims.ArmorTrimId armorTrimId = new CustomArmorTrims.ArmorTrimId(new Identifier("material_id"), new Identifier("pattern_id"));
- String json = gson.toJson(armorTrimId);
+ ArmorTrimId armorTrimId = new ArmorTrimId(new Identifier("material_id"), new Identifier("pattern_id"));
+ JsonElement json = ArmorTrimId.CODEC.encodeStart(JsonOps.INSTANCE, armorTrimId).result().orElseThrow();
String expectedJson = "{\"material\":\"minecraft:material_id\",\"pattern\":\"minecraft:pattern_id\"}";
- Assertions.assertEquals(expectedJson, json);
+
+ Assertions.assertEquals(expectedJson, json.toString());
}
@Test
void deserialize() {
String json = "{\"material\":\"minecraft:material_id\",\"pattern\":\"minecraft:pattern_id\"}";
- CustomArmorTrims.ArmorTrimId armorTrimId = gson.fromJson(json, CustomArmorTrims.ArmorTrimId.class);
- CustomArmorTrims.ArmorTrimId expectedArmorTrimId = new CustomArmorTrims.ArmorTrimId(new Identifier("material_id"), new Identifier("pattern_id"));
+ ArmorTrimId armorTrimId = ArmorTrimId.CODEC.parse(JsonOps.INSTANCE, gson.fromJson(json, JsonElement.class)).result().orElseThrow();
+ ArmorTrimId expectedArmorTrimId = new ArmorTrimId(new Identifier("material_id"), new Identifier("pattern_id"));
+
Assertions.assertEquals(expectedArmorTrimId, armorTrimId);
}
}