A powerful Minecraft plugin that converts configurations, items, and resources from other custom item plugins to CraftEngine format.
- Features
- Supported Plugins
- Requirements
- Installation
- Usage
- Configuration
- Tag System
- API Usage
- Building
- Contributing
- License
- Multi-threaded Conversion: Asynchronous conversion system for optimal performance
- Folia Support: Full compatibility with Paper's Folia multi-threaded server software
- Modular Architecture: Plugin hook system for easy extensibility
- Resource Pack Management: Automatic pack mapping and asset conversion
- Items: Custom items with models, textures, and properties
- Glyphs: Font glyphs and custom character conversion
- Emojis: Custom emoji conversion with font mapping
- Images: Bitmap image conversion with proper font registration
- Languages: Multi-language translation file conversion
- Sounds: Custom sound definitions and jukebox songs
- Resource Packs: Automatic texture and asset migration
- Equipment: Armor layers and custom equipment textures (Component && Trim)
- Path Blacklisting: Exclude specific files or folders from conversion
- Tag Processing: Custom tag system for text formatting (glyphs, PlaceholderAPI)
- Template System: Pre-configured templates for common model types
- Smart Namespacing: Automatic namespace handling and conflict resolution
- Debug Mode: Detailed logging for troubleshooting
| Plugin | Items | Glyphs | Emojis | Sounds | Packs |
|---|---|---|---|---|---|
| Nexo | ✅ | ✅ | ✅ | ✅ | ✅ |
| Oraxen | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |
| ItemsAdder | 🚧 | 🚧 | 🚧 | 🚧 | 🚧 |
✅ Fully Supported | 🚧 Work in Progress | ❌ Not Supported
- Minecraft Version: 1.21 or higher
- Server Software: Paper, Purpur, or Folia
- Java Version: 21 or higher
- CraftEngine (required)
- PacketEvents (optional) - For advanced packet formatting
- PlaceholderAPI (optional) - For placeholder support in messages
- Download the latest release from Releases
- Place the
.jarfile in your server'spluginsfolder - Install CraftEngine plugin if not already installed
- Restart your server
- Configure the plugin (see Configuration)
/craftengineconverter convert [plugin] [type]
Convert items from another plugin to CraftEngine format.
Arguments:
plugin- The source plugin name (e.g.,nexo)type- The conversion type:items,glyphs,emojis,images,languages,sounds,pack, orall
Examples:
/cec convert nexo all # Convert everything from Nexo
/cec convert nexo items # Convert only items
/cec convert nexo pack # Convert resource pack assets
/craftengineconverter reload
Reload the plugin configuration and messages.
craftengineconverter.command- Access to all commandscraftengineconverter.command.convert- Use the convert commandcraftengineconverter.command.reload- Use the reload command
# Enable debug logging for troubleshooting
enable-debug: false
# Automatically convert items when the plugin enables
auto-convert-on-startup: false
# Default material for converted items
default-material: "PAPER"
# Add <!i> tag to disable italic formatting in item lore
disable-default-italic: true
# Blacklist specific paths from resource pack conversion
blacklisted-paths:
- "shaders/*" # Blacklist all shader files
- "minecraft:textures/shaders/*" # Namespace-specific blacklist
# Enable/disable formatting for different message types
formatting:
packet-events: true # PacketEvents integration
boss-bar: true # Boss bar messages
action-bar: true # Action bar messages
plugin-message: true # Plugin channel messages
title: true # Title/subtitle messages
# Tag system configuration
tag:
glyph:
enabled: true # Enable glyph tag processing
placeholderapi:
enabled: true # Enable PlaceholderAPI tag processingThe blacklist system supports:
- Wildcards:
shaders/*matches all files in the shaders folder - Specific files:
shaders/rendertype_text.fsh - Namespaced paths:
minecraft:textures/shaders/* - Root-level matching:
*/config.jsonmatches config.json in any folder
CraftEngineConverter includes a powerful tag processing system for text formatting.
Convert custom glyphs to their CraftEngine font equivalents:
# Nexo format
display_name: "<glyph:custom_icon>My Item"
# After conversion (CraftEngine format)
display_name: "<font:craftengine:default>⚔</font>My Item"Escaped Tags: Use \<glyph:...> to display the tag literally without conversion.
Integrate PlaceholderAPI placeholders in messages:
# Both formats supported
message: "<placeholderapi:player_name> joined!"
message: "<papi:player_name> joined!"Escaped Tags: Use \<papi:...> to display the tag literally.
No available for the moment.
Maven:
<dependency>
<groupId>fr.robie.craftengineconverter</groupId>
<artifactId>API</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>Gradle:
dependencies {
compileOnly 'fr.robie.craftengineconverter:API:1.0'
}public class MyPluginConverter extends Converter {
public MyPluginConverter(CraftEngineConverter plugin) {
super(plugin, "MyPlugin");
}
@Override
public CompletableFuture<Void> convertItems(boolean async) {
return executeTask(async, () -> {
// Your conversion logic here
});
}
// Implement other conversion methods...
}// Register a custom tag processor
TagProcessor myProcessor = new MyCustomTagProcessor();
tagResolverRegistry.register(myProcessor);
// Process tags in a string
String input = "<glyph:my_icon>Hello World";
String output = TagResolverUtils.processTags(input, player, tagProcessors);// Create a SnakeUtils instance
SnakeUtils utils = new SnakeUtils(yamlFile);
// Get and set values with path notation
utils.setValue("items.my_item.display_name", "My Item");
String name = utils.getString("items.my_item.display_name");
// Work with sections
SnakeUtils section = utils.getSection("items.my_item");
section.setValue("material", "DIAMOND_SWORD");
// Get typed values
int amount = utils.getInt("items.my_item.amount", 1);
List<String> lore = utils.getStringList("items.my_item.lore");
Map<String, Object> data = utils.getMap("items.my_item");
// Save changes
utils.save();- JDK 21 or higher
- Maven 3.6+
- Git
# Clone the repository
git clone https://github.com/1robie/CraftEngineConverter.git
cd CraftEngineConverter
# Build with Maven
mvn clean package
# The compiled JAR will be in Plugin/target/CraftEngineConverter/
├── API/ # Public API for other plugins
├── Common/ # Shared utilities and core logic
├── Hooks/ # Plugin integration modules
│ ├── BOM/ # Bill of Materials
│ ├── PacketEvents/ # PacketEvents integration
│ └── PlaceholderAPI/ # PlaceholderAPI integration
└── Plugin/ # Main plugin implementation
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow standard Java conventions
- Use meaningful variable and method names
- Add JavaDoc comments for public APIs
- Maintain consistent formatting (4 spaces indentation)
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- CraftEngine - The target format plugin
- Nexo - For inspiring this conversion tool
- Paper/Folia - For the excellent server software
- SnakeYAML - For YAML processing capabilities
- Issues: GitHub Issues
- Discord: Join our community
- Documentation: Wiki
Made with ❤️ by 1robie