Config Editor - Minecraft Mod

A professional in-game configuration file editor for Minecraft, providing advanced editing capabilities with syntax highlighting, real-time validation, and extensible plugin system.

Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Minecraft Mod Loader License

if you find any issues, please report to https://github.com/zhengzhengyiyi/config-editor/issues

Thank you for 400+ downloads!

Next version will coming soon. Your support means everything! If you have any ideas, please post on github discussions

Known Issues

  • Please download version 1.1.3, there is some issue in version under 1.1.3

  • May be have some unknown file lock issue.

How to set keybinding

set keybinding for 1.21.5-1.21.8

keybinding setting

✨ Features

📝 Professional Text Editing

  • Advanced Syntax Highlighting: Full support for multiple file formats with color-coded syntax highlighting
  • Multi-Format Support: JSON, Properties, TOML, YAML, CFG, INI, and plain text files
  • Real-time Validation: Instant error checking with visual indicators and tooltips
  • Multi-line Editor: Support for large configuration files with scrollable interface
  • Intelligent Search: Text search engine with highlight and navigation

🎯 User Experience

  • File Management: Browse and switch between configuration files easily
  • Visual Feedback: Clear modification indicators and confirmation dialogs
  • Theme Support: Dark, Light, and Auto themes with customizable backgrounds
  • Accessibility: Full keyboard navigation and screen reader support

a show case of the gui)

🔧 Advanced Capabilities

  • Auto-completion: Code suggestions based on file structure and common patterns
  • Backup System: Automatic backup creation with configurable retention
  • Performance Monitoring: Built-in performance tracking for large files
  • File Navigation: Easy browsing through config directory with scrollable file list
🛠️ Developer API

Config Editor provides a comprehensive API for developers to extend functionality through plugins:

Core API Interface

build.gradle

dependencies {
    implementation("io.github.zhengzhengyiyi:config_editor:project.config_editor_version")
}

gradle.properties

config_editor_version=1.1.4+1.21.5
public interface ApiEntrypoint {
    // Plugin initialization
    void init();
    
    // Editor lifecycle events
    void onEditerOpen(EditorScreen editor);
    void onEditerClose(EditorScreen editor);
    
    // Input handling with precise control
    ActionResult onMouseDown(int x, int y);
    void onMouseScroll();
    ActionResult onType(int keyCode, int scanCode, int modifiers);
    ActionResult onCharTyped(char character, int modifiers);
    
    // Custom rendering capabilities
    void renderButton(DrawContext context, int mouseX, int mouseY, float delta);
}

Built-in Plugins Examples

The mod includes several example plugins demonstrating API capabilities:

// Auto bracket completion
public class AutoBracketCompletionEntrypoint implements ApiEntrypoint

// Date-time display in editor
public class DateTimeDisplayEntrypoint implements ApiEntrypoint

// Text statistics and analytics
public class TextStatsEntrypoint implements ApiEntrypoint

// Undo/redo functionality
public class UndoRedoEntrypoint implements ApiEntrypoint

Advanced Plugin Development

public class AdvancedPlugin implements ApiEntrypoint {
    private static final Logger LOGGER = ApiEntrypoint.LOGGER;
    
    @Override
    public void init() {
        LOGGER.info("Advanced plugin initialized with custom features");
    }
    
    @Override
    public ActionResult onType(int keyCode, int scanCode, int modifiers) {
        // Custom keyboard shortcuts
        if (keyCode == GLFW.GLFW_KEY_F1 && hasControlDown()) {
            showCustomHelp();
            return ActionResult.FAIL; // Prevent default handling
        }
        return ActionResult.PASS; // Allow normal processing
    }
    
    @Override
    public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) {
        // Add custom UI elements to editor
        context.drawText(context.getTextRenderer(), "Custom Plugin", 10, 10, 0xFFFFFF, false);
    }
}

Action Result System

  • SUCCESS: Event handled successfully, continue processing
  • PASS: Allow other plugins to handle the event
  • FAIL: Event handled completely, stop propagation

Registration in fabric.mod.json

{
  "entrypoints": {
    "config_editor": [
      "com.yourmod.YourCustomPlugin",
      "com.yourmod.AnotherPlugin"
    ]
  }
}

🔍 Technical Features

Performance Optimization

  • Efficient Rendering: Optimized text rendering for large files
  • Memory Management: Smart caching and resource cleanup
  • Async Operations: Non-blocking file operations

File Handling

  • Safe File Operations: File locking and conflict detection
  • Error Recovery: Automatic recovery from corrupted files
  • Encoding Support: Full UTF-8 support with proper encoding detection

📁 Supported File Types

  • JSON Configuration Files (.json)
  • Properties Files (.properties)
  • TOML Files (.toml)
  • YAML Files (.yml, .yaml)
  • Configuration Files (.cfg, .conf, .ini)
  • Text Files (.txt)

Happy configuring! 🎮

If you find this mod useful, please consider giving it a star on Modrinth!


Project members

zhengzhengyiyi

Member

Details

Licensed Apache-2.0
Published 2 months ago
Updated 10 days ago