
StaffModeration
A premium moderation plugin that has all of your needs on discord and in game
Оцените первым
413
0
Список изменений
StaffModeration v1.6.12 (Folia) — Changelog
🌏 Link Log Timezone (IP Geolocation)
- Added
GeoTimeUtil.java— resolves a player's real-world timezone from their connecting IP via ip-api.com geolocation (no API key required) - Link/unlink/daily-reward Discord log embeds now show the player's own local time instead of a fixed UTC timestamp
- Falls back to
settings.link-log-timezone(defaultUTC) indiscord.ymlif lookup fails, player is offline, or IP is private/loopback - Results are cached per-IP for the server session to avoid repeated lookups
🔑 Fixed Mismatched Link Reward Messages
- Fixed 4 separate spots where Discord/in-game messages hardcoded "1x Crimson Key + 1x Prime Key" regardless of what
link-reward-commandsinconfig.ymlactually ran:- In-game first-time link message
- Offline-then-join delayed reward message
/linkDiscord DM embed ("Link Reward" field)- Link log embed ("Rewards Got" field)
- All 4 now read from a single shared source (
describeLinkRewards()), parsing the actual configured commands (key/eco style) into human-readable text — so the message always matches what was really dispatched
🎮 Manage Player GUI — New Lore Format
- Rebuilt the "Manage Player" head lore to show:
NamePing: %ms%ms(live, updates every tick while menu is open)Location: %world%Logs→Kick: <count>/Ban: <count>/Report: <pending>/<total>, last reporter
- Added new
target_punishment_historySQLite table (DatabaseManager.java) tracking lifetime kick/ban counts per player (survives unbans/expiries, unlike the old active-bans-only list) - Added
ReportManagerhelpers:getReportCountAgainst(),getPendingReportCountAgainst(),getLatestReporterAgainst() - Folia-safe: live refresh task runs on the staff member's own entity scheduler, auto-cancels on menu close/logout
💬 Chat Code — Configurable Rewards
- Chat Code winner reward commands and win message are now fully configurable in
discord.ymlunderchat-code.reward-commands(key/money) andchat-code.win-message - Supports
%player%,%reward%,%key_type%,%amount%placeholders - Falls back to original
crate givekey/eco givecommands if unset
🤖 AI — Live Server Backend Awareness
- AI can now report TPS (1m/5m/15m), MSPT, online player count, server region, and per-player latency (min/avg/max) when asked about lag/performance
- All numbers pulled live from Bukkit/Paper APIs — never estimated or guessed
- Added
buildPerformanceContext()inDiscordManager.java
🧭 Universal Command Routing
- All standalone commands (kick, ban, mute, freeze, vanish, link, gmc, gms, gma, gmsp, report, invsee, chatcode, announce, and more) are now also reachable via
/sm <command>and/staffmod <command> - Delegates to the exact same executor instances — zero logic duplication, permissions stay identical
- Fixed permission gating: delegated commands check their own permission node instead of being blocked by
staffmod.use - Tab-completion also delegates to each command's own completer (player names, durations, reasons, etc. all still work correctly through
/sm)
📁 Config Changes
discord.yml
- Added
settings.link-log-timezone(default"UTC") - Added
chat-code.reward-commands.key/chat-code.reward-commands.money/chat-code.win-message - Added AI system-context note documenting TPS/MSPT/latency/region lookup usage
config.yml
- Added
settings.modrinth-slug(default""— must be set for/sm updateto work)
🗄️ Database Changes
- New table:
target_punishment_history(uuid, player_name, kick_count, ban_count)- Auto-created on plugin startup via
createTables() - Populated automatically on every kick (
KickManager) and ban (BanManager)
- Auto-created on plugin startup via
⚙️ Folia Compatibility
- All new code uses
plugin.getScheduler()(SchedulerAdapter) instead of rawBukkit.getScheduler()where region-thread safety matters - Manage GUI live-refresh task uses
runAtEntity/runAtEntityTimerpinned to the staff member's own thread - DB writes (
incrementKickCount,incrementBanCount) userunAsync - Verified safe on both Folia and Paper/Spigot (SchedulerAdapter auto-detects and falls back correctly)
Файлы
StaffModeration-1.6.12.jar(33.94 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.6.12
Загрузчики
BukkitFoliaPaperPurpur
Версии игры
1.21–1.21.11
Загрузок
2
Дата публикации
12.07.2026
