Skip to content

Commit

Permalink
Release 1.2.0 (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
rainbowdashlabs authored Jun 9, 2023
2 parents ff390ea + 206ec15 commit fb62d6e
Show file tree
Hide file tree
Showing 71 changed files with 1,655 additions and 435 deletions.
2 changes: 1 addition & 1 deletion .github/badges/branches.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion .github/badges/jacoco.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion 1.16-testing/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies {
implementation("com.destroystokyo.paper:paper-api:1.16.5-R0.1-20211218.081530-231")
testImplementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
testImplementation("com.fasterxml.jackson.dataformat:jackson-dataformat-toml")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.3")
testImplementation("org.assertj:assertj-core:3.24.2")
implementation(project(":testing"))
testImplementation("com.github.seeseemelk", "MockBukkit-v1.19", "2.29.0")
Expand Down
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);
}

}
8 changes: 6 additions & 2 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ repositories {

dependencies {
// Spigot server
implementation("de.eldoria.jacksonbukkit", "spigot", "version")
implementation("de.eldoria.jacksonbukkit", "bukkit", "version")
// Paper server
implementation("de.eldoria.jacksonbukkit", "paper", "version")
}
Expand Down Expand Up @@ -157,7 +157,7 @@ We support all classes implementing `ConfigurationSerializable`. To be precise w
- Vector
- BlockVector
- Color (Can be serialized as object or as hex string)
- ItemStack (Serialized as map for `JacksonBukkit`. Serialized as Base64 encoded bytes for `JacksonPaper`, when possible)
- ItemStack (Serialized as map for `Bukkit/Spigot`. Serialized as Base64 encoded bytes for `Paper`, when possible)
- PotionEffect
- FireworkEffect
- Pattern
Expand All @@ -170,3 +170,7 @@ We support all classes implementing `ConfigurationSerializable`. To be precise w
- NamespacedKey
- OfflinePlayer
- Components (Paper only as MiniMessage string)
- ShapedRecipe
- ShapelessRecipe
- Enchantment
- PotionEffectType
94 changes: 43 additions & 51 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
import com.diffplug.gradle.spotless.SpotlessPlugin
import de.chojo.PublishData
import org.gradle.internal.impldep.org.apache.commons.codec.CharEncoding

plugins {
java
`maven-publish`
`java-library`
id("com.diffplug.spotless") version "6.17.0"
id("com.diffplug.spotless") version "6.19.0"
id("de.chojo.publishdata") version "1.2.4"
jacoco
}

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

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

Expand Down Expand Up @@ -40,7 +39,7 @@ allprojects {
dependencies {
api("org.jetbrains", "annotations", "24.0.1")

api(platform("com.fasterxml.jackson:jackson-bom:2.14.2"))
api(platform("com.fasterxml.jackson:jackson-bom:2.15.2"))
api("com.fasterxml.jackson.core", "jackson-core")
api("com.fasterxml.jackson.core:jackson-databind")

Expand All @@ -50,9 +49,9 @@ allprojects {
testImplementation("com.fasterxml.jackson.dataformat:jackson-dataformat-toml")

// junit and stuff
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.2")
testImplementation("org.mockito:mockito-core:5.2.0")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.3")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.3")
testImplementation("org.mockito:mockito-core:5.3.1")
testImplementation("org.assertj:assertj-core:3.24.2")
}

Expand All @@ -71,51 +70,11 @@ allprojects {
}
}



jacoco {
toolVersion = "0.8.8"
}


tasks.test {
finalizedBy(tasks.jacocoTestReport)
toolVersion = "0.8.10"
}
tasks.jacocoTestReport {
dependsOn(tasks.test)
}
tasks.jacocoTestReport {
reports {
xml.required.set(false)
csv.required.set(true)
html.required.set(false)
}
}



tasks.jacocoTestCoverageVerification {
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}

rule {
isEnabled = false
element = "CLASS"
includes = listOf("org.gradle.*")

limit {
counter = "LINE"
value = "TOTALCOUNT"
maximum = "0.8".toBigDecimal()
}
}
}
}

publishData {
useEldoNexusRepos()
publishComponent("java")
Expand Down Expand Up @@ -175,11 +134,46 @@ allprojects {
}

test {
finalizedBy(jacocoTestReport)
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
}

jacocoTestReport {
dependsOn(test)
}

jacocoTestReport {
reports {
xml.required.set(false)
csv.required.set(true)
html.required.set(false)
}
}

jacocoTestCoverageVerification {
violationRules {
rule {
limit {
minimum = "0.8".toBigDecimal()
}
}

rule {
isEnabled = false
element = "CLASS"
includes = listOf("org.gradle.*")

limit {
counter = "LINE"
value = "TOTALCOUNT"
maximum = "0.8".toBigDecimal()
}
}
}
}
}
}

Expand All @@ -196,15 +190,13 @@ fun applyJavaDocOptions(options: MinimalJavadocOptions) {
)
}


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 })
}
}

5 changes: 3 additions & 2 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
dependencies {
compileOnly("org.spigotmc", "spigot-api", "1.19.2-R0.1-SNAPSHOT")
compileOnly("org.spigotmc", "spigot-api", "1.20-R0.1-SNAPSHOT")
testImplementation("org.spigotmc", "spigot-api", "1.20-R0.1-SNAPSHOT")
testImplementation("com.github.seeseemelk", "MockBukkit-v1.19", "2.29.0")
testImplementation(project(":bukkit"))
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 @@ -12,24 +12,36 @@
import de.eldoria.jacksonbukkit.deserializer.AttributeModifierDeserializer;
import de.eldoria.jacksonbukkit.deserializer.BlockVectorDeserializer;
import de.eldoria.jacksonbukkit.deserializer.BoundingBoxDeserializer;
import de.eldoria.jacksonbukkit.deserializer.ExactChoiceDeserializer;
import de.eldoria.jacksonbukkit.serializer.EnchantmentSerializer;
import de.eldoria.jacksonbukkit.deserializer.FireworkEffectDeserializer;
import de.eldoria.jacksonbukkit.deserializer.LocationDeserializer;
import de.eldoria.jacksonbukkit.deserializer.MaterialChoiceDeserializer;
import de.eldoria.jacksonbukkit.deserializer.NamespacedKeyDeserializer;
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.ShapedRecipeDeserializer;
import de.eldoria.jacksonbukkit.deserializer.ShapelessRecipeDeserializer;
import de.eldoria.jacksonbukkit.deserializer.VectorDeserializer;
import de.eldoria.jacksonbukkit.serializer.AttributeModifierSerializer;
import de.eldoria.jacksonbukkit.serializer.BlockVectorSerializer;
import de.eldoria.jacksonbukkit.serializer.BoundingBoxSerializer;
import de.eldoria.jacksonbukkit.serializer.ExactChoiceSerializer;
import de.eldoria.jacksonbukkit.deserializer.EnchantmentDeserializer;
import de.eldoria.jacksonbukkit.serializer.FireworkEffectSerializer;
import de.eldoria.jacksonbukkit.serializer.LocationSerializer;
import de.eldoria.jacksonbukkit.serializer.MaterialChoiceSerializer;
import de.eldoria.jacksonbukkit.serializer.NamespacedKeySerializer;
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.ShapedRecipeSerializer;
import de.eldoria.jacksonbukkit.serializer.ShapelessRecipeSerializer;
import de.eldoria.jacksonbukkit.serializer.VectorSerializer;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
Expand All @@ -38,7 +50,13 @@
import org.bukkit.OfflinePlayer;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.banner.Pattern;
import org.bukkit.inventory.RecipeChoice.ExactChoice;
import org.bukkit.inventory.RecipeChoice.MaterialChoice;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.ShapelessRecipe;
import org.bukkit.enchantments.Enchantment;
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,13 +111,19 @@ 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());
serializers.addSerializer(Enchantment.class, new EnchantmentSerializer());
serializers.addSerializer(AttributeModifier.class, new AttributeModifierSerializer());
serializers.addSerializer(Location.class, new LocationSerializer());
serializers.addSerializer(OfflinePlayer.class, new PlayerSerializer());
serializers.addSerializer(Color.class, new RGBColorSerializer());
serializers.addSerializer(ExactChoice.class, new ExactChoiceSerializer());
serializers.addSerializer(MaterialChoice.class, new MaterialChoiceSerializer());
serializers.addSerializer(ShapedRecipe.class, new ShapedRecipeSerializer());
serializers.addSerializer(ShapelessRecipe.class, new ShapelessRecipeSerializer());
registerSerializer(serializers);
}

Expand All @@ -122,13 +146,19 @@ 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());
deserializers.addDeserializer(Enchantment.class, new EnchantmentDeserializer());
deserializers.addDeserializer(AttributeModifier.class, new AttributeModifierDeserializer());
deserializers.addDeserializer(Location.class, new LocationDeserializer());
deserializers.addDeserializer(OfflinePlayer.class, new PlayerDeserializer());
deserializers.addDeserializer(Color.class, new RGBColorDeserializer());
deserializers.addDeserializer(ExactChoice.class, new ExactChoiceDeserializer());
deserializers.addDeserializer(MaterialChoice.class, new MaterialChoiceDeserializer());
deserializers.addDeserializer(ShapedRecipe.class, new ShapedRecipeDeserializer());
deserializers.addDeserializer(ShapelessRecipe.class, new ShapelessRecipeDeserializer());
registerDeserializer(deserializers);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* 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.enchantments.Enchantment;

import java.io.IOException;

public class EnchantmentDeserializer extends JsonDeserializer<Enchantment> {
@Override
public Enchantment deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
JsonNode tree = ctxt.readTree(p);
if (tree.isTextual()) {
return Enchantment.getByName(ctxt.readTreeAsValue(tree, String.class));
}

if (tree.isObject()) {
return Enchantment.getByKey(ctxt.readTreeAsValue(tree, NamespacedKey.class));
}
throw new IOException("Unknown type for field type" + tree.getNodeType().name());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
* 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 de.eldoria.jacksonbukkit.entities.ExactChoiceWrapper;
import org.bukkit.inventory.RecipeChoice.ExactChoice;

import java.io.IOException;

/**
* Class for deserialization of {@link ExactChoice}.
*/
public class ExactChoiceDeserializer extends JsonDeserializer<ExactChoice> {
@Override
public ExactChoice deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
return ctxt.readValue(p, ExactChoiceWrapper.class).toBukkitRecipeChoice();
}
}
Loading

0 comments on commit fb62d6e

Please sign in to comment.