diff --git a/.dockerignore b/.dockerignore index 8b8e452..7db8ecf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -21,6 +21,9 @@ src/plugins/spark/tmp .crowdin src/plugins/PlasmoVoice/voice_mutes.json +src/orebfuscator_cache +src/plugins/GrimAC/violations.sqlite + src/plugins/LuckPerms/libs src/plugins/ImageFrame/data diff --git a/.gitignore b/.gitignore index 8b8e452..7db8ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,9 @@ src/plugins/spark/tmp .crowdin src/plugins/PlasmoVoice/voice_mutes.json +src/orebfuscator_cache +src/plugins/GrimAC/violations.sqlite + src/plugins/LuckPerms/libs src/plugins/ImageFrame/data diff --git a/Dockerfile b/Dockerfile index 2a81bfa..2784540 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,6 +108,12 @@ ENV LIBERTYBANS_DB_PASSWORD=0000 ENV DISCORDSRV_BOT_TOKEN=dummy-token +ENV GRIM_DB_HOST=127.0.0.1 +ENV GRIM_DB_PORT=3306 +ENV GRIM_DB_NAME=luckperms +ENV GRIM_DB_USERNAME=luckperms +ENV GRIM_DB_PASSWORD=0000 + WORKDIR ${WORKDIR_PATH}/config # Minecraft @@ -136,6 +142,13 @@ CMD \ sed -i "s/_COREPROTECT_DB_USERNAME_/${COREPROTECT_DB_USERNAME}/g" plugins/CoreProtect/config.yml && \ sed -i "s/_COREPROTECT_DB_PASSWORD_/${COREPROTECT_DB_PASSWORD}/g" plugins/CoreProtect/config.yml && \ + # Add grim database secrets + sed -i "s/_GRIM_DB_HOST_/${GRIM_DB_HOST}/g" plugins/GrimAC/config.yml && \ + sed -i "s/_GRIM_DB_PORT_/${GRIM_DB_PORT}/g" plugins/GrimAC/config.yml && \ + sed -i "s/_GRIM_DB_NAME_/${GRIM_DB_NAME}/g" plugins/GrimAC/config.yml && \ + sed -i "s/_GRIM_DB_USERNAME_/${GRIM_DB_USERNAME}/g" plugins/GrimAC/config.yml && \ + sed -i "s/_GRIM_DB_PASSWORD_/${GRIM_DB_PASSWORD}/g" plugins/GrimAC/config.yml && \ + # Add libertybans database secrets sed -i "s/_LIBERTYBANS_DB_HOST_/${LIBERTYBANS_DB_HOST}/g" plugins/LibertyBans/sql.yml && \ sed -i "s/_LIBERTYBANS_DB_PORT_/${LIBERTYBANS_DB_PORT}/g" plugins/LibertyBans/sql.yml && \ diff --git a/src/plugins/GrimAC/config.yml b/src/plugins/GrimAC/config.yml new file mode 100644 index 0000000..28cabeb --- /dev/null +++ b/src/plugins/GrimAC/config.yml @@ -0,0 +1,218 @@ +# GrimAC main configuration +# Source code: https://github.com/MWHunter/Grim +# Copyright 2025 DefineOutside and contributors, Licensed under GPLv3. +# Modified binaries, or plugins with copied grim code, must be private, +# or with full source code available to buyers at no additional cost. + +alerts: + # In addition to broadcasting alerts to players, should they also be sent to the console? + print-to-console: true + # This controls whether/how alerts are shared between servers connected to your proxy. + # You must have 'bungee-plugin-message-channel' enabled in your Velocity's configuration if Velocity is in use. + proxy: + # Should alerts be sent to other servers connected to your proxy? + send: false + # Should the alerts received from other servers be announced to this server? + receive: false + +verbose: + print-to-console: false + +check-for-updates: true + +client-brand: + # This means it won't broadcast their brand to operators if the brand matches the following regexes + ignored-clients: + - "^vanilla$" + # - "^fabric$" + # - "^lunarclient:v\\d+\\.\\d+\\.\\d+-\\d{4}$" + # - "^Feather Fabric$" + # - "^labymod$" + +spectators: + # Hide all spectators with the grim.spectator permission regardless if they are actually actively spectating + hide-regardless: false + # Will make spectators hidden only in these worlds, keep blank to allow all worlds + allowed-worlds: + - "" + +# How long should players have until we kick them for timing out? Default = 60 seconds +max-transaction-time: 60 + +# Should the duplicate movement packet be cancelled? +# Mojang has fixed this issue in 1.21. This was their attempt to fix the "bucket desync". https://bugs.mojang.com/browse/MC-12363 +# This setting only applies to 1.17-1.20.5 clients on 1.8 servers. +cancel-duplicate-packet: true + +# Whether or not to ignore the rotation in duplicate packets +ignore-duplicate-packet-rotation: false + +Simulation: + # How much should we multiply total advantage by when the player is legit + # This is what the default config looks like (x axis = seconds, y axis = 1/1000 block): https://www.desmos.com/calculator/d4ufgxrxer + setback-decay-multiplier: 0.999 + # How large of an offset from the player's movement should we create a violation for? + # Measured in blocks from the possible movement + # We account for Optifine by switching trig tables but dropping this to 0.001 will reduce FastMath + # flagging the anticheat if this compensation doesn't work... + threshold: 0.001 + # How large of a violation in a tick before the player gets immediately setback? + # -1 to disable + immediate-setback-threshold: 0.1 + # How large of an advantage over all ticks before we start to setback? + # -1 to disable + max-advantage: 1 + # After 50 seconds with default config, the player will go from 4 blocks -> 1 block of advantage + # This is to stop the player from gathering too many violations and never being able to clear them all + # Default advantage ceiling (x axis = seconds, y axis = 1/1000 block): https://www.desmos.com/calculator/4lovswdarj + max-ceiling: 4 + # Violation level threshold for setback + # 1 for old behavior + setback-violation-threshold: 1 + +# Checks to see if a player entered a block during a movement +Phase: + setbackvl: 1 # Glitching into blocks can allow wall climbing, plus this check is relatively stable + decay: 0.005 + +AirLiquidPlace: + cancelvl: 0 + +FabricatedPlace: + cancelvl: 5 + +FarPlace: + cancelvl: 5 + +PositionPlace: + cancelvl: 5 + +RotationPlace: + cancelvl: 5 + +# Prediction-based no slow check +# Grim accounts for buggy netcode here... hard to false even when spamming right click and offhand button +# Much more stable than other anticheats, but please report any falses... I have fixed a ton of netcode issues here. +NoSlow: + # How much of an offset is "cheating" + # By default this is lower than other offs + # Flags by 0.03-0.2 consistently with NoSlow on + threshold: 0.001 + # Setback fast on the first item to remove any advantage NoSlow gives + setbackvl: 5 + # Decay's when the player uses an item AND is slowed by it + decay: 0.05 + +Knockback: + # How much should we multiply total advantage by when the player is legit + setback-decay-multiplier: 0.999 + # How large of an offset from the player's velocity should we create a violation for? + # Measured in blocks from the possible velocity + threshold: 0.001 + # How large of a violation in a tick before the player gets immediately setback? + # -1 to disable + immediate-setback-threshold: 0.1 + # How large of an advantage over all ticks before we start to setback? + # -1 to disable + max-advantage: 1 + # This is to stop the player from gathering too many violations and never being able to clear them all + max-ceiling: 4 + +Explosion: + threshold: 0.001 + setbackvl: 3 + +TimerA: + setbackvl: 10 + # Milliseconds that the player can accumulate for later use when they fall behind + # Could potentially allow 1.8 fast use/fast heal/fast bow bypasses if set too high, 120 ms seems like a good balance + drift: 120 + # Ping at which the check will start to limit timer balance, to prevent abuse. + # Can cause some setbacks for legitimate players but only if they are over this ping threshold. + # -1 to disable + ping-abuse-limit-threshold: 1000 + +NegativeTimer: + # Number of milliseconds lost while moving before we should start flagging + drift: 1200 + +# Same check method as TimerA, but for vehicles +TimerVehicle: + # Target 1.005 timer + setbackvl: 10 + +PacketOrderI: + # enable if players are getting flagged for using 1.7 animations mods + exempt-placing-while-digging: false + +Reach: + # How much should we expand hitboxes by? 0.0005 should detect 3.0005+ reach + # + # There is 0.03 forced expansion with 1.9-1.18.1 (not 1.18.2), or some client/server combinations due to + # protocol changes and limitations. This check is most powerful with 1.7/1.8 clients on 1.8 servers. + threshold: 0.0005 + # Should we cancel hits that we know are impossible? + # 3.00-3.03 hits may go through but still be flagged, due to packet order limitations + block-impossible-hits: true + # This will send an additional packet at the end of every tick to increase the likelihood of catching cheats + # This injects into server's connection list to send a final packet just before the server flushes + # Enabling this will increase bandwidth usage for all players + # This will not decrease overall server performance + # Enabling this will catch more cheaters. + # Leaving this disabled will still catch cheaters and will not cause false positives + # Unless you are a 1.8 PvP focused server, this additional packet is not recommended + enable-post-packet: false + +exploit: + # You can gain high speeds when sprint jumping with an elytra, this prevents the exploit when set to false + # Mojang screwed up netcode by making elytra start client sided and elytra end server sided + # Elytras take 0.99 horizontal friction, so constantly adding 0.2 horizontal speeds results in very high speeds. + allow-sprint-jumping-when-using-elytra: true + # This option mitigates the player's placement on ghostblocks by resynchronizing the player when it happens + allow-building-on-ghostblocks: true + # This setting, influenced by the boolean above defines the distance to check for ghost blocks + # Its valid range is limited from 2 to 4 + distance-to-check-if-ghostblocks: 2 + +# Enable logging plugins who have injected into netty on join to debug compatibility issues +debug-pipeline-on-join: false + +# Enables experimental checks +experimental-checks: false + +reset-item-usage-on-item-update: true +reset-item-usage-on-attack: true +reset-item-usage-on-slot-change: true + +# Grim sometimes cancels illegal packets such as with timer, after X packets in a second cancelled, when should +# we simply kick the player? This is required as some packet limiters don't count packets cancelled by grim. +packet-spam-threshold: 100 +# Enable this to print a stacktrace when a player is kicked due to packet-spam-threshold +debug-packet-cancel: false + +# Grim is able to enforce that a player set out of flying state cannot have more than X milliseconds of ping +# This is due to Grim not currently checking flying players +# To disable, use -1 +max-ping-out-of-flying: 1000 + +# Maximum ping when a firework boost is removed from the player. +# This prevents high latency players from being able to use 1 firework boost with an elytra forever. +max-ping-firework-boost: 1000 + +history: + enabled: true + # How many entries should be shown for each page with /grim history + entries-per-page: 15 + # What should the inserted server name be for the history command? This is useful if you use the same database for multiple servers + server-name: survival + database: + # Use SQLITE for local storage, use MYSQL if you have an external MySQL database. This is only updated on server restart + type: SQLITE + # MySQL connection details + host: _GRIM_DB_HOST_ + port: _GRIM_DB_PORT_ + database: _GRIM_DB_NAME_ + username: _GRIM_DB_USERNAME_ + password: '_GRIM_DB_PASSWORD_' + +config-version: 9 diff --git a/src/plugins/GrimAC/discord.yml b/src/plugins/GrimAC/discord.yml new file mode 100644 index 0000000..f1095f0 --- /dev/null +++ b/src/plugins/GrimAC/discord.yml @@ -0,0 +1,12 @@ +enabled: false +webhook: "" +embed-title: "**Grim Alert**" +embed-color: "#00FFFF" +violation-content: + - "**Player**: %player%" + - "**Check**: %check%" + - "**Violations**: %violations%" + - "**Client Version**: %version%" + - "**Brand**: %brand%" + - "**Ping**: %ping%" + - "**TPS**: %tps%" diff --git a/src/plugins/GrimAC/messages.yml b/src/plugins/GrimAC/messages.yml new file mode 100644 index 0000000..3af1ad2 --- /dev/null +++ b/src/plugins/GrimAC/messages.yml @@ -0,0 +1,71 @@ +# \u00BB is ยป (double >>), ANSI and UTF-8 interpret this differently... you may even see ? due to this +prefix: "&bGrim &8\u00BB" + +alerts-enabled: "%prefix% &fAlerts enabled" +alerts-disabled: "%prefix% &fAlerts disabled" +verbose-enabled: "%prefix% &fVerbose enabled" +verbose-disabled: "%prefix% &fVerbose disabled" +brands-enabled: "%prefix% &fBrands enabled" +brands-disabled: "%prefix% &fBrands disabled" +client-brand-format: "%prefix% &f%player% joined using %brand%" +console-specify-target: "%prefix% &cYou must specify a target as the console!" +reloading: "%prefix% &7Reloading config..." +reloaded: "%prefix% &fConfig has been reloaded." +reload-failed: "%prefix% &cFailed to reload config." +player-not-found: "%prefix% &cPlayer is exempt or offline!" +player-not-this-server: "%prefix% &cPlayer is not on this server!" +spectate-return: "\n%prefix% &fClick here to return to previous location\n" +cannot-spectate-return: "%prefix% &cYou can only do this after spectating a player" +cannot-run-on-self: "%prefix% &cYou cannot use this command on yourself!" +upload-log: "%prefix% &fUploaded debug to: %url%" +upload-log-start: "%prefix% &fUploading log... please wait" +upload-log-not-found: "%prefix% &cUnable to find that log" +upload-log-upload-failure: "%prefix% &cSomething went wrong while uploading this log, see console for more info" +disconnect: + timeout: "" + closed: "" +run-as-player: "%prefix% &cThis command can only be used by players!" +run-as-player-or-console: "%prefix% &cThis command can only be used by players or the console!" + +# Valid placeholders: +# %prefix% +# %player% +# %check_name% +# %description% +# %experimental% +# %vl% - violations +# %verbose% - extra information from the check such as offsets, not all checks will add information +alerts-format: "%prefix% &f%player% &bfailed &f%check_name%%experimental% &f(x&c%vl%&f) &7%verbose%" +alerts-format-proxy: "%prefix% &f[&cproxy&f] &f%player% &bfailed &f%check_name%%experimental% &f(x&c%vl%&f) &7%verbose%" +experimental-symbol: "*" + +profile: + - "&7======================" + - "%prefix% &bProfile for &f%player%" + - "&bPing: &f%ping%" + - "&bVersion: &f%version%" + - "&bClient Brand: &f%brand%" + - "&bHorizontal Sensitivity: &f%h_sensitivity%%" + - "&bVertical Sensitivity: &f%v_sensitivity%%" + - "&bFastMath Enabled: &f%fast_math%" + - "&7======================" +help: + - "&7======================" + - "/grim alerts &f- &7Toggle alerts" + - "/grim brands &f- &7Toggle brands" + - "/grim profile &f- &7View player info" + - "/grim help &f- &7View this help message" + - "/grim debug &f- &7Developer Prediction output" + - "/grim perf &f- &7Developer ms/prediction" + - "/grim reload &f- &7Reloads the config" + - "/grim spectate &f- &7Spectate a player" + - "/grim verbose &f- &7Shows every flag to you, without buffers" + - "/grim log [0-255] &f- &7Uploads a debug log for prediction flags" + - "/grim history [page] &f- &7Shows previous alerts for the player" + - "&7======================" + +grim-history-disabled: "%prefix% &cHistory subsystem is disabled!" +# Valid placeholders: %prefix% %player% %page% %maxPages% +grim-history-header: "%prefix% &bShowing logs for &f%player% (&f%page%&b/&f%maxPages%&f)" +# Valid placeholders: %prefix% %check% %vl% %verbose% %timeago% %server% +grim-history-entry: "%prefix% &8[&f%server%&8] &bFailed &f%check% (x&c%vl%&f) &7%verbose% (&b%timeago% ago&7)" diff --git a/src/plugins/GrimAC/punishments.yml b/src/plugins/GrimAC/punishments.yml new file mode 100644 index 0000000..8997f57 --- /dev/null +++ b/src/plugins/GrimAC/punishments.yml @@ -0,0 +1,143 @@ +# # %check_name% - name of the check +# # %description% - description of the check +# # %vl% - violations +# # %verbose% - extra information +# # %player% - player name +# # [alert] - special command to alert +# # [webhook] - special command to alert to discord webhook +# # [proxy] - special command to alert to other servers connected to your proxy (BungeeCord/Velocity) +# Punishments: +# Simulation: +# # After how many seconds should a violation be removed? +# remove-violations-after: 300 +# # This section will match all checks with the name, +# # To exclude a check that would otherwise be matched, put an exclamation mark in front of the name +# # For example, !BadPacketsN +# checks: +# - "Simulation" +# - "GroundSpoof" +# - "Timer" +# - "NoFall" +# # Threshold:Interval Command +# # +# # Example, to kick the player with the message "incorrect movement!" after 100 violations, with no interval +# # commands: +# # - "100:0 kick %player% incorrect movement!" +# # 0 means execute exactly once +# # - "100:50 say %player% is cheating" +# # Execute when the user hits flag 100, and after that, every 50th flag after 100 +# # +# commands: +# - "100:40 [alert]" +# - "100:40 [log]" +# - "100:100 [webhook]" +# - "100:100 [proxy]" +# Knockback: +# remove-violations-after: 300 +# checks: +# - "Knockback" +# - "Explosion" +# commands: +# - "5:5 [alert]" +# - "5:5 [log]" +# - "20:20 [webhook]" +# - "20:20 [proxy]" +# Post: +# remove-violations-after: 300 +# checks: +# - "Post" +# commands: +# - "20:20 [alert]" +# - "20:20 [log]" +# - "40:40 [webhook]" +# - "40:40 [proxy]" +# BadPackets: +# remove-violations-after: 300 +# checks: +# - "BadPackets" +# - "PacketOrder" +# - "Crash" +# commands: +# - "20:20 [alert]" +# - "20:20 [log]" +# - "40:40 [webhook]" +# - "40:40 [proxy]" +# Inventory: +# remove-violations-after: 300 +# checks: +# - "Inventory" +# commands: +# - "10:10 [alert]" +# - "10:10 [log]" +# - "20:20 [webhook]" +# - "20:20 [proxy]" +# Reach: +# remove-violations-after: 300 +# checks: +# - "Reach" +# commands: +# - "1:1 [alert]" +# - "1:1 [log]" +# - "1:1 [webhook]" +# - "1:1 [proxy]" +# Hitboxes: +# remove-violations-after: 300 +# checks: +# - "Hitboxes" +# commands: +# - "5:3 [alert]" +# - "5:3 [log]" +# - "5:3 [webhook]" +# - "5:3 [proxy]" +# WallHit: +# remove-violations-after: 300 +# checks: +# - "WallHit" +# commands: +# - "10:5 [alert]" +# - "10:5 [webhook]" +# - "10:5 [proxy]" +# - "10:5 [log]" +# EntityPierce: +# remove-violations-after: 300 +# checks: +# - "EntityPierce" +# commands: +# - "15:10 [alert]" +# - "15:10 [webhook]" +# - "15:10 [proxy]" +# - "15:10 [log]" +# Misc: +# remove-violations-after: 300 +# checks: +# - "Vehicle" +# - "NoSlow" +# - "Sprint" +# - "MultiActions" +# - "Place" +# - "Baritone" +# - "Break" +# - "TransactionOrder" +# - "Elytra" +# commands: +# - "10:5 [alert]" +# - "10:5 [log]" +# - "20:10 [webhook]" +# - "20:10 [proxy]" +# Combat: +# remove-violations-after: 300 +# checks: +# - "Interact" +# - "Killaura" +# - "Aim" +# commands: +# - "20:40 [alert]" +# - "20:40 [log]" +# # As of 2.2.10, there are no AutoClicker checks and this is a placeholder. Grim will include AutoClicker checks in the future. +# Autoclicker: +# remove-violations-after: 300 +# checks: +# - "Autoclicker" +# commands: +# - "20:40 [alert]" +# - "20:40 [log]" diff --git a/src/plugins/LightningGrim-bukkit-2.3.72-db5a1be.jar b/src/plugins/LightningGrim-bukkit-2.3.72-db5a1be.jar new file mode 100644 index 0000000..2a91348 --- /dev/null +++ b/src/plugins/LightningGrim-bukkit-2.3.72-db5a1be.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a8247ef4888a657469c6f55be53ce5fb40d11984fc21662a18c48c6062b54c8 +size 10122154 diff --git a/src/plugins/Orebfuscator/config.yml b/src/plugins/Orebfuscator/config.yml new file mode 100644 index 0000000..29b63fe --- /dev/null +++ b/src/plugins/Orebfuscator/config.yml @@ -0,0 +1,413 @@ +version: 4 +general: + checkForUpdates: true + updateOnBlockDamage: true + bypassNotification: true + ignoreSpectator: false + updateRadius: 2 +advanced: + verbose: false + obfuscation: + threads: -1 + timeout: 10000 + maxMillisecondsPerTick: 10 + proximity: + threads: -1 + defaultBucketSize: 50 + threadCheckInterval: 50 + playerCheckInterval: 5000 +cache: + enabled: true + memoryCache: + maximumSize: 32768 + expireAfterAccess: 60000 + diskCache: + enabled: true + directory: orebfuscator_cache + maximumOpenFiles: 256 + deleteFilesAfterAccess: 21600000 + maximumTaskQueueSize: 32768 +obfuscation: + obfuscation-overworld: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world + layerObfuscation: false + hiddenBlocks: + - minecraft:emerald_ore + - minecraft:deepslate_emerald_ore + - minecraft:diamond_ore + - minecraft:deepslate_diamond_ore + - minecraft:gold_ore + - minecraft:deepslate_gold_ore + - minecraft:raw_gold_block + - minecraft:iron_ore + - minecraft:deepslate_iron_ore + - minecraft:raw_iron_block + - minecraft:coal_ore + - minecraft:deepslate_coal_ore + - minecraft:lapis_ore + - minecraft:deepslate_lapis_ore + - minecraft:redstone_ore + - minecraft:deepslate_redstone_ore + - minecraft:copper_ore + - minecraft:raw_copper_block + - minecraft:deepslate_copper_ore + - minecraft:stone + - minecraft:deepslate + - minecraft:chest + - minecraft:ender_chest + - minecraft:trapped_chest + - minecraft:shulker_box + - minecraft:white_shulker_box + - minecraft:orange_shulker_box + - minecraft:magenta_shulker_box + - minecraft:light_blue_shulker_box + - minecraft:yellow_shulker_box + - minecraft:lime_shulker_box + - minecraft:pink_shulker_box + - minecraft:gray_shulker_box + - minecraft:light_gray_shulker_box + - minecraft:cyan_shulker_box + - minecraft:purple_shulker_box + - minecraft:blue_shulker_box + - minecraft:brown_shulker_box + - minecraft:green_shulker_box + - minecraft:red_shulker_box + - minecraft:black_shulker_box + - minecraft:bedrock + randomBlocks: + section-global: + minY: -2032 + maxY: 2031 + blocks: + minecraft:cave_air: 5 + minecraft:cobblestone: 1 + minecraft:mossy_cobblestone: 1 + minecraft:obsidian: 1 + section-stone: + minY: -5 + maxY: 2031 + blocks: + minecraft:stone: 15 + minecraft:diamond_ore: 10 + minecraft:emerald_ore: 5 + minecraft:gold_ore: 5 + minecraft:iron_ore: 5 + minecraft:copper_ore: 5 + minecraft:coal_ore: 5 + minecraft:lapis_ore: 5 + minecraft:redstone_ore: 5 + section-deepslate: + minY: -2032 + maxY: 5 + blocks: + minecraft:deepslate: 15 + minecraft:deepslate_diamond_ore: 10 + minecraft:deepslate_emerald_ore: 5 + minecraft:deepslate_gold_ore: 5 + minecraft:deepslate_iron_ore: 5 + minecraft:deepslate_copper_ore: 5 + minecraft:deepslate_coal_ore: 5 + minecraft:deepslate_lapis_ore: 5 + minecraft:deepslate_redstone_ore: 5 + section-bedrock: + minY: -64 + maxY: -60 + blocks: + minecraft:bedrock: 20 + obfuscation-nether: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world_nether + layerObfuscation: false + hiddenBlocks: + - minecraft:netherrack + - minecraft:nether_quartz_ore + - minecraft:chest + - minecraft:ender_chest + - minecraft:trapped_chest + - minecraft:shulker_box + - minecraft:white_shulker_box + - minecraft:orange_shulker_box + - minecraft:magenta_shulker_box + - minecraft:light_blue_shulker_box + - minecraft:yellow_shulker_box + - minecraft:lime_shulker_box + - minecraft:pink_shulker_box + - minecraft:gray_shulker_box + - minecraft:light_gray_shulker_box + - minecraft:cyan_shulker_box + - minecraft:purple_shulker_box + - minecraft:blue_shulker_box + - minecraft:brown_shulker_box + - minecraft:green_shulker_box + - minecraft:red_shulker_box + - minecraft:black_shulker_box + - minecraft:ancient_debris + - minecraft:nether_gold_ore + - minecraft:basalt + - minecraft:soul_sand + - minecraft:soul_soil + - minecraft:bedrock + randomBlocks: + section-global: + minY: -2032 + maxY: 2031 + blocks: + minecraft:netherrack: 4 + minecraft:nether_quartz_ore: 1 + minecraft:nether_gold_ore: 1 + minecraft:ancient_debris: 1 + section-bedrock-top: + minY: 123 + maxY: 127 + blocks: + minecraft:bedrock: 20 + section-bedrock-bottom: + minY: 0 + maxY: 4 + blocks: + minecraft:bedrock: 20 + obfuscation-end: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world_the_end + layerObfuscation: false + hiddenBlocks: + - minecraft:chest + - minecraft:ender_chest + - minecraft:trapped_chest + - minecraft:shulker_box + - minecraft:white_shulker_box + - minecraft:orange_shulker_box + - minecraft:magenta_shulker_box + - minecraft:light_blue_shulker_box + - minecraft:yellow_shulker_box + - minecraft:lime_shulker_box + - minecraft:pink_shulker_box + - minecraft:gray_shulker_box + - minecraft:light_gray_shulker_box + - minecraft:cyan_shulker_box + - minecraft:purple_shulker_box + - minecraft:blue_shulker_box + - minecraft:brown_shulker_box + - minecraft:green_shulker_box + - minecraft:red_shulker_box + - minecraft:black_shulker_box + randomBlocks: + section-global: + minY: -2032 + maxY: 2031 + blocks: + minecraft:end_stone: 1 + minecraft:end_stone_bricks: 1 + minecraft:bedrock: 1 + minecraft:obsidian: 1 + minecraft:purpur_block: 1 +proximity: + proximity-overworld: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world + distance: 24 + frustumCulling: + enabled: true + minDistance: 3.0 + fov: 80.0 + rayCastCheck: + enabled: true + onlyCheckCenter: true + useBlockBelow: true + hiddenBlocks: + minecraft:mossy_cobblestone: {} + minecraft:diamond_ore: {} + minecraft:deepslate_diamond_ore: {} + minecraft:emerald_ore: {} + minecraft:deepslate_emerald_ore: {} + minecraft:chest: {} + minecraft:ender_chest: {} + minecraft:trapped_chest: {} + minecraft:anvil: {} + minecraft:crafter: {} + minecraft:crafting_table: {} + minecraft:dispenser: {} + minecraft:enchanting_table: {} + minecraft:furnace: {} + minecraft:blast_furnace: {} + minecraft:cartography_table: {} + minecraft:fletching_table: {} + minecraft:grindstone: {} + minecraft:composter: {} + minecraft:lectern: {} + minecraft:loom: {} + minecraft:smithing_table: {} + minecraft:smoker: {} + minecraft:stonecutter: {} + minecraft:hopper: {} + minecraft:spawner: {} + minecraft:shulker_box: {} + minecraft:white_shulker_box: {} + minecraft:orange_shulker_box: {} + minecraft:magenta_shulker_box: {} + minecraft:light_blue_shulker_box: {} + minecraft:yellow_shulker_box: {} + minecraft:lime_shulker_box: {} + minecraft:pink_shulker_box: {} + minecraft:gray_shulker_box: {} + minecraft:light_gray_shulker_box: {} + minecraft:cyan_shulker_box: {} + minecraft:purple_shulker_box: {} + minecraft:blue_shulker_box: {} + minecraft:brown_shulker_box: {} + minecraft:green_shulker_box: {} + minecraft:red_shulker_box: {} + minecraft:black_shulker_box: {} + minecraft:bee_nest: {} + minecraft:beehive: {} + randomBlocks: + section-stone: + minY: -5 + maxY: 2031 + blocks: + minecraft:stone: 1 + section-deepslate: + minY: -2032 + maxY: 5 + blocks: + minecraft:deepslate: 1 + proximity-nether: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world_nether + distance: 24 + frustumCulling: + enabled: true + minDistance: 3.0 + fov: 80.0 + rayCastCheck: + enabled: true + onlyCheckCenter: true + useBlockBelow: true + hiddenBlocks: + minecraft:chest: {} + minecraft:ender_chest: {} + minecraft:trapped_chest: {} + minecraft:anvil: {} + minecraft:crafter: {} + minecraft:crafting_table: {} + minecraft:dispenser: {} + minecraft:enchanting_table: {} + minecraft:furnace: {} + minecraft:blast_furnace: {} + minecraft:cartography_table: {} + minecraft:fletching_table: {} + minecraft:grindstone: {} + minecraft:composter: {} + minecraft:lectern: {} + minecraft:loom: {} + minecraft:smithing_table: {} + minecraft:smoker: {} + minecraft:stonecutter: {} + minecraft:hopper: {} + minecraft:spawner: {} + minecraft:shulker_box: {} + minecraft:white_shulker_box: {} + minecraft:orange_shulker_box: {} + minecraft:magenta_shulker_box: {} + minecraft:light_blue_shulker_box: {} + minecraft:yellow_shulker_box: {} + minecraft:lime_shulker_box: {} + minecraft:pink_shulker_box: {} + minecraft:gray_shulker_box: {} + minecraft:light_gray_shulker_box: {} + minecraft:cyan_shulker_box: {} + minecraft:purple_shulker_box: {} + minecraft:blue_shulker_box: {} + minecraft:brown_shulker_box: {} + minecraft:green_shulker_box: {} + minecraft:red_shulker_box: {} + minecraft:black_shulker_box: {} + minecraft:bee_nest: {} + minecraft:beehive: {} + minecraft:ancient_debris: {} + minecraft:nether_gold_ore: {} + minecraft:respawn_anchor: {} + randomBlocks: + section-global: + minY: -2032 + maxY: 2031 + blocks: + minecraft:netherrack: 1 + proximity-end: + enabled: true + minY: -2032 + maxY: 2031 + worlds: + - world_the_end + distance: 24 + frustumCulling: + enabled: true + minDistance: 3.0 + fov: 80.0 + rayCastCheck: + enabled: true + onlyCheckCenter: true + useBlockBelow: true + hiddenBlocks: + minecraft:chest: {} + minecraft:ender_chest: {} + minecraft:trapped_chest: {} + minecraft:anvil: {} + minecraft:crafter: {} + minecraft:crafting_table: {} + minecraft:dispenser: {} + minecraft:enchanting_table: {} + minecraft:furnace: {} + minecraft:blast_furnace: {} + minecraft:cartography_table: {} + minecraft:fletching_table: {} + minecraft:grindstone: {} + minecraft:composter: {} + minecraft:lectern: {} + minecraft:loom: {} + minecraft:smithing_table: {} + minecraft:smoker: {} + minecraft:stonecutter: {} + minecraft:hopper: {} + minecraft:spawner: {} + minecraft:shulker_box: {} + minecraft:white_shulker_box: {} + minecraft:orange_shulker_box: {} + minecraft:magenta_shulker_box: {} + minecraft:light_blue_shulker_box: {} + minecraft:yellow_shulker_box: {} + minecraft:lime_shulker_box: {} + minecraft:pink_shulker_box: {} + minecraft:gray_shulker_box: {} + minecraft:light_gray_shulker_box: {} + minecraft:cyan_shulker_box: {} + minecraft:purple_shulker_box: {} + minecraft:blue_shulker_box: {} + minecraft:brown_shulker_box: {} + minecraft:green_shulker_box: {} + minecraft:red_shulker_box: {} + minecraft:black_shulker_box: {} + minecraft:bee_nest: {} + minecraft:beehive: {} + randomBlocks: + section-global: + minY: -2032 + maxY: 2031 + blocks: + minecraft:end_stone: 1 diff --git a/src/plugins/ProtocolLib.jar b/src/plugins/ProtocolLib.jar new file mode 100644 index 0000000..1ef6c55 --- /dev/null +++ b/src/plugins/ProtocolLib.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a91028876b974f870e1ac90cb433a1a4cb06930a39f2c0edc50d6165e26e940d +size 5318517 diff --git a/src/plugins/ProtocolLib/config.yml b/src/plugins/ProtocolLib/config.yml new file mode 100644 index 0000000..7a9ff18 --- /dev/null +++ b/src/plugins/ProtocolLib/config.yml @@ -0,0 +1,21 @@ +global: + # Settings for the automatic version updater + auto updater: + notify: true + download: false + # Number of seconds to wait until a new update is downloaded + delay: 43200 # 12 hours + metrics: false + # Prints certain warnings to players with the protocol.info permission + chat warnings: true + # Automatically compile structure modifiers + background compiler: true + # Disable version checking for the given Minecraft version. Backup your world first! + ignore version check: + # Whether or not to enable the filter command + debug: false + # Whether or not to print a stack trace for every warning + detailed error: false + # The engine used by the filter command + script engine: JavaScript + suppressed reports: diff --git a/src/plugins/ProtocolLib/lastupdate b/src/plugins/ProtocolLib/lastupdate new file mode 100644 index 0000000..d79c061 --- /dev/null +++ b/src/plugins/ProtocolLib/lastupdate @@ -0,0 +1 @@ +1751878745 \ No newline at end of file diff --git a/src/plugins/orebfuscator-plugin-5.5.4.jar b/src/plugins/orebfuscator-plugin-5.5.4.jar new file mode 100644 index 0000000..a7da600 --- /dev/null +++ b/src/plugins/orebfuscator-plugin-5.5.4.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50a92b6cb89a2463295dfe48a31a11272c5f3e66d1882f33724ea14e2b65b976 +size 1791244