Skip to content

Commit 82f36eb

Browse files
committed
✨ feat(minestom): add RabbitMQ Minestom integration with entry point and instance management
1 parent 9fc5664 commit 82f36eb

6 files changed

Lines changed: 72 additions & 1 deletion

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
kotlin.code.style=official
22
kotlin.stdlib.default.dependency=false
33
org.gradle.parallel=true
4-
version=1.6.3
4+
version=1.6.4

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ include("surf-rabbitmq-common")
2121

2222
include("surf-rabbitmq-paper")
2323
include("surf-rabbitmq-velocity")
24+
include("surf-rabbitmq-minestom")
2425
include("surf-rabbitmq-ksp")
2526

2627
val isCi = providers.environmentVariable("CI").isPresent
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import dev.slne.surf.api.gradle.util.slneReleases
2+
3+
plugins {
4+
id("dev.slne.surf.api.gradle.minestom")
5+
}
6+
7+
dependencies {
8+
api(projects.surfRabbitmqApi.surfRabbitmqClientApi)
9+
api(projects.surfRabbitmqClient)
10+
}
11+
12+
publishing {
13+
repositories {
14+
slneReleases()
15+
}
16+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.slne.surf.rabbitmq
2+
3+
import com.google.auto.service.AutoService
4+
import dev.slne.surf.rabbitmq.api.internal.RabbitMQInstance
5+
import dev.slne.surf.rabbitmq.common.RabbitMQCommonInstance
6+
import java.nio.file.Path
7+
8+
@AutoService(RabbitMQInstance::class)
9+
class MinestomRabbitMqInstance: RabbitMQCommonInstance() {
10+
override val dataPath: Path get() = RabbitMqMinestomEntrypoint.dataPath
11+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package dev.slne.surf.rabbitmq
2+
3+
import com.google.inject.Inject
4+
import com.google.inject.Singleton
5+
import dev.slne.minestom.lobby.api.plugin.MinestomPluginEntrypoint
6+
import dev.slne.minestom.lobby.api.plugin.annotation.DataDirectory
7+
import dev.slne.surf.rabbitmq.common.RabbitMQCommonInstance
8+
import java.nio.file.Path
9+
10+
@Singleton
11+
class RabbitMqMinestomEntrypoint @Inject constructor(
12+
@DataDirectory path: Path
13+
) : MinestomPluginEntrypoint {
14+
15+
init {
16+
dataPath = path
17+
}
18+
19+
override suspend fun start() {
20+
RabbitMQCommonInstance.get().onLoad()
21+
RabbitMQCommonInstance.get().onEnable()
22+
}
23+
24+
override suspend fun stop() {
25+
RabbitMQCommonInstance.get().onDisable()
26+
}
27+
28+
companion object {
29+
lateinit var dataPath: Path
30+
}
31+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package dev.slne.surf.rabbitmq
2+
3+
import com.google.auto.service.AutoService
4+
import dev.slne.minestom.lobby.api.plugin.MinestomPlugin
5+
import dev.slne.minestom.lobby.api.plugin.annotation.MinestomPluginMeta
6+
7+
@AutoService(MinestomPlugin::class)
8+
@MinestomPluginMeta(
9+
"surf-rabbitmq-minestom",
10+
dependsOn = ["surf-api-minestom"]
11+
)
12+
class RabbitMqMinestomPlugin : MinestomPlugin(RabbitMqMinestomEntrypoint::class.java)

0 commit comments

Comments
 (0)