Skip to content

Module Catalog

Catalog of all 24 Kreiscraft modules: purpose, dependencies, services, and events.


Summary Table

Module ID Package Status Depends On Commands Brief Description
admin de.kreiscraft.modules.admin stable none kreiscraftgamemode, item, skull, head, kreiscraftweather, spawnmob, ip, uuid, lastonline, ping, tps, statistic, sudo, kreiscrafthelp General admin utility commands (gamemode, item spawning, player info, TPS, weather).
anti-cheat de.kreiscraft.modules.anticheat stable none hackerlogs Detects Fabric/Forge clients via plugin messaging and persists hack reports from an external mod-checker.
api de.kreiscraft.modules.api stable none — Javalin HTTP/WebSocket server exposing player data, whitelist management, metrics, and a bidirectional chat bridge.
bedrock de.kreiscraft.modules.bedrock stable none bedrocklist Detects and tracks Bedrock Edition players by username prefix; allows adding them to the whitelist.
chat-format de.kreiscraft.modules.chatformat stable status — Renders chat messages with a configurable MiniMessage template that embeds status prefix/suffix.
clickthrough de.kreiscraft.modules.clickthrough stable settings-gui — Lets players open containers and Ender Chests through wall signs and filled item frames; toggled per-player via the settings GUI.
combat de.kreiscraft.modules.combat stable settings-gui combat Tags players as in combat on damage; optionally removes elytra while tagged.
effects de.kreiscraft.modules.effects stable none effects Lets players toggle and choose a personal particle trail emitted around them each tick.
firework de.kreiscraft.modules.firework stable none — Registers a custom-model-data firework rocket crafting recipe.
glow de.kreiscraft.modules.glow stable none glow Lets players toggle a persistent glow (Glowing effect) on themselves.
invsee de.kreiscraft.modules.invsee stable none invsee, enderchest Allows admins to view (and optionally edit) another player’s inventory or ender chest.
jail de.kreiscraft.modules.jail stable none jail, kerker Jails players at a configured jail location and restricts a configurable set of commands while jailed; /jail and /kerker also release already-jailed players.
plugin-hider de.kreiscraft.modules.pluginhider stable none pluginhider Hides non-allowlisted commands from tab-completion to obscure the full plugin list.
positions de.kreiscraft.modules.positions stable none pos Saves and retrieves named waypoints per player; includes a GUI browser and optional click-to-teleport.
reboot de.kreiscraft.modules.reboot stable none reboot, restart Schedules a graceful server restart with configurable countdown titles and chat warnings.
settings-gui de.kreiscraft.modules.settingsgui stable none settings Per-player settings GUI (clickthrough toggle, combat display mode selection).
sign-color de.kreiscraft.modules.signcolor stable none — Renders legacy & codes, Kreiscraft placeholders and safe MiniMessage in sign text and anvil renames for players with the appropriate permission.
spawn de.kreiscraft.modules.spawn stable none spawn, setspawn Manages the server spawn point; includes an elytra glide zone, optional swap-hand boost, and a block-trigger launch pad.
start-sequence de.kreiscraft.modules.startsequence stable none start Triggers the season-start sequence: countdown, world border expansion across three phases.
status de.kreiscraft.modules.status stable none status Stores per-player MiniMessage prefix/suffix and color, applied to scoreboard teams and chat.
tablist de.kreiscraft.modules.tablist stable none — Refreshes the tab list header and footer on a configurable tick interval using PlaceholderResolver.
update-mode de.kreiscraft.modules.updatemode stable none updatemode Maintenance mode that kicks non-bypassed players on login.
wither de.kreiscraft.modules.wither stable none — Enhances the Wither boss with custom health, damage, armour, minion spawning, and a death explosion.
world-mgmt de.kreiscraft.modules.worldmgmt stable none world, setworldspawn, portal Commands for teleporting between worlds, setting world spawns, and computing Nether/Overworld portal coordinates.

Default-off modules

Most modules ship with enabled: true in the bundled config.yml. Five ship disabled by default and only start when an operator explicitly sets modules.<id>.enabled: true:

Module ID Why it is off by default
effects Player-facing particle trails are cosmetic; operators opt in per server.
firework Registers a custom crafting recipe that changes vanilla progression; opt in explicitly.
glow Player-facing glow effect is cosmetic; operators opt in per server.
plugin-hider Intentionally disabled by default — command hiding is a server-specific policy decision.
positions Intentionally disabled by default — the waypoint GUI overlaps with other teleport tooling.

All five implementations are fully functional; enabling the flag is sufficient to activate them.


Per-Module Entries

For command syntax and permissions, see Commands and Permissions. For config keys and defaults, see Configuration.


admin

Package: de.kreiscraft.modules.admin Depends on: none Default enabled: true

Description

Provides a collection of general-purpose admin utility commands: gamemode changes, item and mob spawning, player-info lookups (IP, UUID, last-online, ping, statistics), server TPS display, weather control, sudo, and Kreiscraft help links.


anti-cheat

Package: de.kreiscraft.modules.anticheat Depends on: none Default enabled: true

Description

Listens on a plugin-messaging channel (default kreiscraft:mod_checker) for reports from an external cheat-detection mod, logs them to data/hackerlog.yml, and can kick players who connect with a Fabric or Forge client before the handshake grace period expires (disabled by default via kick-on-fabric-forge).

Services published

  • HackLogService — query stored hack-log entries by player UUID and kind.

api

Package: de.kreiscraft.modules.api Depends on: none Default enabled: true

Description

Starts a Javalin HTTP and WebSocket server. Exposes REST routes for player data, whitelist management, browser↔player account linking, and real-time metrics. A WebSocket endpoint relays in-game chat to connected browser clients. Configuration parameters that affect Javalin internals (host, port, CORS origins) restart the server on reload; other parameters (timeouts, intervals) require a full plugin restart.

Services published

  • VerificationService — manages pending browser–Bukkit account link requests.

bedrock

Package: de.kreiscraft.modules.bedrock Depends on: none Default enabled: true

Description

Detects Bedrock Edition players by their username prefix (default .) when they connect, records their name and UUID in data/bedrock-players.yml, lists the known players via /bedrocklist list, and provides a command to add them to the server whitelist via WhitelistService.

Services published

  • BedrockService — query the set of known Bedrock player records.

chat-format

Package: de.kreiscraft.modules.chatformat Depends on: status Default enabled: true

Description

Intercepts AsyncChatEvent (at the configured priority) and reformats each message using a MiniMessage template. The template has access to <team-prefix>, <name-colored>, <team-suffix>, and <body> placeholders drawn from StatusService. Optionally allows players to use MiniMessage tags inside the chat body.

Messages that begin exactly with the Xaero waypoint payload token (xaero-waypoint, followed by the protocol’s : separator) are passed through untouched: the event is left uncancelled so clients and the Xaero mod receive the raw payload, and no formatted message is broadcast or published to ChatBridge. Near-matches such as xaero-waypoints and ordinary chat are unaffected and formatted normally.


clickthrough

Package: de.kreiscraft.modules.clickthrough Depends on: settings-gui Default enabled: true

Description

Allows players with the clickthrough setting enabled to open containers and Ender Chests by right-clicking an adjacent wall sign or a filled item frame. Target acquisition uses a fixed-distance ray-cast, matching the original behaviour; the per-player toggle is stored by SettingsService.


combat

Package: de.kreiscraft.modules.combat Depends on: settings-gui Default enabled: true

Description

Tags players in combat when they deal or receive damage, keeping them tagged for a configurable duration (default 5s). While tagged, elytra use can be blocked: a continuously swept check removes a worn elytra, returning it to the inventory when space exists or otherwise dropping it glowing and pickup-protected for its owner for a bounded window. Worlds listed in excluded-worlds are exempt. Combat status is displayed via the per-player preference stored in SettingsService (action bar, chat, or title).

Events published

  • CombatTaggedEvent — fired when a player’s combat tag is set or refreshed.

Services published

  • CombatService — query and manipulate combat tag state for players.

effects

Package: de.kreiscraft.modules.effects Depends on: none Default enabled: false — opt in with modules.effects.enabled: true

Description

Spawns a configurable particle effect around a player each tick while they have effects enabled. Players can toggle their trail on/off and choose the particle type via /effects. State is stored in memory (not persisted).

Services published

  • EffectsService — enable, disable, and query particle effects for players.

firework

Package: de.kreiscraft.modules.firework Depends on: none Default enabled: false — opt in with modules.firework.enabled: true

Description

Registers a Bukkit shaped crafting recipe that yields a firework rocket with the configured customModelData. The recipe is unregistered on module disable. No commands, listeners, or services are provided.


glow

Package: de.kreiscraft.modules.glow Depends on: none Default enabled: false — opt in with modules.glow.enabled: true

Description

Applies or removes the Bukkit Glowing effect for a player via /glow. State is tracked in DefaultGlowService and all active glow effects are cleared on module disable.

Services published

  • GlowService — toggle and query glow state for players.

invsee

Package: de.kreiscraft.modules.invsee Depends on: none Default enabled: true

Description

Opens a GUI showing another player’s inventory or ender chest. Players with kreiscraft.invsee.edit can modify the inventory directly; without it they get a read-only view. Offline inventory is read from the player data file via OfflineInventoryReader; offline ender-chest viewing is not supported.


jail

Package: de.kreiscraft.modules.jail Depends on: none Default enabled: true

Description

/jail and its alias /kerker are identical toggles: they jail an unjailed player (teleporting them to the configured jail location and recording an entry in data/jail.yml) or release an already-jailed player (teleporting them back to their original location). While jailed, a configurable set of commands is blocked; /jail, /kerker, and /kreiscrafthelp are always allowed. Players with kreiscraft.jail.bypass cannot be jailed, but the bypass permission does not prevent releasing an already-jailed player.

Services published

  • JailService — jail, release, and query jail state for players.

plugin-hider

Package: de.kreiscraft.modules.pluginhider Depends on: none Default enabled: false — intentionally disabled by default; opt in with modules.plugin-hider.enabled: true

Description

Intercepts TabCompleteEvent and filters out command suggestions not in the allowlist, so non-operators cannot discover which plugins are installed. The allowlist is persisted in data/plugin-hider.yml. Players with kreiscraft.pluginhider.bypass see all commands regardless.

Services published

  • PluginHiderService — query and mutate the command allowlist.

positions

Package: de.kreiscraft.modules.positions Depends on: none Default enabled: false — intentionally disabled by default; opt in with modules.positions.enabled: true

Description

Allows each player to save named waypoints at their current location and retrieve or teleport to them. A GUI browser displays all saved positions; clicking a position can optionally teleport the player. Positions are persisted per-player in data/positions.yml.

Services published

  • PositionsService — CRUD for per-player named waypoints.

reboot

Package: de.kreiscraft.modules.reboot Depends on: none Default enabled: true

Description

Schedules a server restart with a countdown. At seconds listed in title-seconds a title (with the reason as subtitle) is shown to all players; at seconds listed in chat-seconds a chat message is broadcast. When the countdown reaches zero, all players are kicked with a message containing the reason, initiator, and website, and the server is stopped via PaperPlatform. The command is registered as /reboot with alias /restart.

Services published

  • RebootService — start, cancel, and query the restart countdown.

settings-gui

Package: de.kreiscraft.modules.settingsgui Depends on: none Default enabled: true

Description

Opens an InvUI-backed GUI for per-player settings. Currently exposes two toggles: the clickthrough enable/disable (consumed by the clickthrough module) and the combat display mode (consumed by the combat module). Settings are persisted in data/settings.yml.

Services published

  • SettingsService — read and write per-player settings (combat display, clickthrough toggle).

sign-color

Package: de.kreiscraft.modules.signcolor Depends on: none Default enabled: true

Description

Parses MiniMessage tags, legacy ampersand colour/decoration codes, and established Kreiscraft %placeholder% tokens in sign lines when a player with kreiscraft.signcolor.use edits a sign, and in anvil rename fields when the player has kreiscraft.signcolor.anvil. MiniMessage is restricted to colour, decoration, rainbow, reset, and gradient tags so players cannot inject interactive or client-affecting tags. No commands are provided.


spawn

Package: de.kreiscraft.modules.spawn Depends on: none Default enabled: true

Description

Manages the server spawn point (persisted in data/spawn.yml). Includes three optional subsystems: a glide zone that boosts elytra velocity near spawn, a swap-hand velocity boost while gliding, and a block-trigger launch pad. The /spawn command is restricted to players within teleportRange blocks of spawn.

Services published

  • SpawnService — get/set the spawn location and check whether a player is within the spawn radius.

start-sequence

Package: de.kreiscraft.modules.startsequence Depends on: none Default enabled: true

Description

Triggers the season-start ceremony: a countdown (numbers countdown - 1 … 1, each with a title and sound), followed by the start title and three world-border phases (phase 1: slow expansion; phase 2: medium expansion; instant: full size). Border phase durations are configured in ticks, matching the original RusticPrism sequence, and passed to Bukkit’s tick-based world-border API. State is persisted in data/start-sequence.yml so a restart does not re-trigger the sequence.

Services published

  • StartSequenceService — trigger and reset the start sequence; query whether it has started.

status

Package: de.kreiscraft.modules.status Depends on: none Default enabled: true

Description

Stores a MiniMessage prefix, suffix, and ARGB color for each player, persisted in data/statuses.yml. Prefix, suffix, and team color are applied to every online player’s scoreboard team and broadcast as a StatusChangedEvent so other modules (chat-format, tablist) can react.

Events published

  • StatusChangedEvent — fired when a player’s prefix, suffix, or color changes.

Services published

  • StatusService — get and set per-player MiniMessage prefix/suffix, and set per-player color.

tablist

Package: de.kreiscraft.modules.tablist Depends on: none Default enabled: true

Description

Updates the tab list header and footer for all online players on a repeating scheduler task. Header and footer are MiniMessage strings resolved through PlaceholderResolver (supports %tps%, %ping%, %system_time%, %playtime%, etc.). The shipped defaults restore the original Kreiscraft banner, playtime, clock, ping and TPS presentation. A joining player is updated immediately; everyone else is refreshed by the shared task. Header and footer templates hot-reload on /kreiscraft reload, but changing update-interval requires a restart because the shared task is not rescheduled.


update-mode

Package: de.kreiscraft.modules.updatemode Depends on: none Default enabled: true

Description

When active, activation immediately disconnects every online player who is not allowed to bypass, and login attempts from non-bypassed players are blocked. A player bypasses if their name is listed in bypass-names, they are an operator, or they hold the configured bypass-permission. Bypassed players who are online when maintenance is activated receive a notification instead of being disconnected. State (active/inactive) is persisted in data/update-mode.yml.

Services published

  • UpdateModeService — activate, deactivate, and query the maintenance-mode state.

wither

Package: de.kreiscraft.modules.wither Depends on: none Default enabled: true

Description

Enhances the vanilla Wither boss. On spawn its health, attack damage, and armour attributes are overridden. When it reaches half-health-threshold it spawns minion-count Wither Skeletons and triggers an explosion whose power, fire, and block-damage behavior are configurable. On death it creates a large explosion and displays a boss-bar effect to players within death-boss-bar-radius blocks.


world-mgmt

Package: de.kreiscraft.modules.worldmgmt Depends on: none Default enabled: true

Description

Provides three world-management commands: teleport to any loaded world’s spawn, set the spawn point of the current world, and compute Overworld ↔ Nether portal coordinate translations (÷8 / ×8).