Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
9776e96
feature: abstracted repository to be more flexible across other proje…
PrexorJustin Jan 5, 2025
df538d5
feature: updated Abstraction
PrexorJustin Jan 5, 2025
36d3e63
fix: now calling watchUpdateEvent on Modify Trigger
PrexorJustin Jan 5, 2025
c5a50a9
Merge pull request #13 from theSimpleCloud/feat/abstract_repository
niklasnieberler Jan 5, 2025
9364765
fix: removed specific serializer init (should be done only if needed …
PrexorJustin Jan 6, 2025
e00507a
fix: add a way to add serializers in projects that are implementing t…
PrexorJustin Jan 6, 2025
610523a
fix: made addSerializers open
PrexorJustin Jan 6, 2025
dbafc94
fix: added Pattern and NotEquals Operations to Matcher
PrexorJustin Jan 6, 2025
f34b7ce
fix: removed group_ from AsyncPlaceholder identifier for better reada…
PrexorJustin Jan 6, 2025
4b5b687
fix: removed group_ from AsyncPlaceholder identifier for better reada…
PrexorJustin Jan 6, 2025
95a5877
feat: add plugin-velocity sub-project
niklasnieberler Jan 7, 2025
e695c3b
feat: add permission checker
niklasnieberler Jan 7, 2025
26ee0d0
feat: add motd placeholder in SingleServerPlaceholderExecutor
niklasnieberler Jan 8, 2025
b6f2fc8
Create LICENSE
PrexorJustin Jan 9, 2025
6675bda
feat: added ResourcedYamlDirectoryRepository
PrexorJustin Jan 9, 2025
23faff9
Merge pull request #14 from simplecloudapp/feat/resourced-yaml-direct…
niklasnieberler Jan 9, 2025
1a9ee8f
feat: added NumericOperationMatcher and GreaterThanOperation
PrexorJustin Jan 9, 2025
e7b12c9
Merge pull request #15 from simplecloudapp/feat/numerical-operation-m…
niklasnieberler Jan 9, 2025
a9f8dd2
feat: add ConfigFactory
niklasnieberler Jan 12, 2025
e2d6ec3
ref: rename libs.versions.toml libraries
niklasnieberler Jan 12, 2025
18cdeef
Merge pull request #16 from simplecloudapp/feat/config-factory
niklasnieberler Jan 12, 2025
860c6b8
feat: ConfigFactory.kt
PrexorJustin Jan 12, 2025
2f9040b
fix: ConfigFactory.kt
PrexorJustin Jan 12, 2025
0966944
fix: ConfigFactory.kt
PrexorJustin Jan 12, 2025
b2c5f5a
Merge pull request #17 from simplecloudapp/refactor/ConfigFactory
niklasnieberler Jan 12, 2025
6e6dcbf
ref: change any to t in ConfigFactory.kt
niklasnieberler Jan 13, 2025
bb4b203
Merge pull request #18 from simplecloudapp/ref/config-factory-t
niklasnieberler Jan 13, 2025
1644f36
fix: removed unnecessary @Suppress("UNCHECKED_CAST")
PrexorJustin Jan 13, 2025
f8e3e5c
feat: pretty group names
FllipEis Jan 13, 2025
fe29da0
Merge pull request #20 from simplecloudapp/feat/pretty-name-placeholder
niklasnieberler Jan 13, 2025
a03011d
Merge branch 'develop' into fix/config_factory_unchecked_cast_suppres…
niklasnieberler Jan 13, 2025
3059603
Merge pull request #19 from simplecloudapp/fix/config_factory_uncheck…
niklasnieberler Jan 13, 2025
738f28e
feat: wasn't happy with my ConfigFactory so improved it immensely
PrexorJustin Jan 30, 2025
944494a
Merge pull request #21 from simplecloudapp/refactor/config-factory
PrexorJustin Jan 30, 2025
2976b9d
feat: added a more abstract DirectoryRepository implementation
PrexorJustin Jan 30, 2025
40b123f
Merge remote-tracking branch 'origin/develop' into develop
PrexorJustin Jan 30, 2025
1473323
Merge pull request #22 from simplecloudapp/feat/directoy-repository
PrexorJustin Jan 30, 2025
3be999a
fix: using correct resource directory for default config loading
PrexorJustin Jan 31, 2025
9a855c2
Merge pull request #23 from simplecloudapp/fix/directory-repository-r…
PrexorJustin Jan 31, 2025
f82afcb
fix: resource directory resource loading
PrexorJustin Jan 31, 2025
9f9d38f
Merge pull request #24 from simplecloudapp/fix/directory-repository-r…
PrexorJustin Jan 31, 2025
be30ed1
fix: resource directory resource loading
PrexorJustin Jan 31, 2025
09c843e
Merge pull request #25 from simplecloudapp/fix/directory-repository-r…
PrexorJustin Jan 31, 2025
18953ff
fix: resource directory resource loading
PrexorJustin Jan 31, 2025
d2fc835
Merge pull request #26 from simplecloudapp/fix/directory-repository-r…
PrexorJustin Jan 31, 2025
132bf69
fix: resource directory resource loading
PrexorJustin Jan 31, 2025
79b43a6
fix: resource directory resource loading
PrexorJustin Jan 31, 2025
4744572
Update release-dev.yml
PrexorJustin Jan 31, 2025
704229e
Update release-dev.yml
PrexorJustin Jan 31, 2025
f53f4db
Merge pull request #27 from simplecloudapp/fix/directory-repository-r…
PrexorJustin Jan 31, 2025
4f42353
refactor: migrate to platform CloudApi and remove ControllerApi usage
FllipEis Dec 17, 2025
e57ed95
feat: add branch input support for release-dev workflow
FllipEis Dec 17, 2025
95a0407
feat: add PersistentServerPlaceholder support
niklasnieberler Apr 6, 2026
ae9df6d
ref: create configs or config repositories
niklasnieberler Apr 6, 2026
636c5a4
feat: add watchUpdateEvent in YamlDirectoryRepository
niklasnieberler Apr 6, 2026
b364849
fix: enum serializer in YamlFileConfigurator
niklasnieberler Apr 6, 2026
76f81ab
feat: add support for more values in AbstractPlaceholderProvide
niklasnieberler Apr 9, 2026
70e1581
fix: use loader options in YamlFileConfigurator
xxjanisxx Apr 11, 2026
486e8e7
chore: bump dependencies and move velocity api in the version catalog
xxjanisxx Apr 11, 2026
f45d1bc
feat: support comments in configs
xxjanisxx Apr 11, 2026
c1a4ac9
remove watcher
InvalidJoker Apr 13, 2026
382b07e
feat: basic message config abstraction
InvalidJoker Apr 13, 2026
1462ebd
fix: protected variables (#30)
xxjanisxx Apr 28, 2026
b1e45e2
add migration system
InvalidJoker May 14, 2026
b9079e6
add docs to cloud api
InvalidJoker May 18, 2026
62007fb
chore: update gradle wrapper
xxjanisxx Oct 13, 2026
5a0a644
chore: bump dependencies
xxjanisxx Oct 13, 2026
ec2494f
feat: add DefaultConfigInstaller
xxjanisxx Oct 13, 2026
2ab75e1
feat: add common command classes
xxjanisxx Oct 13, 2026
4cb6511
ci: update release workflow
xxjanisxx Oct 13, 2026
f3257dc
feat: minestom
xxjanisxx Oct 13, 2026
cc3612c
chore: bump version
xxjanisxx Oct 13, 2026
69b9a60
ci: rename workflow
xxjanisxx Oct 13, 2026
1dbc206
fix: issues with adventure 5.2.0
xxjanisxx Oct 13, 2026
c40fdd8
feat: add BungeeComponentConverter
xxjanisxx Oct 14, 2026
b547068
Merge branch 'main' into feat/platform
xxjanisxx Oct 15, 2026
65ae6b7
feat: more config utilities and some cleanup
xxjanisxx Oct 18, 2026
539d834
ci: publish release and dev builds and test prs
xxjanisxx Oct 18, 2026
8313c1c
ci: add workflow dispatch
xxjanisxx Oct 18, 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
38 changes: 38 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Build Pull Request

on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: build-${{ github.event.pull_request.number }}
cancel-in-progress: true

permissions:
contents: read

jobs:
build:
name: build
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v6
with:
distribution: 'temurin'
java-version: '25'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Build and test
run: ./gradlew clean build
63 changes: 0 additions & 63 deletions .github/workflows/release-dev.yml

This file was deleted.

94 changes: 94 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Release and Publish

on:
push:
branches:
- main
- develop
workflow_dispatch:
inputs:
type:
description: 'Release type'
required: true
default: 'dev'
type: choice
options:
- dev
- release

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: write

jobs:
release:
name: Build and Publish
runs-on: ubuntu-latest

env:
GRADLE_ARGS: ${{ ((github.event_name == 'push' && github.ref_name == 'main') || inputs.type == 'release') && '-Prelease' || '' }}
IS_RELEASE: ${{ (github.event_name == 'push' && github.ref_name == 'main') || inputs.type == 'release' }}

steps:
- name: Check branch
if: env.IS_RELEASE == 'true' && github.ref_name != 'main'
run: |
echo "::error::Releases can only be created from main"
exit 1

- name: Checkout repository
uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v6
with:
distribution: 'temurin'
java-version: '25'

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
with:
cache-disabled: true

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Get Gradle Version
run: echo "GRADLE_VERSION=$(./gradlew properties -q $GRADLE_ARGS | awk '/^version:/ {print $2}')" >> $GITHUB_ENV

- name: Build
run: ./gradlew clean build $GRADLE_ARGS

- name: Publish to SimpleCloud Repository
run: ./gradlew publish $GRADLE_ARGS
env:
SIMPLECLOUD_USERNAME: ${{ secrets.SIMPLECLOUD_USERNAME }}
SIMPLECLOUD_PASSWORD: ${{ secrets.SIMPLECLOUD_PASSWORD }}

- name: Create Release
run: |
jars=()
for jar in $(find . -type f -name "*.jar" -path "*/build/libs/*.jar" -not -path "./build/libs/*"); do
echo "Uploading $jar"
jars+=("$jar")
done

if [ "$IS_RELEASE" = "true" ]; then
flags=()
notes="This release contains release builds for all Gradle modules."
else
flags=(--prerelease)
notes="This release contains dev builds for all Gradle modules."
fi

gh release create "v${GRADLE_VERSION}" \
--target "${{ github.sha }}" \
--title "v${GRADLE_VERSION}" \
--notes "$notes" \
"${flags[@]}" \
"${jars[@]}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ build/
!**/src/test/**/build/

### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
.idea/
*.iws
*.iml
*.ipr
Expand Down
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 [2025] [SimpleCloud]
Copyright 2025-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
79 changes: 46 additions & 33 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,69 +1,82 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion

plugins {
id("maven-publish")
alias(libs.plugins.kotlin)
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 baseVersion = "1.0.0"
val isRelease = providers.gradleProperty("release").isPresent
val commitHash = providers.exec {
commandLine("git", "rev-parse", "--short", "HEAD")
}.standardOutput.asText.get().trim()

allprojects {
group = "app.simplecloud.plugin"
version = if (commitHash != null) snapshotVersion else baseVersion
version = if (isRelease) baseVersion else "$baseVersion-dev.$commitHash"

repositories {
mavenCentral()
mavenLocal()
maven("https://libraries.minecraft.net")
maven("https://buf.build/gen/maven")
maven("https://repo.spectr.is/snapshots")
maven("https://repo.simplecloud.app/snapshots")
maven("https://buf.build/gen/maven")
maven("https://repo.papermc.io/repository/maven-public")
}
}

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

dependencies {
compileOnly(rootProject.libs.kotlinJvm)
compileOnly(rootProject.libs.bundles.simpleCloudController)
testImplementation(rootProject.libs.kotlin.test)
compileOnly(rootProject.libs.kotlin.jvm)
compileOnly(rootProject.libs.kotlin.coroutines)
compileOnly(rootProject.libs.simplecloud.api)
compileOnly(rootProject.libs.bundles.cloud)
compileOnly(rootProject.libs.bundles.adventure)
compileOnly(rootProject.libs.bundles.configurate)
compileOnly(rootProject.libs.slf4j.api)
}

kotlin {
jvmToolchain(21)
jvmToolchain(25)
compilerOptions {
jvmTarget = JvmTarget.JVM_25
languageVersion = KotlinVersion.KOTLIN_2_4
apiVersion = KotlinVersion.KOTLIN_2_4
}
}

java {
toolchain.languageVersion.set(JavaLanguageVersion.of(25))
}

tasks.test {
useJUnitPlatform()
}

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

repositories {
maven {
name = "simplecloud"
url = uri("https://repo.simplecloud.app/snapshots/")
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")
username = System.getenv("SIMPLECLOUD_USERNAME")
password = System.getenv("SIMPLECLOUD_PASSWORD")
}
}
}

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

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

sign(publishing.publications)
useGpgCmd()
}
}
Loading
Loading