Skip to content

Commit 1f07a06

Browse files
Feature: blockdata parsing (#219)
* Add blockdata parsing * Add license header * sort imports * sort registration
1 parent dccbb3a commit 1f07a06

File tree

4 files changed

+78
-24
lines changed

4 files changed

+78
-24
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ plugins {
1515
}
1616
publishData {
1717
useEldoNexusRepos(false)
18-
publishingVersion = "1.3.0"
18+
publishingVersion = "1.4.0"
1919
}
2020
version = publishData.getVersion()
2121

core/src/main/java/de/eldoria/jacksonbukkit/JacksonBukkitModule.java

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
import com.fasterxml.jackson.databind.module.SimpleDeserializers;
1111
import com.fasterxml.jackson.databind.module.SimpleSerializers;
1212
import de.eldoria.jacksonbukkit.deserializer.AttributeModifierDeserializer;
13+
import de.eldoria.jacksonbukkit.deserializer.BlockDataDeserializer;
1314
import de.eldoria.jacksonbukkit.deserializer.BlockVectorDeserializer;
1415
import de.eldoria.jacksonbukkit.deserializer.BoundingBoxDeserializer;
16+
import de.eldoria.jacksonbukkit.deserializer.EnchantmentDeserializer;
1517
import de.eldoria.jacksonbukkit.deserializer.ExactChoiceDeserializer;
16-
import de.eldoria.jacksonbukkit.serializer.EnchantmentSerializer;
1718
import de.eldoria.jacksonbukkit.deserializer.FireworkEffectDeserializer;
1819
import de.eldoria.jacksonbukkit.deserializer.LocationDeserializer;
1920
import de.eldoria.jacksonbukkit.deserializer.MaterialChoiceDeserializer;
@@ -27,10 +28,11 @@
2728
import de.eldoria.jacksonbukkit.deserializer.ShapelessRecipeDeserializer;
2829
import de.eldoria.jacksonbukkit.deserializer.VectorDeserializer;
2930
import de.eldoria.jacksonbukkit.serializer.AttributeModifierSerializer;
31+
import de.eldoria.jacksonbukkit.serializer.BlockDataSerializer;
3032
import de.eldoria.jacksonbukkit.serializer.BlockVectorSerializer;
3133
import de.eldoria.jacksonbukkit.serializer.BoundingBoxSerializer;
34+
import de.eldoria.jacksonbukkit.serializer.EnchantmentSerializer;
3235
import de.eldoria.jacksonbukkit.serializer.ExactChoiceSerializer;
33-
import de.eldoria.jacksonbukkit.deserializer.EnchantmentDeserializer;
3436
import de.eldoria.jacksonbukkit.serializer.FireworkEffectSerializer;
3537
import de.eldoria.jacksonbukkit.serializer.LocationSerializer;
3638
import de.eldoria.jacksonbukkit.serializer.MaterialChoiceSerializer;
@@ -50,11 +52,12 @@
5052
import org.bukkit.OfflinePlayer;
5153
import org.bukkit.attribute.AttributeModifier;
5254
import org.bukkit.block.banner.Pattern;
55+
import org.bukkit.block.data.BlockData;
56+
import org.bukkit.enchantments.Enchantment;
5357
import org.bukkit.inventory.RecipeChoice.ExactChoice;
5458
import org.bukkit.inventory.RecipeChoice.MaterialChoice;
5559
import org.bukkit.inventory.ShapedRecipe;
5660
import org.bukkit.inventory.ShapelessRecipe;
57-
import org.bukkit.enchantments.Enchantment;
5861
import org.bukkit.potion.PotionEffect;
5962
import org.bukkit.potion.PotionEffectType;
6063
import org.bukkit.util.BlockVector;
@@ -109,23 +112,24 @@ public void setupModule(SetupContext context) {
109112
* @param serializers serializers
110113
*/
111114
protected final void addSerializer(SimpleSerializers serializers) {
112-
serializers.addSerializer(Vector.class, new VectorSerializer());
115+
serializers.addSerializer(AttributeModifier.class, new AttributeModifierSerializer());
116+
serializers.addSerializer(BlockData.class, new BlockDataSerializer());
113117
serializers.addSerializer(BlockVector.class, new BlockVectorSerializer());
114-
serializers.addSerializer(NamespacedKey.class, new NamespacedKeySerializer(namespacedKeyFormat));
115-
serializers.addSerializer(PotionEffect.class, new PotionEffectSerializer());
116-
serializers.addSerializer(PotionEffectType.class, new PotionEffectTypeSerializer());
117-
serializers.addSerializer(FireworkEffect.class, new FireworkEffectSerializer());
118-
serializers.addSerializer(Pattern.class, new PatternSerializer());
119118
serializers.addSerializer(BoundingBox.class, new BoundingBoxSerializer());
120-
serializers.addSerializer(Enchantment.class, new EnchantmentSerializer());
121-
serializers.addSerializer(AttributeModifier.class, new AttributeModifierSerializer());
122-
serializers.addSerializer(Location.class, new LocationSerializer());
123-
serializers.addSerializer(OfflinePlayer.class, new PlayerSerializer());
124119
serializers.addSerializer(Color.class, new RGBColorSerializer());
120+
serializers.addSerializer(Enchantment.class, new EnchantmentSerializer());
125121
serializers.addSerializer(ExactChoice.class, new ExactChoiceSerializer());
122+
serializers.addSerializer(FireworkEffect.class, new FireworkEffectSerializer());
123+
serializers.addSerializer(Location.class, new LocationSerializer());
126124
serializers.addSerializer(MaterialChoice.class, new MaterialChoiceSerializer());
125+
serializers.addSerializer(NamespacedKey.class, new NamespacedKeySerializer(namespacedKeyFormat));
126+
serializers.addSerializer(OfflinePlayer.class, new PlayerSerializer());
127+
serializers.addSerializer(Pattern.class, new PatternSerializer());
128+
serializers.addSerializer(PotionEffect.class, new PotionEffectSerializer());
129+
serializers.addSerializer(PotionEffectType.class, new PotionEffectTypeSerializer());
127130
serializers.addSerializer(ShapedRecipe.class, new ShapedRecipeSerializer());
128131
serializers.addSerializer(ShapelessRecipe.class, new ShapelessRecipeSerializer());
132+
serializers.addSerializer(Vector.class, new VectorSerializer());
129133
registerSerializer(serializers);
130134
}
131135

@@ -144,23 +148,24 @@ protected final void addSerializer(SimpleSerializers serializers) {
144148
* @param deserializers deserializers
145149
*/
146150
protected final void addDeserializer(SimpleDeserializers deserializers) {
147-
deserializers.addDeserializer(Vector.class, new VectorDeserializer());
151+
deserializers.addDeserializer(AttributeModifier.class, new AttributeModifierDeserializer());
152+
deserializers.addDeserializer(BlockData.class, new BlockDataDeserializer());
148153
deserializers.addDeserializer(BlockVector.class, new BlockVectorDeserializer());
149-
deserializers.addDeserializer(NamespacedKey.class, new NamespacedKeyDeserializer());
150-
deserializers.addDeserializer(PotionEffect.class, new PotionEffectDeserializer());
151-
deserializers.addDeserializer(PotionEffectType.class, new PotionEffectTypeDeserializer());
152-
deserializers.addDeserializer(FireworkEffect.class, new FireworkEffectDeserializer());
153-
deserializers.addDeserializer(Pattern.class, new PatternDeserializer());
154154
deserializers.addDeserializer(BoundingBox.class, new BoundingBoxDeserializer());
155-
deserializers.addDeserializer(Enchantment.class, new EnchantmentDeserializer());
156-
deserializers.addDeserializer(AttributeModifier.class, new AttributeModifierDeserializer());
157-
deserializers.addDeserializer(Location.class, new LocationDeserializer());
158-
deserializers.addDeserializer(OfflinePlayer.class, new PlayerDeserializer());
159155
deserializers.addDeserializer(Color.class, new RGBColorDeserializer());
156+
deserializers.addDeserializer(Enchantment.class, new EnchantmentDeserializer());
160157
deserializers.addDeserializer(ExactChoice.class, new ExactChoiceDeserializer());
158+
deserializers.addDeserializer(FireworkEffect.class, new FireworkEffectDeserializer());
159+
deserializers.addDeserializer(Location.class, new LocationDeserializer());
161160
deserializers.addDeserializer(MaterialChoice.class, new MaterialChoiceDeserializer());
161+
deserializers.addDeserializer(NamespacedKey.class, new NamespacedKeyDeserializer());
162+
deserializers.addDeserializer(OfflinePlayer.class, new PlayerDeserializer());
163+
deserializers.addDeserializer(Pattern.class, new PatternDeserializer());
164+
deserializers.addDeserializer(PotionEffect.class, new PotionEffectDeserializer());
165+
deserializers.addDeserializer(PotionEffectType.class, new PotionEffectTypeDeserializer());
162166
deserializers.addDeserializer(ShapedRecipe.class, new ShapedRecipeDeserializer());
163167
deserializers.addDeserializer(ShapelessRecipe.class, new ShapelessRecipeDeserializer());
168+
deserializers.addDeserializer(Vector.class, new VectorDeserializer());
164169
registerDeserializer(deserializers);
165170
}
166171

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* SPDX-License-Identifier: MIT
3+
*
4+
* Copyright (C) EldoriaRPG Team and Contributor
5+
*/
6+
package de.eldoria.jacksonbukkit.deserializer;
7+
8+
import com.fasterxml.jackson.core.JsonParser;
9+
import com.fasterxml.jackson.databind.DeserializationContext;
10+
import com.fasterxml.jackson.databind.JsonDeserializer;
11+
import org.bukkit.Bukkit;
12+
import org.bukkit.block.data.BlockData;
13+
import org.bukkit.util.BlockVector;
14+
15+
import java.io.IOException;
16+
17+
/**
18+
* Class for deserialization of {@link BlockVector}.
19+
*/
20+
public class BlockDataDeserializer extends JsonDeserializer<BlockData> {
21+
@Override
22+
public BlockData deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
23+
return Bukkit.createBlockData(ctxt.readValue(p, String.class));
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* SPDX-License-Identifier: MIT
3+
*
4+
* Copyright (C) EldoriaRPG Team and Contributor
5+
*/
6+
package de.eldoria.jacksonbukkit.serializer;
7+
8+
import com.fasterxml.jackson.core.JsonGenerator;
9+
import com.fasterxml.jackson.databind.JsonSerializer;
10+
import com.fasterxml.jackson.databind.SerializerProvider;
11+
import org.bukkit.block.data.BlockData;
12+
import org.bukkit.util.BlockVector;
13+
14+
import java.io.IOException;
15+
16+
/**
17+
* Class for serialization of {@link BlockVector}.
18+
*/
19+
public class BlockDataSerializer extends JsonSerializer<BlockData> {
20+
@Override
21+
public void serialize(BlockData value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
22+
gen.writeObject(value.getAsString());
23+
}
24+
}

0 commit comments

Comments
 (0)