Skip to content

Codingpanda2/Panda

Repository files navigation

PandaCore

PandaCore is a modular Paper plugin suite built around a shared service API.

Modules

  • panda-core: shared platform, storage profiles, locations, utility commands
  • panda-moderation: punishment and history module
  • panda-geyser: Geyser and Floodgate integration module

Design Goals

  • Each module can be shipped as its own plugin jar.
  • Each module receives its own storage profile and database name.
  • Cross-module communication is done through Bukkit services instead of direct plugin casts.
  • External plugins can reuse the same public services.

Available Services

  • PandaCoreApi
  • LocationApi
  • ModerationApi
  • GeyserBridgeApi

Example: Resolving PandaCore

RegisteredServiceProvider<PandaCoreApi> registration =
        Bukkit.getServicesManager().getRegistration(PandaCoreApi.class);

if (registration != null) {
    PandaCoreApi api = registration.getProvider();
    api.getStorageManager().registerModule("MyPlugin");
}

Example: Resolving Locations

RegisteredServiceProvider<LocationApi> registration =
        Bukkit.getServicesManager().getRegistration(LocationApi.class);

if (registration != null) {
    LocationApi locations = registration.getProvider();
    locations.getWarp("spawn").ifPresent(player::teleport);
}

Storage Model

Configured storage types currently include:

  • JSON
  • MARIADB
  • POSTGRESQL
  • MYSQL
  • MONGODB

Every module gets its own logical database name based on the configured base name and module id. This prevents modules from sharing the same storage namespace by default.

About

The Panda plugins

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages