- Source: sickn33/antigravity-awesome-skills - Covers Bukkit/Spigot/Paper plugin development - Includes event handling, NMS internals, performance patterns - Added Firefrost-specific context for integration with Arbiter - Updated SKILLS-INDEX.md Chronicler #73
6.5 KiB
6.5 KiB
name, description, source
| name | description | source |
|---|---|---|
| minecraft-bukkit-pro | Master Minecraft server plugin development with Bukkit, Spigot, and Paper APIs. Use this skill when developing custom plugins for Firefrost servers, extending existing plugins, or understanding internal Minecraft server mechanics. | skill.fish (sickn33/antigravity-awesome-skills) |
Minecraft Bukkit & Paper Pro
Master Minecraft server plugin development with Bukkit, Spigot, and Paper APIs with deep knowledge of internal mechanics and modern development patterns.
WHEN TO USE
Use this skill when:
- Working on Minecraft Bukkit/Paper plugin development
- Needing guidance, best practices, or patterns for server plugins
- Building custom Firefrost features (whitelist sync, cross-server chat, etc.)
- Understanding how existing plugins work internally
Do not use when:
- Working with Forge/NeoForge/Fabric mods (different ecosystem)
- Managing servers via Pterodactyl (use other skills)
- General Minecraft gameplay questions
CORE EXPERTISE
API Mastery
- Event-driven architecture with listener priorities and custom events
- Modern Paper API features (Adventure, MiniMessage, Lifecycle API)
- Command systems using Brigadier framework and tab completion
- Inventory GUI systems with NBT manipulation
- World generation and chunk management
- Entity AI and pathfinding customization
Internal Mechanics
- NMS (net.minecraft.server) internals and Mojang mappings
- Packet manipulation and protocol handling
- Reflection patterns for cross-version compatibility
- Paperweight-userdev for deobfuscated development
- Custom entity implementations and behaviors
- Server tick optimization and timing analysis
Performance Engineering
- Hot event optimization (PlayerMoveEvent, BlockPhysicsEvent)
- Async operations for I/O and database queries
- Chunk loading strategies and region file management
- Memory profiling and garbage collection tuning
- Thread pool management and concurrent collections
- Spark profiler integration for production debugging
Ecosystem Integration
- Vault, PlaceholderAPI, ProtocolLib advanced usage
- Database systems (MySQL, Redis, MongoDB) with HikariCP
- Message queue integration for network communication
- Web API integration and webhook systems
- Cross-server synchronization patterns
- Docker deployment and Kubernetes orchestration
DEVELOPMENT PHILOSOPHY
Research First
Always use WebSearch for current best practices and existing solutions
Architecture Matters
Design with SOLID principles and design patterns
Performance Critical
Profile before optimizing, measure impact
Version Awareness
Detect server type (Bukkit/Spigot/Paper) and use appropriate APIs
Modern When Possible
Use modern APIs when available, with fallbacks for compatibility
Test Everything
Unit tests with MockBukkit, integration tests on real servers
TECHNICAL APPROACH
Project Analysis
- Examine build configuration for dependencies and target versions
- Identify existing patterns and architectural decisions
- Assess performance requirements and scalability needs
- Review security implications and attack vectors
Implementation Strategy
- Start with minimal viable functionality
- Layer in features with proper separation of concerns
- Implement comprehensive error handling and recovery
- Add metrics and monitoring hooks
- Document with JavaDoc and user guides
Quality Standards
- Follow Google Java Style Guide
- Implement defensive programming practices
- Use immutable objects and builder patterns
- Apply dependency injection where appropriate
- Maintain backward compatibility when possible
OUTPUT EXCELLENCE
Code Structure
- Clean package organization by feature
- Service layer for business logic
- Repository pattern for data access
- Factory pattern for object creation
- Event bus for internal communication
Configuration
- YAML with detailed comments and examples
- Version-appropriate text formatting (MiniMessage for Paper, legacy for Bukkit/Spigot)
- Gradual migration paths for config updates
- Environment variable support for containers
- Feature flags for experimental functionality
Build System
- Maven/Gradle with proper dependency management
- Shade/shadow for dependency relocation
- Multi-module projects for version abstraction
- CI/CD integration with automated testing
- Semantic versioning and changelog generation
Documentation
- Comprehensive README with quick start
- Wiki documentation for advanced features
- API documentation for developer extensions
- Migration guides for version updates
- Performance tuning guidelines
QUICK REFERENCE
Channel Types (for reference)
| Type | Description |
|---|---|
| 0 | Text channel |
| 2 | Voice channel |
| 4 | Category |
| 5 | Announcement |
| 13 | Stage |
| 15 | Forum |
Common Event Priorities
@EventHandler(priority = EventPriority.LOWEST) // First to run
@EventHandler(priority = EventPriority.LOW)
@EventHandler(priority = EventPriority.NORMAL) // Default
@EventHandler(priority = EventPriority.HIGH)
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler(priority = EventPriority.MONITOR) // Last, read-only
Basic Plugin Structure
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
// Load config
saveDefaultConfig();
// Register listeners
getServer().getPluginManager().registerEvents(new MyListener(), this);
// Register commands
getCommand("mycommand").setExecutor(new MyCommand());
getLogger().info("Plugin enabled!");
}
@Override
public void onDisable() {
getLogger().info("Plugin disabled!");
}
}
Async Database Pattern
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
// Database operations here (off main thread)
String result = database.query("SELECT * FROM players");
// Return to main thread for Bukkit API calls
Bukkit.getScheduler().runTask(plugin, () -> {
player.sendMessage("Query complete: " + result);
});
});
FIREFROST CONTEXT
When building plugins for Firefrost:
- Consider integration with Arbiter for subscriber verification
- Use consistent branding (Fire/Frost colors)
- Document for future Chroniclers
- Test on Dev Panel before production deployment
Source: skill.fish — sickn33/antigravity-awesome-skills Added: 2026-04-09 by Chronicler #73
Fire + Frost + Foundation = Where Love Builds Legacy 💙🔥❄️