How pai100707/paimc works
PaiMC is a Paper-derived, high-performance Minecraft server with a plugin-facing API. The main user-to-result path is server administration starting the server, then plugins being discovered, dependency-checked, loaded and enabled so they can extend server behavior through the API. The API also exposes distinct command, event, data-component, datapack and profiling capabilities; timings provide an internal performance-reporting layer. The source excerpts chiefly illuminate plugin management, classloading and profile lookup, so other API branches are represented as capabilities without speculative wiring.
Main entry points: JavaPlugin.java Java plugin · paper-server Minecraft server · ServerPluginProviderStorage.java Provider storage · PaperClassLoaderStorage.java Classloader storage
Components 20
Server runtime
- Minecraft server
paper-server - Profile lookup
paper-server/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java
Plugin lifecycle
- Plugin metadata
paper-api/src/main/java/io/papermc/paper/plugin/configuration/PluginMeta.java - Plugin provider
paper-server/src/main/java/io/papermc/paper/plugin/provider/PluginProvider.java - Provider storage
paper-server/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java - Legacy plugin manager
paper-api/src/main/java/org/bukkit/plugin/SimplePluginManager.java - Java plugin
paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java - Plugin classloader
paper-api/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java - Configured classloader
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/ConfiguredPluginClassLoader.java - Classloader storage
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/PaperClassLoaderStorage.java
Plugin API
- Server interface
paper-api/src/main/java/org/bukkit/Server.java - Brigadier commands
paper-api/src/main/java/io/papermc/paper/command/brigadier/Commands.java - Plugin events
paper-api/src/main/java/org/bukkit/event/HandlerList.java - Data components
paper-api/src/main/java/io/papermc/paper/datacomponent - Datapack API
paper-api/src/main/java/io/papermc/paper/datapack/DatapackManager.java - Permissions
paper-api/src/main/java/io/papermc/paper/plugin/PermissionManager.java
Operations and profiling
- Timing collection
paper-api/src/main/java/co/aikar/timings/TimingsManager.java - Timing reports
paper-api/src/main/java/co/aikar/timings/TimingHistory.java
Other components
- Server admin
- Plugin developer
Connections 16
- Server admin → Minecraft server: starts
README.md - Minecraft server → Server interface: exposes
README.md - Plugin developer → Server interface: uses
README.md - Plugin provider → Plugin metadata: reads metadata
paper-server/src/main/java/io/papermc/paper/plugin/provider/PluginProvider.java - Provider storage → Java plugin: loads plugin
paper-server/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java - Provider storage → Plugin provider: configures
paper-server/src/main/java/io/papermc/paper/plugin/storage/ServerPluginProviderStorage.java - Legacy plugin manager → Java plugin: enables
paper-api/src/main/java/org/bukkit/plugin/SimplePluginManager.java - Plugin classloader → Java plugin: instantiates
paper-api/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java - Configured classloader → Plugin metadata: exposes config
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/ConfiguredPluginClassLoader.java - Classloader storage → Configured classloader: registers
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/PaperClassLoaderStorage.java - Classloader storage → Plugin classloader: registers
paper-api/src/main/java/io/papermc/paper/plugin/provider/classloader/PaperClassLoaderStorage.java - Minecraft server → Profile lookup: looks up profiles
paper-server/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java - Profile lookup → Plugin events: fires profile events
paper-server/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java - Timing collection → Timing reports: collects history
paper-api/src/main/java/co/aikar/timings/TimingsManager.java - Java plugin → Brigadier commands: registers commands
paper-api/src/main/java/org/bukkit/plugin/java/JavaPlugin.java - Java plugin → Permissions: uses permissions