Skip to main content
Version: 2.0.0

Paper / Bukkit Module (quipt-paper)

The quipt-paper module connects QUIPT's core capabilities into Paper, Purpur, and Bukkit server runtimes.

Main Entrypoint: QuiptPaper​

QuiptPaper extends live.qsmc.quipt.paper.QuiptPlugin (which in turn extends org.bukkit.plugin.java.JavaPlugin).

Initialization Flow on Paper:​

  1. Initializes MessageUtils and registers command usage strings and localized feedback.
  2. Registers and loads ResourceConfig.
  3. If resource pack sync is enabled, mounts ResourcePackHandler onto the embedded Jetty server at /resources.
  4. Registers Brigadier-based commands (/quipt, /webhook, /party, /sudo) with Paper's command dispatcher.
package live.qsmc.quipt.paper;

public class QuiptPaper extends QuiptPlugin {
public static QuiptPaper instance();
public ResourcePackHandler packHandler();
}

Player Session Management (PaperPlayers & PaperPlayer)​

QUIPT wraps Bukkit's native Player objects into a persistent PaperPlayer model:

import live.qsmc.quipt.paper.QuiptPaper;
import live.qsmc.quipt.paper.api.players.PaperPlayers;
import live.qsmc.quipt.paper.api.players.PaperPlayer;
import org.bukkit.entity.Player;

// Retrieve wrapped player
PaperPlayers manager = new PaperPlayers(QuiptPaper.instance());
PaperPlayer wrappedPlayer = manager.of(bukkitPlayer);

// Access session metadata
long lastSeenTimestamp = wrappedPlayer.lastSeen();
wrappedPlayer.teleport(otherPlayer);

Automatic Persistence (players.json)​

Player records are stored in plugins/quipt-paper/players.json via ConfigMap<PaperPlayer> to preserve offline player data and custom settings across restarts.


Void World Generation (VoidChunkGenerator)​

For lobby servers, arenas, and minigames, quipt-paper includes a zero-overhead VoidChunkGenerator:

Enabling in bukkit.yml​

bukkit.yml
worlds:
world_the_void:
generator: quipt-paper

Or programmatically in world creation:

import live.qsmc.quipt.paper.world.VoidChunkGenerator;
import org.bukkit.WorldCreator;

WorldCreator creator = new WorldCreator("void_world");
creator.generator(new VoidChunkGenerator());
creator.createWorld();

Commands Registered on Paper​

CommandPermissionDefault ExecutorDescription
/quipt <list|help|dump|account|update>quipt.command.quipt (OP 4)QuiptCommandCentral administrative tool, update checks, and account linking.
/webhook <add|remove>quipt.command.webhook (OP 4)WebhookCommandLive Discord webhook management.
/party <create|join|leave|disband>None (Public)PartyCommandSocial party grouping.
/sudo <player> <command>quipt.command.sudo (OP 4)SudoCommandExecute commands on behalf of another user.
/resourcepack <update|sync>quipt.command.resourcepack (OP 4)ResourcePackCommandTrigger Git pack re-sync.