-
Notifications
You must be signed in to change notification settings - Fork 0
Home
PrisonCore is a modular platform for Minecraft prison servers. The core is intentionally small: a kernel, a service container, a module system, and a handful of subsystems for the things every feature module ends up wanting (commands, menus, messages, placeholders, scheduling, storage). Features live in separate modules that the kernel loads at boot.
If you're here to build a module on top of PrisonCore, this wiki is the reference. It covers the public API surface that module authors are expected to touch, and nothing inside the kernel that isn't part of that surface.
Module authors. If you're writing a module for PrisonCore, or porting a plugin over, start with Getting Started.
If you're working inside the core itself, most of this is redundant for you.
A module is a jar. It declares its identity in Java with the @ModuleDefinition annotation, extends AbstractPlatformModule, and drops into plugins/PrisonCore/modules/. The kernel discovers it, runs it through prepare/enable/disable, and hands it a ModuleContext for resolving platform services.
You don't write a plugin.yml. You don't call Bukkit.getScheduler() directly. You don't register listeners through Bukkit.getPluginManager(). The platform provides a typed abstraction for each of those things, and that's what you use.
- Getting Started — your first module, end to end
-
Module Lifecycle — prepare, enable, disable, load phases, the
ModuleContext - Service Container and Capabilities — how modules find each other and the platform
-
Commands —
CommandService,CommandDescriptor, executors, completions -
Menus —
MenuService,MenuDescriptor, slot layouts, click handlers -
Messages and Placeholders —
MessageService, keyed multi-channel delivery,PlaceholderService -
Scheduler —
TaskOrchestrator, main-thread vs io vs cpu,switchToMainThread -
Storage —
StorageRegistry, JSON/SQLite/SQL/Mongo backends, repository contracts -
Events and Listeners —
DomainEventBus,BukkitListenerHostfor raw Bukkit events -
Configuration —
CoreConfig,ConfigService -
Bukkit Utilities —
ColorTranslator,BukkitItemBuilder,PersistentDataAdapter -
Player Profiles —
PlayerProfileService, sessions, views
Every page lists types by their simple name. The full package is shown once per type in the heading. Code samples are real, not pseudo-code, and assume your module extends AbstractPlatformModule.
This wiki documents the public API surface module authors are expected to touch. Kernel internals are intentionally omitted. Spot something wrong? Open an issue.
Start here
Architecture
Subsystems
- Commands
- Menus
- Messages and Placeholders
- Scheduler
- Storage
- Events and Listeners
- Configuration
- Player Profiles
Utilities