diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 25ad56b1..75035c8f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,12 +14,6 @@ jobs: with: distribution: temurin java-version: 21 - - name: Read Version Catalog - uses: SebRollen/toml-action@v1.2.0 - id: chatmanager_version - with: - file: "gradle/libs.versions.toml" - field: "versions.chatmanager" - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - name: Make gradlew executable @@ -30,6 +24,10 @@ jobs: run: ./gradlew modrinth --stacktrace env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} + - name: Publish to Hangar + run: ./gradlew publishAllPublicationsToHangar --stacktrace + env: + HANGAR_KEY: ${{ secrets.HANGAR_KEY }} - name: Notify Discord if: success() run: ./gradlew release-build --stacktrace diff --git a/.github/workflows/snapshots.yml b/.github/workflows/snapshots.yml index a81717dd..53cc0c03 100644 --- a/.github/workflows/snapshots.yml +++ b/.github/workflows/snapshots.yml @@ -1,11 +1,9 @@ name: Snapshot Build -env: - IS_SNAPSHOT: true on: workflow_dispatch: push: branches: - - main + - dev jobs: build: @@ -28,6 +26,11 @@ jobs: env: MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} COMMIT_MESSAGE: ${{ join(github.event.commits.*.message, '
') }} + - name: Publish to Hangar + run: ./gradlew publishAllPublicationsToHangar --stacktrace + env: + HANGAR_KEY: ${{ secrets.HANGAR_KEY }} + COMMIT_MESSAGE: ${{ join(github.event.commits.*.message, '
') }} - name: Notify Discord if: success() run: ./gradlew dev-build --stacktrace diff --git a/.gitignore b/.gitignore index cbf2c5fa..872e71b2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,11 +9,6 @@ build/ ### Servers run/ -!paper/run/config -!paper/run/bukkit.yml -!paper/run/eula.txt -!paper/run/server.properties -!paper/run/spigot.yml ### Output jars/ \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 64a653b4..16cea6d2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,24 +11,20 @@ rootProject.group = "me.h1dd3nxn1nja.chatmanager" val git = feather.getGit() val commitHash: String? = git.getCurrentCommitHash().subSequence(0, 7).toString() -val isSnapshot: Boolean = System.getenv("IS_SNAPSHOT") != null +val isSnapshot: Boolean = git.getCurrentBranch() == "dev" val content: String = if (isSnapshot) "[$commitHash](https://github.com/Crazy-Crew/${rootProject.name}/commit/$commitHash) ${git.getCurrentCommit()}" else rootProject.file("changelog.md").readText(Charsets.UTF_8) +val minecraft = libs.versions.minecraft.get() +val versions = listOf(minecraft) -rootProject.version = version() +rootProject.version = if (isSnapshot) "$minecraft-$commitHash" else libs.versions.chatmanager.get() rootProject.description = "The kitchen sink of Chat Management!" -fun version(): String { - if (isSnapshot) { - return "${libs.versions.minecraft.get()}-$commitHash" - } - - return libs.versions.chatmanager.get() -} - feather { rootDirectory = rootProject.rootDir.toPath() - val data = git.getCurrentCommitAuthorData().copy(author = git.getCurrentCommitAuthorName()) + val data = git.getGithubCommit("Crazy-Crew/${rootProject.name}") + + val user = data.user discord { webhook { @@ -39,9 +35,9 @@ feather { post(System.getenv("BUILD_WEBHOOK")) } - username(data.author) + username("Ryder Belserion") - avatar(data.avatar) + avatar("https://github.com/ryderbelserion.png") embeds { embed { @@ -77,9 +73,9 @@ feather { post(System.getenv("BUILD_WEBHOOK")) } - username(data.author) + username(user.getName()) - avatar(data.avatar) + avatar(user.avatar) content("<@&1372358375433834537>") @@ -155,7 +151,7 @@ modrinth { changelog = content - gameVersions.addAll(listOf(libs.versions.minecraft.get())) + gameVersions.addAll(versions) uploadFile = tasks.jar.get().archiveFile.get() @@ -165,4 +161,44 @@ modrinth { autoAddDependsOn = false detectLoaders = false -} \ No newline at end of file +} + +hangarPublish { + publications.register("plugin") { + apiKey.set(System.getenv("HANGAR_KEY")) + + id.set(rootProject.name) + + version.set(rootProject.version as String) + + channel.set(if (isSnapshot) "Beta" else "Release") + + changelog.set(content) + + platforms { + paper { + jar = tasks.jar.flatMap { it.archiveFile } + + platformVersions.set(versions) + + dependencies { + hangar("PlaceholderAPI") { + required = false + } + + hangar("Essentials") { + required = false + } + + url("SuperVanish", "https://www.spigotmc.org/resources/supervanish-be-invisible.1331/") { + required = false + } + + url("Vault", "https://www.spigotmc.org/resources/vault.34315/") { + required = false + } + } + } + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index feaa358d..26c03166 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,3 +1,39 @@ +[versions] +## Paper +paperweight = "2.0.0-beta.17" # https://github.com/PaperMC/paperweight +paper = "1.21.5-R0.1-SNAPSHOT" # https://github.com/PaperMC/Paper + +## Minecraft +minecraft = "1.21.5" # https://minecraft.net + +## Plugin API +placeholderapi = "2.11.6" # https://github.com/placeholderapi +essentials = "2.20.1" # https://github.com/EssentialsX/Essentials +vault = "1.7.1" # https://github.com/MilkBowl/Vault + +## Other +bStats = "3.1.0" # https://github.com/Bastian/bStats +fusion = "1.6.0" # https://github.com/ryderbelserion/Fusion + +## ChatManager +chatmanager = "4.0.3" + +## Gradle Plugins +fix-javadoc = "1.19" # https://github.com/mfnalex/gradle-fix-javadoc-plugin +run-paper = "2.3.1" # https://github.com/jpenilla/run-task +minotaur = "2.8.7" # https://github.com/modrinth/minotaur +feather = "0.4.0" # https://github.com/ryderbelserion/Feather +hangar = "0.1.3" # https://github.com/HangarMC/hangar-publish-plugin +shadow = "9.0.0-beta13" # https://github.com/GradleUp/shadow + +[plugins] +# https://github.com/ryderbelserion/Feather +feather = { id = "com.ryderbelserion.feather.core", version.ref = "feather" } +# https://github.com/HangarMC/hangar-publish-plugin +hangar = { id = "io.papermc.hangar-publish-plugin", version.ref = "hangar" } +# https://github.com/modrinth/minotaur +minotaur = { id = "com.modrinth.minotaur", version.ref = "minotaur" } + [libraries] # https://github.com/PaperMC/paperweight paperweight = { module = "io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin", version.ref = "paperweight" } @@ -15,56 +51,16 @@ paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" } placeholder-api = { group = "me.clip", name = "placeholderapi", version.ref = "placeholderapi" } essentials = { group = "net.essentialsx", name = "EssentialsX", version.ref = "essentials" } -# Fusion API +# https://github.com/ryderbelserion/Fusion fusion-paper = { module = "com.ryderbelserion.fusion:fusion-paper", version.ref = "fusion" } fusion-core = { module = "com.ryderbelserion.fusion:fusion-core", version.ref = "fusion" } -# bStats API +# https://github.com/Bastian/bStats metrics = { module = "org.bstats:bstats-bukkit", version.ref = "bStats" } -# Vault API +# https://github.com/MilkBowl/Vault vault = { group = "com.github.MilkBowl", name = "VaultAPI", version.ref = "vault" } -[versions] -paperweight = "2.0.0-beta.17" # https://github.com/PaperMC/paperweight -paper = "1.21.5-R0.1-SNAPSHOT" # https://github.com/PaperMC/Paper -run-paper = "2.3.1" # https://github.com/jpenilla/run-task -minecraft = "1.21.5" - -## GradleUp -shadow = "9.0.0-beta13" # https://github.com/GradleUp/shadow - -## Plugin API -placeholderapi = "2.11.6" # https://github.com/placeholderapi -itemsadder = "4.0.10" # https://github.com/ItemsAdder -oraxen = "1.190.0" # https://github.com/oraxen -nexo = "1.6.0" # https://github.com/Nexo-MC - -# Essentials API -essentials = "2.20.1" - -bStats = "3.1.0" # https://github.com/Bastian/bStats - -# Vault API -vault = "1.7.1" - -## Gradle Plugins -feather = "0.3.2" # https://github.com/ryderbelserion/Feather -minotaur = "2.8.7" # https://github.com/modrinth/minotaur -hangar = "0.1.3" # https://github.com/HangarMC/hangar-publish-plugin - -fusion = "1.6.0" # https://github.com/ryderbelserion/Fusion - -chatmanager = "4.0.3" - -[plugins] -# https://github.com/ryderbelserion/Feather -feather = { id = "com.ryderbelserion.feather.core", version.ref = "feather" } -# https://github.com/HangarMC/hangar-publish-plugin -hangar = { id = "io.papermc.hangar-publish-plugin", version.ref = "hangar" } -# https://github.com/modrinth/minotaur -minotaur = { id = "com.modrinth.minotaur", version.ref = "minotaur" } - [bundles] build = [ "shadow" diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts index 9efa2281..7f9ecfbe 100644 --- a/paper/build.gradle.kts +++ b/paper/build.gradle.kts @@ -35,6 +35,13 @@ tasks { } shadowJar { + archiveBaseName.set("${rootProject.name}-${rootProject.version}") + + copy { + from(project.layout.buildDirectory.dir("libs")) + into(rootProject.layout.buildDirectory.dir("libs")) + } + listOf( "com.ryderbelserion.fusion", "org.bstats" @@ -67,6 +74,7 @@ tasks { runServer { jvmArgs("-Dnet.kyori.ansi.colorLevel=truecolor") + jvmArgs("-Dcom.mojang.eula.agree=true") defaultCharacterEncoding = Charsets.UTF_8.name() diff --git a/paper/run/bukkit.yml b/paper/run/bukkit.yml deleted file mode 100644 index 7419721e..00000000 --- a/paper/run/bukkit.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This is the Bukkit configuration file in Paper. -# As you can see, there's actually not that much to configure without any plugins. -# -# If you need help with the configuration or have any questions related to Paper, -# join us in our Discord or check the docs page. -# -# File Reference: https://docs.papermc.io/paper/reference/bukkit-configuration/ -# Docs: https://docs.papermc.io/ -# Discord: https://discord.gg/papermc -# Website: https://papermc.io/ - -settings: - allow-end: false - warn-on-overload: true - permissions-file: permissions.yml - update-folder: update - plugin-profiling: false - connection-throttle: 4000 - query-plugins: true - deprecated-verbose: default - shutdown-message: Server closed - minimum-api: none - use-map-color-cache: true -spawn-limits: - monsters: 70 - animals: 10 - water-animals: 5 - water-ambient: 20 - water-underground-creature: 5 - axolotls: 5 - ambient: 15 -chunk-gc: - period-in-ticks: 600 -ticks-per: - animal-spawns: 400 - monster-spawns: 1 - water-spawns: 1 - water-ambient-spawns: 1 - water-underground-creature-spawns: 1 - axolotl-spawns: 1 - ambient-spawns: 1 - autosave: 6000 -aliases: now-in-commands.yml diff --git a/paper/run/config/paper-global.yml b/paper/run/config/paper-global.yml deleted file mode 100644 index eccc79e7..00000000 --- a/paper/run/config/paper-global.yml +++ /dev/null @@ -1,142 +0,0 @@ -# This is the global configuration file for Paper. -# As you can see, there's a lot to configure. Some options may impact gameplay, so use -# with caution, and make sure you know what each option does before configuring. -# -# If you need help with the configuration or have any questions related to Paper, -# join us in our Discord or check the docs page. -# -# The world configuration options have been moved inside -# their respective world folder. The files are named paper-world.yml -# -# File Reference: https://docs.papermc.io/paper/reference/global-configuration/ -# Docs: https://docs.papermc.io/ -# Discord: https://discord.gg/papermc -# Website: https://papermc.io/ - -_version: 29 -anticheat: - obfuscation: - items: - all-models: - also-obfuscate: [] - dont-obfuscate: - - minecraft:lodestone_tracker - sanitize-count: true - enable-item-obfuscation: false - model-overrides: - minecraft:elytra: - also-obfuscate: [] - dont-obfuscate: - - minecraft:damage - sanitize-count: true -block-updates: - disable-chorus-plant-updates: false - disable-mushroom-block-updates: false - disable-noteblock-updates: false - disable-tripwire-updates: false -chunk-loading-advanced: - auto-config-send-distance: true - player-max-concurrent-chunk-generates: 0 - player-max-concurrent-chunk-loads: 0 -chunk-loading-basic: - player-max-chunk-generate-rate: -1.0 - player-max-chunk-load-rate: 100.0 - player-max-chunk-send-rate: 75.0 -chunk-system: - gen-parallelism: default - io-threads: -1 - worker-threads: -1 -collisions: - enable-player-collisions: true - send-full-pos-for-hard-colliding-entities: true -commands: - ride-command-allow-player-as-vehicle: false - suggest-player-names-when-null-tab-completions: true - time-command-affects-all-worlds: false -console: - enable-brigadier-completions: true - enable-brigadier-highlighting: true - has-all-permissions: false -item-validation: - book: - author: 8192 - page: 16384 - title: 8192 - book-size: - page-max: 2560 - total-multiplier: 0.98 - display-name: 8192 - lore-line: 8192 - resolve-selectors-in-books: false -logging: - deobfuscate-stacktraces: true -messages: - kick: - authentication-servers-down: - connection-throttle: Connection throttled! Please wait before reconnecting. - flying-player: - flying-vehicle: - no-permission: I'm sorry, but you do not have permission to perform this command. - Please contact the server administrators if you believe that this is in error. - use-display-name-in-quit-message: false -misc: - chat-threads: - chat-executor-core-size: -1 - chat-executor-max-size: -1 - client-interaction-leniency-distance: default - compression-level: default - fix-entity-position-desync: true - load-permissions-yml-before-plugins: true - max-joins-per-tick: 5 - region-file-cache-size: 256 - strict-advancement-dimension-check: false - use-alternative-luck-formula: false - use-dimension-type-for-custom-spawners: false - xp-orb-groups-per-area: default -packet-limiter: - all-packets: - action: KICK - interval: 7.0 - max-packet-rate: 500.0 - kick-message: - overrides: - ServerboundPlaceRecipePacket: - action: DROP - interval: 4.0 - max-packet-rate: 5.0 -player-auto-save: - max-per-tick: -1 - rate: -1 -proxies: - bungee-cord: - online-mode: true - proxy-protocol: false - velocity: - enabled: false - online-mode: true - secret: '' -scoreboards: - save-empty-scoreboard-teams: true - track-plugin-scoreboards: false -spam-limiter: - incoming-packet-threshold: 300 - recipe-spam-increment: 1 - recipe-spam-limit: 20 - tab-spam-increment: 1 - tab-spam-limit: 500 -spark: - enable-immediately: false - enabled: true -unsupported-settings: - allow-headless-pistons: false - allow-permanent-block-break-exploits: false - allow-piston-duplication: false - allow-unsafe-end-portal-teleportation: false - compression-format: ZLIB - perform-username-validation: true - skip-tripwire-hook-placement-validation: false - skip-vanilla-damage-tick-when-shield-blocked: false - update-equipment-on-player-actions: true -watchdog: - early-warning-delay: 10000 - early-warning-every: 5000 diff --git a/paper/run/config/paper-world-defaults.yml b/paper/run/config/paper-world-defaults.yml deleted file mode 100644 index 3ede446e..00000000 --- a/paper/run/config/paper-world-defaults.yml +++ /dev/null @@ -1,318 +0,0 @@ -# This is the world defaults configuration file for Paper. -# As you can see, there's a lot to configure. Some options may impact gameplay, so use -# with caution, and make sure you know what each option does before configuring. -# -# If you need help with the configuration or have any questions related to Paper, -# join us in our Discord or check the docs page. -# -# Configuration options here apply to all worlds, unless you specify overrides inside -# the world-specific config file inside each world folder. -# -# File Reference: https://docs.papermc.io/paper/reference/world-configuration/ -# Docs: https://docs.papermc.io/ -# Discord: https://discord.gg/papermc -# Website: https://papermc.io/ - -_version: 31 -anticheat: - anti-xray: - enabled: false - engine-mode: 1 - hidden-blocks: - - copper_ore - - deepslate_copper_ore - - raw_copper_block - - gold_ore - - deepslate_gold_ore - - iron_ore - - deepslate_iron_ore - - raw_iron_block - - coal_ore - - deepslate_coal_ore - - lapis_ore - - deepslate_lapis_ore - - mossy_cobblestone - - obsidian - - chest - - diamond_ore - - deepslate_diamond_ore - - redstone_ore - - deepslate_redstone_ore - - clay - - emerald_ore - - deepslate_emerald_ore - - ender_chest - lava-obscures: false - max-block-height: 64 - replacement-blocks: - - stone - - oak_planks - - deepslate - update-radius: 2 - use-permission: false -chunks: - auto-save-interval: default - delay-chunk-unloads-by: 10s - entity-per-chunk-save-limit: - arrow: -1 - ender_pearl: -1 - experience_orb: -1 - fireball: -1 - small_fireball: -1 - snowball: -1 - fixed-chunk-inhabited-time: -1 - flush-regions-on-save: false - max-auto-save-chunks-per-tick: 24 - prevent-moving-into-unloaded-chunks: false -collisions: - allow-player-cramming-damage: false - allow-vehicle-collisions: true - fix-climbing-bypassing-cramming-rule: false - max-entity-collisions: 8 - only-players-collide: false -command-blocks: - force-follow-perm-level: true - permissions-level: 2 -entities: - armor-stands: - do-collision-entity-lookups: true - tick: true - behavior: - allow-spider-world-border-climbing: true - baby-zombie-movement-modifier: 0.5 - cooldown-failed-beehive-releases: true - disable-chest-cat-detection: false - disable-creeper-lingering-effect: false - disable-player-crits: false - door-breaking-difficulty: - husk: - - HARD - vindicator: - - NORMAL - - HARD - zombie: - - HARD - zombie_villager: - - HARD - zombified_piglin: - - HARD - ender-dragons-death-always-places-dragon-egg: false - experience-merge-max-value: -1 - mobs-can-always-pick-up-loot: - skeletons: false - zombies: false - nerf-pigmen-from-nether-portals: false - only-merge-items-horizontally: false - parrots-are-unaffected-by-player-movement: false - phantoms-do-not-spawn-on-creative-players: true - phantoms-only-attack-insomniacs: true - phantoms-spawn-attempt-max-seconds: 119 - phantoms-spawn-attempt-min-seconds: 60 - piglins-guard-chests: true - pillager-patrols: - disable: false - spawn-chance: 0.2 - spawn-delay: - per-player: false - ticks: 12000 - start: - day: 5 - per-player: false - player-insomnia-start-ticks: 72000 - should-remove-dragon: false - spawner-nerfed-mobs-should-jump: false - zombie-villager-infection-chance: default - zombies-target-turtle-eggs: true - markers: - tick: true - mob-effects: - immune-to-wither-effect: - wither: true - wither-skeleton: true - spiders-immune-to-poison-effect: true - sniffer: - boosted-hatch-time: default - hatch-time: default - spawning: - all-chunks-are-slime-chunks: false - alt-item-despawn-rate: - enabled: false - items: - cobblestone: 300 - count-all-mobs-for-spawning: false - creative-arrow-despawn-rate: default - despawn-range-shape: ELLIPSOID - despawn-ranges: - ambient: - hard: default - soft: default - axolotls: - hard: default - soft: default - creature: - hard: default - soft: default - misc: - hard: default - soft: default - monster: - hard: default - soft: default - underground_water_creature: - hard: default - soft: default - water_ambient: - hard: default - soft: default - water_creature: - hard: default - soft: default - despawn-time: - llama_spit: disabled - snowball: disabled - disable-mob-spawner-spawn-egg-transformation: false - duplicate-uuid: - mode: SAFE_REGEN - safe-regen-delete-range: 32 - filter-bad-tile-entity-nbt-from-falling-blocks: true - filtered-entity-tag-nbt-paths: - - Pos - - Motion - - sleeping_pos - iron-golems-can-spawn-in-air: false - monster-spawn-max-light-level: default - non-player-arrow-despawn-rate: default - per-player-mob-spawns: true - scan-for-legacy-ender-dragon: true - skeleton-horse-thunder-spawn-chance: default - slime-spawn-height: - slime-chunk: - maximum: 40.0 - surface-biome: - maximum: 70.0 - minimum: 50.0 - spawn-limits: - ambient: -1 - axolotls: -1 - creature: -1 - monster: -1 - underground_water_creature: -1 - water_ambient: -1 - water_creature: -1 - ticks-per-spawn: - ambient: -1 - axolotls: -1 - creature: -1 - monster: -1 - underground_water_creature: -1 - water_ambient: -1 - water_creature: -1 - wandering-trader: - spawn-chance-failure-increment: 25 - spawn-chance-max: 75 - spawn-chance-min: 25 - spawn-day-length: 24000 - spawn-minute-length: 1200 - wateranimal-spawn-height: - maximum: default - minimum: default - tracking-range-y: - animal: default - display: default - enabled: false - misc: default - monster: default - other: default - player: default -environment: - disable-explosion-knockback: false - disable-ice-and-snow: false - disable-thunder: false - fire-tick-delay: 30 - frosted-ice: - delay: - max: 40 - min: 20 - enabled: true - generate-flat-bedrock: false - locate-structures-outside-world-border: false - max-block-ticks: 65536 - max-fluid-ticks: 65536 - nether-ceiling-void-damage-height: disabled - optimize-explosions: false - portal-create-radius: 16 - portal-search-radius: 128 - portal-search-vanilla-dimension-scaling: true - treasure-maps: - enabled: true - find-already-discovered: - loot-tables: default - villager-trade: false - void-damage-amount: 4.0 - void-damage-min-build-height-offset: -64.0 - water-over-lava-flow-speed: 5 -feature-seeds: - generate-random-seeds-for-all: false -fishing-time-range: - maximum: 600 - minimum: 100 -fixes: - disable-unloaded-chunk-enderpearl-exploit: false - falling-block-height-nerf: disabled - fix-items-merging-through-walls: false - prevent-tnt-from-moving-in-water: false - split-overstacked-loot: true - tnt-entity-height-nerf: disabled -hopper: - cooldown-when-full: true - disable-move-event: false - ignore-occluding-blocks: false -lootables: - auto-replenish: false - max-refills: -1 - refresh-max: 2d - refresh-min: 12h - reset-seed-on-fill: true - restrict-player-reloot: true - restrict-player-reloot-time: disabled - retain-unlooted-shulker-box-loot-table-on-non-player-break: true -maps: - item-frame-cursor-limit: 128 - item-frame-cursor-update-interval: 10 -max-growth-height: - bamboo: - max: 16 - min: 11 - cactus: 3 - reeds: 3 -misc: - alternate-current-update-order: HORIZONTAL_FIRST_OUTWARD - disable-end-credits: false - disable-relative-projectile-velocity: false - disable-sprint-interruption-on-attack: false - legacy-ender-pearl-behavior: false - max-leash-distance: default - redstone-implementation: VANILLA - shield-blocking-delay: 5 - show-sign-click-command-failure-msgs-to-player: false - update-pathfinding-on-block-update: true -scoreboards: - allow-non-player-entities-on-scoreboards: true - use-vanilla-world-scoreboard-name-coloring: false -spawn: - allow-using-signs-inside-spawn-protection: false -tick-rates: - behavior: - villager: - validatenearbypoi: -1 - container-update: 1 - dry-farmland: 1 - grass-spread: 1 - mob-spawner: 1 - sensor: - villager: - secondarypoisensor: 40 - wet-farmland: 1 -unsupported-settings: - disable-world-ticking-when-empty: false - fix-invulnerable-end-crystal-exploit: true diff --git a/paper/run/eula.txt b/paper/run/eula.txt deleted file mode 100644 index f4e3391a..00000000 --- a/paper/run/eula.txt +++ /dev/null @@ -1,3 +0,0 @@ -#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA). -#Fri May 09 13:50:37 EDT 2025 -eula=true \ No newline at end of file diff --git a/paper/run/server.properties b/paper/run/server.properties deleted file mode 100644 index 7f89e229..00000000 --- a/paper/run/server.properties +++ /dev/null @@ -1,64 +0,0 @@ -#Minecraft server properties -#Thu May 29 15:38:39 EDT 2025 -accepts-transfers=false -allow-flight=false -allow-nether=false -broadcast-console-to-ops=true -broadcast-rcon-to-ops=true -bug-report-link= -debug=false -difficulty=easy -enable-command-block=false -enable-jmx-monitoring=false -enable-query=false -enable-rcon=false -enable-status=true -enforce-secure-profile=true -enforce-whitelist=false -entity-broadcast-range-percentage=100 -force-gamemode=false -function-permission-level=2 -gamemode=survival -generate-structures=true -generator-settings={} -hardcore=false -hide-online-players=false -initial-disabled-packs= -initial-enabled-packs=vanilla -level-name=world -level-seed= -level-type=minecraft\:normal -log-ips=true -max-chained-neighbor-updates=1000000 -max-players=20 -max-tick-time=60000 -max-world-size=29999984 -motd=A Minecraft Server -network-compression-threshold=256 -online-mode=true -op-permission-level=4 -pause-when-empty-seconds=-1 -player-idle-timeout=0 -prevent-proxy-connections=false -pvp=true -query.port=25565 -rate-limit=0 -rcon.password= -rcon.port=25575 -region-file-compression=deflate -require-resource-pack=false -resource-pack= -resource-pack-id= -resource-pack-prompt= -resource-pack-sha1= -server-ip= -server-port=25565 -simulation-distance=10 -spawn-monsters=true -spawn-protection=16 -sync-chunk-writes=true -text-filtering-config= -text-filtering-version=0 -use-native-transport=true -view-distance=10 -white-list=false diff --git a/paper/run/spigot.yml b/paper/run/spigot.yml deleted file mode 100644 index c5b65540..00000000 --- a/paper/run/spigot.yml +++ /dev/null @@ -1,182 +0,0 @@ -# This is the Spigot configuration file for Paper. -# As you can see, there's tons to configure. Some options may impact gameplay, so use -# with caution, and make sure you know what each option does before configuring. -# -# If you need help with the configuration or have any questions related to Paper, -# join us in our Discord or check the docs page. -# -# File Reference: https://docs.papermc.io/paper/reference/spigot-configuration/ -# Docs: https://docs.papermc.io/ -# Discord: https://discord.gg/papermc -# Website: https://papermc.io/ - -settings: - debug: false - bungeecord: false - player-shuffle: 0 - netty-threads: 4 - attribute: - maxAbsorption: - max: 2048.0 - maxHealth: - max: 1024.0 - movementSpeed: - max: 1024.0 - attackDamage: - max: 2048.0 - user-cache-size: 1000 - save-user-cache-on-stop-only: false - sample-count: 12 - log-villager-deaths: true - log-named-deaths: true - timeout-time: 60 - restart-on-crash: true - restart-script: ./start.sh - moved-wrongly-threshold: 0.0625 - moved-too-quickly-multiplier: 10.0 -messages: - whitelist: You are not whitelisted on this server! - unknown-command: Unknown command. Type "/help" for help. - server-full: The server is full! - outdated-client: Outdated client! Please use {0} - outdated-server: Outdated server! I'm still on {0} - restart: Server is restarting -advancements: - disable-saving: false - disabled: - - minecraft:story/disabled -world-settings: - default: - below-zero-generation-in-existing-chunks: true - view-distance: default - simulation-distance: default - zombie-aggressive-towards-villager: true - enable-zombie-pigmen-portal-spawns: true - entity-activation-range: - animals: 32 - monsters: 32 - raiders: 64 - misc: 16 - water: 16 - villagers: 32 - flying-monsters: 32 - wake-up-inactive: - animals-max-per-tick: 4 - animals-every: 1200 - animals-for: 100 - monsters-max-per-tick: 8 - monsters-every: 400 - monsters-for: 100 - villagers-max-per-tick: 4 - villagers-every: 600 - villagers-for: 100 - flying-monsters-max-per-tick: 8 - flying-monsters-every: 200 - flying-monsters-for: 100 - villagers-work-immunity-after: 100 - villagers-work-immunity-for: 20 - villagers-active-for-panic: true - tick-inactive-villagers: true - ignore-spectators: false - entity-tracking-range: - players: 128 - animals: 96 - monsters: 96 - misc: 96 - display: 128 - other: 64 - growth: - cactus-modifier: 100 - cane-modifier: 100 - melon-modifier: 100 - mushroom-modifier: 100 - pumpkin-modifier: 100 - sapling-modifier: 100 - beetroot-modifier: 100 - carrot-modifier: 100 - potato-modifier: 100 - torchflower-modifier: 100 - wheat-modifier: 100 - netherwart-modifier: 100 - vine-modifier: 100 - cocoa-modifier: 100 - bamboo-modifier: 100 - sweetberry-modifier: 100 - kelp-modifier: 100 - twistingvines-modifier: 100 - weepingvines-modifier: 100 - cavevines-modifier: 100 - glowberry-modifier: 100 - pitcherplant-modifier: 100 - thunder-chance: 100000 - unload-frozen-chunks: false - nerf-spawner-mobs: false - mob-spawn-range: 8 - item-despawn-rate: 6000 - arrow-despawn-rate: 1200 - trident-despawn-rate: 1200 - merge-radius: - item: 0.5 - exp: -1.0 - ticks-per: - hopper-transfer: 8 - hopper-check: 1 - hopper-amount: 1 - hopper-can-load-chunks: false - hunger: - jump-walk-exhaustion: 0.05 - jump-sprint-exhaustion: 0.2 - combat-exhaustion: 0.1 - regen-exhaustion: 6.0 - swim-multiplier: 0.01 - sprint-multiplier: 0.1 - other-multiplier: 0.0 - wither-spawn-sound-radius: 0 - end-portal-sound-radius: 0 - dragon-death-sound-radius: 0 - hanging-tick-frequency: 100 - seed-village: 10387312 - seed-desert: 14357617 - seed-igloo: 14357618 - seed-jungle: 14357619 - seed-swamp: 14357620 - seed-monument: 10387313 - seed-shipwreck: 165745295 - seed-ocean: 14357621 - seed-outpost: 165745296 - seed-endcity: 10387313 - seed-slime: 987234911 - seed-nether: 30084232 - seed-mansion: 10387319 - seed-fossil: 14357921 - seed-portal: 34222645 - seed-ancientcity: 20083232 - seed-trailruins: 83469867 - seed-trialchambers: 94251327 - seed-buriedtreasure: 10387320 - seed-mineshaft: default - seed-stronghold: default - max-tnt-per-tick: 100 - max-tick-time: - tile: 50 - entity: 50 - verbose: false -players: - disable-saving: false -config-version: 12 -stats: - disable-saving: false - forced-stats: {} -commands: - tab-complete: 0 - send-namespaced: true - spam-exclusions: - - /skill - log: true - replace-commands: - - setblock - - summon - - testforblock - - tellraw - silent-commandblock-console: false - enable-spam-exclusions: false diff --git a/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousCmdData.java b/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousCmdData.java index 66277d1c..3256de72 100644 --- a/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousCmdData.java +++ b/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousCmdData.java @@ -22,7 +22,7 @@ public boolean containsUser(UUID uuid) { } public String getMessage(UUID uuid) { - return map.get(uuid); + return map.getOrDefault(uuid, ""); } public Map getUsers() { diff --git a/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousMsgData.java b/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousMsgData.java index dc47b7b8..592a59ef 100644 --- a/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousMsgData.java +++ b/paper/src/main/java/com/ryderbelserion/chatmanager/api/chat/logging/PreviousMsgData.java @@ -22,7 +22,7 @@ public boolean containsUser(UUID uuid) { } public String getMessage(UUID uuid) { - return map.get(uuid); + return map.getOrDefault(uuid, ""); } public Map getUsers() { diff --git a/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/ChatCooldowns.java b/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/ChatCooldowns.java index 46f76c50..0104ecf5 100644 --- a/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/ChatCooldowns.java +++ b/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/ChatCooldowns.java @@ -22,7 +22,7 @@ public boolean containsUser(UUID uuid) { } public int getTime(UUID uuid) { - return map.get(uuid); + return containsUser(uuid) ? map.get(uuid) : 0; } public void subtract(UUID uuid) { diff --git a/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/CmdCooldowns.java b/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/CmdCooldowns.java index 1aa0a7ec..a9691ed6 100644 --- a/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/CmdCooldowns.java +++ b/paper/src/main/java/com/ryderbelserion/chatmanager/api/cooldowns/CmdCooldowns.java @@ -22,7 +22,7 @@ public boolean containsUser(UUID uuid) { } public int getTime(UUID uuid) { - return map.get(uuid); + return map.getOrDefault(uuid, 0); } public void subtract(UUID uuid) { diff --git a/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/commands/CommandMessage.java b/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/commands/CommandMessage.java index d56ab213..764be07b 100644 --- a/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/commands/CommandMessage.java +++ b/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/commands/CommandMessage.java @@ -217,7 +217,7 @@ private boolean handleMessage(String[] args, Player player, StringBuilder messag if (contains) { Messages.SOCIAL_SPY_FORMAT.sendMessage(staff, new HashMap<>() {{ put("{player}", player.getName()); - put("{receiver", target.getName()); + put("{receiver}", target.getName()); put("{message}", message.toString()); }}); } diff --git a/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/listeners/ListenerAntiSpam.java b/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/listeners/ListenerAntiSpam.java index 4dec35b4..1b9dbfd2 100644 --- a/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/listeners/ListenerAntiSpam.java +++ b/paper/src/main/java/me/h1dd3nxn1nja/chatmanager/listeners/ListenerAntiSpam.java @@ -35,7 +35,7 @@ public void antiSpamChat(AsyncChatEvent event) { if (this.previousMsgData.containsUser(uuid) && !this.chatCooldowns.containsUser(uuid)) { final String msg = this.previousMsgData.getMessage(uuid); - if (message.equalsIgnoreCase(msg)) { + if (!msg.isEmpty() && message.equalsIgnoreCase(msg)) { Messages.ANTI_SPAM_CHAT_REPETITIVE_MESSAGE.sendMessage(player); event.setCancelled(true); @@ -81,7 +81,7 @@ public void run() { chatCooldowns.subtract(uuid); - if (time == 0) { + if (time <= 0) { chatCooldowns.removeUser(uuid); cooldownTask.removeUser(uuid); @@ -115,7 +115,7 @@ public void onSpamCommand(PlayerCommandPreprocessEvent event) { if (this.previousCmdData.containsUser(uuid) && !this.cmdCooldowns.containsUser(uuid)) { final String cmd = this.previousCmdData.getMessage(uuid); - if (command.equalsIgnoreCase(cmd)) { + if (!cmd.isEmpty() && command.equalsIgnoreCase(cmd)) { Messages.ANTI_SPAM_COMMAND_REPETITIVE_MESSAGE.sendMessage(player); event.setCancelled(true);