diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..94f6f5c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +# Shared TFMC XML formatting; see Docs/POM-CONVENTIONS.md. +[*.xml] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.github/scripts/plugin-artifact.py b/.github/scripts/plugin-artifact.py new file mode 100644 index 0000000..c730186 --- /dev/null +++ b/.github/scripts/plugin-artifact.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Validate the Maven runtime JAR and optionally stage a release bundle.""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import re +import shutil +import zipfile + + +def validate(source, version): + source = Path(source).resolve() + target = Path.cwd().resolve() / "target" + if not source.is_relative_to(target) or not source.is_file(): + raise ValueError("Expected the Maven runtime JAR inside target/") + if not re.fullmatch(r"[a-z][a-z0-9]*-" + re.escape(version) + r"\.jar", source.name): + raise ValueError("Runtime JAR filename must use a lowercase alphanumeric name followed by the Maven version") + with zipfile.ZipFile(source) as jar: + descriptors = {"plugin.yml", "paper-plugin.yml"}.intersection(jar.namelist()) + if not descriptors: + raise ValueError("Runtime JAR has no plugin descriptor") + if jar.testzip() is not None: + raise ValueError("Runtime JAR is corrupt") + for name in descriptors: + text = jar.read(name).decode("utf-8-sig") + versions = re.findall( + r'''^version:[ \t]*(?:"([^"\r\n]*)"|'([^'\r\n]*)'|([^\s#]+))(?:(?:[ \t]+\#[^\r\n]*)|[ \t]*)\r?$''', + text, re.MULTILINE, + ) + if len(versions) != 1 or next((v for v in versions[0] if v), "") != version: + raise ValueError(f"{name} version must match Maven version {version}") + return source + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--jar", required=True, type=Path) + parser.add_argument("--version", required=True) + parser.add_argument("--stage", type=Path) + parser.add_argument("--dependencies", type=Path) + args = parser.parse_args() + try: + source = validate(args.jar, args.version) + if args.stage: + if os.environ["TAG"] != f"v{args.version}": + raise ValueError("Release tag must match the Maven version") + dependencies = json.loads(args.dependencies.read_text()) if args.dependencies else [] + digest = hashlib.sha256(source.read_bytes()).hexdigest() + metadata = { + "repository": os.environ["GITHUB_REPOSITORY"], + "commit": os.environ["GITHUB_SHA"], + "tag": os.environ["TAG"], + "run": f"{os.environ['GITHUB_SERVER_URL']}/{os.environ['GITHUB_REPOSITORY']}/actions/runs/{os.environ['GITHUB_RUN_ID']}", + "plugin_dependencies": dependencies, + "artifact": source.name, + "sha256": digest, + } + args.stage.mkdir() + shutil.copyfile(source, args.stage / source.name) + (args.stage / "SHA256SUMS").write_text(f"{digest} {source.name}\n") + (args.stage / "build.json").write_text(json.dumps(metadata, indent=2) + "\n") + print(f"Verified {source.name}: filename and embedded version match {args.version}") + except (ValueError, OSError, KeyError, zipfile.BadZipFile) as error: + parser.exit(1, f"Plugin artifact validation failed: {error}\n") + + +if __name__ == "__main__": + main() diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..bf8adaf --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,80 @@ +name: Build + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v7 + with: + persist-credentials: false + - uses: actions/setup-java@v6 + with: + distribution: temurin + java-version: '21' + - name: Install shared plugin dependencies + uses: TF-Minecraft/TLibs/.github/actions/setup-plugins@8ef41de589f121c98ff892b10696e7c1feb4ca74 + with: + mode: pinned + + - name: Set build version + id: dev + shell: bash + run: | + dev_version="main-SNAPSHOT" + if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then + dev_version="DEV-$(date -u +%Y%m%d-%H%M)" + fi + mvn -B --no-transfer-progress org.codehaus.mojo:versions-maven-plugin:2.22.0:set \ + -DnewVersion="$dev_version" -DgenerateBackupPoms=false + mvn -B --no-transfer-progress help:evaluate \ + -Dexpression=project.build.finalName -Doutput="$RUNNER_TEMP/final-name" + final_name=$(cat "$RUNNER_TEMP/final-name") + [[ "$final_name" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]] || exit 1 + echo "version=$dev_version" >> "$GITHUB_OUTPUT" + echo "name=$final_name" >> "$GITHUB_OUTPUT" + echo "jar=target/$final_name.jar" >> "$GITHUB_OUTPUT" + + - name: Run unit tests and build + run: mvn -B --no-transfer-progress clean verify -DskipTests=false -Dmaven.test.skip=false + + - name: Verify runtime JAR + env: + ARTIFACT_PATH: ${{ steps.dev.outputs.jar }} + BUILD_VERSION: ${{ steps.dev.outputs.version }} + run: python3 .github/scripts/plugin-artifact.py --jar "$ARTIFACT_PATH" --version "$BUILD_VERSION" + + - if: github.event_name == 'pull_request' + uses: actions/upload-artifact@v7 + with: + name: ${{ steps.dev.outputs.name }}-${{ github.run_id }}-${{ github.run_attempt }} + path: | + ${{ steps.dev.outputs.jar }} + .build/plugin-dependencies.json + include-hidden-files: true + if-no-files-found: error + + - name: Upload unit test reports + if: ${{ !cancelled() && hashFiles('target/surefire-reports/*.xml') != '' }} + uses: actions/upload-artifact@v7 + with: + name: unit-test-reports-${{ github.run_id }}-${{ github.run_attempt }} + path: target/surefire-reports/ + if-no-files-found: error + + - name: Upload coverage reports + if: ${{ !cancelled() && hashFiles('target/site/jacoco/jacoco.xml') != '' }} + uses: actions/upload-artifact@v7 + with: + name: coverage-reports-${{ github.run_id }}-${{ github.run_attempt }} + path: target/site/jacoco/ + if-no-files-found: error diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml new file mode 100644 index 0000000..87d147c --- /dev/null +++ b/.github/workflows/maven-release.yml @@ -0,0 +1,137 @@ +name: Maven plugin release + +on: + workflow_call: + inputs: + java-version: + required: true + type: string + secrets: + DEPS_TOKEN: + required: false + +permissions: + contents: read + +concurrency: + group: plugin-release-${{ github.repository }}-${{ github.ref }} + cancel-in-progress: false + +defaults: + run: + shell: bash + +jobs: + build: + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v7 + with: + persist-credentials: false + + - uses: actions/setup-java@v6 + with: + distribution: temurin + java-version: ${{ inputs.java-version }} + + - name: Validate release version + env: + TAG: ${{ github.ref_name }} + run: | + [[ "$TAG" =~ ^v[0-9]+\.[0-9]+(\.[0-9]+)?(-[0-9A-Za-z]+([.-][0-9A-Za-z]+)*)?$ ]] || { + echo '::error::Expected vMAJOR.MINOR or vMAJOR.MINOR.PATCH, with an optional prerelease suffix.' + exit 1 + } + [[ "${TAG^^}" != *SNAPSHOT* ]] || exit 1 + + - name: Install shared plugin dependencies + uses: TF-Minecraft/TLibs/.github/actions/setup-plugins@8ef41de589f121c98ff892b10696e7c1feb4ca74 + with: + mode: pinned + + - name: Prepare pinned dependencies + env: + GH_TOKEN: ${{ secrets.DEPS_TOKEN }} + run: | + if [[ -f .github/scripts/prepare-release.sh ]]; then + bash .github/scripts/prepare-release.sh + fi + + - name: Set version from tag and build + id: maven + env: + TAG: ${{ github.ref_name }} + run: | + mvn -B --no-transfer-progress org.codehaus.mojo:versions-maven-plugin:2.22.0:set \ + -DnewVersion="${TAG#v}" -DgenerateBackupPoms=false + mvn -B --no-transfer-progress help:evaluate \ + -Dexpression=project.build.finalName -Doutput="$RUNNER_TEMP/final-name" + final_name=$(cat "$RUNNER_TEMP/final-name") + [[ "$final_name" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]] || exit 1 + echo "jar=target/$final_name.jar" >> "$GITHUB_OUTPUT" + mvn -B --no-transfer-progress clean verify -DskipTests=false -Dmaven.test.skip=false + + - name: Stage only the release JAR + env: + ARTIFACT_PATH: ${{ steps.maven.outputs.jar }} + TAG: ${{ github.ref_name }} + run: | + python3 .github/scripts/plugin-artifact.py \ + --jar "$ARTIFACT_PATH" --version "${TAG#v}" \ + --stage "$RUNNER_TEMP/plugin-release" \ + --dependencies .build/plugin-dependencies.json + + - uses: actions/upload-artifact@v7 + with: + name: plugin-release-${{ github.sha }} + path: ${{ runner.temp }}/plugin-release/ + if-no-files-found: error + retention-days: 30 + + publish: + needs: build + runs-on: ubuntu-24.04 + timeout-minutes: 5 + permissions: + contents: write + steps: + - uses: actions/download-artifact@v8 + with: + name: plugin-release-${{ github.sha }} + path: release + + - name: Create draft release + working-directory: release + env: + GH_TOKEN: ${{ github.token }} + GH_REPO: ${{ github.repository }} + TAG: ${{ github.ref_name }} + run: | + sha256sum --check SHA256SUMS + flags=() + if [[ "$TAG" == *-* ]]; then flags+=(--prerelease); fi + gh api --method POST "repos/$GH_REPO/releases/generate-notes" \ + -f tag_name="$TAG" --jq .body > "$RUNNER_TEMP/release-changes.md" + python3 - <<'PY' + import os, re + from pathlib import Path + from urllib.parse import quote + temp = Path(os.environ['RUNNER_TEMP']) + changes = (temp / 'release-changes.md').read_text().strip() + changes = re.sub(r"^## What's Changed\s*", '', changes) + changes = re.sub(r'^(#{1,5}) ', r'\1# ', changes, flags=re.MULTILINE) + lines = ['## Changes', '', changes or 'Initial release.', '', '## Downloads', ''] + assets = sorted([*Path('.').glob('*.jar'), *Path('.').glob('*.tar.gz')]) + assets += [Path('SHA256SUMS'), Path('build.json')] + base = f"https://github.com/{os.environ['GH_REPO']}/releases/download/{quote(os.environ['TAG'], safe='')}/" + for asset in assets: + if not asset.is_file(): + raise SystemExit(f'Missing release asset: {asset}') + description = {'SHA256SUMS': ' — SHA-256 checksums.', 'build.json': ' — Build metadata.'}.get(asset.name, '') + lines.append(f'- [`{asset.name}`]({base}{quote(asset.name)}){description}') + (temp / 'release-notes.md').write_text('\n'.join(lines) + '\n') + PY + gh release create "$TAG" ./*.jar SHA256SUMS build.json \ + --verify-tag --draft --title "$TAG" --notes-file "$RUNNER_TEMP/release-notes.md" "${flags[@]}" diff --git a/.github/workflows/pr-size.yml b/.github/workflows/pr-size.yml new file mode 100644 index 0000000..f407cae --- /dev/null +++ b/.github/workflows/pr-size.yml @@ -0,0 +1,26 @@ +name: PR size + +on: + pull_request: + types: [opened, reopened, synchronize, ready_for_review, converted_to_draft] + +permissions: + contents: read + issues: write + pull-requests: write + +concurrency: + group: pr-size-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + size: + name: PR size + runs-on: ubuntu-24.04 + timeout-minutes: 5 + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + persist-credentials: false + - uses: TF-Minecraft/TLibs/.github/actions/pr-size@0bfb259256648c6139c6a94a0935492830cbbec9 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..241e773 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,18 @@ +name: Release + +on: + push: + tags: ['v*'] + +permissions: + contents: read + +jobs: + release: + permissions: + contents: write + uses: ./.github/workflows/maven-release.yml + with: + java-version: '21' + secrets: + DEPS_TOKEN: ${{ secrets.DEPS_TOKEN }} diff --git a/.gitignore b/.gitignore index 085705a..3f6fe9e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,42 +1,57 @@ - +# Build output +target/ +build/ +out/ +dist/ +nbbuild/ +nbdist/ *.class +dependency-reduced-pom.xml +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties + +# Build dependencies +/.build/ +*.jar +!.mvn/wrapper/maven-wrapper.jar +# Python caches and environments +__pycache__/ +*.py[cod] +.venv/ +venv/ -*.log - - -*.ctxt - - -.mtj.tmp/ - - -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar +# IDE files +.idea/ *.iml +*.ipr +*.iws +.vscode/ +.project +.classpath +.settings/ +nbproject/private/ +.nb-gradle/ - +# Logs and temporary files +*.log hs_err_pid* - - -.metadata -bin/ -tmp/ -*.tmp +replay_pid* *.bak *.swp -*~.nib -*.classpath -*.project -local.properties -.settings/ -.loadpath -dependency-reduced-pom.xml -.recommenders -.idea/ -target/ +*.tmp +*~ + +# Operating system files +.DS_Store +Thumbs.db +Desktop.ini + +# Local investigation notes and test artifacts +/.scratch/ + +# Technical documentation is maintained in TF-Minecraft/Docs +/docs/ diff --git a/.jitpack.yml b/.jitpack.yml deleted file mode 100644 index a202792..0000000 --- a/.jitpack.yml +++ /dev/null @@ -1,2 +0,0 @@ -jdk: - - openjdk21 \ No newline at end of file diff --git a/README.md b/README.md index 0399551..2c3bac2 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,24 @@ # Codex -Minecraft Plugin allows you to create a "Discoveries Inventory" where your players can access information about specific regions, people, monsters they've encountered. Codex is a plugin that adds a little bit of RPG experience to your Minecraft server, by providing context and lore to the player. +> Lore discoveries for TF-Minecraft, maintained from [Ajneb97/Codex](https://github.com/Ajneb97/Codex). -You can create any "Discovery" you want, players will unlock them by entering regions for the first time, talking to NPCs, killing monsters, and you can even unlock discoveries to players by using a console command! So the plugin allows you to create discoveries associated with aspects of other plugins. +Codex gives players a journal of discoveries: places they enter, creatures they +kill and lore that commands unlock. `/codex` opens the journal, and each entry +shows its text once it has been found. This copy tracks upstream 2.12.1 and builds +for Paper 1.21.10. It has no update checker or bStats reporting. -For example, you can create a Region Discovery which will be unlocked if the player arrives at certain city. The player has the possibility to access the Codex by using /codex and read the lore of this city which provides more information. +## Documentation -**Spigot / Paper 1.16.5+** +[Project documentation](https://github.com/TF-Minecraft/Docs/blob/main/projects/Codex/README.md) -## Download Links -- [SpigotMC](https://www.spigotmc.org/resources/codex-rpg-discoveries-1-16-5-26-2.90371/) -- [Modrinth](https://modrinth.com/plugin/codex-rpg-discoveries) +The upstream [Codex wiki](https://ajneb97.gitbook.io/codex) covers categories, +discoveries, actions and placeholders. +## Tests -## Other Links -- [Wiki](https://ajneb97.gitbook.io/codex) -- [bStats](https://bstats.org/plugin/bukkit/Codex/24230) -- [Support me on Ko-fi](https://ko-fi.com/ajneb97) \ No newline at end of file +With Java 21, run `mvn clean verify`. + +## License + +[MIT](LICENSE), copyright Ajneb97. TF-Minecraft changes are released under the +same license. diff --git a/pom.xml b/pom.xml index 360e6df..6477cc8 100644 --- a/pom.xml +++ b/pom.xml @@ -1,72 +1,27 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - cx.ajneb97 - Codex - 2.12.1 + net.tfminecraft + codex + main-SNAPSHOT + + Codex + TFMC-maintained Codex: lore discoveries for TFMC Minecraft servers. + https://github.com/TF-Minecraft/Codex - 21 - 21 + 21 UTF-8 - - - papermc - https://repo.papermc.io/repository/maven-public/ - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - minecraft-repo - https://libraries.minecraft.net/ - - - placeholderapi - https://repo.extendedclip.com/content/repositories/placeholderapi/ - - - sk89q-repo - https://maven.enginehub.org/repo/ - - - enginehub-maven - https://maven.enginehub.org/repo/ - - - nexus - Lumine Releases - https://mvn.lumine.io/repository/maven-public/ - - - magmaguy-repo-releases - MagmaGuy's Repository - https://repo.magmaguy.com/releases - - - jitpack.io - jitpack - https://jitpack.io - - - io.papermc.paper paper-api - 26.1.2.build.69-stable - provided - - - org.spigotmc - spigot-api - 26.3-R0.1-SNAPSHOT + 1.21.10-R0.1-SNAPSHOT provided @@ -119,32 +74,73 @@ + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + minecraft-repo + https://libraries.minecraft.net/ + + + placeholderapi + https://repo.extendedclip.com/content/repositories/placeholderapi/ + + + enginehub-maven + https://maven.enginehub.org/repo/ + + + nexus + Lumine Releases + https://mvn.lumine.io/repository/maven-public/ + + + magmaguy-repo-releases + MagmaGuy's Repository + https://repo.magmaguy.com/releases + + + jitpack.io + jitpack + https://jitpack.io + + + + codex-${project.version} src/main/resources true + + plugin.yml + + + + src/main/resources + false + + plugin.yml + + org.apache.maven.plugins maven-resources-plugin 3.3.1 + org.apache.maven.plugins maven-compiler-plugin - 3.8.1 - - 1.8 - 1.8 - + 3.14.1 org.apache.maven.plugins maven-shade-plugin - 3.2.4 - - + 3.6.2 package @@ -152,10 +148,11 @@ shade + false com.zaxxer.hikari - cx.ajneb97.libs.hikaricp + net.tfminecraft.codex.libs.hikaricp com.zaxxer.hikari.** @@ -167,4 +164,4 @@ - \ No newline at end of file + diff --git a/src/main/java/cx/ajneb97/database/PlayerCallback.java b/src/main/java/cx/ajneb97/database/PlayerCallback.java deleted file mode 100644 index 441562d..0000000 --- a/src/main/java/cx/ajneb97/database/PlayerCallback.java +++ /dev/null @@ -1,9 +0,0 @@ -package cx.ajneb97.database; - - -import cx.ajneb97.model.data.PlayerData; - -public interface PlayerCallback { - - void onDone(PlayerData player); -} diff --git a/src/main/java/cx/ajneb97/managers/UpdateCheckerManager.java b/src/main/java/cx/ajneb97/managers/UpdateCheckerManager.java deleted file mode 100644 index 3451618..0000000 --- a/src/main/java/cx/ajneb97/managers/UpdateCheckerManager.java +++ /dev/null @@ -1,41 +0,0 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.model.internal.UpdateCheckerResult; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; - -public class UpdateCheckerManager { - - private String version; - private String latestVersion; - - public UpdateCheckerManager(String version){ - this.version = version; - } - - public UpdateCheckerResult check(){ - try { - HttpURLConnection con = (HttpURLConnection) new URL( - "https://api.spigotmc.org/legacy/update.php?resource=90371").openConnection(); - int timed_out = 1500; - con.setConnectTimeout(timed_out); - con.setReadTimeout(timed_out); - latestVersion = new BufferedReader(new InputStreamReader(con.getInputStream())).readLine(); - if (latestVersion.length() <= 7) { - if(!version.equals(latestVersion)){ - return UpdateCheckerResult.noErrors(latestVersion); - } - } - return UpdateCheckerResult.noErrors(null); - } catch (Exception ex) { - return UpdateCheckerResult.error(); - } - } - - public String getLatestVersion() { - return latestVersion; - } -} diff --git a/src/main/java/cx/ajneb97/managers/dependencies/Metrics.java b/src/main/java/cx/ajneb97/managers/dependencies/Metrics.java deleted file mode 100644 index f4e812c..0000000 --- a/src/main/java/cx/ajneb97/managers/dependencies/Metrics.java +++ /dev/null @@ -1,920 +0,0 @@ -package cx.ajneb97.managers.dependencies; - -/* - * This Metrics class was auto-generated and can be copied into your project if you are - * not using a build tool like Gradle or Maven for dependency management. - * - * IMPORTANT: You are not allowed to modify this class, except changing the package. - * - * Disallowed modifications include but are not limited to: - * - Remove the option for users to opt-out - * - Change the frequency for data submission - * - Obfuscate the code (every obfuscator should allow you to make an exception for specific files) - * - Reformat the code (if you use a linter, add an exception) - * - * Violations will result in a ban of your plugin and account from bStats. - */ -/* - * This Metrics class was auto-generated and can be copied into your project if you are - * not using a build tool like Gradle or Maven for dependency management. - * - * IMPORTANT: You are not allowed to modify this class, except changing the package. - * - * Disallowed modifications include but are not limited to: - * - Remove the option for users to opt-out - * - Change the frequency for data submission - * - Obfuscate the code (every obfuscator should allow you to make an exception for specific files) - * - Reformat the code (if you use a linter, add an exception) - * - * Violations will result in a ban of your plugin and account from bStats. - */ - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.lang.reflect.Method; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.Callable; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; -import java.util.function.BiConsumer; -import java.util.function.Consumer; -import java.util.function.Supplier; -import java.util.logging.Level; -import java.util.stream.Collectors; -import java.util.zip.GZIPOutputStream; -import javax.net.ssl.HttpsURLConnection; -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - -public class Metrics { - - private final Plugin plugin; - - private final MetricsBase metricsBase; - - /** - * Creates a new Metrics instance. - * - * @param plugin Your plugin instance. - * @param serviceId The id of the service. It can be found at What is my plugin id? - */ - public Metrics(Plugin plugin, int serviceId) { - this.plugin = plugin; - // Get the config file - File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats"); - File configFile = new File(bStatsFolder, "config.yml"); - YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile); - if (!config.isSet("serverUuid")) { - config.addDefault("enabled", true); - config.addDefault("serverUuid", UUID.randomUUID().toString()); - config.addDefault("logFailedRequests", false); - config.addDefault("logSentData", false); - config.addDefault("logResponseStatusText", false); - // Inform the server owners about bStats - config - .options() - .header( - "bStats (https://bStats.org) collects some basic information for plugin authors, like how\n" - + "many people use their plugin and their total player count. It's recommended to keep bStats\n" - + "enabled, but if you're not comfortable with this, you can turn this setting off. There is no\n" - + "performance penalty associated with having metrics enabled, and data sent to bStats is fully\n" - + "anonymous.\n" - + "Learn more here: https://bstats.org/docs/server-owners") - .copyDefaults(true); - try { - config.save(configFile); - } catch (IOException ignored) { - } - } - // Load the data - boolean enabled = config.getBoolean("enabled", true); - String serverUUID = config.getString("serverUuid"); - boolean logErrors = config.getBoolean("logFailedRequests", false); - boolean logSentData = config.getBoolean("logSentData", false); - boolean logResponseStatusText = config.getBoolean("logResponseStatusText", false); - boolean isFolia = false; - try { - isFolia = Class.forName("io.papermc.paper.threadedregions.RegionizedServer") != null; - } catch (Exception e) { - } - metricsBase = - new // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - // See https://github.com/Bastian/bstats-metrics/pull/126 - MetricsBase( - "bukkit", - serverUUID, - serviceId, - enabled, - this::appendPlatformData, - this::appendServiceData, - isFolia - ? null - : submitDataTask -> Bukkit.getScheduler().runTask(plugin, submitDataTask), - plugin::isEnabled, - (message, error) -> this.plugin.getLogger().log(Level.WARNING, message, error), - (message) -> this.plugin.getLogger().log(Level.INFO, message), - logErrors, - logSentData, - logResponseStatusText, - false); - } - - /** Shuts down the underlying scheduler service. */ - public void shutdown() { - metricsBase.shutdown(); - } - - /** - * Adds a custom chart. - * - * @param chart The chart to add. - */ - public void addCustomChart(CustomChart chart) { - metricsBase.addCustomChart(chart); - } - - private void appendPlatformData(JsonObjectBuilder builder) { - builder.appendField("playerAmount", getPlayerAmount()); - builder.appendField("onlineMode", Bukkit.getOnlineMode() ? 1 : 0); - builder.appendField("bukkitVersion", Bukkit.getVersion()); - builder.appendField("bukkitName", Bukkit.getName()); - builder.appendField("javaVersion", System.getProperty("java.version")); - builder.appendField("osName", System.getProperty("os.name")); - builder.appendField("osArch", System.getProperty("os.arch")); - builder.appendField("osVersion", System.getProperty("os.version")); - builder.appendField("coreCount", Runtime.getRuntime().availableProcessors()); - } - - private void appendServiceData(JsonObjectBuilder builder) { - builder.appendField("pluginVersion", plugin.getDescription().getVersion()); - } - - private int getPlayerAmount() { - try { - // Around MC 1.8 the return type was changed from an array to a collection, - // This fixes java.lang.NoSuchMethodError: - // org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection; - Method onlinePlayersMethod = Class.forName("org.bukkit.Server").getMethod("getOnlinePlayers"); - return onlinePlayersMethod.getReturnType().equals(Collection.class) - ? ((Collection) onlinePlayersMethod.invoke(Bukkit.getServer())).size() - : ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length; - } catch (Exception e) { - // Just use the new method if the reflection failed - return Bukkit.getOnlinePlayers().size(); - } - } - - public static class MetricsBase { - - /** The version of the Metrics class. */ - public static final String METRICS_VERSION = "3.2.1"; - - private static final String REPORT_URL = "https://bStats.org/api/v2/data/%s"; - - private final ScheduledExecutorService scheduler; - - private final String platform; - - private final String serverUuid; - - private final int serviceId; - - private final Consumer appendPlatformDataConsumer; - - private final Consumer appendServiceDataConsumer; - - private final Consumer submitTaskConsumer; - - private final Supplier checkServiceEnabledSupplier; - - private final BiConsumer errorLogger; - - private final Consumer infoLogger; - - private final boolean logErrors; - - private final boolean logSentData; - - private final boolean logResponseStatusText; - - private final Set customCharts = new HashSet<>(); - - private final boolean enabled; - - /** - * Creates a new MetricsBase class instance. - * - * @param platform The platform of the service. - * @param serviceId The id of the service. - * @param serverUuid The server uuid. - * @param enabled Whether or not data sending is enabled. - * @param appendPlatformDataConsumer A consumer that receives a {@code JsonObjectBuilder} and - * appends all platform-specific data. - * @param appendServiceDataConsumer A consumer that receives a {@code JsonObjectBuilder} and - * appends all service-specific data. - * @param submitTaskConsumer A consumer that takes a runnable with the submit task. This can be - * used to delegate the data collection to a another thread to prevent errors caused by - * concurrency. Can be {@code null}. - * @param checkServiceEnabledSupplier A supplier to check if the service is still enabled. - * @param errorLogger A consumer that accepts log message and an error. - * @param infoLogger A consumer that accepts info log messages. - * @param logErrors Whether or not errors should be logged. - * @param logSentData Whether or not the sent data should be logged. - * @param logResponseStatusText Whether or not the response status text should be logged. - * @param skipRelocateCheck Whether or not the relocate check should be skipped. - */ - public MetricsBase( - String platform, - String serverUuid, - int serviceId, - boolean enabled, - Consumer appendPlatformDataConsumer, - Consumer appendServiceDataConsumer, - Consumer submitTaskConsumer, - Supplier checkServiceEnabledSupplier, - BiConsumer errorLogger, - Consumer infoLogger, - boolean logErrors, - boolean logSentData, - boolean logResponseStatusText, - boolean skipRelocateCheck) { - ScheduledThreadPoolExecutor scheduler = - new ScheduledThreadPoolExecutor( - 1, - task -> { - Thread thread = new Thread(task, "bStats-Metrics"); - thread.setDaemon(true); - return thread; - }); - // We want delayed tasks (non-periodic) that will execute in the future to be - // cancelled when the scheduler is shutdown. - // Otherwise, we risk preventing the server from shutting down even when - // MetricsBase#shutdown() is called - scheduler.setExecuteExistingDelayedTasksAfterShutdownPolicy(false); - this.scheduler = scheduler; - this.platform = platform; - this.serverUuid = serverUuid; - this.serviceId = serviceId; - this.enabled = enabled; - this.appendPlatformDataConsumer = appendPlatformDataConsumer; - this.appendServiceDataConsumer = appendServiceDataConsumer; - this.submitTaskConsumer = submitTaskConsumer; - this.checkServiceEnabledSupplier = checkServiceEnabledSupplier; - this.errorLogger = errorLogger; - this.infoLogger = infoLogger; - this.logErrors = logErrors; - this.logSentData = logSentData; - this.logResponseStatusText = logResponseStatusText; - if (!skipRelocateCheck) { - checkRelocation(); - } - if (enabled) { - // WARNING: Removing the option to opt-out will get your plugin banned from - // bStats - startSubmitting(); - } - } - - public void addCustomChart(CustomChart chart) { - this.customCharts.add(chart); - } - - public void shutdown() { - scheduler.shutdown(); - } - - private void startSubmitting() { - final Runnable submitTask = - () -> { - if (!enabled || !checkServiceEnabledSupplier.get()) { - // Submitting data or service is disabled - scheduler.shutdown(); - return; - } - if (submitTaskConsumer != null) { - submitTaskConsumer.accept(this::submitData); - } else { - this.submitData(); - } - }; - // Many servers tend to restart at a fixed time at xx:00 which causes an uneven - // distribution of requests on the - // bStats backend. To circumvent this problem, we introduce some randomness into - // the initial and second delay. - // WARNING: You must not modify and part of this Metrics class, including the - // submit delay or frequency! - // WARNING: Modifying this code will get your plugin banned on bStats. Just - // don't do it! - long initialDelay = (long) (1000 * 60 * (3 + Math.random() * 3)); - long secondDelay = (long) (1000 * 60 * (Math.random() * 30)); - scheduler.schedule(submitTask, initialDelay, TimeUnit.MILLISECONDS); - scheduler.scheduleAtFixedRate( - submitTask, initialDelay + secondDelay, 1000 * 60 * 30, TimeUnit.MILLISECONDS); - } - - private void submitData() { - final JsonObjectBuilder baseJsonBuilder = new JsonObjectBuilder(); - appendPlatformDataConsumer.accept(baseJsonBuilder); - final JsonObjectBuilder serviceJsonBuilder = new JsonObjectBuilder(); - appendServiceDataConsumer.accept(serviceJsonBuilder); - JsonObjectBuilder.JsonObject[] chartData = - customCharts.stream() - .map(customChart -> customChart.getRequestJsonObject(errorLogger, logErrors)) - .filter(Objects::nonNull) - .toArray(JsonObjectBuilder.JsonObject[]::new); - serviceJsonBuilder.appendField("id", serviceId); - serviceJsonBuilder.appendField("customCharts", chartData); - baseJsonBuilder.appendField("service", serviceJsonBuilder.build()); - baseJsonBuilder.appendField("serverUUID", serverUuid); - baseJsonBuilder.appendField("metricsVersion", METRICS_VERSION); - JsonObjectBuilder.JsonObject data = baseJsonBuilder.build(); - scheduler.execute( - () -> { - try { - sendData(data); - } catch (Exception e) { - // Something went wrong! :( - if (logErrors) { - errorLogger.accept("Could not submit bStats metrics data", e); - } - } - }); - } - - private void sendData(JsonObjectBuilder.JsonObject data) throws Exception { - if (logSentData) { - infoLogger.accept("Sent bStats metrics data: " + data.toString()); - } - String url = String.format(REPORT_URL, platform); - HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection(); - // Compress the data to save bandwidth - byte[] compressedData = compress(data.toString()); - connection.setRequestMethod("POST"); - connection.addRequestProperty("Accept", "application/json"); - connection.addRequestProperty("Connection", "close"); - connection.addRequestProperty("Content-Encoding", "gzip"); - connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length)); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setRequestProperty("User-Agent", "Metrics-Service/1"); - connection.setDoOutput(true); - try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) { - outputStream.write(compressedData); - } - StringBuilder builder = new StringBuilder(); - try (BufferedReader bufferedReader = - new BufferedReader(new InputStreamReader(connection.getInputStream()))) { - String line; - while ((line = bufferedReader.readLine()) != null) { - builder.append(line); - } - } - if (logResponseStatusText) { - infoLogger.accept("Sent data to bStats and received response: " + builder); - } - } - - /** Checks that the class was properly relocated. */ - private void checkRelocation() { - // You can use the property to disable the check in your test environment - if (System.getProperty("bstats.relocatecheck") == null - || !System.getProperty("bstats.relocatecheck").equals("false")) { - // Maven's Relocate is clever and changes strings, too. So we have to use this - // little "trick" ... :D - final String defaultPackage = - new String(new byte[] {'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's'}); - final String examplePackage = - new String(new byte[] {'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'}); - // We want to make sure no one just copy & pastes the example and uses the wrong - // package names - if (MetricsBase.class.getPackage().getName().startsWith(defaultPackage) - || MetricsBase.class.getPackage().getName().startsWith(examplePackage)) { - throw new IllegalStateException("bStats Metrics class has not been relocated correctly!"); - } - } - } - - /** - * Gzips the given string. - * - * @param str The string to gzip. - * @return The gzipped string. - */ - private static byte[] compress(final String str) throws IOException { - if (str == null) { - return null; - } - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) { - gzip.write(str.getBytes(StandardCharsets.UTF_8)); - } - return outputStream.toByteArray(); - } - } - - public abstract static class CustomChart { - - private final String chartId; - - protected CustomChart(String chartId) { - if (chartId == null) { - throw new IllegalArgumentException("chartId must not be null"); - } - this.chartId = chartId; - } - - public JsonObjectBuilder.JsonObject getRequestJsonObject( - BiConsumer errorLogger, boolean logErrors) { - JsonObjectBuilder builder = new JsonObjectBuilder(); - builder.appendField("chartId", chartId); - try { - JsonObjectBuilder.JsonObject data = getChartData(); - if (data == null) { - // If the data is null we don't send the chart. - return null; - } - builder.appendField("data", data); - } catch (Throwable t) { - if (logErrors) { - errorLogger.accept("Failed to get data for custom chart with id " + chartId, t); - } - return null; - } - return builder.build(); - } - - protected abstract JsonObjectBuilder.JsonObject getChartData() throws Exception; - } - - public static class SingleLineChart extends CustomChart { - - private final Callable callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public SingleLineChart(String chartId, Callable callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - int value = callable.call(); - if (value == 0) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("value", value).build(); - } - } - - public static class DrilldownPie extends CustomChart { - - private final Callable>> callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public DrilldownPie(String chartId, Callable>> callable) { - super(chartId); - this.callable = callable; - } - - @Override - public JsonObjectBuilder.JsonObject getChartData() throws Exception { - JsonObjectBuilder valuesBuilder = new JsonObjectBuilder(); - Map> map = callable.call(); - if (map == null || map.isEmpty()) { - // Null = skip the chart - return null; - } - boolean reallyAllSkipped = true; - for (Map.Entry> entryValues : map.entrySet()) { - JsonObjectBuilder valueBuilder = new JsonObjectBuilder(); - boolean allSkipped = true; - for (Map.Entry valueEntry : map.get(entryValues.getKey()).entrySet()) { - valueBuilder.appendField(valueEntry.getKey(), valueEntry.getValue()); - allSkipped = false; - } - if (!allSkipped) { - reallyAllSkipped = false; - valuesBuilder.appendField(entryValues.getKey(), valueBuilder.build()); - } - } - if (reallyAllSkipped) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build(); - } - } - - public static class AdvancedBarChart extends CustomChart { - - private final Callable> callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public AdvancedBarChart(String chartId, Callable> callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - JsonObjectBuilder valuesBuilder = new JsonObjectBuilder(); - Map map = callable.call(); - if (map == null || map.isEmpty()) { - // Null = skip the chart - return null; - } - boolean allSkipped = true; - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue().length == 0) { - // Skip this invalid - continue; - } - allSkipped = false; - valuesBuilder.appendField(entry.getKey(), entry.getValue()); - } - if (allSkipped) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build(); - } - } - - public static class SimpleBarChart extends CustomChart { - - private final Callable> callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public SimpleBarChart(String chartId, Callable> callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - JsonObjectBuilder valuesBuilder = new JsonObjectBuilder(); - Map map = callable.call(); - if (map == null || map.isEmpty()) { - // Null = skip the chart - return null; - } - for (Map.Entry entry : map.entrySet()) { - valuesBuilder.appendField(entry.getKey(), new int[] {entry.getValue()}); - } - return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build(); - } - } - - public static class MultiLineChart extends CustomChart { - - private final Callable> callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public MultiLineChart(String chartId, Callable> callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - JsonObjectBuilder valuesBuilder = new JsonObjectBuilder(); - Map map = callable.call(); - if (map == null || map.isEmpty()) { - // Null = skip the chart - return null; - } - boolean allSkipped = true; - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue() == 0) { - // Skip this invalid - continue; - } - allSkipped = false; - valuesBuilder.appendField(entry.getKey(), entry.getValue()); - } - if (allSkipped) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build(); - } - } - - public static class AdvancedPie extends CustomChart { - - private final Callable> callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public AdvancedPie(String chartId, Callable> callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - JsonObjectBuilder valuesBuilder = new JsonObjectBuilder(); - Map map = callable.call(); - if (map == null || map.isEmpty()) { - // Null = skip the chart - return null; - } - boolean allSkipped = true; - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue() == 0) { - // Skip this invalid - continue; - } - allSkipped = false; - valuesBuilder.appendField(entry.getKey(), entry.getValue()); - } - if (allSkipped) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("values", valuesBuilder.build()).build(); - } - } - - public static class SimplePie extends CustomChart { - - private final Callable callable; - - /** - * Class constructor. - * - * @param chartId The id of the chart. - * @param callable The callable which is used to request the chart data. - */ - public SimplePie(String chartId, Callable callable) { - super(chartId); - this.callable = callable; - } - - @Override - protected JsonObjectBuilder.JsonObject getChartData() throws Exception { - String value = callable.call(); - if (value == null || value.isEmpty()) { - // Null = skip the chart - return null; - } - return new JsonObjectBuilder().appendField("value", value).build(); - } - } - - /** - * An extremely simple JSON builder. - * - *

While this class is neither feature-rich nor the most performant one, it's sufficient enough - * for its use-case. - */ - public static class JsonObjectBuilder { - - private StringBuilder builder = new StringBuilder(); - - private boolean hasAtLeastOneField = false; - - public JsonObjectBuilder() { - builder.append("{"); - } - - /** - * Appends a null field to the JSON. - * - * @param key The key of the field. - * @return A reference to this object. - */ - public JsonObjectBuilder appendNull(String key) { - appendFieldUnescaped(key, "null"); - return this; - } - - /** - * Appends a string field to the JSON. - * - * @param key The key of the field. - * @param value The value of the field. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, String value) { - if (value == null) { - throw new IllegalArgumentException("JSON value must not be null"); - } - appendFieldUnescaped(key, "\"" + escape(value) + "\""); - return this; - } - - /** - * Appends an integer field to the JSON. - * - * @param key The key of the field. - * @param value The value of the field. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, int value) { - appendFieldUnescaped(key, String.valueOf(value)); - return this; - } - - /** - * Appends an object to the JSON. - * - * @param key The key of the field. - * @param object The object. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, JsonObject object) { - if (object == null) { - throw new IllegalArgumentException("JSON object must not be null"); - } - appendFieldUnescaped(key, object.toString()); - return this; - } - - /** - * Appends a string array to the JSON. - * - * @param key The key of the field. - * @param values The string array. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, String[] values) { - if (values == null) { - throw new IllegalArgumentException("JSON values must not be null"); - } - String escapedValues = - Arrays.stream(values) - .map(value -> "\"" + escape(value) + "\"") - .collect(Collectors.joining(",")); - appendFieldUnescaped(key, "[" + escapedValues + "]"); - return this; - } - - /** - * Appends an integer array to the JSON. - * - * @param key The key of the field. - * @param values The integer array. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, int[] values) { - if (values == null) { - throw new IllegalArgumentException("JSON values must not be null"); - } - String escapedValues = - Arrays.stream(values).mapToObj(String::valueOf).collect(Collectors.joining(",")); - appendFieldUnescaped(key, "[" + escapedValues + "]"); - return this; - } - - /** - * Appends an object array to the JSON. - * - * @param key The key of the field. - * @param values The integer array. - * @return A reference to this object. - */ - public JsonObjectBuilder appendField(String key, JsonObject[] values) { - if (values == null) { - throw new IllegalArgumentException("JSON values must not be null"); - } - String escapedValues = - Arrays.stream(values).map(JsonObject::toString).collect(Collectors.joining(",")); - appendFieldUnescaped(key, "[" + escapedValues + "]"); - return this; - } - - /** - * Appends a field to the object. - * - * @param key The key of the field. - * @param escapedValue The escaped value of the field. - */ - private void appendFieldUnescaped(String key, String escapedValue) { - if (builder == null) { - throw new IllegalStateException("JSON has already been built"); - } - if (key == null) { - throw new IllegalArgumentException("JSON key must not be null"); - } - if (hasAtLeastOneField) { - builder.append(","); - } - builder.append("\"").append(escape(key)).append("\":").append(escapedValue); - hasAtLeastOneField = true; - } - - /** - * Builds the JSON string and invalidates this builder. - * - * @return The built JSON string. - */ - public JsonObject build() { - if (builder == null) { - throw new IllegalStateException("JSON has already been built"); - } - JsonObject object = new JsonObject(builder.append("}").toString()); - builder = null; - return object; - } - - /** - * Escapes the given string like stated in https://www.ietf.org/rfc/rfc4627.txt. - * - *

This method escapes only the necessary characters '"', '\'. and '\u0000' - '\u001F'. - * Compact escapes are not used (e.g., '\n' is escaped as "\u000a" and not as "\n"). - * - * @param value The value to escape. - * @return The escaped value. - */ - private static String escape(String value) { - final StringBuilder builder = new StringBuilder(); - for (int i = 0; i < value.length(); i++) { - char c = value.charAt(i); - if (c == '"') { - builder.append("\\\""); - } else if (c == '\\') { - builder.append("\\\\"); - } else if (c <= '\u000F') { - builder.append("\\u000").append(Integer.toHexString(c)); - } else if (c <= '\u001F') { - builder.append("\\u00").append(Integer.toHexString(c)); - } else { - builder.append(c); - } - } - return builder.toString(); - } - - /** - * A super simple representation of a JSON object. - * - *

This class only exists to make methods of the {@link JsonObjectBuilder} type-safe and not - * allow a raw string inputs for methods like {@link JsonObjectBuilder#appendField(String, - * JsonObject)}. - */ - public static class JsonObject { - - private final String value; - - private JsonObject(String value) { - this.value = value; - } - - @Override - public String toString() { - return value; - } - } - } -} \ No newline at end of file diff --git a/src/main/java/cx/ajneb97/model/internal/UpdateCheckerResult.java b/src/main/java/cx/ajneb97/model/internal/UpdateCheckerResult.java deleted file mode 100644 index 5a903bc..0000000 --- a/src/main/java/cx/ajneb97/model/internal/UpdateCheckerResult.java +++ /dev/null @@ -1,28 +0,0 @@ -package cx.ajneb97.model.internal; - -public class UpdateCheckerResult { - - private String latestVersion; - private boolean error; - - public UpdateCheckerResult(String latestVersion, boolean error){ - this.latestVersion = latestVersion; - this.error = error; - } - - public String getLatestVersion() { - return latestVersion; - } - - public boolean isError() { - return error; - } - - public static UpdateCheckerResult noErrors(String latestVersion){ - return new UpdateCheckerResult(latestVersion,false); - } - - public static UpdateCheckerResult error(){ - return new UpdateCheckerResult(null,true); - } -} diff --git a/src/main/java/cx/ajneb97/Codex.java b/src/main/java/net/tfminecraft/codex/Codex.java similarity index 78% rename from src/main/java/cx/ajneb97/Codex.java rename to src/main/java/net/tfminecraft/codex/Codex.java index be202d0..d516d12 100644 --- a/src/main/java/cx/ajneb97/Codex.java +++ b/src/main/java/net/tfminecraft/codex/Codex.java @@ -1,23 +1,21 @@ -package cx.ajneb97; - -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.api.ExpansionCodex; -import cx.ajneb97.commands.MainCommand; -import cx.ajneb97.config.ConfigsManager; -import cx.ajneb97.database.MySQLConnection; -import cx.ajneb97.listeners.InventoryListener; -import cx.ajneb97.listeners.PlayerListener; -import cx.ajneb97.listeners.dependencies.EliteMobsListener; -import cx.ajneb97.listeners.dependencies.MythicMobsListener; -import cx.ajneb97.listeners.dependencies.ResidenceListener; -import cx.ajneb97.listeners.dependencies.WorldGuardListener; -import cx.ajneb97.managers.*; -import cx.ajneb97.managers.dependencies.DependencyManager; -import cx.ajneb97.managers.dependencies.Metrics; -import cx.ajneb97.model.internal.UpdateCheckerResult; -import cx.ajneb97.tasks.PlayerDataSaveTask; -import cx.ajneb97.utils.ServerVersion; -import cx.ajneb97.versions.NMSManager; +package net.tfminecraft.codex; + +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.api.ExpansionCodex; +import net.tfminecraft.codex.commands.MainCommand; +import net.tfminecraft.codex.config.ConfigsManager; +import net.tfminecraft.codex.database.MySQLConnection; +import net.tfminecraft.codex.listeners.InventoryListener; +import net.tfminecraft.codex.listeners.PlayerListener; +import net.tfminecraft.codex.listeners.dependencies.EliteMobsListener; +import net.tfminecraft.codex.listeners.dependencies.MythicMobsListener; +import net.tfminecraft.codex.listeners.dependencies.ResidenceListener; +import net.tfminecraft.codex.listeners.dependencies.WorldGuardListener; +import net.tfminecraft.codex.managers.*; +import net.tfminecraft.codex.managers.dependencies.DependencyManager; +import net.tfminecraft.codex.tasks.PlayerDataSaveTask; +import net.tfminecraft.codex.utils.ServerVersion; +import net.tfminecraft.codex.versions.NMSManager; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.PluginDescriptionFile; @@ -42,7 +40,6 @@ public class Codex extends JavaPlugin { private MySQLConnection mySQLConnection; private PlayerDataSaveTask playerDataSaveTask; - private UpdateCheckerManager updateCheckerManager; private VerifyManager verifyManager; public void onEnable(){ @@ -73,7 +70,6 @@ public void onEnable(){ if(getServer().getPluginManager().getPlugin("PlaceholderAPI") != null){ new ExpansionCodex(this).register(); } - Metrics metrics = new Metrics(this,24230); this.verifyManager = new VerifyManager(this); this.verifyManager.verify(); @@ -84,10 +80,6 @@ public void onEnable(){ } Bukkit.getConsoleSender().sendMessage(prefix+MessagesManager.getLegacyColoredMessage("&eHas been enabled! &fVersion: "+version)); - Bukkit.getConsoleSender().sendMessage(prefix+MessagesManager.getLegacyColoredMessage("&eThanks for using my plugin! &f~Ajneb97")); - - updateCheckerManager = new UpdateCheckerManager(version); - updateMessage(updateCheckerManager.check()); } public void onDisable(){ @@ -238,23 +230,6 @@ public VerifyManager getVerifyManager() { return verifyManager; } - public void updateMessage(UpdateCheckerResult result){ - if(!result.isError()){ - String latestVersion = result.getLatestVersion(); - if(latestVersion != null){ - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cThere is a new version available. &e(&7"+latestVersion+"&e)")); - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cYou can download it at: &fhttps://modrinth.com/plugin/codex-rpg-discoveries")); - } - }else{ - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix+" &cError while checking update.")); - } - - } - - public UpdateCheckerManager getUpdateCheckerManager() { - return updateCheckerManager; - } - public void legacyVersionError(){ Bukkit.getConsoleSender().sendMessage(prefix+MessagesManager.getLegacyColoredMessage("&cERROR ENABLING THE PLUGIN!")); Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cYour current config is not supported by the newer")); diff --git a/src/main/java/cx/ajneb97/api/CodexAPI.java b/src/main/java/net/tfminecraft/codex/api/CodexAPI.java similarity index 93% rename from src/main/java/cx/ajneb97/api/CodexAPI.java rename to src/main/java/net/tfminecraft/codex/api/CodexAPI.java index 8014ac6..d96a9c7 100644 --- a/src/main/java/cx/ajneb97/api/CodexAPI.java +++ b/src/main/java/net/tfminecraft/codex/api/CodexAPI.java @@ -1,7 +1,7 @@ -package cx.ajneb97.api; +package net.tfminecraft.codex.api; -import cx.ajneb97.Codex; -import cx.ajneb97.model.data.PlayerData; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.data.PlayerData; import org.bukkit.entity.Player; public class CodexAPI { diff --git a/src/main/java/cx/ajneb97/api/ExpansionCodex.java b/src/main/java/net/tfminecraft/codex/api/ExpansionCodex.java similarity index 98% rename from src/main/java/cx/ajneb97/api/ExpansionCodex.java rename to src/main/java/net/tfminecraft/codex/api/ExpansionCodex.java index 27e02ae..d2dc811 100644 --- a/src/main/java/cx/ajneb97/api/ExpansionCodex.java +++ b/src/main/java/net/tfminecraft/codex/api/ExpansionCodex.java @@ -1,6 +1,6 @@ -package cx.ajneb97.api; +package net.tfminecraft.codex.api; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/commands/MainCommand.java b/src/main/java/net/tfminecraft/codex/commands/MainCommand.java similarity index 96% rename from src/main/java/cx/ajneb97/commands/MainCommand.java rename to src/main/java/net/tfminecraft/codex/commands/MainCommand.java index 8cf6d2b..e15992c 100644 --- a/src/main/java/cx/ajneb97/commands/MainCommand.java +++ b/src/main/java/net/tfminecraft/codex/commands/MainCommand.java @@ -1,14 +1,14 @@ -package cx.ajneb97.commands; - -import cx.ajneb97.Codex; -import cx.ajneb97.managers.InventoryManager; -import cx.ajneb97.managers.MessagesManager; -import cx.ajneb97.managers.PlayerDataManager; -import cx.ajneb97.model.inventory.CommonInventory; -import cx.ajneb97.model.inventory.InventoryPlayer; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.utils.PlayerUtils; +package net.tfminecraft.codex.commands; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.InventoryManager; +import net.tfminecraft.codex.managers.MessagesManager; +import net.tfminecraft.codex.managers.PlayerDataManager; +import net.tfminecraft.codex.model.inventory.CommonInventory; +import net.tfminecraft.codex.model.inventory.InventoryPlayer; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.utils.PlayerUtils; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; diff --git a/src/main/java/cx/ajneb97/config/CategoriesConfigManager.java b/src/main/java/net/tfminecraft/codex/config/CategoriesConfigManager.java similarity index 92% rename from src/main/java/cx/ajneb97/config/CategoriesConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/CategoriesConfigManager.java index 7db40a4..1a0f893 100644 --- a/src/main/java/cx/ajneb97/config/CategoriesConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/CategoriesConfigManager.java @@ -1,13 +1,13 @@ -package cx.ajneb97.config; - -import cx.ajneb97.Codex; -import cx.ajneb97.managers.CategoryManager; -import cx.ajneb97.managers.CommonItemManager; -import cx.ajneb97.model.item.CommonItem; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.DiscoveredOn; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.utils.OtherUtils; +package net.tfminecraft.codex.config; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.CategoryManager; +import net.tfminecraft.codex.managers.CommonItemManager; +import net.tfminecraft.codex.model.item.CommonItem; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.DiscoveredOn; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.utils.OtherUtils; import org.bukkit.configuration.file.FileConfiguration; import java.io.File; diff --git a/src/main/java/cx/ajneb97/config/CommonConfig.java b/src/main/java/net/tfminecraft/codex/config/CommonConfig.java similarity index 97% rename from src/main/java/cx/ajneb97/config/CommonConfig.java rename to src/main/java/net/tfminecraft/codex/config/CommonConfig.java index 8890d90..2afa418 100644 --- a/src/main/java/cx/ajneb97/config/CommonConfig.java +++ b/src/main/java/net/tfminecraft/codex/config/CommonConfig.java @@ -1,6 +1,6 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/src/main/java/cx/ajneb97/config/ConfigsManager.java b/src/main/java/net/tfminecraft/codex/config/ConfigsManager.java similarity index 95% rename from src/main/java/cx/ajneb97/config/ConfigsManager.java rename to src/main/java/net/tfminecraft/codex/config/ConfigsManager.java index ee83880..175de2f 100644 --- a/src/main/java/cx/ajneb97/config/ConfigsManager.java +++ b/src/main/java/net/tfminecraft/codex/config/ConfigsManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; public class ConfigsManager { diff --git a/src/main/java/cx/ajneb97/config/DataFolderConfigManager.java b/src/main/java/net/tfminecraft/codex/config/DataFolderConfigManager.java similarity index 96% rename from src/main/java/cx/ajneb97/config/DataFolderConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/DataFolderConfigManager.java index 7702245..7cc4f4e 100644 --- a/src/main/java/cx/ajneb97/config/DataFolderConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/DataFolderConfigManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import java.io.File; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/config/InventoryConfigManager.java b/src/main/java/net/tfminecraft/codex/config/InventoryConfigManager.java similarity index 90% rename from src/main/java/cx/ajneb97/config/InventoryConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/InventoryConfigManager.java index b25851d..b58319a 100644 --- a/src/main/java/cx/ajneb97/config/InventoryConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/InventoryConfigManager.java @@ -1,12 +1,12 @@ -package cx.ajneb97.config; - -import cx.ajneb97.Codex; -import cx.ajneb97.managers.CommonItemManager; -import cx.ajneb97.managers.InventoryManager; -import cx.ajneb97.model.inventory.CommonInventory; -import cx.ajneb97.model.inventory.CommonInventoryItem; -import cx.ajneb97.model.item.CommonItem; -import cx.ajneb97.utils.OtherUtils; +package net.tfminecraft.codex.config; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.CommonItemManager; +import net.tfminecraft.codex.managers.InventoryManager; +import net.tfminecraft.codex.model.inventory.CommonInventory; +import net.tfminecraft.codex.model.inventory.CommonInventoryItem; +import net.tfminecraft.codex.model.item.CommonItem; +import net.tfminecraft.codex.utils.OtherUtils; import org.bukkit.configuration.file.FileConfiguration; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/config/MainConfigManager.java b/src/main/java/net/tfminecraft/codex/config/MainConfigManager.java similarity index 93% rename from src/main/java/cx/ajneb97/config/MainConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/MainConfigManager.java index 60dd553..b8b715f 100644 --- a/src/main/java/cx/ajneb97/config/MainConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/MainConfigManager.java @@ -1,6 +1,6 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.configuration.file.FileConfiguration; import java.io.IOException; @@ -14,7 +14,6 @@ public class MainConfigManager { private CommonConfig configFile; private boolean isMySQL; - private boolean updateNotify; private String discoveriesDateFormat; private int playerDataSave; private String progressBarPlaceholderFillSymbol; @@ -33,7 +32,6 @@ public MainConfigManager(Codex plugin){ public void configure() { FileConfiguration config = configFile.getConfig(); isMySQL = config.getBoolean("mysql_database.enabled"); - updateNotify = config.getBoolean("update_notify"); discoveriesDateFormat = config.getString("discoveries_date_format"); playerDataSave = config.getInt("player_data_save"); progressBarPlaceholderFillSymbol = config.getString("progress_bar_placeholder.filled_symbol"); @@ -83,10 +81,6 @@ public boolean isMySQL() { return isMySQL; } - public boolean isUpdateNotify() { - return updateNotify; - } - public String getDiscoveriesDateFormat() { return discoveriesDateFormat; } diff --git a/src/main/java/cx/ajneb97/config/MessagesConfigManager.java b/src/main/java/net/tfminecraft/codex/config/MessagesConfigManager.java similarity index 93% rename from src/main/java/cx/ajneb97/config/MessagesConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/MessagesConfigManager.java index 932dd30..d63cc77 100644 --- a/src/main/java/cx/ajneb97/config/MessagesConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/MessagesConfigManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.MessagesManager; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.MessagesManager; import org.bukkit.configuration.file.FileConfiguration; import java.io.IOException; diff --git a/src/main/java/cx/ajneb97/config/PlayersConfigManager.java b/src/main/java/net/tfminecraft/codex/config/PlayersConfigManager.java similarity index 94% rename from src/main/java/cx/ajneb97/config/PlayersConfigManager.java rename to src/main/java/net/tfminecraft/codex/config/PlayersConfigManager.java index 4f7c9dc..b551d9f 100644 --- a/src/main/java/cx/ajneb97/config/PlayersConfigManager.java +++ b/src/main/java/net/tfminecraft/codex/config/PlayersConfigManager.java @@ -1,10 +1,10 @@ -package cx.ajneb97.config; +package net.tfminecraft.codex.config; -import cx.ajneb97.Codex; -import cx.ajneb97.model.data.PlayerData; -import cx.ajneb97.model.data.PlayerDataCategory; -import cx.ajneb97.model.data.PlayerDataDiscovery; -import cx.ajneb97.model.internal.GenericCallback; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.data.PlayerData; +import net.tfminecraft.codex.model.data.PlayerDataCategory; +import net.tfminecraft.codex.model.data.PlayerDataDiscovery; +import net.tfminecraft.codex.model.internal.GenericCallback; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/cx/ajneb97/database/HikariConnection.java b/src/main/java/net/tfminecraft/codex/database/HikariConnection.java similarity index 98% rename from src/main/java/cx/ajneb97/database/HikariConnection.java rename to src/main/java/net/tfminecraft/codex/database/HikariConnection.java index b4ba071..42f4f1e 100644 --- a/src/main/java/cx/ajneb97/database/HikariConnection.java +++ b/src/main/java/net/tfminecraft/codex/database/HikariConnection.java @@ -1,4 +1,4 @@ -package cx.ajneb97.database; +package net.tfminecraft.codex.database; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; diff --git a/src/main/java/cx/ajneb97/database/MySQLConnection.java b/src/main/java/net/tfminecraft/codex/database/MySQLConnection.java similarity index 98% rename from src/main/java/cx/ajneb97/database/MySQLConnection.java rename to src/main/java/net/tfminecraft/codex/database/MySQLConnection.java index 94315a5..499cb91 100644 --- a/src/main/java/cx/ajneb97/database/MySQLConnection.java +++ b/src/main/java/net/tfminecraft/codex/database/MySQLConnection.java @@ -1,10 +1,10 @@ -package cx.ajneb97.database; +package net.tfminecraft.codex.database; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.MessagesManager; -import cx.ajneb97.model.data.PlayerData; -import cx.ajneb97.model.data.PlayerDataCategory; -import cx.ajneb97.model.data.PlayerDataDiscovery; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.MessagesManager; +import net.tfminecraft.codex.model.data.PlayerData; +import net.tfminecraft.codex.model.data.PlayerDataCategory; +import net.tfminecraft.codex.model.data.PlayerDataDiscovery; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.scheduler.BukkitRunnable; diff --git a/src/main/java/net/tfminecraft/codex/database/PlayerCallback.java b/src/main/java/net/tfminecraft/codex/database/PlayerCallback.java new file mode 100644 index 0000000..aa6d694 --- /dev/null +++ b/src/main/java/net/tfminecraft/codex/database/PlayerCallback.java @@ -0,0 +1,9 @@ +package net.tfminecraft.codex.database; + + +import net.tfminecraft.codex.model.data.PlayerData; + +public interface PlayerCallback { + + void onDone(PlayerData player); +} diff --git a/src/main/java/cx/ajneb97/libs/centeredmessage/DefaultFontInfo.java b/src/main/java/net/tfminecraft/codex/libs/centeredmessage/DefaultFontInfo.java similarity index 98% rename from src/main/java/cx/ajneb97/libs/centeredmessage/DefaultFontInfo.java rename to src/main/java/net/tfminecraft/codex/libs/centeredmessage/DefaultFontInfo.java index eb2fb29..850f235 100644 --- a/src/main/java/cx/ajneb97/libs/centeredmessage/DefaultFontInfo.java +++ b/src/main/java/net/tfminecraft/codex/libs/centeredmessage/DefaultFontInfo.java @@ -1,4 +1,4 @@ -package cx.ajneb97.libs.centeredmessage; +package net.tfminecraft.codex.libs.centeredmessage; public enum DefaultFontInfo { diff --git a/src/main/java/cx/ajneb97/libs/titles/TitleAPI.java b/src/main/java/net/tfminecraft/codex/libs/titles/TitleAPI.java similarity index 95% rename from src/main/java/cx/ajneb97/libs/titles/TitleAPI.java rename to src/main/java/net/tfminecraft/codex/libs/titles/TitleAPI.java index 279304b..ad8d18b 100644 --- a/src/main/java/cx/ajneb97/libs/titles/TitleAPI.java +++ b/src/main/java/net/tfminecraft/codex/libs/titles/TitleAPI.java @@ -1,9 +1,9 @@ -package cx.ajneb97.libs.titles; +package net.tfminecraft.codex.libs.titles; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.managers.MessagesManager; -import cx.ajneb97.utils.MiniMessageUtils; -import cx.ajneb97.utils.OtherUtils; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.managers.MessagesManager; +import net.tfminecraft.codex.utils.MiniMessageUtils; +import net.tfminecraft.codex.utils.OtherUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/listeners/InventoryListener.java b/src/main/java/net/tfminecraft/codex/listeners/InventoryListener.java similarity index 84% rename from src/main/java/cx/ajneb97/listeners/InventoryListener.java rename to src/main/java/net/tfminecraft/codex/listeners/InventoryListener.java index 991e4cb..094e312 100644 --- a/src/main/java/cx/ajneb97/listeners/InventoryListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/InventoryListener.java @@ -1,9 +1,9 @@ -package cx.ajneb97.listeners; +package net.tfminecraft.codex.listeners; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.InventoryManager; -import cx.ajneb97.model.inventory.InventoryPlayer; -import cx.ajneb97.utils.InventoryUtils; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.InventoryManager; +import net.tfminecraft.codex.model.inventory.InventoryPlayer; +import net.tfminecraft.codex.utils.InventoryUtils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/cx/ajneb97/listeners/PlayerListener.java b/src/main/java/net/tfminecraft/codex/listeners/PlayerListener.java similarity index 61% rename from src/main/java/cx/ajneb97/listeners/PlayerListener.java rename to src/main/java/net/tfminecraft/codex/listeners/PlayerListener.java index 94a3b04..4827984 100644 --- a/src/main/java/cx/ajneb97/listeners/PlayerListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/PlayerListener.java @@ -1,7 +1,6 @@ -package cx.ajneb97.listeners; +package net.tfminecraft.codex.listeners; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.MessagesManager; +import net.tfminecraft.codex.Codex; import org.bukkit.ChatColor; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -21,14 +20,6 @@ public PlayerListener(Codex plugin){ @EventHandler public void onJoin(PlayerJoinEvent event){ plugin.getPlayerDataManager().manageJoin(event.getPlayer()); - - //Update notification - Player player = event.getPlayer(); - String latestVersion = plugin.getUpdateCheckerManager().getLatestVersion(); - if(player.isOp() && plugin.getConfigsManager().getMainConfigManager().isUpdateNotify() && !plugin.version.equals(latestVersion)){ - player.sendMessage(MessagesManager.getLegacyColoredMessage(plugin.prefix+" &cThere is a new version available. &e(&7"+latestVersion+"&e)")); - player.sendMessage(MessagesManager.getLegacyColoredMessage("&cYou can download it at: &fhttps://modrinth.com/plugin/codex-rpg-discoveries")); - } } @EventHandler diff --git a/src/main/java/cx/ajneb97/listeners/dependencies/EliteMobsListener.java b/src/main/java/net/tfminecraft/codex/listeners/dependencies/EliteMobsListener.java similarity index 91% rename from src/main/java/cx/ajneb97/listeners/dependencies/EliteMobsListener.java rename to src/main/java/net/tfminecraft/codex/listeners/dependencies/EliteMobsListener.java index 920c630..a8ec019 100644 --- a/src/main/java/cx/ajneb97/listeners/dependencies/EliteMobsListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/dependencies/EliteMobsListener.java @@ -1,8 +1,8 @@ -package cx.ajneb97.listeners.dependencies; +package net.tfminecraft.codex.listeners.dependencies; import com.magmaguy.elitemobs.api.EliteMobDeathEvent; import com.magmaguy.elitemobs.mobconstructor.custombosses.CustomBossEntity; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.Bukkit; import org.bukkit.entity.LivingEntity; import org.bukkit.event.EventHandler; diff --git a/src/main/java/cx/ajneb97/listeners/dependencies/MythicMobsListener.java b/src/main/java/net/tfminecraft/codex/listeners/dependencies/MythicMobsListener.java similarity index 88% rename from src/main/java/cx/ajneb97/listeners/dependencies/MythicMobsListener.java rename to src/main/java/net/tfminecraft/codex/listeners/dependencies/MythicMobsListener.java index f56fb4d..7cbd38b 100644 --- a/src/main/java/cx/ajneb97/listeners/dependencies/MythicMobsListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/dependencies/MythicMobsListener.java @@ -1,6 +1,6 @@ -package cx.ajneb97.listeners.dependencies; +package net.tfminecraft.codex.listeners.dependencies; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import io.lumine.mythic.bukkit.events.MythicMobDeathEvent; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/listeners/dependencies/ResidenceListener.java b/src/main/java/net/tfminecraft/codex/listeners/dependencies/ResidenceListener.java similarity index 96% rename from src/main/java/cx/ajneb97/listeners/dependencies/ResidenceListener.java rename to src/main/java/net/tfminecraft/codex/listeners/dependencies/ResidenceListener.java index bbd344a..8f5ea18 100644 --- a/src/main/java/cx/ajneb97/listeners/dependencies/ResidenceListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/dependencies/ResidenceListener.java @@ -1,8 +1,8 @@ -package cx.ajneb97.listeners.dependencies; +package net.tfminecraft.codex.listeners.dependencies; import com.bekvon.bukkit.residence.Residence; import com.bekvon.bukkit.residence.protection.ClaimedResidence; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/cx/ajneb97/listeners/dependencies/WorldGuardListener.java b/src/main/java/net/tfminecraft/codex/listeners/dependencies/WorldGuardListener.java similarity index 76% rename from src/main/java/cx/ajneb97/listeners/dependencies/WorldGuardListener.java rename to src/main/java/net/tfminecraft/codex/listeners/dependencies/WorldGuardListener.java index 74f5e2c..a7e0dbd 100644 --- a/src/main/java/cx/ajneb97/listeners/dependencies/WorldGuardListener.java +++ b/src/main/java/net/tfminecraft/codex/listeners/dependencies/WorldGuardListener.java @@ -1,7 +1,7 @@ -package cx.ajneb97.listeners.dependencies; +package net.tfminecraft.codex.listeners.dependencies; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.dependencies.worldguard.RegionEnteredEvent; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.dependencies.worldguard.RegionEnteredEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; diff --git a/src/main/java/cx/ajneb97/managers/CategoryManager.java b/src/main/java/net/tfminecraft/codex/managers/CategoryManager.java similarity index 87% rename from src/main/java/cx/ajneb97/managers/CategoryManager.java rename to src/main/java/net/tfminecraft/codex/managers/CategoryManager.java index c3e7de7..51c9172 100644 --- a/src/main/java/cx/ajneb97/managers/CategoryManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/CategoryManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.managers; +package net.tfminecraft.codex.managers; -import cx.ajneb97.Codex; -import cx.ajneb97.model.structure.Category; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.structure.Category; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/managers/CommonItemManager.java b/src/main/java/net/tfminecraft/codex/managers/CommonItemManager.java similarity index 98% rename from src/main/java/cx/ajneb97/managers/CommonItemManager.java rename to src/main/java/net/tfminecraft/codex/managers/CommonItemManager.java index e8de4a4..728c435 100644 --- a/src/main/java/cx/ajneb97/managers/CommonItemManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/CommonItemManager.java @@ -1,12 +1,12 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.Codex; -import cx.ajneb97.model.internal.CommonVariable; -import cx.ajneb97.model.item.*; -import cx.ajneb97.utils.ItemUtils; -import cx.ajneb97.utils.MiniMessageUtils; -import cx.ajneb97.utils.OtherUtils; -import cx.ajneb97.utils.ServerVersion; +package net.tfminecraft.codex.managers; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.internal.CommonVariable; +import net.tfminecraft.codex.model.item.*; +import net.tfminecraft.codex.utils.ItemUtils; +import net.tfminecraft.codex.utils.MiniMessageUtils; +import net.tfminecraft.codex.utils.OtherUtils; +import net.tfminecraft.codex.utils.ServerVersion; import org.bukkit.Color; import org.bukkit.NamespacedKey; import org.bukkit.configuration.file.FileConfiguration; diff --git a/src/main/java/cx/ajneb97/managers/DiscoveryManager.java b/src/main/java/net/tfminecraft/codex/managers/DiscoveryManager.java similarity index 93% rename from src/main/java/cx/ajneb97/managers/DiscoveryManager.java rename to src/main/java/net/tfminecraft/codex/managers/DiscoveryManager.java index f848ec7..f4126fb 100644 --- a/src/main/java/cx/ajneb97/managers/DiscoveryManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/DiscoveryManager.java @@ -1,13 +1,13 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.Codex; -import cx.ajneb97.model.data.PlayerDataCategory; -import cx.ajneb97.model.data.PlayerDataDiscovery; -import cx.ajneb97.model.internal.CommonVariable; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.DiscoveredOn; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.utils.ActionUtils; +package net.tfminecraft.codex.managers; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.data.PlayerDataCategory; +import net.tfminecraft.codex.model.data.PlayerDataDiscovery; +import net.tfminecraft.codex.model.internal.CommonVariable; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.DiscoveredOn; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.utils.ActionUtils; import org.bukkit.entity.Player; import java.util.*; diff --git a/src/main/java/cx/ajneb97/managers/InventoryManager.java b/src/main/java/net/tfminecraft/codex/managers/InventoryManager.java similarity index 95% rename from src/main/java/cx/ajneb97/managers/InventoryManager.java rename to src/main/java/net/tfminecraft/codex/managers/InventoryManager.java index a739f03..bfd3984 100644 --- a/src/main/java/cx/ajneb97/managers/InventoryManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/InventoryManager.java @@ -1,16 +1,16 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.Codex; -import cx.ajneb97.config.MainConfigManager; -import cx.ajneb97.model.data.PlayerDataDiscovery; -import cx.ajneb97.model.internal.CommonVariable; -import cx.ajneb97.model.inventory.CommonInventory; -import cx.ajneb97.model.inventory.CommonInventoryItem; -import cx.ajneb97.model.inventory.InventoryPlayer; -import cx.ajneb97.model.item.CommonItem; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.utils.*; +package net.tfminecraft.codex.managers; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.config.MainConfigManager; +import net.tfminecraft.codex.model.data.PlayerDataDiscovery; +import net.tfminecraft.codex.model.internal.CommonVariable; +import net.tfminecraft.codex.model.inventory.CommonInventory; +import net.tfminecraft.codex.model.inventory.CommonInventoryItem; +import net.tfminecraft.codex.model.inventory.InventoryPlayer; +import net.tfminecraft.codex.model.item.CommonItem; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.utils.*; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/managers/MessagesManager.java b/src/main/java/net/tfminecraft/codex/managers/MessagesManager.java similarity index 92% rename from src/main/java/cx/ajneb97/managers/MessagesManager.java rename to src/main/java/net/tfminecraft/codex/managers/MessagesManager.java index 63c0d70..505c1c1 100644 --- a/src/main/java/cx/ajneb97/managers/MessagesManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/MessagesManager.java @@ -1,9 +1,9 @@ -package cx.ajneb97.managers; +package net.tfminecraft.codex.managers; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.libs.centeredmessage.DefaultFontInfo; -import cx.ajneb97.utils.MiniMessageUtils; -import cx.ajneb97.utils.OtherUtils; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.libs.centeredmessage.DefaultFontInfo; +import net.tfminecraft.codex.utils.MiniMessageUtils; +import net.tfminecraft.codex.utils.OtherUtils; import net.md_5.bungee.api.ChatColor; import org.bukkit.command.CommandSender; import java.util.regex.Matcher; diff --git a/src/main/java/cx/ajneb97/managers/PlayerDataManager.java b/src/main/java/net/tfminecraft/codex/managers/PlayerDataManager.java similarity index 95% rename from src/main/java/cx/ajneb97/managers/PlayerDataManager.java rename to src/main/java/net/tfminecraft/codex/managers/PlayerDataManager.java index 1cb1a41..b08a553 100644 --- a/src/main/java/cx/ajneb97/managers/PlayerDataManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/PlayerDataManager.java @@ -1,15 +1,15 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.Codex; -import cx.ajneb97.config.PlayersConfigManager; -import cx.ajneb97.database.MySQLConnection; -import cx.ajneb97.model.data.PlayerData; -import cx.ajneb97.model.data.PlayerDataCategory; -import cx.ajneb97.model.data.PlayerDataDiscovery; -import cx.ajneb97.model.internal.GenericCallback; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.utils.OtherUtils; +package net.tfminecraft.codex.managers; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.config.PlayersConfigManager; +import net.tfminecraft.codex.database.MySQLConnection; +import net.tfminecraft.codex.model.data.PlayerData; +import net.tfminecraft.codex.model.data.PlayerDataCategory; +import net.tfminecraft.codex.model.data.PlayerDataDiscovery; +import net.tfminecraft.codex.model.internal.GenericCallback; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.utils.OtherUtils; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/managers/VerifyManager.java b/src/main/java/net/tfminecraft/codex/managers/VerifyManager.java similarity index 94% rename from src/main/java/cx/ajneb97/managers/VerifyManager.java rename to src/main/java/net/tfminecraft/codex/managers/VerifyManager.java index 0c3de91..33cecd8 100644 --- a/src/main/java/cx/ajneb97/managers/VerifyManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/VerifyManager.java @@ -1,13 +1,13 @@ -package cx.ajneb97.managers; - -import cx.ajneb97.Codex; -import cx.ajneb97.model.inventory.CommonInventory; -import cx.ajneb97.model.inventory.CommonInventoryItem; -import cx.ajneb97.model.item.CommonItem; -import cx.ajneb97.model.structure.Category; -import cx.ajneb97.model.structure.Discovery; -import cx.ajneb97.model.verify.*; -import cx.ajneb97.utils.ItemUtils; +package net.tfminecraft.codex.managers; + +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.inventory.CommonInventory; +import net.tfminecraft.codex.model.inventory.CommonInventoryItem; +import net.tfminecraft.codex.model.item.CommonItem; +import net.tfminecraft.codex.model.structure.Category; +import net.tfminecraft.codex.model.structure.Discovery; +import net.tfminecraft.codex.model.verify.*; +import net.tfminecraft.codex.utils.ItemUtils; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/DependencyManager.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/DependencyManager.java similarity index 90% rename from src/main/java/cx/ajneb97/managers/dependencies/DependencyManager.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/DependencyManager.java index 694e87c..074f9b4 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/DependencyManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/DependencyManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.managers.dependencies; +package net.tfminecraft.codex.managers.dependencies; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.dependencies.worldguard.WorldGuardManager; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.dependencies.worldguard.WorldGuardManager; import org.bukkit.Bukkit; public class DependencyManager { diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionEnteredEvent.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionEnteredEvent.java similarity index 96% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionEnteredEvent.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionEnteredEvent.java index 4dc174b..d61eaf6 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionEnteredEvent.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionEnteredEvent.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionLeftEvent.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionLeftEvent.java similarity index 96% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionLeftEvent.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionLeftEvent.java index 614afa3..1046b71 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionLeftEvent.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionLeftEvent.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsChangedEvent.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsChangedEvent.java similarity index 97% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsChangedEvent.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsChangedEvent.java index c2fe5f3..46fed25 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsChangedEvent.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsChangedEvent.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsEnteredEvent.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsEnteredEvent.java similarity index 97% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsEnteredEvent.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsEnteredEvent.java index c7e554a..a95aa32 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsEnteredEvent.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsEnteredEvent.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsLeftEvent.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsLeftEvent.java similarity index 97% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsLeftEvent.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsLeftEvent.java index fda4856..6d9f034 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/RegionsLeftEvent.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/RegionsLeftEvent.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardEntryManager.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardEntryManager.java similarity index 97% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardEntryManager.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardEntryManager.java index 0c76478..b5279da 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardEntryManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardEntryManager.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldedit.util.Location; import com.sk89q.worldguard.LocalPlayer; diff --git a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardManager.java b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardManager.java similarity index 97% rename from src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardManager.java rename to src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardManager.java index 2d689c5..ea8054e 100644 --- a/src/main/java/cx/ajneb97/managers/dependencies/worldguard/WorldGuardManager.java +++ b/src/main/java/net/tfminecraft/codex/managers/dependencies/worldguard/WorldGuardManager.java @@ -1,4 +1,4 @@ -package cx.ajneb97.managers.dependencies.worldguard; +package net.tfminecraft.codex.managers.dependencies.worldguard; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldguard.WorldGuard; @@ -6,7 +6,7 @@ import com.sk89q.worldguard.protection.regions.ProtectedRegion; import com.sk89q.worldguard.protection.regions.RegionContainer; import com.sk89q.worldguard.protection.regions.RegionQuery; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/model/data/PlayerData.java b/src/main/java/net/tfminecraft/codex/model/data/PlayerData.java similarity index 99% rename from src/main/java/cx/ajneb97/model/data/PlayerData.java rename to src/main/java/net/tfminecraft/codex/model/data/PlayerData.java index b6c0901..e0c3286 100644 --- a/src/main/java/cx/ajneb97/model/data/PlayerData.java +++ b/src/main/java/net/tfminecraft/codex/model/data/PlayerData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.data; +package net.tfminecraft.codex.model.data; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/data/PlayerDataCategory.java b/src/main/java/net/tfminecraft/codex/model/data/PlayerDataCategory.java similarity index 98% rename from src/main/java/cx/ajneb97/model/data/PlayerDataCategory.java rename to src/main/java/net/tfminecraft/codex/model/data/PlayerDataCategory.java index fa73932..33aa74d 100644 --- a/src/main/java/cx/ajneb97/model/data/PlayerDataCategory.java +++ b/src/main/java/net/tfminecraft/codex/model/data/PlayerDataCategory.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.data; +package net.tfminecraft.codex.model.data; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/data/PlayerDataDiscovery.java b/src/main/java/net/tfminecraft/codex/model/data/PlayerDataDiscovery.java similarity index 95% rename from src/main/java/cx/ajneb97/model/data/PlayerDataDiscovery.java rename to src/main/java/net/tfminecraft/codex/model/data/PlayerDataDiscovery.java index de4e713..474c41b 100644 --- a/src/main/java/cx/ajneb97/model/data/PlayerDataDiscovery.java +++ b/src/main/java/net/tfminecraft/codex/model/data/PlayerDataDiscovery.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.data; +package net.tfminecraft.codex.model.data; public class PlayerDataDiscovery { private String discoveryName; diff --git a/src/main/java/cx/ajneb97/model/internal/CommonVariable.java b/src/main/java/net/tfminecraft/codex/model/internal/CommonVariable.java similarity index 91% rename from src/main/java/cx/ajneb97/model/internal/CommonVariable.java rename to src/main/java/net/tfminecraft/codex/model/internal/CommonVariable.java index 39431af..c36b08e 100644 --- a/src/main/java/cx/ajneb97/model/internal/CommonVariable.java +++ b/src/main/java/net/tfminecraft/codex/model/internal/CommonVariable.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.internal; +package net.tfminecraft.codex.model.internal; public class CommonVariable { private String variable; diff --git a/src/main/java/cx/ajneb97/model/internal/GenericCallback.java b/src/main/java/net/tfminecraft/codex/model/internal/GenericCallback.java similarity index 60% rename from src/main/java/cx/ajneb97/model/internal/GenericCallback.java rename to src/main/java/net/tfminecraft/codex/model/internal/GenericCallback.java index 9377854..3b07158 100644 --- a/src/main/java/cx/ajneb97/model/internal/GenericCallback.java +++ b/src/main/java/net/tfminecraft/codex/model/internal/GenericCallback.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.internal; +package net.tfminecraft.codex.model.internal; public interface GenericCallback { diff --git a/src/main/java/cx/ajneb97/model/inventory/CommonInventory.java b/src/main/java/net/tfminecraft/codex/model/inventory/CommonInventory.java similarity index 96% rename from src/main/java/cx/ajneb97/model/inventory/CommonInventory.java rename to src/main/java/net/tfminecraft/codex/model/inventory/CommonInventory.java index 3d51d84..115ef0e 100644 --- a/src/main/java/cx/ajneb97/model/inventory/CommonInventory.java +++ b/src/main/java/net/tfminecraft/codex/model/inventory/CommonInventory.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.inventory; +package net.tfminecraft.codex.model.inventory; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/inventory/CommonInventoryItem.java b/src/main/java/net/tfminecraft/codex/model/inventory/CommonInventoryItem.java similarity index 95% rename from src/main/java/cx/ajneb97/model/inventory/CommonInventoryItem.java rename to src/main/java/net/tfminecraft/codex/model/inventory/CommonInventoryItem.java index 300ae32..dac726f 100644 --- a/src/main/java/cx/ajneb97/model/inventory/CommonInventoryItem.java +++ b/src/main/java/net/tfminecraft/codex/model/inventory/CommonInventoryItem.java @@ -1,6 +1,6 @@ -package cx.ajneb97.model.inventory; +package net.tfminecraft.codex.model.inventory; -import cx.ajneb97.model.item.CommonItem; +import net.tfminecraft.codex.model.item.CommonItem; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/inventory/InventoryPlayer.java b/src/main/java/net/tfminecraft/codex/model/inventory/InventoryPlayer.java similarity index 93% rename from src/main/java/cx/ajneb97/model/inventory/InventoryPlayer.java rename to src/main/java/net/tfminecraft/codex/model/inventory/InventoryPlayer.java index 8a264bc..eb12360 100644 --- a/src/main/java/cx/ajneb97/model/inventory/InventoryPlayer.java +++ b/src/main/java/net/tfminecraft/codex/model/inventory/InventoryPlayer.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.inventory; +package net.tfminecraft.codex.model.inventory; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItem.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItem.java similarity index 99% rename from src/main/java/cx/ajneb97/model/item/CommonItem.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItem.java index fb9ab8d..5157aea 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItem.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItem.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemBannerData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemBannerData.java similarity index 94% rename from src/main/java/cx/ajneb97/model/item/CommonItemBannerData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemBannerData.java index cd3d9f8..dfe2086 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemBannerData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemBannerData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemBookData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemBookData.java similarity index 96% rename from src/main/java/cx/ajneb97/model/item/CommonItemBookData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemBookData.java index 2d59791..c548cad 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemBookData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemBookData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemCustomModelComponentData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemCustomModelComponentData.java similarity index 96% rename from src/main/java/cx/ajneb97/model/item/CommonItemCustomModelComponentData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemCustomModelComponentData.java index 857e129..b5a842e 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemCustomModelComponentData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemCustomModelComponentData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemFireworkData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemFireworkData.java similarity index 96% rename from src/main/java/cx/ajneb97/model/item/CommonItemFireworkData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemFireworkData.java index 9b96f8a..9caec06 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemFireworkData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemFireworkData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemPotionData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemPotionData.java similarity index 97% rename from src/main/java/cx/ajneb97/model/item/CommonItemPotionData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemPotionData.java index fe3c8eb..f5ef52c 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemPotionData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemPotionData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemSkullData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemSkullData.java similarity index 94% rename from src/main/java/cx/ajneb97/model/item/CommonItemSkullData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemSkullData.java index cc81ee9..c1e2d17 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemSkullData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemSkullData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; public class CommonItemSkullData { diff --git a/src/main/java/cx/ajneb97/model/item/CommonItemTrimData.java b/src/main/java/net/tfminecraft/codex/model/item/CommonItemTrimData.java similarity index 92% rename from src/main/java/cx/ajneb97/model/item/CommonItemTrimData.java rename to src/main/java/net/tfminecraft/codex/model/item/CommonItemTrimData.java index 1e566b7..3b3eb1c 100644 --- a/src/main/java/cx/ajneb97/model/item/CommonItemTrimData.java +++ b/src/main/java/net/tfminecraft/codex/model/item/CommonItemTrimData.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.item; +package net.tfminecraft.codex.model.item; public class CommonItemTrimData { diff --git a/src/main/java/cx/ajneb97/model/structure/Category.java b/src/main/java/net/tfminecraft/codex/model/structure/Category.java similarity index 96% rename from src/main/java/cx/ajneb97/model/structure/Category.java rename to src/main/java/net/tfminecraft/codex/model/structure/Category.java index 8eebd4e..5a5fe0a 100644 --- a/src/main/java/cx/ajneb97/model/structure/Category.java +++ b/src/main/java/net/tfminecraft/codex/model/structure/Category.java @@ -1,6 +1,6 @@ -package cx.ajneb97.model.structure; +package net.tfminecraft.codex.model.structure; -import cx.ajneb97.model.item.CommonItem; +import net.tfminecraft.codex.model.item.CommonItem; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/structure/DiscoveredOn.java b/src/main/java/net/tfminecraft/codex/model/structure/DiscoveredOn.java similarity index 95% rename from src/main/java/cx/ajneb97/model/structure/DiscoveredOn.java rename to src/main/java/net/tfminecraft/codex/model/structure/DiscoveredOn.java index 9cbb7ab..5ec49ec 100644 --- a/src/main/java/cx/ajneb97/model/structure/DiscoveredOn.java +++ b/src/main/java/net/tfminecraft/codex/model/structure/DiscoveredOn.java @@ -1,4 +1,4 @@ -package cx.ajneb97.model.structure; +package net.tfminecraft.codex.model.structure; public class DiscoveredOn { diff --git a/src/main/java/cx/ajneb97/model/structure/Discovery.java b/src/main/java/net/tfminecraft/codex/model/structure/Discovery.java similarity index 96% rename from src/main/java/cx/ajneb97/model/structure/Discovery.java rename to src/main/java/net/tfminecraft/codex/model/structure/Discovery.java index 5d5eccc..eaa7162 100644 --- a/src/main/java/cx/ajneb97/model/structure/Discovery.java +++ b/src/main/java/net/tfminecraft/codex/model/structure/Discovery.java @@ -1,6 +1,6 @@ -package cx.ajneb97.model.structure; +package net.tfminecraft.codex.model.structure; -import cx.ajneb97.model.item.CommonItem; +import net.tfminecraft.codex.model.item.CommonItem; import java.util.List; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexActionError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexActionError.java similarity index 91% rename from src/main/java/cx/ajneb97/model/verify/CodexActionError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexActionError.java index a0c6f40..1421fdd 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexActionError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexActionError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexBaseError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexBaseError.java similarity index 94% rename from src/main/java/cx/ajneb97/model/verify/CodexBaseError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexBaseError.java index ed59605..391b5de 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexBaseError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexBaseError.java @@ -1,6 +1,6 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; +import net.tfminecraft.codex.api.CodexAPI; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInvalidItem.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInvalidItem.java similarity index 88% rename from src/main/java/cx/ajneb97/model/verify/CodexInvalidItem.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInvalidItem.java index 659160d..2c6bf6c 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInvalidItem.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInvalidItem.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInventoryDefaultNotExistsError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryDefaultNotExistsError.java similarity index 90% rename from src/main/java/cx/ajneb97/model/verify/CodexInventoryDefaultNotExistsError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryDefaultNotExistsError.java index afe9422..f05e1bf 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInventoryDefaultNotExistsError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryDefaultNotExistsError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidCategoryError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidCategoryError.java similarity index 89% rename from src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidCategoryError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidCategoryError.java index ff6b6a5..4551fd3 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidCategoryError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidCategoryError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidDiscoveryError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidDiscoveryError.java similarity index 90% rename from src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidDiscoveryError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidDiscoveryError.java index 76f5464..951771a 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidDiscoveryError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidDiscoveryError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidSlotError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidSlotError.java similarity index 89% rename from src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidSlotError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidSlotError.java index 445a5a4..f790ecc 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInventoryInvalidSlotError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryInvalidSlotError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/model/verify/CodexInventoryNotExistsError.java b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryNotExistsError.java similarity index 90% rename from src/main/java/cx/ajneb97/model/verify/CodexInventoryNotExistsError.java rename to src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryNotExistsError.java index e970fe3..6c6ca48 100644 --- a/src/main/java/cx/ajneb97/model/verify/CodexInventoryNotExistsError.java +++ b/src/main/java/net/tfminecraft/codex/model/verify/CodexInventoryNotExistsError.java @@ -1,8 +1,8 @@ -package cx.ajneb97.model.verify; +package net.tfminecraft.codex.model.verify; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.utils.JSONMessage; -import cx.ajneb97.utils.JSONMessageAdventure; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.utils.JSONMessage; +import net.tfminecraft.codex.utils.JSONMessageAdventure; import org.bukkit.entity.Player; import java.util.ArrayList; diff --git a/src/main/java/cx/ajneb97/tasks/PlayerDataSaveTask.java b/src/main/java/net/tfminecraft/codex/tasks/PlayerDataSaveTask.java similarity index 89% rename from src/main/java/cx/ajneb97/tasks/PlayerDataSaveTask.java rename to src/main/java/net/tfminecraft/codex/tasks/PlayerDataSaveTask.java index e509186..4872b6e 100644 --- a/src/main/java/cx/ajneb97/tasks/PlayerDataSaveTask.java +++ b/src/main/java/net/tfminecraft/codex/tasks/PlayerDataSaveTask.java @@ -1,6 +1,6 @@ -package cx.ajneb97.tasks; +package net.tfminecraft.codex.tasks; -import cx.ajneb97.Codex; +import net.tfminecraft.codex.Codex; import org.bukkit.scheduler.BukkitRunnable; public class PlayerDataSaveTask { diff --git a/src/main/java/cx/ajneb97/utils/ActionUtils.java b/src/main/java/net/tfminecraft/codex/utils/ActionUtils.java similarity index 94% rename from src/main/java/cx/ajneb97/utils/ActionUtils.java rename to src/main/java/net/tfminecraft/codex/utils/ActionUtils.java index 998a562..32001c8 100644 --- a/src/main/java/cx/ajneb97/utils/ActionUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/ActionUtils.java @@ -1,10 +1,10 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; -import cx.ajneb97.Codex; -import cx.ajneb97.api.CodexAPI; -import cx.ajneb97.libs.titles.TitleAPI; -import cx.ajneb97.managers.MessagesManager; -import cx.ajneb97.model.internal.CommonVariable; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.api.CodexAPI; +import net.tfminecraft.codex.libs.titles.TitleAPI; +import net.tfminecraft.codex.managers.MessagesManager; +import net.tfminecraft.codex.model.internal.CommonVariable; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.command.ConsoleCommandSender; diff --git a/src/main/java/cx/ajneb97/utils/InventoryUtils.java b/src/main/java/net/tfminecraft/codex/utils/InventoryUtils.java similarity index 97% rename from src/main/java/cx/ajneb97/utils/InventoryUtils.java rename to src/main/java/net/tfminecraft/codex/utils/InventoryUtils.java index cba8432..bcf8a1c 100644 --- a/src/main/java/cx/ajneb97/utils/InventoryUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/InventoryUtils.java @@ -1,4 +1,4 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryEvent; diff --git a/src/main/java/cx/ajneb97/utils/ItemUtils.java b/src/main/java/net/tfminecraft/codex/utils/ItemUtils.java similarity index 99% rename from src/main/java/cx/ajneb97/utils/ItemUtils.java rename to src/main/java/net/tfminecraft/codex/utils/ItemUtils.java index 8359687..37cdc32 100644 --- a/src/main/java/cx/ajneb97/utils/ItemUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/ItemUtils.java @@ -1,4 +1,4 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; import com.google.common.collect.Multimap; import com.google.gson.Gson; @@ -6,8 +6,8 @@ import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; import com.mojang.authlib.properties.PropertyMap; -import cx.ajneb97.Codex; -import cx.ajneb97.model.item.*; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.model.item.*; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.chat.ComponentSerializer; import org.bukkit.*; diff --git a/src/main/java/cx/ajneb97/utils/JSONMessage.java b/src/main/java/net/tfminecraft/codex/utils/JSONMessage.java similarity index 94% rename from src/main/java/cx/ajneb97/utils/JSONMessage.java rename to src/main/java/net/tfminecraft/codex/utils/JSONMessage.java index b0f92cf..b6baadf 100644 --- a/src/main/java/cx/ajneb97/utils/JSONMessage.java +++ b/src/main/java/net/tfminecraft/codex/utils/JSONMessage.java @@ -1,6 +1,6 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; -import cx.ajneb97.managers.MessagesManager; +import net.tfminecraft.codex.managers.MessagesManager; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.HoverEvent; diff --git a/src/main/java/cx/ajneb97/utils/JSONMessageAdventure.java b/src/main/java/net/tfminecraft/codex/utils/JSONMessageAdventure.java similarity index 97% rename from src/main/java/cx/ajneb97/utils/JSONMessageAdventure.java rename to src/main/java/net/tfminecraft/codex/utils/JSONMessageAdventure.java index 6e5d699..3fbba34 100644 --- a/src/main/java/cx/ajneb97/utils/JSONMessageAdventure.java +++ b/src/main/java/net/tfminecraft/codex/utils/JSONMessageAdventure.java @@ -1,4 +1,4 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; import net.kyori.adventure.text.Component; diff --git a/src/main/java/cx/ajneb97/utils/MiniMessageUtils.java b/src/main/java/net/tfminecraft/codex/utils/MiniMessageUtils.java similarity index 93% rename from src/main/java/cx/ajneb97/utils/MiniMessageUtils.java rename to src/main/java/net/tfminecraft/codex/utils/MiniMessageUtils.java index e076d12..a01e93f 100644 --- a/src/main/java/cx/ajneb97/utils/MiniMessageUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/MiniMessageUtils.java @@ -1,9 +1,9 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; -import cx.ajneb97.Codex; -import cx.ajneb97.managers.MessagesManager; -import cx.ajneb97.model.internal.CommonVariable; -import cx.ajneb97.model.item.CommonItem; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.managers.MessagesManager; +import net.tfminecraft.codex.model.internal.CommonVariable; +import net.tfminecraft.codex.model.item.CommonItem; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.format.TextDecoration; diff --git a/src/main/java/cx/ajneb97/utils/OtherUtils.java b/src/main/java/net/tfminecraft/codex/utils/OtherUtils.java similarity index 96% rename from src/main/java/cx/ajneb97/utils/OtherUtils.java rename to src/main/java/net/tfminecraft/codex/utils/OtherUtils.java index 039ff73..3d1edac 100644 --- a/src/main/java/cx/ajneb97/utils/OtherUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/OtherUtils.java @@ -1,7 +1,7 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; -import cx.ajneb97.Codex; -import cx.ajneb97.config.MainConfigManager; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.config.MainConfigManager; import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; diff --git a/src/main/java/cx/ajneb97/utils/PlayerUtils.java b/src/main/java/net/tfminecraft/codex/utils/PlayerUtils.java similarity index 83% rename from src/main/java/cx/ajneb97/utils/PlayerUtils.java rename to src/main/java/net/tfminecraft/codex/utils/PlayerUtils.java index 9e5ed96..95d0dc1 100644 --- a/src/main/java/cx/ajneb97/utils/PlayerUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/PlayerUtils.java @@ -1,4 +1,4 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; import org.bukkit.command.CommandSender; diff --git a/src/main/java/cx/ajneb97/utils/ServerVersion.java b/src/main/java/net/tfminecraft/codex/utils/ServerVersion.java similarity index 96% rename from src/main/java/cx/ajneb97/utils/ServerVersion.java rename to src/main/java/net/tfminecraft/codex/utils/ServerVersion.java index 09b56e6..abc0f4d 100644 --- a/src/main/java/cx/ajneb97/utils/ServerVersion.java +++ b/src/main/java/net/tfminecraft/codex/utils/ServerVersion.java @@ -1,4 +1,4 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; import org.bukkit.Bukkit; diff --git a/src/main/java/cx/ajneb97/utils/TimeUtils.java b/src/main/java/net/tfminecraft/codex/utils/TimeUtils.java similarity index 89% rename from src/main/java/cx/ajneb97/utils/TimeUtils.java rename to src/main/java/net/tfminecraft/codex/utils/TimeUtils.java index 19c887f..01456ff 100644 --- a/src/main/java/cx/ajneb97/utils/TimeUtils.java +++ b/src/main/java/net/tfminecraft/codex/utils/TimeUtils.java @@ -1,6 +1,6 @@ -package cx.ajneb97.utils; +package net.tfminecraft.codex.utils; -import cx.ajneb97.managers.MessagesManager; +import net.tfminecraft.codex.managers.MessagesManager; public class TimeUtils { diff --git a/src/main/java/cx/ajneb97/versions/NMSManager.java b/src/main/java/net/tfminecraft/codex/versions/NMSManager.java similarity index 99% rename from src/main/java/cx/ajneb97/versions/NMSManager.java rename to src/main/java/net/tfminecraft/codex/versions/NMSManager.java index 2144bc6..bcaa675 100644 --- a/src/main/java/cx/ajneb97/versions/NMSManager.java +++ b/src/main/java/net/tfminecraft/codex/versions/NMSManager.java @@ -1,7 +1,7 @@ -package cx.ajneb97.versions; +package net.tfminecraft.codex.versions; -import cx.ajneb97.Codex; -import cx.ajneb97.utils.ServerVersion; +import net.tfminecraft.codex.Codex; +import net.tfminecraft.codex.utils.ServerVersion; import org.bukkit.NamespacedKey; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; diff --git a/src/main/java/cx/ajneb97/versions/Version.java b/src/main/java/net/tfminecraft/codex/versions/Version.java similarity index 94% rename from src/main/java/cx/ajneb97/versions/Version.java rename to src/main/java/net/tfminecraft/codex/versions/Version.java index 745efa7..4db8b61 100644 --- a/src/main/java/cx/ajneb97/versions/Version.java +++ b/src/main/java/net/tfminecraft/codex/versions/Version.java @@ -1,4 +1,4 @@ -package cx.ajneb97.versions; +package net.tfminecraft.codex.versions; import java.lang.reflect.Method; import java.util.HashMap; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9ce9221..eecb603 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,6 +1,3 @@ -# Enables or disables the plugin update message when joining the server. -update_notify: true - # This option defines the time (in seconds) to automatically save # player data. player_data_save: 300 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d578c4c..4b02c4a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ -main: cx.ajneb97.Codex +main: net.tfminecraft.codex.Codex version: ${project.version} name: Codex -api-version: 1.13 +api-version: '1.21.10' author: Ajneb97 softdepend: [WorldGuard,WorldEdit,PlaceholderAPI,MythicMobs,Residence]