Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
0dded6e
fix: bug in connection finding process
tillhfm Jan 10, 2025
62bbe5e
refactor: optimize target connection finding process
tillhfm Jan 11, 2025
caf0357
Merge pull request #7 from simplecloudapp/fix/server-connection-finding
tillhfm Jan 11, 2025
c05d083
feat: integrate new cloud api
FllipEis Apr 4, 2025
299ceac
Merge pull request #9 from simplecloudapp/feat/integrate-cloud-api
FllipEis Apr 16, 2025
885ec7e
feat: 1.21.5
FllipEis Apr 17, 2025
24f1d13
feat: 1.21.6
FllipEis Jun 24, 2025
a7eae85
feat: 1.21.7
FllipEis Jun 30, 2025
6c09fd7
feat: waterfall support
FllipEis Jul 12, 2025
7df61f8
feat: 1.21.8 support
FllipEis Aug 3, 2025
a2f0d18
Update release-dev.yml
FllipEis Oct 5, 2025
4593d29
chore: add Minecraft version(s) 1.21.9
SpaceChunksTeam Oct 5, 2025
72364ab
Merge pull request #12 from simplecloudapp/update/mc-1-21-9
FllipEis Oct 5, 2025
e27189f
chore: add Minecraft version(s) 1.21.10
SpaceChunksTeam Oct 9, 2025
554d086
Merge pull request #13 from simplecloudapp/update/mc-1-21-10
FllipEis Oct 9, 2025
d101793
chore: add Minecraft version(s) 1.21.11
SpaceChunksTeam Dec 9, 2025
9459efb
Merge pull request #14 from simplecloudapp/update/mc-1-21-11
FllipEis Dec 9, 2025
776ad37
refactor: cleanup project structure
xXJanisXx Feb 15, 2026
4933b82
feat: basic structure
xXJanisXx Feb 15, 2026
9b116a6
feat: add server registration
xXJanisXx Feb 16, 2026
cf534b4
feat: add bungeecord and waterdog support for server registration
xXJanisXx Feb 16, 2026
96b28b6
chore: some improvements
xXJanisXx Feb 16, 2026
5cc252e
feat: add connection commands
xXJanisXx Feb 19, 2026
1e2aef1
feat: improve server registration
xXJanisXx Feb 19, 2026
b56ce80
feat: server connection
xXJanisXx Feb 19, 2026
d012d5e
chore: small improvements
xXJanisXx Feb 19, 2026
5d5dfca
chore: update readme
xXJanisXx Feb 20, 2026
6e07a5b
chore: bump dependencies
xXJanisXx Mar 7, 2026
785b392
refactor: connection logic
xXJanisXx Mar 7, 2026
ce0172c
feat: improve YamlConfig
xXJanisXx Mar 7, 2026
afb5bac
feat: add connection reload command
xXJanisXx Mar 7, 2026
069e255
chore: remove the prefix from some messages
xXJanisXx Mar 7, 2026
34fd52c
chore: remove unused repositories
xXJanisXx Mar 7, 2026
ddd7906
chore: update copyright year
xXJanisXx Mar 8, 2026
e9a0e44
fix: remove unused permission message
xXJanisXx Mar 8, 2026
c1de1e0
chore: bump gradle to 9.4.0
xXJanisXx Mar 8, 2026
069fd54
chore: bump dependencies
xXJanisXx Mar 27, 2026
3832b4c
feat: add subdomain routing
xXJanisXx Mar 27, 2026
b9e392a
refactor: rename subdomain mappings to routes
xXJanisXx Mar 27, 2026
b771039
feat: add subdomain routing support for bungeecord and waterdogpe
xXJanisXx Mar 27, 2026
9da87ff
refactor: rename subdomain to address and remove enabled option from …
xXJanisXx Apr 1, 2026
98fb354
Merge pull request #20 from simplecloudapp/feat/subdomain-support
xXJanisXx Apr 9, 2026
123696b
chore: bump plugin api
xXJanisXx Apr 9, 2026
7e10e9f
refactor: remove YamlConfig and implement new ConfigurationFactory
xXJanisXx Apr 9, 2026
8bbf2db
feat: add comments in configs
xXJanisXx Apr 9, 2026
3bbed22
chore: bump plugin api to fix enum serialization
xXJanisXx Apr 11, 2026
f563c24
chore: bump config version to 2
xXJanisXx Apr 11, 2026
598554f
feat: ignore list and bump plugin api to support comments in configs
xXJanisXx Apr 11, 2026
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
4 changes: 4 additions & 0 deletions .github/workflows/release-dev.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
name: Create Release with ShadowJars

on:
push:
branches:
- main
- develop
workflow_dispatch:

jobs:
Expand Down
34 changes: 3 additions & 31 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,39 +1,11 @@
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
.idea/

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### Kotlin ###
.kotlin/

### VS Code ###
.vscode/
Expand Down
10 changes: 0 additions & 10 deletions .idea/codeStyles/Project.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/codeStyles/codeStyleConfig.xml

This file was deleted.

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [2024] [SimpleCloud]
Copyright [2024-2026] [SimpleCloud]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,19 @@

> All information about this project can be found in our detailed [documentation][docs-thisproject].

The Server Connection Plugin provides comprehensive player connection management for your network, including network join handling, fallback servers, and navigation commands.
The Server Connection Plugin provides comprehensive player connection management for your network. It automatically registers SimpleCloud v3 servers on your proxy.

## Features

- [x] **Velocity**
- [x] **BungeeCord**
- [x] **Waterdog PE**
- [ ] **Gate**
- [x] **Connection targets**: Connection targets define server groups that players can connect to
- [x] **Matcher Operations**: Match Server names by Operations
- [x] **Server registration**: Automatically registers SimpleCloud servers on your proxy
- [x] **Additional servers**: Add non network servers manually
- [x] **Connection targets**: Define server groups and persistent servers that players can connect to
- [x] **Fallback servers**: Automatically redirect players when a server becomes unavailable
- [x] **Matcher Operations**: Match server names by operations

## Contributing

Expand All @@ -50,11 +54,11 @@ This repository is licensed under [Apache 2.0][license].

[banner]: https://github.com/simplecloudapp/branding/blob/main/readme/banner/plugin/server-connection.png?raw=true

[issue-bug-report]: https://github.com/theSimpleCloud/server-connection-plugin/issues/new?labels=bug&projects=template=01_BUG-REPORT.yml&title=%5BBUG%5D+%3Ctitle%3E
[issue-bug-report]: https://github.com/simplecloudapp/server-connection-plugin/issues/new?labels=bug&projects=template=01_BUG-REPORT.yml&title=%5BBUG%5D+%3Ctitle%3E

[issue-feature-request]: https://github.com/theSimpleCloud/server-connection-plugin/discussions/new?category=ideas
[issue-feature-request]: https://github.com/simplecloudapp/server-connection-plugin/discussions/new?category=ideas

[docs-thisproject]: https://docs.simplecloud.app/plugin/server-connection
[docs-thisproject]: https://docs.simplecloud.app/en/manual/plugin/server-connection

[docs-contribute]: https://docs.simplecloud.app/contribute

Expand Down Expand Up @@ -84,4 +88,4 @@ This repository is licensed under [Apache 2.0][license].

[badge-bluesky]: https://img.shields.io/badge/Follow_@simplecloud.app-d95652.svg?style=flat-square&logo=bluesky&color=27272a

[badge-youtube]: https://img.shields.io/badge/youtube-d95652.svg?style=flat-square&logo=youtube&color=27272a
[badge-youtube]: https://img.shields.io/badge/youtube-d95652.svg?style=flat-square&logo=youtube&color=27272a
91 changes: 15 additions & 76 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

plugins {
alias(libs.plugins.kotlin)
alias(libs.plugins.shadow)
alias(libs.plugins.sonatype.central.portal.publisher)
`maven-publish`
}

val baseVersion = "0.0.1"
val commitHash = System.getenv("COMMIT_HASH")
val snapshotversion = "${baseVersion}-dev.$commitHash"
val snapshotversion = "${baseVersion}-platform.$commitHash"

allprojects {
group = "app.simplecloud.plugin"
Expand All @@ -18,29 +18,32 @@ allprojects {
repositories {
mavenCentral()
maven("https://buf.build/gen/maven")
maven("https://oss.sonatype.org/content/repositories/snapshots")
maven("https://libraries.minecraft.net")
maven("https://repo.papermc.io/repository/maven-public")
maven("https://repo.simplecloud.app/snapshots")
maven("https://repo.waterdog.dev/releases/")
maven("https://repo.waterdog.dev/snapshots/")
maven("https://repo.opencollab.dev/maven-releases/")
maven("https://repo.opencollab.dev/maven-snapshots/")
}
}

subprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "com.gradleup.shadow")
apply(plugin = "net.thebugmc.gradle.sonatype-central-portal-publisher")
apply(plugin = "maven-publish")

dependencies {
testImplementation(rootProject.libs.kotlin.test)
implementation(rootProject.libs.kotlin.jvm)
implementation(rootProject.libs.kotlin.coroutines.core)
implementation(rootProject.libs.log4j.api)
}

kotlin {
jvmToolchain(21)
compilerOptions {
apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_0)
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
apiVersion.set(KotlinVersion.KOTLIN_2_0)
jvmTarget.set(JvmTarget.JVM_21)
freeCompilerArgs.add("-Xannotation-default-target=param-property")
}
}

Expand All @@ -50,76 +53,12 @@ subprojects {
}
}

publishing {
repositories {
maven {
name = "simplecloud"
url = uri("https://repo.simplecloud.app/snapshots/")
credentials {
username = System.getenv("SIMPLECLOUD_USERNAME")?: (project.findProperty("simplecloudUsername") as? String)
password = System.getenv("SIMPLECLOUD_PASSWORD")?: (project.findProperty("simplecloudPassword") as? String)
}
authentication {
create<BasicAuthentication>("basic")
}
}
}

publications {
create<MavenPublication>("mavenJava") {
from(components["java"])
}
}
}


centralPortal {
name = project.name

username = project.findProperty("sonatypeUsername") as? String
password = project.findProperty("sonatypePassword") as? String

pom {
name.set("Metrics Droplet")
description.set("Keep track of your metrics")
url.set("https://github.com/theSimpleCloud/metrics-droplet")

developers {
developer {
id.set("fllipeis")
email.set("p.eistrach@gmail.com")
}
}
licenses {
license {
name.set("Apache-2.0")
url.set("https://www.apache.org/licenses/LICENSE-2.0.txt")
}
}
scm {
url.set("https://github.com/theSimpleCloud/metrics-droplet.git")
connection.set("git:git@github.com:theSimpleCloud/metrics-droplet.git")
}
}
}

signing {
if (commitHash != null) {
return@signing
}

sign(publishing.publications)
useGpgCmd()
}

tasks.named("shadowJar", ShadowJar::class) {
mergeServiceFiles()
relocate("org.spongepowered", "app.simplecloud.plugin.relocate.spongepowered")
relocate("app.simplecloud.plugin.api", "app.simplecloud.plugin.relocate.plugin.api")
archiveFileName.set("${project.name}.jar")

val externalRelocatePath = "app.simplecloud.external"
relocate("kotlinx", "${externalRelocatePath}.kotlinx")
relocate("io", "${externalRelocatePath}.io")
relocate("org", "${externalRelocatePath}.org")
archiveClassifier.set("")
}

tasks.test {
Expand Down
21 changes: 15 additions & 6 deletions connection-bungeecord/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ plugins {
}

dependencies {
api(project(":connection-shared"))
api("net.kyori:adventure-text-minimessage:4.16.0")
api("net.kyori:adventure-platform-bungeecord:4.3.2")
compileOnly("net.md-5:bungeecord-api:1.20-R0.2")
implementation(project(":connection-shared"))
implementation(libs.adventure.platform.bungeecord)
implementation(libs.bundles.adventure)
compileOnly(libs.simplecloud.api)
compileOnly(libs.bungeecord.api)
}

modrinth {
Expand All @@ -27,9 +28,17 @@ modrinth {
"1.21.1",
"1.21.2",
"1.21.3",
"1.21.4"
)
"1.21.4",
"1.21.5",
"1.21.6",
"1.21.7",
"1.21.8",
"1.21.9",
"1.21.10",
"1.21.11",
)
loaders.add("bungeecord")
loaders.add("waterfall")
changelog.set("https://docs.simplecloud.app/changelog")
syncBodyFrom.set(rootProject.file("README.md").readText())
}

This file was deleted.

Loading