A comprehensive Java framework for Minecraft plugin development, supporting both Spigot and BungeeCord platforms. TDR MC Core provides a powerful three-level command system, advanced caching mechanisms, GUI framework, and various utilities to streamline plugin development.
- 🎯 Three-Level Command System - Hierarchical command structure with automatic registration
- 🔧 Annotation-Based Configuration - Simple, declarative command definitions
- 💾 Advanced Caching System - Persistent caching with automatic expiration
- 🎨 GUI Framework - Easy-to-use inventory-based user interfaces
- 🌍 Translation Management - Built-in internationalization support
- 🔄 Update Checker - Automatic version checking and notifications
- 🛠️ Utility Classes - Common Minecraft operations made simple
- 📊 Cross-Platform - Works with both Spigot and BungeeCord
<dependency>
<groupId>nl.thedutchruben</groupId>
<artifactId>mccore</artifactId>
<version>1.7.0</version>
</dependency>public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
// Initialize TDR MC Core
new Mccore(this, "your-tdr-id", "your-project-id", Mccore.PluginType.SPIGOT);
getLogger().info("Plugin enabled with TDR MC Core!");
}
}@Command(command = "mycommand", description = "My awesome command", permission = "myplugin.use")
public class MyCommand {
@Default
public void defaultCommand(CommandSender sender, List<String> args) {
sender.sendMessage("Hello from my command!");
}
@SubCommand(subCommand = "reload", description = "Reload the plugin", permission = "myplugin.reload")
public void reloadCommand(CommandSender sender, List<String> args) {
sender.sendMessage("Plugin reloaded!");
}
}TDR MC Core features a unique three-level command hierarchy:
- Command (
@Command) - The main command (e.g.,/myplugin) - Sub-Command Groups (
@SubCommandGroup) - Category groupings (e.g.,/myplugin admin) - Sub-Commands (
@SubCommand) - Individual actions (e.g.,/myplugin admin reload)
/myplugin # Default command
/myplugin help # Auto-generated help
/myplugin version # Direct sub-command
/myplugin admin # Sub-command group (shows help)
/myplugin admin reload # Sub-command within group
/myplugin user create # Another group with sub-command
- Automatic Registration - Commands are discovered via reflection
- Built-in Help - Automatic help generation for all commands
- Tab Completion - Smart tab completion with built-in types
- Permission System - Granular permission control
- Parameter Validation - Automatic parameter count checking
- Persistent Storage - JSON-based file storage
- Automatic Expiration - Time-based cache invalidation
- Async Operations - Non-blocking cache operations
- Memory Efficient - Smart memory management
- Inventory GUIs - Easy-to-create inventory interfaces
- Pagination Support - Multi-page GUI support
- Interactive Items - Clickable GUI elements
- Event Handling - Simple click event management
- Item Builder - Fluent API for item creation
- Message Utilities - Advanced chat formatting
- Particle Effects - Easy particle spawning
- Hologram System - Floating text displays
- File Management - Configuration file handling
- Annotation Reference - Complete guide to all annotations
- Command System Guide - In-depth command system documentation
- Examples - Working examples
- API Documentation - Generated JavaDocs
- Java 17+
- Spigot/Paper 26.2+ or BungeeCord 1.21+
- Maven (for building)
# Clone the repository
git clone https://github.com/thedutchruben/tdr-mc-core.git
# Build the project
mvn clean package
# Run tests
mvn test
# Generate documentation
mvn javadoc:javadoc- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 📧 Contact: TheDutchRuben
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions