From 7b3174eaaed50234412fca9ee8155f3c580d4e9a Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 08:37:55 -0400 Subject: [PATCH 01/15] Updating to 1.9.4 --- .github/workflows/create-release.yml | 92 ++++++++++++++++++++++++++++ .github/workflows/maven.yml | 6 +- Bukkit/pom.xml | 4 +- Bungee/pom.xml | 4 +- CHANGELOG.md | 39 ++++++++++++ Common/pom.xml | 2 +- Sponge/pom.xml | 4 +- Universal/pom.xml | 2 +- Velocity/pom.xml | 4 +- pom.xml | 2 +- 10 files changed, 145 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/create-release.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 0000000..5245b39 --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,92 @@ +name: create-release.yml +on: + workflow_dispatch: +jobs: + build: + name: Build and Test + runs-on: ubuntu-latest + + steps: + - name: Cache local Maven repository + uses: actions/cache@v4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - uses: actions/checkout@v5 + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + java-version: '21' + distribution: 'zulu' + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.9.6 + - name: Compile + run: mvn -B package --file pom.xml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Upload AntiVPN + uses: actions/upload-artifact@v4 + with: + name: AntiVPN-Universal + path: Universal/target/AntiVPN-*.jar + - name: Upload Sponge plugin + uses: actions/upload-artifact@v4 + with: + name: AntiVPN-Sponge + path: Sponge/target/Sponge-*.jar + release: + name: Create Release + needs: build + runs-on: ubuntu-latest + steps: + - name: Download AntiVPN + uses: actions/download-artifact@v4 + with: + name: AntiVPN-Universal + - name: Download Sponge plugin + uses: actions/download-artifact@v4 + with: + name: AntiVPN-Sponge + - name: Get Version Number from Pom + id: get_version + run: echo "VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV + - name: Extract latest CHANGELOG entry + id: changelog + run: | + CHANGELOG_CONTENT=$(awk 'BEGIN {print_section=0;} /^## \[/ {if (print_section == 0) {print_section=1;} else {exit;}} print_section {print;}' CHANGELOG.md) + CHANGELOG_ESCAPED=$(echo "$CHANGELOG_CONTENT" | sed ':a;N;$!ba;s/\n/%0A/g') + echo "Extracted latest release notes from CHANGELOG.md:" + echo -e "$CHANGELOG_CONTENT" + echo "::set-output name=content::$CHANGELOG_ESCAPED" + - name: Create Release + uses: actions/create-release@v1 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ github.run_number }} + release_name: Release v${{ github.run_number }} + draft: false + prerelease: false + body: ${{ steps.changelog.outputs.content }} + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./AntiVPN-Universal/AntiVPN-*.jar + asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar + asset_content_type: application/java-archive + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./AntiVPN-Sponge/Sponge-*.jar + asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar + asset_content_type: application/java-archive + diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 073bbfa..550b098 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -12,15 +12,15 @@ jobs: steps: - name: Cache local Maven repository - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK 21 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: '21' distribution: 'zulu' diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml index cda1424..724a62d 100644 --- a/Bukkit/pom.xml +++ b/Bukkit/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.9.4-DEV + 1.9.4 4.0.0 @@ -81,7 +81,7 @@ dev.brighten.antivpn Common - 1.9.4-DEV + 1.9.4 provided diff --git a/Bungee/pom.xml b/Bungee/pom.xml index 9135c8d..561d9ac 100644 --- a/Bungee/pom.xml +++ b/Bungee/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.9.4-DEV + 1.9.4 4.0.0 @@ -67,7 +67,7 @@ dev.brighten.antivpn Common - 1.9.4-DEV + 1.9.4 provided diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9706111 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [1.9.4] - 2025-09-30 + +### Added +- New dependency management system with automatic library loading and relocation +- Caffeine cache implementation to replace Guava +- Sponge platform support with full event handling and command system +- UUID lookup functionality for player validation +- Enhanced kick checking system with scheduled task execution +- Support for Java 17 and Java 21 runtime environments +- New database metrics tracking for bStats + +### Changed +- **BREAKING**: Minimum Java version upgraded from 8 to 17 +- Replaced Guava cache with Caffeine cache for better performance +- Modernized player checking system with asynchronous processing +- Improved database connection handling with proper resource management +- Enhanced VPN/Proxy detection with new `CheckResult` and `ResultType` system +- Updated Maven dependencies and build process +- Reorganized project structure (Assembly → Universal module) +- Improved error handling and exception logging throughout codebase + +### Fixed +- H2 database compatibility issues with automatic backup and recovery +- Memory leaks in database result set handling with try-with-resources +- Thread safety issues in player cache management +- Command registration and unregistration during plugin lifecycle +- Proper cleanup of database drivers on shutdown +- Resource management in SQL connections and prepared statements + +### Removed +- Guava dependency (replaced with Caffeine and built-in utilities) +- Legacy cached response handling system +- Old table format compatibility code \ No newline at end of file diff --git a/Common/pom.xml b/Common/pom.xml index dec5693..7926c16 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.9.4-DEV + 1.9.4 4.0.0 diff --git a/Sponge/pom.xml b/Sponge/pom.xml index 94e28a5..188a5f3 100644 --- a/Sponge/pom.xml +++ b/Sponge/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.9.4-DEV + 1.9.4 4.0.0 @@ -32,7 +32,7 @@ dev.brighten.antivpn Common - 1.9.4-DEV + 1.9.4 compile diff --git a/Universal/pom.xml b/Universal/pom.xml index b036049..dfbec0e 100644 --- a/Universal/pom.xml +++ b/Universal/pom.xml @@ -6,7 +6,7 @@ dev.brighten.antivpn AntiVPN - 1.9.4-DEV + 1.9.4 Universal diff --git a/Velocity/pom.xml b/Velocity/pom.xml index 152db18..8d2db5a 100644 --- a/Velocity/pom.xml +++ b/Velocity/pom.xml @@ -5,7 +5,7 @@ AntiVPN dev.brighten.antivpn - 1.9.4-DEV + 1.9.4 4.0.0 @@ -33,7 +33,7 @@ dev.brighten.antivpn Common - 1.9.4-DEV + 1.9.4 provided diff --git a/pom.xml b/pom.xml index 05cf495..25ea794 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ dev.brighten.antivpn AntiVPN pom - 1.9.4-DEV + 1.9.4 Common From d8b48e8c9b00e071e6f3c24a4546f8e93616ca8f Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 09:46:08 -0400 Subject: [PATCH 02/15] Checking out files --- .github/workflows/create-release.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 5245b39..8737e7b 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -43,12 +43,13 @@ jobs: needs: build runs-on: ubuntu-latest steps: + - uses: actions/checkout@v5 - name: Download AntiVPN - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: AntiVPN-Universal - name: Download Sponge plugin - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: AntiVPN-Sponge - name: Get Version Number from Pom From ef15d4750f7e2d1cb6ef66765b5d1193647df1e9 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 09:52:13 -0400 Subject: [PATCH 03/15] Checking download files --- .github/workflows/create-release.yml | 47 ++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 8737e7b..58a10ea 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -74,20 +74,49 @@ jobs: draft: false prerelease: false body: ${{ steps.changelog.outputs.content }} - - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./AntiVPN-Universal/AntiVPN-*.jar - asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar - asset_content_type: application/java-archive + - name: Locate downloaded artifacts + run: | + echo "Listing workspace:" + ls -la + + echo "Listing downloaded artifact dirs (if present):" + ls -la AntiVPN-Universal || true + ls -la AntiVPN-Sponge || true + + ANTI_JAR=$(ls AntiVPN-Universal/*.jar 2>/dev/null | head -n1 || true) + SPONGE_JAR=$(ls AntiVPN-Sponge/*.jar 2>/dev/null | head -n1 || true) + + if [ -z "$ANTI_JAR" ]; then + echo "ERROR: AntiVPN jar not found in AntiVPN-Universal" + exit 1 + fi + + echo "Found AntiVPN jar: $ANTI_JAR" + echo "ANTI_JAR=$ANTI_JAR" >> $GITHUB_ENV + + if [ -n "$SPONGE_JAR" ]; then + echo "Found Sponge jar: $SPONGE_JAR" + echo "SPONGE_JAR=$SPONGE_JAR" >> $GITHUB_ENV + else + echo "No Sponge jar found; continuing without it." + fi + - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./AntiVPN-Sponge/Sponge-*.jar + asset_path: ${{ env.ANTI_JAR }} + asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar + asset_content_type: application/java-archive + + - uses: actions/upload-release-asset@v1 + if: ${{ env.SPONGE_JAR != '' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ env.SPONGE_JAR }} asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar asset_content_type: application/java-archive From e1e7b375c8d2949c62572f3bb41779e4b00b7202 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 10:00:49 -0400 Subject: [PATCH 04/15] Fixing path --- .github/workflows/create-release.yml | 35 +++------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 58a10ea..7617327 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -74,49 +74,20 @@ jobs: draft: false prerelease: false body: ${{ steps.changelog.outputs.content }} - - name: Locate downloaded artifacts - run: | - echo "Listing workspace:" - ls -la - - echo "Listing downloaded artifact dirs (if present):" - ls -la AntiVPN-Universal || true - ls -la AntiVPN-Sponge || true - - ANTI_JAR=$(ls AntiVPN-Universal/*.jar 2>/dev/null | head -n1 || true) - SPONGE_JAR=$(ls AntiVPN-Sponge/*.jar 2>/dev/null | head -n1 || true) - - if [ -z "$ANTI_JAR" ]; then - echo "ERROR: AntiVPN jar not found in AntiVPN-Universal" - exit 1 - fi - - echo "Found AntiVPN jar: $ANTI_JAR" - echo "ANTI_JAR=$ANTI_JAR" >> $GITHUB_ENV - - if [ -n "$SPONGE_JAR" ]; then - echo "Found Sponge jar: $SPONGE_JAR" - echo "SPONGE_JAR=$SPONGE_JAR" >> $GITHUB_ENV - else - echo "No Sponge jar found; continuing without it." - fi - - uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ${{ env.ANTI_JAR }} + asset_path: ./AntiVPN-*.jar asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar asset_content_type: application/java-archive - - uses: actions/upload-release-asset@v1 - if: ${{ env.SPONGE_JAR != '' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ${{ env.SPONGE_JAR }} + asset_path: ./Sponge-*.jar asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar asset_content_type: application/java-archive From ae605a32a51a5eaba7fb54d678607f8849830b44 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 10:03:35 -0400 Subject: [PATCH 05/15] This should do it --- .github/workflows/create-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 7617327..8cf1cbf 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -79,7 +79,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./AntiVPN-*.jar + asset_path: AntiVPN-*-universal.jar asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar asset_content_type: application/java-archive - uses: actions/upload-release-asset@v1 @@ -87,7 +87,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./Sponge-*.jar + asset_path: Sponge-*.jar asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar asset_content_type: application/java-archive From 43aefc1aedc3c9305ef586f3dd63906f8d686aca Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 11:30:10 -0400 Subject: [PATCH 06/15] Fixed release --- .github/workflows/create-release.yml | 46 ++++++---------------------- 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 8cf1cbf..aae75c2 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -2,10 +2,9 @@ name: create-release.yml on: workflow_dispatch: jobs: - build: - name: Build and Test + build-and-release: + name: Build and Release runs-on: ubuntu-latest - steps: - name: Cache local Maven repository uses: actions/cache@v4 @@ -28,30 +27,6 @@ jobs: run: mvn -B package --file pom.xml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Upload AntiVPN - uses: actions/upload-artifact@v4 - with: - name: AntiVPN-Universal - path: Universal/target/AntiVPN-*.jar - - name: Upload Sponge plugin - uses: actions/upload-artifact@v4 - with: - name: AntiVPN-Sponge - path: Sponge/target/Sponge-*.jar - release: - name: Create Release - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Download AntiVPN - uses: actions/download-artifact@v5 - with: - name: AntiVPN-Universal - - name: Download Sponge plugin - uses: actions/download-artifact@v5 - with: - name: AntiVPN-Sponge - name: Get Version Number from Pom id: get_version run: echo "VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV @@ -69,17 +44,17 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: v${{ github.run_number }} - release_name: Release v${{ github.run_number }} - draft: false - prerelease: false - body: ${{ steps.changelog.outputs.content }} + tag_name: v${{ env.VERSION }} + release_name: Release v${{ env.VERSION }} + draft: false + prerelease: false + body: ${{ steps.changelog.outputs.content }} - uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: AntiVPN-*-universal.jar + asset_path: Universal/target/AntiVPN-*.jar asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar asset_content_type: application/java-archive - uses: actions/upload-release-asset@v1 @@ -87,7 +62,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: Sponge-*.jar + asset_path: Sponge/target/Sponge-*.jar asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar asset_content_type: application/java-archive - From fe2f9271d8421cf87c8fe7f873ee3c2943838a08 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 30 Sep 2025 11:47:14 -0400 Subject: [PATCH 07/15] Changing path...again --- .github/workflows/create-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index aae75c2..3c1cd40 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -54,7 +54,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: Universal/target/AntiVPN-*.jar + asset_path: ./Universal/target/AntiVPN-${{ env.VERSION }}-universal.jar asset_name: AntiVPN-Universal-v${{ env.VERSION }}.jar asset_content_type: application/java-archive - uses: actions/upload-release-asset@v1 @@ -62,6 +62,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: Sponge/target/Sponge-*.jar + asset_path: ./Sponge/target/Sponge-${{ env.VERSION }}.jar asset_name: AntiVPN-Sponge-v${{ env.VERSION }}.jar asset_content_type: application/java-archive From 606144d4043055d089241598d079d794e1c857b9 Mon Sep 17 00:00:00 2001 From: Dawson Date: Tue, 2 Dec 2025 10:24:38 -0500 Subject: [PATCH 08/15] Start of project restructure to use a JarInJarClassLoader --- Bukkit/Loader/pom.xml | 91 +++++++++ .../bukkit/loader/BukkitLoaderPlugin.java | 35 ++++ .../src/main/resources/plugin.yml | 0 Bukkit/Plugin/pom.xml | 102 ++++++++++ .../antivpn/bukkit/BukkitCommandExecutor.java | 0 .../antivpn/bukkit/BukkitListener.java | 6 +- .../brighten/antivpn/bukkit/BukkitPlayer.java | 2 +- .../antivpn/bukkit/BukkitPlayerExecutor.java | 0 .../brighten/antivpn/bukkit/BukkitPlugin.java | 30 ++- .../antivpn/bukkit/PlayerCommandRunner.java | 2 +- .../antivpn/bukkit/command/BukkitCommand.java | 0 Bukkit/pom.xml | 82 +------- Bungee/pom.xml | 2 +- Common/Source/pom.xml | 178 ++++++++++++++++++ .../java/dev/brighten/antivpn/AntiVPN.java | 0 .../dev/brighten/antivpn/api/APIPlayer.java | 0 .../dev/brighten/antivpn/api/CheckResult.java | 0 .../brighten/antivpn/api/OfflinePlayer.java | 0 .../brighten/antivpn/api/PlayerExecutor.java | 0 .../dev/brighten/antivpn/api/ResultType.java | 0 .../dev/brighten/antivpn/api/VPNConfig.java | 0 .../dev/brighten/antivpn/api/VPNExecutor.java | 0 .../dev/brighten/antivpn/command/Command.java | 0 .../antivpn/command/CommandExecutor.java | 0 .../antivpn/command/impl/AlertsCommand.java | 0 .../command/impl/AllowlistCommand.java | 0 .../antivpn/command/impl/AntiVPNCommand.java | 0 .../command/impl/ClearCacheCommand.java | 0 .../antivpn/command/impl/LookupCommand.java | 0 .../antivpn/command/impl/PlanCommand.java | 0 .../antivpn/command/impl/ReloadCommand.java | 0 .../antivpn/database/VPNDatabase.java | 0 .../antivpn/database/local/H2VPN.java | 0 .../antivpn/database/mongo/MongoVPN.java | 0 .../antivpn/database/sql/MySqlVPN.java | 0 .../sql/utils/ExecutableStatement.java | 0 .../antivpn/database/sql/utils/MySQL.java | 0 .../sql/utils/NonClosableConnection.java | 0 .../antivpn/database/sql/utils/Query.java | 0 .../database/sql/utils/ResultSetIterator.java | 0 .../antivpn/depends/LibraryLoader.java | 0 .../antivpn/depends/MavenLibraries.java | 0 .../antivpn/depends/MavenLibrary.java | 0 .../brighten/antivpn/depends/Relocate.java | 0 .../brighten/antivpn/depends/Repository.java | 0 .../antivpn/depends/URLClassLoaderAccess.java | 0 .../antivpn/message/MessageHandler.java | 0 .../brighten/antivpn/message/VpnString.java | 0 .../brighten/antivpn/utils/ConfigDefault.java | 0 .../brighten/antivpn/utils/EvictingMap.java | 0 .../utils/ExtraObjectsMethodsForWeb.java | 0 .../dev/brighten/antivpn/utils/MiscUtils.java | 0 .../antivpn/utils/NonnullByDefault.java | 0 .../brighten/antivpn/utils/NullnessCasts.java | 0 .../brighten/antivpn/utils/Preconditions.java | 0 .../brighten/antivpn/utils/StringUtil.java | 0 .../dev/brighten/antivpn/utils/Supplier.java | 0 .../dev/brighten/antivpn/utils/Suppliers.java | 0 .../dev/brighten/antivpn/utils/Tuple.java | 0 .../antivpn/utils/config/Configuration.java | 0 .../utils/config/ConfigurationProvider.java | 0 .../utils/config/YamlConfiguration.java | 0 .../dev/brighten/antivpn/utils/json/CDL.java | 0 .../brighten/antivpn/utils/json/Cookie.java | 0 .../antivpn/utils/json/CookieList.java | 0 .../dev/brighten/antivpn/utils/json/HTTP.java | 0 .../antivpn/utils/json/HTTPTokener.java | 0 .../antivpn/utils/json/JSONArray.java | 0 .../antivpn/utils/json/JSONException.java | 0 .../brighten/antivpn/utils/json/JSONML.java | 0 .../antivpn/utils/json/JSONObject.java | 0 .../antivpn/utils/json/JSONString.java | 0 .../antivpn/utils/json/JSONStringer.java | 0 .../antivpn/utils/json/JSONTokener.java | 0 .../antivpn/utils/json/JSONWriter.java | 0 .../antivpn/utils/json/JsonReader.java | 0 .../dev/brighten/antivpn/utils/json/XML.java | 0 .../antivpn/utils/json/XMLTokener.java | 0 .../brighten/antivpn/web/FunkemunkyAPI.java | 0 .../antivpn/web/objects/QueryResponse.java | 0 .../antivpn/web/objects/VPNResponse.java | 0 .../src/main/resources/config.yml | 0 Common/loader-utils/pom.xml | 48 +++++ .../antivpn/loader/JarInJarClassLoader.java | 155 +++++++++++++++ .../antivpn/loader/LoaderBootstrap.java | 41 ++++ .../antivpn/loader/LoadingException.java | 41 ++++ Common/pom.xml | 163 +--------------- Sponge/pom.xml | 10 +- Universal/pom.xml | 4 +- Velocity/pom.xml | 14 +- 90 files changed, 741 insertions(+), 265 deletions(-) create mode 100644 Bukkit/Loader/pom.xml create mode 100644 Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java rename Bukkit/{ => Loader}/src/main/resources/plugin.yml (100%) create mode 100644 Bukkit/Plugin/pom.xml rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/BukkitCommandExecutor.java (100%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java (96%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java (94%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayerExecutor.java (100%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java (85%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java (96%) rename Bukkit/{ => Plugin}/src/main/java/dev/brighten/antivpn/bukkit/command/BukkitCommand.java (100%) create mode 100644 Common/Source/pom.xml rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/AntiVPN.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/APIPlayer.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/CheckResult.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/OfflinePlayer.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/ResultType.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/VPNConfig.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/Command.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/ClearCacheCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/PlanCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/command/impl/ReloadCommand.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/VPNDatabase.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/local/H2VPN.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/mongo/MongoVPN.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/utils/ExecutableStatement.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/utils/NonClosableConnection.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/utils/Query.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/database/sql/utils/ResultSetIterator.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/LibraryLoader.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/MavenLibraries.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/MavenLibrary.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/Relocate.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/Repository.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/depends/URLClassLoaderAccess.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/message/MessageHandler.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/message/VpnString.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/ConfigDefault.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/EvictingMap.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/ExtraObjectsMethodsForWeb.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/NonnullByDefault.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/NullnessCasts.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/Preconditions.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/StringUtil.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/Supplier.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/Suppliers.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/Tuple.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/config/Configuration.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/config/ConfigurationProvider.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/config/YamlConfiguration.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/CDL.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/XML.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/web/FunkemunkyAPI.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/web/objects/QueryResponse.java (100%) rename Common/{ => Source}/src/main/java/dev/brighten/antivpn/web/objects/VPNResponse.java (100%) rename Common/{ => Source}/src/main/resources/config.yml (100%) create mode 100644 Common/loader-utils/pom.xml create mode 100644 Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java create mode 100644 Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoaderBootstrap.java create mode 100644 Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoadingException.java diff --git a/Bukkit/Loader/pom.xml b/Bukkit/Loader/pom.xml new file mode 100644 index 0000000..5f80b67 --- /dev/null +++ b/Bukkit/Loader/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + dev.brighten.antivpn + Bukkit + 1.9.4 + + dev.brighten.antivpn.bukkit + Loader + + + 17 + 17 + UTF-8 + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + true + + + antivpn-bukkit.jarinjar + ${project.parent.basedir}/Plugin/target/Plugin-${project.version}.jar + + + + + + + + + + src/main/resources + true + + + + + + + org.spigotmc + spigot-api + 1.20.2-R0.1-SNAPSHOT + provided + + + dev.brighten.antivpn + Plugin + ${project.version} + provided + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + + \ No newline at end of file diff --git a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java new file mode 100644 index 0000000..d953c38 --- /dev/null +++ b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java @@ -0,0 +1,35 @@ +package dev.brighten.antivpn.bukkit.loader; + +import dev.brighten.antivpn.loader.JarInJarClassLoader; +import dev.brighten.antivpn.loader.LoaderBootstrap; +import org.bukkit.plugin.java.JavaPlugin; + +public class BukkitLoaderPlugin extends JavaPlugin { + + private static final String JAR_NAME = "antivpn-bukkit.jarinjar"; + private static final String BOOTSTRAP_CLASS = "me.lucko.luckperms.bukkit.LPBukkitBootstrap"; + + private final LoaderBootstrap plugin; + + public BukkitLoaderPlugin() { + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); + } + + @Override + public void onLoad() { + this.plugin.onLoad(getDataFolder()); + } + + @Override + public void onEnable() { + this.plugin.onEnable(); + } + + @Override + public void onDisable() { + this.plugin.onDisable(); + } + + +} diff --git a/Bukkit/src/main/resources/plugin.yml b/Bukkit/Loader/src/main/resources/plugin.yml similarity index 100% rename from Bukkit/src/main/resources/plugin.yml rename to Bukkit/Loader/src/main/resources/plugin.yml diff --git a/Bukkit/Plugin/pom.xml b/Bukkit/Plugin/pom.xml new file mode 100644 index 0000000..cae0a10 --- /dev/null +++ b/Bukkit/Plugin/pom.xml @@ -0,0 +1,102 @@ + + + 4.0.0 + + dev.brighten.antivpn + Bukkit + 1.9.4 + + + Plugin + + + 17 + 17 + UTF-8 + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + true + + + org.bstats + + dev.brighten.antivpn.bukkit.org.bstats + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + + + + + + + + src/main/resources + true + + + + + + + org.spigotmc + spigot-api + 1.20.2-R0.1-SNAPSHOT + provided + + + dev.brighten.antivpn + Source + 1.9.4 + compile + + + org.bstats + bstats-bukkit + 2.2.1 + compile + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + + \ No newline at end of file diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitCommandExecutor.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitCommandExecutor.java similarity index 100% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitCommandExecutor.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitCommandExecutor.java diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java similarity index 96% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java index 9c51ef6..d509b18 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitListener.java @@ -25,8 +25,8 @@ public class BukkitListener extends VPNExecutor implements Listener { @Override public void registerListeners() { - BukkitPlugin.pluginInstance.getServer().getPluginManager() - .registerEvents(this, BukkitPlugin.pluginInstance); + Bukkit.getPluginManager() + .registerEvents(this, BukkitPlugin.pluginInstance.getPlugin()); } @Override @@ -53,7 +53,7 @@ public class BukkitListener extends VPNExecutor implements Listener { @Override public void disablePlugin() { HandlerList.unregisterAll(this); - BukkitPlugin.pluginInstance.getServer().getPluginManager().disablePlugin(BukkitPlugin.pluginInstance); + Bukkit.getPluginManager().disablePlugin(BukkitPlugin.pluginInstance.getPlugin()); } @EventHandler(priority = EventPriority.HIGH) diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java similarity index 94% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java index 660094b..5f8e6ac 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayer.java @@ -27,7 +27,7 @@ public class BukkitPlayer extends APIPlayer { public void run() { player.kickPlayer(ChatColor.translateAlternateColorCodes('&', reason)); } - }.runTask(BukkitPlugin.pluginInstance); + }.runTask(BukkitPlugin.pluginInstance.getPlugin()); } else player.kickPlayer(ChatColor.translateAlternateColorCodes('&', reason)); } diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayerExecutor.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayerExecutor.java similarity index 100% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayerExecutor.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlayerExecutor.java diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java similarity index 85% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java index fcd48a0..1153063 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java @@ -7,30 +7,42 @@ import dev.brighten.antivpn.database.VPNDatabase; import dev.brighten.antivpn.database.local.H2VPN; import dev.brighten.antivpn.database.mongo.MongoVPN; import dev.brighten.antivpn.database.sql.MySqlVPN; +import dev.brighten.antivpn.loader.LoaderBootstrap; import lombok.Getter; import org.bstats.bukkit.Metrics; import org.bstats.charts.SimplePie; import org.bukkit.Bukkit; import org.bukkit.command.SimpleCommandMap; import org.bukkit.event.HandlerList; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.SimplePluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; +import java.io.File; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map; -public class BukkitPlugin extends JavaPlugin { +public class BukkitPlugin implements LoaderBootstrap { public static BukkitPlugin pluginInstance; private SimpleCommandMap commandMap; + @Getter + private File dataFolder; private final List registeredCommands = new ArrayList<>(); + @Getter + private Plugin plugin; @Getter private PlayerCommandRunner playerCommandRunner; + @Override + public void onLoad(File dataFolder) { + this.dataFolder = dataFolder; + } + public void onEnable() { pluginInstance = this; @@ -40,21 +52,23 @@ public class BukkitPlugin extends JavaPlugin { playerCommandRunner = new PlayerCommandRunner(); playerCommandRunner.start(); + plugin = Bukkit.getPluginManager().getPlugin("AntiVPN"); + // Loading our bStats metrics to be pushed to https://bstats.org if(AntiVPN.getInstance().getVpnConfig().metrics()) { Bukkit.getLogger().info("Starting bStats metrics..."); - Metrics metrics = new Metrics(this, 12615); + Metrics metrics = new Metrics((JavaPlugin) plugin, 12615); metrics.addCustomChart(new SimplePie("database_used", this::getDatabaseType)); new BukkitRunnable() { public void run() { AntiVPN.getInstance().checked = AntiVPN.getInstance().detections = 0; } - }.runTaskTimerAsynchronously(this, 12000, 12000); + }.runTaskTimerAsynchronously(plugin, 12000, 12000); } Bukkit.getLogger().info("Setting up and registering commands..."); // We need access to the commandMap to register our commands without using the "proper" method - if (pluginInstance.getServer().getPluginManager() instanceof SimplePluginManager manager) { + if (Bukkit.getServer().getPluginManager() instanceof SimplePluginManager manager) { try { Field field = SimplePluginManager.class.getDeclaredField("commandMap"); field.setAccessible(true); @@ -73,7 +87,7 @@ public class BukkitPlugin extends JavaPlugin { registeredCommands.add(newCommand); // This tells Bukkit to register our command for use. - commandMap.register(pluginInstance.getName(), newCommand); + commandMap.register(plugin.getName(), newCommand); } //TODO Finish system before implementing on startup @@ -83,7 +97,7 @@ public class BukkitPlugin extends JavaPlugin { .get()); AntiVPN.getInstance().getMessageHandler().reloadStrings();*/ - reloadConfig(); + plugin.reloadConfig(); } @Override @@ -109,10 +123,10 @@ public class BukkitPlugin extends JavaPlugin { } Bukkit.getLogger().info("Unregistering listeners..."); - HandlerList.unregisterAll(this); + HandlerList.unregisterAll(plugin); Bukkit.getLogger().info("Cancelling any running tasks..."); - Bukkit.getScheduler().cancelTasks(this); + Bukkit.getScheduler().cancelTasks(plugin); } private String getDatabaseType() { diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java similarity index 96% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java index 3a285a8..8ac64a7 100644 --- a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/PlayerCommandRunner.java @@ -35,7 +35,7 @@ public class PlayerCommandRunner { public void run() { action.getAction().run(); } - }.runTask(BukkitPlugin.pluginInstance); + }.runTask(BukkitPlugin.pluginInstance.getPlugin()); playerActions.poll(); } diff --git a/Bukkit/src/main/java/dev/brighten/antivpn/bukkit/command/BukkitCommand.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/command/BukkitCommand.java similarity index 100% rename from Bukkit/src/main/java/dev/brighten/antivpn/bukkit/command/BukkitCommand.java rename to Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/command/BukkitCommand.java diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml index 724a62d..e44a743 100644 --- a/Bukkit/pom.xml +++ b/Bukkit/pom.xml @@ -7,89 +7,19 @@ dev.brighten.antivpn 1.9.4 + pom + + Plugin + Loader + + 4.0.0 Bukkit - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 17 - 17 - -XDignore.symbol.file - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - package - - shade - - - true - - - org.bstats - - dev.brighten.antivpn.bukkit.org.bstats - - - org.yaml.snakeyaml - dev.brighten.antivpn.shaded.org.yaml.snakeyaml - - - - - - - - - - src/main/resources - true - - - - 17 17 - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - - - org.spigotmc - spigot-api - 1.20.2-R0.1-SNAPSHOT - provided - - - dev.brighten.antivpn - Common - 1.9.4 - provided - - - org.bstats - bstats-bukkit - 2.2.1 - compile - - - \ No newline at end of file diff --git a/Bungee/pom.xml b/Bungee/pom.xml index 561d9ac..deba83b 100644 --- a/Bungee/pom.xml +++ b/Bungee/pom.xml @@ -66,7 +66,7 @@ dev.brighten.antivpn - Common + Source 1.9.4 provided diff --git a/Common/Source/pom.xml b/Common/Source/pom.xml new file mode 100644 index 0000000..44fe127 --- /dev/null +++ b/Common/Source/pom.xml @@ -0,0 +1,178 @@ + + + 4.0.0 + + dev.brighten.antivpn + Common + 1.9.4 + + + Source + + + 17 + 17 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + org.projectlombok + lombok + 1.18.30 + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + true + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.github.benmanes.caffeine + dev.brighten.antivpn.shaded.com.github.benmanes.caffeine + + + org.h2 + dev.brighten.antivpn.shaded.org.h2 + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + org.bson + dev.brighten.antivpn.shaded.org.bson + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mongodb + dev.brighten.antivpn.shaded.com.mongodb + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mysql.cj + dev.brighten.antivpn.shaded.com.mysql.cj + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mysql.jdbc + dev.brighten.antivpn.shaded.com.mysql.jdbc + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + + + + + + + + src/main/resources + true + + + + + + + funkemunky-releases + https://nexus.funkemunky.cc/content/repositories/releases/ + + + + + + com.mysql + mysql-connector-j + 9.1.0 + jar + provided + + + com.h2database + h2 + 2.2.220 + provided + + + org.ow2.asm + asm + 9.8 + compile + + + org.ow2.asm + asm-commons + 9.8 + compile + + + org.yaml + snakeyaml + 2.2 + compile + + + com.github.ben-manes.caffeine + caffeine + 3.1.8 + provided + + + + org.mongodb + mongo-java-driver + 3.12.14 + provided + + + + \ No newline at end of file diff --git a/Common/src/main/java/dev/brighten/antivpn/AntiVPN.java b/Common/Source/src/main/java/dev/brighten/antivpn/AntiVPN.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/AntiVPN.java rename to Common/Source/src/main/java/dev/brighten/antivpn/AntiVPN.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/APIPlayer.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/APIPlayer.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/APIPlayer.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/CheckResult.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/CheckResult.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/CheckResult.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/CheckResult.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/OfflinePlayer.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/OfflinePlayer.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/OfflinePlayer.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/OfflinePlayer.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/PlayerExecutor.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/ResultType.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/ResultType.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/ResultType.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/ResultType.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/VPNConfig.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/VPNConfig.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/VPNConfig.java diff --git a/Common/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java b/Common/Source/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java rename to Common/Source/src/main/java/dev/brighten/antivpn/api/VPNExecutor.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/Command.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/Command.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/Command.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/Command.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/CommandExecutor.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AlertsCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AllowlistCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/AntiVPNCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/ClearCacheCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/ClearCacheCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/ClearCacheCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/ClearCacheCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/LookupCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/PlanCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/PlanCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/PlanCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/PlanCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/command/impl/ReloadCommand.java b/Common/Source/src/main/java/dev/brighten/antivpn/command/impl/ReloadCommand.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/command/impl/ReloadCommand.java rename to Common/Source/src/main/java/dev/brighten/antivpn/command/impl/ReloadCommand.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/VPNDatabase.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/VPNDatabase.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/VPNDatabase.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/VPNDatabase.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/local/H2VPN.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/local/H2VPN.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/local/H2VPN.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/local/H2VPN.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/mongo/MongoVPN.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/mongo/MongoVPN.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/mongo/MongoVPN.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/mongo/MongoVPN.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/MySqlVPN.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/ExecutableStatement.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/ExecutableStatement.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/utils/ExecutableStatement.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/ExecutableStatement.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/MySQL.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/NonClosableConnection.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/NonClosableConnection.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/utils/NonClosableConnection.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/NonClosableConnection.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/Query.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/Query.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/utils/Query.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/Query.java diff --git a/Common/src/main/java/dev/brighten/antivpn/database/sql/utils/ResultSetIterator.java b/Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/ResultSetIterator.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/database/sql/utils/ResultSetIterator.java rename to Common/Source/src/main/java/dev/brighten/antivpn/database/sql/utils/ResultSetIterator.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/LibraryLoader.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/LibraryLoader.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/LibraryLoader.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/LibraryLoader.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/MavenLibraries.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/MavenLibraries.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/MavenLibraries.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/MavenLibraries.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/MavenLibrary.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/MavenLibrary.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/MavenLibrary.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/MavenLibrary.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/Relocate.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/Relocate.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/Relocate.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/Relocate.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/Repository.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/Repository.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/Repository.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/Repository.java diff --git a/Common/src/main/java/dev/brighten/antivpn/depends/URLClassLoaderAccess.java b/Common/Source/src/main/java/dev/brighten/antivpn/depends/URLClassLoaderAccess.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/depends/URLClassLoaderAccess.java rename to Common/Source/src/main/java/dev/brighten/antivpn/depends/URLClassLoaderAccess.java diff --git a/Common/src/main/java/dev/brighten/antivpn/message/MessageHandler.java b/Common/Source/src/main/java/dev/brighten/antivpn/message/MessageHandler.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/message/MessageHandler.java rename to Common/Source/src/main/java/dev/brighten/antivpn/message/MessageHandler.java diff --git a/Common/src/main/java/dev/brighten/antivpn/message/VpnString.java b/Common/Source/src/main/java/dev/brighten/antivpn/message/VpnString.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/message/VpnString.java rename to Common/Source/src/main/java/dev/brighten/antivpn/message/VpnString.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/ConfigDefault.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/ConfigDefault.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/ConfigDefault.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/ConfigDefault.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/EvictingMap.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/EvictingMap.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/EvictingMap.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/EvictingMap.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/ExtraObjectsMethodsForWeb.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/ExtraObjectsMethodsForWeb.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/ExtraObjectsMethodsForWeb.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/ExtraObjectsMethodsForWeb.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/MiscUtils.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/NonnullByDefault.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/NonnullByDefault.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/NonnullByDefault.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/NonnullByDefault.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/NullnessCasts.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/NullnessCasts.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/NullnessCasts.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/NullnessCasts.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/Preconditions.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/Preconditions.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/Preconditions.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/Preconditions.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/StringUtil.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/StringUtil.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/StringUtil.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/Supplier.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/Supplier.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/Supplier.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/Supplier.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/Suppliers.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/Suppliers.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/Suppliers.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/Suppliers.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/Tuple.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/Tuple.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/Tuple.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/Tuple.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/config/Configuration.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/config/Configuration.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/config/Configuration.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/config/Configuration.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/config/ConfigurationProvider.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/config/ConfigurationProvider.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/config/ConfigurationProvider.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/config/ConfigurationProvider.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/config/YamlConfiguration.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/config/YamlConfiguration.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/config/YamlConfiguration.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/config/YamlConfiguration.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/CDL.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/CDL.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/CDL.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/CDL.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/Cookie.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/CookieList.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/HTTP.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/HTTPTokener.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONArray.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONException.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONML.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONObject.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONString.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONStringer.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONTokener.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JSONWriter.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/JsonReader.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/XML.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/XML.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/XML.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/XML.java diff --git a/Common/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java b/Common/Source/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java rename to Common/Source/src/main/java/dev/brighten/antivpn/utils/json/XMLTokener.java diff --git a/Common/src/main/java/dev/brighten/antivpn/web/FunkemunkyAPI.java b/Common/Source/src/main/java/dev/brighten/antivpn/web/FunkemunkyAPI.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/web/FunkemunkyAPI.java rename to Common/Source/src/main/java/dev/brighten/antivpn/web/FunkemunkyAPI.java diff --git a/Common/src/main/java/dev/brighten/antivpn/web/objects/QueryResponse.java b/Common/Source/src/main/java/dev/brighten/antivpn/web/objects/QueryResponse.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/web/objects/QueryResponse.java rename to Common/Source/src/main/java/dev/brighten/antivpn/web/objects/QueryResponse.java diff --git a/Common/src/main/java/dev/brighten/antivpn/web/objects/VPNResponse.java b/Common/Source/src/main/java/dev/brighten/antivpn/web/objects/VPNResponse.java similarity index 100% rename from Common/src/main/java/dev/brighten/antivpn/web/objects/VPNResponse.java rename to Common/Source/src/main/java/dev/brighten/antivpn/web/objects/VPNResponse.java diff --git a/Common/src/main/resources/config.yml b/Common/Source/src/main/resources/config.yml similarity index 100% rename from Common/src/main/resources/config.yml rename to Common/Source/src/main/resources/config.yml diff --git a/Common/loader-utils/pom.xml b/Common/loader-utils/pom.xml new file mode 100644 index 0000000..9763696 --- /dev/null +++ b/Common/loader-utils/pom.xml @@ -0,0 +1,48 @@ + + + 4.0.0 + + dev.brighten.antivpn + Common + 1.9.4 + + + loader-utils + + + 17 + 17 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + org.projectlombok + lombok + 1.18.30 + + + + + + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java new file mode 100644 index 0000000..6488c0e --- /dev/null +++ b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java @@ -0,0 +1,155 @@ +/* + * This file is part of LuckPerms, licensed under the MIT License. + * + * Copyright (c) lucko (Luck) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.brighten.antivpn.loader; + +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; + +/** + * Classloader that can load a jar from within another jar file. + * + *

The "loader" jar contains the loading code & public API classes, + * and is class-loaded by the platform.

+ * + *

The inner "plugin" jar contains the plugin itself, and is class-loaded + * by the loading code & this classloader.

+ */ +public class JarInJarClassLoader extends URLClassLoader { + static { + ClassLoader.registerAsParallelCapable(); + } + + /** + * Creates a new jar-in-jar class loader. + * + * @param loaderClassLoader the loader plugin's classloader (setup and created by the platform) + * @param jarResourcePath the path to the jar-in-jar resource within the loader jar + * @throws LoadingException if something unexpectedly bad happens + */ + public JarInJarClassLoader(ClassLoader loaderClassLoader, String jarResourcePath) throws LoadingException { + super(new URL[]{extractJar(loaderClassLoader, jarResourcePath)}, loaderClassLoader); + } + + public void addJarToClasspath(URL url) { + addURL(url); + } + + public void deleteJarResource() { + URL[] urls = getURLs(); + if (urls.length == 0) { + return; + } + + try { + Path path = Paths.get(urls[0].toURI()); + Files.deleteIfExists(path); + } catch (Exception e) { + // ignore + } + } + + /** + * Creates a new plugin instance. + * + * @param bootstrapClass the name of the bootstrap plugin class + * @param loaderPluginType the type of the loader plugin, the only parameter of the bootstrap + * plugin constructor + * @param loaderPlugin the loader plugin instance + * @param the type of the loader plugin + * @return the instantiated bootstrap plugin + */ + public LoaderBootstrap instantiatePlugin(String bootstrapClass, Class loaderPluginType, T loaderPlugin) throws LoadingException { + Class plugin; + try { + plugin = loadClass(bootstrapClass).asSubclass(LoaderBootstrap.class); + } catch (ReflectiveOperationException e) { + throw new LoadingException("Unable to load bootstrap class", e); + } + + Constructor constructor; + try { + constructor = plugin.getConstructor(loaderPluginType); + } catch (ReflectiveOperationException e) { + throw new LoadingException("Unable to get bootstrap constructor", e); + } + + try { + return constructor.newInstance(loaderPlugin); + } catch (ReflectiveOperationException e) { + throw new LoadingException("Unable to create bootstrap plugin instance", e); + } + } + + /** + * Extracts the "jar-in-jar" from the loader plugin into a temporary file, + * then returns a URL that can be used by the {@link JarInJarClassLoader}. + * + * @param loaderClassLoader the classloader for the "host" loader plugin + * @param jarResourcePath the inner jar resource path + * @return a URL to the extracted file + */ + private static URL extractJar(ClassLoader loaderClassLoader, String jarResourcePath) throws LoadingException { + // get the jar-in-jar resource + URL jarInJar = loaderClassLoader.getResource(jarResourcePath); + if (jarInJar == null) { + throw new LoadingException("Could not locate jar-in-jar"); + } + + // create a temporary file + // on posix systems by default this is only read/writable by the process owner + Path path; + try { + path = Files.createTempFile("luckperms-jarinjar", ".jar.tmp"); + } catch (IOException e) { + throw new LoadingException("Unable to create a temporary file", e); + } + + // mark that the file should be deleted on exit + path.toFile().deleteOnExit(); + + // copy the jar-in-jar to the temporary file path + try (InputStream in = jarInJar.openStream()) { + Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + throw new LoadingException("Unable to copy jar-in-jar to temporary path", e); + } + + try { + return path.toUri().toURL(); + } catch (MalformedURLException e) { + throw new LoadingException("Unable to get URL from path", e); + } + } + +} diff --git a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoaderBootstrap.java b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoaderBootstrap.java new file mode 100644 index 0000000..38cbb29 --- /dev/null +++ b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoaderBootstrap.java @@ -0,0 +1,41 @@ +/* + * This file is part of LuckPerms, licensed under the MIT License. + * + * Copyright (c) lucko (Luck) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.brighten.antivpn.loader; + +import java.io.File; + +/** + * Minimal bootstrap plugin, called by the loader plugin. + */ +public interface LoaderBootstrap { + + void onLoad(File dataFolder); + + default void onEnable() {} + + default void onDisable() {} + +} diff --git a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoadingException.java b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoadingException.java new file mode 100644 index 0000000..191ae03 --- /dev/null +++ b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/LoadingException.java @@ -0,0 +1,41 @@ +/* + * This file is part of LuckPerms, licensed under the MIT License. + * + * Copyright (c) lucko (Luck) + * Copyright (c) contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.brighten.antivpn.loader; + +/** + * Runtime exception used if there is a problem during loading + */ +public class LoadingException extends RuntimeException { + + public LoadingException(String message) { + super(message); + } + + public LoadingException(String message, Throwable cause) { + super(message, cause); + } + +} diff --git a/Common/pom.xml b/Common/pom.xml index 7926c16..dff27de 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -7,6 +7,11 @@ dev.brighten.antivpn 1.9.4 + pom + + loader-utils + Source + 4.0.0 Common @@ -16,162 +21,4 @@ 17 - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 17 - 17 - -XDignore.symbol.file - - - org.projectlombok - lombok - 1.18.30 - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - package - - shade - - - true - - - org.yaml.snakeyaml - dev.brighten.antivpn.shaded.org.yaml.snakeyaml - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.github.benmanes.caffeine - dev.brighten.antivpn.shaded.com.github.benmanes.caffeine - - - org.h2 - dev.brighten.antivpn.shaded.org.h2 - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - org.bson - dev.brighten.antivpn.shaded.org.bson - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mongodb - dev.brighten.antivpn.shaded.com.mongodb - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mysql.cj - dev.brighten.antivpn.shaded.com.mysql.cj - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mysql.jdbc - dev.brighten.antivpn.shaded.com.mysql.jdbc - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - - - - - - - - src/main/resources - true - - - - - - - funkemunky-releases - https://nexus.funkemunky.cc/content/repositories/releases/ - - - - - - com.mysql - mysql-connector-j - 9.1.0 - jar - provided - - - com.h2database - h2 - 2.2.220 - provided - - - org.ow2.asm - asm - 9.8 - compile - - - org.ow2.asm - asm-commons - 9.8 - compile - - - org.yaml - snakeyaml - 2.2 - compile - - - com.github.ben-manes.caffeine - caffeine - 3.1.8 - provided - - - - org.mongodb - mongo-java-driver - 3.12.14 - provided - - - \ No newline at end of file diff --git a/Sponge/pom.xml b/Sponge/pom.xml index 188a5f3..c9ce89b 100644 --- a/Sponge/pom.xml +++ b/Sponge/pom.xml @@ -31,7 +31,7 @@
dev.brighten.antivpn - Common + Source 1.9.4 compile @@ -63,8 +63,8 @@ - 21 - 21 + 17 + 17 @@ -74,8 +74,8 @@ maven-compiler-plugin 3.13.0 - 21 - 21 + 17 + 17 -XDignore.symbol.file diff --git a/Universal/pom.xml b/Universal/pom.xml index dfbec0e..260300c 100644 --- a/Universal/pom.xml +++ b/Universal/pom.xml @@ -25,8 +25,8 @@ compile
- dev.brighten.antivpn - Bukkit + dev.brighten.antivpn.bukkit + Loader ${project.version} compile diff --git a/Velocity/pom.xml b/Velocity/pom.xml index 8d2db5a..a8c9a4c 100644 --- a/Velocity/pom.xml +++ b/Velocity/pom.xml @@ -16,23 +16,17 @@ 17 - - - velocity - https://nexus.velocitypowered.com/repository/maven-public/ - - - - com.velocitypowered + com.velocitypowered.local velocity-api 3.4.0-SNAPSHOT - provided + C:/Users/647519/IdeaProjects/AntiVPN/Velocity/velocity-proxy-3.0.1.jar + system dev.brighten.antivpn - Common + Source 1.9.4 provided From 6dc0f13c2c8a5ad3db9ac396b0b968e1949facce Mon Sep 17 00:00:00 2001 From: Dawson Date: Wed, 3 Dec 2025 10:06:57 -0500 Subject: [PATCH 09/15] Undoing the local change I made for dev purposes --- Velocity/pom.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Velocity/pom.xml b/Velocity/pom.xml index a8c9a4c..660054e 100644 --- a/Velocity/pom.xml +++ b/Velocity/pom.xml @@ -16,13 +16,19 @@ 17 + + + velocity + https://nexus.velocitypowered.com/repository/maven-public/ + + + - com.velocitypowered.local + com.velocitypowered velocity-api 3.4.0-SNAPSHOT - C:/Users/647519/IdeaProjects/AntiVPN/Velocity/velocity-proxy-3.0.1.jar - system + provided dev.brighten.antivpn From f4d1c7a62cb2ee9f18ee93c17698e44b421480e0 Mon Sep 17 00:00:00 2001 From: Dawson Date: Wed, 3 Dec 2025 10:11:35 -0500 Subject: [PATCH 10/15] Correcting build process for the rest of the downstream maven poms --- Bukkit/Loader/src/main/resources/plugin.yml | 2 +- Universal/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Bukkit/Loader/src/main/resources/plugin.yml b/Bukkit/Loader/src/main/resources/plugin.yml index 1c9241d..e625e91 100644 --- a/Bukkit/Loader/src/main/resources/plugin.yml +++ b/Bukkit/Loader/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: KauriVPN -main: dev.brighten.antivpn.bukkit.BukkitPlugin +main: dev.brighten.antivpn.bukkit.loader.BukkitLoaderPlugin version: ${project.version} author: funkemunky api-version: 1.13 diff --git a/Universal/pom.xml b/Universal/pom.xml index 260300c..6954189 100644 --- a/Universal/pom.xml +++ b/Universal/pom.xml @@ -20,7 +20,7 @@ dev.brighten.antivpn - Common + Source ${project.version} compile From 011d18ad46c572cab5131708d254f4b6e16c84c5 Mon Sep 17 00:00:00 2001 From: Dawson Date: Wed, 3 Dec 2025 10:30:31 -0500 Subject: [PATCH 11/15] fixing class path for bootstrap class in loader bukkit plugin --- .../antivpn/bukkit/loader/BukkitLoaderPlugin.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java index d953c38..011ca77 100644 --- a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java +++ b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java @@ -4,16 +4,19 @@ import dev.brighten.antivpn.loader.JarInJarClassLoader; import dev.brighten.antivpn.loader.LoaderBootstrap; import org.bukkit.plugin.java.JavaPlugin; +import java.io.IOException; + public class BukkitLoaderPlugin extends JavaPlugin { private static final String JAR_NAME = "antivpn-bukkit.jarinjar"; - private static final String BOOTSTRAP_CLASS = "me.lucko.luckperms.bukkit.LPBukkitBootstrap"; + private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.bukkit.BukkitPlugin"; private final LoaderBootstrap plugin; - public BukkitLoaderPlugin() { - JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); - this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); + public BukkitLoaderPlugin() throws IOException { + try(JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME)) { + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); + } } @Override From c09269cc20e39ec6e529cab2e04bd8d35a124f33 Mon Sep 17 00:00:00 2001 From: Dawson Date: Wed, 3 Dec 2025 20:57:21 -0500 Subject: [PATCH 12/15] Implemented Velocity refactor --- Bukkit/Loader/pom.xml | 2 +- .../bukkit/loader/BukkitLoaderPlugin.java | 9 +- Bukkit/Plugin/pom.xml | 2 +- .../brighten/antivpn/bukkit/BukkitPlugin.java | 11 +- Universal/pom.xml | 2 +- Velocity/VelocityLoader/pom.xml | 109 +++++++++++++++++ .../velocity/VelocityPluginLoader.java | 50 ++++++++ .../src/main/resources/velocity-plugin.json | 2 +- Velocity/VelocityPlugin/pom.xml | 102 ++++++++++++++++ .../antivpn/velocity/VelocityListener.java | 12 +- .../antivpn/velocity/VelocityPlayer.java | 0 .../velocity/VelocityPlayerExecutor.java | 0 .../antivpn/velocity/VelocityPlugin.java | 110 +++++++++--------- .../velocity/command/VelocityCommand.java | 0 .../command/VelocityCommandExecutor.java | 0 Velocity/pom.xml | 77 +----------- pom.xml | 2 + 17 files changed, 340 insertions(+), 150 deletions(-) create mode 100644 Velocity/VelocityLoader/pom.xml create mode 100644 Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java rename Velocity/{ => VelocityLoader}/src/main/resources/velocity-plugin.json (75%) create mode 100644 Velocity/VelocityPlugin/pom.xml rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java (95%) rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayer.java (100%) rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayerExecutor.java (100%) rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java (70%) rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommand.java (100%) rename Velocity/{ => VelocityPlugin}/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommandExecutor.java (100%) diff --git a/Bukkit/Loader/pom.xml b/Bukkit/Loader/pom.xml index 5f80b67..b4dff27 100644 --- a/Bukkit/Loader/pom.xml +++ b/Bukkit/Loader/pom.xml @@ -47,7 +47,7 @@ shade - true + false antivpn-bukkit.jarinjar diff --git a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java index 011ca77..63cc412 100644 --- a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java +++ b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java @@ -4,8 +4,6 @@ import dev.brighten.antivpn.loader.JarInJarClassLoader; import dev.brighten.antivpn.loader.LoaderBootstrap; import org.bukkit.plugin.java.JavaPlugin; -import java.io.IOException; - public class BukkitLoaderPlugin extends JavaPlugin { private static final String JAR_NAME = "antivpn-bukkit.jarinjar"; @@ -13,10 +11,9 @@ public class BukkitLoaderPlugin extends JavaPlugin { private final LoaderBootstrap plugin; - public BukkitLoaderPlugin() throws IOException { - try(JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME)) { - this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); - } + public BukkitLoaderPlugin() { + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); } @Override diff --git a/Bukkit/Plugin/pom.xml b/Bukkit/Plugin/pom.xml index cae0a10..b9bff33 100644 --- a/Bukkit/Plugin/pom.xml +++ b/Bukkit/Plugin/pom.xml @@ -47,7 +47,7 @@ shade - true + false org.bstats diff --git a/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java index 1153063..540780c 100644 --- a/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java +++ b/Bukkit/Plugin/src/main/java/dev/brighten/antivpn/bukkit/BukkitPlugin.java @@ -14,7 +14,6 @@ import org.bstats.charts.SimplePie; import org.bukkit.Bukkit; import org.bukkit.command.SimpleCommandMap; import org.bukkit.event.HandlerList; -import org.bukkit.plugin.Plugin; import org.bukkit.plugin.SimplePluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; @@ -33,7 +32,11 @@ public class BukkitPlugin implements LoaderBootstrap { private File dataFolder; private final List registeredCommands = new ArrayList<>(); @Getter - private Plugin plugin; + private final JavaPlugin plugin; + + public BukkitPlugin(JavaPlugin plugin) { + this.plugin = plugin; + } @Getter private PlayerCommandRunner playerCommandRunner; @@ -52,12 +55,10 @@ public class BukkitPlugin implements LoaderBootstrap { playerCommandRunner = new PlayerCommandRunner(); playerCommandRunner.start(); - plugin = Bukkit.getPluginManager().getPlugin("AntiVPN"); - // Loading our bStats metrics to be pushed to https://bstats.org if(AntiVPN.getInstance().getVpnConfig().metrics()) { Bukkit.getLogger().info("Starting bStats metrics..."); - Metrics metrics = new Metrics((JavaPlugin) plugin, 12615); + Metrics metrics = new Metrics(plugin, 12615); metrics.addCustomChart(new SimplePie("database_used", this::getDatabaseType)); new BukkitRunnable() { public void run() { diff --git a/Universal/pom.xml b/Universal/pom.xml index 6954189..956a675 100644 --- a/Universal/pom.xml +++ b/Universal/pom.xml @@ -38,7 +38,7 @@ dev.brighten.antivpn - Velocity + VelocityPlugin ${project.version} compile diff --git a/Velocity/VelocityLoader/pom.xml b/Velocity/VelocityLoader/pom.xml new file mode 100644 index 0000000..12ea9cf --- /dev/null +++ b/Velocity/VelocityLoader/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + dev.brighten.antivpn + Velocity + 1.9.4 + ../pom.xml + + + VelocityLoader + + + 17 + 17 + UTF-8 + + + + + velocity + https://nexus.velocitypowered.com/repository/maven-public/ + + + + + + com.velocitypowered + velocity-api + 3.4.0-SNAPSHOT + provided + + + org.bstats + bstats-velocity + 2.2.1 + compile + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + dev.brighten.antivpn + VelocityPlugin + 1.9.4 + provided + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + false + + + antivpn-velocity.jarinjar + ${project.parent.basedir}/VelocityPlugin/target/VelocityPlugin-${project.version}.jar + + + + + org.bstats + + dev.brighten.antivpn.velocity.org.bstats + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + + + + + + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java new file mode 100644 index 0000000..8de032d --- /dev/null +++ b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java @@ -0,0 +1,50 @@ +package dev.brighten.antivpn.velocity; + +import com.google.inject.Inject; +import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; +import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; +import com.velocitypowered.api.plugin.Plugin; +import com.velocitypowered.api.plugin.annotation.DataDirectory; +import com.velocitypowered.api.proxy.ProxyServer; +import dev.brighten.antivpn.loader.JarInJarClassLoader; +import dev.brighten.antivpn.loader.LoaderBootstrap; +import org.bstats.velocity.Metrics; + +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Logger; + +@Plugin(id = "kaurivpn", name = "KauriVPN", version = "1.7.1", authors = {"funkemunky"}) +public class VelocityPluginLoader { + + private static final String JAR_NAME = "antivpn-velocity.jarinjar"; + private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.velocity.VelocityPlugin"; + + private final LoaderBootstrap plugin; + + @Inject + public VelocityPluginLoader(ProxyServer server, Logger logger, @DataDirectory Path path, Metrics.Factory metricsFactory) { + Map, Object> instances = new HashMap<>(); + instances.put(ProxyServer.class, server); + instances.put(Logger.class, logger); + instances.put(Path.class, path); + instances.put(String.class, metricsFactory); + instances.put(LoaderBootstrap.class, this); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, Map.class, instances); + plugin.onLoad(path.toFile()); + } + + @Subscribe + public void onInit(ProxyInitializeEvent event) { + plugin.onEnable(); + } + + @Subscribe + public void onDisable(ProxyShutdownEvent event) { + plugin.onDisable(); + } + +} diff --git a/Velocity/src/main/resources/velocity-plugin.json b/Velocity/VelocityLoader/src/main/resources/velocity-plugin.json similarity index 75% rename from Velocity/src/main/resources/velocity-plugin.json rename to Velocity/VelocityLoader/src/main/resources/velocity-plugin.json index 1c547a3..d23d87a 100644 --- a/Velocity/src/main/resources/velocity-plugin.json +++ b/Velocity/VelocityLoader/src/main/resources/velocity-plugin.json @@ -1 +1 @@ -{"id":"kaurivpn","name":"KauriVPN","version":"${project.version}","authors":["funkemunky"],"dependencies":[],"main":"dev.brighten.antivpn.velocity.VelocityPlugin"} +{"id":"kaurivpn","name":"KauriVPN","version":"${project.version}","authors":["funkemunky"],"dependencies":[],"main":"dev.brighten.antivpn.velocity.VelocityPluginLoader"} diff --git a/Velocity/VelocityPlugin/pom.xml b/Velocity/VelocityPlugin/pom.xml new file mode 100644 index 0000000..94655c2 --- /dev/null +++ b/Velocity/VelocityPlugin/pom.xml @@ -0,0 +1,102 @@ + + + 4.0.0 + + dev.brighten.antivpn + AntiVPN + 1.9.4 + ../../pom.xml + + + VelocityPlugin + + + 17 + 17 + UTF-8 + + + + + velocity + https://nexus.velocitypowered.com/repository/maven-public/ + + + + + + com.velocitypowered + velocity-api + 3.4.0-SNAPSHOT + provided + + + dev.brighten.antivpn + Source + 1.9.4 + compile + + + org.bstats + bstats-velocity + 2.2.1 + compile + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + + org.bstats + + dev.brighten.antivpn.velocity.org.bstats + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + + + + package + + shade + + + + + + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java similarity index 95% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java index 8f79deb..242379b 100644 --- a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java +++ b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityListener.java @@ -20,14 +20,14 @@ public class VelocityListener extends VPNExecutor { @Override public void registerListeners() { VelocityPlugin.INSTANCE.getServer().getEventManager() - .register(VelocityPlugin.INSTANCE, this); + .register(VelocityPlugin.INSTANCE.getPluginInstance(), this); - VelocityPlugin.INSTANCE.getServer().getEventManager().register(VelocityPlugin.INSTANCE, DisconnectEvent.class, + VelocityPlugin.INSTANCE.getServer().getEventManager().register(VelocityPlugin.INSTANCE.getPluginInstance(), DisconnectEvent.class, event -> AntiVPN.getInstance() .getPlayerExecutor() .unloadPlayer(event.getPlayer().getUniqueId())); - VelocityPlugin.INSTANCE.getServer().getEventManager().register(VelocityPlugin.INSTANCE, LoginEvent.class, + VelocityPlugin.INSTANCE.getServer().getEventManager().register(VelocityPlugin.INSTANCE.getPluginInstance(), LoginEvent.class, event -> { APIPlayer player = AntiVPN.getInstance().getPlayerExecutor().getPlayer(event.getPlayer().getUniqueId()) .orElse(new OfflinePlayer( @@ -100,7 +100,7 @@ public class VelocityListener extends VPNExecutor { if(AntiVPN.getInstance().getVpnConfig().kickPlayersOnDetect()) { switch (checkResult.resultType()) { case DENIED_PROXY -> VelocityPlugin.INSTANCE.getServer().getScheduler() - .buildTask(VelocityPlugin.INSTANCE, () -> + .buildTask(VelocityPlugin.INSTANCE.getPluginInstance(), () -> event.getPlayer().disconnect(LegacyComponentSerializer.builder() .character('&') .build().deserialize(AntiVPN.getInstance().getVpnConfig() @@ -110,7 +110,7 @@ public class VelocityListener extends VPNExecutor { .replace("%code%", result.getCountryCode())))) .delay(1, TimeUnit.SECONDS).schedule(); case DENIED_COUNTRY -> VelocityPlugin.INSTANCE.getServer().getScheduler() - .buildTask(VelocityPlugin.INSTANCE, () -> + .buildTask(VelocityPlugin.INSTANCE.getPluginInstance(), () -> event.getPlayer().disconnect(LegacyComponentSerializer.builder() .character('&') .build().deserialize(AntiVPN.getInstance().getVpnConfig() @@ -191,7 +191,7 @@ public class VelocityListener extends VPNExecutor { @Override public void disablePlugin() { - VelocityPlugin.INSTANCE.getServer().getEventManager().unregisterListener(VelocityPlugin.INSTANCE, this); + VelocityPlugin.INSTANCE.getServer().getEventManager().unregisterListener(VelocityPlugin.INSTANCE.getPluginInstance(), this); VelocityPlugin.INSTANCE.getServer().getCommandManager().unregister("antivpn"); } } diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayer.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayer.java similarity index 100% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayer.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayer.java diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayerExecutor.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayerExecutor.java similarity index 100% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayerExecutor.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlayerExecutor.java diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java similarity index 70% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java index da0de33..29d3dc4 100644 --- a/Velocity/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java +++ b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/VelocityPlugin.java @@ -1,11 +1,5 @@ package dev.brighten.antivpn.velocity; -import com.google.inject.Inject; -import com.velocitypowered.api.event.Subscribe; -import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; -import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; -import com.velocitypowered.api.plugin.Plugin; -import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; import dev.brighten.antivpn.AntiVPN; import dev.brighten.antivpn.command.Command; @@ -13,18 +7,20 @@ import dev.brighten.antivpn.database.VPNDatabase; import dev.brighten.antivpn.database.local.H2VPN; import dev.brighten.antivpn.database.mongo.MongoVPN; import dev.brighten.antivpn.database.sql.MySqlVPN; +import dev.brighten.antivpn.loader.LoaderBootstrap; import dev.brighten.antivpn.velocity.command.VelocityCommand; import lombok.Getter; import org.bstats.charts.SimplePie; import org.bstats.velocity.Metrics; import javax.annotation.Nullable; +import java.io.File; import java.nio.file.Path; +import java.util.Map; import java.util.logging.Logger; @Getter -@Plugin(id = "kaurivpn", name = "KauriVPN", version = "1.7.1", authors = {"funkemunky"}) -public class VelocityPlugin { +public class VelocityPlugin implements LoaderBootstrap { private final ProxyServer server; private final Logger logger; @@ -37,52 +33,14 @@ public class VelocityPlugin { public static VelocityPlugin INSTANCE; - @Inject - public VelocityPlugin(ProxyServer server, Logger logger, @DataDirectory Path path, Metrics.Factory metricsFactory) { - this.server = server; - this.logger = logger; - this.configDir = path; - this.metricsFactory = metricsFactory; - } + private final Object pluginInstance; - @Subscribe - public void onInit(ProxyInitializeEvent event) { - INSTANCE = this; - logger.info("Loading config..."); - - //Loading plugin - logger.info("Starting AntiVPN services..."); - AntiVPN.start(new VelocityListener(), new VelocityPlayerExecutor(), configDir.toFile()); - - if(AntiVPN.getInstance().getVpnConfig().metrics()) { - logger.info("Starting metrics..."); - metrics = metricsFactory.make(this, 12791); - - metrics.addCustomChart(new SimplePie("database_used", this::getDatabaseType)); - } - - logger.info("Registering commands..."); - for (Command command : AntiVPN.getInstance().getCommands()) { - server.getCommandManager().register(server.getCommandManager().metaBuilder(command.name()) - .aliases(command.aliases()).build(), new VelocityCommand(command)); - } - } - - @Subscribe - public void onDisable(ProxyShutdownEvent event) { - logger.info("Disabling AntiVPN..."); - AntiVPN.getInstance().getExecutor().log("Disabling AntiVPN..."); - - if (AntiVPN.getInstance().getDatabase() != null) { - AntiVPN.getInstance().stop(); - } - - if (metrics != null) { - metrics = null; - } - - INSTANCE = null; - logger.info("Disabled AntiVPN."); + public VelocityPlugin(Map, Object> objectsMap) { + this.server = (ProxyServer) objectsMap.get(ProxyServer.class); + this.logger = (Logger) objectsMap.get(Logger.class); + this.configDir = (Path) objectsMap.get(Path.class); + this.metricsFactory = (Metrics.Factory) objectsMap.get(String.class); + this.pluginInstance = objectsMap.get(LoaderBootstrap.class); } private String getDatabaseType() { @@ -98,4 +56,50 @@ public class VelocityPlugin { return "No-Database"; } } + + @Override + public void onLoad(File dataFolder) { + + } + + @Override + public void onEnable() { + INSTANCE = this; + logger.info("Loading config..."); + + //Loading plugin + logger.info("Starting AntiVPN services..."); + AntiVPN.start(new VelocityListener(), new VelocityPlayerExecutor(), configDir.toFile()); + + + if(AntiVPN.getInstance().getVpnConfig().metrics()) { + logger.info("Starting metrics..."); + metrics = metricsFactory.make(pluginInstance, 12791); + + metrics.addCustomChart(new SimplePie("database_used", this::getDatabaseType)); + } + + logger.info("Registering commands..."); + for (Command command : AntiVPN.getInstance().getCommands()) { + server.getCommandManager().register(server.getCommandManager().metaBuilder(command.name()) + .aliases(command.aliases()).build(), new VelocityCommand(command)); + } + } + + @Override + public void onDisable() { + logger.info("Disabling AntiVPN..."); + AntiVPN.getInstance().getExecutor().log("Disabling AntiVPN..."); + + if (AntiVPN.getInstance().getDatabase() != null) { + AntiVPN.getInstance().stop(); + } + + if (metrics != null) { + metrics = null; + } + + INSTANCE = null; + logger.info("Disabled AntiVPN."); + } } diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommand.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommand.java similarity index 100% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommand.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommand.java diff --git a/Velocity/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommandExecutor.java b/Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommandExecutor.java similarity index 100% rename from Velocity/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommandExecutor.java rename to Velocity/VelocityPlugin/src/main/java/dev/brighten/antivpn/velocity/command/VelocityCommandExecutor.java diff --git a/Velocity/pom.xml b/Velocity/pom.xml index 660054e..a88309c 100644 --- a/Velocity/pom.xml +++ b/Velocity/pom.xml @@ -7,6 +7,7 @@ dev.brighten.antivpn 1.9.4 + pom 4.0.0 Velocity @@ -15,80 +16,4 @@ 17 17 - - - - velocity - https://nexus.velocitypowered.com/repository/maven-public/ - - - - - - com.velocitypowered - velocity-api - 3.4.0-SNAPSHOT - provided - - - dev.brighten.antivpn - Source - 1.9.4 - provided - - - org.bstats - bstats-velocity - 2.2.1 - compile - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 17 - 17 - -XDignore.symbol.file - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - - org.bstats - - dev.brighten.antivpn.velocity.org.bstats - - - org.yaml.snakeyaml - dev.brighten.antivpn.shaded.org.yaml.snakeyaml - - - - - - package - - shade - - - - - - - - src/main/resources - true - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 25ea794..6cd1b17 100644 --- a/pom.xml +++ b/pom.xml @@ -16,6 +16,8 @@ Velocity Sponge Universal + Velocity/VelocityLoader + Velocity/VelocityPlugin From 8faa59f1618f86db66e950f417514ba1a774248e Mon Sep 17 00:00:00 2001 From: Dawson Date: Thu, 4 Dec 2025 08:49:52 -0500 Subject: [PATCH 13/15] Updating to use proxy instead --- Velocity/VelocityLoader/pom.xml | 2 +- Velocity/VelocityPlugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Velocity/VelocityLoader/pom.xml b/Velocity/VelocityLoader/pom.xml index 12ea9cf..1a52d54 100644 --- a/Velocity/VelocityLoader/pom.xml +++ b/Velocity/VelocityLoader/pom.xml @@ -21,7 +21,7 @@ velocity - https://nexus.velocitypowered.com/repository/maven-public/ + https://nexus.funkemunky.cc/repository/papermc-public/ diff --git a/Velocity/VelocityPlugin/pom.xml b/Velocity/VelocityPlugin/pom.xml index 94655c2..8ccae20 100644 --- a/Velocity/VelocityPlugin/pom.xml +++ b/Velocity/VelocityPlugin/pom.xml @@ -21,7 +21,7 @@ velocity - https://nexus.velocitypowered.com/repository/maven-public/ + https://nexus.funkemunky.cc/repository/papermc-public/ From c7734b2294a43c512f63bfd7abc71bb8c8b8dcba Mon Sep 17 00:00:00 2001 From: Dawson Date: Thu, 4 Dec 2025 09:28:21 -0500 Subject: [PATCH 14/15] Refactored so in the future I can combine everything into one jar --- Bukkit/Loader/pom.xml | 4 ++++ .../antivpn/bukkit/loader/BukkitLoaderPlugin.java | 3 ++- Bukkit/Plugin/pom.xml | 2 +- .../antivpn/loader/JarInJarClassLoader.java | 15 +++++++++------ Velocity/VelocityLoader/pom.xml | 4 ++++ .../antivpn/velocity/VelocityPluginLoader.java | 3 ++- Velocity/VelocityPlugin/pom.xml | 2 +- 7 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Bukkit/Loader/pom.xml b/Bukkit/Loader/pom.xml index b4dff27..2de422c 100644 --- a/Bukkit/Loader/pom.xml +++ b/Bukkit/Loader/pom.xml @@ -53,6 +53,10 @@ antivpn-bukkit.jarinjar ${project.parent.basedir}/Plugin/target/Plugin-${project.version}.jar + + antivpn-source.jarinjar + ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar + diff --git a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java index 63cc412..f8ea3c8 100644 --- a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java +++ b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java @@ -7,12 +7,13 @@ import org.bukkit.plugin.java.JavaPlugin; public class BukkitLoaderPlugin extends JavaPlugin { private static final String JAR_NAME = "antivpn-bukkit.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.bukkit.BukkitPlugin"; private final LoaderBootstrap plugin; public BukkitLoaderPlugin() { - JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); } diff --git a/Bukkit/Plugin/pom.xml b/Bukkit/Plugin/pom.xml index b9bff33..e55809e 100644 --- a/Bukkit/Plugin/pom.xml +++ b/Bukkit/Plugin/pom.xml @@ -83,7 +83,7 @@ dev.brighten.antivpn Source 1.9.4 - compile + provided
org.bstats diff --git a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java index 6488c0e..4d8a4c3 100644 --- a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java +++ b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java @@ -35,14 +35,15 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.util.Arrays; /** * Classloader that can load a jar from within another jar file. * - *

The "loader" jar contains the loading code & public API classes, + *

The "loader" jar contains the loading code & public API classes * and is class-loaded by the platform.

* - *

The inner "plugin" jar contains the plugin itself, and is class-loaded + *

The inner "plugin" jar contains the plugin itself and is class-loaded * by the loading code & this classloader.

*/ public class JarInJarClassLoader extends URLClassLoader { @@ -57,8 +58,10 @@ public class JarInJarClassLoader extends URLClassLoader { * @param jarResourcePath the path to the jar-in-jar resource within the loader jar * @throws LoadingException if something unexpectedly bad happens */ - public JarInJarClassLoader(ClassLoader loaderClassLoader, String jarResourcePath) throws LoadingException { - super(new URL[]{extractJar(loaderClassLoader, jarResourcePath)}, loaderClassLoader); + public JarInJarClassLoader(ClassLoader loaderClassLoader, String... jarResourcePath) throws LoadingException { + super(Arrays.stream(jarResourcePath) + .map(path -> extractJar(loaderClassLoader, path)) + .toArray(URL[]::new), loaderClassLoader); } public void addJarToClasspath(URL url) { @@ -127,10 +130,10 @@ public class JarInJarClassLoader extends URLClassLoader { } // create a temporary file - // on posix systems by default this is only read/writable by the process owner + // on posix systems; by default, this is only read/writable by the process owner Path path; try { - path = Files.createTempFile("luckperms-jarinjar", ".jar.tmp"); + path = Files.createTempFile(jarResourcePath, ".jar.tmp"); } catch (IOException e) { throw new LoadingException("Unable to create a temporary file", e); } diff --git a/Velocity/VelocityLoader/pom.xml b/Velocity/VelocityLoader/pom.xml index 1a52d54..5eaa4e1 100644 --- a/Velocity/VelocityLoader/pom.xml +++ b/Velocity/VelocityLoader/pom.xml @@ -81,6 +81,10 @@ antivpn-velocity.jarinjar ${project.parent.basedir}/VelocityPlugin/target/VelocityPlugin-${project.version}.jar + + antivpn-source.jarinjar + ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar + diff --git a/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java index 8de032d..9c7add0 100644 --- a/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java +++ b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; public class VelocityPluginLoader { private static final String JAR_NAME = "antivpn-velocity.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.velocity.VelocityPlugin"; private final LoaderBootstrap plugin; @@ -32,7 +33,7 @@ public class VelocityPluginLoader { instances.put(Path.class, path); instances.put(String.class, metricsFactory); instances.put(LoaderBootstrap.class, this); - JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, Map.class, instances); plugin.onLoad(path.toFile()); } diff --git a/Velocity/VelocityPlugin/pom.xml b/Velocity/VelocityPlugin/pom.xml index 8ccae20..2f794f5 100644 --- a/Velocity/VelocityPlugin/pom.xml +++ b/Velocity/VelocityPlugin/pom.xml @@ -36,7 +36,7 @@ dev.brighten.antivpn Source 1.9.4 - compile + provided
org.bstats From c95c9bb8f37e1e996aff71efe821780d97ed3b60 Mon Sep 17 00:00:00 2001 From: Dawson Date: Thu, 4 Dec 2025 14:19:02 -0500 Subject: [PATCH 15/15] Near final staged for refactor --- Bukkit/Loader/pom.xml | 4 - Bukkit/Plugin/pom.xml | 2 +- Bungee/BungeeLoader/pom.xml | 87 +++++++++++++++++ .../antivpn/bungee/BungeeLoaderPlugin.java | 36 +++++++ .../src/main/resources/bungee.yml | 2 +- Bungee/BungeePlugin/pom.xml | 96 +++++++++++++++++++ .../antivpn/bungee/BungeeListener.java | 6 +- .../brighten/antivpn/bungee/BungeePlayer.java | 0 .../antivpn/bungee/BungeePlayerExecutor.java | 0 .../brighten/antivpn/bungee/BungeePlugin.java | 37 +++++-- .../antivpn/bungee/command/BungeeCommand.java | 0 .../bungee/command/BungeeCommandExecutor.java | 0 Bungee/pom.xml | 75 +-------------- Universal/pom.xml | 16 ++-- Velocity/VelocityLoader/pom.xml | 4 - Velocity/VelocityPlugin/pom.xml | 2 +- pom.xml | 2 + 17 files changed, 265 insertions(+), 104 deletions(-) create mode 100644 Bungee/BungeeLoader/pom.xml create mode 100644 Bungee/BungeeLoader/src/main/java/dev/brighten/antivpn/bungee/BungeeLoaderPlugin.java rename Bungee/{ => BungeeLoader}/src/main/resources/bungee.yml (67%) create mode 100644 Bungee/BungeePlugin/pom.xml rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java (95%) rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/BungeePlayer.java (100%) rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/BungeePlayerExecutor.java (100%) rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java (61%) rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommand.java (100%) rename Bungee/{ => BungeePlugin}/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommandExecutor.java (100%) diff --git a/Bukkit/Loader/pom.xml b/Bukkit/Loader/pom.xml index 2de422c..b4dff27 100644 --- a/Bukkit/Loader/pom.xml +++ b/Bukkit/Loader/pom.xml @@ -53,10 +53,6 @@ antivpn-bukkit.jarinjar ${project.parent.basedir}/Plugin/target/Plugin-${project.version}.jar - - antivpn-source.jarinjar - ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar - diff --git a/Bukkit/Plugin/pom.xml b/Bukkit/Plugin/pom.xml index e55809e..0a35b0c 100644 --- a/Bukkit/Plugin/pom.xml +++ b/Bukkit/Plugin/pom.xml @@ -95,7 +95,7 @@ dev.brighten.antivpn loader-utils 1.9.4 - compile + provided diff --git a/Bungee/BungeeLoader/pom.xml b/Bungee/BungeeLoader/pom.xml new file mode 100644 index 0000000..0aea182 --- /dev/null +++ b/Bungee/BungeeLoader/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + dev.brighten.antivpn + Bungee + 1.9.4 + ../pom.xml + + + dev.brighten.antivpn.bungee + BungeeLoader + + + 17 + 17 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + false + + + antivpn-bungee.jarinjar + ${project.parent.basedir}/BungeePlugin/target/BungeePlugin-${project.version}.jar + + + + + + + + + + src/main/resources + true + + + + + + + net.md-5 + bungeecord-api + 1.21-R0.2 + jar + provided + + + dev.brighten.antivpn + Plugin + ${project.version} + provided + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + + \ No newline at end of file diff --git a/Bungee/BungeeLoader/src/main/java/dev/brighten/antivpn/bungee/BungeeLoaderPlugin.java b/Bungee/BungeeLoader/src/main/java/dev/brighten/antivpn/bungee/BungeeLoaderPlugin.java new file mode 100644 index 0000000..353be25 --- /dev/null +++ b/Bungee/BungeeLoader/src/main/java/dev/brighten/antivpn/bungee/BungeeLoaderPlugin.java @@ -0,0 +1,36 @@ +package dev.brighten.antivpn.bungee; + +import dev.brighten.antivpn.loader.JarInJarClassLoader; +import dev.brighten.antivpn.loader.LoaderBootstrap; +import net.md_5.bungee.api.plugin.Plugin; + +public class BungeeLoaderPlugin extends Plugin { + + private static final String JAR_NAME = "antivpn-bungee.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; + private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.bungee.BungeePlugin"; + + private final LoaderBootstrap plugin; + + public BungeeLoaderPlugin() { + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, Plugin.class, this); + } + + @Override + public void onLoad() { + this.plugin.onLoad(getDataFolder()); + } + + @Override + public void onEnable() { + this.plugin.onEnable(); + } + + @Override + public void onDisable() { + this.plugin.onDisable(); + } + + +} diff --git a/Bungee/src/main/resources/bungee.yml b/Bungee/BungeeLoader/src/main/resources/bungee.yml similarity index 67% rename from Bungee/src/main/resources/bungee.yml rename to Bungee/BungeeLoader/src/main/resources/bungee.yml index b045000..afa76f7 100644 --- a/Bungee/src/main/resources/bungee.yml +++ b/Bungee/BungeeLoader/src/main/resources/bungee.yml @@ -1,5 +1,5 @@ name: KauriVPN -main: dev.brighten.antivpn.bungee.BungeePlugin +main: dev.brighten.antivpn.bungee.BungeeLoaderPlugin description: A simple and fast antivpn plugin. version: ${project.version} author: funkemunky \ No newline at end of file diff --git a/Bungee/BungeePlugin/pom.xml b/Bungee/BungeePlugin/pom.xml new file mode 100644 index 0000000..1727eb0 --- /dev/null +++ b/Bungee/BungeePlugin/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + dev.brighten.antivpn + Bungee + 1.9.4 + ../pom.xml + + + BungeePlugin + + + 17 + 17 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + + org.bstats + + dev.brighten.antivpn.bungee.org.bstats + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + + + + package + + shade + + + + + + + + src/main/resources + true + + + + + + + dev.brighten.antivpn + Source + 1.9.4 + provided + + + net.md-5 + bungeecord-api + 1.21-R0.2 + jar + provided + + + org.bstats + bstats-bungeecord + 2.2.1 + compile + + + dev.brighten.antivpn + loader-utils + 1.9.4 + provided + + + + \ No newline at end of file diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java similarity index 95% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java index ae5c12e..59cd590 100644 --- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java +++ b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeeListener.java @@ -25,7 +25,7 @@ public class BungeeListener extends VPNExecutor implements Listener { @Override public void registerListeners() { BungeePlugin.pluginInstance.getProxy().getPluginManager() - .registerListener(BungeePlugin.pluginInstance, this); + .registerListener(BungeePlugin.pluginInstance.getPlugin(), this); } @Override @@ -51,12 +51,12 @@ public class BungeeListener extends VPNExecutor implements Listener { @Override public void disablePlugin() { - BungeePlugin.pluginInstance.getProxy().getPluginManager().unregisterListeners(BungeePlugin.pluginInstance); + BungeePlugin.pluginInstance.getProxy().getPluginManager().unregisterListeners(BungeePlugin.pluginInstance.getPlugin()); if (cacheResetTask != null) { cacheResetTask.cancel(); cacheResetTask = null; } - BungeePlugin.pluginInstance.getProxy().getPluginManager().unregisterCommands(BungeePlugin.pluginInstance); + BungeePlugin.pluginInstance.getProxy().getPluginManager().unregisterCommands(BungeePlugin.pluginInstance.getPlugin()); BungeePlugin.pluginInstance.onDisable(); } diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlayer.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlayer.java similarity index 100% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlayer.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlayer.java diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlayerExecutor.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlayerExecutor.java similarity index 100% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlayerExecutor.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlayerExecutor.java diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java similarity index 61% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java index 15e29bc..f8361fd 100644 --- a/Bungee/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java +++ b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/BungeePlugin.java @@ -7,39 +7,58 @@ import dev.brighten.antivpn.database.VPNDatabase; import dev.brighten.antivpn.database.local.H2VPN; import dev.brighten.antivpn.database.mongo.MongoVPN; import dev.brighten.antivpn.database.sql.MySqlVPN; +import dev.brighten.antivpn.loader.LoaderBootstrap; +import lombok.Getter; +import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; import org.bstats.bungeecord.Metrics; import org.bstats.charts.SimplePie; +import java.io.File; import java.util.concurrent.TimeUnit; -public class BungeePlugin extends Plugin { +public class BungeePlugin implements LoaderBootstrap { public static BungeePlugin pluginInstance; + + @Getter + private File dataFolder; + + @Getter + private final Plugin plugin; + + public BungeePlugin(Plugin plugin) { + this.plugin = plugin; + } + + @Override + public void onLoad(File dataFolder) { + this.dataFolder = dataFolder; + } @Override public void onEnable() { pluginInstance = this; //Setting up config - getProxy().getLogger().info("Loading config..."); + ProxyServer.getInstance().getLogger().info("Loading config..."); //Loading plugin - getProxy().getLogger().info("Starting AntiVPN services..."); + ProxyServer.getInstance().getLogger().info("Starting AntiVPN services..."); AntiVPN.start(new BungeeListener(), new BungeePlayerExecutor(), getDataFolder()); if(AntiVPN.getInstance().getVpnConfig().metrics()) { - getProxy().getLogger().info("Starting bStats metrics..."); - Metrics metrics = new Metrics(this, 12616); + ProxyServer.getInstance().getLogger().info("Starting bStats metrics..."); + Metrics metrics = new Metrics(getPlugin(), 12616); metrics.addCustomChart(new SimplePie("database_used", this::getDatabaseType)); - getProxy().getScheduler().schedule(this, + ProxyServer.getInstance().getScheduler().schedule(getPlugin(), () -> AntiVPN.getInstance().checked = AntiVPN.getInstance().detections = 0, 10, 10, TimeUnit.MINUTES); } for (Command command : AntiVPN.getInstance().getCommands()) { - getProxy().getPluginManager().registerCommand(pluginInstance, new BungeeCommand(command)); + ProxyServer.getInstance().getPluginManager().registerCommand(getPlugin(), new BungeeCommand(command)); } } @@ -61,4 +80,8 @@ public class BungeePlugin extends Plugin { return "No-Database"; } } + + public ProxyServer getProxy() { + return ProxyServer.getInstance(); + } } diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommand.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommand.java similarity index 100% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommand.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommand.java diff --git a/Bungee/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommandExecutor.java b/Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommandExecutor.java similarity index 100% rename from Bungee/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommandExecutor.java rename to Bungee/BungeePlugin/src/main/java/dev/brighten/antivpn/bungee/command/BungeeCommandExecutor.java diff --git a/Bungee/pom.xml b/Bungee/pom.xml index deba83b..83aee15 100644 --- a/Bungee/pom.xml +++ b/Bungee/pom.xml @@ -7,82 +7,9 @@ dev.brighten.antivpn 1.9.4 + pom 4.0.0 Bungee - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 17 - 17 - -XDignore.symbol.file - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - - org.bstats - - dev.brighten.antivpn.bungee.org.bstats - - - org.yaml.snakeyaml - dev.brighten.antivpn.shaded.org.yaml.snakeyaml - - - - - - package - - shade - - - - - - - - src/main/resources - true - - - - - - 17 - 17 - - - - - dev.brighten.antivpn - Source - 1.9.4 - provided - - - net.md-5 - bungeecord-api - 1.21-R0.2 - jar - provided - - - org.bstats - bstats-bungeecord - 2.2.1 - compile - - - \ No newline at end of file diff --git a/Universal/pom.xml b/Universal/pom.xml index 956a675..44ff3b2 100644 --- a/Universal/pom.xml +++ b/Universal/pom.xml @@ -18,12 +18,6 @@ - - dev.brighten.antivpn - Source - ${project.version} - compile - dev.brighten.antivpn.bukkit Loader @@ -32,13 +26,13 @@ dev.brighten.antivpn - Bungee + VelocityLoader ${project.version} compile - dev.brighten.antivpn - VelocityPlugin + dev.brighten.antivpn.bungee + BungeeLoader ${project.version} compile @@ -61,6 +55,10 @@ false + + antivpn-source.jarinjar + ${project.parent.basedir}/Common/Source/target/Source-${project.version}.jar + diff --git a/Velocity/VelocityLoader/pom.xml b/Velocity/VelocityLoader/pom.xml index 5eaa4e1..1a52d54 100644 --- a/Velocity/VelocityLoader/pom.xml +++ b/Velocity/VelocityLoader/pom.xml @@ -81,10 +81,6 @@ antivpn-velocity.jarinjar ${project.parent.basedir}/VelocityPlugin/target/VelocityPlugin-${project.version}.jar - - antivpn-source.jarinjar - ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar - diff --git a/Velocity/VelocityPlugin/pom.xml b/Velocity/VelocityPlugin/pom.xml index 2f794f5..d475480 100644 --- a/Velocity/VelocityPlugin/pom.xml +++ b/Velocity/VelocityPlugin/pom.xml @@ -48,7 +48,7 @@ dev.brighten.antivpn loader-utils 1.9.4 - compile + provided
diff --git a/pom.xml b/pom.xml index 6cd1b17..f895638 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,8 @@ Universal Velocity/VelocityLoader Velocity/VelocityPlugin + Bungee/BungeeLoader + Bungee/BungeePlugin