Skip to content

Feature Plan: MOTD Management โ€‹

Summary โ€‹

  • Owner: Freddi
  • Status: Delivery
  • Target Release: Rolling
  • Backlog Entry: Projects/Uebliche/agendas.md โ–ธ ๐Ÿ“ฆ Backlog โ–ธ MOTD rotation polish

Goals โ€‹

  • Allow staff to curate Message-of-the-Day content displayed on the proxy and server list.
  • Provide tooling for live previews, scheduling, and localization of MOTDs.
  • Integrate MOTD updates into deployment workflows without restarts.

Scope โ€‹

  • Maintain /api/motds endpoints for retrieving and updating MOTD payloads.
  • Store MOTD entries with metadata for scheduling and A/B experimentation.
  • Connect the desktop editor (Motds.vue, motdStore.ts) to the backend APIs.
  • Bridge updates to Velocity and Minestom components via broadcast hooks.
  • Exclude in-client UI beyond standard server list messaging.

Implementation Outline โ€‹

  1. Backend controllers expose CRUD routes with validation and structure enforcement.
  2. Mongo persistence keeps history and active MOTD selection rules.
  3. Velocity and server modules subscribe to change events to refresh cached MOTDs.
  4. Desktop app provides editing UI, preview rendering, and publish workflows.
  5. Document scheduling rules and rotation logic here and inside the vault mirror.

Dependencies โ€‹

  • MongoDB collections for MOTD content and schedules.
  • Velocity proxy for surfacing MOTDs to Minecraft clients.
  • Desktop editor for authoring.

Risks & Mitigations โ€‹

  • Stale cache: ensure listeners invalidate proxy/server caches on update.
  • Formatting issues: add preview rendering matching Minecraft formatting codes.
  • Localization gaps: track required locales and enforce completeness.

Validation Plan โ€‹

  • Unit tests for MOTD serialization and formatting helpers.
  • Manual test: update MOTD in editor, confirm change on dev proxy server list.
  • Monitor change events through logging or future monitoring hooks.

Notes & Decisions โ€‹

  • Log major changes (e.g., new formatting rules) under agenda โš–๏ธ Decisions.
  • Keep this plan synchronized with /Projects/Uebliche/docs/gameserver/features/motd/plan.md.

References โ€‹

  • Backend MOTD feature under services/gameserver/src/main/java/net/uebliche/features/motd
  • Proxy integration in velocity/src/main/java/net/uebliche/velocity/WebServer.java
  • Desktop editor view app/dashboard/src/views/home/Motds.vue