Paradigm

Restart Scheduler, Custon Commands, Announcements and much more!

File Details

Paradigm 2.0.0 (forge 1.21.11)

  • R
  • Mar 14, 2026
  • 375.88 KB
  • 7
  • 1.21.11
  • Forge

File Name

Paradigm-forge-1.21.11-2.0.0.jar

Supported Versions

  • 1.21.11

Curse Maven Snippet

Forge

implementation "curse.maven:paradigm-1034237:7757071"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Added

  • Added persistConfig() helpers to config handlers for explicit runtime saves:
    • MainConfigHandler
    • AnnouncementsConfigHandler
    • ChatConfigHandler
    • MOTDConfigHandler
    • MentionConfigHandler
    • RestartConfigHandler
    • EmojiConfigHandler
    • CooldownConfigHandler
  • Added in-game update notifier support in UpdateChecker:
    • caches last update check result/config
    • exposes helper getters (isUpdateAvailable, getLastResult, getLastModrinthUrl)
    • registers player join/leave hooks to notify operators when an update is available.
  • Added cooldown flush on server stop (CommandManager.onServerStopping) to persist pending cooldown data.
  • Added WebEditor owner notifications for socket-based apply flow:
    • in-game colorized feedback for applied, unchanged, and error outcomes.

Changed

  • Reload permissions:
    • /paradigm reload now accepts either OP level or paradigm.reload permission.
    • /customcommandsreload now accepts either OP level or paradigm.reload permission.
  • Module state refresh flow:
    • Reload.refreshModuleStates(...) is now reusable/static and updates stored state map.
    • Help command triggers module-state refresh before rendering output.
  • Reload scheduling behavior:
    • re-schedules announcements/restart timers on relevant reload targets (main, announcements, restart, all).
  • Config path resolution is now platform-aware for custom command files:
    • CMConfig now resolves config/paradigm/commands from platform IConfig.
    • EditorApplier writes config/custom command files through platform config directory (with fallback).
  • CommonRuntime now initializes:
    • EmojiConfigHandler with debug logger/validator
    • CMConfig with platform config
    • in-game update notifier registration (UpdateChecker.registerInGameNotifier).
  • Services now uses injected WebEditorStore instance instead of always creating a new one.
  • Telemetry server ID persistence now uses MainConfigHandler.persistConfig() instead of manual file write logic.
  • Default announcements examples now use explicit clickable tags (<click:...>) for command suggestion/open URL links.
  • WebEditor command feedback (/paradigm editor, /paradigm apply) is now colorized and state-specific.
  • WebEditor socket CHANGE_RESPONSE payload now provides richer apply results:
    • state can be applied, unchanged, or error
    • includes appliedCount, unchangedCount, and message (and newSessionCode when available).
  • Restart countdown placeholders were expanded:
    • added {clock} / {hhmmss} (HH:mm:ss)
    • default restart bossbar message now uses {clock}.

Fixed

  • Announcements module now respects main.json -> announcementsEnable as a master switch.
  • Announcements.rescheduleAnnouncements() now avoids re-scheduling when module is disabled.
  • Restart.rescheduleNextRestart() now avoids re-scheduling when module is disabled.
  • CooldownConfigHandler persistence logic improved:
    • batched/time-based writes (SAVE_BATCH_SIZE, SAVE_INTERVAL_MS)
    • synchronized flush path for explicit and automatic saves
    • reduced allocations in getLastUsage(...) via Collections.emptyMap() fallback.
  • WebEditor socket owner message is now colorized ([WebEditor] Socket connected) instead of plain text.
  • WebEditor apply parsing now accepts both wrapped ConfigEntry objects and plain scalar/list values from payloads.
    • fixes errors like JsonSyntaxException ... BEGIN_OBJECT but was BOOLEAN (e.g. motd.iconEnabled).
  • Restart bossbar time now shows hours when relevant:
    • {minutes}:{seconds} is auto-expanded to full HH:mm:ss if remaining time is over 1 hour.