Best for
- Use this skill when building or modifying Minecraft server plugins for Paper, Spigot, or Bukkit, including plugin.
github/awesome-copilot/skills/minecraft-plugin-development/SKILL.md
Use this skill when building or modifying Minecraft server plugins for Paper, Spigot, or Bukkit, including plugin.yml setup, commands, listeners, schedulers, player state, team or arena systems, persistent progression, economy or profile data, configuration files, Adventure text, and version-safe API usage. Trigger for requests like "build a Minecraft plugin", "add a Paper command", "fix a Bukkit listener", "create plugin.yml", "implement a minigame mechanic", "add a perk or quest system", or "d
Decision brief
Use this skill for Minecraft server plugin work in the Paper, Spigot, and Bukkit ecosystem.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/github/awesome-copilot --skill "skills/minecraft-plugin-development"Inspect the Agent Skill "minecraft-plugin-development" from https://github.com/github/awesome-copilot/blob/9933dcad5be5caeb288cebcd370eeeb2fc2f1685/skills/minecraft-plugin-development/SKILL.md at commit 9933dcad5be5caeb288cebcd370eeeb2fc2f1685. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Minimal registration shape:
If the user says "Minecraft plugin" but the stack is unclear, first determine whether the project is Paper/Spigot/Bukkit or a modding stack.
When this skill triggers:
Check these first when present:
When adding commands, permissions, or listeners, update the relevant registration points in the same change:
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 95/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 37,126 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill for Minecraft server plugin work in the Paper, Spigot, and Bukkit ecosystem.
This skill is especially useful for gameplay-heavy plugins such as combat systems, wave or boss encounters, war or team modes, arenas, kit systems, cooldown-based abilities, scoreboards, and config-driven game rules.
For grounded implementation patterns drawn from real Paper plugins, load these references as needed:
references/project-patterns.md for high-level architecture patterns seen in real gameplay pluginsreferences/bootstrap-registration.md for onEnable, command wiring, listener registration, and shutdown expectationsreferences/state-sessions-and-phases.md for player session modeling, game phases, match state, and reconnect-safe logicreferences/config-data-and-async.md for config managers, database-backed player data, async flushes, and UI refresh tasksreferences/maps-heroes-and-feature-modules.md for map rotation, hero or class systems, and modular feature growthreferences/minigame-instance-flow.md for arena instances, countdowns, loot refreshes, wave systems, visibility isolation, and entity-to-game ownershipreferences/persistent-progression-and-events.md for long-running PvP servers with profiles, perks, buffs, quests, economy, custom domain events, and extension registriesreferences/build-test-and-runtime-validation.md for Maven or Gradle packaging, shaded dependencies, generated resources, soft dependencies, config validation commands, and first-round server test plansplugin.yml, commands, tab completion, listeners, schedulers, configs, permissions, Adventure text, player state, minigame flow, arena instances, map copies, loot, waves, persistent profiles, perks, buffs, quests, economy, and PvP/PvE game loopsIf the user says "Minecraft plugin" but the stack is unclear, first determine whether the project is Paper/Spigot/Bukkit or a modding stack.
When this skill triggers:
plugin.yml, the main plugin class, and command or listener registration.If the plugin is gameplay-heavy or stateful, read references/project-patterns.md and references/state-sessions-and-phases.md before editing.
If the task touches arena isolation, map instances, chest or resource refills, wave spawning, route voting, spectator visibility, or game-specific chat, also read references/minigame-instance-flow.md.
If the task touches persistent player progression, profile saves, economy rewards, perks, buffs, quests, custom combat events, or long-running shared PvP servers, also read references/persistent-progression-and-events.md.
If the task touches build files, plugin.yml metadata, shaded dependencies, generated resource output, deployment to a test server, optional plugin integrations, or release validation, also read references/build-test-and-runtime-validation.md.
Check these first when present:
plugin.ymlpom.xml, build.gradle, or build.gradle.ktsJavaPluginconfig.yml, messages, kits, arenas, or custom YAML filestarget/classes, build/resources, or copied plugin jarsWhen adding commands, permissions, or listeners, update the relevant registration points in the same change:
plugin.ymlonEnableFor gameplay plugins, prefer explicit state objects over duplicated flags:
When the feature affects match-heavy minigames or persistent-brawl gameplay, look for hidden state transitions first before patching symptoms.
For multi-arena plugins, isolate per-game visibility, chat recipients, scoreboards, loot, and entity ownership. Do not let one arena observe or mutate another arena by accident.
When the feature includes damage, cooldowns, rewards, durations, messages, map settings, or toggles:
For new commands:
plugin.ymlPlayerMinimal registration shape:
commands:
arena:
description: Join or leave an arena
usage: /arena <join|leave>
@Override
public void onEnable() {
ArenaCommand command = new ArenaCommand(gameService);
PluginCommand arena = getCommand("arena");
if (arena != null) {
arena.setExecutor(command);
arena.setTabCompleter(command);
}
}
For event listeners:
For timers, rounds, countdowns, cooldowns, or periodic checks:
Main-thread handoff shape:
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
PlayerData data = repository.load(playerId);
Bukkit.getScheduler().runTask(plugin, () -> {
Player player = Bukkit.getPlayer(playerId);
if (player != null && player.isOnline()) {
scoreboard.update(player, data);
}
});
});
For per-player or per-match state:
PlayerUUID for persistent tracking unless a live player object is strictly neededWhen the project uses Adventure or MiniMessage:
Pay extra attention when editing:
onDisableWhen implementing or revising plugin code:
plugin.yml, config files, build files, or resourcesWhen the requested change touches plugin startup, async data, match flow, class systems, or rotating maps, consult the matching reference file before editing.
Before finishing, verify as many of these as the task allows:
plugin.yml matches the implemented behaviorCommandSender to Player without checkingplugin.ymlPlayer objects as long-lived map keys when UUID is safertarget/classes or build/resources instead of source files under src/main/resourcesFor substantial requests, structure work like this:
For small requests, keep the answer concise but still mention any needed plugin.yml, config, or lifecycle updates.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
event4u-app/agent-config
Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.
event4u-app/agent-config
Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.
event4u-app/agent-config
Use BEFORE writing/changing tests, adding mocks, or test-only methods on production classes — vs mocking-the-mock, production pollution, partial mocks, and overfit/tautological assertions