Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add serialization for PotionEffectType #39

Merged
merged 9 commits into from
Jun 9, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*/
package de.eldoria.jacksonbukkit.legacy;

import de.eldoria.jacksonbukkit.serializer.PotionEffectSerializer;
import de.eldoria.jacksonbukkit.serializer.PotionEffectTypeSerializer;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertTrue;
Expand All @@ -14,7 +14,7 @@ public class LegacyTest {

@Test
public void testLegacyPotion() {
assertTrue(PotionEffectSerializer.LEGACY);
assertTrue(PotionEffectTypeSerializer.LEGACY);
}

}
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ plugins {
}

group = "de.eldoria.jacksonbukkit"
version = "1.1.1"
version = "1.1.2"

val publicProjects = setOf("core", "bukkit", "paper", "jackson-bukkit")

Expand Down Expand Up @@ -201,7 +201,7 @@ tasks {
register<Javadoc>("allJavadocs") {
applyJavaDocOptions(options)

setDestinationDir(file("${buildDir}/docs/javadoc"))
destinationDir = file("${buildDir}/docs/javadoc")
val projects = project.rootProject.allprojects.filter { p -> publicProjects.contains(p.name) }
setSource(projects.map { p -> p.sourceSets.main.get().allJava })
classpath = files(projects.map { p -> p.sourceSets.main.get().compileClasspath })
Expand Down
1 change: 0 additions & 1 deletion core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,4 @@ dependencies {
testImplementation(project(":testing"))
testImplementation("org.spigotmc", "spigot-api", "1.19.2-R0.1-SNAPSHOT")
testImplementation("com.github.seeseemelk", "MockBukkit-v1.19", "2.29.0")

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import de.eldoria.jacksonbukkit.deserializer.PatternDeserializer;
import de.eldoria.jacksonbukkit.deserializer.PlayerDeserializer;
import de.eldoria.jacksonbukkit.deserializer.PotionEffectDeserializer;
import de.eldoria.jacksonbukkit.deserializer.PotionEffectTypeDeserializer;
import de.eldoria.jacksonbukkit.deserializer.RGBColorDeserializer;
import de.eldoria.jacksonbukkit.deserializer.VectorDeserializer;
import de.eldoria.jacksonbukkit.serializer.AttributeModifierSerializer;
Expand All @@ -29,6 +30,7 @@
import de.eldoria.jacksonbukkit.serializer.PatternSerializer;
import de.eldoria.jacksonbukkit.serializer.PlayerSerializer;
import de.eldoria.jacksonbukkit.serializer.PotionEffectSerializer;
import de.eldoria.jacksonbukkit.serializer.PotionEffectTypeSerializer;
import de.eldoria.jacksonbukkit.serializer.RGBColorSerializer;
import de.eldoria.jacksonbukkit.serializer.VectorSerializer;
import org.bukkit.Color;
Expand All @@ -39,6 +41,7 @@
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.banner.Pattern;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.BlockVector;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.Vector;
Expand Down Expand Up @@ -93,6 +96,7 @@ protected final void addSerializer(SimpleSerializers serializers) {
serializers.addSerializer(BlockVector.class, new BlockVectorSerializer());
serializers.addSerializer(NamespacedKey.class, new NamespacedKeySerializer());
serializers.addSerializer(PotionEffect.class, new PotionEffectSerializer());
serializers.addSerializer(PotionEffectType.class, new PotionEffectTypeSerializer());
serializers.addSerializer(FireworkEffect.class, new FireworkEffectSerializer());
serializers.addSerializer(Pattern.class, new PatternSerializer());
serializers.addSerializer(BoundingBox.class, new BoundingBoxSerializer());
Expand Down Expand Up @@ -122,6 +126,7 @@ protected final void addDeserializer(SimpleDeserializers deserializers) {
deserializers.addDeserializer(BlockVector.class, new BlockVectorDeserializer());
deserializers.addDeserializer(NamespacedKey.class, new NamespacedKeyDeserializer());
deserializers.addDeserializer(PotionEffect.class, new PotionEffectDeserializer());
deserializers.addDeserializer(PotionEffectType.class, new PotionEffectTypeDeserializer());
deserializers.addDeserializer(FireworkEffect.class, new FireworkEffectDeserializer());
deserializers.addDeserializer(Pattern.class, new PatternDeserializer());
deserializers.addDeserializer(BoundingBox.class, new BoundingBoxDeserializer());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import de.eldoria.jacksonbukkit.entities.LegacyPotionEffectWrapper;
import de.eldoria.jacksonbukkit.entities.PotionEffectWrapper;
import org.bukkit.potion.PotionEffect;

Expand All @@ -21,15 +19,6 @@
public class PotionEffectDeserializer extends JsonDeserializer<PotionEffect> {
@Override
public PotionEffect deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
JsonNode tree = ctxt.readTree(p);
JsonNode type = tree.get("type");
if (type.isInt()) {
return ctxt.readTreeAsValue(tree, LegacyPotionEffectWrapper.class).toBukkitPotionEffect();
}
if (type.isObject()) {
return ctxt.readTreeAsValue(tree, PotionEffectWrapper.class).toBukkitPotionEffect();
}

throw new IOException("Unknown type for field type" + type.getNodeType().name());
return ctxt.readValue(p, PotionEffectWrapper.class).toBukkitPotionEffect();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* SPDX-License-Identifier: MIT
*
* Copyright (C) EldoriaRPG Team and Contributor
*/
package de.eldoria.jacksonbukkit.deserializer;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import org.bukkit.NamespacedKey;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;

import java.io.IOException;

/**
* Class for deserialization of {@link PotionEffect}.
*/
public class PotionEffectTypeDeserializer extends JsonDeserializer<PotionEffectType> {
@Override
public PotionEffectType deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
JsonNode tree = ctxt.readTree(p);
if (tree.isInt()) {
return PotionEffectType.getById(ctxt.readValue(p, Integer.class));
}
if (tree.isObject()) {
return PotionEffectType.getByKey(ctxt.readTreeAsValue(tree, NamespacedKey.class));
}

throw new IOException("Unknown type for field type" + tree.getNodeType().name());
}
}

This file was deleted.

This file was deleted.

Loading