Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
5bfca94
build(deps): bump org.gradle.toolchains.foojay-resolver-convention
dependabot[bot] Jun 17, 2024
9fea785
added kyori adventure libs
paulkczw Jul 14, 2024
e1358d6
added executor api
paulkczw Jul 14, 2024
9a9b216
added packets
paulkczw Jul 14, 2024
ad4cea8
added packet listeners
paulkczw Jul 14, 2024
6610e6a
added executor impl
paulkczw Jul 14, 2024
50f92a9
impl for bukkit, bungeecord, velocity, minestom
paulkczw Jul 14, 2024
da52497
node impl
paulkczw Jul 14, 2024
1250a9c
updated version to snapshot
paulkczw Jul 14, 2024
169f4d1
Merge pull request #90 from RediCloud/feat/player-executor
paulkczw Jul 14, 2024
e264576
Merge pull request #82 from RediCloud/dependabot/gradle/dev/org.gradl…
paulkczw Jul 14, 2024
05f0eb9
refactor: api
paulkczw Jul 14, 2024
faac76b
Merge branch 'dev' of https://github.com/RediCloud/cloud-v2 into dev
paulkczw Jul 14, 2024
0b690b2
fix: error message format
paulkczw Jul 20, 2024
473c29f
Add Version 1.8.8 Spigot
abgxhoben Jul 21, 2024
fad22f4
Add 1.16.4 Spigot Version
abgxhoben Jul 21, 2024
7357890
Add 1.16.3 Spigot Version
abgxhoben Jul 21, 2024
ba0525a
Add 1.16.2 Spigot Version
abgxhoben Jul 21, 2024
afafdb5
Add 1.16.1 Spigot Version
abgxhoben Jul 21, 2024
6fd2472
Add 1.15.2 - 1.15 Spigot Version
abgxhoben Jul 21, 2024
7f71a7f
Add 1.14 - 1.14.4 Spigot Version
abgxhoben Jul 22, 2024
2adec40
Add 1.13 - 1.13.2 Spigot Version
abgxhoben Jul 22, 2024
59be7d8
Add 1.9.4 - 1.12.2 Spigot Version
abgxhoben Jul 22, 2024
b360135
added ingame service status messages
paulkczw Jul 22, 2024
b2fe6be
added click event to ingame notifications and fixed colors
paulkczw Jul 22, 2024
88092b9
fixed notification click command
paulkczw Jul 22, 2024
2b9bed6
Merge pull request #91 from abgxhoben/dev
paulkczw Jul 22, 2024
057517c
fix: duplicated ingame status notifications
paulkczw Jul 24, 2024
683ce98
fix: typo connector download messages
paulkczw Jul 24, 2024
0612faa
Merge branch 'dev' of https://github.com/RediCloud/cloud-v2 into dev
paulkczw Jul 24, 2024
a64edf9
Merge branch 'master' into dev
paulkczw Jul 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
649 changes: 648 additions & 1 deletion api-files/versions.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions apis/base-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ val publishToRepository by extra(true)
dependencies {
compileOnly(project(":utils"))
compileOnly(project(":logging"))
compileOnly(BuildDependencies.KYORI_ADVENTURE_API)
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.module
package dev.redicloud.api.events.internal.module

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.module
package dev.redicloud.api.events.internal.module

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node
package dev.redicloud.api.events.internal.node

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node
package dev.redicloud.api.events.internal.node

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node
package dev.redicloud.api.events.internal.node

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node
package dev.redicloud.api.events.internal.node

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node
package dev.redicloud.api.events.internal.node

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node.file
package dev.redicloud.api.events.internal.node.file

import dev.redicloud.api.service.ServiceId

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node.file
package dev.redicloud.api.events.internal.node.file

import dev.redicloud.api.service.ServiceId

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.node.file
package dev.redicloud.api.events.internal.node.file

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.player
package dev.redicloud.api.events.internal.player

import java.util.UUID

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.player
package dev.redicloud.api.events.internal.player

import java.util.UUID

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.player
package dev.redicloud.api.events.internal.player

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.player
package dev.redicloud.api.events.internal.player

import dev.redicloud.api.service.ServiceId
import java.util.UUID
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.service.server.CloudServerState
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.server
package dev.redicloud.api.events.internal.server

import dev.redicloud.api.events.EventFireType
import dev.redicloud.api.service.ServiceId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.template.configuration
package dev.redicloud.api.events.internal.template.configuration

import dev.redicloud.api.events.CloudEvent
import dev.redicloud.api.events.EventFireType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.redicloud.api.events.impl.template.configuration
package dev.redicloud.api.events.internal.template.configuration

import dev.redicloud.api.events.EventFireType
import java.util.UUID
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package dev.redicloud.api.player

import dev.redicloud.api.service.ServiceId
import dev.redicloud.api.service.server.ICloudServer
import net.kyori.adventure.bossbar.BossBar
import net.kyori.adventure.inventory.Book
import net.kyori.adventure.resource.ResourcePackRequest
import net.kyori.adventure.sound.Sound
import java.util.UUID
import net.kyori.adventure.text.Component
import net.kyori.adventure.title.Title

interface ICloudPlayerExecutor {

suspend fun sendMessage(uniqueId: UUID, component: Component)
suspend fun sendMessage(cloudPlayer: ICloudPlayer, component: Component)

suspend fun showBossBar(uniqueId: UUID, bossBar: BossBar)
suspend fun showBossBar(cloudPlayer: ICloudPlayer, bossBar: BossBar)

suspend fun hideBossBar(uniqueId: UUID, bossBar: BossBar)
suspend fun hideBossBar(cloudPlayer: ICloudPlayer, bossBar: BossBar)

suspend fun playSound(uniqueId: UUID, sound: Sound)
suspend fun playSound(cloudPlayer: ICloudPlayer, sound: Sound)

suspend fun stopSound(uniqueId: UUID, sound: Sound)
suspend fun stopSound(cloudPlayer: ICloudPlayer, sound: Sound)

suspend fun showTitle(uniqueId: UUID, title: Title)
suspend fun showTitle(cloudPlayer: ICloudPlayer, title: Title)

suspend fun showBook(uniqueId: UUID, book: Book)
suspend fun showBook(cloudPlayer: ICloudPlayer, book: Book)

suspend fun sendPlayerListHeaderAndFooter(uniqueId: UUID, header: Component, footer: Component)
suspend fun sendPlayerListHeaderAndFooter(cloudPlayer: ICloudPlayer, header: Component, footer: Component)

suspend fun sendResourcePacks(uniqueId: UUID, resourcePackRequest: ResourcePackRequest)
suspend fun sendResourcePacks(cloudPlayer: ICloudPlayer, resourcePackRequest: ResourcePackRequest)

suspend fun connect(uniqueId: UUID, serviceId: ServiceId)
suspend fun connect(uniqueId: UUID, serverName: String)
suspend fun connect(cloudPlayer: ICloudPlayer, serverName: String)
suspend fun connect(cloudPlayer: ICloudPlayer, serviceId: ServiceId)
suspend fun connect(cloudPlayer: ICloudPlayer, server: ICloudServer)

suspend fun kick(uniqueId: UUID, reason: Component)
suspend fun kick(cloudPlayer: ICloudPlayer, reason: Component)

}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ interface ICloudServerRepository {

suspend fun <T : ICloudServer> getRegisteredServers(type: ServiceType): List<T>

suspend fun getFallback(vararg currentServerIds: ServiceId?): ICloudMinecraftServer?
suspend fun getFallback(vararg ignoredServerIds: ServiceId?): ICloudMinecraftServer?

}
7 changes: 6 additions & 1 deletion buildSrc/src/main/kotlin/BuildDependencies.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
object BuildDependencies {
const val CLOUD_VERSION = "2.3.7-RELEASE"
const val CLOUD_VERSION = "2.4.0-SNAPSHOT"
const val CLOUD_LIBLOADER_VERSION = "1.7.0"
const val CLOUD_LIBLOADER_BOOTSTRAP = "dev.redicloud.libloader:libloader-bootstrap:1.7.0"

Expand Down Expand Up @@ -37,6 +37,11 @@ object BuildDependencies {
const val DOCKER_TEST_CONTAINERS = "org.testcontainers:testcontainers:1.19.7"
const val BCPROV = "org.bouncycastle:bcprov-jdk15on:1.70"
const val BCPKIX = "org.bouncycastle:bcpkix-jdk15on:1.70"

const val KYORI_ADVENTURE_API = "net.kyori:adventure-api:4.17.0"
const val KYORI_ADVENTURE_BUKKIT = "net.kyori:adventure-platform-bukkit:4.3.3"
const val KYORI_ADVENTURE_BUNGEECORD = "net.kyori:adventure-platform-bungeecord:4.3.3"
const val KYORI_ADVENTURE_SERIALIZER_GSON = "net.kyori:adventure-text-serializer-gson:4.17.0"
}

fun String.withVersion(version: String): String {
Expand Down
3 changes: 3 additions & 0 deletions connectors/bukkit-connector/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ dependencies {

compileOnly(BuildDependencies.SPIGOT_API)
shade(project(":connectors:bukkit-legacy"))

compileOnly(BuildDependencies.KYORI_ADVENTURE_API)
compileOnly(BuildDependencies.KYORI_ADVENTURE_BUKKIT)
}

val shadowModJar by tasks.creating(ShadowJar::class) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package dev.redicloud.connector.bukkit

import dev.redicloud.api.provider.IServerPlayerProvider
import dev.redicloud.connector.bukkit.player.BukkitPlayerExecutor
import dev.redicloud.connector.bukkit.provider.BukkitScreenProvider
import dev.redicloud.connector.bukkit.provider.BukkitServerPlayerProvider
import dev.redicloud.service.base.player.BasePlayerExecutor
import dev.redicloud.service.minecraft.MinecraftServerService
import dev.redicloud.service.minecraft.provider.AbstractScreenProvider
import kotlinx.coroutines.runBlocking
import net.kyori.adventure.platform.bukkit.BukkitAudiences
import org.bukkit.Bukkit
import org.bukkit.plugin.java.JavaPlugin

Expand All @@ -14,6 +17,7 @@ class BukkitConnector(val plugin: JavaPlugin) : MinecraftServerService<JavaPlugi
internal var bukkitShuttingDown = false
override var playerProvider: IServerPlayerProvider = BukkitServerPlayerProvider()
override val screenProvider: AbstractScreenProvider = BukkitScreenProvider(this.packetManager, this.plugin)
override val playerExecutor: BasePlayerExecutor = BukkitPlayerExecutor(this.plugin, this.playerRepository, this.serverRepository, this.packetManager, this.serviceId)

init {
initApi()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package dev.redicloud.connector.bukkit.player

import dev.redicloud.api.packets.IPacketManager
import dev.redicloud.api.player.ICloudPlayer
import dev.redicloud.api.player.ICloudPlayerRepository
import dev.redicloud.api.service.ServiceId
import dev.redicloud.api.service.server.ICloudServer
import dev.redicloud.api.service.server.ICloudServerRepository
import dev.redicloud.service.base.player.BasePlayerExecutor
import kotlinx.coroutines.runBlocking
import net.kyori.adventure.audience.Audience
import net.kyori.adventure.platform.bukkit.BukkitAudiences
import net.kyori.adventure.text.Component
import org.bukkit.plugin.java.JavaPlugin

class BukkitPlayerExecutor(
private val plugin: JavaPlugin,
playerRepository: ICloudPlayerRepository,
serverRepository: ICloudServerRepository,
packetManager: IPacketManager,
thisServiceId: ServiceId
) : BasePlayerExecutor(playerRepository, serverRepository, packetManager, thisServiceId) {

private var _audience: BukkitAudiences? = null

override fun audience(player: ICloudPlayer): Audience {
if (_audience == null) {
_audience = BukkitAudiences.create(plugin)
}
return _audience!!.player(player.uniqueId)
}

override fun executeConnect(cloudPlayer: ICloudPlayer, server: ICloudServer) {
runBlocking { [email protected](cloudPlayer, server) }
}

override fun executeKick(cloudPlayer: ICloudPlayer, reason: Component) {
runBlocking { [email protected](cloudPlayer, reason) }
}


}
2 changes: 1 addition & 1 deletion connectors/bukkit-connector/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: redicloud-connector
version: 2.3.7-RELEASE
version: 2.4.0-SNAPSHOT
main: dev.redicloud.connector.bukkit.bootstrap.BukkitConnectorBootstrap
author: RediCloud
description: RediCloud Connector Bukkit
2 changes: 2 additions & 0 deletions connectors/bukkit-legacy/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ dependencies {
shade(BuildDependencies.NETTY_COMMON)
shade(BuildDependencies.LOGBACK_CORE.withVersion("1.3.14"))
shade(BuildDependencies.LOGBACK_CLASSIC.withVersion("1.3.14"))
dependency(BuildDependencies.KYORI_ADVENTURE_API)
dependency(BuildDependencies.KYORI_ADVENTURE_BUKKIT)
}
2 changes: 2 additions & 0 deletions connectors/bungeecord-connector/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,6 @@ dependencies {
shade(BuildDependencies.CLOUD_LIBLOADER_BOOTSTRAP)

compileOnly(BuildDependencies.BUNGEECORD_API)
dependency(BuildDependencies.KYORI_ADVENTURE_API)
dependency(BuildDependencies.KYORI_ADVENTURE_BUNGEECORD)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ import dev.redicloud.repository.server.CloudMinecraftServer
import dev.redicloud.service.minecraft.ProxyServerService
import dev.redicloud.service.minecraft.provider.AbstractScreenProvider
import dev.redicloud.api.service.ServiceId
import dev.redicloud.connector.bungeecord.listener.CloudNotificationListeners
import dev.redicloud.connector.bungeecord.player.BungeeCordPlayerExecutor
import dev.redicloud.service.base.player.BasePlayerExecutor
import dev.redicloud.service.minecraft.listener.AbstractCloudNotificationListeners
import kotlinx.coroutines.runBlocking
import net.md_5.bungee.api.ProxyServer
import net.md_5.bungee.api.config.ServerInfo
Expand All @@ -22,6 +26,8 @@ class BungeeCordConnector(
internal var bungeecordShuttingDown: Boolean = false
override var playerProvider: IServerPlayerProvider = BungeeCordServerPlayerProvider()
override val screenProvider: AbstractScreenProvider = BungeeCordScreenProvider(this.packetManager)
override val playerExecutor: BasePlayerExecutor = BungeeCordPlayerExecutor(this.plugin, this.playerRepository, this.serverRepository, this.packetManager, this.serviceId)
override val notificationListeners: AbstractCloudNotificationListeners = CloudNotificationListeners(this.serverRepository, this.nodeRepository, this.eventManager)

init {
initApi()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package dev.redicloud.connector.bungeecord.listener

import dev.redicloud.api.events.IEventManager
import dev.redicloud.api.service.node.ICloudNodeRepository
import dev.redicloud.api.service.server.ICloudServerRepository
import dev.redicloud.service.minecraft.listener.AbstractCloudNotificationListeners
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.TextComponent
import net.kyori.adventure.text.event.ClickEvent
import net.kyori.adventure.text.serializer.bungeecord.BungeeComponentSerializer
import net.md_5.bungee.api.ProxyServer

class CloudNotificationListeners(
serverRepository: ICloudServerRepository,
nodeRepository: ICloudNodeRepository,
eventManager: IEventManager
) : AbstractCloudNotificationListeners(serverRepository, nodeRepository, eventManager) {

override fun sendMessage(permission: String, clickCommand: String?, lambda: (TextComponent.Builder) -> Unit) {
val builder = Component.text()
if (clickCommand != null) {
builder.clickEvent(ClickEvent.runCommand(clickCommand))
}
lambda(builder)
val bungeeCordComponent = BungeeComponentSerializer.get().serialize(builder.build())
ProxyServer.getInstance().players.filter { it.hasPermission(permission) }.forEach {
it.sendMessage(*bungeeCordComponent)
}
}

}
Loading
Loading