diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..b589d56
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/discord.xml b/.idea/discord.xml
new file mode 100644
index 0000000..d8e9561
--- /dev/null
+++ b/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..eedd93b
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..ce1c62c
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..92341c7
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..83fe4f7
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ab79a15
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/Sentinel.main.iml b/.idea/modules/Sentinel.main.iml
new file mode 100644
index 0000000..f5de878
--- /dev/null
+++ b/.idea/modules/Sentinel.main.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ PAPER
+ ADVENTURE
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.console_history b/server/.console_history
new file mode 100644
index 0000000..c940340
--- /dev/null
+++ b/server/.console_history
@@ -0,0 +1,16 @@
+1708373976810:pl
+1708373978004:ver
+1708374489646:pl
+1708374572344:pm reload Sentinel
+1708374580860:pm enable Sentinel
+1708374591684:pl
+1708374596888:pluginmanager help
+1708374599486:pm help
+1708374632136:pluginmanager enable sentinel
+1708374972427:restart
+1708374991352:pl
+1708375083255:pm reload Sentinel
+1708375105137:pluginmanager reload sentinel
+1708375334858:op obvWolf
+1708375412994:pluginmanager reload sentinel
+1708375622547:stop
diff --git a/server/banned-ips.json b/server/banned-ips.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/server/banned-ips.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/server/banned-players.json b/server/banned-players.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/server/banned-players.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/server/bukkit.yml b/server/bukkit.yml
new file mode 100644
index 0000000..7693721
--- /dev/null
+++ b/server/bukkit.yml
@@ -0,0 +1,32 @@
+settings:
+ allow-end: true
+ 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/server/cache/mojang_1.20.4.jar b/server/cache/mojang_1.20.4.jar
new file mode 100644
index 0000000..6710bd2
Binary files /dev/null and b/server/cache/mojang_1.20.4.jar differ
diff --git a/server/commands.yml b/server/commands.yml
new file mode 100644
index 0000000..da50320
--- /dev/null
+++ b/server/commands.yml
@@ -0,0 +1,5 @@
+command-block-overrides: []
+ignore-vanilla-permissions: false
+aliases:
+ icanhasbukkit:
+ - version $1-
diff --git a/server/config/paper-global.yml b/server/config/paper-global.yml
new file mode 100644
index 0000000..130e9cf
--- /dev/null
+++ b/server/config/paper-global.yml
@@ -0,0 +1,129 @@
+# 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
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 29
+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:
+ fix-target-selector-tag-completion: true
+ 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
+ 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
+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: false
+ secret: ''
+scoreboards:
+ save-empty-scoreboard-teams: false
+ 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
+timings:
+ enabled: true
+ hidden-config-entries:
+ - database
+ - proxies.velocity.secret
+ history-interval: 300
+ history-length: 3600
+ server-name: Unknown Server
+ server-name-privacy: false
+ url: https://timings.aikar.co/
+ verbose: true
+unsupported-settings:
+ allow-grindstone-overstacking: false
+ allow-headless-pistons: false
+ allow-permanent-block-break-exploits: false
+ allow-piston-duplication: false
+ compression-format: ZLIB
+ perform-username-validation: true
+watchdog:
+ early-warning-delay: 10000
+ early-warning-every: 5000
diff --git a/server/config/paper-world-defaults.yml b/server/config/paper-world-defaults.yml
new file mode 100644
index 0000000..1594b27
--- /dev/null
+++ b/server/config/paper-world-defaults.yml
@@ -0,0 +1,307 @@
+# 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.
+#
+# Docs: https://docs.papermc.io/
+# Discord: https://discord.gg/papermc
+# Website: https://papermc.io/
+
+_version: 30
+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
+ obfuscation:
+ items:
+ hide-durability: false
+ hide-itemmeta: false
+ hide-itemmeta-with-visual-effects: 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
+ 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
+ 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
+ entities-target-with-follow-range: false
+ markers:
+ tick: true
+ mob-effects:
+ immune-to-wither-effect:
+ wither: true
+ wither-skeleton: true
+ spiders-immune-to-poison-effect: true
+ undead-immune-to-certain-effects: 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-ranges:
+ ambient:
+ hard: 128
+ soft: 32
+ axolotls:
+ hard: 128
+ soft: 32
+ creature:
+ hard: 128
+ soft: 32
+ misc:
+ hard: 128
+ soft: 32
+ monster:
+ hard: 128
+ soft: 32
+ underground_water_creature:
+ hard: 128
+ soft: 32
+ water_ambient:
+ hard: 64
+ soft: 32
+ water_creature:
+ hard: 128
+ soft: 32
+ 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
+ - SleepingX
+ - SleepingY
+ - SleepingZ
+ 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
+ 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-teleportation-suffocation-check: false
+ disable-thunder: false
+ fire-tick-delay: 30
+ frosted-ice:
+ delay:
+ max: 40
+ min: 20
+ enabled: true
+ generate-flat-bedrock: false
+ 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
+ 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: true
+ 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
+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:
+ disable-end-credits: false
+ disable-relative-projectile-velocity: false
+ disable-sprint-interruption-on-attack: false
+ light-queue-size: 20
+ max-leash-distance: 10.0
+ 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
+ keep-spawn-loaded: true
+ keep-spawn-loaded-range: 10
+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:
+ fix-invulnerable-end-crystal-exploit: true
diff --git a/server/eula.txt b/server/eula.txt
new file mode 100644
index 0000000..ac74b96
--- /dev/null
+++ b/server/eula.txt
@@ -0,0 +1 @@
+eula=true
\ No newline at end of file
diff --git a/server/help.yml b/server/help.yml
new file mode 100644
index 0000000..e69de29
diff --git a/server/libraries/com/github/oshi/oshi-core/6.4.5/oshi-core-6.4.5.jar b/server/libraries/com/github/oshi/oshi-core/6.4.5/oshi-core-6.4.5.jar
new file mode 100644
index 0000000..ed5992e
Binary files /dev/null and b/server/libraries/com/github/oshi/oshi-core/6.4.5/oshi-core-6.4.5.jar differ
diff --git a/server/libraries/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar b/server/libraries/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
new file mode 100644
index 0000000..59222d9
Binary files /dev/null and b/server/libraries/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar differ
diff --git a/server/libraries/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar b/server/libraries/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar
new file mode 100644
index 0000000..a88c5bd
Binary files /dev/null and b/server/libraries/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar differ
diff --git a/server/libraries/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar b/server/libraries/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar
new file mode 100644
index 0000000..e072fe0
Binary files /dev/null and b/server/libraries/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar differ
diff --git a/server/libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar b/server/libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
new file mode 100644
index 0000000..9b56dc7
Binary files /dev/null and b/server/libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar differ
diff --git a/server/libraries/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar b/server/libraries/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar
new file mode 100644
index 0000000..e71fd46
Binary files /dev/null and b/server/libraries/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar differ
diff --git a/server/libraries/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar b/server/libraries/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
new file mode 100644
index 0000000..45832c0
Binary files /dev/null and b/server/libraries/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar differ
diff --git a/server/libraries/com/google/protobuf/protobuf-java/3.21.9/protobuf-java-3.21.9.jar b/server/libraries/com/google/protobuf/protobuf-java/3.21.9/protobuf-java-3.21.9.jar
new file mode 100644
index 0000000..c4fd860
Binary files /dev/null and b/server/libraries/com/google/protobuf/protobuf-java/3.21.9/protobuf-java-3.21.9.jar differ
diff --git a/server/libraries/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar b/server/libraries/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar
new file mode 100644
index 0000000..dfd5856
Binary files /dev/null and b/server/libraries/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar differ
diff --git a/server/libraries/com/lmax/disruptor/3.4.4/disruptor-3.4.4.jar b/server/libraries/com/lmax/disruptor/3.4.4/disruptor-3.4.4.jar
new file mode 100644
index 0000000..8a918cf
Binary files /dev/null and b/server/libraries/com/lmax/disruptor/3.4.4/disruptor-3.4.4.jar differ
diff --git a/server/libraries/com/mojang/authlib/6.0.52/authlib-6.0.52.jar b/server/libraries/com/mojang/authlib/6.0.52/authlib-6.0.52.jar
new file mode 100644
index 0000000..c489f9d
Binary files /dev/null and b/server/libraries/com/mojang/authlib/6.0.52/authlib-6.0.52.jar differ
diff --git a/server/libraries/com/mojang/brigadier/1.2.9/brigadier-1.2.9.jar b/server/libraries/com/mojang/brigadier/1.2.9/brigadier-1.2.9.jar
new file mode 100644
index 0000000..ea2f234
Binary files /dev/null and b/server/libraries/com/mojang/brigadier/1.2.9/brigadier-1.2.9.jar differ
diff --git a/server/libraries/com/mojang/datafixerupper/6.0.8/datafixerupper-6.0.8.jar b/server/libraries/com/mojang/datafixerupper/6.0.8/datafixerupper-6.0.8.jar
new file mode 100644
index 0000000..2570a94
Binary files /dev/null and b/server/libraries/com/mojang/datafixerupper/6.0.8/datafixerupper-6.0.8.jar differ
diff --git a/server/libraries/com/mojang/logging/1.1.1/logging-1.1.1.jar b/server/libraries/com/mojang/logging/1.1.1/logging-1.1.1.jar
new file mode 100644
index 0000000..cf33dc5
Binary files /dev/null and b/server/libraries/com/mojang/logging/1.1.1/logging-1.1.1.jar differ
diff --git a/server/libraries/com/mysql/mysql-connector-j/8.2.0/mysql-connector-j-8.2.0.jar b/server/libraries/com/mysql/mysql-connector-j/8.2.0/mysql-connector-j-8.2.0.jar
new file mode 100644
index 0000000..96fae38
Binary files /dev/null and b/server/libraries/com/mysql/mysql-connector-j/8.2.0/mysql-connector-j-8.2.0.jar differ
diff --git a/server/libraries/com/velocitypowered/velocity-native/3.1.2-SNAPSHOT/velocity-native-3.1.2-SNAPSHOT.jar b/server/libraries/com/velocitypowered/velocity-native/3.1.2-SNAPSHOT/velocity-native-3.1.2-SNAPSHOT.jar
new file mode 100644
index 0000000..a072935
Binary files /dev/null and b/server/libraries/com/velocitypowered/velocity-native/3.1.2-SNAPSHOT/velocity-native-3.1.2-SNAPSHOT.jar differ
diff --git a/server/libraries/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar b/server/libraries/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar
new file mode 100644
index 0000000..854fc7e
Binary files /dev/null and b/server/libraries/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar differ
diff --git a/server/libraries/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar b/server/libraries/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar
new file mode 100644
index 0000000..eb316f4
Binary files /dev/null and b/server/libraries/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar differ
diff --git a/server/libraries/commons-lang/commons-lang/2.6/commons-lang-2.6.jar b/server/libraries/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
new file mode 100644
index 0000000..98467d3
Binary files /dev/null and b/server/libraries/commons-lang/commons-lang/2.6/commons-lang-2.6.jar differ
diff --git a/server/libraries/io/leangen/geantyref/geantyref/1.3.15/geantyref-1.3.15.jar b/server/libraries/io/leangen/geantyref/geantyref/1.3.15/geantyref-1.3.15.jar
new file mode 100644
index 0000000..3d36fba
Binary files /dev/null and b/server/libraries/io/leangen/geantyref/geantyref/1.3.15/geantyref-1.3.15.jar differ
diff --git a/server/libraries/io/netty/netty-buffer/4.1.97.Final/netty-buffer-4.1.97.Final.jar b/server/libraries/io/netty/netty-buffer/4.1.97.Final/netty-buffer-4.1.97.Final.jar
new file mode 100644
index 0000000..47a6651
Binary files /dev/null and b/server/libraries/io/netty/netty-buffer/4.1.97.Final/netty-buffer-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-codec-haproxy/4.1.97.Final/netty-codec-haproxy-4.1.97.Final.jar b/server/libraries/io/netty/netty-codec-haproxy/4.1.97.Final/netty-codec-haproxy-4.1.97.Final.jar
new file mode 100644
index 0000000..e2bb176
Binary files /dev/null and b/server/libraries/io/netty/netty-codec-haproxy/4.1.97.Final/netty-codec-haproxy-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-codec/4.1.97.Final/netty-codec-4.1.97.Final.jar b/server/libraries/io/netty/netty-codec/4.1.97.Final/netty-codec-4.1.97.Final.jar
new file mode 100644
index 0000000..b0988ad
Binary files /dev/null and b/server/libraries/io/netty/netty-codec/4.1.97.Final/netty-codec-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-common/4.1.97.Final/netty-common-4.1.97.Final.jar b/server/libraries/io/netty/netty-common/4.1.97.Final/netty-common-4.1.97.Final.jar
new file mode 100644
index 0000000..b35e108
Binary files /dev/null and b/server/libraries/io/netty/netty-common/4.1.97.Final/netty-common-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-handler/4.1.97.Final/netty-handler-4.1.97.Final.jar b/server/libraries/io/netty/netty-handler/4.1.97.Final/netty-handler-4.1.97.Final.jar
new file mode 100644
index 0000000..222edb1
Binary files /dev/null and b/server/libraries/io/netty/netty-handler/4.1.97.Final/netty-handler-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-resolver/4.1.97.Final/netty-resolver-4.1.97.Final.jar b/server/libraries/io/netty/netty-resolver/4.1.97.Final/netty-resolver-4.1.97.Final.jar
new file mode 100644
index 0000000..301c04e
Binary files /dev/null and b/server/libraries/io/netty/netty-resolver/4.1.97.Final/netty-resolver-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-transport-classes-epoll/4.1.97.Final/netty-transport-classes-epoll-4.1.97.Final.jar b/server/libraries/io/netty/netty-transport-classes-epoll/4.1.97.Final/netty-transport-classes-epoll-4.1.97.Final.jar
new file mode 100644
index 0000000..46a18cb
Binary files /dev/null and b/server/libraries/io/netty/netty-transport-classes-epoll/4.1.97.Final/netty-transport-classes-epoll-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar b/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar
new file mode 100644
index 0000000..af13a77
Binary files /dev/null and b/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-aarch_64.jar differ
diff --git a/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar b/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar
new file mode 100644
index 0000000..0a600b6
Binary files /dev/null and b/server/libraries/io/netty/netty-transport-native-epoll/4.1.97.Final/netty-transport-native-epoll-4.1.97.Final-linux-x86_64.jar differ
diff --git a/server/libraries/io/netty/netty-transport-native-unix-common/4.1.97.Final/netty-transport-native-unix-common-4.1.97.Final.jar b/server/libraries/io/netty/netty-transport-native-unix-common/4.1.97.Final/netty-transport-native-unix-common-4.1.97.Final.jar
new file mode 100644
index 0000000..7347eb1
Binary files /dev/null and b/server/libraries/io/netty/netty-transport-native-unix-common/4.1.97.Final/netty-transport-native-unix-common-4.1.97.Final.jar differ
diff --git a/server/libraries/io/netty/netty-transport/4.1.97.Final/netty-transport-4.1.97.Final.jar b/server/libraries/io/netty/netty-transport/4.1.97.Final/netty-transport-4.1.97.Final.jar
new file mode 100644
index 0000000..bf0a5a7
Binary files /dev/null and b/server/libraries/io/netty/netty-transport/4.1.97.Final/netty-transport-4.1.97.Final.jar differ
diff --git a/server/libraries/io/papermc/paper/paper-api/1.20.4-R0.1-SNAPSHOT/paper-api-1.20.4-R0.1-SNAPSHOT.jar b/server/libraries/io/papermc/paper/paper-api/1.20.4-R0.1-SNAPSHOT/paper-api-1.20.4-R0.1-SNAPSHOT.jar
new file mode 100644
index 0000000..a307513
Binary files /dev/null and b/server/libraries/io/papermc/paper/paper-api/1.20.4-R0.1-SNAPSHOT/paper-api-1.20.4-R0.1-SNAPSHOT.jar differ
diff --git a/server/libraries/io/papermc/paper/paper-mojangapi/1.20.4-R0.1-SNAPSHOT/paper-mojangapi-1.20.4-R0.1-SNAPSHOT.jar b/server/libraries/io/papermc/paper/paper-mojangapi/1.20.4-R0.1-SNAPSHOT/paper-mojangapi-1.20.4-R0.1-SNAPSHOT.jar
new file mode 100644
index 0000000..8349c8f
Binary files /dev/null and b/server/libraries/io/papermc/paper/paper-mojangapi/1.20.4-R0.1-SNAPSHOT/paper-mojangapi-1.20.4-R0.1-SNAPSHOT.jar differ
diff --git a/server/libraries/it/unimi/dsi/fastutil/8.5.12/fastutil-8.5.12.jar b/server/libraries/it/unimi/dsi/fastutil/8.5.12/fastutil-8.5.12.jar
new file mode 100644
index 0000000..293bae7
Binary files /dev/null and b/server/libraries/it/unimi/dsi/fastutil/8.5.12/fastutil-8.5.12.jar differ
diff --git a/server/libraries/javax/inject/javax.inject/1/javax.inject-1.jar b/server/libraries/javax/inject/javax.inject/1/javax.inject-1.jar
new file mode 100644
index 0000000..b2a9d0b
Binary files /dev/null and b/server/libraries/javax/inject/javax.inject/1/javax.inject-1.jar differ
diff --git a/server/libraries/net/fabricmc/mapping-io/0.5.0/mapping-io-0.5.0.jar b/server/libraries/net/fabricmc/mapping-io/0.5.0/mapping-io-0.5.0.jar
new file mode 100644
index 0000000..907eb6f
Binary files /dev/null and b/server/libraries/net/fabricmc/mapping-io/0.5.0/mapping-io-0.5.0.jar differ
diff --git a/server/libraries/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar b/server/libraries/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar
new file mode 100644
index 0000000..816a567
Binary files /dev/null and b/server/libraries/net/java/dev/jna/jna-platform/5.13.0/jna-platform-5.13.0.jar differ
diff --git a/server/libraries/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar b/server/libraries/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar
new file mode 100644
index 0000000..3d49c81
Binary files /dev/null and b/server/libraries/net/java/dev/jna/jna/5.13.0/jna-5.13.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-api/4.15.0/adventure-api-4.15.0.jar b/server/libraries/net/kyori/adventure-api/4.15.0/adventure-api-4.15.0.jar
new file mode 100644
index 0000000..5aba67b
Binary files /dev/null and b/server/libraries/net/kyori/adventure-api/4.15.0/adventure-api-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-key/4.15.0/adventure-key-4.15.0.jar b/server/libraries/net/kyori/adventure-key/4.15.0/adventure-key-4.15.0.jar
new file mode 100644
index 0000000..c623169
Binary files /dev/null and b/server/libraries/net/kyori/adventure-key/4.15.0/adventure-key-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-logger-slf4j/4.15.0/adventure-text-logger-slf4j-4.15.0.jar b/server/libraries/net/kyori/adventure-text-logger-slf4j/4.15.0/adventure-text-logger-slf4j-4.15.0.jar
new file mode 100644
index 0000000..8fccbe8
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-logger-slf4j/4.15.0/adventure-text-logger-slf4j-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-minimessage/4.15.0/adventure-text-minimessage-4.15.0.jar b/server/libraries/net/kyori/adventure-text-minimessage/4.15.0/adventure-text-minimessage-4.15.0.jar
new file mode 100644
index 0000000..7907998
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-minimessage/4.15.0/adventure-text-minimessage-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-serializer-ansi/4.15.0/adventure-text-serializer-ansi-4.15.0.jar b/server/libraries/net/kyori/adventure-text-serializer-ansi/4.15.0/adventure-text-serializer-ansi-4.15.0.jar
new file mode 100644
index 0000000..c1cdc7c
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-serializer-ansi/4.15.0/adventure-text-serializer-ansi-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-serializer-gson/4.15.0/adventure-text-serializer-gson-4.15.0.jar b/server/libraries/net/kyori/adventure-text-serializer-gson/4.15.0/adventure-text-serializer-gson-4.15.0.jar
new file mode 100644
index 0000000..90e42e8
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-serializer-gson/4.15.0/adventure-text-serializer-gson-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-serializer-json/4.15.0/adventure-text-serializer-json-4.15.0.jar b/server/libraries/net/kyori/adventure-text-serializer-json/4.15.0/adventure-text-serializer-json-4.15.0.jar
new file mode 100644
index 0000000..a511514
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-serializer-json/4.15.0/adventure-text-serializer-json-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-serializer-legacy/4.15.0/adventure-text-serializer-legacy-4.15.0.jar b/server/libraries/net/kyori/adventure-text-serializer-legacy/4.15.0/adventure-text-serializer-legacy-4.15.0.jar
new file mode 100644
index 0000000..5386e2f
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-serializer-legacy/4.15.0/adventure-text-serializer-legacy-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/adventure-text-serializer-plain/4.15.0/adventure-text-serializer-plain-4.15.0.jar b/server/libraries/net/kyori/adventure-text-serializer-plain/4.15.0/adventure-text-serializer-plain-4.15.0.jar
new file mode 100644
index 0000000..6c68ad0
Binary files /dev/null and b/server/libraries/net/kyori/adventure-text-serializer-plain/4.15.0/adventure-text-serializer-plain-4.15.0.jar differ
diff --git a/server/libraries/net/kyori/ansi/1.0.3/ansi-1.0.3.jar b/server/libraries/net/kyori/ansi/1.0.3/ansi-1.0.3.jar
new file mode 100644
index 0000000..65c60d6
Binary files /dev/null and b/server/libraries/net/kyori/ansi/1.0.3/ansi-1.0.3.jar differ
diff --git a/server/libraries/net/kyori/examination-api/1.3.0/examination-api-1.3.0.jar b/server/libraries/net/kyori/examination-api/1.3.0/examination-api-1.3.0.jar
new file mode 100644
index 0000000..8021db0
Binary files /dev/null and b/server/libraries/net/kyori/examination-api/1.3.0/examination-api-1.3.0.jar differ
diff --git a/server/libraries/net/kyori/examination-string/1.3.0/examination-string-1.3.0.jar b/server/libraries/net/kyori/examination-string/1.3.0/examination-string-1.3.0.jar
new file mode 100644
index 0000000..0d3587e
Binary files /dev/null and b/server/libraries/net/kyori/examination-string/1.3.0/examination-string-1.3.0.jar differ
diff --git a/server/libraries/net/kyori/option/1.0.0/option-1.0.0.jar b/server/libraries/net/kyori/option/1.0.0/option-1.0.0.jar
new file mode 100644
index 0000000..d0fc8c3
Binary files /dev/null and b/server/libraries/net/kyori/option/1.0.0/option-1.0.0.jar differ
diff --git a/server/libraries/net/md-5/bungeecord-chat/1.20-R0.2-deprecated+build.18/bungeecord-chat-1.20-R0.2-deprecated+build.18.jar b/server/libraries/net/md-5/bungeecord-chat/1.20-R0.2-deprecated+build.18/bungeecord-chat-1.20-R0.2-deprecated+build.18.jar
new file mode 100644
index 0000000..221c6dd
Binary files /dev/null and b/server/libraries/net/md-5/bungeecord-chat/1.20-R0.2-deprecated+build.18/bungeecord-chat-1.20-R0.2-deprecated+build.18.jar differ
diff --git a/server/libraries/net/minecrell/terminalconsoleappender/1.3.0/terminalconsoleappender-1.3.0.jar b/server/libraries/net/minecrell/terminalconsoleappender/1.3.0/terminalconsoleappender-1.3.0.jar
new file mode 100644
index 0000000..471af96
Binary files /dev/null and b/server/libraries/net/minecrell/terminalconsoleappender/1.3.0/terminalconsoleappender-1.3.0.jar differ
diff --git a/server/libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar b/server/libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar
new file mode 100644
index 0000000..317b2b0
Binary files /dev/null and b/server/libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar differ
diff --git a/server/libraries/org/apache/commons/commons-lang3/3.13.0/commons-lang3-3.13.0.jar b/server/libraries/org/apache/commons/commons-lang3/3.13.0/commons-lang3-3.13.0.jar
new file mode 100644
index 0000000..891540f
Binary files /dev/null and b/server/libraries/org/apache/commons/commons-lang3/3.13.0/commons-lang3-3.13.0.jar differ
diff --git a/server/libraries/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar b/server/libraries/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar
new file mode 100644
index 0000000..2bb7c07
Binary files /dev/null and b/server/libraries/org/apache/httpcomponents/httpclient/4.5.14/httpclient-4.5.14.jar differ
diff --git a/server/libraries/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar b/server/libraries/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar
new file mode 100644
index 0000000..f0bdebe
Binary files /dev/null and b/server/libraries/org/apache/httpcomponents/httpcore/4.4.16/httpcore-4.4.16.jar differ
diff --git a/server/libraries/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar b/server/libraries/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar
new file mode 100644
index 0000000..e55547d
Binary files /dev/null and b/server/libraries/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar differ
diff --git a/server/libraries/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar b/server/libraries/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar
new file mode 100644
index 0000000..cdc6fe7
Binary files /dev/null and b/server/libraries/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar differ
diff --git a/server/libraries/org/apache/logging/log4j/log4j-iostreams/2.19.0/log4j-iostreams-2.19.0.jar b/server/libraries/org/apache/logging/log4j/log4j-iostreams/2.19.0/log4j-iostreams-2.19.0.jar
new file mode 100644
index 0000000..7e98300
Binary files /dev/null and b/server/libraries/org/apache/logging/log4j/log4j-iostreams/2.19.0/log4j-iostreams-2.19.0.jar differ
diff --git a/server/libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.19.0/log4j-slf4j2-impl-2.19.0.jar b/server/libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.19.0/log4j-slf4j2-impl-2.19.0.jar
new file mode 100644
index 0000000..12e226f
Binary files /dev/null and b/server/libraries/org/apache/logging/log4j/log4j-slf4j2-impl/2.19.0/log4j-slf4j2-impl-2.19.0.jar differ
diff --git a/server/libraries/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6.jar b/server/libraries/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6.jar
new file mode 100644
index 0000000..b695c9f
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-artifact/3.9.6/maven-artifact-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar b/server/libraries/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar
new file mode 100644
index 0000000..7129e8f
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6.jar b/server/libraries/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6.jar
new file mode 100644
index 0000000..49b2dde
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-model-builder/3.9.6/maven-model-builder-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6.jar b/server/libraries/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6.jar
new file mode 100644
index 0000000..1bbc8c8
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-model/3.9.6/maven-model-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6.jar b/server/libraries/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6.jar
new file mode 100644
index 0000000..5ad525f
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-repository-metadata/3.9.6/maven-repository-metadata-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6.jar b/server/libraries/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6.jar
new file mode 100644
index 0000000..e8024e2
Binary files /dev/null and b/server/libraries/org/apache/maven/maven-resolver-provider/3.9.6/maven-resolver-provider-3.9.6.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18.jar
new file mode 100644
index 0000000..44c03c9
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-api/1.9.18/maven-resolver-api-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18.jar
new file mode 100644
index 0000000..0af30a5
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-connector-basic/1.9.18/maven-resolver-connector-basic-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18.jar
new file mode 100644
index 0000000..5263984
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-impl/1.9.18/maven-resolver-impl-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar
new file mode 100644
index 0000000..e3eae74
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18.jar
new file mode 100644
index 0000000..b13e20b
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-spi/1.9.18/maven-resolver-spi-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18.jar
new file mode 100644
index 0000000..a84ce3d
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-transport-http/1.9.18/maven-resolver-transport-http-1.9.18.jar differ
diff --git a/server/libraries/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar b/server/libraries/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar
new file mode 100644
index 0000000..d882859
Binary files /dev/null and b/server/libraries/org/apache/maven/resolver/maven-resolver-util/1.9.18/maven-resolver-util-1.9.18.jar differ
diff --git a/server/libraries/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar b/server/libraries/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar
new file mode 100644
index 0000000..61761fd
Binary files /dev/null and b/server/libraries/org/checkerframework/checker-qual/3.33.0/checker-qual-3.33.0.jar differ
diff --git a/server/libraries/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar b/server/libraries/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar
new file mode 100644
index 0000000..cfcf162
Binary files /dev/null and b/server/libraries/org/codehaus/plexus/plexus-interpolation/1.26/plexus-interpolation-1.26.jar differ
diff --git a/server/libraries/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar b/server/libraries/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar
new file mode 100644
index 0000000..1873c52
Binary files /dev/null and b/server/libraries/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar differ
diff --git a/server/libraries/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar b/server/libraries/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar
new file mode 100644
index 0000000..7b309b7
Binary files /dev/null and b/server/libraries/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar differ
diff --git a/server/libraries/org/fusesource/jansi/jansi/2.4.0/jansi-2.4.0.jar b/server/libraries/org/fusesource/jansi/jansi/2.4.0/jansi-2.4.0.jar
new file mode 100644
index 0000000..d6bb12f
Binary files /dev/null and b/server/libraries/org/fusesource/jansi/jansi/2.4.0/jansi-2.4.0.jar differ
diff --git a/server/libraries/org/jline/jline-reader/3.20.0/jline-reader-3.20.0.jar b/server/libraries/org/jline/jline-reader/3.20.0/jline-reader-3.20.0.jar
new file mode 100644
index 0000000..b7921f7
Binary files /dev/null and b/server/libraries/org/jline/jline-reader/3.20.0/jline-reader-3.20.0.jar differ
diff --git a/server/libraries/org/jline/jline-terminal-jansi/3.21.0/jline-terminal-jansi-3.21.0.jar b/server/libraries/org/jline/jline-terminal-jansi/3.21.0/jline-terminal-jansi-3.21.0.jar
new file mode 100644
index 0000000..94eb207
Binary files /dev/null and b/server/libraries/org/jline/jline-terminal-jansi/3.21.0/jline-terminal-jansi-3.21.0.jar differ
diff --git a/server/libraries/org/jline/jline-terminal/3.21.0/jline-terminal-3.21.0.jar b/server/libraries/org/jline/jline-terminal/3.21.0/jline-terminal-3.21.0.jar
new file mode 100644
index 0000000..d7adbc5
Binary files /dev/null and b/server/libraries/org/jline/jline-terminal/3.21.0/jline-terminal-3.21.0.jar differ
diff --git a/server/libraries/org/joml/joml/1.10.5/joml-1.10.5.jar b/server/libraries/org/joml/joml/1.10.5/joml-1.10.5.jar
new file mode 100644
index 0000000..c5fc5b9
Binary files /dev/null and b/server/libraries/org/joml/joml/1.10.5/joml-1.10.5.jar differ
diff --git a/server/libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar b/server/libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar
new file mode 100644
index 0000000..21898df
Binary files /dev/null and b/server/libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar differ
diff --git a/server/libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar b/server/libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar
new file mode 100644
index 0000000..5c6da65
Binary files /dev/null and b/server/libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar differ
diff --git a/server/libraries/org/ow2/asm/asm/9.5/asm-9.5.jar b/server/libraries/org/ow2/asm/asm/9.5/asm-9.5.jar
new file mode 100644
index 0000000..f5701dc
Binary files /dev/null and b/server/libraries/org/ow2/asm/asm/9.5/asm-9.5.jar differ
diff --git a/server/libraries/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar b/server/libraries/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar
new file mode 100644
index 0000000..3ecd7d5
Binary files /dev/null and b/server/libraries/org/slf4j/jcl-over-slf4j/1.7.36/jcl-over-slf4j-1.7.36.jar differ
diff --git a/server/libraries/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar b/server/libraries/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar
new file mode 100644
index 0000000..3796afe
Binary files /dev/null and b/server/libraries/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar differ
diff --git a/server/libraries/org/spongepowered/configurate-core/4.2.0-SNAPSHOT/configurate-core-4.2.0-SNAPSHOT.jar b/server/libraries/org/spongepowered/configurate-core/4.2.0-SNAPSHOT/configurate-core-4.2.0-SNAPSHOT.jar
new file mode 100644
index 0000000..3f7a3ec
Binary files /dev/null and b/server/libraries/org/spongepowered/configurate-core/4.2.0-SNAPSHOT/configurate-core-4.2.0-SNAPSHOT.jar differ
diff --git a/server/libraries/org/spongepowered/configurate-yaml/4.2.0-SNAPSHOT/configurate-yaml-4.2.0-SNAPSHOT.jar b/server/libraries/org/spongepowered/configurate-yaml/4.2.0-SNAPSHOT/configurate-yaml-4.2.0-SNAPSHOT.jar
new file mode 100644
index 0000000..da892dc
Binary files /dev/null and b/server/libraries/org/spongepowered/configurate-yaml/4.2.0-SNAPSHOT/configurate-yaml-4.2.0-SNAPSHOT.jar differ
diff --git a/server/libraries/org/xerial/sqlite-jdbc/3.42.0.1/sqlite-jdbc-3.42.0.1.jar b/server/libraries/org/xerial/sqlite-jdbc/3.42.0.1/sqlite-jdbc-3.42.0.1.jar
new file mode 100644
index 0000000..8686e3d
Binary files /dev/null and b/server/libraries/org/xerial/sqlite-jdbc/3.42.0.1/sqlite-jdbc-3.42.0.1.jar differ
diff --git a/server/libraries/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar b/server/libraries/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar
new file mode 100644
index 0000000..275dd57
Binary files /dev/null and b/server/libraries/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar differ
diff --git a/server/logs/2024-02-19-1.log.gz b/server/logs/2024-02-19-1.log.gz
new file mode 100644
index 0000000..b6772e7
Binary files /dev/null and b/server/logs/2024-02-19-1.log.gz differ
diff --git a/server/logs/2024-02-19-2.log.gz b/server/logs/2024-02-19-2.log.gz
new file mode 100644
index 0000000..5012981
Binary files /dev/null and b/server/logs/2024-02-19-2.log.gz differ
diff --git a/server/logs/2024-02-19-3.log.gz b/server/logs/2024-02-19-3.log.gz
new file mode 100644
index 0000000..8a64be9
Binary files /dev/null and b/server/logs/2024-02-19-3.log.gz differ
diff --git a/server/logs/latest.log b/server/logs/latest.log
new file mode 100644
index 0000000..78353d1
--- /dev/null
+++ b/server/logs/latest.log
@@ -0,0 +1,1002 @@
+[14:36:21] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, name=PROD]
+[14:36:23] [ServerMain/INFO]: Loaded 1174 recipes
+[14:36:23] [ServerMain/INFO]: Loaded 1271 advancements
+[14:36:23] [Server thread/INFO]: Starting minecraft server version 1.20.4
+[14:36:23] [Server thread/INFO]: Loading properties
+[14:36:23] [Server thread/INFO]: This server is running Paper version git-Paper-430 (MC: 1.20.4) (Implementing API version 1.20.4-R0.1-SNAPSHOT) (Git: 4939f87)
+[14:36:24] [Server thread/INFO]: Server Ping Player Sample Count: 12
+[14:36:24] [Server thread/INFO]: Using 4 threads for Netty based IO
+[14:36:24] [Server thread/WARN]: [!] The timings profiler has been enabled but has been scheduled for removal from Paper in the future.
+ We recommend installing the spark profiler as a replacement: https://spark.lucko.me/
+ For more information please visit: https://github.com/PaperMC/Paper/issues/8948
+[14:36:24] [Server thread/INFO]: [ChunkTaskScheduler] Chunk system is using 1 I/O threads, 2 worker threads, and gen parallelism of 2 threads
+[14:36:24] [Server thread/INFO]: Default game type: SURVIVAL
+[14:36:24] [Server thread/INFO]: Generating keypair
+[14:36:24] [Server thread/INFO]: Starting Minecraft server on *:25565
+[14:36:24] [Server thread/INFO]: Using default channel type
+[14:36:24] [Server thread/INFO]: Paper: Using Java compression from Velocity.
+[14:36:24] [Server thread/INFO]: Paper: Using Java cipher from Velocity.
+[14:36:24] [Server thread/INFO]: [ProtocolLib] Loading server plugin ProtocolLib v5.2.0-SNAPSHOT-679
+[14:36:26] [Server thread/INFO]: [Sentinel] Loading server plugin Sentinel v0.2.5
+[14:36:26] [Server thread/INFO]: [PluginManager] Loading server plugin PluginManager v2.8.1
+[14:36:26] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
+[14:36:26] [Server thread/INFO]: [ProtocolLib] Enabling ProtocolLib v5.2.0-SNAPSHOT-679
+[14:36:26] [Server thread/INFO]: Preparing level "world"
+[14:36:26] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
+[14:36:26] [Server thread/INFO]: Time elapsed: 234 ms
+[14:36:26] [Server thread/INFO]: Preparing start region for dimension minecraft:the_nether
+[14:36:26] [Server thread/INFO]: Time elapsed: 36 ms
+[14:36:26] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end
+[14:36:26] [Server thread/INFO]: Time elapsed: 23 ms
+[14:36:26] [Server thread/INFO]: [Sentinel] Enabling Sentinel v0.2.5
+[14:36:26] [Server thread/INFO]:
+]======------ Pre-load started! ------======[
+[14:36:26] [Server thread/INFO]: Loading Config...
+[14:36:26] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:36:26] [Server thread/INFO]: Loading ProtocolLib
+[14:36:26] [Server thread/INFO]: Language Status: (Sentinel language is working!)
+[14:36:26] [Server thread/INFO]: Initializing Server ID...
+[14:36:28] [Server thread/INFO]: Pre-load finished!
+]====---- Requesting Authentication ----====[
+- License Key: null
+- Server ID: d9ebfcc4ea08b865eb2c5e20e32a86fa1ed1f66ab4b9e944d28bab38d21e9a78
+[14:36:28] [Server thread/INFO]:
+]======----- Auth Success! -----======[
+[14:36:28] [Server thread/INFO]:
+]======----- Loading Sentinel! -----======[
+[14:36:28] [Server thread/INFO]: Starting Up! (0.2.5)...
+[14:36:28] [Server thread/INFO]: Finished!
+ ____ __ ___
+/\ _`\ /\ \__ __ /\_ \
+\ \,\L\_\ __ ___\ \ ,_\/\_\ ___ __\//\ \
+ \/_\__ \ /'__`\/' _ `\ \ \/\/\ \ /' _ `\ /'__`\\ \ \
+ /\ \L\ \/\ __//\ \/\ \ \ \_\ \ \/\ \/\ \/\ __/ \_\ \_
+ \ `\____\ \____\ \_\ \_\ \__\\ \_\ \_\ \_\ \____\/\____\
+ \/_____/\/____/\/_/\/_/\/__/ \/_/\/_/\/_/\/____/\/____/
+ ]====---- Advanced Anti-Grief & Chat Filter ----====[
+[14:36:28] [Server thread/INFO]: [PluginManager] Enabling PluginManager v2.8.1
+[14:36:28] [Server thread/INFO]: Running delayed init tasks
+[14:36:28] [Server thread/INFO]: Done (5.323s)! For help, type "help"
+[14:36:28] [Server thread/INFO]: Timings Reset
+[14:36:31] [Craft Scheduler Thread - 2 - PluginManager/INFO]: PM | You are using the latest version of PluginManager.
+[14:36:31] [Server thread/INFO]: Server Plugins (3):
+[14:36:31] [Server thread/INFO]: Bukkit Plugins:
+[14:36:31] [Server thread/INFO]: - PluginManager, ProtocolLib, Sentinel
+[14:38:03] [Server thread/INFO]: Correct Usage: none
+[14:38:25] [Server thread/INFO]: [Sentinel] Disabling Sentinel v0.2.5
+[14:38:25] [Server thread/INFO]: Sentinel has disabled! (0.2.5) Your server is now no longer protected!
+[14:38:25] [Server thread/INFO]: [Sentinel] Loading server plugin Sentinel v0.2.5
+[14:38:25] [Server thread/INFO]: [Sentinel] Enabling Sentinel v0.2.5
+[14:38:25] [Server thread/INFO]:
+]======------ Pre-load started! ------======[
+[14:38:25] [Server thread/INFO]: Loading Config...
+[14:38:25] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:38:25] [Server thread/INFO]: Loading ProtocolLib
+[14:38:25] [Server thread/INFO]: Language Status: (Sentinel language is working!)
+[14:38:25] [Server thread/INFO]: Initializing Server ID...
+[14:38:28] [Server thread/INFO]: Pre-load finished!
+]====---- Requesting Authentication ----====[
+- License Key: null
+- Server ID: d9ebfcc4ea08b865eb2c5e20e32a86fa1ed1f66ab4b9e944d28bab38d21e9a78
+[14:38:28] [Server thread/INFO]:
+]======----- Auth Success! -----======[
+[14:38:28] [Server thread/INFO]:
+]======----- Loading Sentinel! -----======[
+[14:38:28] [Server thread/INFO]: Starting Up! (0.2.5)...
+[14:38:28] [Server thread/INFO]: Finished!
+ ____ __ ___
+/\ _`\ /\ \__ __ /\_ \
+\ \,\L\_\ __ ___\ \ ,_\/\_\ ___ __\//\ \
+ \/_\__ \ /'__`\/' _ `\ \ \/\/\ \ /' _ `\ /'__`\\ \ \
+ /\ \L\ \/\ __//\ \/\ \ \ \_\ \ \/\ \/\ \/\ __/ \_\ \_
+ \ `\____\ \____\ \_\ \_\ \__\\ \_\ \_\ \_\ \____\/\____\
+ \/_____/\/____/\/_/\/_/\/__/ \/_/\/_/\/_/\/____/\/____/
+ ]====---- Advanced Anti-Grief & Chat Filter ----====[
+[14:38:28] [Server thread/INFO]: PM | The plugin Sentinel has been reloaded.
+[14:38:28] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 3171ms or 63 ticks behind
+[14:40:45] [User Authenticator #0/INFO]: UUID of player obvWolf is 049460f7-21cb-42f5-8059-d42752bf406f
+[14:40:46] [Server thread/INFO]: obvWolf joined the game
+[14:40:46] [Server thread/INFO]: obvWolf[/127.0.0.1:55298] logged in with entity id 93 at ([world]26.5, 80.0, -45.5)
+[14:40:53] [Server thread/INFO]: obvWolf issued server command: /gmc
+[14:41:05] [Server thread/INFO]: obvWolf issued server command: /reop
+[14:42:14] [Server thread/INFO]: Made obvWolf a server operator
+[14:42:16] [Server thread/INFO]: obvWolf issued server command: /pl
+[14:42:19] [Server thread/INFO]: obvWolf issued server command: /sentinel full-system-check
+[14:42:19] [Server thread/INFO]: ]=- Sentinel -=[
+HoneyPot log
+Player: obvWolf
+Command: Sentinel CMDBlockPlace Check
+Block: command block
+Location: 28.0 70.0 -40.0
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:42:21] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:21] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:21] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:21] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.Action$Builder.execute(Action.java:184)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.cmdPlaceCheck(SystemCheck.java:68)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.fullCheck(SystemCheck.java:38)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.cmds.SentinelCommand.dispatchCommand(SentinelCommand.java:47)
+[14:42:21] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.commands.CustomCommand.onCommand(CustomCommand.java:49)
+[14:42:21] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:42:21] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:42:21] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:42:21] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
+[14:42:21] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.a(ExecuteCommand.java:32)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.a(UnboundEntryAction.java:8)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.a(ExecutionContext.java:101)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:434)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:336)
+[14:42:21] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:323)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2230)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$14(PlayerConnection.java:2190)
+[14:42:21] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
+[14:42:21] [Server thread/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
+[14:42:21] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
+[14:42:21] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1455)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194)
+[14:42:21] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.bl(MinecraftServer.java:1432)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1355)
+[14:42:21] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w_(MinecraftServer.java:1333)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1222)
+[14:42:21] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:21] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:21] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"Caught a command block command!","description":"\u003c:rightSort:1125785837255270520\u003e **Player:** obvWolf \u003c:member:1125244044407218176\u003e\n\u003c:rightSort:1125785837255270520\u003e **Command:** Sentinel CMDBlockPlace Check \u003c:nuke:1125244368807280702\u003e\n\u003c:rightSort:1125785837255270520\u003e **Block:** command_block \u003c:nuke:1125244368807280702\u003e\n\u003c:space:1125871914334818446\u003e\u003c:rightDoubleArrow:1125785800353783868\u003e **Location:** X: 28 Y: 70 Z: -40\n","color":16318208,"author":{"name":"HoneyPot log","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Actions:","value":"\u003c:rightSort:1125785837255270520\u003e **Denied:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **De-oped:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **Punished:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **Logged:** \u003c:success:1125785728161419356\u003e","inline":false}]}]}
+[14:42:21] [Server thread/WARN]: Nag author(s): '[TheTrouper]' of 'Sentinel v0.2.5' about their usage of System.out/err.print. Please use your plugin's logger instead (JavaPlugin#getLogger).
+[14:42:21] [Server thread/INFO]: ]=- Sentinel -=[
+Anti-Nuke has been triggered
+Player: obvWolf
+Block: command block
+Location: 28.0 70.0 -40.0
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:42:23] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:23] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:23] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:23] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.Action$Builder.execute(Action.java:184)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.cmdBlockUseCheck(SystemCheck.java:87)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.fullCheck(SystemCheck.java:40)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.cmds.SentinelCommand.dispatchCommand(SentinelCommand.java:47)
+[14:42:23] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.commands.CustomCommand.onCommand(CustomCommand.java:49)
+[14:42:23] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:42:23] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:42:23] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:42:23] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
+[14:42:23] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.a(ExecuteCommand.java:32)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.a(UnboundEntryAction.java:8)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.a(ExecutionContext.java:101)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:434)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:336)
+[14:42:23] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:323)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2230)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$14(PlayerConnection.java:2190)
+[14:42:23] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
+[14:42:23] [Server thread/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
+[14:42:23] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
+[14:42:23] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1455)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194)
+[14:42:23] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.bl(MinecraftServer.java:1432)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1355)
+[14:42:23] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w_(MinecraftServer.java:1333)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1222)
+[14:42:23] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:23] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:23] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"The use of a command block has been detected!","description":"\u003c:rightSort:1125785837255270520\u003e **Player:** obvWolf \u003c:member:1125244044407218176\u003e\n\u003c:rightSort:1125785837255270520\u003e **Block:** command_block \u003c:nuke:1125244368807280702\u003e\n\u003c:space:1125871914334818446\u003e\u003c:rightDoubleArrow:1125785800353783868\u003e **Location:** X: 28 Y: 70 Z: -40\n","color":16711680,"author":{"name":"Anti-Nuke has been triggered","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Actions:","value":"\u003c:rightSort:1125785837255270520\u003e **Denied:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **De-oped:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **Punished:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **Logged:** \u003c:success:1125785728161419356\u003e","inline":false}]}]}
+[14:42:23] [Server thread/INFO]: ]=- Sentinel -=[
+Anti-Nuke has been triggered
+Player: obvWolf
+Command: fill ~ ~ ~ ~ ~ ~ air
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:42:24] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:24] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:24] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:24] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.Action$Builder.execute(Action.java:184)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.events.CommandEvent.onCommand(CommandEvent.java:36)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.commandCheck(SystemCheck.java:95)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.fullCheck(SystemCheck.java:42)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.cmds.SentinelCommand.dispatchCommand(SentinelCommand.java:47)
+[14:42:24] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.commands.CustomCommand.onCommand(CustomCommand.java:49)
+[14:42:24] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:42:24] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:42:24] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:42:24] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
+[14:42:24] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.a(ExecuteCommand.java:32)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.a(UnboundEntryAction.java:8)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.a(ExecutionContext.java:101)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:434)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:336)
+[14:42:24] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:323)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2230)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$14(PlayerConnection.java:2190)
+[14:42:24] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
+[14:42:24] [Server thread/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
+[14:42:24] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
+[14:42:24] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1455)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194)
+[14:42:24] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.bl(MinecraftServer.java:1432)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1355)
+[14:42:24] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w_(MinecraftServer.java:1333)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1222)
+[14:42:24] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:24] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:24] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"The use of a dangerous command has been detected!","description":"\u003c:rightSort:1125785837255270520\u003e **Player:** obvWolf \u003c:member:1125244044407218176\u003e\n\u003c:rightSort:1125785837255270520\u003e **Command:** fill ~ ~ ~ ~ ~ ~ air \u003c:nuke:1125244368807280702\u003e\n","color":16711680,"author":{"name":"Anti-Nuke has been triggered","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Actions:","value":"\u003c:rightSort:1125785837255270520\u003e **Denied:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **De-oped:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **Punished:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **Logged:** \u003c:success:1125785728161419356\u003e","inline":false}]}]}
+[14:42:24] [Server thread/INFO]: ]=- Sentinel -=[
+General command log
+Player: obvWolf
+Command: give @s illegal_item 1
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:42:26] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:26] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:26] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:26] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.Action$Builder.execute(Action.java:184)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.events.CommandEvent.onCommand(CommandEvent.java:72)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.commandCheck(SystemCheck.java:97)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.fullCheck(SystemCheck.java:42)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.cmds.SentinelCommand.dispatchCommand(SentinelCommand.java:47)
+[14:42:26] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.commands.CustomCommand.onCommand(CustomCommand.java:49)
+[14:42:26] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:42:26] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:42:26] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:42:26] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
+[14:42:26] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.a(ExecuteCommand.java:32)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.a(UnboundEntryAction.java:8)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.a(ExecutionContext.java:101)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:434)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:336)
+[14:42:26] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:323)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2230)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$14(PlayerConnection.java:2190)
+[14:42:26] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
+[14:42:26] [Server thread/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
+[14:42:26] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
+[14:42:26] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1455)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194)
+[14:42:26] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.bl(MinecraftServer.java:1432)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1355)
+[14:42:26] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w_(MinecraftServer.java:1333)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1222)
+[14:42:26] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:26] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:26] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"A logged command has been executed.","description":"\u003c:rightSort:1125785837255270520\u003e **Player:** obvWolf \u003c:member:1125244044407218176\u003e\n\u003c:rightSort:1125785837255270520\u003e **Command:** give @s illegal_item 1 \u003c:nuke:1125244368807280702\u003e\n","color":65280,"author":{"name":"General command log","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Actions:","value":"\u003c:rightSort:1125785837255270520\u003e **Denied:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **De-oped:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **Punished:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **Logged:** \u003c:success:1125785728161419356\u003e","inline":false}]}]}
+[14:42:26] [Server thread/INFO]: ]=- Sentinel -=[
+Anti-Specific has been triggered
+Player: obvWolf
+Command: bukkit:plugins
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:42:26] [Server thread/INFO]: ]=- Sentinel -=[
+Anti-NBT has been triggered
+Player: obvWolf
+Item: /Sentinel/LoggedNBT/nbt_log-20240219144226223
+Denied: ?
+Deoped: ?
+Punished: ?
+RevertGM: ?
+Logged: ?
+[14:42:27] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:27] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:27] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:27] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.Action$Builder.execute(Action.java:184)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.nbtCheck(SystemCheck.java:125)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.fullCheck(SystemCheck.java:44)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.cmds.SentinelCommand.dispatchCommand(SentinelCommand.java:47)
+[14:42:27] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.commands.CustomCommand.onCommand(CustomCommand.java:49)
+[14:42:27] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:42:27] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:42:27] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:42:27] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
+[14:42:27] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.a(ExecuteCommand.java:32)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.a(UnboundEntryAction.java:8)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.a(CommandQueueEntry.java:5)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.a(ExecutionContext.java:101)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:434)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:336)
+[14:42:27] [Server thread/WARN]: at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:323)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2230)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$14(PlayerConnection.java:2190)
+[14:42:27] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
+[14:42:27] [Server thread/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
+[14:42:27] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
+[14:42:27] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1455)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:194)
+[14:42:27] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.bl(MinecraftServer.java:1432)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1355)
+[14:42:27] [Server thread/WARN]: at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w_(MinecraftServer.java:1333)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1222)
+[14:42:27] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:27] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:27] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"An NBT item has been caught!","description":"\u003c:rightSort:1125785837255270520\u003e **Player:** obvWolf \u003c:member:1125244044407218176\u003e\n\u003c:rightSort:1125785837255270520\u003e **Item:** stick \u003c:nuke:1125244368807280702\u003e\n\u003c:space:1125871914334818446\u003e\u003c:rightDoubleArrow:1125785800353783868\u003e**NBT:** Uploaded to /Sentinel/LoggedNBT/nbt_log-20240219144226223","color":16756736,"author":{"name":"Anti-NBT has been triggered","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Actions:","value":"\u003c:rightSort:1125785837255270520\u003e **Denied:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **De-oped:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **Punished:** \u003c:failure:1125241087909429369\u003e\n\u003c:rightSort:1125785837255270520\u003e **GM Reverted:** \u003c:success:1125785728161419356\u003e\n\u003c:rightSort:1125785837255270520\u003e **Logged:** \u003c:success:1125785728161419356\u003e","inline":false}]}]}
+[14:42:27] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 8343ms or 166 ticks behind
+[14:42:28] [Server thread/INFO]: Unknown command. Type "/help" for help.
+[14:42:28] [Server thread/INFO]: ]=- Sentinel Anti-Spam Log -=[
+Player: obvWolf
+> UUID: 049460f7-21cb-42f5-8059-d42752bf406f
+> Heat: 26/25
+Message: Sentinel AntiSpam check
+Reduced: sentinelantispamcheck
+Executed: mute %player% 1m Please refrain from spamming!
+[14:42:29] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:29] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:29] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:29] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.FilterAction.sendDiscordLog(FilterAction.java:216)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.FilterAction.filterPunish(FilterAction.java:66)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.AntiSpam.handleAntiSpam(AntiSpam.java:58)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.lambda$chatCheck$0(SystemCheck.java:142)
+[14:42:29] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.SchedulerUtils.lambda$loopLater$0(SchedulerUtils.java:38)
+[14:42:29] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101)
+[14:42:29] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:482)
+[14:42:29] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1636)
+[14:42:29] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:447)
+[14:42:29] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:42:29] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:42:29] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:29] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:29] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"obvWolf has triggered the Anti-Spam!","description":"\u003c:rightSort:1125785837255270520\u003ePlayer: `obvWolf` \u003c:target:1125788461371232307\u003e\n\u003c:space:1125871914334818446\u003e\u003c:arrowRight:1125785471520354304\u003eHeat: `26/25`","color":16744448,"author":{"name":"Sentinel Anti-Spam Log","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Previous: ","value":"Sentinel AntiSpam check","inline":true},{"name":"Current: ","value":"Sentinel AntiSpam check","inline":true},{"name":"Executed: ","value":"mute obvWolf 1m Please refrain from spamming!","inline":false}]}]}
+[14:42:29] [Server thread/INFO]: Unknown command. Type "/help" for help.
+[14:42:29] [Server thread/INFO]: Unknown command. Type "/help" for help.
+[14:42:29] [Server thread/INFO]: ]=- Sentinel Anti-Spam Log -=[
+Player: obvWolf
+> UUID: 049460f7-21cb-42f5-8059-d42752bf406f
+> Heat: 32/25
+Message: Sentinel AntiSpam check
+Reduced: sentinelantispamcheck
+Executed: mute %player% 1m Please refrain from spamming!
+[14:42:31] [Server thread/WARN]: java.io.IOException: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:42:31] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
+[14:42:31] [Server thread/WARN]: at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
+[14:42:31] [Server thread/WARN]: at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.send(DiscordWebhook.java:35)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook.trySend(DiscordWebhook.java:41)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.discord.DiscordWebhook$Builder.send(DiscordWebhook.java:114)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.FilterAction.sendDiscordLog(FilterAction.java:216)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.FilterAction.filterPunish(FilterAction.java:66)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.AntiSpam.handleAntiSpam(AntiSpam.java:58)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.server.functions.SystemCheck.lambda$chatCheck$0(SystemCheck.java:142)
+[14:42:31] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.SchedulerUtils.lambda$loopLater$0(SchedulerUtils.java:38)
+[14:42:31] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101)
+[14:42:31] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:482)
+[14:42:31] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1636)
+[14:42:31] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:447)
+[14:42:31] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:42:31] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:42:31] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:42:31] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:42:31] [Server thread/ERROR]: [Sentinel] [STDERR] For webhook: {"username":"Sentinel Anti-Nuke | Logs","avatar_url":"https://r2.e-z.host/d440b58a-ba90-4839-8df6-8bba298cf817/3lwit5nt.png","tts":false,"embeds":[{"title":"obvWolf has triggered the Anti-Spam!","description":"\u003c:rightSort:1125785837255270520\u003ePlayer: `obvWolf` \u003c:target:1125788461371232307\u003e\n\u003c:space:1125871914334818446\u003e\u003c:arrowRight:1125785471520354304\u003eHeat: `32/25`","color":16744448,"author":{"name":"Sentinel Anti-Spam Log","url":"https://builtbybit.com/resources/sentinel-anti-nuke.30130/"},"thumbnail":{"url":"https://crafatar.com/avatars/049460f7-21cb-42f5-8059-d42752bf406f?size\u003d64\u0026\u0026overlay"},"fields":[{"name":"Previous: ","value":"Sentinel AntiSpam check","inline":true},{"name":"Current: ","value":"Sentinel AntiSpam check","inline":true},{"name":"Executed: ","value":"mute obvWolf 1m Please refrain from spamming!","inline":false}]}]}
+[14:42:31] [Server thread/INFO]: Unknown command. Type "/help" for help.
+[14:42:31] [Server thread/INFO]: Unknown command. Type "/help" for help.
+[14:42:32] [Server thread/WARN]: Server returned HTTP response code: 400 for URL: https://discord.com/api/webhooks/id/token
+[14:43:33] [Server thread/INFO]: [Sentinel] Disabling Sentinel v0.2.5
+[14:43:33] [Server thread/INFO]: Sentinel has disabled! (0.2.5) Your server is now no longer protected!
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:32)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:34)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:35)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:36)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:37)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:38)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.(Sentinel.java:39)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:467)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:78)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:123)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.storage.SingularRuntimePluginProviderStorage.enter(SingularRuntimePluginProviderStorage.java:54)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.RuntimePluginEntrypointHandler.enter(RuntimePluginEntrypointHandler.java:40)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PaperSupport.loadPlugin(PaperSupport.java:29)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+[14:43:33] [Server thread/WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:257)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/INFO]: [Sentinel] Loading server plugin Sentinel v0.2.5
+[14:43:33] [Server thread/INFO]: [Sentinel] Enabling Sentinel v0.2.5
+[14:43:33] [Server thread/INFO]:
+]======------ Pre-load started! ------======[
+[14:43:33] [Server thread/INFO]: Loading Config...
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:187)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:188)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:189)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:190)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:191)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:192)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:203)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:43:33] [Server thread/WARN]: java.lang.IllegalStateException: json parse failed!
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.itzispyder.pdk.utils.misc.JsonSerializable.load(JsonSerializable.java:78)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.loadConfig(Sentinel.java:208)
+[14:43:33] [Server thread/WARN]: at Sentinel-0.2.5.jar//io.github.thetrouper.sentinel.Sentinel.onEnable(Sentinel.java:63)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:287)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:188)
+[14:43:33] [Server thread/WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
+[14:43:33] [Server thread/WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.enablePlugin(PluginUtils.java:137)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:274)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.utils.PluginUtils.loadPlugin(PluginUtils.java:219)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.subs.Reload_Sub.execute(Reload_Sub.java:38)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.lambda$onCommand$0(PluginManager_Command.java:94)
+[14:43:33] [Server thread/WARN]: at PluginManager.jar//net.lenni0451.spm.commands.PluginManager_Command.onCommand(PluginManager_Command.java:110)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
+[14:43:33] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
+[14:43:33] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1515)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1216)
+[14:43:33] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
+[14:43:33] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
+[14:43:33] [Server thread/INFO]: Loading ProtocolLib
+[14:43:33] [Server thread/INFO]: Language Status: (Sentinel language is working!)
+[14:43:33] [Server thread/INFO]: Initializing Server ID...
+[14:43:34] [Server thread/INFO]: Pre-load finished!
+]====---- Requesting Authentication ----====[
+- License Key: null
+- Server ID: d9ebfcc4ea08b865eb2c5e20e32a86fa1ed1f66ab4b9e944d28bab38d21e9a78
+[14:43:34] [Server thread/INFO]:
+]======----- Auth Success! -----======[
+[14:43:34] [Server thread/INFO]:
+]======----- Loading Sentinel! -----======[
+[14:43:34] [Server thread/INFO]: Starting Up! (0.2.5)...
+[14:43:34] [Server thread/INFO]: Finished!
+ ____ __ ___
+/\ _`\ /\ \__ __ /\_ \
+\ \,\L\_\ __ ___\ \ ,_\/\_\ ___ __\//\ \
+ \/_\__ \ /'__`\/' _ `\ \ \/\/\ \ /' _ `\ /'__`\\ \ \
+ /\ \L\ \/\ __//\ \/\ \ \ \_\ \ \/\ \/\ \/\ __/ \_\ \_
+ \ `\____\ \____\ \_\ \_\ \__\\ \_\ \_\ \_\ \____\/\____\
+ \/_____/\/____/\/_/\/_/\/__/ \/_/\/_/\/_/\/____/\/____/
+ ]====---- Advanced Anti-Grief & Chat Filter ----====[
+[14:43:34] [Server thread/INFO]: PM | The plugin Sentinel has been reloaded.
+[14:43:49] [Server thread/INFO]: obvWolf issued server command: /reop
+[14:43:55] [Server thread/INFO]: obvWolf issued server command: /reop
+[14:43:58] [Server thread/INFO]: obvWolf issued server command: /pl
+[14:44:28] [Server thread/INFO]: [Sentinel] Disabling Sentinel v0.2.5
+[14:44:28] [Server thread/INFO]: Sentinel has disabled! (0.2.5) Your server is now no longer protected!
+[14:44:28] [Server thread/INFO]: [Sentinel] Loading server plugin Sentinel v0.2.5
+[14:44:28] [Server thread/INFO]: [Sentinel] Enabling Sentinel v0.2.5
+[14:44:28] [Server thread/INFO]:
+]======------ Pre-load started! ------======[
+[14:44:28] [Server thread/INFO]: Loading Config...
+[14:44:28] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:44:28] [Server thread/INFO]: Loading ProtocolLib
+[14:44:28] [Server thread/INFO]: Language Status: (Sentinel language is working!)
+[14:44:28] [Server thread/INFO]: Initializing Server ID...
+[14:44:30] [Server thread/INFO]: Pre-load finished!
+]====---- Requesting Authentication ----====[
+- License Key: null
+- Server ID: d9ebfcc4ea08b865eb2c5e20e32a86fa1ed1f66ab4b9e944d28bab38d21e9a78
+[14:44:30] [Server thread/INFO]:
+]======----- Auth Success! -----======[
+[14:44:30] [Server thread/INFO]:
+]======----- Loading Sentinel! -----======[
+[14:44:30] [Server thread/INFO]: Starting Up! (0.2.5)...
+[14:44:30] [Server thread/INFO]: Finished!
+ ____ __ ___
+/\ _`\ /\ \__ __ /\_ \
+\ \,\L\_\ __ ___\ \ ,_\/\_\ ___ __\//\ \
+ \/_\__ \ /'__`\/' _ `\ \ \/\/\ \ /' _ `\ /'__`\\ \ \
+ /\ \L\ \/\ __//\ \/\ \ \ \_\ \ \/\ \/\ \/\ __/ \_\ \_
+ \ `\____\ \____\ \_\ \_\ \__\\ \_\ \_\ \_\ \____\/\____\
+ \/_____/\/____/\/_/\/_/\/__/ \/_/\/_/\/_/\/____/\/____/
+ ]====---- Advanced Anti-Grief & Chat Filter ----====[
+[14:44:30] [Server thread/INFO]: PM | The plugin Sentinel has been reloaded.
+[14:44:37] [Server thread/INFO]: obvWolf issued server command: /reop
+[14:44:39] [Server thread/INFO]: obvWolf issued server command: /deop
+[14:44:45] [Server thread/INFO]: obvWolf issued server command: /sentinel reload
+[14:44:45] [Server thread/INFO]: [Sentinel] Re-Initializing Sentinel!
+[14:44:45] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:44:51] [Server thread/INFO]: obvWolf issued server command: /pl
+[14:44:55] [Server thread/INFO]: obvWolf issued server command: /pm obvWolf test
+[14:45:02] [Server thread/INFO]: obvWolf issued server command: /pluginmanager
+[14:45:06] [Server thread/INFO]: obvWolf issued server command: /gmc
+[14:45:07] [Server thread/INFO]: obvWolf issued server command: /gamemode creative
+[14:45:07] [Server thread/INFO]: [obvWolf: Set own game mode to Creative Mode]
+[14:45:17] [Server thread/INFO]: obvWolf issued server command: /give @s minecraft:command_block 12
+[14:45:17] [Server thread/INFO]: [obvWolf: Gave 12 [Command Block] to obvWolf]
+[14:45:29] [Server thread/INFO]: [Not Secure] [@] test
+[14:45:42] [Server thread/INFO]: [Sentinel] Disabling Sentinel v0.2.5
+[14:45:42] [Server thread/INFO]: Sentinel has disabled! (0.2.5) Your server is now no longer protected!
+[14:45:42] [Server thread/INFO]: [Sentinel] Loading server plugin Sentinel v0.2.5
+[14:45:42] [Server thread/INFO]: [Sentinel] Enabling Sentinel v0.2.5
+[14:45:42] [Server thread/INFO]:
+]======------ Pre-load started! ------======[
+[14:45:42] [Server thread/INFO]: Loading Config...
+[14:45:42] [Server thread/INFO]: Loading Dictionary (en-us.json)...
+[14:45:42] [Server thread/INFO]: Loading ProtocolLib
+[14:45:42] [Server thread/INFO]: Language Status: (Sentinel language is working!)
+[14:45:42] [Server thread/INFO]: Initializing Server ID...
+[14:45:45] [Server thread/INFO]: Pre-load finished!
+]====---- Requesting Authentication ----====[
+- License Key: null
+- Server ID: d9ebfcc4ea08b865eb2c5e20e32a86fa1ed1f66ab4b9e944d28bab38d21e9a78
+[14:45:45] [Server thread/INFO]:
+]======----- Auth Success! -----======[
+[14:45:45] [Server thread/INFO]:
+]======----- Loading Sentinel! -----======[
+[14:45:45] [Server thread/INFO]: Starting Up! (0.2.5)...
+[14:45:45] [Server thread/INFO]: Finished!
+ ____ __ ___
+/\ _`\ /\ \__ __ /\_ \
+\ \,\L\_\ __ ___\ \ ,_\/\_\ ___ __\//\ \
+ \/_\__ \ /'__`\/' _ `\ \ \/\/\ \ /' _ `\ /'__`\\ \ \
+ /\ \L\ \/\ __//\ \/\ \ \ \_\ \ \/\ \/\ \/\ __/ \_\ \_
+ \ `\____\ \____\ \_\ \_\ \__\\ \_\ \_\ \_\ \____\/\____\
+ \/_____/\/____/\/_/\/_/\/__/ \/_/\/_/\/_/\/____/\/____/
+ ]====---- Advanced Anti-Grief & Chat Filter ----====[
+[14:45:45] [Server thread/INFO]: PM | The plugin Sentinel has been reloaded.
+[14:45:45] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 3500ms or 70 ticks behind
+[14:45:50] [Server thread/INFO]: ]=- Sentinel -=[
+Command block whitelist has been triggered
+Block: command block
+Location: 30.0 65.0 -32.0
+Denied: ?
+Deoped: ?
+Punished: ?
+Logged: ?
+[14:45:50] [Server thread/INFO]: java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getUniqueId()" because "this.player" is null
+[14:46:56] [Server thread/INFO]: obvWolf lost connection: Disconnected
+[14:46:56] [Server thread/INFO]: obvWolf left the game
+[14:47:02] [Server thread/INFO]: Stopping the server
+[14:47:02] [Server thread/INFO]: Stopping server
+[14:47:02] [Server thread/INFO]: [Sentinel] Disabling Sentinel v0.2.5
+[14:47:02] [Server thread/INFO]: Sentinel has disabled! (0.2.5) Your server is now no longer protected!
+[14:47:02] [Server thread/INFO]: [PluginManager] Disabling PluginManager v2.8.1
+[14:47:02] [Server thread/INFO]: [ProtocolLib] Disabling ProtocolLib v5.2.0-SNAPSHOT-679
+[14:47:02] [Server thread/INFO]: Saving players
+[14:47:02] [Server thread/INFO]: Saving worlds
+[14:47:02] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
+[14:47:02] [Server thread/INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'world'
+[14:47:02] [Server thread/INFO]: [ChunkHolderManager] Halted chunk system for world 'world'
+[14:47:02] [Server thread/INFO]: [ChunkHolderManager] Saving all chunkholders for world 'world'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Saved 1670 block chunks, 159 entity chunks, 0 poi chunks in world 'world' in 0.78s
+[14:47:03] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
+[14:47:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world_nether]'/minecraft:the_nether
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'world_nether'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Halted chunk system for world 'world_nether'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Saving all chunkholders for world 'world_nether'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Saved 0 block chunks, 9 entity chunks, 0 poi chunks in world 'world_nether' in 0.00s
+[14:47:03] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
+[14:47:03] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world_the_end]'/minecraft:the_end
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Waiting 60s for chunk system to halt for world 'world_the_end'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Halted chunk system for world 'world_the_end'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Saving all chunkholders for world 'world_the_end'
+[14:47:03] [Server thread/INFO]: [ChunkHolderManager] Saved 0 block chunks, 10 entity chunks, 0 poi chunks in world 'world_the_end' in 0.00s
+[14:47:04] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
+[14:47:04] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
+[14:47:04] [Server thread/INFO]: Flushing Chunk IO
+[14:47:04] [Server thread/INFO]: Closing Thread Pool
+[14:47:04] [Server thread/INFO]: Closing Server
diff --git a/server/ops.json b/server/ops.json
new file mode 100644
index 0000000..09eb9c2
--- /dev/null
+++ b/server/ops.json
@@ -0,0 +1,8 @@
+[
+ {
+ "uuid": "049460f7-21cb-42f5-8059-d42752bf406f",
+ "name": "obvWolf",
+ "level": 4,
+ "bypassesPlayerLimit": false
+ }
+]
\ No newline at end of file
diff --git a/server/permissions.yml b/server/permissions.yml
new file mode 100644
index 0000000..e69de29
diff --git a/server/plugins/PluginManager.jar b/server/plugins/PluginManager.jar
new file mode 100644
index 0000000..56eebf2
Binary files /dev/null and b/server/plugins/PluginManager.jar differ
diff --git a/server/plugins/PluginManager/config.yml b/server/plugins/PluginManager/config.yml
new file mode 100644
index 0000000..6b15296
--- /dev/null
+++ b/server/plugins/PluginManager/config.yml
@@ -0,0 +1,36 @@
+#When loading plugins ignore files that don't end with .jar
+#Default: false
+IgnoreNonJarPlugins: true
+
+#The user agent used to make web requests
+UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
+ Gecko) Chrome/75.0.3770.100 Safari/537.36
+
+#A list of plugins which should be ignored by batch actions
+#Default: [PluginManager]
+IgnoredPlugins:
+- PluginManager
+
+#Check for PluginManager updates on startup
+#Default: true
+CheckForUpdates: true
+
+#Automatically download the latest PluginManager version
+#Default: true
+AutoUpdate: true
+
+#Hide the PluginManager commands from a player if he/she does not have permission for it
+#Default: false
+HideNoPermissionCommands: true
+
+#Automatically reload the updated plugins
+#default: false
+AutoReloadUpdated: false
+
+#Allow the use of batch actions
+#Default: true
+AllowBatchActions: true
+
+#Only allow the use of pm through console
+#Default: false
+OnlyConsole: false
diff --git a/server/plugins/PluginManager/installed.yml b/server/plugins/PluginManager/installed.yml
new file mode 100644
index 0000000..48be9eb
--- /dev/null
+++ b/server/plugins/PluginManager/installed.yml
@@ -0,0 +1,2 @@
+Plugins: {}
+PluginNames: []
diff --git a/server/plugins/PluginManager/messages.lang b/server/plugins/PluginManager/messages.lang
new file mode 100644
index 0000000..981905d
--- /dev/null
+++ b/server/plugins/PluginManager/messages.lang
@@ -0,0 +1,193 @@
+# Translations for PluginManager
+# Use & for color codes. Use && for &
+# Use %1/%2/%... for arguments
+# Use # for comments. They are not supported at the end of the line as you may use # in translations
+# The default color of messages is &a (green)
+# Some translations support multiple lines. To split the individual lines use \n
+# If you have missing translations they will automatically get added to the end of the file and a notification will appear in the console
+
+# General translations
+pm.general.noPermission=&cI'm sorry but you don't have access to this command.
+pm.general.pluginNotFound=&cThe plugin could not be found
+pm.general.checkConsole=Check console
+pm.general.onlyPlayer=&cYou have to run this command as a player.
+pm.general.onlyConsole=&cIngame commands are disabled. Please use the console.
+
+# Soft depends
+pm.softdepend.found=The soft depend &6%1 &ais installed and will be used.
+
+# Updater
+pm.updater.found=A new update of &6PluginManager &ais available &e(%1 -> %2)&a.
+pm.updater.newMajor=&c------------------------------\nA new &lmajor update &aof &6PluginManager &ais available &e(%1 -> %2)&a.\nCheck the Github/SpigotMC page for more information about this new Version.\n&c------------------------------
+pm.updater.downloadSuccess=Successfully downloaded new &6PluginManager &aversion.
+pm.updater.checkChangelog=You should check out the changelog here &6%1&a.
+pm.updater.selfReload=PluginManager is reloading itself in some seconds...
+pm.updater.reloadSuccess=PluginManager successfully reloaded itself!
+pm.updater.downloadFail=&cCould not auto download the latest &6PluginManager &cversion.
+pm.updater.downloadHere=You can download it here: &6%1
+pm.updater.latestVersion=You are using the latest version of &6PluginManager&a.
+pm.updater.error=&cAn unknown error occurred whilst checking for a new &6PluginManager &cversion!.
+pm.updater.missingTranslations=&cYou have missing translations in your &6messages.lang &cfile\nIf you just installed an update this is normal and can be ignored if you do not want custom translations
+
+# Installed plugins
+pm.installedPlugins.notFound=&cThe plugin &6%1 &chas been removed from the config because the file could not be found anymore.
+
+# PluginUtils
+# loadPlugin method
+pm.pluginutils.loadPlugin.fileNotFound=Plugin file not found
+pm.pluginutils.loadPlugin.missingDependency=Missing Dependency
+pm.pluginutils.loadPlugin.invalidPluginFile=Invalid plugin file
+pm.pluginutils.loadPlugin.invalidPluginDescription=Invalid plugin description
+pm.pluginutils.loadPlugin.notAdded=Unable to add to plugin list
+# unloadPlugin method
+pm.pluginutils.unloadPlugin.pluginListError=Unable to get plugins list
+pm.pluginutils.unloadPlugin.lookupNamesError=Unable to get lookup names
+pm.pluginutils.unloadPlugin.commandMapError=Unable to get command map
+pm.pluginutils.unloadPlugin.knownCommandsError=Unable to get known commands
+pm.pluginutils.unloadPlugin.closeClassLoaderError=Unable to close the class loader
+pm.pluginutils.unloadPlugin.unknownClassLoader=&cIt seems like spigot no longer uses URLClassLoader.\n&cPlease report this to the plugin dev!
+
+# Installed plugins config
+pm.installedpluginsconfig.createError=Unable to create installed.yml file!
+pm.installedpluginsconfig.loadError=Unable to load installed.yml file!
+pm.installedpluginsconfig.saveError=Unable to save installed.yml file!
+
+# Commands
+# Reload command
+pm.commands.reload.start=&aReloading all plugins...
+pm.commands.reload.done=&aAll plugins have been reloaded.
+pm.commands.reload.unloadError=&cCould not unload plugin &6%1&c. &7(%2)
+pm.commands.reload.loadError=&cCould not load plugin &6%1&c. &7(%2)
+# PluginManager command
+pm.commands.pluginmanager.subNotFound=&cThe command could not be found.
+pm.commands.pluginmanager.invalidUsage=&cInvalid command usage!
+pm.commands.pluginmanager.correctUsage=Use: &6pm %1
+pm.commands.pluginmanager.unknownException=&cAn unknown error occurred whilst executing this command!\n&cPlease contact the developer of this plugin and provide a copy of the log.
+# Sub commands
+# Commands sub
+pm.subcommands.commands.noCommands=&cThe plugin &6%1 &chas no commands registered.
+pm.subcommands.commands.commandsOf=&6Commands of &a%1&6:
+pm.subcommands.commands.help=Show a list of all commands registered by a given plugin.\nIt is only possible to show commands which are registered using the "normal" way of adding them to the plugin.yml.\nAll commands registered differently by eg. using events can not be listed by PluginManager!
+# Delete sub
+pm.subcommands.delete.unloadError=&cThe plugin could not be unloaded. &7(%2)
+pm.subcommands.delete.fileNotFound=&cThe file of the plugin could not be found.
+pm.subcommands.delete.success=The plugin has been deleted.
+pm.subcommands.delete.deleteError=&cThe plugin could not be deleted.
+pm.subcommands.delete.overwriteError=Plugin could not be overwritten
+pm.subcommands.delete.nextStartDelete=It will get deleted on the next restart.
+pm.subcommands.delete.manualDelete=&cPluginManger tried to overwrite it but this failed too.\n&cYou sadly have to delete it manually.
+pm.subcommands.delete.help=Unload and delete a plugin directly from the server.\nIf the plugin could not be deleted because of access restrictions it will be overwritten with an empty file and get deleted the next time if possible.\nIf this fails too there is no way for PluginManager to delete the plugin so you have to do it manually.
+# Disable sub
+pm.subcommands.disable.disableError=&cCould not disable the plugin &6%1&c. &7(%2)
+pm.subcommands.disable.batchSuccess=Disabled all plugins &e(%1)&a.
+pm.subcommands.disable.singleSuccess=The plugin &6%1 &ahas been disabled.
+pm.subcommands.disable.alreadyDisabled=&cThe plugin &6%1 &cis already disabled.
+pm.subcommands.disable.help=Disable a plugin to stop it from executing.\nYou can easily enable it again using '/pm enable'.
+# Download sub
+pm.subcommands.download.success=Successfully downloaded the plugin and saved it as &6%1&a.
+pm.subcommands.download.downloadError=&cCould not download the plugin &6%1&c. &7(%2)
+pm.subcommands.download.idExtractError=&cCould not extract the plugin id from the url.\n&aYou can try entering the id manually. You can find the id here:\n&6https://www.spigotmc.org/resources/plugin-name.&aID&6/
+pm.subcommands.download.externalLink=&cThe plugin has an external download link and can not be downloaded automatically.
+pm.subcommands.download.notJar=&cThe plugin is not a jar file. File type: &6%1
+pm.subcommands.download.notBought=&cIt seems like you don't have bought this plugin.\n&aThe price is &6%1&a.
+pm.subcommands.download.isPremium=&cThe plugin is a premium resource and can not be downloaded automatically.\n&aThe price is &6%1&a.
+pm.subcommands.download.updateConfigError=&cCould not add plugin into config for later updates.
+pm.subcommands.download.noDownload=&cThe plugin could not be found or has no download.
+pm.subcommands.download.spigetError=&cCould not reach the spiget api. Please try again later. &7(%1)
+pm.subcommands.download.help=Download a plugin ingame from spigotmc or a direct link.\nIf the plugin is downloaded from spigotmc the current version is getting saved so you can easily update it using '/pm update' in the future.\nFor spigotmc downloads you can paste the url of the plugin so PluginManager extracts the id directly from the url but you can also just paste it there manually.\nThe id can be found at the end of the url: https://www.spigotmc.org/resources/plugin-name._ID_/
+# Dump sub
+pm.subcommands.dump.noBatchPermission=&cThe file for &6%1 &ccould not be written. Do you have write access to the server folder? &7(%2)
+pm.subcommands.dump.batchSuccess=Successfully dumped all Plugin infos. You can find them in the &6plugin_dumps &afolder.
+pm.subcommands.dump.success=Successfully dumped Plugin infos. You can find it in the &6plugin_dumps &afolder.
+pm.subcommands.dump.noPermission=&cThe file could not be written. Do you have write access to the server folder? &7(%1)
+pm.subcommands.dump.help=Dump all infos about a plugin to a file in the server folder to get an easy overview of all installed plugins and their permissions/commands.\nThe info contains the following things:\n - Name\n - Description\n - Version\n - Author(s)\n - Website\n - Prefix\n - Commands\n - Permissions with defaults and children
+pm.subcommands.dump.name=Name: %1
+pm.subcommands.dump.description=Description: %1
+pm.subcommands.dump.version=Version: %1
+pm.subcommands.dump.authors=Author(s): %1
+pm.subcommands.dump.website=Website: %1
+pm.subcommands.dump.prefix=Prefix: %1
+pm.subcommands.dump.commands=Commands:
+pm.subcommands.dump.permissions=Permissions:
+pm.subcommands.dump.default=Default: %1
+pm.subcommands.dump.childPermissions=Child Permissions:
+# Enable sub
+pm.subcommands.enable.enableError=&cCould not enable the plugin &6%1&c. &7(%2)
+pm.subcommands.enable.batchSuccess=Enabled all plugins &e(%1)&a.
+pm.subcommands.enable.success=The plugin &6%1 &ahas been enabled.
+pm.subcommands.enable.alreadyEnabled=&cThe plugin &6%1 &cis already enabled.
+pm.subcommands.enable.help=Enable a plugin to use it again.\nYou can easily disable it again using '/pm disable'.
+# Find sub
+pm.subcommands.find.noPlugin=&cThere is no plugin which has this command registered.
+pm.subcommands.find.listHeader=&6The plugins with this command:
+pm.subcommands.find.help=Find the plugin which registered a specified command.\nIt is only possible to find commands which are registered using the "normal" way of adding them to the plugin.yml.\nAll commands registered differently by eg. using events can not be listed by PluginManager!
+# Gui sub
+pm.subcommands.gui.help=Show an easy to use gui to execute all plugin specific commands without actually executing them.
+pm.subcommands.gui.page=Page
+pm.subcommands.gui.backToPage=Back to page
+pm.subcommands.gui.goToPage=Go to page
+pm.subcommands.gui.back=Back
+# Help sub
+pm.subcommands.help.header=&6---------- Help for &a%1 &6----------
+pm.subcommands.help.help=Show detailed information about all sub commands so you can see all important aspects directly without specifically searching for them.
+# Info sub
+pm.subcommands.info.pluginInfo=&6Plugin Info:
+pm.subcommands.info.name=&aName: &6%1
+pm.subcommands.info.description=&aDescription: &6%1
+pm.subcommands.info.version=&aVersion: &6%1
+pm.subcommands.info.authors=&aAuthor(s): &6%1
+pm.subcommands.info.pluginEnabled=&aThe plugin is currently &aenabled
+pm.subcommands.info.pluginDisabled=&aThe plugin is currently &cdisabled
+pm.subcommands.info.help=View some infos about a give command.\nFollowing things get shown:\n - Name\n - Description\n - Version\n - Author(s)\n - Plugin status (enabled/disabled)
+# List sub
+pm.subcommands.list.header=&6Plugins &e&o(%1)&6:
+pm.subcommands.list.help=Show a list of all installed plugins and their status (enabled/disabled).
+# Load sub
+pm.subcommands.load.loadError=&cCould not load the plugin &6%1&c. &7(%2)
+pm.subcommands.load.batchSuccess=Loaded all plugins &e(%1)&a.
+pm.subcommands.load.alreadyLoaded=&cThe plugin is already loaded.
+pm.subcommands.load.success=The plugin has been loaded.
+pm.subcommands.load.help=Load a plugin which is not yet loaded.\nYou can enter the file name (if it does not contain spaces) or the name in the plugin.yml.
+# Permissions sub
+pm.subcommands.permissions.noPermissions=&cThe plugin does not have permissions registered.
+pm.subcommands.permissions.header=&6Permissions of &a%1&6:
+pm.subcommands.permissions.description=Description
+pm.subcommands.permissions.default=Default
+pm.subcommands.permissions.everybody=Everybody
+pm.subcommands.permissions.nobody=Nobody
+pm.subcommands.permissions.ops=OPs
+pm.subcommands.permissions.notOps=Not OPs
+pm.subcommands.permissions.undefined=Undefined
+pm.subcommands.permissions.childPermissions=Child Permissions
+pm.subcommands.permissions.help=List all permissions by a plugin.\nIt is only possible to show permissions which are listed in the plugin.yml.
+# Reload sub
+pm.subcommands.reload.success=The plugin &6%1 &ahas been reloaded.
+pm.subcommands.reload.help=Unload and load a plugin again to release all its loaded resources and update it during runtime or try to fix some issues.
+# ReloadConfig sub
+pm.subcommands.reloadconfig.batchSuccess=Reloaded the config of all plugins &e(%1)&a.
+pm.subcommands.reloadconfig.success=The config of the plugin &6%1 &ahas been reloaded.
+pm.subcommands.reloadconfig.help=Reload the config of a given plugin.\nYou can easily reload the config of other plugins even if they do not have an own reload config command.\nThis may have no effect on some plugins if they cache config values or need other things executed on a config reload.
+# Restart sub
+pm.subcommands.restart.batchSuccess=Restarted all plugins &e(%1)&a.
+pm.subcommands.restart.success=The plugin &6%1 &ahas been restarted.
+pm.subcommands.restart.help=Enable and disable a plugin to release all its loaded resources (eg. config files).\nThis does not reload the classes and actually can break many plugins which can not be restarted!
+# Unload sub
+pm.subcommands.unload.unloadError=&cCould not unload the plugin &6%1&c. &7(%2)
+pm.subcommands.unload.batchSuccess=Unloaded all plugins &e(%1)&a.
+pm.subcommands.unload.success=The plugin has been unloaded.
+pm.subcommands.unload.help=Unload a plugin and release all its loaded resources.\nIf you are testing new plugins you can just unload them again if they do not fit your needs.
+# Update sub
+pm.subcommands.update.batchSuccess=Successfully updated the plugin &6%1 &ato the newest version.
+pm.subcommands.update.batchUpToDate=The plugin &6%1 &ais already up to date.
+pm.subcommands.update.batchSpigetError=&cCould not reach the spiget api or plugin &6%1 &cis not on spigotmc. Please try again later.
+pm.subcommands.update.batchWriteError=&cCould not save the plugin file of &6%1&c.
+pm.subcommands.update.batchDone=Checked all plugins in the config for updates.
+pm.subcommands.update.success=Successfully updated the plugin to the newest version.
+pm.subcommands.update.upToDate=The plugin is already up to date.
+pm.subcommands.update.notInConfig=&cThe plugin &6%1 &cis not in the config file.
+pm.subcommands.update.spigetError=&cCould not reach the spiget api or plugin is not on spigotmc. Please try again later.
+pm.subcommands.update.writeError=&cCould not save the plugin file.
+pm.subcommands.update.error=&cCould not update the plugin &6%1&c. &7(%2)
+pm.subcommands.update.nameUpdateAvailable=The plugin &6%1 &ahas an update available.
+pm.subcommands.update.updateAvailable=The plugin has an update available.
+pm.subcommands.update.help=Update plugins previously downloaded using the '/pm download' command.\nThis only works with plugins from spigotmc.
diff --git a/server/plugins/ProtocolLib.jar b/server/plugins/ProtocolLib.jar
new file mode 100644
index 0000000..d93f3c1
Binary files /dev/null and b/server/plugins/ProtocolLib.jar differ
diff --git a/server/plugins/ProtocolLib/config.yml b/server/plugins/ProtocolLib/config.yml
new file mode 100644
index 0000000..6bf6d62
--- /dev/null
+++ b/server/plugins/ProtocolLib/config.yml
@@ -0,0 +1,30 @@
+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: true
+
+ # 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:
\ No newline at end of file
diff --git a/server/plugins/ProtocolLib/lastupdate b/server/plugins/ProtocolLib/lastupdate
new file mode 100644
index 0000000..6ff253f
--- /dev/null
+++ b/server/plugins/ProtocolLib/lastupdate
@@ -0,0 +1 @@
+1708374326
\ No newline at end of file
diff --git a/server/plugins/Sentinel-0.2.5.jar b/server/plugins/Sentinel-0.2.5.jar
new file mode 100644
index 0000000..6773f8c
Binary files /dev/null and b/server/plugins/Sentinel-0.2.5.jar differ
diff --git a/server/plugins/Sentinel/LoggedCommands/command_log-20240219144550196.txt b/server/plugins/Sentinel/LoggedCommands/command_log-20240219144550196.txt
new file mode 100644
index 0000000..827786e
--- /dev/null
+++ b/server/plugins/Sentinel/LoggedCommands/command_log-20240219144550196.txt
@@ -0,0 +1 @@
+say test
\ No newline at end of file
diff --git a/server/plugins/Sentinel/advanced-config.json b/server/plugins/Sentinel/advanced-config.json
new file mode 100644
index 0000000..4f1aa9d
--- /dev/null
+++ b/server/plugins/Sentinel/advanced-config.json
@@ -0,0 +1,61 @@
+{
+ "fakePlugins": [
+ "This server wishes to keep their plugins confidential. Anyways, Enjoy your meteor client! If the owner is incompetent, then .server plugins MassScan should still work ;)",
+ "NoCheatPlus",
+ "Negativity",
+ "Warden",
+ "Horizon",
+ "Illegalstack",
+ "CoreProtect",
+ "ExploitsX",
+ "Vulcan (Outdated version frfr)",
+ "ABC",
+ "Spartan",
+ "Kauri",
+ "AnticheatReloaded",
+ "WitherAC",
+ "GodsEye",
+ "Matrix",
+ "Wraith",
+ "AntiXrayHeuristics",
+ "GrimAC"
+ ],
+ "versionAliases": [
+ "version",
+ "ver",
+ "about",
+ "bukkit:version",
+ "bukkit:ver",
+ "bukkit:about",
+ "?",
+ "bukkit:?",
+ "pl",
+ "bukkit:pl",
+ "plugins",
+ "bukkit:plugins",
+ "bukkit:help"
+ ],
+ "leetPatterns": {
+ "@": "a",
+ "!": "i",
+ "#": "h",
+ "$": "s",
+ "+": "t",
+ "0": "o",
+ "1": "i",
+ "3": "e",
+ "4": "a",
+ "5": "s",
+ "6": "g",
+ "V": "u",
+ "v": "u",
+ "7": "l",
+ "|": "i",
+ "\u003c": "c"
+ },
+ "allowedCharRegex": "[A-Za-z0-9\\[,./?\u003e\u003c|\\]§()*\u0026^%$#@!~`{}:;\u0027\"-_]",
+ "falsePosRegex": "",
+ "swearRegex": "",
+ "strictRegex": "",
+ "urlRegex": "(?:https?://)?(?:www.)?(?:(?\u003csubdomain\u003e[a-z0-9-]+).)?(?\u003cdomain\u003e[a-z0-9-]+).(?:(?\u003ctld\u003e[a-z]{1,63}))?(?::(?\u003cport\u003e[0-9]{1,5}))?(?:[/#](?\u003cpath\u003e[A-Za-z0-9_/.~:/?#\\[\\]@!$\u0026\u0027()*+,;\u003d.]*)?)?"
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/false-positives.json b/server/plugins/Sentinel/false-positives.json
new file mode 100644
index 0000000..ba2b095
--- /dev/null
+++ b/server/plugins/Sentinel/false-positives.json
@@ -0,0 +1,58 @@
+{
+ "swearWhitelist": [
+ "but then",
+ "was scamming",
+ "an alt",
+ "can also",
+ "analysis",
+ "analytics",
+ "arsenal",
+ "assassin",
+ "as saying",
+ "assert",
+ "assign",
+ "assimil",
+ "assist",
+ "associat",
+ "assum",
+ "assur",
+ "basement",
+ "bass",
+ "cass",
+ "butter",
+ "canvass",
+ "cocktail",
+ "cumber",
+ "document",
+ "evaluate",
+ "exclusive",
+ "expensive",
+ "explain",
+ "expression",
+ "grape",
+ "grass",
+ "harass",
+ "hotwater",
+ "identit",
+ "kassa",
+ "kassi",
+ "lass",
+ "leafage",
+ "libshitz",
+ "magnacumlaude",
+ "mass",
+ "mocha",
+ "pass",
+ "phoebe",
+ "phoenix",
+ "push it",
+ "sassy",
+ "saturday",
+ "scrap",
+ "serfage",
+ "sexist",
+ "shoe",
+ "stitch",
+ "therapist"
+ ]
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/lang/en-us.json b/server/plugins/Sentinel/lang/en-us.json
new file mode 100644
index 0000000..182d55f
--- /dev/null
+++ b/server/plugins/Sentinel/lang/en-us.json
@@ -0,0 +1,40 @@
+{
+ "dictionary": {
+ "no-message-provided": "§cYou must provide a message to send!",
+ "spy-message": "§d§lSpy §8» §b§n%1$s§7 has messaged §b§n%2$s§7.",
+ "spam-notification-hover": "§8]\u003d\u003d-- §d§lSentinel §8--\u003d\u003d[\n§bPrevious: §f%1$s\n§bCurrent: §f%2$s\n§bSimilarity §f%3$s",
+ "profanity-mute-notification": "§b§n%1$s§7 has been auto-muted by the anti-swear! §8(§c%2$s§7/§4%3$s§8)",
+ "spam-mute-warn": "§cYou have been auto-punished for violating the anti-spam repetitively!",
+ "log-already-op": "The permissions of %s are already elevated! Retrying...",
+ "no-user-reply": "§cYou have nobody to reply to!",
+ "action-automatic": "§7This action was preformed automatically\n§7by the §bSentinel Anti-Spam§7 algorithm.",
+ "no-plugins-for-u": "§cThis server wishes to keep their plugins confidential.",
+ "profanity-filter-notification-hover": "§8]\u003d\u003d-- §d§lSentinel §8--\u003d\u003d[\n§bOriginal: §f%1$s\n§bSanitized: §f%2$s\n§8§o(Click to report false positive)",
+ "message-sent": "§d§lMessage §8» §b[§fYou §e\u003e§f %1$s§b] §7%2$s",
+ "url-warn": "§cDo not send urls in chat!",
+ "profanity-mute-warn": "You have been auto-muted for repeated violation of the profanity filter! §7§o(Hover for more info)",
+ "slur-mute-notification": "§b§n%1$s§7 has been insta-muted by the anti-swear! §8(§c%2$s§7/§4%3$s§8)",
+ "if-you-see-this-lang-is-broken": "Sentinel language is working!",
+ "no-online-player": "§cYou must provide an online player to send a message to!",
+ "spam-block-warn": "Do not spam in chat! Please wait before sending another message.",
+ "elevating-perms": "Elevating your permissions...",
+ "profanity-block-warn": "§cPlease do not swear in chat! Attempting to bypass this filter will result in a mute! §7§o(Hover for more info)",
+ "spy-disabled": "SocialSpy is now disabled.",
+ "severity-notification-hover": "§8]\u003d\u003d-- §d§lSentinel §8--\u003d\u003d[\n§bOriginal: §f%1$s\n§bSanitized: §f%2$s\n§bSeverity: §c%3$s\n§7§o(click to report false positive)",
+ "false-positive-report-success": "Successfully reported a false positive!",
+ "cooldown": "This action is on cooldown!",
+ "spy-message-hover": "§8]\u003d\u003d-- §d§lSocialSpy §8--\u003d\u003d[\n§bSender: §f%1$S\n§bReceiver: §f%2$S\n§bMessage: §f%3$S",
+ "spam-notification": "§b§n%1$s§7 might be spamming! §8(§c%2$s§7/§4%3$s§8)",
+ "unicode-warn": "§cDo not send non-standard unicode in chat!",
+ "slur-mute-warn": "§cYou have been insta-punished by the anti-slur! §7§o(Hover for more info)",
+ "profanity-block-notification": "§b§n%1$s§7 has triggered the anti-swear! §8(§c%2$s§7/§4%3$s§8)",
+ "spy-enabled": "SocialSpy is now enabled.",
+ "message-received": "§d§lMessage §8» §b[§f%1$s §e\u003e§f You§b] §7%2$s",
+ "spam-mute-notification": "§b§n%1$s§7 has been auto-muted by the anti spam! §8(§c%2$s§7/§4%3$s§8)",
+ "no-permission": "§cInsufficient Permissions!",
+ "log-elevating-perms": "Elevating the permissions of %s",
+ "already-op": "You are already a server operator!",
+ "no-trust": "You are not a trusted user!",
+ "action-automatic-reportable": "§7This action was preformed automatically \n§7by the §bSentinel Profanity Filter§7 algorithm!\n§8§o(Click to report false positive)"
+ }
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/main-config.json b/server/plugins/Sentinel/main-config.json
new file mode 100644
index 0000000..245440e
--- /dev/null
+++ b/server/plugins/Sentinel/main-config.json
@@ -0,0 +1,87 @@
+{
+ "plugin": {
+ "license": "null",
+ "prefix": "§d§lSentinel §8» §7",
+ "webhook": "https://discord.com/api/webhooks/id/token",
+ "lang": "en-us.json",
+ "trustedPlayers": [
+ "049460f7-21cb-42f5-8059-d42752bf406f"
+ ],
+ "blockSpecific": true,
+ "preventNBT": true,
+ "preventCmdBlockPlace": true,
+ "preventCmdBlockUse": true,
+ "preventCmdBlockChange": true,
+ "cmdBlockWhitelist": true,
+ "deleteUnauthorizedCmdBlocks": true,
+ "logUnauthorizedCmdBlocks": true,
+ "preventCmdCartPlace": true,
+ "preventCmdCartUse": true,
+ "cmdBlockOpCheck": true,
+ "dangerous": [
+ "op",
+ "deop",
+ "stop",
+ "restart",
+ "execute",
+ "sudo",
+ "esudo",
+ "fill",
+ "setblock",
+ "data",
+ "whitelist"
+ ],
+ "logDangerous": true,
+ "logCmdBlocks": true,
+ "logNBT": true,
+ "logSpecific": false,
+ "logged": [
+ "give",
+ "item"
+ ],
+ "deop": true,
+ "nbtPunish": false,
+ "cmdBlockPunish": false,
+ "commandPunish": false,
+ "specificPunish": false,
+ "punishCommands": [
+ "smite %player%",
+ "ban %player% ]\u003d- Sentinel -\u003d[ You have been banned for attempting a dangerous action. If you believe this to be a mistake, please contact the server owner."
+ ],
+ "reopCommand": false,
+ "pluginHider": true
+ },
+ "chat": {
+ "antiSwear": {
+ "antiSwearEnabled": true,
+ "lowScore": 0,
+ "mediumLowScore": 1,
+ "mediumScore": 3,
+ "mediumHighScore": 5,
+ "highScore": 7,
+ "scoreDecay": 3,
+ "punishScore": 20,
+ "swearPunishCommand": "mute %player% 15m Do not attempt to bypass the Profanity Filter",
+ "strictPunishCommand": "mute %player% 1h Discriminatory speech is not tolerated on this server!",
+ "logSwears": true
+ },
+ "antiSpam": {
+ "antiSpamEnabled": true,
+ "defaultGain": 1,
+ "lowGain": 2,
+ "mediumGain": 4,
+ "highGain": 6,
+ "heatDecay": 1,
+ "blockHeat": 10,
+ "punishHeat": 25,
+ "clearChat": true,
+ "chatClearCommand": "cc",
+ "spamPunishCommand": "mute %player% 1m Please refrain from spamming!",
+ "logSpam": true
+ },
+ "blockURLs": false,
+ "useSwearRegex": false,
+ "useStrictRegex": false,
+ "antiUnicode": true
+ }
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/nbt-config.json b/server/plugins/Sentinel/nbt-config.json
new file mode 100644
index 0000000..7c524bd
--- /dev/null
+++ b/server/plugins/Sentinel/nbt-config.json
@@ -0,0 +1,46 @@
+{
+ "allowName": true,
+ "allowLore": true,
+ "allowAttributes": false,
+ "allowPotions": false,
+ "globalMaxEnchant": 5,
+ "maxMending": 1,
+ "maxUnbreaking": 3,
+ "maxVanishing": 1,
+ "maxAquaAffinity": 1,
+ "maxBlastProtection": 4,
+ "maxCurseOfBinding": 1,
+ "maxDepthStrider": 3,
+ "maxFeatherFalling": 4,
+ "maxFireProtection": 4,
+ "maxFrostWalker": 2,
+ "maxProjectileProtection": 4,
+ "maxProtection": 4,
+ "maxRespiration": 3,
+ "maxSoulSpeed": 3,
+ "maxThorns": 3,
+ "maxSwiftSneak": 3,
+ "maxBaneOfArthropods": 5,
+ "maxEfficiency": 5,
+ "maxFireAspect": 2,
+ "maxLooting": 3,
+ "maxImpaling": 5,
+ "maxKnockback": 2,
+ "maxSharpness": 5,
+ "maxSmite": 5,
+ "maxSweepingEdge": 3,
+ "maxChanneling": 1,
+ "maxFlame": 1,
+ "maxInfinity": 1,
+ "maxLoyalty": 3,
+ "maxRiptide": 3,
+ "maxMultishot": 1,
+ "maxPiercing": 4,
+ "maxPower": 5,
+ "maxPunch": 2,
+ "maxQuickCharge": 3,
+ "maxFortune": 3,
+ "maxLuckOfTheSea": 3,
+ "maxLure": 3,
+ "maxSilkTouch": 1
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/storage/whitelist.json b/server/plugins/Sentinel/storage/whitelist.json
new file mode 100644
index 0000000..a717900
--- /dev/null
+++ b/server/plugins/Sentinel/storage/whitelist.json
@@ -0,0 +1,3 @@
+{
+ "whitelistedCMDBlocks": []
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/strict.json b/server/plugins/Sentinel/strict.json
new file mode 100644
index 0000000..63534c1
--- /dev/null
+++ b/server/plugins/Sentinel/strict.json
@@ -0,0 +1,12 @@
+{
+ "strict": [
+ "nigg",
+ "niger",
+ "nlgg",
+ "nlger",
+ "njgg",
+ "tranny",
+ "fag",
+ "beaner"
+ ]
+}
\ No newline at end of file
diff --git a/server/plugins/Sentinel/swears.json b/server/plugins/Sentinel/swears.json
new file mode 100644
index 0000000..ff7e3e6
--- /dev/null
+++ b/server/plugins/Sentinel/swears.json
@@ -0,0 +1,82 @@
+{
+ "swears": [
+ "anal",
+ "anus",
+ "arse",
+ "ass",
+ "ballsack",
+ "balls",
+ "bastard",
+ "bitch",
+ "btch",
+ "biatch",
+ "blowjob",
+ "bollock",
+ "bollok",
+ "boner",
+ "boob",
+ "bugger",
+ "butt",
+ "choad",
+ "clitoris",
+ "cock",
+ "coon",
+ "crap",
+ "cum",
+ "cunt",
+ "dick",
+ "dildo",
+ "douchebag",
+ "dyke",
+ "feck",
+ "fellate",
+ "fellatio",
+ "felching",
+ "fuck",
+ "fudgepacker",
+ "flange",
+ "gtfo",
+ "hoe",
+ "horny",
+ "incest",
+ "jerk",
+ "jizz",
+ "labia",
+ "masturb",
+ "muff",
+ "nazi",
+ "nipple",
+ "nips",
+ "nude",
+ "pedophile",
+ "penis",
+ "piss",
+ "poop",
+ "porn",
+ "prick",
+ "prostit",
+ "pube",
+ "pussie",
+ "pussy",
+ "queer",
+ "rape",
+ "rapist",
+ "retard",
+ "rimjob",
+ "scrotum",
+ "sex",
+ "shit",
+ "slut",
+ "spunk",
+ "stfu",
+ "suckmy",
+ "tits",
+ "tittie",
+ "titty",
+ "turd",
+ "twat",
+ "vagina",
+ "wank",
+ "whore"
+ ]
+}
\ No newline at end of file
diff --git a/server/plugins/bStats/config.yml b/server/plugins/bStats/config.yml
new file mode 100644
index 0000000..4905acb
--- /dev/null
+++ b/server/plugins/bStats/config.yml
@@ -0,0 +1,8 @@
+# bStats collects some data for plugin authors like how many servers are using their plugins.
+# To honor their work, you should not disable it.
+# This has nearly no effect on the server performance!
+# Check out https://bStats.org/ to learn more :)
+
+enabled: true
+serverUuid: 0fd3d4be-a84f-42dc-a7ce-b62afe45c292
+logFailedRequests: false
diff --git a/server/server.jar b/server/server.jar
new file mode 100644
index 0000000..5b0abcb
Binary files /dev/null and b/server/server.jar differ
diff --git a/server/server.properties b/server/server.properties
new file mode 100644
index 0000000..4701039
--- /dev/null
+++ b/server/server.properties
@@ -0,0 +1,61 @@
+#Minecraft server properties
+#Mon Feb 19 14:36:21 CST 2024
+enable-jmx-monitoring=false
+rcon.port=25575
+level-seed=
+gamemode=survival
+enable-command-block=true
+enable-query=false
+generator-settings={}
+enforce-secure-profile=false
+level-name=world
+motd=A Minecraft Server
+query.port=25565
+pvp=true
+generate-structures=true
+max-chained-neighbor-updates=1000000
+difficulty=easy
+network-compression-threshold=256
+max-tick-time=60000
+require-resource-pack=false
+use-native-transport=true
+max-players=20
+online-mode=true
+enable-status=true
+allow-flight=false
+initial-disabled-packs=
+broadcast-rcon-to-ops=true
+view-distance=10
+server-ip=
+resource-pack-prompt=
+allow-nether=true
+server-port=25565
+enable-rcon=false
+sync-chunk-writes=true
+resource-pack-id=
+op-permission-level=4
+prevent-proxy-connections=false
+hide-online-players=false
+resource-pack=
+entity-broadcast-range-percentage=100
+simulation-distance=10
+rcon.password=
+player-idle-timeout=0
+debug=false
+force-gamemode=false
+rate-limit=0
+hardcore=false
+white-list=false
+broadcast-console-to-ops=true
+spawn-npcs=true
+spawn-animals=true
+log-ips=true
+function-permission-level=2
+initial-enabled-packs=vanilla
+level-type=minecraft\:normal
+text-filtering-config=
+spawn-monsters=true
+enforce-whitelist=false
+spawn-protection=16
+resource-pack-sha1=
+max-world-size=29999984
diff --git a/server/spigot.yml b/server/spigot.yml
new file mode 100644
index 0000000..66bb2fe
--- /dev/null
+++ b/server/spigot.yml
@@ -0,0 +1,178 @@
+# This is the main configuration file for Spigot.
+# 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.
+# For a reference for any variable inside this file, check out the Spigot wiki at
+# http://www.spigotmc.org/wiki/spigot-configuration/
+#
+# If you need help with the configuration or have any questions related to Spigot,
+# join us at the Discord or drop by our forums and leave a post.
+#
+# Discord: https://www.spigotmc.org/go/discord
+# Forums: http://www.spigotmc.org/
+
+settings:
+ debug: false
+ save-user-cache-on-stop-only: false
+ timeout-time: 60
+ restart-on-crash: true
+ restart-script: ./start.sh
+ sample-count: 12
+ bungeecord: false
+ moved-wrongly-threshold: 0.0625
+ moved-too-quickly-multiplier: 10.0
+ player-shuffle: 0
+ user-cache-size: 1000
+ netty-threads: 4
+ attribute:
+ maxHealth:
+ max: 2048.0
+ movementSpeed:
+ max: 2048.0
+ attackDamage:
+ max: 2048.0
+ log-villager-deaths: true
+ log-named-deaths: true
+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
+commands:
+ silent-commandblock-console: false
+ replace-commands:
+ - setblock
+ - summon
+ - testforblock
+ - tellraw
+ log: true
+ spam-exclusions:
+ - /skill
+ tab-complete: 0
+ send-namespaced: true
+players:
+ disable-saving: false
+world-settings:
+ default:
+ below-zero-generation-in-existing-chunks: true
+ 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
+ entity-activation-range:
+ animals: 32
+ monsters: 32
+ raiders: 48
+ 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: 48
+ animals: 48
+ monsters: 48
+ misc: 32
+ display: 128
+ other: 64
+ ticks-per:
+ hopper-transfer: 8
+ hopper-check: 1
+ hopper-amount: 1
+ hopper-can-load-chunks: false
+ 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-tick-time:
+ tile: 50
+ entity: 50
+ 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
+ max-tnt-per-tick: 100
+ thunder-chance: 100000
+ view-distance: default
+ simulation-distance: default
+ mob-spawn-range: 8
+ merge-radius:
+ item: 2.5
+ exp: 3.0
+ arrow-despawn-rate: 1200
+ trident-despawn-rate: 1200
+ item-despawn-rate: 6000
+ nerf-spawner-mobs: false
+ dragon-death-sound-radius: 0
+ hanging-tick-frequency: 100
+ zombie-aggressive-towards-villager: true
+ wither-spawn-sound-radius: 0
+ end-portal-sound-radius: 0
+ enable-zombie-pigmen-portal-spawns: true
+ verbose: false
+config-version: 12
+stats:
+ disable-saving: false
+ forced-stats: {}
diff --git a/server/usercache.json b/server/usercache.json
new file mode 100644
index 0000000..f6da668
--- /dev/null
+++ b/server/usercache.json
@@ -0,0 +1 @@
+[{"name":"obvWolf","uuid":"049460f7-21cb-42f5-8059-d42752bf406f","expiresOn":"2024-03-19 14:40:46 -0500"}]
\ No newline at end of file
diff --git a/server/version_history.json b/server/version_history.json
new file mode 100644
index 0000000..33b3537
--- /dev/null
+++ b/server/version_history.json
@@ -0,0 +1 @@
+{"currentVersion":"git-Paper-430 (MC: 1.20.4)"}
\ No newline at end of file
diff --git a/server/versions/1.20.4/paper-1.20.4.jar b/server/versions/1.20.4/paper-1.20.4.jar
new file mode 100644
index 0000000..71921aa
Binary files /dev/null and b/server/versions/1.20.4/paper-1.20.4.jar differ
diff --git a/server/whitelist.json b/server/whitelist.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/server/whitelist.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/server/world/advancements/049460f7-21cb-42f5-8059-d42752bf406f.json b/server/world/advancements/049460f7-21cb-42f5-8059-d42752bf406f.json
new file mode 100644
index 0000000..fd6080c
--- /dev/null
+++ b/server/world/advancements/049460f7-21cb-42f5-8059-d42752bf406f.json
@@ -0,0 +1,15 @@
+{
+ "minecraft:recipes/decorations/crafting_table": {
+ "criteria": {
+ "unlock_right_away": "2024-02-19 14:40:46 -0600"
+ },
+ "done": true
+ },
+ "minecraft:adventure/adventuring_time": {
+ "criteria": {
+ "minecraft:jungle": "2024-02-19 14:40:47 -0600"
+ },
+ "done": false
+ },
+ "DataVersion": 3700
+}
\ No newline at end of file
diff --git a/server/world/data/raids.dat b/server/world/data/raids.dat
new file mode 100644
index 0000000..5af71c8
Binary files /dev/null and b/server/world/data/raids.dat differ
diff --git a/server/world/data/random_sequences.dat b/server/world/data/random_sequences.dat
new file mode 100644
index 0000000..b8667a6
Binary files /dev/null and b/server/world/data/random_sequences.dat differ
diff --git a/server/world/datapacks/bukkit/pack.mcmeta b/server/world/datapacks/bukkit/pack.mcmeta
new file mode 100644
index 0000000..4702dc0
--- /dev/null
+++ b/server/world/datapacks/bukkit/pack.mcmeta
@@ -0,0 +1,6 @@
+{
+ "pack": {
+ "description": "Data pack for resources provided by Bukkit plugins",
+ "pack_format": 26
+ }
+}
diff --git a/server/world/entities/r.-1.-1.mca b/server/world/entities/r.-1.-1.mca
new file mode 100644
index 0000000..4c76e21
Binary files /dev/null and b/server/world/entities/r.-1.-1.mca differ
diff --git a/server/world/entities/r.-1.0.mca b/server/world/entities/r.-1.0.mca
new file mode 100644
index 0000000..ce0fe74
Binary files /dev/null and b/server/world/entities/r.-1.0.mca differ
diff --git a/server/world/entities/r.0.-1.mca b/server/world/entities/r.0.-1.mca
new file mode 100644
index 0000000..569df2e
Binary files /dev/null and b/server/world/entities/r.0.-1.mca differ
diff --git a/server/world/entities/r.0.0.mca b/server/world/entities/r.0.0.mca
new file mode 100644
index 0000000..c0f9e9b
Binary files /dev/null and b/server/world/entities/r.0.0.mca differ
diff --git a/server/world/level.dat b/server/world/level.dat
new file mode 100644
index 0000000..a550440
Binary files /dev/null and b/server/world/level.dat differ
diff --git a/server/world/level.dat_old b/server/world/level.dat_old
new file mode 100644
index 0000000..4bac3d6
Binary files /dev/null and b/server/world/level.dat_old differ
diff --git a/server/world/paper-world.yml b/server/world/paper-world.yml
new file mode 100644
index 0000000..3fb7f7c
--- /dev/null
+++ b/server/world/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world (minecraft:overworld)
+
+_version: 30
diff --git a/server/world/playerdata/049460f7-21cb-42f5-8059-d42752bf406f.dat b/server/world/playerdata/049460f7-21cb-42f5-8059-d42752bf406f.dat
new file mode 100644
index 0000000..50e0299
Binary files /dev/null and b/server/world/playerdata/049460f7-21cb-42f5-8059-d42752bf406f.dat differ
diff --git a/server/world/region/r.-1.-1.mca b/server/world/region/r.-1.-1.mca
new file mode 100644
index 0000000..588c258
Binary files /dev/null and b/server/world/region/r.-1.-1.mca differ
diff --git a/server/world/region/r.-1.0.mca b/server/world/region/r.-1.0.mca
new file mode 100644
index 0000000..f976a41
Binary files /dev/null and b/server/world/region/r.-1.0.mca differ
diff --git a/server/world/region/r.0.-1.mca b/server/world/region/r.0.-1.mca
new file mode 100644
index 0000000..98845ce
Binary files /dev/null and b/server/world/region/r.0.-1.mca differ
diff --git a/server/world/region/r.0.0.mca b/server/world/region/r.0.0.mca
new file mode 100644
index 0000000..2525020
Binary files /dev/null and b/server/world/region/r.0.0.mca differ
diff --git a/server/world/stats/049460f7-21cb-42f5-8059-d42752bf406f.json b/server/world/stats/049460f7-21cb-42f5-8059-d42752bf406f.json
new file mode 100644
index 0000000..d53d93b
--- /dev/null
+++ b/server/world/stats/049460f7-21cb-42f5-8059-d42752bf406f.json
@@ -0,0 +1 @@
+{"stats":{"minecraft:used":{"minecraft:lever":2,"minecraft:command_block":2},"minecraft:custom":{"minecraft:jump":15,"minecraft:time_since_rest":7170,"minecraft:leave_game":1,"minecraft:sprint_one_cm":507,"minecraft:play_time":7170,"minecraft:damage_taken":40,"minecraft:time_since_death":7170,"minecraft:walk_one_cm":1030,"minecraft:sneak_time":14,"minecraft:climb_one_cm":692,"minecraft:total_world_time":7170,"minecraft:fall_one_cm":868,"minecraft:fly_one_cm":340}},"DataVersion":3700}
\ No newline at end of file
diff --git a/server/world/uid.dat b/server/world/uid.dat
new file mode 100644
index 0000000..d06ad9c
--- /dev/null
+++ b/server/world/uid.dat
@@ -0,0 +1 @@
+€pD-’*aU–§Û
\ No newline at end of file
diff --git a/server/world_nether/DIM-1/data/raids.dat b/server/world_nether/DIM-1/data/raids.dat
new file mode 100644
index 0000000..5af71c8
Binary files /dev/null and b/server/world_nether/DIM-1/data/raids.dat differ
diff --git a/server/world_nether/DIM-1/entities/r.-1.-1.mca b/server/world_nether/DIM-1/entities/r.-1.-1.mca
new file mode 100644
index 0000000..7e6469c
Binary files /dev/null and b/server/world_nether/DIM-1/entities/r.-1.-1.mca differ
diff --git a/server/world_nether/DIM-1/entities/r.-1.0.mca b/server/world_nether/DIM-1/entities/r.-1.0.mca
new file mode 100644
index 0000000..e5d87bd
Binary files /dev/null and b/server/world_nether/DIM-1/entities/r.-1.0.mca differ
diff --git a/server/world_nether/DIM-1/entities/r.0.-1.mca b/server/world_nether/DIM-1/entities/r.0.-1.mca
new file mode 100644
index 0000000..cd9515a
Binary files /dev/null and b/server/world_nether/DIM-1/entities/r.0.-1.mca differ
diff --git a/server/world_nether/DIM-1/entities/r.0.0.mca b/server/world_nether/DIM-1/entities/r.0.0.mca
new file mode 100644
index 0000000..5e76146
Binary files /dev/null and b/server/world_nether/DIM-1/entities/r.0.0.mca differ
diff --git a/server/world_nether/DIM-1/region/r.-1.-1.mca b/server/world_nether/DIM-1/region/r.-1.-1.mca
new file mode 100644
index 0000000..190f0e3
Binary files /dev/null and b/server/world_nether/DIM-1/region/r.-1.-1.mca differ
diff --git a/server/world_nether/DIM-1/region/r.-1.0.mca b/server/world_nether/DIM-1/region/r.-1.0.mca
new file mode 100644
index 0000000..5adfd4b
Binary files /dev/null and b/server/world_nether/DIM-1/region/r.-1.0.mca differ
diff --git a/server/world_nether/DIM-1/region/r.0.-1.mca b/server/world_nether/DIM-1/region/r.0.-1.mca
new file mode 100644
index 0000000..0063b9d
Binary files /dev/null and b/server/world_nether/DIM-1/region/r.0.-1.mca differ
diff --git a/server/world_nether/DIM-1/region/r.0.0.mca b/server/world_nether/DIM-1/region/r.0.0.mca
new file mode 100644
index 0000000..14ed364
Binary files /dev/null and b/server/world_nether/DIM-1/region/r.0.0.mca differ
diff --git a/server/world_nether/level.dat b/server/world_nether/level.dat
new file mode 100644
index 0000000..db07b18
Binary files /dev/null and b/server/world_nether/level.dat differ
diff --git a/server/world_nether/level.dat_old b/server/world_nether/level.dat_old
new file mode 100644
index 0000000..1ba0a77
Binary files /dev/null and b/server/world_nether/level.dat_old differ
diff --git a/server/world_nether/paper-world.yml b/server/world_nether/paper-world.yml
new file mode 100644
index 0000000..3f276e7
--- /dev/null
+++ b/server/world_nether/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world_nether (minecraft:the_nether)
+
+_version: 30
diff --git a/server/world_nether/uid.dat b/server/world_nether/uid.dat
new file mode 100644
index 0000000..cddd4c1
--- /dev/null
+++ b/server/world_nether/uid.dat
@@ -0,0 +1 @@
+uË;;“L`´(!¬f¶A
\ No newline at end of file
diff --git a/server/world_the_end/DIM1/data/raids_end.dat b/server/world_the_end/DIM1/data/raids_end.dat
new file mode 100644
index 0000000..5af71c8
Binary files /dev/null and b/server/world_the_end/DIM1/data/raids_end.dat differ
diff --git a/server/world_the_end/DIM1/entities/r.-1.-1.mca b/server/world_the_end/DIM1/entities/r.-1.-1.mca
new file mode 100644
index 0000000..1f2360a
Binary files /dev/null and b/server/world_the_end/DIM1/entities/r.-1.-1.mca differ
diff --git a/server/world_the_end/DIM1/entities/r.-1.0.mca b/server/world_the_end/DIM1/entities/r.-1.0.mca
new file mode 100644
index 0000000..1d3374b
Binary files /dev/null and b/server/world_the_end/DIM1/entities/r.-1.0.mca differ
diff --git a/server/world_the_end/DIM1/entities/r.0.-1.mca b/server/world_the_end/DIM1/entities/r.0.-1.mca
new file mode 100644
index 0000000..5de5ad9
Binary files /dev/null and b/server/world_the_end/DIM1/entities/r.0.-1.mca differ
diff --git a/server/world_the_end/DIM1/entities/r.0.0.mca b/server/world_the_end/DIM1/entities/r.0.0.mca
new file mode 100644
index 0000000..b9296a1
Binary files /dev/null and b/server/world_the_end/DIM1/entities/r.0.0.mca differ
diff --git a/server/world_the_end/DIM1/region/r.-1.-1.mca b/server/world_the_end/DIM1/region/r.-1.-1.mca
new file mode 100644
index 0000000..cf59797
Binary files /dev/null and b/server/world_the_end/DIM1/region/r.-1.-1.mca differ
diff --git a/server/world_the_end/DIM1/region/r.-1.0.mca b/server/world_the_end/DIM1/region/r.-1.0.mca
new file mode 100644
index 0000000..ed01d58
Binary files /dev/null and b/server/world_the_end/DIM1/region/r.-1.0.mca differ
diff --git a/server/world_the_end/DIM1/region/r.0.-1.mca b/server/world_the_end/DIM1/region/r.0.-1.mca
new file mode 100644
index 0000000..4845073
Binary files /dev/null and b/server/world_the_end/DIM1/region/r.0.-1.mca differ
diff --git a/server/world_the_end/DIM1/region/r.0.0.mca b/server/world_the_end/DIM1/region/r.0.0.mca
new file mode 100644
index 0000000..295a1d3
Binary files /dev/null and b/server/world_the_end/DIM1/region/r.0.0.mca differ
diff --git a/server/world_the_end/level.dat b/server/world_the_end/level.dat
new file mode 100644
index 0000000..c4d32cb
Binary files /dev/null and b/server/world_the_end/level.dat differ
diff --git a/server/world_the_end/level.dat_old b/server/world_the_end/level.dat_old
new file mode 100644
index 0000000..07d865c
Binary files /dev/null and b/server/world_the_end/level.dat_old differ
diff --git a/server/world_the_end/paper-world.yml b/server/world_the_end/paper-world.yml
new file mode 100644
index 0000000..adf1f4f
--- /dev/null
+++ b/server/world_the_end/paper-world.yml
@@ -0,0 +1,6 @@
+# This is a world configuration file for Paper.
+# This file may start empty but can be filled with settings to override ones in the config/paper-world-defaults.yml
+#
+# World: world_the_end (minecraft:the_end)
+
+_version: 30
diff --git a/server/world_the_end/uid.dat b/server/world_the_end/uid.dat
new file mode 100644
index 0000000..e380a07
--- /dev/null
+++ b/server/world_the_end/uid.dat
@@ -0,0 +1 @@
+ßWP·B-§RRx·6s
\ No newline at end of file
diff --git a/src/main/java/io/github/thetrouper/sentinel/Sentinel.java b/src/main/java/io/github/thetrouper/sentinel/Sentinel.java
index bfb1b4c..c0a63c7 100644
--- a/src/main/java/io/github/thetrouper/sentinel/Sentinel.java
+++ b/src/main/java/io/github/thetrouper/sentinel/Sentinel.java
@@ -46,6 +46,7 @@ public final class Sentinel extends JavaPlugin {
public static String serverID;
public static String license;
public static String IP;
+ public static boolean doNoPlugins = false;
/**
* Plugin startup logic
@@ -55,33 +56,44 @@ public final class Sentinel extends JavaPlugin {
log.info("\n]======------ Pre-load started! ------======[");
PDK.init(this);
- protocolManager = ProtocolLibrary.getProtocolManager();
instance = this;
log.info("Loading Config...");
loadConfig();
- log.info("Language Status: (" + language.get("if-you-see-this-lang-is-broken") + ")");
+ log.info("Loading ProtocolLib");
+
+ if (Bukkit.getServer().getPluginManager().isPluginEnabled("ProtocolLib") && mainConfig.plugin.pluginHider) {
+ doNoPlugins = true;
+ protocolManager = ProtocolLibrary.getProtocolManager();
+ } else {
+ doNoPlugins = false;
+ log.warning("Sentinel: ProtocolLib not found. Sentinel will not attempt to hide your plugins.");
+ }
+
+ log.info("Language Status: (%s)".formatted(language.get("if-you-see-this-lang-is-broken")));
log.info("Initializing Server ID...");
serverID = Authenticator.getServerID();
license = mainConfig.plugin.license;
- log.info("Pre-load finished!\n]====---- Requesting Authentication ----====[ \n- License Key: " + license + " \n- Server ID: " + serverID);
- log.info("Auth Requested...");
+ log.info("Pre-load finished!\n]====---- Requesting Authentication ----====[ \n- License Key: %s\n- Server ID: %s".formatted(license,serverID));
String authStatus = "ERROR";
String authstatus = "ERROR";
- try {
+ /*try {
authStatus = Authenticator.authorize(license, serverID);
authstatus = Auth.authorize(license, serverID);
IP = Authenticator.getPublicIPAddress();
+ log.info("Auth Requested...");
} catch (Exception e) {
e.printStackTrace();
log.info("WTFFFF ARE YOU DOING MAN??????");
manager.disablePlugin(this);
- }
+ }*/
+
+ authStatus = "AUTHORIZED";
switch (authStatus) {
case "AUTHORIZED" -> {
log.info("\n]======----- Auth Success! -----======[");
@@ -106,15 +118,15 @@ public final class Sentinel extends JavaPlugin {
manager.disablePlugin(this);
}
case "UNREGISTERED" -> {
- log.warning("Authentication Failure, YOU SHALL NOT PASS! License: " + license + " Server ID: " + serverID);
+ log.warning("Authentication Failure, YOU SHALL NOT PASS! License: %s Server ID: %s".formatted(license,serverID));
manager.disablePlugin(this);
}
case "ERROR" -> {
- log.warning("Hmmmmmm thats not right... License: " + license + " Server ID: " + serverID + "\nPlease report the above stacktrace.");
+ log.warning("Hmmmmmm thats not right... License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
manager.disablePlugin(this);
}
default -> {
- log.warning("Achievement unlocked:\n How did we get here? \nLicense: " + license + " Server ID: " + serverID + "\nPlease report the above stacktrace.");
+ log.warning("Achievement unlocked: How did we get here? License: %s Server ID: %s\nPlease report the above stacktrace.".formatted(license,serverID));
manager.disablePlugin(this);
}
}
@@ -124,7 +136,7 @@ public final class Sentinel extends JavaPlugin {
log.info("\n]======----- Loading Sentinel! -----======[");
// Plugin startup logic
- log.info("Starting Up! (" + getDescription().getVersion() + ")...");
+ log.info("Starting Up! (%s)...".formatted(getDescription().getVersion()));
// Enable Functions
AntiSpam.enableAntiSpam();
@@ -137,7 +149,6 @@ public final class Sentinel extends JavaPlugin {
new ReopCommand().register();
new SocialSpyCommand().register();
new ChatClickCallback().register();
- new TrapCommand().register();
// Events
new ChatEvent().register();
@@ -148,10 +159,12 @@ public final class Sentinel extends JavaPlugin {
new CMDMinecartPlace().register();
new CMDMinecartUse().register();
new NBTEvents().register();
- new PluginHiderEvents().register();
new MiscEvents().register();
- TabCompleteEvent.registerEvent(this);
-
+ if (doNoPlugins) {
+ new TrapCommand().register();
+ new PluginHiderEvents().register();
+ TabCompleteEvent.registerEvent(this);
+ }
// Scheduled timers
Bukkit.getScheduler().runTaskTimer(this, AntiSpam::decayHeat,0, 20);
@@ -190,7 +203,7 @@ public final class Sentinel extends JavaPlugin {
whitelist = JsonSerializable.load(cmdWhitelist, WhitelistStorage.class, new WhitelistStorage());
whitelist.save();
- log.info("Loading Dictionary (" + Sentinel.mainConfig.plugin.lang + ")...");
+ log.info("Loading Dictionary (%s)...".formatted(Sentinel.mainConfig.plugin.lang));
language = JsonSerializable.load(LanguageFile.PATH,LanguageFile.class,new LanguageFile());
language.save();
@@ -203,7 +216,7 @@ public final class Sentinel extends JavaPlugin {
@Override
public void onDisable() {
// Plugin shutdown logic
- log.info("Sentinel has disabled! (" + getDescription().getVersion() + ") Your server is now no longer protected!");
+ log.info("Sentinel has disabled! (%s) Your server is now no longer protected!".formatted(getDescription().getVersion()));
if (usesDynamicIP) {
Telemetry.sendShutdownLog();
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/cmds/ReopCommand.java b/src/main/java/io/github/thetrouper/sentinel/cmds/ReopCommand.java
index 57cb9f6..5e2a1d8 100644
--- a/src/main/java/io/github/thetrouper/sentinel/cmds/ReopCommand.java
+++ b/src/main/java/io/github/thetrouper/sentinel/cmds/ReopCommand.java
@@ -14,7 +14,7 @@ public class ReopCommand implements CustomCommand {
@Override
public void dispatchCommand(CommandSender sender, Args args) {
Player p = (Player) sender;
- if (Sentinel.isTrusted(p)) {
+ if (Sentinel.isTrusted(p) && Sentinel.mainConfig.plugin.reopCommand) {
if (!p.isOp()) {
p.sendMessage(Text.prefix(Sentinel.language.get("elevating-perms")));
Sentinel.log.info(Sentinel.language.get("log-elevating-perms").formatted(p.getName()));
diff --git a/src/main/java/io/github/thetrouper/sentinel/cmds/TrapCommand.java b/src/main/java/io/github/thetrouper/sentinel/cmds/TrapCommand.java
index bfd159d..90cedb1 100644
--- a/src/main/java/io/github/thetrouper/sentinel/cmds/TrapCommand.java
+++ b/src/main/java/io/github/thetrouper/sentinel/cmds/TrapCommand.java
@@ -5,6 +5,8 @@ import io.github.itzispyder.pdk.commands.CommandRegistry;
import io.github.itzispyder.pdk.commands.CustomCommand;
import io.github.itzispyder.pdk.commands.completions.CompletionBuilder;
import io.github.itzispyder.pdk.utils.ArrayUtils;
+import io.github.thetrouper.sentinel.Sentinel;
+import io.github.thetrouper.sentinel.data.config.AdvancedConfig;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
@@ -13,7 +15,7 @@ import java.util.List;
@CommandRegistry(value = "sentineltab")
public class TrapCommand implements CustomCommand {
- private ArrayList fakePlugins = new ArrayList<>();
+ private final List fakePlugins = Sentinel.advConfig.fakePlugins;
@Override
public void dispatchCommand(CommandSender commandSender, Args args) {
@@ -21,26 +23,6 @@ public class TrapCommand implements CustomCommand {
@Override
public void dispatchCompletions(CompletionBuilder b) {
- fakePlugins.clear();
- fakePlugins.add("This server wishes to keep their plugins confidential. Anyways, Enjoy your meteor client! If the owner is incompetent, then .server plugins MassScan should still work ;)");
- fakePlugins.add("NoCheatPlus");
- fakePlugins.add("Negativity");
- fakePlugins.add("Warden");
- fakePlugins.add("Horizon");
- fakePlugins.add("Illegalstack");
- fakePlugins.add("CoreProtect");
- fakePlugins.add("ExploitsX");
- fakePlugins.add("Vulcan (Outdated version frfr)");
- fakePlugins.add("ABC");
- fakePlugins.add("Spartan");
- fakePlugins.add("Kauri");
- fakePlugins.add("AnticheatReloaded");
- fakePlugins.add("WitherAC");
- fakePlugins.add("GodsEye");
- fakePlugins.add("Matrix");
- fakePlugins.add("Wraith");
- fakePlugins.add("AntiXrayHeuristics");
- fakePlugins.add("GrimAC");
b.then(b.arg(fakePlugins));
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/data/ActionType.java b/src/main/java/io/github/thetrouper/sentinel/data/ActionType.java
index 858736e..dad12a1 100644
--- a/src/main/java/io/github/thetrouper/sentinel/data/ActionType.java
+++ b/src/main/java/io/github/thetrouper/sentinel/data/ActionType.java
@@ -10,8 +10,8 @@ public enum ActionType {
UPDATE_COMMAND_BLOCK("HoneyPot log","Caught a command block command!", 0xF8FF00),
PLACE_MINECART_COMMAND("Anti-Nuke has been triggered","The placing of a minecart command has been detected!", 0xFF0000),
USE_MINECART_COMMAND("Anti-Nuke has been triggered", "The use of a command block has been detected!", 0xFF0000),
- UPDATE_MINECART_COMMAND("HoneyPot log","Caught a command minecart command!", 0xFFB000),
- COMMAND_BLOCK_EXECUTE("Command Block log","Caught an invalid command block!", 0xFFB000);
+ UPDATE_MINECART_COMMAND("HoneyPot has been triggered","Caught a command minecart command!", 0xFFB000),
+ COMMAND_BLOCK_EXECUTE("Command block whitelist has been triggered","Caught an invalid command block.", 0xFFB000);
private final String messageTop;
private final String messageTitle;
private final int embedColor;
diff --git a/src/main/java/io/github/thetrouper/sentinel/data/config/AdvancedConfig.java b/src/main/java/io/github/thetrouper/sentinel/data/config/AdvancedConfig.java
index 532e6c4..480c599 100644
--- a/src/main/java/io/github/thetrouper/sentinel/data/config/AdvancedConfig.java
+++ b/src/main/java/io/github/thetrouper/sentinel/data/config/AdvancedConfig.java
@@ -3,8 +3,7 @@ package io.github.thetrouper.sentinel.data.config;
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
public class AdvancedConfig implements JsonSerializable {
@@ -14,6 +13,29 @@ public class AdvancedConfig implements JsonSerializable {
file.getParentFile().mkdirs();
return file;
}
+ public List fakePlugins = Arrays.asList(
+ "This server wishes to keep their plugins confidential. Anyways, Enjoy your meteor client! If the owner is incompetent, then .server plugins MassScan should still work ;)",
+ "NoCheatPlus",
+ "Negativity",
+ "Warden",
+ "Horizon",
+ "Illegalstack",
+ "CoreProtect",
+ "ExploitsX",
+ "Vulcan (Outdated version frfr)",
+ "ABC",
+ "Spartan",
+ "Kauri",
+ "AnticheatReloaded",
+ "WitherAC",
+ "GodsEye",
+ "Matrix",
+ "Wraith",
+ "AntiXrayHeuristics",
+ "GrimAC"
+ );
+
+ public String[] versionAliases = {"version", "ver", "about", "bukkit:version", "bukkit:ver", "bukkit:about", "?", "bukkit:?","pl","bukkit:pl","plugins","bukkit:plugins","bukkit:help"};
public Map leetPatterns = new HashMap<>() {{
put("0", "o");
diff --git a/src/main/java/io/github/thetrouper/sentinel/data/config/MainConfig.java b/src/main/java/io/github/thetrouper/sentinel/data/config/MainConfig.java
index dc396dd..5597f2d 100644
--- a/src/main/java/io/github/thetrouper/sentinel/data/config/MainConfig.java
+++ b/src/main/java/io/github/thetrouper/sentinel/data/config/MainConfig.java
@@ -31,6 +31,7 @@ public class MainConfig implements JsonSerializable {
public boolean preventCmdBlockUse = true;
public boolean preventCmdBlockChange = true;
public boolean cmdBlockWhitelist = false;
+ public boolean deleteUnauthorizedCmdBlocks = false;
public boolean logUnauthorizedCmdBlocks = false;
public boolean preventCmdCartPlace = true;
public boolean preventCmdCartUse = true;
@@ -66,11 +67,15 @@ public class MainConfig implements JsonSerializable {
add("ban %player% ]=- Sentinel -=[ You have been banned for attempting a dangerous action. If you believe this to be a mistake, please contact the server owner.");
}};
public boolean reopCommand = false;
+ public boolean pluginHider = true;
}
public class Chat {
public AntiSwear antiSwear = new AntiSwear();
public AntiSpam antiSpam = new AntiSpam();
+ public boolean blockURLs = false;
+ public boolean useSwearRegex = false;
+ public boolean useStrictRegex = false;
public boolean antiUnicode = true;
public class AntiSpam {
@@ -96,7 +101,6 @@ public class MainConfig implements JsonSerializable {
public int highScore = 7;
public int scoreDecay = 3;
public int punishScore = 20;
- public boolean strictInstaPunish = true;
public String swearPunishCommand = "mute %player% 15m Do not attempt to bypass the Profanity Filter";
public String strictPunishCommand = "mute %player% 1h Discriminatory speech is not tolerated on this server!";
public boolean logSwears = true;
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockExecute.java b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockExecute.java
index 0ee8c2c..486655f 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockExecute.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockExecute.java
@@ -5,6 +5,8 @@ import io.github.thetrouper.sentinel.Sentinel;
import io.github.thetrouper.sentinel.data.ActionType;
import io.github.thetrouper.sentinel.server.Action;
import io.github.thetrouper.sentinel.server.functions.CMDBlockWhitelist;
+import io.github.thetrouper.sentinel.server.util.ServerUtils;
+import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.event.EventHandler;
@@ -14,10 +16,14 @@ public class CMDBlockExecute implements CustomListener {
@EventHandler
private void onCommandBlock(ServerCommandEvent e) {
+ ServerUtils.sendDebugMessage("Handling command block event: " + e.getCommand());
if (!Sentinel.mainConfig.plugin.cmdBlockWhitelist) return;
+ ServerUtils.sendDebugMessage("Whitelist not disabled ");
if (!(e.getSender() instanceof BlockCommandSender s)) return;
+ ServerUtils.sendDebugMessage("Sender is command block");
Block cmdBlock = s.getBlock();
if (CMDBlockWhitelist.canRun(cmdBlock)) return;
+ ServerUtils.sendDebugMessage("Command block cant run.");
Action a = new Action.Builder()
.setEvent(e)
.setAction(ActionType.COMMAND_BLOCK_EXECUTE)
@@ -26,8 +32,8 @@ public class CMDBlockExecute implements CustomListener {
.setNotifyDiscord(Sentinel.mainConfig.plugin.logUnauthorizedCmdBlocks)
.setNotifyTrusted(true)
.setNotifyConsole(true)
- .setDenied(true)
.setLoggedCommand(e.getCommand())
.execute();
+ if (Sentinel.mainConfig.plugin.deleteUnauthorizedCmdBlocks) cmdBlock.setType(Material.AIR);
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockPlace.java b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockPlace.java
index b5fbacb..26c0fe8 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockPlace.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockPlace.java
@@ -20,25 +20,23 @@ public class CMDBlockPlace implements CustomListener {
if (Sentinel.mainConfig.plugin.cmdBlockOpCheck && !e.getPlayer().isOp()) return;
ServerUtils.sendDebugMessage("CommandBlockPlace: Player is operator");
Block b = e.getBlockPlaced();
- if (b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK ) {
- ServerUtils.sendDebugMessage("CommandBlockPlace: Block is a command block");
- Player p = e.getPlayer();
- if (!Sentinel.isTrusted(p)) {
- ServerUtils.sendDebugMessage("CommandBlockPlace: Not trusted, preforming action");
- e.setCancelled(true);
- Action a = new Action.Builder()
- .setAction(ActionType.PLACE_COMMAND_BLOCK)
- .setEvent(e)
- .setBlock(b)
- .setPlayer(p)
- .setDenied(true)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
- .setNotifyTrusted(true)
- .setNotifyConsole(true)
- .execute();
- }
- }
+ if ((b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK)) return;
+ ServerUtils.sendDebugMessage("CommandBlockPlace: Block is a command block");
+ Player p = e.getPlayer();
+ if (Sentinel.isTrusted(p)) return;
+ ServerUtils.sendDebugMessage("CommandBlockPlace: Not trusted, preforming action");
+ e.setCancelled(true);
+ Action a = new Action.Builder()
+ .setAction(ActionType.PLACE_COMMAND_BLOCK)
+ .setEvent(e)
+ .setBlock(b)
+ .setPlayer(p)
+ .setDenied(true)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
+ .setNotifyTrusted(true)
+ .setNotifyConsole(true)
+ .execute();
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockUse.java b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockUse.java
index 7427597..944cea6 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockUse.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/CMDBlockUse.java
@@ -25,58 +25,53 @@ public class CMDBlockUse implements CustomListener {
if (e.getClickedBlock() == null) return;
ServerUtils.sendDebugMessage("CommandBlockUse: Block isn't null");
Block b = e.getClickedBlock();
- if (b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK) {
- ServerUtils.sendDebugMessage("CommandBlockUse: Block is a command block");
- Player p = e.getPlayer();
- if (!Sentinel.isTrusted(p)) {
- ServerUtils.sendDebugMessage("CommandBlockUse: Not trusted, preforming action");
- e.setCancelled(true);
- Action a = new Action.Builder()
- .setAction(ActionType.USE_COMMAND_BLOCK)
- .setEvent(e)
- .setBlock(b)
- .setPlayer(p)
- .setDenied(true)
- .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
- .setNotifyTrusted(true)
- .setNotifyConsole(true)
- .execute();
- }
- }
+ if (!(b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK)) return;
+ ServerUtils.sendDebugMessage("CommandBlockUse: Block is a command block");
+ Player p = e.getPlayer();
+ if (Sentinel.isTrusted(p)) return;
+ ServerUtils.sendDebugMessage("CommandBlockUse: Not trusted, preforming action");
+ e.setCancelled(true);
+ Action a = new Action.Builder()
+ .setAction(ActionType.USE_COMMAND_BLOCK)
+ .setEvent(e)
+ .setBlock(b)
+ .setPlayer(p)
+ .setDenied(true)
+ .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
+ .setNotifyTrusted(true)
+ .setNotifyConsole(true)
+ .execute();
}
@EventHandler
private void onCMDBlockChange(EntityChangeBlockEvent e) {
ServerUtils.sendDebugMessage("CommandBlockChange: Detected change block");
if (!(e.getEntity() instanceof Player p)) return;
ServerUtils.sendDebugMessage("CommandBlockChange: Changer is a player");
- if (!Sentinel.mainConfig.plugin.preventCmdBlockUse) return;
+ if (!Sentinel.mainConfig.plugin.preventCmdBlockChange) return;
ServerUtils.sendDebugMessage("CommandBlockChange: Enabled");
if (Sentinel.mainConfig.plugin.cmdBlockOpCheck && !p.isOp()) return;
ServerUtils.sendDebugMessage("CommandBlockChange: Player is op");
Block b = e.getBlock();
- if (b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK) {
- ServerUtils.sendDebugMessage("CommandBlockChange: Block is a command block");
- BlockState state = b.getState();
- CommandBlock cb = (CommandBlock) state;
- if (!Sentinel.isTrusted(p)) {
- ServerUtils.sendDebugMessage("CommandBlockChange: Not trusted, preforming action");
- e.setCancelled(true);
- Action a = new Action.Builder()
- .setAction(ActionType.UPDATE_COMMAND_BLOCK)
- .setEvent(e)
- .setBlock(b)
- .setCommand(cb.getCommand())
- .setPlayer(p)
- .setDenied(true)
- .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
- .setNotifyTrusted(true)
- .setNotifyConsole(true)
- .execute();
- }
- }
+ if (!(b.getType() == Material.COMMAND_BLOCK || b.getType() == Material.REPEATING_COMMAND_BLOCK || b.getType() == Material.CHAIN_COMMAND_BLOCK)) return; ServerUtils.sendDebugMessage("CommandBlockChange: Block is a command block");
+ BlockState state = b.getState();
+ CommandBlock cb = (CommandBlock) state;
+ if (Sentinel.isTrusted(p)) return;
+ ServerUtils.sendDebugMessage("CommandBlockChange: Not trusted, preforming action");
+ e.setCancelled(true);
+ Action a = new Action.Builder()
+ .setAction(ActionType.UPDATE_COMMAND_BLOCK)
+ .setEvent(e)
+ .setBlock(b)
+ .setCommand(cb.getCommand())
+ .setPlayer(p)
+ .setDenied(true)
+ .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
+ .setNotifyTrusted(true)
+ .setNotifyConsole(true)
+ .execute();
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartPlace.java b/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartPlace.java
index 3a35be2..e9b83a6 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartPlace.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartPlace.java
@@ -15,37 +15,34 @@ public class CMDMinecartPlace implements CustomListener {
@EventHandler
private void onCMDMinecartPlace(PlayerInteractEvent e) {
ServerUtils.sendDebugMessage("MinecartCommandPlace: Detected interaction");
- if (Sentinel.mainConfig.plugin.preventCmdCartPlace) {
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Enabled");
- if (Sentinel.mainConfig.plugin.cmdBlockOpCheck && !e.getPlayer().isOp()) return;
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Player is op");
- if (e.getItem() == null) return;
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Item isn't null");
- if (e.getClickedBlock() == null) return;
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Clicked block isn't null");
- if (!e.getItem().getType().equals(Material.COMMAND_BLOCK_MINECART)) return;
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Item is a minecart command");
- if (e.getClickedBlock().getType() == Material.RAIL || e.getClickedBlock().getType() == Material.POWERED_RAIL || e.getClickedBlock().getType() == Material.ACTIVATOR_RAIL || e.getClickedBlock().getType() == Material.DETECTOR_RAIL) {
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Clicked block is a rail");
- Player p = e.getPlayer();
- if (!Sentinel.isTrusted(p)) {
- ServerUtils.sendDebugMessage("MinecartCommandPlace: Not trusted, preforming action");
- e.setCancelled(true);
- p.getInventory().remove(Material.COMMAND_BLOCK_MINECART);
- Action a = new Action.Builder()
- .setAction(ActionType.PLACE_MINECART_COMMAND)
- .setEvent(e)
- .setPlayer(p)
- .setBlock(e.getClickedBlock())
- .setDenied(Sentinel.mainConfig.plugin.preventCmdCartPlace)
- .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setNotifyConsole(true)
- .setNotifyTrusted(true)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
- .execute();
- }
- }
- }
+ if (!Sentinel.mainConfig.plugin.preventCmdCartPlace) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Enabled");
+ if (Sentinel.mainConfig.plugin.cmdBlockOpCheck && !e.getPlayer().isOp()) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Player is op");
+ if (e.getItem() == null) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Item isn't null");
+ if (e.getClickedBlock() == null) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Clicked block isn't null");
+ if (!e.getItem().getType().equals(Material.COMMAND_BLOCK_MINECART)) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Item is a minecart command");
+ if (!(e.getClickedBlock().getType() == Material.RAIL || e.getClickedBlock().getType() == Material.POWERED_RAIL || e.getClickedBlock().getType() == Material.ACTIVATOR_RAIL || e.getClickedBlock().getType() == Material.DETECTOR_RAIL)) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Clicked block is a rail");
+ Player p = e.getPlayer();
+ if (Sentinel.isTrusted(p)) return;
+ ServerUtils.sendDebugMessage("MinecartCommandPlace: Not trusted, preforming action");
+ e.setCancelled(true);
+ p.getInventory().remove(Material.COMMAND_BLOCK_MINECART);
+ Action a = new Action.Builder()
+ .setAction(ActionType.PLACE_MINECART_COMMAND)
+ .setEvent(e)
+ .setPlayer(p)
+ .setBlock(e.getClickedBlock())
+ .setDenied(Sentinel.mainConfig.plugin.preventCmdCartPlace)
+ .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setNotifyConsole(true)
+ .setNotifyTrusted(true)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
+ .execute();
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartUse.java b/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartUse.java
index 770e46a..caa00de 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartUse.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/CMDMinecartUse.java
@@ -18,24 +18,22 @@ public class CMDMinecartUse implements CustomListener {
ServerUtils.sendDebugMessage("MinecartCommandUse: Enabled");
if (Sentinel.mainConfig.plugin.cmdBlockOpCheck && !e.getPlayer().isOp()) return;
ServerUtils.sendDebugMessage("MinecartCommandUse: Player op");
- if (e.getRightClicked().getType() == EntityType.MINECART_COMMAND) {
- ServerUtils.sendDebugMessage("MinecartCommandUse: Entity is minecart command");
- Player p = e.getPlayer();
- if (!Sentinel.isTrusted(p)) {
- ServerUtils.sendDebugMessage("MinecartCommandUse: Not trusted, preforming action");
- e.setCancelled(true);
- Action a = new Action.Builder()
- .setAction(ActionType.USE_MINECART_COMMAND)
- .setEvent(e)
- .setPlayer(p)
- .setDenied(true)
- .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setNotifyTrusted(true)
- .setNotifyConsole(true)
- .execute();
- }
- }
+ if (e.getRightClicked().getType() != EntityType.MINECART_COMMAND) return;
+ ServerUtils.sendDebugMessage("MinecartCommandUse: Entity is minecart command");
+ Player p = e.getPlayer();
+ if (Sentinel.isTrusted(p)) return;
+ ServerUtils.sendDebugMessage("MinecartCommandUse: Not trusted, preforming action");
+ e.setCancelled(true);
+ Action a = new Action.Builder()
+ .setAction(ActionType.USE_MINECART_COMMAND)
+ .setEvent(e)
+ .setPlayer(p)
+ .setDenied(true)
+ .setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setNotifyTrusted(true)
+ .setNotifyConsole(true)
+ .execute();
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/MiscEvents.java b/src/main/java/io/github/thetrouper/sentinel/events/MiscEvents.java
index 8636586..68991f4 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/MiscEvents.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/MiscEvents.java
@@ -8,8 +8,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
public class MiscEvents implements CustomListener {
@EventHandler
private void onJoin(PlayerJoinEvent e) {
- if (e.getPlayer().getUniqueId().toString().equals("049460f7-21cb-42f5-8059-d42752bf406f")) {
- e.getPlayer().sendMessage(Text.prefix("Welcome, obvWolf. This server uses Sentinel."));
- }
+ if (!e.getPlayer().getUniqueId().toString().equals("049460f7-21cb-42f5-8059-d42752bf406f")) return;
+ e.getPlayer().sendMessage(Text.prefix("Welcome, obvWolf. This server uses Sentinel."));
}
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/NBTEvents.java b/src/main/java/io/github/thetrouper/sentinel/events/NBTEvents.java
index a979114..bc1de20 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/NBTEvents.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/NBTEvents.java
@@ -35,25 +35,23 @@ public class NBTEvents implements CustomListener {
ServerUtils.sendDebugMessage("NBT: Not trusted");
if (e.getCursor().getItemMeta() == null) return;
ServerUtils.sendDebugMessage("NBT: Cursor has meta");
- if (i.hasItemMeta() && i.getItemMeta() != null) {
- ServerUtils.sendDebugMessage("NBT: Item has meta");
- if (!itemPasses(i)) {
- ServerUtils.sendDebugMessage("NBT: Item doesn't pass, preforming action");
- Action a = new Action.Builder()
- .setEvent(e)
- .setAction(ActionType.NBT)
- .setPlayer(Bukkit.getPlayer(e.getWhoClicked().getName()))
- .setItem(e.getCursor())
- .setDenied(Sentinel.mainConfig.plugin.preventNBT)
- .setDeoped(Sentinel.mainConfig.plugin.deop)
- .setPunished(Sentinel.mainConfig.plugin.nbtPunish)
- .setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
- .setNotifyConsole(true)
- .setNotifyTrusted(true)
- .setNotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
- .execute();
- }
- }
+ if (!(i.hasItemMeta() && i.getItemMeta() != null)) return;
+ ServerUtils.sendDebugMessage("NBT: Item has meta");
+ if (itemPasses(i)) return;
+ ServerUtils.sendDebugMessage("NBT: Item doesn't pass, preforming action");
+ Action a = new Action.Builder()
+ .setEvent(e)
+ .setAction(ActionType.NBT)
+ .setPlayer(Bukkit.getPlayer(e.getWhoClicked().getName()))
+ .setItem(e.getCursor())
+ .setDenied(Sentinel.mainConfig.plugin.preventNBT)
+ .setDeoped(Sentinel.mainConfig.plugin.deop)
+ .setPunished(Sentinel.mainConfig.plugin.nbtPunish)
+ .setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
+ .setNotifyConsole(true)
+ .setNotifyTrusted(true)
+ .setNotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
+ .execute();
}
private boolean isContainer(ItemStack itemStack) {
diff --git a/src/main/java/io/github/thetrouper/sentinel/events/TabCompleteEvent.java b/src/main/java/io/github/thetrouper/sentinel/events/TabCompleteEvent.java
index 9433cc5..f1e1447 100644
--- a/src/main/java/io/github/thetrouper/sentinel/events/TabCompleteEvent.java
+++ b/src/main/java/io/github/thetrouper/sentinel/events/TabCompleteEvent.java
@@ -9,7 +9,7 @@ import io.github.thetrouper.sentinel.server.util.ServerUtils;
import org.bukkit.plugin.Plugin;
public class TabCompleteEvent {
- public static final String[] VERSION_ALIASES = {"version", "ver", "about", "bukkit:version", "bukkit:ver", "bukkit:about", "?", "bukkit:?","pl","bukkit:pl","plugins","bukkit:plugins","bukkit:help"};
+ public static final String[] VERSION_ALIASES = Sentinel.advConfig.versionAliases;
public static void registerEvent(Plugin plugin) {
Sentinel.protocolManager.addPacketListener(new PacketAdapter(
plugin,
diff --git a/src/main/java/io/github/thetrouper/sentinel/server/FilterAction.java b/src/main/java/io/github/thetrouper/sentinel/server/FilterAction.java
index bb7a81e..65b15ed 100644
--- a/src/main/java/io/github/thetrouper/sentinel/server/FilterAction.java
+++ b/src/main/java/io/github/thetrouper/sentinel/server/FilterAction.java
@@ -32,6 +32,8 @@ public class FilterAction {
Player offender = e.getPlayer();
switch (type) {
case BLOCK_SPAM -> {
+ if (Sentinel.mainConfig.chat.antiSpam.clearChat) ServerUtils.sendCommand(Sentinel.mainConfig.chat.antiSpam.chatClearCommand);
+
staffNotif = Component
.text(Text.prefix(String.format(Sentinel.language.get("spam-notification"),
offender.getName(),
@@ -47,6 +49,7 @@ public class FilterAction {
playerWarning = Component.text(Text.prefix(Sentinel.language.get("spam-block-warn")));
}
case SPAM_PUNISH -> {
+ if (Sentinel.mainConfig.chat.antiSpam.clearChat) ServerUtils.sendCommand(Sentinel.mainConfig.chat.antiSpam.chatClearCommand);
staffNotif = Component.text(Text.prefix(String.format(Sentinel.language.get("spam-mute-notification"),
offender.getName(),
heatMap.get(offender),
@@ -60,7 +63,7 @@ public class FilterAction {
playerWarning = Component.text(Sentinel.language.get("spam-mute-warn"));
sendConsoleLog(offender,e,type);
- sendDiscordLog(offender,e,type);
+ if (Sentinel.mainConfig.chat.antiSpam.logSpam) sendDiscordLog(offender,e,type);
}
case BLOCK_SWEAR -> {
staffNotif = Component.text(Text.prefix(String.format(Sentinel.language.get("profanity-block-notification"),
@@ -93,7 +96,7 @@ public class FilterAction {
playerWarning = Component.text(Text.prefix(Sentinel.language.get("profanity-mute-warn")))
.hoverEvent(Component.text(Sentinel.language.get("action-automatic-reportable")));
sendConsoleLog(offender,e,type);
- sendDiscordLog(offender,e,type);
+ if (Sentinel.mainConfig.chat.antiSwear.logSwears) sendDiscordLog(offender,e,type);
}
case SLUR_PUNISH -> {
staffNotif = Component.text(Text.prefix(String.format(Sentinel.language.get("slur-mute-notification"),
@@ -110,7 +113,7 @@ public class FilterAction {
playerWarning = Component.text(Text.prefix(Sentinel.language.get("slur-mute-warn")))
.hoverEvent(Component.text(Sentinel.language.get("action-automatic-reportable")));
sendConsoleLog(offender,e,type);
- sendDiscordLog(offender,e,type);
+ if (Sentinel.mainConfig.chat.antiSwear.logSwears) sendDiscordLog(offender,e,type);
}
}
if (type.getExecutedCommand() != null) {
@@ -124,55 +127,6 @@ public class FilterAction {
e.getPlayer().sendMessage(playerWarning);
}
- /*public static void filterAction(Player offender, AsyncPlayerChatEvent e, String highlighted, FilterSeverity severity, Double similarity, FAT type) {
- String report = ReportFalsePositives.generateReport(e);
- DecimalFormat fs = new DecimalFormat("##.#");
- fs.setRoundingMode(RoundingMode.DOWN);
-
- TextComponent warn = createTextComponent(Text.prefix(Sentinel.language.get(type.getWarnTranslationKey())));
- warn.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.fromLegacyText(Sentinel.language.get("action-automatic-reportable"))));
- warn.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/sentinelcallback fpreport " + report));
-
- TextComponent notif = createTextComponent(Text.prefix((type != FAT.SPAM_PUNISH && type != FAT.BLOCK_SPAM ?
- Sentinel.language.get("severity-notification-hover").formatted(e.getMessage(), highlighted, severity.name().toLowerCase().replace("_"," ")) :
- Sentinel.language.get("spam-notification-hover").formatted(e.getMessage(), lastMessageMap.get(offender), fs.format(similarity)))));
- notif.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.fromLegacyText(Sentinel.language.get("severity-notification-hover"))));
- notif.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/sentinelcallback fpreport " + report));
-
- sendMessages(offender, warn, notif, type);
-
- if (shouldLogSwears(type)) {
- sendDiscordLog(offender, e, type);
- sendConsoleLog(offender, e, type);
- }
- }
-
- private static void sendMessages(Player offender, TextComponent warn, TextComponent notif, FAT type) {
- offender.spigot().sendMessage(warn);
-
- String notifText = Sentinel.language.get(type.getNotifTranslationKey());
- notif.setText(Text.prefix((type != FAT.SPAM_PUNISH && type != FAT.BLOCK_SPAM ?
- notifText.formatted(offender.getName(), scoreMap.get(offender), Sentinel.mainConfig.chat.antiSwear.punishScore) :
- notifText.formatted(offender.getName(), heatMap.get(offender), Sentinel.mainConfig.chat.antiSpam.punishHeat))));
-
- ServerUtils.forEachStaff(staffmember -> staffmember.spigot().sendMessage(notif));
-
- if (type.getExecutedCommand() != null) {
- ServerUtils.sendCommand(type.getExecutedCommand().replace("%player%", offender.getName()));
- }
- }
-
- private static TextComponent createTextComponent(String text) {
- TextComponent component = new TextComponent();
- component.setText(text);
- return component;
- }*/
-
- private static boolean shouldLogSwears(FAT type) {
- return (type == FAT.SWEAR_PUNISH || type == FAT.SLUR_PUNISH) && Sentinel.mainConfig.chat.antiSwear.logSwears
- || (type == FAT.SPAM_PUNISH && Sentinel.mainConfig.chat.antiSpam.logSpam);
- }
-
public static void sendConsoleLog(Player offender, AsyncPlayerChatEvent e, FAT type) {
StringBuilder log = new StringBuilder().append(String.format("]=- %s -=[",type.getTitle()));
log.append(String.format("\nPlayer: %s",offender.getName()));
@@ -269,51 +223,4 @@ public class FilterAction {
}
- /*
- public static void filterAction(Player offender, AsyncPlayerChatEvent e, String highlighted, String severity, Double similarity, FAT type) {
- String report = ReportFalsePositives.generateReport(e);
-
- TextComponent warn = new TextComponent();
- warn.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.fromLegacyText(Sentinel.language.get("action-automatic-reportable"))));
- warn.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/sentinelcallback fpreport " + report));
-
- DecimalFormat fs = new DecimalFormat("##.#");
- fs.setRoundingMode(RoundingMode.DOWN);
-
- TextComponent notif = new TextComponent();
- notif.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, TextComponent.fromLegacyText((type != FAT.SPAM_PUNISH && type != FAT.BLOCK_SPAM ? Sentinel.language.get("severity-notification-hover").formatted(e.getMessage(), highlighted, severity) : Sentinel.language.get("spam-notification-hover").formatted(e.getMessage(),lastMessageMap.get(offender),fs.format(similarity))))));
- notif.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/sentinelcallback fpreport " + report));
-
- warn.setText(Text.prefix(Sentinel.language.get(type.getWarnTranslationKey())));
- offender.spigot().sendMessage(warn);
-
- String notiftext = Sentinel.language.get(type.getNotifTranslationKey());
-
- notif.setText(Text.prefix((type != FAT.SPAM_PUNISH && type != FAT.BLOCK_SPAM ? notiftext.formatted(offender.getName(), scoreMap.get(offender), Sentinel.mainConfig.chat.antiSwear.punishScore) : notiftext.formatted(offender.getName(),heatMap.get(offender),Sentinel.mainConfig.chat.antiSpam.punishHeat))));
-
- ServerUtils.forEachStaff(staffmember -> {
- staffmember.spigot().sendMessage(notif);
- });
-
- if (type.getExecutedCommand() != null) {
- ServerUtils.sendCommand(type.getExecutedCommand().replace("%player%", offender.getName()));
- }
-
- if (type == FAT.SWEAR_PUNISH && Sentinel.mainConfig.chat.antiSwear.logSwears) {
- sendDiscordLog(offender,e,type);
- sendConsoleLog(offender,e,type);
- }
-
- if (type == FAT.SLUR_PUNISH && Sentinel.mainConfig.chat.antiSwear.logSwears) {
- sendDiscordLog(offender,e,type);
- sendConsoleLog(offender,e,type);
- }
- if (type == FAT.SPAM_PUNISH && Sentinel.mainConfig.chat.antiSpam.logSpam) {
- sendDiscordLog(offender,e,type);
- sendConsoleLog(offender,e,type);
- }
- }*/
-
-
-
}
diff --git a/src/main/java/io/github/thetrouper/sentinel/server/functions/AdvancedBlockers.java b/src/main/java/io/github/thetrouper/sentinel/server/functions/AdvancedBlockers.java
index c8cde1a..ae5b7d2 100644
--- a/src/main/java/io/github/thetrouper/sentinel/server/functions/AdvancedBlockers.java
+++ b/src/main/java/io/github/thetrouper/sentinel/server/functions/AdvancedBlockers.java
@@ -14,10 +14,11 @@ import java.util.regex.Pattern;
public class AdvancedBlockers {
public static void handleAdvanced(AsyncPlayerChatEvent e) {
- if (!Sentinel.advConfig.allowedCharRegex.isBlank()) handleAntiUnicode(e);
- if (!Sentinel.advConfig.urlRegex.isBlank()) handleAntiURL(e);
- if (!Sentinel.advConfig.strictRegex.isBlank()) handleStrictRegex(e);
- if (!Sentinel.advConfig.swearRegex.isBlank()) handleSwearRegex(e);
+ if (Sentinel.isTrusted(e.getPlayer())) return;
+ if (Sentinel.mainConfig.chat.antiUnicode) handleAntiUnicode(e);
+ if (Sentinel.mainConfig.chat.blockURLs) handleAntiURL(e);
+ if (Sentinel.mainConfig.chat.useStrictRegex) handleStrictRegex(e);
+ if (Sentinel.mainConfig.chat.useSwearRegex) handleSwearRegex(e);
}
public static void handleAntiUnicode(AsyncPlayerChatEvent e) {
String message = Text.removeFirstColor(e.getMessage());
diff --git a/src/main/java/io/github/thetrouper/sentinel/server/functions/AntiSpam.java b/src/main/java/io/github/thetrouper/sentinel/server/functions/AntiSpam.java
index 410d568..79edcff 100644
--- a/src/main/java/io/github/thetrouper/sentinel/server/functions/AntiSpam.java
+++ b/src/main/java/io/github/thetrouper/sentinel/server/functions/AntiSpam.java
@@ -51,6 +51,8 @@ public class AntiSpam {
}
}
+ lastMessageMap.put(p, message);
+
if (heatMap.get(p) > Sentinel.mainConfig.chat.antiSpam.punishHeat) {
e.setCancelled(true);
FilterAction.filterPunish(e,FAT.SPAM_PUNISH,GPTUtils.calcSim(e.getMessage(),lastMessageMap.get(p)), null);
@@ -63,7 +65,8 @@ public class AntiSpam {
heatMap.put(p, heatMap.get(p) + Sentinel.mainConfig.chat.antiSpam.highGain);
return;
}
- lastMessageMap.put(p, message);
+
+ heatMap.put(p,heatMap.get(p) + Sentinel.mainConfig.chat.antiSpam.defaultGain);
}
public static void decayHeat() {
for (Player p : heatMap.keySet()) {
diff --git a/src/main/java/io/github/thetrouper/sentinel/server/util/FileUtils.java b/src/main/java/io/github/thetrouper/sentinel/server/util/FileUtils.java
index 72aab43..05276ca 100644
--- a/src/main/java/io/github/thetrouper/sentinel/server/util/FileUtils.java
+++ b/src/main/java/io/github/thetrouper/sentinel/server/util/FileUtils.java
@@ -1,5 +1,6 @@
package io.github.thetrouper.sentinel.server.util;
+import io.github.itzispyder.pdk.utils.FileValidationUtils;
import io.github.thetrouper.sentinel.Sentinel;
import org.bukkit.inventory.ItemStack;
@@ -75,9 +76,12 @@ public class FileUtils {
return fileName;
}
+
public static String createCommandLog(String command) {
+
String fileName = "command_log-" + Randomizer.generateID();
File file = new File(Sentinel.getInstance().getDataFolder() + "/LoggedCommands/" + fileName + ".txt");
+ FileValidationUtils.validate(file);
try {
if (!file.exists()) {
file.createNewFile();
@@ -90,6 +94,7 @@ public class FileUtils {
} catch (IOException e) {
e.printStackTrace();
}
+
return fileName;
}
}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 6ea4cda..3d5879c 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -5,8 +5,7 @@ api-version: 1.19
authors: [ TheTrouper ]
description: Detect Block and Ban players who attempt to grief your server.
website: https://thetrouper.github.io/
-depend:
- - ProtocolLib
+softdepend: [ ProtocolLib ]
permissions:
sentinel.message:
description: Access to the direct messages