diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bc03f42..fc4d2d1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,3 +9,7 @@ updates: directory: "/" schedule: interval: "weekly" + groups: + dependencies: + patterns: + - "*" diff --git a/.github/workflows/check_pull_request.yml b/.github/workflows/check_pull_request.yml index b2dda98..bdc94ae 100644 --- a/.github/workflows/check_pull_request.yml +++ b/.github/workflows/check_pull_request.yml @@ -1,6 +1,8 @@ name: Check pull request -on: [ pull_request ] +on: + workflow_dispatch: + pull_request: permissions: @@ -21,7 +23,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: 'gradle' - name: Change wrapper permissions run: chmod +x ./gradlew diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 68f09d3..943bfcb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: 'gradle' - name: Change wrapper permissions diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0abc3be..28859c6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,8 @@ name: test -on: [ pull_request ] +on: + workflow_dispatch: + pull_request: jobs: check: @@ -12,7 +14,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: 'gradle' - name: Change wrapper permissions run: chmod +x ./gradlew diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml index f0d37f4..a228172 100644 --- a/.github/workflows/upload.yml +++ b/.github/workflows/upload.yml @@ -3,6 +3,7 @@ name: upload_release on: release: types: [ published ] + workflow_dispatch: jobs: build: @@ -14,7 +15,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: 'gradle' - name: Change wrapper permissions diff --git a/.gitignore b/.gitignore index 3c6d828..6904629 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ ### Example user template template ### Example user template +build +.gradle # IntelliJ project files .idea diff --git a/build.gradle.kts b/build.gradle.kts index 33800fe..7a6c894 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,16 @@ -import net.minecrell.pluginyml.bukkit.BukkitPluginDescription.Permission.Default import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion +import xyz.jpenilla.resourcefactory.bukkit.Permission plugins { - id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.7" - kotlin("jvm") version "2.0.0-Beta2" - id("com.github.johnrengelman.shadow") version "8.1.1" - id("xyz.jpenilla.run-paper") version "2.2.2" - id("net.minecrell.plugin-yml.bukkit") version "0.6.0" - kotlin("plugin.serialization") version "2.0.0-Beta2" - id("org.jetbrains.dokka") version "1.9.10" + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.shadow) + alias(libs.plugins.run.paper) + alias(libs.plugins.resource.factory) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.dokka) } group = "dev.nikomaru.raceassist" @@ -31,101 +31,52 @@ repositories { dependencies { - val paperVersion = "1.20.4-R0.1-SNAPSHOT" - - val exposedVersion = "0.46.0" - val cloudVersion = "1.8.4" - - - val ktorVersion = "2.3.7" - - val koinVersion = "3.5.3" - val ifVersion = "0.10.11" - val junitVersion = "5.10.1" - val mockkVersion = "1.13.8" - val mockBukkitVersion = "3.74.0" - val sqliteVersion = "3.45.1.0" - val mysqlVersion = "8.0.33" - val vaultVersion = "1.7" - val protocolLibVersion = "5.2.0-SNAPSHOT" - val kotlinxDataTimeVersion = "0.4.0" - val kotlinxSerializationVersion = "1.6.2" - val mccoroutineVersion = "2.14.0" - val kotlinCoroutinesVersion = "1.7.3" - - compileOnly("io.papermc.paper:paper-api:$paperVersion") - - compileOnly("com.github.MilkBowl:VaultAPI:$vaultVersion") - compileOnly("com.comphenix.protocol:ProtocolLib:$protocolLibVersion") - - implementation("cloud.commandframework:cloud-core:$cloudVersion") - implementation("cloud.commandframework:cloud-kotlin-extensions:$cloudVersion") - implementation("cloud.commandframework:cloud-paper:$cloudVersion") - implementation("cloud.commandframework:cloud-annotations:$cloudVersion") - implementation("cloud.commandframework:cloud-kotlin-coroutines-annotations:$cloudVersion") - implementation("cloud.commandframework:cloud-kotlin-coroutines:$cloudVersion") - - implementation("com.github.stefvanschie.inventoryframework:IF:$ifVersion") - - library("mysql:mysql-connector-java:$mysqlVersion") - - library("org.xerial:sqlite-jdbc:$sqliteVersion") - - implementation("io.ktor:ktor-server-core:$ktorVersion") - implementation("io.ktor:ktor-server-netty:$ktorVersion") - implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion") - implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") - implementation("io.ktor:ktor-server-auth:$ktorVersion") - implementation("io.ktor:ktor-server-auth-jwt:$ktorVersion") - implementation("io.ktor:ktor-network-tls-certificates:$ktorVersion") - implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("io.ktor:ktor-client-java:$ktorVersion") - implementation("io.ktor:ktor-client-logging:$ktorVersion") - implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") + implementation(kotlin("stdlib")) + compileOnly(libs.paper.api) - implementation("ch.qos.logback:logback-classic:1.3.14") + compileOnly(libs.vault.api) + compileOnly(libs.protocol.lib) - implementation("org.jetbrains.exposed:exposed-core:$exposedVersion") - implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion") - implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion") - implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion") + implementation(libs.bundles.command) - implementation("org.jetbrains.kotlinx:kotlinx-datetime:$kotlinxDataTimeVersion") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinxSerializationVersion") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:$kotlinxSerializationVersion") + implementation(libs.inventoryframework) + implementation(libs.mysql.connector.java) + implementation(libs.sqlite.jdbc) - implementation("com.github.shynixn.mccoroutine:mccoroutine-bukkit-api:$mccoroutineVersion") - implementation("com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:$mccoroutineVersion") + implementation(libs.bundles.ktor.client) + implementation(libs.bundles.ktor.server) - library("com.google.api-client:google-api-client:1.35.1") - library("com.google.oauth-client:google-oauth-client-jetty:1.34.1") - library("com.google.apis:google-api-services-sheets:v4-rev20220606-1.32.1") + implementation(libs.bundles.exposed) - implementation(kotlin("stdlib")) + implementation(libs.bundles.coroutines) - implementation("com.michael-bull.kotlin-result:kotlin-result:1.1.18") - library("com.google.code.gson:gson:2.10.1") + implementation(libs.kotlinx.datetime) + implementation(libs.kotlinx.serialization.json) + implementation(libs.kotlinx.serialization.hocon) - implementation("io.insert-koin:koin-core:$koinVersion") + implementation(libs.kotlin.result) - testImplementation("com.github.shynixn.mccoroutine:mccoroutine-bukkit-api:$mccoroutineVersion") - testImplementation("com.github.shynixn.mccoroutine:mccoroutine-bukkit-core:$mccoroutineVersion") + implementation(libs.gson) - testImplementation("com.comphenix.protocol:ProtocolLib:$protocolLibVersion") + implementation(libs.koin.core) - testImplementation("org.xerial:sqlite-jdbc:$sqliteVersion") + testImplementation(libs.bundles.coroutines) + testImplementation(libs.protocol.lib) + testImplementation(libs.sqlite.jdbc) - testImplementation("com.github.seeseemelk:MockBukkit-v1.20:$mockBukkitVersion") - testImplementation("io.mockk:mockk:$mockkVersion") - testImplementation("org.junit.jupiter:junit-jupiter:$junitVersion") - testImplementation("io.insert-koin:koin-test:$koinVersion") - testImplementation("io.insert-koin:koin-test-junit5:$koinVersion") + testImplementation(libs.mockBukkit) + testImplementation(libs.mockk) + testImplementation(libs.junitJupiter) + testImplementation(libs.koinTest) + testImplementation(libs.koinTestJunit5) } -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(17)) +kotlin { + jvmToolchain { + (this).languageVersion.set(JavaLanguageVersion.of(21)) + } + jvmToolchain(21) } val pluginGroup = "dev.nikomaru.raceassist" @@ -139,20 +90,26 @@ tasks.named("compileKotlin", org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile: tasks { compileKotlin { - kotlinOptions.jvmTarget = "17" - kotlinOptions.javaParameters = true + compilerOptions.jvmTarget.set(JvmTarget.JVM_21) + compilerOptions.javaParameters = true + compilerOptions.languageVersion.set(KotlinVersion.KOTLIN_2_0) } compileTestKotlin { - kotlinOptions.jvmTarget = "17" + compilerOptions.jvmTarget.set(JvmTarget.JVM_21) + } + build { + dependsOn("shadowJar") + } + shadowJar + withType().configureEach { + options.encoding = "UTF-8" } shadowJar { relocate("cloud.commandframework", "$pluginGroup.shaded.cloud") relocate("io.leangen.geantyref", "$pluginGroup.shaded.typetoken") relocate("com.github.stefvanschie.inventoryframework", "$pluginGroup.inventoryframework") } - build { - dependsOn(shadowJar) - } + runServer { minecraftVersion("1.20.2") } @@ -168,72 +125,71 @@ tasks { } } } - - -bukkit { - name = "RaceAssist" -//minecraft_plugin_version - version = "minecraft_plugin_version" - website = "https://docs-raceassist.nikomaru.dev/" - - main = "dev.nikomaru.raceassist.RaceAssist" - - apiVersion = "1.19" - depend = listOf("Vault:ProtocolLib") - - permissions { - register("RaceAssist.admin") { - default = Default.OP - children = listOf( - "raceassist.commands.audience.leave", - "raceassist.commands.place.degree", - "raceassist.commands.bet.sheet", - "raceassist.commands.race.start", - "raceassist.commands.player.add", - "raceassist.commands.horse.ownerdelete", - "raceassist.commands.bet.can", - "raceassist.commands.setting.copy", - "raceassist.commands.player.remove", - "raceassist.commands.bet.list", - "raceassist.commands.bet.delete", - "raceassist.commands.setting.view", - "raceassist.commands.place.central", - "raceassist.commands.audience.list", - "raceassist.commands.setting.staff", - "raceassist.commands.setting.create", - "raceassist.commands.bet.open", - "raceassist.commands.place.reverse", - "raceassist.commands.bet.revert.jockey", - "raceassist.commands.reload", - "raceassist.commands.web", - "raceassist.commands.place.set", - "raceassist.commands.player.delete", - "raceassist.commands.player.list", - "raceassist.commands.race.debug", - "raceassist.commands.race.horse", - "raceassist.commands.bet.revert.row", - "raceassist.commands.place.finish", - "raceassist.commands.bet.return.jockey", - "raceassist.commands.setting.delete", - "raceassist.commands.race.stop", - "raceassist.commands.bet.unit", - "raceassist.commands.bet.revert.all", - "raceassist.commands.place.lap", - "raceassist.commands.bet.rate", - "raceassist.commands.player.replacement", - "raceassist.commands.audience.join", - "raceassist.command.help" - ) - } - register("RaceAssist.user") { - default = Default.TRUE - children = listOf( - "raceassist.commands.audience.join", - "raceassist.commands.audience.leave", - "raceassist.commands.bet.open", - "raceassist.commands.web", - "raceassist.commands.horse.ownerdelete", - ) +sourceSets.main { + resourceFactory { + bukkitPluginYaml { + name = rootProject.name + version = project.version.toString() + website = "https://github.com/RaceAssist/RaceAssist-core" + main = "$group.RaceAssist" + apiVersion = "1.20" + libraries = libs.bundles.coroutines.asString() + softDepend = listOf("Vault", "ProtocolLib") + permissions { + register("RaceAssist.admin") { + default = Permission.Default.OP + children( + "raceassist.commands.audience.leave", + "raceassist.commands.place.degree", + "raceassist.commands.bet.sheet", + "raceassist.commands.race.start", + "raceassist.commands.player.add", + "raceassist.commands.horse.ownerdelete", + "raceassist.commands.bet.can", + "raceassist.commands.setting.copy", + "raceassist.commands.player.remove", + "raceassist.commands.bet.list", + "raceassist.commands.bet.delete", + "raceassist.commands.setting.view", + "raceassist.commands.place.central", + "raceassist.commands.audience.list", + "raceassist.commands.setting.staff", + "raceassist.commands.setting.create", + "raceassist.commands.bet.open", + "raceassist.commands.place.reverse", + "raceassist.commands.bet.revert.jockey", + "raceassist.commands.reload", + "raceassist.commands.web", + "raceassist.commands.place.set", + "raceassist.commands.player.delete", + "raceassist.commands.player.list", + "raceassist.commands.race.debug", + "raceassist.commands.race.horse", + "raceassist.commands.bet.revert.row", + "raceassist.commands.place.finish", + "raceassist.commands.bet.return.jockey", + "raceassist.commands.setting.delete", + "raceassist.commands.race.stop", + "raceassist.commands.bet.unit", + "raceassist.commands.bet.revert.all", + "raceassist.commands.place.lap", + "raceassist.commands.bet.rate", + "raceassist.commands.player.replacement", + "raceassist.commands.audience.join", + "raceassist.command.help" + ) + } + register("RaceAssist.user") { + default = Permission.Default.TRUE + children( + "raceassist.commands.audience.join", + "raceassist.commands.audience.leave", + "raceassist.commands.bet.open", + "raceassist.commands.web", + "raceassist.commands.horse.ownerdelete", + ) + } + } } } } @@ -257,44 +213,13 @@ bukkit { // } //} -// enable k2 compiler -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class.java).configureEach { - kotlinOptions { - freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn") - } +fun Provider.asString(): String { + val dependency = this.get() + return dependency.module.toString() + ":" + dependency.versionConstraint.toString() } -tasks.register("depsize") { - description = "Prints dependencies for \"default\" configuration" - doLast { - listConfigurationDependencies(configurations["default"]) +fun Provider.asString(): List { + return this.get().map { dependency -> + "${dependency.group}:${dependency.name}:${dependency.version}" } -} - -tasks.register("depsize-all-configurations") { - description = "Prints dependencies for all available configurations" - doLast { - configurations.filter { it.isCanBeResolved }.forEach { listConfigurationDependencies(it) } - } -} - -fun listConfigurationDependencies(configuration: Configuration) { - val formatStr = "%,10.2f" - - val size = configuration.sumOf { it.length() / (1024.0 * 1024.0) } - - val out = StringBuffer() - out.append("\nConfiguration name: \"${configuration.name}\"\n") - if (size > 0) { - out.append("Total dependencies size:".padEnd(65)) - out.append("${String.format(formatStr, size)} Mb\n\n") - - configuration.sortedBy { -it.length() }.forEach { - out.append(it.name.padEnd(65)) - out.append("${String.format(formatStr, (it.length() / 1024.0))} kb\n") - } - } else { - out.append("No dependencies found") - } - println(out) -} +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..de054fa --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,90 @@ +[versions] +paper = "1.21-R0.1-SNAPSHOT" +mccoroutine = "2.17.0" +koinVersion = "3.5.6" +coroutine = "1.8.1" +serialization = "1.7.1" +ktor = "2.3.12" +exposed = "0.52.0" +cloud = "1.8.4" +if = "0.10.11" +mysql-connector-java = "8.0.33" +sqlite-jdbc = "3.45.1.0" +logback = "1.5.6" +mockBukkit = "3.74.0" +mockk = "1.13.8" +junitJupiter = "5.10.1" +koinTest = "3.5.3" +koinTestJunit5 = "3.5.3" +kotlinx-datetime = "0.4.0" +kotlinx-serialization = "1.6.2" +kotlin-result = "1.1.18" +gson = "2.8.8" +koin-core = "3.5.3" +protocolLibVersion = "5.3.0-SNAPSHOT" +vault = "1.7.1" + +[libraries] +paper-api = { group = "io.papermc.paper", name = "paper-api", version.ref = "paper" } +vault-api = { group = "com.github.MilkBowl", name = "vaultAPI", version.ref = "vault" } +protocol-lib = { group = "com.comphenix.protocol", name = "ProtocolLib", version.ref = "protocolLibVersion" } +cloud-core = { group = "cloud.commandframework", name = "cloud-core", version.ref = "cloud" } +cloud-kotlin-extension = { group = "cloud.commandframework", name = "cloud-kotlin-extensions", version.ref = "cloud" } +cloud-paper = { group = "cloud.commandframework", name = "cloud-paper", version.ref = "cloud" } +cloud-annotations = { group = "cloud.commandframework", name = "cloud-annotations", version.ref = "cloud" } +cloud-kotlin-coroutines-annotations = { group = "cloud.commandframework", name = "cloud-kotlin-coroutines-annotations", version.ref = "cloud" } +cloud-kotlin-coroutines = { group = "cloud.commandframework", name = "cloud-kotlin-coroutines", version.ref = "cloud" } +inventoryframework = { group = "com.github.stefvanschie.inventoryframework", name = "IF", version.ref = "if" } +mysql-connector-java = { group = "mysql", name = "mysql-connector-java", version.ref = "mysql-connector-java" } +sqlite-jdbc = { group = "org.xerial", name = "sqlite-jdbc", version.ref = "sqlite-jdbc" } +ktor-server-core = { group = "io.ktor", name = "ktor-server-core", version.ref = "ktor" } +ktor-server-netty = { group = "io.ktor", name = "ktor-server-netty", version.ref = "ktor" } +ktor-server-contentNegotiation = { group = "io.ktor", name = "ktor-server-content-negotiation", version.ref = "ktor" } +ktor-serialization-kotlinxJson = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" } +ktor-server-auth = { group = "io.ktor", name = "ktor-server-auth", version.ref = "ktor" } +ktor-server-authJwt = { group = "io.ktor", name = "ktor-server-auth-jwt", version.ref = "ktor" } +ktor-network-tlsCertificates = { group = "io.ktor", name = "ktor-network-tls-certificates", version.ref = "ktor" } +ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" } +ktor-client-java = { group = "io.ktor", name = "ktor-client-java", version.ref = "ktor" } +ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktor" } +ktor-client-contentNegotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktor" } +logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "logback" } +exposed-core = { group = "org.jetbrains.exposed", name = "exposed-core", version.ref = "exposed" } +exposed-dao = { group = "org.jetbrains.exposed", name = "exposed-dao", version.ref = "exposed" } +exposed-jdbc = { group = "org.jetbrains.exposed", name = "exposed-jdbc", version.ref = "exposed" } +exposed-java-time = { group = "org.jetbrains.exposed", name = "exposed-java-time", version.ref = "exposed" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutine" } +mccoroutine-bukkit-api = { group = "com.github.shynixn.mccoroutine", name = "mccoroutine-bukkit-api", version.ref = "mccoroutine" } +mccoroutine-bukkit-core = { group = "com.github.shynixn.mccoroutine", name = "mccoroutine-bukkit-core", version.ref = "mccoroutine" } +kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" } +kotlinx-serialization-hocon = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-hocon", version.ref = "kotlinx-serialization" } +kotlin-result = { group = "com.michael-bull.kotlin-result", name = "kotlin-result", version.ref = "kotlin-result" } +gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } +koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin-core" } +mockBukkit = { module = "com.github.seeseemelk:MockBukkit-v1.20", version.ref = "mockBukkit" } +mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +junitJupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junitJupiter" } +koinTest = { module = "io.insert-koin:koin-test", version.ref = "koinTest" } +koinTestJunit5 = { module = "io.insert-koin:koin-test-junit5", version.ref = "koinTestJunit5" } + +[plugins] +run-paper = { id = "xyz.jpenilla.run-paper", version = "2.3.0" } +resource-factory = { id = "xyz.jpenilla.resource-factory", version = "1.1.1" } +shadow = { id = "io.github.goooler.shadow", version = "8.1.8" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version = "2.0.0" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version = "2.0.0" } +dokka = { id = "org.jetbrains.dokka", version = "1.9.20" } + +[bundles] +command = [ + "cloud-core", + "cloud-kotlin-extension", + "cloud-paper", + "cloud-annotations", + "cloud-kotlin-coroutines-annotations", + "cloud-kotlin-coroutines"] +ktor-client = ["ktor-client-core", "ktor-client-java", "ktor-client-logging", "ktor-client-contentNegotiation"] +ktor-server = ["ktor-server-core", "ktor-server-netty", "ktor-server-contentNegotiation", "ktor-serialization-kotlinxJson", "ktor-server-auth", "ktor-server-authJwt", "ktor-network-tlsCertificates", "logback-classic"] +exposed = ["exposed-core", "exposed-dao", "exposed-jdbc", "exposed-java-time"] +coroutines = ["mccoroutine-bukkit-api", "mccoroutine-bukkit-core", "kotlinx-coroutines-core"] \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b5b7ef0..0289e90 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/src/main/kotlin/dev/nikomaru/raceassist/RaceAssist.kt b/src/main/kotlin/dev/nikomaru/raceassist/RaceAssist.kt index aca01df..ba1c956 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/RaceAssist.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/RaceAssist.kt @@ -237,7 +237,6 @@ open class RaceAssist : SuspendingJavaPlugin(), RaceAssistAPI, KoinComponent { parse(BetOpenCommand()) parse(BetRateCommand()) parse(BetRevertCommand()) - parse(BetSheetCommand()) parse(BetPayCommand()) parse(BetUnitCommand()) diff --git a/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/GoogleAuthorizeUtil.kt b/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/GoogleAuthorizeUtil.kt deleted file mode 100644 index 4065769..0000000 --- a/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/GoogleAuthorizeUtil.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright © 2021-2024 Nikomaru - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package dev.nikomaru.raceassist.api.sheet - -import com.google.api.client.auth.oauth2.Credential -import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp -import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver -import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow -import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets -import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport -import com.google.api.client.json.gson.GsonFactory -import com.google.api.client.util.store.FileDataStoreFactory -import com.google.api.services.sheets.v4.SheetsScopes -import dev.nikomaru.raceassist.RaceAssist -import dev.nikomaru.raceassist.files.Config -import org.koin.core.component.KoinComponent -import org.koin.core.component.inject -import java.io.* -import java.security.GeneralSecurityException - -object GoogleAuthorizeUtil : KoinComponent { - val plugin: RaceAssist by inject() - - private val credentialsFilePath = File(plugin.dataFolder, "credentials.json") - - @Throws(IOException::class, GeneralSecurityException::class) - fun authorize(spreadsheetId: String): Credential? { - val tokensDirectoryPath = File(File(plugin.dataFolder, "tokens"), "${spreadsheetId}_tokens") - if (!tokensDirectoryPath.exists()) { - tokensDirectoryPath.mkdirs() - } - if (!credentialsFilePath.exists()) { - return null - } - val inputStream: InputStream = FileInputStream(credentialsFilePath) - val clientSecrets: GoogleClientSecrets = - GoogleClientSecrets.load(GsonFactory.getDefaultInstance(), InputStreamReader(inputStream)) - val scopes = listOf(SheetsScopes.SPREADSHEETS) - val flow: GoogleAuthorizationCodeFlow = - GoogleAuthorizationCodeFlow.Builder( - GoogleNetHttpTransport.newTrustedTransport(), - GsonFactory.getDefaultInstance(), - clientSecrets, - scopes - ) - .setDataStoreFactory(FileDataStoreFactory(tokensDirectoryPath)).setAccessType("offline").build() - return AuthorizationCodeInstalledApp( - flow, - LocalServerReceiver.Builder().setPort(Config.config.spreadSheet.port).build() - ).authorize("user") - } -} \ No newline at end of file diff --git a/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/SheetsServiceUtil.kt b/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/SheetsServiceUtil.kt deleted file mode 100644 index 5e5fe06..0000000 --- a/src/main/kotlin/dev/nikomaru/raceassist/api/sheet/SheetsServiceUtil.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright © 2021-2024 Nikomaru - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package dev.nikomaru.raceassist.api.sheet - -import com.google.api.client.auth.oauth2.Credential -import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport -import com.google.api.client.json.gson.GsonFactory -import com.google.api.services.sheets.v4.Sheets -import java.io.IOException -import java.security.GeneralSecurityException - -object SheetsServiceUtil { - - @Throws(IOException::class, GeneralSecurityException::class) - fun getSheetsService(spreadsheetId: String): Sheets? { - val credential: Credential = GoogleAuthorizeUtil.authorize(spreadsheetId) ?: return null - return Sheets.Builder( - GoogleNetHttpTransport.newTrustedTransport(), - GsonFactory.getDefaultInstance(), - credential - ) - .setApplicationName("RaceAssist").build() - } -} \ No newline at end of file diff --git a/src/main/kotlin/dev/nikomaru/raceassist/bet/BetUtils.kt b/src/main/kotlin/dev/nikomaru/raceassist/bet/BetUtils.kt index 209f016..eda4697 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/bet/BetUtils.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/bet/BetUtils.kt @@ -35,7 +35,7 @@ import org.bukkit.entity.Player import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.and import org.jetbrains.exposed.sql.deleteWhere -import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction import java.math.RoundingMode import java.util.* @@ -47,7 +47,7 @@ object BetUtils { suspend fun deleteBetData(raceId: String): ArrayList { val list = arrayListOf() newSuspendedTransaction { - BetList.select { BetList.raceId eq raceId }.forEach { + BetList.selectAll().where { BetList.raceId eq raceId }.forEach { list.add( BetListData( it[BetList.rowUniqueId].toUUID(), @@ -81,7 +81,7 @@ object BetUtils { suspend fun listBetData(raceId: String): ArrayList { val list = arrayListOf() newSuspendedTransaction(Dispatchers.IO) { - BetList.select { BetList.raceId eq raceId }.forEach { + BetList.selectAll().where { BetList.raceId eq raceId }.forEach { list.add( BetListData( it[BetList.rowUniqueId].toUUID(), @@ -97,18 +97,19 @@ object BetUtils { } suspend fun getBetSum(raceId: String) = newSuspendedTransaction(Dispatchers.IO) { - BetList.select { BetList.raceId eq raceId }.sumOf { + BetList.selectAll().where { BetList.raceId eq raceId }.sumOf { it[BetList.betting] } } suspend fun getJockeyBetSum(raceId: String, jockey: OfflinePlayer) = newSuspendedTransaction(Dispatchers.IO) { - BetList.select { (BetList.jockeyUniqueId eq jockey.uniqueId.toString()) and (BetList.raceId eq raceId) } + BetList.selectAll() + .where { (BetList.jockeyUniqueId eq jockey.uniqueId.toString()) and (BetList.raceId eq raceId) } .sumOf { it[BetList.betting] } } suspend fun getRowBet(raceId: String, row: UUID) = newSuspendedTransaction(Dispatchers.IO) { - BetList.select { (BetList.rowUniqueId eq row.toString()) and (BetList.raceId eq raceId) } + BetList.selectAll().where { (BetList.rowUniqueId eq row.toString()) and (BetList.raceId eq raceId) } .sumOf { it[BetList.betting] } } @@ -133,7 +134,8 @@ object BetUtils { val betManager = RaceAssist.api.getBetManager(raceId) ?: return sender.sendMessage("レースが存在しません") newSuspendedTransaction(Dispatchers.IO) { - BetList.select { (BetList.jockeyUniqueId eq jockey.uniqueId.toString()) and (BetList.raceId eq raceId) } + BetList.selectAll() + .where { (BetList.jockeyUniqueId eq jockey.uniqueId.toString()) and (BetList.raceId eq raceId) } .forEach { val returnAmount = it[BetList.betting] * odds val returnPlayer = Bukkit.getOfflinePlayer(it[BetList.playerUniqueId].toUUID()) diff --git a/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetRevertCommand.kt b/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetRevertCommand.kt index 5fada12..77ced53 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetRevertCommand.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetRevertCommand.kt @@ -35,7 +35,7 @@ import org.jetbrains.exposed.sql.ResultRow import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.and import org.jetbrains.exposed.sql.deleteWhere -import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction import java.util.* @@ -101,7 +101,7 @@ class BetRevertCommand { val betManager = RaceAssist.api.getBetManager(raceId)!! val owner = raceManager.getOwner() newSuspendedTransaction(Dispatchers.IO) { - BetList.select { BetList.raceId eq raceId }.forEach { + BetList.selectAll().where { BetList.raceId eq raceId }.forEach { val receiver = Bukkit.getOfflinePlayer(it[BetList.playerUniqueId].toUUID()) betManager.depositToPlayer(receiver, it[BetList.betting].toDouble()) executor.sendMessage( @@ -123,7 +123,8 @@ class BetRevertCommand { val betManager = RaceAssist.api.getBetManager(raceId)!! val owner = raceManager.getOwner() newSuspendedTransaction(Dispatchers.IO) { - BetList.select { (BetList.raceId eq raceId) and (BetList.playerUniqueId eq jockey.uniqueId.toString()) } + BetList.selectAll() + .where { (BetList.raceId eq raceId) and (BetList.playerUniqueId eq jockey.uniqueId.toString()) } .forEach { val receiver = Bukkit.getOfflinePlayer(it[BetList.playerUniqueId].toUUID()) betManager.depositToPlayer(receiver, it[BetList.betting].toDouble()) @@ -147,7 +148,8 @@ class BetRevertCommand { val owner = raceManager.getOwner() val locale = executor.locale() newSuspendedTransaction(Dispatchers.IO) { - BetList.select { (BetList.rowUniqueId eq row.toString()) and (BetList.raceId eq raceId) }.forEach { + BetList.selectAll().where { (BetList.rowUniqueId eq row.toString()) and (BetList.raceId eq raceId) } + .forEach { val receiver = Bukkit.getOfflinePlayer(it[BetList.playerUniqueId].toUUID()) betManager.depositToPlayer(receiver, it[BetList.betting].toDouble()) executor.sendMessage( diff --git a/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetSheetCommand.kt b/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetSheetCommand.kt deleted file mode 100644 index b5d1bdf..0000000 --- a/src/main/kotlin/dev/nikomaru/raceassist/bet/commands/BetSheetCommand.kt +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright © 2021-2024 Nikomaru - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package dev.nikomaru.raceassist.bet.commands - -import cloud.commandframework.annotations.Argument -import cloud.commandframework.annotations.CommandDescription -import cloud.commandframework.annotations.CommandMethod -import cloud.commandframework.annotations.CommandPermission -import com.google.api.services.sheets.v4.model.AddSheetRequest -import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest -import com.google.api.services.sheets.v4.model.Request -import com.google.api.services.sheets.v4.model.SheetProperties -import dev.nikomaru.raceassist.RaceAssist -import dev.nikomaru.raceassist.api.sheet.SheetsServiceUtil.getSheetsService -import dev.nikomaru.raceassist.utils.Lang -import dev.nikomaru.raceassist.utils.SuggestionId -import dev.nikomaru.raceassist.utils.Utils.locale -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext -import org.bukkit.command.CommandSender - -@CommandMethod("ra|RaceAssist bet") -class BetSheetCommand { - @CommandPermission("raceassist.commands.bet.sheet") - @CommandMethod("sheet ") - @CommandDescription("現在の賭け状況を閲覧できるシートを設定します") - suspend fun sheet( - sender: CommandSender, - @Argument(value = "operateRaceId", suggestions = SuggestionId.OPERATE_RACE_ID) raceId: String, - @Argument(value = "sheet") sheetId: String - ) { - if (RaceAssist.api.getRaceManager(raceId)?.senderHasControlPermission(sender) != true) return - val betManager = RaceAssist.api.getBetManager(raceId) - ?: return sender.sendMessage(Lang.getComponent("no-exist-this-raceid-race", sender.locale())) - val raceManager = RaceAssist.api.getRaceManager(raceId) - ?: return sender.sendMessage(Lang.getComponent("no-exist-this-raceid-race", sender.locale())) - val owner = raceManager.getOwner() - betManager.setSpreadSheetId(sheetId) - createNewSheets(sheetId, raceId) - } - - private suspend fun createNewSheets(sheetId: String, raceId: String) = withContext(Dispatchers.IO) { - val sheetsService = getSheetsService(sheetId) ?: return@withContext - val content = BatchUpdateSpreadsheetRequest() - val requests: ArrayList = ArrayList() - val request = Request() - val addSheet = AddSheetRequest() - val properties = SheetProperties() - //賭けを表示するためのシート - properties.title = "${raceId}_RaceAssist_Bet" - addSheet.properties = properties - request.addSheet = addSheet - requests.add(request) - content.requests = requests - sheetsService.spreadsheets()?.batchUpdate(sheetId, content)?.execute() - } - -} \ No newline at end of file diff --git a/src/main/kotlin/dev/nikomaru/raceassist/bet/event/BetGuiClickEvent.kt b/src/main/kotlin/dev/nikomaru/raceassist/bet/event/BetGuiClickEvent.kt index 2614c46..110fad7 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/bet/event/BetGuiClickEvent.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/bet/event/BetGuiClickEvent.kt @@ -17,20 +17,13 @@ package dev.nikomaru.raceassist.bet.event -import com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest -import com.google.api.services.sheets.v4.model.ValueRange import dev.nikomaru.raceassist.RaceAssist -import dev.nikomaru.raceassist.api.sheet.SheetsServiceUtil.getSheetsService import dev.nikomaru.raceassist.bet.BetUtils import dev.nikomaru.raceassist.bet.GuiComponent import dev.nikomaru.raceassist.bet.gui.BetChestGui.Companion.AllPlayers -import dev.nikomaru.raceassist.data.database.BetList import dev.nikomaru.raceassist.utils.Lang -import dev.nikomaru.raceassist.utils.Utils.toOfflinePlayer -import dev.nikomaru.raceassist.utils.Utils.toUUID import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay -import kotlinx.coroutines.withContext import net.kyori.adventure.text.Component import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer import org.bukkit.Material @@ -40,7 +33,6 @@ import org.bukkit.event.EventHandler import org.bukkit.event.Listener import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.inventory.ItemStack -import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction import java.util.* @@ -283,7 +275,6 @@ class BetGuiClickEvent : Listener { } BetUtils.tempBetDataList.removeIf { it.raceId == raceId && it.player == player } } - putSheetsData(raceId) } } @@ -332,50 +323,6 @@ class BetGuiClickEvent : Listener { return sum } - private suspend fun putSheetsData(raceId: String) = withContext(Dispatchers.Default) { - val betManager = RaceAssist.api.getBetManager(raceId)!! - val spreadSheetIdList = betManager.getReturnSpreadSheetId() - spreadSheetIdList?.let { sheetId -> - - val sheetsService = getSheetsService(sheetId) ?: return@withContext - - var i = 1 - val data: ArrayList = ArrayList() - data.add( - ValueRange().setRange("${raceId}_RaceAssist_Bet!A${i}") - .setValues( - listOf( - listOf( - Lang.getText("sheet-timestamp", Locale.getDefault()), - Lang.getText("sheet-minecraft-name", Locale.getDefault()), - Lang.getText("sheet-jockey", Locale.getDefault()), - Lang.getText("sheet-bet-price", Locale.getDefault()), - Lang.getText("sheet-bet-multiplier", Locale.getDefault()), - getBetPercent(raceId) - ) - ) - ) - ) - - newSuspendedTransaction(Dispatchers.Default) { - BetList.select { BetList.raceId eq raceId }.forEach { - i++ - val player = it[BetList.playerUniqueId].toUUID().toOfflinePlayer().name - val jockey = it[BetList.jockeyUniqueId].toUUID().toOfflinePlayer().name - val betting = it[BetList.betting] - val timeStamp = it[BetList.timeStamp] - data.add( - ValueRange().setRange("${raceId}_RaceAssist_Bet!A${i}") - .setValues(listOf(listOf(timeStamp.toString(), player, jockey, betting))) - ) - } - val batchBody = BatchUpdateValuesRequest().setValueInputOption("USER_ENTERED").setData(data) - - sheetsService.spreadsheets()?.values()?.batchUpdate(sheetId, batchBody)?.execute() - } - } - - } private suspend fun getBetPercent(raceId: String): Int = newSuspendedTransaction(Dispatchers.IO) { RaceAssist.api.getBetManager(raceId)!!.getReturnPercent() diff --git a/src/main/kotlin/dev/nikomaru/raceassist/web/WebCommand.kt b/src/main/kotlin/dev/nikomaru/raceassist/web/WebCommand.kt index 4e81801..d4c1f91 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/web/WebCommand.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/web/WebCommand.kt @@ -23,13 +23,13 @@ import cloud.commandframework.annotations.CommandPermission import dev.nikomaru.raceassist.data.database.UserAuthData import dev.nikomaru.raceassist.utils.Utils.passwordHash import kotlinx.coroutines.Dispatchers -import org.apache.commons.lang.RandomStringUtils +import org.apache.commons.lang3.RandomStringUtils import org.bukkit.command.CommandSender import org.bukkit.entity.Player import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.deleteWhere import org.jetbrains.exposed.sql.insert -import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction @CommandMethod("ra|RaceAssist web") @@ -43,7 +43,7 @@ class WebCommand { val uuid = sender.uniqueId val exist = newSuspendedTransaction(Dispatchers.IO) { - UserAuthData.select(UserAuthData.uuid eq uuid.toString()).count() > 0 + UserAuthData.selectAll().where(UserAuthData.uuid eq uuid.toString()).count() > 0 } if (exist) { sender.sendMessage("すでに登録されています /ra web resetを実行して削除した後もう一度実行してください") @@ -68,7 +68,7 @@ class WebCommand { val uuid = sender.uniqueId val exist = newSuspendedTransaction(Dispatchers.IO) { - UserAuthData.select(UserAuthData.uuid eq uuid.toString()).count() > 0 + UserAuthData.selectAll().where(UserAuthData.uuid eq uuid.toString()).count() > 0 } if (!exist) { sender.sendRichMessage("登録されていません まずは /ra web registerを実行してください") diff --git a/src/main/kotlin/dev/nikomaru/raceassist/web/api/LoginRouter.kt b/src/main/kotlin/dev/nikomaru/raceassist/web/api/LoginRouter.kt index 23412c8..91b2ee9 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/web/api/LoginRouter.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/web/api/LoginRouter.kt @@ -38,7 +38,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.serialization.Serializable import org.bukkit.Bukkit import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq -import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction import java.security.KeyFactory import java.security.interfaces.RSAPrivateKey @@ -65,7 +65,7 @@ object LoginRouter { //パスワードの検証 val exist = newSuspendedTransaction(Dispatchers.IO) { - UserAuthData.select(UserAuthData.uuid eq uuid.toString()).count() > 0 + UserAuthData.selectAll().where(UserAuthData.uuid eq uuid.toString()).count() > 0 } if (!exist) { //401 @@ -76,7 +76,7 @@ object LoginRouter { call.respond(HttpStatusCode.Forbidden, "This player is banned") } val registeredPassword = newSuspendedTransaction { - val rr = UserAuthData.select { UserAuthData.uuid eq uuid.toString() }.first() + val rr = UserAuthData.selectAll().where { UserAuthData.uuid eq uuid.toString() }.first() rr[UserAuthData.hashedPassword] } if (Utils.passwordHash(password) != registeredPassword) { diff --git a/src/main/kotlin/dev/nikomaru/raceassist/web/api/WebAPI.kt b/src/main/kotlin/dev/nikomaru/raceassist/web/api/WebAPI.kt index 0e22865..91e0311 100644 --- a/src/main/kotlin/dev/nikomaru/raceassist/web/api/WebAPI.kt +++ b/src/main/kotlin/dev/nikomaru/raceassist/web/api/WebAPI.kt @@ -57,7 +57,6 @@ import io.ktor.server.routing.* import kotlinx.serialization.encodeToString import org.koin.core.component.KoinComponent import org.koin.core.component.inject -import org.koin.java.KoinJavaComponent.get import org.koin.java.KoinJavaComponent.inject import java.security.KeyStore import java.time.ZonedDateTime diff --git a/src/main/resources/MapColorDefault.properties b/src/main/resources/MapColorDefault.properties index 43cb1b9..52f0b14 100644 --- a/src/main/resources/MapColorDefault.properties +++ b/src/main/resources/MapColorDefault.properties @@ -14,9 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # - -# -#Sat Aug 20 15:50:09 JST 2022 minecraft\:andesite_wall=#707070 minecraft\:gray_bed=#4C4C4C minecraft\:warped_slab=#3A8E8C diff --git a/src/main/resources/lang/en_US.properties b/src/main/resources/lang/en_US.properties index b437a9e..3c13dea 100644 --- a/src/main/resources/lang/en_US.properties +++ b/src/main/resources/lang/en_US.properties @@ -14,7 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # - add-staff=Added staff already-added-staff=Already added already-exist-this-user=the player already exists diff --git a/src/main/resources/lang/ja_JP.properties b/src/main/resources/lang/ja_JP.properties index e42a278..2c1b14d 100644 --- a/src/main/resources/lang/ja_JP.properties +++ b/src/main/resources/lang/ja_JP.properties @@ -14,7 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # - add-staff=スタッフを追加しました already-added-staff=既に追加されています already-exist-this-user=すでにそのプレイヤーは既に存在します