diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 1bec35e5..00000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123c..00000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml
deleted file mode 100644
index 4ea72a91..00000000
--- a/.idea/copilot.data.migration.agent.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.ask.xml b/.idea/copilot.data.migration.ask.xml
deleted file mode 100644
index 7ef04e2e..00000000
--- a/.idea/copilot.data.migration.ask.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.ask2agent.xml b/.idea/copilot.data.migration.ask2agent.xml
deleted file mode 100644
index 1f2ea11e..00000000
--- a/.idea/copilot.data.migration.ask2agent.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml
deleted file mode 100644
index 8648f940..00000000
--- a/.idea/copilot.data.migration.edit.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 78595af7..00000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 40c50f09..1cff6ec9 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
kotlin.code.style=official
kotlin.stdlib.default.dependency=false
org.gradle.parallel=true
-version=4.5.0
\ No newline at end of file
+version=4.5.1
\ No newline at end of file
diff --git a/surf-chat-api/src/main/kotlin/dev/slne/surf/chat/api/processor/PreChatProcessor.kt b/surf-chat-api/src/main/kotlin/dev/slne/surf/chat/api/processor/PreChatProcessor.kt
index 5719a169..a4a6e141 100644
--- a/surf-chat-api/src/main/kotlin/dev/slne/surf/chat/api/processor/PreChatProcessor.kt
+++ b/surf-chat-api/src/main/kotlin/dev/slne/surf/chat/api/processor/PreChatProcessor.kt
@@ -6,4 +6,5 @@ interface PreChatProcessor {
val order: Int
fun process(context: MessageContext): MessageContext
+ suspend fun processAsync(context: MessageContext): MessageContext = process(context)
}
\ No newline at end of file
diff --git a/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/command/direct/DirectMessageCommand.kt b/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/command/direct/DirectMessageCommand.kt
index 97746428..b046d1da 100644
--- a/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/command/direct/DirectMessageCommand.kt
+++ b/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/command/direct/DirectMessageCommand.kt
@@ -212,13 +212,13 @@ object DirectMessageAccess {
}
}
-private fun runPreProcessors(
+private suspend fun runPreProcessors(
original: MessageContext
): MessageContext {
var context = original
chatProcessorRegistry.preChatProcessors.sortedBy { it.order }.forEach { processor ->
- context = processor.process(context)
+ context = processor.processAsync(context)
if (context.isCancelled) {
return context
diff --git a/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/listener/AsyncChatListener.kt b/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/listener/AsyncChatListener.kt
index 0fa250bf..7ab1de9c 100644
--- a/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/listener/AsyncChatListener.kt
+++ b/surf-chat-paper/src/main/kotlin/dev/slne/surf/chat/paper/listener/AsyncChatListener.kt
@@ -11,6 +11,7 @@ import dev.slne.surf.chat.paper.util.cancel
import dev.slne.surf.chat.paper.util.uuidOrNull
import dev.slne.surf.core.api.common.SurfCoreApi
import io.papermc.paper.event.player.AsyncChatEvent
+import kotlinx.coroutines.runBlocking
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import java.time.OffsetDateTime
@@ -36,15 +37,17 @@ object AsyncChatListener : Listener {
MessageType.GLOBAL
)
- val result = runPreProcessors(MessageContext(data, event.isCancelled, event.viewers()))
- data = result.messageData
+ runBlocking {
+ val result = runPreProcessors(MessageContext(data, event.isCancelled, event.viewers()))
+ data = result.messageData
- if (result.isCancelled) {
- event.cancel()
- }
+ if (result.isCancelled) {
+ event.cancel()
+ }
- event.renderer { _, _, _, viewer ->
- viewer.uuidOrNull()?.let { result.render(it, viewer) } ?: event.message()
+ event.renderer { _, _, _, viewer ->
+ viewer.uuidOrNull()?.let { result.render(it, viewer) } ?: event.message()
+ }
}
plugin.launch {
@@ -56,13 +59,13 @@ object AsyncChatListener : Listener {
}
}
- private fun runPreProcessors(
+ private suspend fun runPreProcessors(
original: MessageContext
): MessageContext {
var context = original
chatProcessorRegistry.preChatProcessors.sortedBy { it.order }.forEach { processor ->
- context = processor.process(context)
+ context = processor.processAsync(context)
if (context.isCancelled) {
return context