Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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 .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.gradle
**/build
.git
.idea
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,6 @@ buildNumber.properties
/wait.sh
/conf/
.direnv
data
data/
run
/.env
4 changes: 2 additions & 2 deletions Dockerfile → Dockerfile.bot
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This dockerfile is far from best practice and is a pure "Make it work" approach. Please do not use it as a reference of any kind.
FROM gradle:jdk21-alpine as build
FROM gradle:jdk25-alpine as build

COPY . .
RUN gradle clean :bot:build :plugin-paper:build --no-daemon
Expand All @@ -19,7 +19,7 @@ RUN mkdir servers
RUN mkdir template
RUN mkdir template/plugins
COPY docker/resources/bot/wait.sh .
# Copy the plugin jam plugin into the template.
# Copy the plugin jamEntity plugin into the template.
COPY --from=build /home/gradle/plugin-paper/build/libs/plugin-paper-*-all.jar ./bot/template/plugins/pluginjam.jar

COPY docker/resources/docker-entrypoint.sh .
Expand Down
36 changes: 36 additions & 0 deletions Dockerfile.bot.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
FROM gradle:jdk25-alpine as build
WORKDIR /home/gradle

COPY --chown=gradle:gradle settingsEntity.gradle* build.gradle* gradle.properties* ./
COPY --chown=gradle:gradle bot/build.gradle* ./bot/
COPY --chown=gradle:gradle plugin-paper/build.gradle* ./plugin-paper/

RUN gradle dependencies --no-daemon || true

COPY --chown=gradle:gradle . .

RUN gradle :bot:build :plugin-paper:build --no-daemon

# We use a jammy image because we need some more stuff than alpine provides
FROM eclipse-temurin:25-jammy as runtime
WORKDIR /app

# Setting up the bot
COPY --from=build /home/gradle/bot/build/libs/bot-*-all.jar ./bot.jar
RUN mkdir plugins
RUN mkdir servers
RUN mkdir template
RUN mkdir template/plugins
COPY docker/resources/bot/wait.sh .
# Copy the plugin jamEntity plugin into the template.
COPY --from=build /home/gradle/plugin-paper/build/libs/plugin-paper-*-all.jar ./bot/template/plugins/pluginjam.jar

COPY docker/resources/docker-entrypoint.sh .

EXPOSE 8080

COPY bot/src/main/resources/log4j2.xml log4j2.xml

HEALTHCHECK CMD curl --fail http://localhost:8080/swagger-ui || exit 1

ENTRYPOINT ["bash", "docker-entrypoint.sh"]
15 changes: 15 additions & 0 deletions Dockerfile.mc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM gradle:jdk25-alpine AS build
WORKDIR /home/gradle
COPY --chown=gradle:gradle settingsEntity.gradle* build.gradle* gradle.properties* ./
COPY --chown=gradle:gradle bot/build.gradle* ./bot/
COPY --chown=gradle:gradle plugin-api/build.gradle* ./plugin-api/
COPY --chown=gradle:gradle plugin-paper/build.gradle* ./plugin-paper/
COPY --chown=gradle:gradle plugin-velocity/build.gradle* ./plugin-velocity/
RUN mkdir -p plugin-paper/Readme.md && \
gradle dependencies --no-daemon || true
COPY --chown=gradle:gradle plugin-api ./plugin-api
COPY --chown=gradle:gradle plugin-paper ./plugin-paper
RUN gradle :plugin-paper:shadowJar --no-daemon

FROM itzg/minecraft-server:stable-java25
COPY --from=build /home/gradle/plugin-paper/build/libs/plugin-paper-*-all.jar /plugins/pluginjam.jar
14 changes: 14 additions & 0 deletions Dockerfile.velocity
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM gradle:jdk25-alpine AS build
WORKDIR /home/gradle
COPY --chown=gradle:gradle settingsEntity.gradle* build.gradle* gradle.properties* ./
COPY --chown=gradle:gradle bot/build.gradle* ./bot/
COPY --chown=gradle:gradle plugin-api/build.gradle* ./plugin-api/
COPY --chown=gradle:gradle plugin-paper/build.gradle* ./plugin-paper/
COPY --chown=gradle:gradle plugin-velocity/build.gradle* ./plugin-velocity/
RUN mkdir -p plugin-paper/Readme.md && \
gradle dependencies --no-daemon || true
COPY --chown=gradle:gradle plugin-api ./plugin-api
COPY --chown=gradle:gradle plugin-velocity ./plugin-velocity
RUN gradle :plugin-velocity:shadowJar --no-daemon
FROM itzg/mc-proxy:latest
COPY --from=build /home/gradle/plugin-velocity/build/libs/plugin-velocity-*-all.jar /plugins/pluginjam.jar
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Bot and spigot plugin used for the dev cord plugin jam
Bot and spigot plugin used for the dev cord plugin jamEntity

## Start Arguments for paper
`-Dpluginjam.port`
Expand Down
15 changes: 15 additions & 0 deletions backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Thumbs.db
.DS_Store
.gradle
build/
target/
out/
.micronaut/
.idea
*.iml
*.ipr
*.iws
.project
.settingsEntity
.classpath
.factorypath
49 changes: 49 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## Micronaut 5.0.2 Documentation

- [User Guide](https://docs.micronaut.io/5.0.2/guide/index.html)
- [API Reference](https://docs.micronaut.io/5.0.2/api/index.html)
- [Configuration Reference](https://docs.micronaut.io/5.0.2/guide/configurationreference.html)
- [Micronaut Guides](https://guides.micronaut.io/index.html)

---

- [Micronaut Gradle Plugin documentation](https://micronaut-projects.github.io/micronaut-gradle-plugin/latest/)
- [GraalVM Gradle Plugin documentation](https://graalvm.github.io/native-build-tools/latest/gradle-plugin.html)
- [Shadow Gradle Plugin](https://gradleup.com/shadow/)

## Feature http-client documentation

- [Micronaut HTTP Client documentation](https://docs.micronaut.io/latest/guide/index.html#nettyHttpClient)

## Feature flyway documentation

- [Micronaut Flyway Database Migration documentation](https://micronaut-projects.github.io/micronaut-flyway/latest/guide/index.html)


- [https://flywaydb.org/](https://flywaydb.org/)

## Feature serialization-jackson documentation

- [Micronaut Serialization Jackson Core documentation](https://micronaut-projects.github.io/micronaut-serialization/latest/guide/)

## Feature jdbc-hikari documentation

- [Micronaut Hikari JDBC Connection Pool documentation](https://micronaut-projects.github.io/micronaut-sql/latest/guide/index.html#jdbc)

## Feature security-oauth2 documentation

- [Micronaut Security OAuth 2.0 documentation](https://micronaut-projects.github.io/micronaut-security/latest/guide/index.html#oauth)

## Feature test-resources documentation

- [Micronaut Test Resources documentation](https://micronaut-projects.github.io/micronaut-test-resources/latest/guide/)

## Feature data-jdbc documentation

- [Micronaut Data JDBC documentation](https://micronaut-projects.github.io/micronaut-data/latest/guide/index.html#jdbc)

## Feature micronaut-aot documentation

- [Micronaut AOT documentation](https://micronaut-projects.github.io/micronaut-aot/latest/guide/)


114 changes: 114 additions & 0 deletions backend/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
plugins {
id("io.micronaut.application") version "5.0.0"
id("com.gradleup.shadow") version "9.4.1"
id("io.micronaut.test-resources") version "5.0.0"
id("io.micronaut.aot") version "5.0.0"
}

version = "0.1"
group = "de.chojo.pluginjam"



repositories {
mavenCentral()
}

dependencies {
annotationProcessor("io.micronaut.data:micronaut-data-processor")
annotationProcessor("io.micronaut:micronaut-http-validation")
annotationProcessor("io.micronaut.security:micronaut-security-processor")
annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
implementation("io.micronaut:micronaut-http-client")
implementation("io.micronaut.data:micronaut-data-jdbc")
implementation("io.micronaut.flyway:micronaut-flyway")
implementation("io.micronaut.security:micronaut-security-oauth2")
implementation("io.micronaut.serde:micronaut-serde-jackson")
implementation("io.micronaut.sql:micronaut-jdbc-hikari")
implementation("io.micronaut.reactor:micronaut-reactor")

// discord
implementation("io.github.kaktushose:jda-commands:5.0.0") {
exclude("org.slf4j", "slf4j-simple")
}
implementation("net.dv8tion:JDA:6.4.1")

runtimeOnly("ch.qos.logback:logback-classic")
runtimeOnly("org.flywaydb:flyway-database-postgresql")
runtimeOnly("org.postgresql:postgresql")
runtimeOnly("org.yaml:snakeyaml")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
aotPlugins(platform("io.micronaut.platform:micronaut-platform:5.0.2"))
aotPlugins("io.micronaut.security:micronaut-security-aot")
}



application {
mainClass = "de.chojo.pluginjam.Application"
}

java {
sourceCompatibility = JavaVersion.toVersion("25")
targetCompatibility = JavaVersion.toVersion("25")
}




graalvmNative.toolchainDetection = false
graalvmNative {
binaries {
all {
buildArgs.add("-H:+SharedArenaSupport")
}
}
}




micronaut {
runtime("netty")
testRuntime("junit5")
processing {
incremental(true)
annotations("de.chojo.pluginjam.*")
}
testResources {
version = "4.0.0"
}
aot {
// Please review carefully the optimizations enabled below
// Check https://micronaut-projects.github.io/micronaut-aot/latest/guide/ for more details
optimizeServiceLoading = false
convertYamlToJava = false
precomputeOperations = true
cacheEnvironment = true
optimizeClassLoading = true
deduceEnvironment = true
optimizeNetty = true
replaceLogbackXml = true
configurationProperties.put("micronaut.security.jwks.enabled", "false")
configurationProperties.put("micronaut.security.openid-configuration.enabled", "false")
}

}
tasks.withType<io.micronaut.gradle.testresources.StartTestResourcesService>().configureEach {
useClassDataSharing.set(false)
}

tasks.named<io.micronaut.gradle.docker.MicronautDockerfile>("dockerfile") {

baseImage = "eclipse-temurin:25-jre"
}


// https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered
tasks.withType<AbstractTestTask>().configureEach {
failOnNoDiscoveredTests = false
}




Binary file added backend/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
9 changes: 9 additions & 0 deletions backend/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading
Loading