Skip to content

Commit ce89e8d

Browse files
authored
Feat/add addable sponge config serializers (#278)
2 parents a92d2cb + 6220f52 commit ce89e8d

7 files changed

Lines changed: 126 additions & 139 deletions

File tree

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 0 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -703,78 +703,6 @@ public abstract class dev/slne/surf/surfapi/bukkit/api/hook/papi/expansion/PapiP
703703
public abstract fun parse (Lorg/bukkit/OfflinePlayer;Ljava/util/List;)Ljava/lang/String;
704704
}
705705

706-
public abstract interface class dev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui : dev/slne/surf/surfapi/bukkit/api/inventory/SurfGui {
707-
public abstract fun getPlayer ()Lorg/bukkit/entity/Player;
708-
public fun open ()V
709-
}
710-
711-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui$DefaultImpls {
712-
public static fun backToParent (Ldev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui;Lorg/bukkit/entity/HumanEntity;)V
713-
public static fun item (Ldev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui;Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;)V
714-
public static fun open (Ldev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui;)V
715-
public static fun walkParents (Ldev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui;)Ljava/util/List;
716-
}
717-
718-
public abstract interface class dev/slne/surf/surfapi/bukkit/api/inventory/SurfGui {
719-
public fun backToParent (Lorg/bukkit/entity/HumanEntity;)V
720-
public abstract fun getGui ()Lcom/github/stefvanschie/inventoryframework/gui/type/util/NamedGui;
721-
public abstract fun getParent ()Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;
722-
public fun item (Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;)V
723-
public static synthetic fun item$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
724-
public fun walkParents ()Ljava/util/List;
725-
}
726-
727-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/SurfGui$DefaultImpls {
728-
public static fun backToParent (Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;Lorg/bukkit/entity/HumanEntity;)V
729-
public static fun item (Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;)V
730-
public static synthetic fun item$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
731-
public static fun walkParents (Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;)Ljava/util/List;
732-
}
733-
734-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/GuiKt {
735-
public static final fun childMenu (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lnet/kyori/adventure/text/Component;ILkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;
736-
public static final fun childPlayerMenu (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestSinglePlayerGui;Lnet/kyori/adventure/text/Component;ILkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestSinglePlayerGui;
737-
public static final fun menu (Lnet/kyori/adventure/text/Component;ILkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;
738-
public static synthetic fun menu$default (Lnet/kyori/adventure/text/Component;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;
739-
public static final fun playerMenu (Lnet/kyori/adventure/text/Component;Lorg/bukkit/entity/Player;ILkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestSinglePlayerGui;
740-
public static synthetic fun playerMenu$default (Lnet/kyori/adventure/text/Component;Lorg/bukkit/entity/Player;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestSinglePlayerGui;
741-
public static final fun staticPane (Lcom/github/stefvanschie/inventoryframework/gui/type/util/MergedGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;)V
742-
public static synthetic fun staticPane$default (Lcom/github/stefvanschie/inventoryframework/gui/type/util/MergedGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
743-
}
744-
745-
public abstract interface annotation class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/MenuMarker : java/lang/annotation/Annotation {
746-
}
747-
748-
public abstract interface annotation class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/PaneMarker : java/lang/annotation/Annotation {
749-
}
750-
751-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/PanesKt {
752-
public static final fun addItem (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;)V
753-
public static final fun addItems (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;[Lkotlin/Pair;)V
754-
public static final fun drawOutline (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILcom/github/stefvanschie/inventoryframework/gui/GuiItem;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
755-
public static final fun drawOutline (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
756-
public static synthetic fun drawOutline$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILcom/github/stefvanschie/inventoryframework/gui/GuiItem;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
757-
public static synthetic fun drawOutline$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
758-
public static final fun drawOutlineRow (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;IILcom/github/stefvanschie/inventoryframework/gui/GuiItem;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
759-
public static final fun drawOutlineRow (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;IILkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
760-
public static synthetic fun drawOutlineRow$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;IILcom/github/stefvanschie/inventoryframework/gui/GuiItem;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
761-
public static synthetic fun drawOutlineRow$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;IILkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/pane/OutlinePane;
762-
public static final fun makeStaticPane (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;
763-
public static final fun makeSubmitItemPane (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILjava/util/List;Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/pane/SubmitItemPane;
764-
public static final fun makeSubmitItemPane (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/bukkit/api/inventory/pane/SubmitItemPane;
765-
public static synthetic fun makeSubmitItemPane$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILjava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/slne/surf/surfapi/bukkit/api/inventory/pane/SubmitItemPane;
766-
public static synthetic fun makeSubmitItemPane$default (Ldev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ldev/slne/surf/surfapi/bukkit/api/inventory/pane/SubmitItemPane;
767-
}
768-
769-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/SlotKt {
770-
public static final fun slot (I)Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;
771-
public static final fun slot (II)Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;
772-
}
773-
774-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/dsl/StaticPaneScope : com/github/stefvanschie/inventoryframework/pane/StaticPane {
775-
public fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;II)V
776-
}
777-
778706
public final class dev/slne/surf/surfapi/bukkit/api/inventory/framework/InventoryFrameworkExtensions {
779707
public static final fun getOutlineItem (Lme/devnatan/inventoryframework/View;)Lorg/bukkit/inventory/ItemStack;
780708
public static final fun modifyConfig (Lme/devnatan/inventoryframework/context/OpenContext;Lkotlin/jvm/functions/Function1;)Lme/devnatan/inventoryframework/ViewConfigBuilder;
@@ -1530,55 +1458,6 @@ public final class dev/slne/surf/surfapi/bukkit/api/inventory/framework/view/uti
15301458
public static final fun shift (I)Ljava/lang/String;
15311459
}
15321460

1533-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/item/GuiItemKt {
1534-
public static final fun guiItem (Lorg/bukkit/Material;Lkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1535-
public static final fun guiItem (Lorg/bukkit/Material;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1536-
public static final fun guiItem (Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1537-
public static synthetic fun guiItem$default (Lorg/bukkit/Material;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1538-
public static synthetic fun guiItem$default (Lorg/bukkit/Material;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1539-
public static synthetic fun guiItem$default (Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/github/stefvanschie/inventoryframework/gui/GuiItem;
1540-
}
1541-
1542-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/item/SurfGuiItem : com/github/stefvanschie/inventoryframework/gui/GuiItem {
1543-
public fun <init> ()V
1544-
public fun <init> (Lorg/bukkit/inventory/ItemStack;)V
1545-
public final fun getClick ()Lkotlin/jvm/functions/Function1;
1546-
public final fun getCondition ()Lkotlin/jvm/functions/Function0;
1547-
public final fun getItemPermission ()Ljava/lang/String;
1548-
public final fun permission (Ldev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui;Ljava/lang/String;)V
1549-
public final fun setClick (Lkotlin/jvm/functions/Function1;)V
1550-
public final fun setCondition (Lkotlin/jvm/functions/Function0;)V
1551-
}
1552-
1553-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/pane/SubmitItemPane : com/github/stefvanschie/inventoryframework/pane/Pane {
1554-
public fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILjava/util/List;Lcom/github/stefvanschie/inventoryframework/pane/Pane$Priority;)V
1555-
public synthetic fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILjava/util/List;Lcom/github/stefvanschie/inventoryframework/pane/Pane$Priority;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
1556-
public fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;)V
1557-
public fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;Lcom/github/stefvanschie/inventoryframework/pane/Pane$Priority;)V
1558-
public synthetic fun <init> (Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;IILkotlin/jvm/functions/Function1;Lcom/github/stefvanschie/inventoryframework/pane/Pane$Priority;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
1559-
public fun clear ()V
1560-
public fun click (Lcom/github/stefvanschie/inventoryframework/gui/type/util/Gui;Lcom/github/stefvanschie/inventoryframework/gui/InventoryComponent;Lorg/bukkit/event/inventory/InventoryClickEvent;IIIII)Z
1561-
public fun copy ()Lcom/github/stefvanschie/inventoryframework/pane/Pane;
1562-
public fun display (Lcom/github/stefvanschie/inventoryframework/gui/InventoryComponent;IIII)V
1563-
public fun getItems ()Ljava/util/Collection;
1564-
public fun getPanes ()Ljava/util/Collection;
1565-
public final fun getSubmittedItems ()Ljava/util/Map;
1566-
}
1567-
1568-
public class dev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui : com/github/stefvanschie/inventoryframework/gui/type/ChestGui, dev/slne/surf/surfapi/bukkit/api/inventory/SurfGui {
1569-
public fun backToParent (Lorg/bukkit/entity/HumanEntity;)V
1570-
public fun getGui ()Lcom/github/stefvanschie/inventoryframework/gui/type/util/NamedGui;
1571-
public fun getParent ()Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;
1572-
public fun item (Lcom/github/stefvanschie/inventoryframework/pane/StaticPane;Lcom/github/stefvanschie/inventoryframework/pane/util/Slot;Lorg/bukkit/inventory/ItemStack;Lkotlin/jvm/functions/Function1;)V
1573-
public fun walkParents ()Ljava/util/List;
1574-
}
1575-
1576-
public final class dev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestSinglePlayerGui : dev/slne/surf/surfapi/bukkit/api/inventory/types/SurfChestGui, dev/slne/surf/surfapi/bukkit/api/inventory/SinglePlayerGui {
1577-
public fun getParent ()Ldev/slne/surf/surfapi/bukkit/api/inventory/SurfGui;
1578-
public fun getPlayer ()Lorg/bukkit/entity/Player;
1579-
public fun open ()V
1580-
}
1581-
15821461
public class dev/slne/surf/surfapi/bukkit/api/metrics/Metrics {
15831462
public fun <init> (Lorg/bukkit/plugin/Plugin;I)V
15841463
public fun addCustomChart (Ldev/slne/surf/surfapi/bukkit/api/metrics/Metrics$CustomChart;)V

surf-api-bukkit/surf-api-bukkit-server/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,17 @@ paper {
9191
}
9292
}
9393

94-
tasks.generatePaperPluginDescription {
95-
useDefaultCentralProxy()
96-
}
97-
9894
tasks {
9995
shadowJar {
10096
val relocationPrefix: String by project
10197
relocate("me.devnatan.inventoryframework", "$relocationPrefix.devnatan.inventoryframework")
10298
}
10399
}
104100

101+
tasks.generatePaperPluginDescription {
102+
useDefaultCentralProxy()
103+
}
104+
105105
configurations.all {
106106
exclude(group = "org.spigotmc", module = "spigot-api")
107107
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package dev.slne.surf.surfapi.bukkit.server.config.serializers
2+
3+
import com.google.auto.service.AutoService
4+
import dev.slne.surf.surfapi.core.api.config.serializer.SpongeConfigSerializers
5+
import org.bukkit.inventory.ItemStack
6+
import org.spongepowered.configurate.ConfigurationNode
7+
import org.spongepowered.configurate.serialize.SerializationException
8+
import org.spongepowered.configurate.serialize.TypeSerializer
9+
import java.lang.reflect.Type
10+
import java.util.*
11+
12+
@AutoService(SpongeConfigSerializers::class)
13+
class PaperSpongeConfigSerializers : SpongeConfigSerializers() {
14+
init {
15+
registerClassSerializer<ItemStack>(ItemStackSerializer)
16+
}
17+
18+
object ItemStackSerializer : TypeSerializer<ItemStack> {
19+
override fun deserialize(
20+
type: Type,
21+
node: ConfigurationNode
22+
): ItemStack {
23+
val itemStackBase64 = node.string
24+
?: throw SerializationException("Expected a Base64 string for ItemStack deserialization")
25+
val decoded = Base64.getDecoder().decode(itemStackBase64)
26+
27+
return ItemStack.deserializeBytes(decoded)
28+
}
29+
30+
override fun serialize(
31+
type: Type,
32+
obj: ItemStack?,
33+
node: ConfigurationNode
34+
) {
35+
if (obj == null) {
36+
node.raw(null)
37+
return
38+
}
39+
40+
val serialized = obj.serializeAsBytes()
41+
val encoded = Base64.getEncoder().encodeToString(serialized)
42+
43+
node.set(encoded)
44+
}
45+
}
46+
}

surf-api-core/surf-api-core-api/api/surf-api-core-api.api

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,10 +333,15 @@ public final class dev/slne/surf/surfapi/core/api/config/serializer/DefaultDazzl
333333
public final fun getMiniMessage ()Lnet/kyori/adventure/text/minimessage/MiniMessage;
334334
}
335335

336-
public final class dev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializers {
337-
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializers;
338-
public final fun getSERIALIZERS ()Ljava/util/function/Consumer;
339-
public final fun setSERIALIZERS (Ljava/util/function/Consumer;)V
336+
public abstract class dev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializers {
337+
public fun <init> ()V
338+
public final fun buildSerializersModule ()Ljava/util/function/Consumer;
339+
public final fun getClassSerializers ()Lit/unimi/dsi/fastutil/objects/Object2ObjectMap;
340+
public final fun getTypeTokenSerializers ()Lit/unimi/dsi/fastutil/objects/Object2ObjectMap;
341+
public final fun registerClassSerializer (Ljava/lang/Class;Lorg/spongepowered/configurate/serialize/TypeSerializer;)V
342+
public final fun registerTypeTokenSerializer (Lio/leangen/geantyref/TypeToken;Lorg/spongepowered/configurate/serialize/TypeSerializer;)V
343+
public final fun unregisterSerializer (Ljava/lang/Class;)V
344+
public final fun unregisterTypeTokenSerializer (Lio/leangen/geantyref/TypeToken;)V
340345
}
341346

342347
public final class dev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializers$ComponentSerializer : org/spongepowered/configurate/serialize/TypeSerializer {
@@ -359,6 +364,10 @@ public final class dev/slne/surf/surfapi/core/api/config/serializer/SpongeConfig
359364
public final fun getTYPE ()Lio/leangen/geantyref/TypeToken;
360365
}
361366

367+
public final class dev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializersKt {
368+
public static final fun getSurfSpongeConfigSerializers ()Ldev/slne/surf/surfapi/core/api/config/serializer/SpongeConfigSerializers;
369+
}
370+
362371
public final class dev/slne/surf/surfapi/core/api/extensions/Packet_eventsKt {
363372
public static final fun getPacketEvents ()Lcom/github/retrooper/packetevents/PacketEventsAPI;
364373
public static final fun sendPacket (Lcom/github/retrooper/packetevents/wrapper/PacketWrapper;Ljava/lang/Object;)V

0 commit comments

Comments
 (0)