Skip to content

Commit dc863b0

Browse files
feat: update toast API to use Bukkit and Velocity builders for enhanced customization
1 parent 913c24f commit dc863b0

File tree

12 files changed

+105
-62
lines changed

12 files changed

+105
-62
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2555,6 +2555,18 @@ public final class dev/slne/surf/surfapi/bukkit/api/time/TimeSkipResult : java/l
25552555
public static fun values ()[Ldev/slne/surf/surfapi/bukkit/api/time/TimeSkipResult;
25562556
}
25572557

2558+
public final class dev/slne/surf/surfapi/bukkit/api/toast/ToastBukkitBuilder {
2559+
public fun <init> ()V
2560+
public final fun build ()Ldev/slne/surf/surfapi/core/api/toast/Toast;
2561+
public final fun icon (Lorg/bukkit/Material;)V
2562+
public final fun style (Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)V
2563+
public final fun text (Lkotlin/jvm/functions/Function1;)V
2564+
}
2565+
2566+
public final class dev/slne/surf/surfapi/bukkit/api/toast/ToastBukkitDslKt {
2567+
public static final fun toast (Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
2568+
}
2569+
25582570
public final class dev/slne/surf/surfapi/bukkit/api/util/UtilBukkit {
25592571
public static final fun computeHighestYBlock (Ljava/util/Collection;Lorg/bukkit/World;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
25602572
public static final fun dispatcher (Lorg/bukkit/Location;Lcom/github/shynixn/mccoroutine/folia/SuspendingPlugin;)Lkotlin/coroutines/CoroutineContext;
@@ -9662,18 +9674,6 @@ public abstract interface class dev/slne/surf/surfapi/core/api/toast/Toast {
96629674
public abstract fun send (Ljava/util/UUID;)V
96639675
}
96649676

9665-
public final class dev/slne/surf/surfapi/core/api/toast/ToastBuilder {
9666-
public fun <init> ()V
9667-
public final fun build ()Ldev/slne/surf/surfapi/core/api/toast/Toast;
9668-
public final fun icon (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;)V
9669-
public final fun style (Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)V
9670-
public final fun text (Lkotlin/jvm/functions/Function1;)V
9671-
}
9672-
9673-
public final class dev/slne/surf/surfapi/core/api/toast/ToastDslKt {
9674-
public static final fun toast (Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
9675-
}
9676-
96779677
public abstract interface class dev/slne/surf/surfapi/core/api/toast/ToastService {
96789678
public static final field Companion Ldev/slne/surf/surfapi/core/api/toast/ToastService$Companion;
96799679
public abstract fun createToast (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;Lnet/kyori/adventure/text/Component;Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)Ldev/slne/surf/surfapi/core/api/toast/Toast;

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/SurfBukkitApi.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import dev.slne.surf.surfapi.bukkit.api.scoreboard.ObsoleteScoreboardApi
44
import dev.slne.surf.surfapi.bukkit.api.scoreboard.SurfScoreboardBuilder
55
import dev.slne.surf.surfapi.bukkit.api.time.SkipOperations.SkipOperation
66
import dev.slne.surf.surfapi.bukkit.api.time.TimeSkipResult
7+
import dev.slne.surf.surfapi.bukkit.api.toast.ToastBukkitBuilder
78
import dev.slne.surf.surfapi.core.api.SurfCoreApi
89
import dev.slne.surf.surfapi.core.api.toast.Toast
9-
import dev.slne.surf.surfapi.core.api.toast.ToastBuilder
1010
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
1111
import net.kyori.adventure.text.Component
1212
import net.megavex.scoreboardlibrary.api.ScoreboardLibrary
@@ -114,9 +114,9 @@ interface SurfBukkitApi : SurfCoreApi {
114114
* @param builder A lambda function that configures the ToastBuilder.
115115
* @return The created Toast instance.
116116
*
117-
* @see ToastBuilder
117+
* @see ToastBukkitBuilder
118118
*/
119-
fun createToast(builder: ToastBuilder.() -> Unit): Toast
119+
fun createToast(builder: ToastBukkitBuilder.() -> Unit): Toast
120120

121121
/**
122122
* Creates a Toast with the specified icon, display text, and style.
@@ -134,6 +134,14 @@ interface SurfBukkitApi : SurfCoreApi {
134134
style: ToastStyle
135135
): Toast
136136

137+
/**
138+
* Sends a toast to the specified player.
139+
*
140+
* @param player The player to whom the toast will be sent.
141+
* @param toast The toast to be sent.
142+
*
143+
* @see Toast
144+
*/
137145
fun sendToast(player: Player, toast: Toast)
138146

139147
companion object {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package dev.slne.surf.surfapi.bukkit.api.toast
2+
3+
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
4+
import dev.slne.surf.surfapi.core.api.toast.Toast
5+
import dev.slne.surf.surfapi.core.api.toast.ToastService
6+
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
7+
import io.github.retrooper.packetevents.util.SpigotConversionUtil
8+
import org.bukkit.Material
9+
10+
class ToastBukkitBuilder {
11+
private var icon: Material = Material.STONE
12+
private var text: SurfComponentBuilder.() -> Unit = {}
13+
private var style: ToastStyle = ToastStyle.TASK
14+
15+
fun icon(iconMaterial: Material) {
16+
this.icon = iconMaterial
17+
}
18+
19+
fun text(block: SurfComponentBuilder.() -> Unit) {
20+
this.text = block
21+
}
22+
23+
fun style(style: ToastStyle) {
24+
this.style = style
25+
}
26+
27+
fun build() = ToastService.INSTANCE.createToast(
28+
SpigotConversionUtil.fromBukkitItemMaterial(icon),
29+
SurfComponentBuilder().apply(text).build(),
30+
style
31+
)
32+
}
33+
34+
fun toast(block: ToastBukkitBuilder.() -> Unit): Toast {
35+
return ToastBukkitBuilder().apply(block).build()
36+
}
37+

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/util/bukkit-util.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import com.github.shynixn.mccoroutine.folia.entityDispatcher
77
import com.github.shynixn.mccoroutine.folia.regionDispatcher
88
import dev.slne.surf.surfapi.bukkit.api.SurfBukkitApi
99
import dev.slne.surf.surfapi.bukkit.api.surfBukkitApi
10+
import dev.slne.surf.surfapi.bukkit.api.toast.ToastBukkitBuilder
1011
import dev.slne.surf.surfapi.core.api.toast.Toast
11-
import dev.slne.surf.surfapi.core.api.toast.ToastBuilder
1212
import dev.slne.surf.surfapi.core.api.util.getCallerClass
1313
import dev.slne.surf.surfapi.core.api.util.mutableLong2ObjectMapOf
1414
import dev.slne.surf.surfapi.core.api.util.mutableObjectListOf
@@ -275,7 +275,7 @@ suspend fun World.getBlockAtAsync(pos: BlockPosition): Block {
275275
}
276276

277277
fun Player.sendToast(toast: Toast) = toast.send(this.uniqueId)
278-
fun Player.sendToast(block: ToastBuilder.() -> Unit) =
278+
fun Player.sendToast(block: ToastBukkitBuilder.() -> Unit) =
279279
surfBukkitApi.createToast(block).send(this.uniqueId)
280280

281281
fun Toast.send(player: Player) = send(player.uniqueId)

surf-api-bukkit/surf-api-bukkit-plugin-test/src/main/kotlin/dev/slne/surf/surfapi/bukkit/test/command/subcommands/ToastTest.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
package dev.slne.surf.surfapi.bukkit.test.command.subcommands
22

3-
import com.github.retrooper.packetevents.protocol.item.type.ItemTypes
43
import dev.jorel.commandapi.CommandAPICommand
54
import dev.jorel.commandapi.kotlindsl.playerExecutor
65
import dev.slne.surf.surfapi.bukkit.api.surfBukkitApi
6+
import dev.slne.surf.surfapi.bukkit.api.toast.toast
77
import dev.slne.surf.surfapi.bukkit.api.util.send
88
import dev.slne.surf.surfapi.bukkit.api.util.sendToast
99
import dev.slne.surf.surfapi.core.api.messages.adventure.buildText
1010
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
11-
import dev.slne.surf.surfapi.core.api.toast.toast
1211
import org.bukkit.Material
1312

1413
class ToastTest(name: String) : CommandAPICommand(name) {
1514
init {
1615
playerExecutor { player, _ ->
1716
player.sendToast {
18-
icon(ItemTypes.DIAMOND)
17+
icon(Material.DIAMOND)
1918

2019
text {
2120
info("Dsl-Extension Test")
@@ -25,7 +24,7 @@ class ToastTest(name: String) : CommandAPICommand(name) {
2524
}
2625

2726
player.sendToast(toast {
28-
icon(ItemTypes.GOLD_INGOT)
27+
icon(Material.GOLD_INGOT)
2928

3029
text {
3130
info("Toast-Builder-Dsl Test")

surf-api-bukkit/surf-api-bukkit-server/src/main/kotlin/dev/slne/surf/surfapi/bukkit/server/impl/SurfBukkitApiImpl.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import dev.slne.surf.surfapi.bukkit.api.SurfBukkitApi
66
import dev.slne.surf.surfapi.bukkit.api.scoreboard.ObsoleteScoreboardApi
77
import dev.slne.surf.surfapi.bukkit.api.time.SkipOperations.SkipOperation
88
import dev.slne.surf.surfapi.bukkit.api.time.TimeSkipResult
9+
import dev.slne.surf.surfapi.bukkit.api.toast.ToastBukkitBuilder
910
import dev.slne.surf.surfapi.bukkit.server.hook.SurfBukkitHookManager
1011
import dev.slne.surf.surfapi.bukkit.server.impl.scoreboard.SurfScoreboardBuilderImpl
1112
import dev.slne.surf.surfapi.bukkit.server.plugin
1213
import dev.slne.surf.surfapi.bukkit.server.time.TimeHandler
1314
import dev.slne.surf.surfapi.core.api.SurfCoreApi
1415
import dev.slne.surf.surfapi.core.api.toast.Toast
15-
import dev.slne.surf.surfapi.core.api.toast.ToastBuilder
1616
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
1717
import dev.slne.surf.surfapi.core.api.util.checkInstantiationByServiceLoader
1818
import dev.slne.surf.surfapi.core.api.util.mutableObject2ObjectMapOf
@@ -111,8 +111,8 @@ class SurfBukkitApiImpl : SurfCoreApiImpl(), SurfBukkitApi {
111111
}.mapValuesTo(mutableObject2ObjectMapOf(worlds.size)) { (_, def) -> def.await() }
112112
}
113113

114-
override fun createToast(builder: ToastBuilder.() -> Unit): Toast =
115-
ToastBuilder().apply(builder).build()
114+
override fun createToast(builder: ToastBukkitBuilder.() -> Unit): Toast =
115+
ToastBukkitBuilder().apply(builder).build()
116116

117117
override fun createToast(icon: Material, text: Component, style: ToastStyle): Toast = ToastImpl(
118118
SpigotConversionUtil.fromBukkitItemMaterial(icon),

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7502,18 +7502,6 @@ public abstract interface class dev/slne/surf/surfapi/core/api/toast/Toast {
75027502
public abstract fun send (Ljava/util/UUID;)V
75037503
}
75047504

7505-
public final class dev/slne/surf/surfapi/core/api/toast/ToastBuilder {
7506-
public fun <init> ()V
7507-
public final fun build ()Ldev/slne/surf/surfapi/core/api/toast/Toast;
7508-
public final fun icon (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;)V
7509-
public final fun style (Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)V
7510-
public final fun text (Lkotlin/jvm/functions/Function1;)V
7511-
}
7512-
7513-
public final class dev/slne/surf/surfapi/core/api/toast/ToastDslKt {
7514-
public static final fun toast (Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
7515-
}
7516-
75177505
public abstract interface class dev/slne/surf/surfapi/core/api/toast/ToastService {
75187506
public static final field Companion Ldev/slne/surf/surfapi/core/api/toast/ToastService$Companion;
75197507
public abstract fun createToast (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;Lnet/kyori/adventure/text/Component;Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)Ldev/slne/surf/surfapi/core/api/toast/Toast;

surf-api-velocity/surf-api-velocity-api/api/surf-api-velocity-api.api

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7703,18 +7703,6 @@ public abstract interface class dev/slne/surf/surfapi/core/api/toast/Toast {
77037703
public abstract fun send (Ljava/util/UUID;)V
77047704
}
77057705

7706-
public final class dev/slne/surf/surfapi/core/api/toast/ToastBuilder {
7707-
public fun <init> ()V
7708-
public final fun build ()Ldev/slne/surf/surfapi/core/api/toast/Toast;
7709-
public final fun icon (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;)V
7710-
public final fun style (Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)V
7711-
public final fun text (Lkotlin/jvm/functions/Function1;)V
7712-
}
7713-
7714-
public final class dev/slne/surf/surfapi/core/api/toast/ToastDslKt {
7715-
public static final fun toast (Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
7716-
}
7717-
77187706
public abstract interface class dev/slne/surf/surfapi/core/api/toast/ToastService {
77197707
public static final field Companion Ldev/slne/surf/surfapi/core/api/toast/ToastService$Companion;
77207708
public abstract fun createToast (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;Lnet/kyori/adventure/text/Component;Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
@@ -9253,6 +9241,18 @@ public class dev/slne/surf/surfapi/velocity/api/metrics/Metrics$SingleLineChart
92539241
protected fun getChartData ()Ldev/slne/surf/surfapi/velocity/api/metrics/Metrics$JsonObjectBuilder$JsonObject;
92549242
}
92559243

9244+
public final class dev/slne/surf/surfapi/velocity/api/toast/ToastVelocityBuilder {
9245+
public fun <init> ()V
9246+
public final fun build ()Ldev/slne/surf/surfapi/core/api/toast/Toast;
9247+
public final fun icon (Lcom/github/retrooper/packetevents/protocol/item/type/ItemType;)V
9248+
public final fun style (Ldev/slne/surf/surfapi/core/api/toast/ToastStyle;)V
9249+
public final fun text (Lkotlin/jvm/functions/Function1;)V
9250+
}
9251+
9252+
public final class dev/slne/surf/surfapi/velocity/api/toast/ToastVelocityDslKt {
9253+
public static final fun toast (Lkotlin/jvm/functions/Function1;)Ldev/slne/surf/surfapi/core/api/toast/Toast;
9254+
}
9255+
92569256
public final class dev/slne/surf/surfapi/velocity/api/util/Velocity_utilKt {
92579257
public static final fun send (Ldev/slne/surf/surfapi/core/api/toast/Toast;Lcom/velocitypowered/api/proxy/Player;)V
92589258
public static final fun sendToast (Lcom/velocitypowered/api/proxy/Player;Ldev/slne/surf/surfapi/core/api/toast/Toast;)V

surf-api-velocity/surf-api-velocity-api/src/main/kotlin/dev/slne/surf/surfapi/velocity/api/SurfVelocityApi.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import com.github.retrooper.packetevents.protocol.item.type.ItemType
44
import com.velocitypowered.api.proxy.Player
55
import dev.slne.surf.surfapi.core.api.SurfCoreApi
66
import dev.slne.surf.surfapi.core.api.toast.Toast
7-
import dev.slne.surf.surfapi.core.api.toast.ToastBuilder
87
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
98
import dev.slne.surf.surfapi.core.api.util.requiredService
9+
import dev.slne.surf.surfapi.velocity.api.toast.ToastVelocityBuilder
1010
import net.kyori.adventure.text.Component
1111
import java.util.concurrent.ExecutorService
1212

@@ -19,9 +19,9 @@ interface SurfVelocityApi : SurfCoreApi {
1919
* @param builder A lambda function that configures the ToastBuilder.
2020
* @return The created Toast instance.
2121
*
22-
* @see ToastBuilder
22+
* @see ToastVelocityBuilder
2323
*/
24-
fun createToast(builder: ToastBuilder.() -> Unit): Toast
24+
fun createToast(builder: ToastVelocityBuilder.() -> Unit): Toast
2525

2626
/**
2727
* Creates a Toast with the specified icon, display text, and style.
@@ -39,6 +39,14 @@ interface SurfVelocityApi : SurfCoreApi {
3939
style: ToastStyle
4040
): Toast
4141

42+
/**
43+
* Sends the specified toast to the given player.
44+
*
45+
* @param player The Player to whom the toast will be sent.
46+
* @param toast The Toast instance to be sent.
47+
*
48+
* @see Toast
49+
*/
4250
fun sendToast(player: Player, toast: Toast)
4351

4452
companion object {

surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/toast/ToastDsl.kt renamed to surf-api-velocity/surf-api-velocity-api/src/main/kotlin/dev/slne/surf/surfapi/velocity/api/toast/ToastVelocityDsl.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
package dev.slne.surf.surfapi.core.api.toast
1+
package dev.slne.surf.surfapi.velocity.api.toast
22

33
import com.github.retrooper.packetevents.protocol.item.type.ItemType
44
import com.github.retrooper.packetevents.protocol.item.type.ItemTypes
55
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
6+
import dev.slne.surf.surfapi.core.api.toast.Toast
7+
import dev.slne.surf.surfapi.core.api.toast.ToastService
8+
import dev.slne.surf.surfapi.core.api.toast.ToastStyle
69

7-
class ToastBuilder {
10+
class ToastVelocityBuilder {
811
private var icon: ItemType = ItemTypes.STONE
912
private var text: SurfComponentBuilder.() -> Unit = {}
1013
private var style: ToastStyle = ToastStyle.TASK
1114

12-
fun icon(packetType: ItemType) {
13-
this.icon = packetType
15+
fun icon(iconType: ItemType) {
16+
this.icon = iconType
1417
}
1518

1619
fun text(block: SurfComponentBuilder.() -> Unit) {
@@ -28,7 +31,7 @@ class ToastBuilder {
2831
)
2932
}
3033

31-
fun toast(block: ToastBuilder.() -> Unit): Toast {
32-
return ToastBuilder().apply(block).build()
34+
fun toast(block: ToastVelocityBuilder.() -> Unit): Toast {
35+
return ToastVelocityBuilder().apply(block).build()
3336
}
3437

0 commit comments

Comments
 (0)