Skip to content
Open
13 changes: 8 additions & 5 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
plugins {
kotlin("jvm") version "2.3.0"
kotlin("jvm") version "2.2.20"
kotlin("plugin.serialization") version "2.2.20"
`version-catalog`
`maven-publish`
id("com.gradleup.shadow") version "9.3.0"
}

allprojects {
group = "org.sayandev"
version = "1.10.6.2"
version = "2.0.0-alpha.12"
description = "A modular Kotlin framework for Minecraft: JE"

plugins.apply("maven-publish")
plugins.apply("version-catalog")
plugins.apply("java-library")
plugins.apply("kotlin")
plugins.apply("org.jetbrains.kotlin.jvm")
plugins.apply("org.jetbrains.kotlin.plugin.serialization")
plugins.apply("com.gradleup.shadow")

dependencies {
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.2.20")
}

tasks {
Expand Down Expand Up @@ -141,7 +143,8 @@ subprojects {
if (!project.name.contains("loader") && !project.name.contains("catalog")) {
create<MavenPublication>("maven") {
groupId = rootProject.group as String
from(components["shadow"])
from(components["java"])
// from(components["shadow"])
setPom(this)
}
}
Expand Down
24 changes: 15 additions & 9 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[versions]
# core
kotlin = "2.3.0"
kotlin = "2.2.20"
kotlin-poet = "1.17.0"
snakeyaml = "2.2"
#configurate = "4.3.0"
Expand All @@ -17,17 +17,19 @@ sqlite-jdbc = "3.46.0.0"
h2 = "2.2.224"
mariadb = "3.3.3"
jedis = "5.0.0"
java-websocket = "1.6.0"
reflections = "0.10.2"
hikari = "5.1.0"
guava = "31.1-jre"
gson = "2.11.0"
kotlin-reflect = "2.3.0"
kotlin-reflect = "2.2.20"
netty = "4.1.111.Final"
exposed = "0.61.0"
libby = "2.0.0-SNAPSHOT"
mccoroutines = "2.20.0"
kotlinx-coroutines = "1.10.1"
caffeine = "3.2.0"
kaml = "0.85.0"

# minecraft
adventure-platform = "4.4.1"
Expand Down Expand Up @@ -65,12 +67,12 @@ cloud-kotlin-extensions = { group = "org.incendo", name = "cloud-kotlin-extensio
adventure-api = { group = "net.kyori", name = "adventure-api", version.ref = "adventure" }
adventure-text-minimessage = { group = "net.kyori", name = "adventure-text-minimessage", version.ref = "adventure" }
adventure-text-serializer-gson = { group = "net.kyori", name = "adventure-text-serializer-gson", version.ref = "adventure" }
sayanventure-api = { group = "org.sayandev.sayanventure", name = "sayanventure", version.ref = "sayanventure" }
mysql-connector = { group = "com.mysql", name = "mysql-connector-j", version.ref = "mysql-connector" }
sqlite-jdbc = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqlite-jdbc" }
h2 = { group = "com.h2database", name = "h2", version.ref = "h2" }
mariadb = { group = "org.mariadb.jdbc", name = "mariadb-java-client", version.ref = "mariadb" }
jedis = { group = "redis.clients", name = "jedis", version.ref = "jedis" }
java-websocket = { group = "org.java-websocket", name = "Java-WebSocket", version.ref = "java-websocket" }
reflections = { group = "org.reflections", name = "reflections", version.ref = "reflections" }
hikari = { group = "com.zaxxer", name = "HikariCP", version.ref = "hikari" }
guava = { group = "com.google.guava", name = "guava", version.ref = "guava" }
Expand All @@ -83,6 +85,7 @@ exposed-kotlin-datetime = { group = "org.jetbrains.exposed", name = "exposed-kot
libby = { group = "com.alessiodp.libby", name = "libby-core", version.ref = "libby" }
kotlinx-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core-jvm", version.ref = "kotlinx-coroutines" }
caffeine = { group = "com.github.ben-manes.caffeine", name = "caffeine", version.ref = "caffeine" }
kaml = { group = "com.charleskorn.kaml", name = "kaml", version.ref = "kaml" }

# bukkit
paper = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" }
Expand All @@ -93,7 +96,6 @@ cloud-minecraft-extras = { group = "org.incendo", name = "cloud-minecraft-extras
inventoryframework = { group = "com.github.stefvanschie.inventoryframework", name = "IF", version.ref = "inventoryframework" }
xseries = { group = "com.github.cryptomorin", name = "XSeries", version.ref = "xseries" }
adventure-platform-bukkit = { group = "net.kyori", name = "adventure-platform-bukkit", version.ref = "adventure-platform" }
sayanventure-platform-bukkit = { group = "org.sayandev.sayanventure", name = "sayanventure-bukkit", version.ref = "sayanventure" }
libby-bukkit = { group = "com.alessiodp.libby", name = "libby-bukkit", version.ref = "libby" }
libby-paper = { group = "com.alessiodp.libby", name = "libby-paper", version.ref = "libby" }
pathetic-pathfinder-bukkit = { group = "com.github.patheloper.pathetic", name = "pathetic-mapping", version.ref = "pathetic-pathfinder-bukkit" }
Expand All @@ -117,7 +119,7 @@ cloud-velocity = { group = "org.incendo", name = "cloud-velocity", version.ref =

# proxy - bungeecord
bungeecord = { group = "net.md-5", name = "bungeecord-api", version.ref = "bungeecord" }
sayanventure-platform-bungeecord = { group = "org.sayandev.sayanventure", name = "sayanventure-bungeecord", version.ref = "sayanventure" }
adventure-platform-bungeecord = { group = "net.kyori", name = "adventure-platform-bungeecord", version.ref = "adventure-platform" }
libby-bungee = { group = "com.alessiodp.libby", name = "libby-bungee", version.ref = "libby" }
mccoroutines-bungeecord-api = { group = "com.github.shynixn.mccoroutine", name = "mccoroutine-bungeecord-api", version.ref = "mccoroutines" }
mccoroutines-bungeecord-core = { group = "com.github.shynixn.mccoroutine", name = "mccoroutine-bungeecord-core", version.ref = "mccoroutines" }
Expand Down Expand Up @@ -149,18 +151,21 @@ implementation-core = [
"checker-qual",
"javassist",
"annotations",
"adventure-api",
"adventure-text-minimessage",
"adventure-text-serializer-gson",
# "slf4j-api",
"error_prone_annotations",
"geantyref",
# transitives - end
"kotlin",
# "kotlin",
"kaml",
"snakeyaml",
"configurate-yaml",
"configurate-extra-kotlin",
"cloud-core",
"cloud-kotlin-extensions",
# "cloud-kotlin-coroutines",
"sayanventure-api",
"reflections",
"kotlin-reflect",
"hikari",
Expand All @@ -175,14 +180,15 @@ implementation-core = [
# "h2",
"mariadb",
"jedis",
"java-websocket",
# "caffeine"
]
implementation-bukkit = [
"cloud-paper",
"cloud-minecraft-extras",
"inventoryframework",
"xseries",
"sayanventure-platform-bukkit",
"adventure-platform-bukkit",
"pathetic-pathfinder-bukkit",
"mccoroutines-bukkit-api",
"mccoroutines-bukkit-core",
Expand All @@ -201,7 +207,7 @@ implementation-proxy-velocity = [
"cloud-velocity"
]
implementation-proxy-bungeecord = [
"sayanventure-platform-bungeecord",
"adventure-platform-bungeecord",
"mccoroutines-bungeecord-api",
"mccoroutines-bungeecord-core",
]
3 changes: 3 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,15 @@ include("stickynote-catalog")
include("stickynote-bukkit")
include("stickynote-bukkit:stickynote-bukkit-nms")

include("stickynote-paper")

include("stickynote-proxy")
include("stickynote-proxy:stickynote-proxy-velocity")
include("stickynote-proxy:stickynote-proxy-bungeecord")

include("stickynote-loader")
include("stickynote-loader:stickynote-loader-common")
include("stickynote-loader:stickynote-loader-bukkit")
include("stickynote-loader:stickynote-loader-paper")
include("stickynote-loader:stickynote-loader-bungeecord")
include("stickynote-loader:stickynote-loader-velocity")
2 changes: 1 addition & 1 deletion stickynote-bukkit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
dependencies {
api(libs.libby.bukkit)
api(libs.libby.paper)
api(libs.sayanventure.platform.bukkit)
api(libs.cloud.paper)
api(libs.cloud.minecraft.extras)
api(libs.inventoryframework)
Expand All @@ -11,6 +10,7 @@ dependencies {
api(libs.mccoroutines.bukkit.core)
api(libs.mccoroutines.folia.api)
api(libs.mccoroutines.folia.core)
api(libs.adventure.platform.bukkit)

compileOnlyApi(libs.authlib)
compileOnlyApi(libs.placeholderapi)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.sayandev.stickynote.bukkit.extension

import org.sayandev.sayanventure.adventure.platform.bukkit.MinecraftComponentSerializer
import org.sayandev.sayanventure.adventure.text.Component
import net.kyori.adventure.platform.bukkit.MinecraftComponentSerializer
import net.kyori.adventure.text.Component

fun Component.toNmsComponent(): Any {
return MinecraftComponentSerializer.get().serialize(this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,26 @@ package org.sayandev.stickynote.bukkit.extension

import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import org.sayandev.sayanventure.adventure.text.Component
import org.sayandev.sayanventure.adventure.text.minimessage.tag.resolver.TagResolver
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
import org.sayandev.stickynote.bukkit.utils.AdventureUtils

fun CommandSender.sendComponent(message: String, vararg placeholder: TagResolver) {
AdventureUtils.sendComponent(this, message, *placeholder)
}

fun CommandSender.sendComponent(message: Component, vararg placeholder: TagResolver) {
AdventureUtils.sendComponent(this, message, *placeholder)
}

fun Player.sendComponentActionbar(content: String, vararg placeholder: TagResolver) {
AdventureUtils.sendComponentActionbar(this, content, *placeholder)
}

fun Player.sendComponentActionbar(content: Component, vararg placeholder: TagResolver) {
AdventureUtils.sendComponentActionbar(this, content, *placeholder)
}

fun CommandSender.openBook(title: Component, author: Component, vararg pages: Component) {
AdventureUtils.openBook(this, title, author, *pages)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,57 @@ package org.sayandev.stickynote.bukkit.messaging.publisher

import kotlinx.coroutines.CompletableDeferred
import org.bukkit.entity.Player
import org.sayandev.stickynote.bukkit.StickyNote
import org.sayandev.stickynote.bukkit.messaging.subscriber.PluginMessageSubscribeListener
import org.sayandev.stickynote.bukkit.onlinePlayers
import org.sayandev.stickynote.bukkit.plugin
import org.sayandev.stickynote.core.messaging.publisher.PayloadWrapper
import org.sayandev.stickynote.core.messaging.publisher.PayloadWrapper.Companion.asJson
import org.sayandev.stickynote.core.messaging.publisher.Publisher

abstract class PluginMessagePublisher<P, S>(
namespace: String,
name: String,
val payloadClass: Class<P>,
val resultClass: Class<S>,
import org.sayandev.stickynote.bukkit.warn
import org.sayandev.stickynote.core.messaging.MessageMeta
import org.sayandev.stickynote.core.messaging.PayloadWrapper
import org.sayandev.stickynote.core.messaging.PayloadWrapper.Companion.asJson
import org.sayandev.stickynote.core.messaging.Publisher
import org.sayandev.stickynote.core.messaging.SimpleConnectionMeta

abstract class PluginMessagePublisher<P : Any, R : Any>(
messageMeta: MessageMeta<P, R>,
connectionMeta: SimpleConnectionMeta,
val withSubscriber: Boolean
): Publisher<P, S>(
StickyNote.logger,
namespace,
name
): Publisher<SimpleConnectionMeta, P, R>(
messageMeta,
connectionMeta,
plugin.logger
) {

var subscriberListener: PluginMessageSubscribeListener<P, S>? = null
var subscriberListener: PluginMessageSubscribeListener<P, R>? = null

init {
register(this)
override fun register() {
super.register()
registerChannel()
}

override fun unregister() {
super.unregister()
unregisterChannel()
}

private fun registerChannel() {
plugin.server.messenger.registerOutgoingPluginChannel(plugin, this.id())
plugin.server.messenger.registerOutgoingPluginChannel(plugin, messageMeta.id())
if (withSubscriber) {
subscriberListener = PluginMessageSubscribeListener(namespace, name, payloadClass, resultClass, this)
subscriberListener = PluginMessageSubscribeListener(messageMeta, this)
}
}

private fun unregisterChannel() {
plugin.server.messenger.unregisterOutgoingPluginChannel(plugin, this.id())
plugin.server.messenger.unregisterOutgoingPluginChannel(plugin, messageMeta.id())
if (withSubscriber) {
plugin.server.messenger.unregisterIncomingPluginChannel(plugin, this.id())
plugin.server.messenger.unregisterIncomingPluginChannel(plugin, messageMeta.id())
}
}

suspend fun publish(player: Player, payloadWrapper: PayloadWrapper<P>): CompletableDeferred<S> {
player.sendPluginMessage(plugin, this.id(), payloadWrapper.asJson().toByteArray())
suspend fun publish(player: Player, payloadWrapper: PayloadWrapper<P>): CompletableDeferred<R> {
player.sendPluginMessage(plugin, messageMeta.id(), payloadWrapper.asJson().toByteArray())
return publish(payloadWrapper)
}

abstract fun handle(payload: P): S?
abstract override fun handle(payload: P): R?

}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package org.sayandev.stickynote.bukkit.messaging.publisher

abstract class ProxyPluginMessagePublisher<P, S>(
namespace: String,
name: String,
payloadClass: Class<P>,
resultClass: Class<S>,
): PluginMessagePublisher<P, S>(
namespace,
name,
payloadClass,
resultClass,
true
import org.sayandev.stickynote.core.messaging.MessageMeta
import org.sayandev.stickynote.core.messaging.SimpleConnectionMeta

abstract class ProxyPluginMessagePublisher<P : Any, R : Any>(
messageMeta: MessageMeta<P, R>,
connectionMeta: SimpleConnectionMeta,
): PluginMessagePublisher<P, R>(
messageMeta,
connectionMeta,
false
) {
override fun handle(payload: P): S? {
override fun handle(payload: P): R? {
return null
}
}
Loading