From be8bf64eac13c0787cb4b6281898bf5ce91b6fed Mon Sep 17 00:00:00 2001
From: rafal <63915083+rchomczyk@users.noreply.github.com>
Date: Sat, 16 Nov 2024 18:12:49 +0100
Subject: [PATCH 1/8] Add module for kotlin extension
---
.idea/gradle.xml | 1 +
.idea/kotlinc.xml | 2 +-
buildSrc/src/main/kotlin/honey-kotlin.gradle.kts | 14 ++++++++++++++
honey-kt-extension/build.gradle.kts | 14 ++++++++++++++
.../src/dev/shiza/honey/dispatcher.kt | 4 ++++
settings.gradle.kts | 4 +++-
6 files changed, 37 insertions(+), 2 deletions(-)
create mode 100644 buildSrc/src/main/kotlin/honey-kotlin.gradle.kts
create mode 100644 honey-kt-extension/build.gradle.kts
create mode 100644 honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 10d2912..bb8d63b 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -22,6 +22,7 @@
+
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index 148fdd2..c224ad5 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/honey-kotlin.gradle.kts b/buildSrc/src/main/kotlin/honey-kotlin.gradle.kts
new file mode 100644
index 0000000..699d6ce
--- /dev/null
+++ b/buildSrc/src/main/kotlin/honey-kotlin.gradle.kts
@@ -0,0 +1,14 @@
+plugins {
+ `java-library`
+}
+
+sourceSets {
+ main {
+ java.setSrcDirs(listOf("src"))
+ resources.setSrcDirs(emptyList())
+ }
+ test {
+ java.setSrcDirs(emptyList())
+ resources.setSrcDirs(emptyList())
+ }
+}
\ No newline at end of file
diff --git a/honey-kt-extension/build.gradle.kts b/honey-kt-extension/build.gradle.kts
new file mode 100644
index 0000000..0c31ee9
--- /dev/null
+++ b/honey-kt-extension/build.gradle.kts
@@ -0,0 +1,14 @@
+plugins {
+ `honey-kotlin`
+ `honey-publish`
+ `honey-repositories`
+ kotlin("jvm") version "2.0.21"
+}
+
+honeyPublish {
+ artifactId = "honey-kt-extension"
+}
+
+kotlin {
+ jvmToolchain(17)
+}
\ No newline at end of file
diff --git a/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt b/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
new file mode 100644
index 0000000..86c2a12
--- /dev/null
+++ b/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
@@ -0,0 +1,4 @@
+package dev.shiza.honey
+
+class dispatcher {
+}
\ No newline at end of file
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 97ac85a..6818302 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,4 +1,6 @@
rootProject.name = "honey"
include(":honey-common")
+include(":honey-kt-extension")
+
// Uncomment in case if you would like to run test plugin
-include(":honey-test-plugin")
+// include(":honey-test-plugin")
\ No newline at end of file
From 62596bf0a17d6dd39cd4e0869403aa4ac8ea3466 Mon Sep 17 00:00:00 2001
From: Damian
Date: Sat, 16 Nov 2024 19:25:40 +0100
Subject: [PATCH 2/8] Add kotlin extension (1)
---
.../src/dev/shiza/honey/title.kt | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 honey-kt-extension/src/dev/shiza/honey/title.kt
diff --git a/honey-kt-extension/src/dev/shiza/honey/title.kt b/honey-kt-extension/src/dev/shiza/honey/title.kt
new file mode 100644
index 0000000..ecd0db9
--- /dev/null
+++ b/honey-kt-extension/src/dev/shiza/honey/title.kt
@@ -0,0 +1,73 @@
+import dev.shiza.honey.dispatcher.TitleMessageDispatcher
+import dev.shiza.honey.dispatcher.MessageDispatcher
+import dev.shiza.honey.message.Message
+import net.kyori.adventure.audience.Audience
+import net.kyori.adventure.text.Component
+
+typealias TitleConfigurer = TitleMessageDispatcher.() -> Unit
+typealias MessageConfigurer = MessageDispatcher.() -> Unit
+
+fun times(fadeIn: Int, stay: Int, fadeOut: Int): Triple =
+ Triple(fadeIn, stay, fadeOut)
+
+
+fun TitleMessageDispatcher.createTitle(
+ recipient: Audience,
+ titleConfig: MessageConfigurer,
+ subtitleConfig: MessageConfigurer,
+ fadeIn: Int,
+ stay: Int,
+ fadeOut: Int
+): MessageDispatcher =
+ createTitle()
+ .recipient(recipient)
+ .title { base -> base.apply(titleConfig) }
+ .subtitle { base -> base.apply(subtitleConfig) }
+ .times(fadeIn, stay, fadeOut)
+
+fun Audience.createTitle(
+ titleConfig: MessageConfigurer,
+ subtitleConfig: MessageConfigurer,
+ fadeIn: Int,
+ stay: Int,
+ fadeOut: Int
+): TitleMessageDispatcher =
+ createTitle()
+ .recipient(this)
+ .title { base -> base.apply(titleConfig) }
+ .subtitle { base -> base.apply(subtitleConfig) }
+ .times(fadeIn, stay, fadeOut)
+
+fun Player.createTitle(
+ titleConfig: MessageConfigurer,
+ subtitleConfig: MessageConfigurer,
+ fadeIn: Int,
+ stay: Int,
+ fadeOut: Int
+): TitleMessageDispatcher =
+ createTitle()
+ .recipient(this)
+ .title { base -> base.apply(titleConfig) }
+ .subtitle { base -> base.apply(subtitleConfig) }
+ .times(fadeIn, stay, fadeOut)
+
+
+fun TitleConfigurer.withFormattedTitle(messageFormatter: MessageFormatter): TitleMessageDispatcher =
+ this.title { base ->
+ base.apply { messageFormatter.format(this) }
+ }
+
+fun Audience.createTitle(
+ messageFormatter: MessageFormatter,
+ titleConfig: MessageConfigurer,
+ subtitleConfig: MessageConfigurer,
+ fadeIn: Int,
+ stay: Int,
+ fadeOut: Int
+): TitleMessageDispatcher =
+ createTitle()
+ .recipient(this)
+ .withFormattedTitle(messageFormatter)
+ .title { base -> base.apply(titleConfig) }
+ .subtitle { base -> base.apply(subtitleConfig) }
+ .times(fadeIn, stay, fadeOut)
From 033a9fbdbe147ac899c80573f801d4779d68f11a Mon Sep 17 00:00:00 2001
From: Damian
Date: Sat, 16 Nov 2024 19:26:11 +0100
Subject: [PATCH 3/8] Add kotlin extension (2)
---
.../src/dev/shiza/honey/audience.kt | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 honey-kt-extension/src/dev/shiza/honey/audience.kt
diff --git a/honey-kt-extension/src/dev/shiza/honey/audience.kt b/honey-kt-extension/src/dev/shiza/honey/audience.kt
new file mode 100644
index 0000000..dc2fa1c
--- /dev/null
+++ b/honey-kt-extension/src/dev/shiza/honey/audience.kt
@@ -0,0 +1,39 @@
+import dev.shiza.honey.dispatcher.AdventureMessageDispatcher
+import dev.shiza.honey.message.Message
+import net.kyori.adventure.audience.Audience
+import net.kyori.adventure.text.Component
+
+typealias MessageFormatter = MessageFormatter
+typealias MessageDispatcher = MessageDispatcher
+
+fun AdventureMessageDispatcher.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ Audience.empty(),
+ Audience::sendMessage
+ )
+
+fun AdventureMessageDispatcher.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ Audience.empty(),
+ Audience::sendActionBar
+ )
+
+fun Audience.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ this,
+ Audience::sendMessage
+ )
+
+fun Audience.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ this,
+ Audience::sendActionBar
+ )
From 3a61b5a83b259b9d0283dd7738ec38a077cbd057 Mon Sep 17 00:00:00 2001
From: Damian
Date: Sat, 16 Nov 2024 19:27:05 +0100
Subject: [PATCH 4/8] Add kotlin extension (3)
---
.../src/dev/shiza/honey/player.kt | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 honey-kt-extension/src/dev/shiza/honey/player.kt
diff --git a/honey-kt-extension/src/dev/shiza/honey/player.kt b/honey-kt-extension/src/dev/shiza/honey/player.kt
new file mode 100644
index 0000000..b312ce4
--- /dev/null
+++ b/honey-kt-extension/src/dev/shiza/honey/player.kt
@@ -0,0 +1,25 @@
+import dev.shiza.honey.dispatcher.AdventureMessageDispatcher
+import dev.shiza.honey.message.Message
+import net.kyori.adventure.audience.Audience
+import net.kyori.adventure.text.Component
+import org.bukkit.entity.Player
+
+typealias MessageFormatter = MessageFormatter
+typealias MessageDispatcher = MessageDispatcher
+
+
+fun Player.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ this,
+ Audience::sendMessage
+ )
+
+fun Player.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+ MessageBaseDispatcher(
+ messageFormatter,
+ Message.blank(),
+ this,
+ Audience::sendActionBar
+ )
From 02cc31cd9bc32a357bf44652e042f0adbaf55f0d Mon Sep 17 00:00:00 2001
From: Damian
Date: Sat, 16 Nov 2024 21:43:46 +0100
Subject: [PATCH 5/8] Add kotlin extension (4)
---
honey-kt-extension/src/dev/shiza/honey/audience.kt | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/honey-kt-extension/src/dev/shiza/honey/audience.kt b/honey-kt-extension/src/dev/shiza/honey/audience.kt
index dc2fa1c..b17d51f 100644
--- a/honey-kt-extension/src/dev/shiza/honey/audience.kt
+++ b/honey-kt-extension/src/dev/shiza/honey/audience.kt
@@ -3,10 +3,9 @@ import dev.shiza.honey.message.Message
import net.kyori.adventure.audience.Audience
import net.kyori.adventure.text.Component
-typealias MessageFormatter = MessageFormatter
typealias MessageDispatcher = MessageDispatcher
-fun AdventureMessageDispatcher.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+fun AdventureMessageDispatcher.createChat(): MessageDispatcher =
MessageBaseDispatcher(
messageFormatter,
Message.blank(),
@@ -14,7 +13,7 @@ fun AdventureMessageDispatcher.createChat(messageFormatter: MessageFormatter): M
Audience::sendMessage
)
-fun AdventureMessageDispatcher.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+fun AdventureMessageDispatcher.createActionBar(): MessageDispatcher =
MessageBaseDispatcher(
messageFormatter,
Message.blank(),
@@ -22,7 +21,7 @@ fun AdventureMessageDispatcher.createActionBar(messageFormatter: MessageFormatte
Audience::sendActionBar
)
-fun Audience.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+fun Audience.createChat(): MessageDispatcher =
MessageBaseDispatcher(
messageFormatter,
Message.blank(),
@@ -30,7 +29,7 @@ fun Audience.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
Audience::sendMessage
)
-fun Audience.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+fun Audience.createActionBar(): MessageDispatcher =
MessageBaseDispatcher(
messageFormatter,
Message.blank(),
From 0bb68f681ea9968aabf650b7fdb7e0c153b22aca Mon Sep 17 00:00:00 2001
From: Damian
Date: Sat, 16 Nov 2024 21:45:53 +0100
Subject: [PATCH 6/8] Add kotlin extension (5)
---
.../src/dev/shiza/honey/title.kt | 20 -------------------
1 file changed, 20 deletions(-)
diff --git a/honey-kt-extension/src/dev/shiza/honey/title.kt b/honey-kt-extension/src/dev/shiza/honey/title.kt
index ecd0db9..7aa45f1 100644
--- a/honey-kt-extension/src/dev/shiza/honey/title.kt
+++ b/honey-kt-extension/src/dev/shiza/honey/title.kt
@@ -51,23 +51,3 @@ fun Player.createTitle(
.subtitle { base -> base.apply(subtitleConfig) }
.times(fadeIn, stay, fadeOut)
-
-fun TitleConfigurer.withFormattedTitle(messageFormatter: MessageFormatter): TitleMessageDispatcher =
- this.title { base ->
- base.apply { messageFormatter.format(this) }
- }
-
-fun Audience.createTitle(
- messageFormatter: MessageFormatter,
- titleConfig: MessageConfigurer,
- subtitleConfig: MessageConfigurer,
- fadeIn: Int,
- stay: Int,
- fadeOut: Int
-): TitleMessageDispatcher =
- createTitle()
- .recipient(this)
- .withFormattedTitle(messageFormatter)
- .title { base -> base.apply(titleConfig) }
- .subtitle { base -> base.apply(subtitleConfig) }
- .times(fadeIn, stay, fadeOut)
From 0b616370e4b575ab0a799aa6a0ddf3ba3ffd4e1d Mon Sep 17 00:00:00 2001
From: rafal <63915083+rchomczyk@users.noreply.github.com>
Date: Sat, 16 Nov 2024 22:58:13 +0100
Subject: [PATCH 7/8] Add kotlin extension (6)
---
.idea/gradle.xml | 1 -
honey-kt-extension/build.gradle.kts | 9 +++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index bb8d63b..4a3641f 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -23,7 +23,6 @@
-
diff --git a/honey-kt-extension/build.gradle.kts b/honey-kt-extension/build.gradle.kts
index 0c31ee9..ec3bcfb 100644
--- a/honey-kt-extension/build.gradle.kts
+++ b/honey-kt-extension/build.gradle.kts
@@ -5,6 +5,15 @@ plugins {
kotlin("jvm") version "2.0.21"
}
+repositories {
+ maven("https://repo.papermc.io/repository/maven-public/")
+}
+
+dependencies {
+ compileOnly(project(":honey-common"))
+ compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
+}
+
honeyPublish {
artifactId = "honey-kt-extension"
}
From 6dc1c8fb55cc4916c8c7efe96f44403d96ce2992 Mon Sep 17 00:00:00 2001
From: rafal <63915083+rchomczyk@users.noreply.github.com>
Date: Sat, 16 Nov 2024 23:15:27 +0100
Subject: [PATCH 8/8] Add kotlin extension (7)
---
README.md | 88 ++++++++++++++++---
.../src/dev/shiza/honey/audience.kt | 28 ++----
.../src/dev/shiza/honey/dispatcher.kt | 4 -
.../src/dev/shiza/honey/player.kt | 21 ++---
.../src/dev/shiza/honey/title.kt | 27 +++---
.../src/dev/shiza/honey/types.kt | 9 ++
6 files changed, 111 insertions(+), 66 deletions(-)
delete mode 100644 honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
create mode 100644 honey-kt-extension/src/dev/shiza/honey/types.kt
diff --git a/README.md b/README.md
index e7c4b04..71b6df5 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ A message library, which focuses on simplicity and flexibility.
### Get started
-#### Gradle (kts)
+#### Gradle DSL (kts) || std
##### Add repository
@@ -16,12 +16,20 @@ A message library, which focuses on simplicity and flexibility.
maven("https://repo.shiza.dev/releases")
```
+```groovy
+maven { url 'https://repo.shiza.dev/releases' }
+```
+
##### Add dependency
```kotlin
implementation("dev.shiza:honey:2.0.0")
```
+```groovy
+implementation 'dev.shiza:honey:2.0.0'
+```
+
#### Maven
##### Add repository
@@ -41,32 +49,86 @@ implementation("dev.shiza:honey:2.0.0")
```
-### Use case
+
+
+### Use case Java
A showcase of how to use *honey*, can be found in [honey-test-plugin](honey-test-plugin) module.
+## With Formatter placeholder:
```java
-// * sending a message as title with all honey features
-AdventureMessageDispatcher.createTitle()
+
+/* for titles::audience */
+dispatcher.createTitle()
.recipient(event.getPlayer())
- .title(it -> it.template(formatter, "Hello!"))
- .subtitle(it -> it.template(formatter, "It is a pleasure to see you there {{player.getName}}")
+ .title(it -> it.template("Hello!"))
+ .subtitle(it -> it.template("It is a pleasure to see you there {{player.getName}}")
.variable("player", event.getPlayer()))
.times(2, 4, 2)
.dispatch();
-// * sending a message as chat message with all honey features
-AdventureMessageDispatcher.createChat()
+/* for chat::audience */
+dispatcher.createChat()
.recipient(Bukkit.getServer())
- .template(formatter, "{{player.getName}} has joined the server!")
+ .template("{{player.getName}} has joined the server!")
.variable("player", event.getPlayer())
.dispatch();
-// * sending a message as action bar with predefined message without any placeholder support
-AdventureMessageDispatcher.createActionBar()
+/* for actionbar::audience */
+dispatcher.createActionBar()
.recipient(event.getPlayer())
- .template(Component.text("Honey is great, isn't it?"))
+ .template("Honey is great, isn't it?")
.dispatch();
```
-
+## Without formatter, plain template:
+```java
+ AdventureMessageDispatcher.createChat()
+ .recipient(Bukkit.getServer())
+ .template(Component.text("Somebody joined to the server!").color(NamedTextColor.RED))
+ .dispatch();
+
+ AdventureMessageDispatcher.createActionBar()
+ .recipient(event.getPlayer())
+ .template(formatter, "Honey is great, isn't it?")
+ .dispatch();
+ }
+```
+
+### Use case Kotlin
+```kotlin
+AdventureMessageDispatcher.createChat()
+ .recipient(event.player)
+ .template(Component.text("Hello!"))
+ .dispatch()
+
+AdventureMessageDispatcher.createActionBar()
+ .recipient(event.player)
+ .template(Component.text("This is an action bar message!"))
+ .dispatch()
+
+/* player::audience */
+player.createChat()
+ .template(Component.text("A custom chat message"))
+ .dispatch()
+
+player.createActionBar()
+ .template(Component.text("This is a custom action bar"))
+ .dispatch()
+
+AdventureMessageDispatcher.createTitle()
+ .recipient(event.player)
+ .title { it.template(Component.text("Hello!")) }
+ .subtitle { it.template(Component.text("It's great to see you!")) }
+ .times(2, 4, 2)
+ .dispatch()
+```
+
+### Dispatcher Synchronously vs Asynchronously:
+- [dispatch](https://github.com/rchomczyk/honey-common/src/dev/shiza/honey/message/dispatcher/MessageBaseDispatcher.java#L71)
+ This method immediately delivers the message synchronously. It calls the deliver function with the rendered message and the recipient, and the action is completed immediately.
+
+- [dispatchAsync](https://github.com/rchomczyk/honey-common/src/dev/shiza/honey/message/dispatcher/MessageBaseDispatcher.java#L76)
+ This method delivers the message asynchronously. It returns a CompletableFuture that performs the message rendering in the background and then delivers the result once it's ready. It allows non-blocking behavior and handles exceptions asynchronously.
+```
+
diff --git a/honey-kt-extension/src/dev/shiza/honey/audience.kt b/honey-kt-extension/src/dev/shiza/honey/audience.kt
index b17d51f..7973759 100644
--- a/honey-kt-extension/src/dev/shiza/honey/audience.kt
+++ b/honey-kt-extension/src/dev/shiza/honey/audience.kt
@@ -1,38 +1,28 @@
-import dev.shiza.honey.dispatcher.AdventureMessageDispatcher
-import dev.shiza.honey.message.Message
+import dev.shiza.honey.TypedMessageDispatcher
+import dev.shiza.honey.adventure.message.dispatcher.AdventureMessageDispatcher
+import dev.shiza.honey.message.dispatcher.MessageBaseDispatcher
import net.kyori.adventure.audience.Audience
-import net.kyori.adventure.text.Component
-typealias MessageDispatcher = MessageDispatcher
-
-fun AdventureMessageDispatcher.createChat(): MessageDispatcher =
+fun AdventureMessageDispatcher.createChat(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
Audience.empty(),
Audience::sendMessage
)
-fun AdventureMessageDispatcher.createActionBar(): MessageDispatcher =
+fun AdventureMessageDispatcher.createActionBar(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
Audience.empty(),
Audience::sendActionBar
)
-fun Audience.createChat(): MessageDispatcher =
+fun Audience.createChat(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
- this,
+ this,
Audience::sendMessage
)
-fun Audience.createActionBar(): MessageDispatcher =
+fun Audience.createActionBar(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
- this,
+ this,
Audience::sendActionBar
)
diff --git a/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt b/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
deleted file mode 100644
index 86c2a12..0000000
--- a/honey-kt-extension/src/dev/shiza/honey/dispatcher.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package dev.shiza.honey
-
-class dispatcher {
-}
\ No newline at end of file
diff --git a/honey-kt-extension/src/dev/shiza/honey/player.kt b/honey-kt-extension/src/dev/shiza/honey/player.kt
index b312ce4..aed9780 100644
--- a/honey-kt-extension/src/dev/shiza/honey/player.kt
+++ b/honey-kt-extension/src/dev/shiza/honey/player.kt
@@ -1,25 +1,16 @@
-import dev.shiza.honey.dispatcher.AdventureMessageDispatcher
-import dev.shiza.honey.message.Message
+import dev.shiza.honey.TypedMessageDispatcher
+import dev.shiza.honey.message.dispatcher.MessageBaseDispatcher
import net.kyori.adventure.audience.Audience
-import net.kyori.adventure.text.Component
import org.bukkit.entity.Player
-typealias MessageFormatter = MessageFormatter
-typealias MessageDispatcher = MessageDispatcher
-
-
-fun Player.createChat(messageFormatter: MessageFormatter): MessageDispatcher =
+fun Player.createChat(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
- this,
+ this,
Audience::sendMessage
)
-fun Player.createActionBar(messageFormatter: MessageFormatter): MessageDispatcher =
+fun Player.createActionBar(): TypedMessageDispatcher =
MessageBaseDispatcher(
- messageFormatter,
- Message.blank(),
- this,
+ this,
Audience::sendActionBar
)
diff --git a/honey-kt-extension/src/dev/shiza/honey/title.kt b/honey-kt-extension/src/dev/shiza/honey/title.kt
index 7aa45f1..596cb61 100644
--- a/honey-kt-extension/src/dev/shiza/honey/title.kt
+++ b/honey-kt-extension/src/dev/shiza/honey/title.kt
@@ -1,25 +1,22 @@
-import dev.shiza.honey.dispatcher.TitleMessageDispatcher
-import dev.shiza.honey.dispatcher.MessageDispatcher
-import dev.shiza.honey.message.Message
+import dev.shiza.honey.MessageConfigurer
+import dev.shiza.honey.adventure.message.dispatcher.AdventureMessageDispatcher
+import dev.shiza.honey.message.dispatcher.TitleMessageDispatcher
import net.kyori.adventure.audience.Audience
import net.kyori.adventure.text.Component
+import org.bukkit.entity.Player
-typealias TitleConfigurer = TitleMessageDispatcher.() -> Unit
-typealias MessageConfigurer = MessageDispatcher.() -> Unit
-
-fun times(fadeIn: Int, stay: Int, fadeOut: Int): Triple =
+fun times(fadeIn: Int, stay: Int, fadeOut: Int): Triple =
Triple(fadeIn, stay, fadeOut)
-
-fun TitleMessageDispatcher.createTitle(
+fun AdventureMessageDispatcher.createTitle(
recipient: Audience,
titleConfig: MessageConfigurer,
subtitleConfig: MessageConfigurer,
fadeIn: Int,
stay: Int,
fadeOut: Int
-): MessageDispatcher =
- createTitle()
+): TitleMessageDispatcher =
+ AdventureMessageDispatcher.createTitle()
.recipient(recipient)
.title { base -> base.apply(titleConfig) }
.subtitle { base -> base.apply(subtitleConfig) }
@@ -31,8 +28,8 @@ fun Audience.createTitle(
fadeIn: Int,
stay: Int,
fadeOut: Int
-): TitleMessageDispatcher =
- createTitle()
+): TitleMessageDispatcher =
+ AdventureMessageDispatcher.createTitle()
.recipient(this)
.title { base -> base.apply(titleConfig) }
.subtitle { base -> base.apply(subtitleConfig) }
@@ -44,8 +41,8 @@ fun Player.createTitle(
fadeIn: Int,
stay: Int,
fadeOut: Int
-): TitleMessageDispatcher =
- createTitle()
+): TitleMessageDispatcher =
+ AdventureMessageDispatcher.createTitle()
.recipient(this)
.title { base -> base.apply(titleConfig) }
.subtitle { base -> base.apply(subtitleConfig) }
diff --git a/honey-kt-extension/src/dev/shiza/honey/types.kt b/honey-kt-extension/src/dev/shiza/honey/types.kt
new file mode 100644
index 0000000..7e6dc6f
--- /dev/null
+++ b/honey-kt-extension/src/dev/shiza/honey/types.kt
@@ -0,0 +1,9 @@
+package dev.shiza.honey
+
+import dev.shiza.honey.message.dispatcher.MessageDispatcher
+import net.kyori.adventure.audience.Audience
+import net.kyori.adventure.text.Component
+
+typealias TypedMessageDispatcher = MessageDispatcher
+
+typealias MessageConfigurer = TypedMessageDispatcher.() -> Unit