diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 0159b10d..8d209cc8 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -1,4 +1,9 @@ -### 1.3.16 Release (04.03.2025) +### 1.4.0 Release (13.03.2025) +* Fixed scoreboard on FUll Game is showing waiting stage instead of starting +* Fixed leaving while full game stopped the game +* Changed java compatibility backport to 1.8 + +### 1.3.17 Release (04.03.2025) * Changed Scoreboard API (now paket based) (Thanks MrMicky-FR FastBoard) * Changed Scoreboard on lower 1.12.2 now supports 30 chars * Changed Scoreboard on 1.13+ now supports unlimited chars @@ -9,7 +14,7 @@ * Fixed Progress must be between 0 and 1 * Fixed ItemBuilder.glowEffect -### (1.3.11-)1.3.15 Release (17.02.2025) +### (1.3.11-)1.3.16 Release (17.02.2025) * Added 1.21.1-4 support * Added (3) new ConfigOptions for ArmorStands (BLOCK_IN_GAME_ARMOR_STAND_DESTROY, BLOCK_IN_GAME_ARMOR_STAND_CHECK, BLOCK_IN_GAME_ARMOR_STAND_INTERACT) * Fixed arena start time divider did not match from config.yml diff --git a/MiniGamesBox API/build.gradle.kts b/.github/building/api/build.gradle.kts similarity index 100% rename from MiniGamesBox API/build.gradle.kts rename to .github/building/api/build.gradle.kts diff --git a/.github/maven/api/pom.xml b/.github/building/api/pom.xml similarity index 93% rename from .github/maven/api/pom.xml rename to .github/building/api/pom.xml index c8942187..44e79421 100644 --- a/.github/maven/api/pom.xml +++ b/.github/building/api/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 4.0.0 @@ -53,8 +53,8 @@ https://maven.plugily.xyz/releases - papi-repo - https://repo.extendedclip.com/content/repositories/placeholderapi/ + placeholderapi + https://repo.extendedclip.com/releases/ @@ -80,7 +80,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 MiniGamesBox Inventory API docs for v${project.version} Library box with massive content that could be seen as minigames core. @@ -93,7 +93,7 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 diff --git a/buildSrc/build.gradle.kts b/.github/building/buildSrc/build.gradle.kts similarity index 100% rename from buildSrc/build.gradle.kts rename to .github/building/buildSrc/build.gradle.kts diff --git a/.github/building/buildSrc/build/groovy-dsl-plugins/output/adapter-src/PlugilyProjectsJavaConventionsPlugin.java b/.github/building/buildSrc/build/groovy-dsl-plugins/output/adapter-src/PlugilyProjectsJavaConventionsPlugin.java new file mode 100644 index 00000000..52fd8409 --- /dev/null +++ b/.github/building/buildSrc/build/groovy-dsl-plugins/output/adapter-src/PlugilyProjectsJavaConventionsPlugin.java @@ -0,0 +1,45 @@ +//CHECKSTYLE:OFF +import org.gradle.util.GradleVersion; +import org.gradle.groovy.scripts.BasicScript; +import org.gradle.groovy.scripts.ScriptSource; +import org.gradle.groovy.scripts.TextResourceScriptSource; +import org.gradle.internal.resource.StringTextResource; +/** + * Precompiled plugily.projects.java-conventions script plugin. + **/ +@SuppressWarnings("DefaultPackage") +public class PlugilyProjectsJavaConventionsPlugin implements org.gradle.api.Plugin { + private static final String MIN_SUPPORTED_GRADLE_VERSION = "5.0"; + @Override + public void apply(org.gradle.api.internal.project.ProjectInternal target) { + assertSupportedByCurrentGradleVersion(); + try { + Class pluginsBlockClass = Class.forName("cp_precompiled_PlugilyProjectsJavaConventions").asSubclass(BasicScript.class); + BasicScript pluginsBlockScript = pluginsBlockClass.getDeclaredConstructor().newInstance(); + pluginsBlockScript.setScriptSource(scriptSource(pluginsBlockClass)); + pluginsBlockScript.init(target, target.getServices()); + pluginsBlockScript.run(); + target.getPluginManager().apply("java-library"); + target.getPluginManager().apply("signing"); + target.getPluginManager().apply("maven-publish"); + + + Class precompiledScriptClass = Class.forName("precompiled_PlugilyProjectsJavaConventions").asSubclass(BasicScript.class); + BasicScript script = precompiledScriptClass.getDeclaredConstructor().newInstance(); + script.setScriptSource(scriptSource(precompiledScriptClass)); + script.init(target, target.getServices()); + script.run(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + private static ScriptSource scriptSource(Class scriptClass) { + return new TextResourceScriptSource(new StringTextResource(scriptClass.getSimpleName(), "")); + } + private static void assertSupportedByCurrentGradleVersion() { + if (GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version(MIN_SUPPORTED_GRADLE_VERSION)) < 0) { + throw new RuntimeException("Precompiled Groovy script plugins require Gradle "+MIN_SUPPORTED_GRADLE_VERSION+" or higher"); + } + } +} +//CHECKSTYLE:ON diff --git a/.github/building/buildSrc/build/groovy-dsl-plugins/output/plugin-requests/plugily.projects.java-conventions/metadata.bin b/.github/building/buildSrc/build/groovy-dsl-plugins/output/plugin-requests/plugily.projects.java-conventions/metadata.bin new file mode 100644 index 00000000..f76dd238 Binary files /dev/null and b/.github/building/buildSrc/build/groovy-dsl-plugins/output/plugin-requests/plugily.projects.java-conventions/metadata.bin differ diff --git a/.github/building/buildSrc/build/groovy-dsl-plugins/work/metadata/plugily.projects.java-conventions/metadata.bin b/.github/building/buildSrc/build/groovy-dsl-plugins/work/metadata/plugily.projects.java-conventions/metadata.bin new file mode 100644 index 00000000..bdc955b7 Binary files /dev/null and b/.github/building/buildSrc/build/groovy-dsl-plugins/work/metadata/plugily.projects.java-conventions/metadata.bin differ diff --git a/.github/building/buildSrc/build/pluginDescriptors/plugily.projects.java-conventions.properties b/.github/building/buildSrc/build/pluginDescriptors/plugily.projects.java-conventions.properties new file mode 100644 index 00000000..5eb08959 --- /dev/null +++ b/.github/building/buildSrc/build/pluginDescriptors/plugily.projects.java-conventions.properties @@ -0,0 +1 @@ +implementation-class=PlugilyProjectsJavaConventionsPlugin diff --git a/.github/building/buildSrc/build/resources/main/META-INF/gradle-plugins/plugily.projects.java-conventions.properties b/.github/building/buildSrc/build/resources/main/META-INF/gradle-plugins/plugily.projects.java-conventions.properties new file mode 100644 index 00000000..5eb08959 --- /dev/null +++ b/.github/building/buildSrc/build/resources/main/META-INF/gradle-plugins/plugily.projects.java-conventions.properties @@ -0,0 +1 @@ +implementation-class=PlugilyProjectsJavaConventionsPlugin diff --git a/.github/building/buildSrc/build/tmp/compileJava/previous-compilation-data.bin b/.github/building/buildSrc/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 00000000..9acd93cc Binary files /dev/null and b/.github/building/buildSrc/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/.github/building/buildSrc/build/tmp/jar/MANIFEST.MF b/.github/building/buildSrc/build/tmp/jar/MANIFEST.MF new file mode 100644 index 00000000..59499bce --- /dev/null +++ b/.github/building/buildSrc/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/buildSrc/src/main/groovy/plugily.projects.java-conventions.gradle b/.github/building/buildSrc/src/main/groovy/plugily.projects.java-conventions.gradle similarity index 100% rename from buildSrc/src/main/groovy/plugily.projects.java-conventions.gradle rename to .github/building/buildSrc/src/main/groovy/plugily.projects.java-conventions.gradle diff --git a/MiniGamesBox Classic/build.gradle.kts b/.github/building/classic/build.gradle.kts similarity index 98% rename from MiniGamesBox Classic/build.gradle.kts rename to .github/building/classic/build.gradle.kts index 5e9992d1..dd97d639 100644 --- a/MiniGamesBox Classic/build.gradle.kts +++ b/.github/building/classic/build.gradle.kts @@ -39,7 +39,6 @@ dependencies { implementation("org.openjdk.nashorn:nashorn-core:15.4") implementation("org.ow2.asm:asm:9.6") compileOnly("com.viaversion:viaversion-api:5.2.1") - compileOnly("com.mojang:authlib:3.13.56") compileOnly("de.simonsator:DevelopmentPAFSpigot:1.0.67") compileOnly("de.simonsator:Party-and-Friends-MySQL-Edition-Spigot-API:1.5.4-RELEASE") compileOnly("de.simonsator:Spigot-Party-API-For-RedisBungee:1.0.3-SNAPSHOT") diff --git a/.github/maven/classic/pom.xml b/.github/building/classic/pom.xml similarity index 94% rename from .github/maven/classic/pom.xml rename to .github/building/classic/pom.xml index 6268ac1a..486888bb 100644 --- a/.github/maven/classic/pom.xml +++ b/.github/building/classic/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 4.0.0 @@ -51,8 +51,8 @@ https://maven.plugily.xyz/releases - papi-repo - https://repo.extendedclip.com/content/repositories/placeholderapi/ + placeholderapi + https://repo.extendedclip.com/releases/ via-version @@ -65,12 +65,6 @@ - - com.mojang - authlib - 2.3.31 - provided - fr.mrmicky fastboard @@ -155,7 +149,7 @@ me.clip placeholderapi - 2.11.2 + 2.11.6 provided @@ -184,12 +178,12 @@ org.apache.maven.plugins maven-jar-plugin - 3.2.2 + 3.4.2 org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 MiniGamesBox Classic API docs for v${project.version} Library box with massive content that could be seen as minigames core. @@ -200,7 +194,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.3.0 + 3.6.0 @@ -244,7 +238,7 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 diff --git a/MiniGamesBox Database/build.gradle.kts b/.github/building/database/build.gradle.kts similarity index 100% rename from MiniGamesBox Database/build.gradle.kts rename to .github/building/database/build.gradle.kts diff --git a/.github/maven/database/pom.xml b/.github/building/database/pom.xml similarity index 86% rename from .github/maven/database/pom.xml rename to .github/building/database/pom.xml index 644cfcef..fbc8c68c 100644 --- a/.github/maven/database/pom.xml +++ b/.github/building/database/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 4.0.0 @@ -41,7 +41,7 @@ com.zaxxer HikariCP - 4.0.3 + 5.0.1 @@ -51,12 +51,10 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 - MiniGamesBox Inventory API docs for v${project.version} + MiniGamesBox Database API docs for v${project.version} Library box with massive content that could be seen as minigames core. - minecraft/minigamesbox/inventory - false @@ -64,7 +62,7 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 diff --git a/gradle.properties b/.github/building/gradle.properties similarity index 97% rename from gradle.properties rename to .github/building/gradle.properties index df931504..f6aa619a 100644 --- a/gradle.properties +++ b/.github/building/gradle.properties @@ -16,4 +16,4 @@ # along with this program. If not, see . # group=plugily.projects -version=1.3.17 +version=1.3.17-SNAPSHOT4 diff --git a/gradlew b/.github/building/gradlew similarity index 100% rename from gradlew rename to .github/building/gradlew diff --git a/gradlew.bat b/.github/building/gradlew.bat similarity index 100% rename from gradlew.bat rename to .github/building/gradlew.bat diff --git a/MiniGamesBox Inventory/build.gradle.kts b/.github/building/inventory/build.gradle.kts similarity index 100% rename from MiniGamesBox Inventory/build.gradle.kts rename to .github/building/inventory/build.gradle.kts diff --git a/.github/maven/inventory/pom.xml b/.github/building/inventory/pom.xml similarity index 95% rename from .github/maven/inventory/pom.xml rename to .github/building/inventory/pom.xml index ef81d3a0..250d8abd 100644 --- a/.github/maven/inventory/pom.xml +++ b/.github/building/inventory/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 4.0.0 @@ -54,7 +54,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 MiniGamesBox Inventory API docs for v${project.version} Library box with massive content that could be seen as minigames core. @@ -65,7 +65,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.3.0 + 3.6.0 @@ -89,7 +89,7 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 diff --git a/.github/maven/pom.xml b/.github/building/pom.xml similarity index 99% rename from .github/maven/pom.xml rename to .github/building/pom.xml index 433a4abc..d5c50f61 100644 --- a/.github/maven/pom.xml +++ b/.github/building/pom.xml @@ -24,7 +24,7 @@ plugily.projects minigamesbox - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 pom diff --git a/settings.gradle.kts b/.github/building/settings.gradle.kts similarity index 100% rename from settings.gradle.kts rename to .github/building/settings.gradle.kts diff --git a/MiniGamesBox Utils/build.gradle.kts b/.github/building/utils/build.gradle.kts similarity index 100% rename from MiniGamesBox Utils/build.gradle.kts rename to .github/building/utils/build.gradle.kts diff --git a/.github/maven/utils/pom.xml b/.github/building/utils/pom.xml similarity index 94% rename from .github/maven/utils/pom.xml rename to .github/building/utils/pom.xml index 8a2fc534..b8062a00 100644 --- a/.github/maven/utils/pom.xml +++ b/.github/building/utils/pom.xml @@ -23,7 +23,7 @@ minigamesbox plugily.projects - 1.3.3.1-java8 + 1.3.17-SNAPSHOT4 4.0.0 @@ -38,7 +38,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.11.2 MiniGamesBox Inventory API docs for v${project.version} Library box with massive content that could be seen as minigames core. @@ -51,7 +51,7 @@ org.apache.maven.wagon wagon-ssh - 3.5.2 + 3.5.3 diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml index 62db223a..d24de707 100644 --- a/.github/workflows/deploy-development.yml +++ b/.github/workflows/deploy-development.yml @@ -10,11 +10,9 @@ jobs: steps: - name: Checkout Latest Commit uses: actions/checkout@v4.2.2 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - name: Bump Version id: bump - uses: Plugily-Projects/version-bump-action@v8 + uses: Plugily-Projects/version-bump-action@v10 with: github-token: ${{ secrets.github_token }} auto-version-bump: true @@ -34,10 +32,23 @@ jobs: distribution: 'temurin' java-version: '21' java-package: jdk - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Publish with Gradle - run: ./gradlew publishMavenPublicationToSnapshotsRepository --info - env: - MAVEN_USERNAME: ${{ secrets.SNAPSHOTSUSERNAME }} - MAVEN_PASSWORD: ${{ secrets.SNAPSHOTSPASSWORD }} + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + - name: Cache + uses: actions/cache@v4.2.2 + with: + path: ~/.m2/repository + key: maven-${{ hashFiles('**/pom.xml') }} + restore-keys: maven- + - name: Publish with Maven + uses: s4u/maven-settings-action@v3.1.0 + with: + servers: | + [{ + "id": "Snapshot", + "username": "${{ secrets.SNAPSHOTSUSERNAME }}", + "password": "${{ secrets.SNAPSHOTSPASSWORD }}" + }] + - run: mvn clean verify compile package site:site javadoc:javadoc javadoc:jar deploy -DaltDeploymentRepository=Snapshot::https://maven.plugily.xyz/snapshots -f pom.xml diff --git a/.github/workflows/deploy-master.yml b/.github/workflows/deploy-master.yml index c08a2056..172d2f22 100644 --- a/.github/workflows/deploy-master.yml +++ b/.github/workflows/deploy-master.yml @@ -12,11 +12,9 @@ jobs: steps: - name: Checkout Latest Commit uses: actions/checkout@v4.2.2 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - name: Bump Version id: bump - uses: Plugily-Projects/version-bump-action@v8 + uses: Plugily-Projects/version-bump-action@v10 with: github-token: ${{ secrets.github_token }} auto-version-bump: false @@ -37,10 +35,23 @@ jobs: distribution: 'temurin' java-version: '21' java-package: jdk - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Publish with Gradle - run: ./gradlew publishMavenPublicationToReleasesRepository - env: - MAVEN_USERNAME: ${{ secrets.RELEASESUSERNAME }} - MAVEN_PASSWORD: ${{ secrets.RELEASESPASSWORD }} + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.8.2 + - name: Cache + uses: actions/cache@v4.2.2 + with: + path: ~/.m2/repository + key: maven-${{ hashFiles('**/pom.xml') }} + restore-keys: maven- + - name: Publish with Maven + uses: s4u/maven-settings-action@v3.1.0 + with: + servers: | + [{ + "id": "Release", + "username": "${{ secrets.RELEASESUSERNAME }}", + "password": "${{ secrets.RELEASESPASSWORD }}" + }] + - run: mvn clean verify compile package site:site javadoc:javadoc javadoc:jar deploy -DaltDeploymentRepository=Release::https://maven.plugily.xyz/releases -f pom.xml diff --git a/MiniGamesBox API/pom.xml b/MiniGamesBox API/pom.xml new file mode 100644 index 00000000..3aa04dbe --- /dev/null +++ b/MiniGamesBox API/pom.xml @@ -0,0 +1,83 @@ + + + + + + minigamesbox + plugily.projects + 1.3.17-SNAPSHOT13 + + 4.0.0 + + MiniGamesBox-Api + + 1.8 + UTF-8 + UTF-8 + + + + + + plugilyprojects-repo + https://maven.plugily.xyz/releases + + + + + + plugily.projects + MiniGamesBox-Database + ${project.version} + provided + true + + + com.github.cryptomorin + XSeries + 13.0.0 + provided + true + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + MiniGamesBox Api API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + diff --git a/MiniGamesBox Classic/pom.xml b/MiniGamesBox Classic/pom.xml new file mode 100644 index 00000000..e26623cd --- /dev/null +++ b/MiniGamesBox Classic/pom.xml @@ -0,0 +1,250 @@ + + + + + + minigamesbox + plugily.projects + 1.3.17-SNAPSHOT13 + + 4.0.0 + + MiniGamesBox-Classic + + 1.8 + UTF-8 + UTF-8 + + + + mojang-repo + https://libraries.minecraft.net/ + + + simonsators-repo + https://simonsator.de/repo/ + + + alessiodp-repo + https://repo.alessiodp.com/releases/ + + + plugilyprojects-repo + https://maven.plugily.xyz/releases + + + placeholderapi + https://repo.extendedclip.com/releases/ + + + via-version + https://repo.viaversion.com + + + jitpack + https://jitpack.io + + + + + + fr.mrmicky + fastboard + 2.1.3 + compile + true + + + com.viaversion + viaversion-api + 5.2.1 + provided + + + com.github.ProtocolSupport + ProtocolSupport + master + provided + + + com.github.cryptomorin + XSeries + 13.0.0 + compile + true + + + org.openjdk.nashorn + nashorn-core + 15.4 + compile + + + de.simonsator + DevelopmentPAFSpigot + 1.0.67 + provided + + + de.simonsator + Party-and-Friends-MySQL-Edition-Spigot-API + 1.5.4-RELEASE + provided + + + de.simonsator + Spigot-Party-API-For-RedisBungee + 1.0.3-SNAPSHOT + provided + + + com.alessiodp.parties + parties-api + 3.2.9 + provided + + + plugily.projects + MiniGamesBox-Inventory + ${project.version} + compile + true + + + plugily.projects + MiniGamesBox-Utils + ${project.version} + compile + true + + + plugily.projects + MiniGamesBox-Api + ${project.version} + compile + true + + + plugily.projects + MiniGamesBox-Database + ${project.version} + compile + true + + + me.clip + placeholderapi + 2.11.6 + provided + + + org.jetbrains + annotations + + + + + com.google.code.gson + gson + 2.10.1 + compile + + + + io.papermc + paperlib + 1.0.8 + compile + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.4.2 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + MiniGamesBox Classic API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + + com.cryptomorin.xseries.particles + plugily.projects.minigamesbox.classic.utils.version.xseries + + + com.cryptomorin.xseries + plugily.projects.minigamesbox.classic.utils.version.xseries + + + fr.mrmicky.fastboard + plugily.projects.minigamesbox.classic.utils.scoreboard + + + fr.mrmicky.fastinv + plugily.projects.minigamesbox.inventory.utils.fastinv + + + org.bstats + plugily.projects.minigamesbox.classic.utils.bstats + + + io.papermc.lib + plugily.projects.minigamesbox.classic.utils.paperlib + + + org.openjdk.nashorn + plugily.projects.minigamesbox.classic.utils.skript.nashorn + + + false + + + + package + + shade + + + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + \ No newline at end of file diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaManager.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaManager.java index 6d5ed2ab..83219702 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaManager.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/PluginArenaManager.java @@ -240,7 +240,7 @@ public void leaveAttempt(@NotNull Player player, @NotNull IPluginArena arena) { IUser user = plugin.getUserManager().getUser(player); if(!user.isSpectator()) { - if(arena.getArenaState() != IArenaState.WAITING_FOR_PLAYERS && arena.getArenaState() != IArenaState.STARTING && arena.getPlayers().isEmpty()) { + if(arena.getArenaState() != IArenaState.FULL_GAME && arena.getArenaState() != IArenaState.WAITING_FOR_PLAYERS && arena.getArenaState() != IArenaState.STARTING && arena.getPlayers().isEmpty()) { stopGame(true, arena); plugin.getDebugger().debug(Level.INFO, "[{0}] Game stopped due to lack of players", arena.getId()); } diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java index 6b910e3b..0bf6fcd8 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java @@ -94,7 +94,7 @@ public void stopAllScoreboards() { @Override public List getScoreboardLines() { - return new ArrayList<>(plugin.getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Waiting" + return new ArrayList<>(plugin.getLanguageManager().getLanguageList(arena.getArenaState() == IArenaState.FULL_GAME ? "Scoreboard.Content.Starting" : "Scoreboard.Content." + arena.getArenaState().getFormattedName())); } diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/commands/arguments/game/LeaderboardArgument.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/commands/arguments/game/LeaderboardArgument.java index c875f0e4..e50dd9df 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/commands/arguments/game/LeaderboardArgument.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/commands/arguments/game/LeaderboardArgument.java @@ -18,7 +18,6 @@ package plugily.projects.minigamesbox.classic.commands.arguments.game; -import org.apache.commons.lang.StringUtils; import org.bukkit.command.CommandSender; import plugily.projects.minigamesbox.api.stats.IStatisticType; import plugily.projects.minigamesbox.classic.commands.arguments.PluginArgumentsRegistry; @@ -69,7 +68,7 @@ public void execute(CommandSender sender, String[] args) { private void printLeaderboard(CommandSender sender, IStatisticType statisticType) { java.util.Map stats = registry.getPlugin().getStatsStorage().getStats(statisticType); new MessageBuilder("LEADERBOARD_TYPE_CHAT_TOP_HEADER").asKey().send(sender); - String statistic = StringUtils.capitalize(statisticType.getName().toLowerCase().replace('_', ' ')); + String statistic = statisticType.getName().toLowerCase().replace('_', ' ').toUpperCase(); UUID[] array = stats.keySet().toArray(new UUID[0]); for(int position = 1; position <= 10; position++) { if(array.length - position < 0) { @@ -87,10 +86,10 @@ private void printLeaderboard(CommandSender sender, IStatisticType statisticType private String formatMessage(String statisticName, String playerName, int position, int value) { String message = new MessageBuilder("LEADERBOARD_TYPE_CHAT_TOP_FORMAT").asKey().build(); - message = StringUtils.replace(message, "%number%", Integer.toString(position)); - message = StringUtils.replace(message, "%player%", playerName); - message = StringUtils.replace(message, "%value%", Integer.toString(value)); - message = StringUtils.replace(message, "%user_statistic%", statisticName); + message = message.replace("%number%", Integer.toString(position)); + message = message.replace("%player%", playerName); + message = message.replace("%value%", Integer.toString(value)); + message = message.replace("%user_statistic%", statisticName); return message; } diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/ChatEvents.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/ChatEvents.java index 2a7d5282..ad1ab8d7 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/ChatEvents.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/events/ChatEvents.java @@ -18,7 +18,6 @@ package plugily.projects.minigamesbox.classic.events; -import org.apache.commons.lang.StringUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -86,21 +85,19 @@ private String formatChatPlaceholders(IUser user, IPluginArena arena) { String formatted = new MessageBuilder("IN_GAME_GAME_CHAT_FORMAT").asKey().getRaw(); if(user.isSpectator()) { if(formatted.contains("%kit%")) { - formatted = - StringUtils.replace( - formatted, "%kit%", new MessageBuilder("IN_GAME_DEATH_TAG").asKey().build()); + formatted = formatted.replace("%kit%", new MessageBuilder("IN_GAME_DEATH_TAG").asKey().build()); } else { formatted = new MessageBuilder("IN_GAME_DEATH_TAG").asKey().build() + formatted; } } else { if(!plugin.getConfigPreferences().getOption("KITS")) { - formatted = StringUtils.replace(formatted, "%kit%", "-"); + formatted = formatted.replace("%kit%", "-"); } else { - formatted = StringUtils.replace(formatted, "%kit%", user.getKit().getName()); + formatted = formatted.replace("%kit%", user.getKit().getName()); } } - formatted = StringUtils.replace(formatted, "%player%", "%1$s"); - formatted = StringUtils.replace(formatted, "%message%", "%2$s"); + formatted = formatted.replace("%player%", "%1$s"); + formatted = formatted.replace("%message%", "%2$s"); formatted = new MessageBuilder(formatted).arena(arena).player(user.getPlayer()).build(); // notice - unresolved % could throw UnknownFormatException return formatted; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/hologram/LeaderboardHologram.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/hologram/LeaderboardHologram.java index cb9a3493..00f6cb7b 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/hologram/LeaderboardHologram.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/hologram/LeaderboardHologram.java @@ -19,7 +19,6 @@ package plugily.projects.minigamesbox.classic.handlers.hologram; -import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Location; import plugily.projects.minigamesbox.api.stats.IStatisticType; @@ -74,7 +73,7 @@ public void updateHologram() { if(i < reverseKeys.size()) { UUID uuid = reverseKeys.get(i); text = new MessageBuilder("LEADERBOARD_TYPE_HOLOGRAM_FORMAT").asKey().integer(i + 1).value(String.valueOf(values.get(uuid))).build(); - text = StringUtils.replace(text, "%player%", getPlayerNameSafely(uuid)); + text = text.replace("%player%", getPlayerNameSafely(uuid)); } else { text = new MessageBuilder("LEADERBOARD_TYPE_HOLOGRAM_EMPTY_FORMAT").asKey().integer(i + 1).build(); } @@ -92,10 +91,10 @@ public void delete() { private String getPlayerNameSafely(UUID uuid) { String name = plugin.getUserManager().getDatabase().getPlayerName(uuid); // Attempts to get the bukkit name instead if the name is null from database or an empty string - if (name == null || name.isBlank()) { + if (name == null || name.isEmpty()) { name = Bukkit.getOfflinePlayer(uuid).getName(); } - if (name == null || name.isBlank()) { + if (name == null || name.isEmpty()) { return new MessageBuilder("LEADERBOARD_UNKNOWN_PLAYER").asKey().build(); } return name; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/powerup/PowerupRegistry.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/powerup/PowerupRegistry.java index 9762c312..37c386cc 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/powerup/PowerupRegistry.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/powerup/PowerupRegistry.java @@ -20,7 +20,6 @@ import com.cryptomorin.xseries.XMaterial; import com.cryptomorin.xseries.XPotion; -import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.configuration.ConfigurationSection; @@ -144,9 +143,9 @@ private int getLongestDuration(List effects) { int longDuration = 0; for(String effect : effects) { - String[] split = StringUtils.split(StringUtils.deleteWhitespace(effect), ','); + String[] split = effect.replaceAll("\\s+","").split(","); if(split.length == 0) { - split = StringUtils.split(effect, ' '); + split = effect.split(" "); } if(split.length <= 2) { return longDuration; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/reward/Reward.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/reward/Reward.java index b42a282b..09707e98 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/reward/Reward.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/reward/Reward.java @@ -18,7 +18,6 @@ package plugily.projects.minigamesbox.classic.handlers.reward; -import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import plugily.projects.minigamesbox.api.handlers.reward.IReward; import plugily.projects.minigamesbox.api.handlers.reward.IRewardType; @@ -50,10 +49,10 @@ public Reward(RewardType type, String rawCode) { //set reward executor based on provided code if(rawCode.contains("p:")) { executor = RewardExecutor.PLAYER; - processedCode = StringUtils.replace(processedCode, "p:", ""); + processedCode = processedCode.replace("p:", ""); } else if(rawCode.contains("script:")) { executor = RewardExecutor.SCRIPT; - processedCode = StringUtils.replace(processedCode, "script:", ""); + processedCode = processedCode.replace("script:", ""); } else { executor = RewardExecutor.CONSOLE; } @@ -70,7 +69,7 @@ public Reward(RewardType type, String rawCode) { } String chanceStr = processedCode; chanceStr = chanceStr.substring(0, loc).replaceAll("[^0-9]+", ""); - processedCode = StringUtils.replace(processedCode, "chance(" + chanceStr + "):", ""); + processedCode = processedCode.replace("chance(" + chanceStr + "):", ""); chance = Double.parseDouble(chanceStr); } else { chance = 100.0; diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/user/data/FileStats.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/user/data/FileStats.java index 65eafd78..3e4150e1 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/user/data/FileStats.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/user/data/FileStats.java @@ -32,7 +32,6 @@ import java.util.Map; import java.util.TreeMap; import java.util.UUID; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; /** @@ -43,16 +42,14 @@ public class FileStats implements UserDatabase { private final PluginMain plugin; - private final FileConfiguration config; - private final AtomicBoolean updateRequired = new AtomicBoolean(false); public FileStats(PluginMain plugin) { this.plugin = plugin; - this.config = ConfigUtils.getConfig(plugin, "stats"); } @Override public void saveStatistic(IUser user, IStatisticType stat) { + FileConfiguration config = ConfigUtils.getConfig(plugin, "stats"); config.set(user.getUniqueId().toString() + "." + stat.getName(), user.getStatistic(stat)); ConfigUtils.saveConfig(plugin, config, "stats"); } @@ -65,7 +62,7 @@ public void saveAllStatistic(IUser user) { @Override public void loadStatistics(IUser user) { String uuid = user.getUniqueId().toString(); - plugin.getStatsStorage().getStatistics().forEach((s, statisticType) -> user.setStatistic(statisticType, config.getInt(uuid + "." + statisticType.getName()))); + plugin.getStatsStorage().getStatistics().forEach((s, statisticType) -> user.setStatistic(statisticType, ConfigUtils.getConfig(plugin, "stats").getInt(uuid + "." + statisticType.getName()))); } @Override @@ -82,6 +79,7 @@ public void dropColumn(String columnName) { @Override public Map getStats(IStatisticType stat) { Map stats = new TreeMap<>(); + FileConfiguration config = ConfigUtils.getConfig(plugin, "stats"); for(String string : config.getKeys(false)) { if(string.equals("data-version")) { continue; @@ -100,7 +98,6 @@ public void disable() { for(Player player : plugin.getServer().getOnlinePlayers()) { updateStats(plugin.getUserManager().getUser(player)); } - ConfigUtils.saveConfig(plugin, config, "stats"); } @Override @@ -110,12 +107,12 @@ public MysqlDatabase getMySQLDatabase() { @Override public String getPlayerName(UUID uuid) { - return config.getString(uuid + ".playername", Bukkit.getOfflinePlayer(uuid).getName()); + return ConfigUtils.getConfig(plugin, "stats").getString(uuid + ".playername", Bukkit.getOfflinePlayer(uuid).getName()); } private void updateStats(IUser user) { String uuid = user.getUniqueId().toString(); - + FileConfiguration config = ConfigUtils.getConfig(plugin, "stats"); plugin.getStatsStorage().getStatistics().forEach((s, statisticType) -> { if(statisticType.isPersistent()) { String path = uuid + "." + statisticType.getName(); diff --git a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/UpdateChecker.java b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/UpdateChecker.java index 82ecdc56..c11f55be 100644 --- a/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/UpdateChecker.java +++ b/MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/utils/services/UpdateChecker.java @@ -23,7 +23,6 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; -import org.apache.commons.lang.math.NumberUtils; import org.bukkit.plugin.java.JavaPlugin; import java.io.IOException; @@ -60,7 +59,8 @@ public final class UpdateChecker { } for(int i = 0; i < Math.min(firstSplit.length, secondSplit.length); i++) { - int currentValue = NumberUtils.toInt(firstSplit[i]), newestValue = NumberUtils.toInt(secondSplit[i]); + + int currentValue = Integer.parseInt(firstSplit[i]), newestValue = Integer.parseInt(secondSplit[i]); if(newestValue > currentValue) { return second; diff --git a/MiniGamesBox Database/pom.xml b/MiniGamesBox Database/pom.xml new file mode 100644 index 00000000..2a1af5ef --- /dev/null +++ b/MiniGamesBox Database/pom.xml @@ -0,0 +1,69 @@ + + + + + + minigamesbox + plugily.projects + 1.3.17-SNAPSHOT13 + + 4.0.0 + + MiniGamesBox-Database + + + + 1.8 + UTF-8 + UTF-8 + + + + + + com.zaxxer + HikariCP + 5.0.1 + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + MiniGamesBox Database API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + diff --git a/MiniGamesBox Inventory/pom.xml b/MiniGamesBox Inventory/pom.xml new file mode 100644 index 00000000..19ec187b --- /dev/null +++ b/MiniGamesBox Inventory/pom.xml @@ -0,0 +1,94 @@ + + + + + + minigamesbox + plugily.projects + 1.3.17-SNAPSHOT13 + + 4.0.0 + + MiniGamesBox-Inventory + + 1.8 + UTF-8 + UTF-8 + + + + + jitpack.io + https://jitpack.io + + + + + + fr.mrmicky + FastInv + 3.1.1 + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + MiniGamesBox Inventory API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + + fr.mrmicky.fastinv + plugily.projects.minigamesbox.inventory.utils.fastinv + + + false + + + + package + + shade + + + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + diff --git a/MiniGamesBox Utils/pom.xml b/MiniGamesBox Utils/pom.xml new file mode 100644 index 00000000..d3dbd0f0 --- /dev/null +++ b/MiniGamesBox Utils/pom.xml @@ -0,0 +1,56 @@ + + + + + + minigamesbox + plugily.projects + 1.3.17-SNAPSHOT13 + + 4.0.0 + + MiniGamesBox-Utils + + 1.8 + UTF-8 + UTF-8 + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.11.2 + + MiniGamesBox Inventory API docs for v${project.version} + Library box with massive content that could be seen as minigames core. + + + + + + org.apache.maven.wagon + wagon-ssh + 3.5.3 + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..73720a6b --- /dev/null +++ b/pom.xml @@ -0,0 +1,174 @@ + + + + + 4.0.0 + + plugily.projects + minigamesbox + 1.3.17-SNAPSHOT13 + pom + + + MiniGamesBox Inventory + MiniGamesBox Utils + MiniGamesBox Database + MiniGamesBox Classic + MiniGamesBox API + + + MiniGamesBox + Library box with massive content that could be seen as minigames core. + https://plugily.xyz + + + 1.8 + UTF-8 + UTF-8 + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + plugilyprojects-repo + https://maven.plugily.xyz/releases + + + + + + GNU General Public License v3 + https://www.gnu.org/licenses/gpl-3.0.en.html + + + + + + + io.papermc.paper + paper-api + 1.21.1-R0.1-SNAPSHOT + provided + + + + org.spigotmc + spigot-api + 1.8.8-R0.1-SNAPSHOT + provided + + + org.jetbrains + annotations + 23.0.0 + provided + + + + + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.0 + + ${java.version} + ${java.version} + + + + org.apache.maven.plugins + maven-site-plugin + 3.21.0 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.9.0 + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + true + + + + + prepare-agent + + + + post-unit-test + test + + report + + + + + + com.github.spotbugs + spotbugs-maven-plugin + 4.7.0.0 + + + + com.github.spotbugs + spotbugs + 4.7.1 + + + + + + + + + + Release + https://maven.plugily.xyz/releases + + + Snapshot + https://maven.plugily.xyz/snapshots + + +