▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/StaffModeration
StaffModeration

StaffModeration

A premium moderation plugin that has all of your needs on discord and in game

Оцените первым
413
0
Все версииStaffModeration 1.6.12

StaffModeration 1.6.12

Release12.07.2026

Список изменений

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 (default UTC) in discord.yml if 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-commands in config.yml actually ran:
    • In-game first-time link message
    • Offline-then-join delayed reward message
    • /link Discord 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:
    • Name
    • Ping: %ms%ms (live, updates every tick while menu is open)
    • Location: %world%
    • LogsKick: <count> / Ban: <count> / Report: <pending>/<total>, last reporter
  • Added new target_punishment_history SQLite table (DatabaseManager.java) tracking lifetime kick/ban counts per player (survives unbans/expiries, unlike the old active-bans-only list)
  • Added ReportManager helpers: 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.yml under chat-code.reward-commands (key/money) and chat-code.win-message
  • Supports %player%, %reward%, %key_type%, %amount% placeholders
  • Falls back to original crate givekey / eco give commands 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() in DiscordManager.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 update to 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)

⚙️ Folia Compatibility

  • All new code uses plugin.getScheduler() (SchedulerAdapter) instead of raw Bukkit.getScheduler() where region-thread safety matters
  • Manage GUI live-refresh task uses runAtEntity/runAtEntityTimer pinned to the staff member's own thread
  • DB writes (incrementKickCount, incrementBanCount) use runAsync
  • 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

Загрузчики

Bukkit
Folia
Paper
Purpur

Версии игры

1.21–1.21.11

Загрузок

2

Дата публикации

12.07.2026

Загрузил

ID версии

Главная