CriticalRange/hytale-development-plugin

Template repository for creating plugins for IntelliJ Platform

★ 0Forks 1KotlinGitHub ↗Compare

README

Hytale Development Plugin

Build Version

IntelliJ IDEA plugin for Hytale server plugin development, inspired by the Minecraft Development plugin.

Hytale Development brings IDE support for Hytale server plugin development to IntelliJ IDEA.

Features:

  • Auto-detect HytaleServer.jar from your Hytale installation
  • JSON schema validation and completion for manifest.json
  • Ctrl+Click navigation to Hytale API source (decompiled)
  • Code inspections for plugin classes and manifest files
  • Gutter icons for plugin classes
  • Template variable support (${version}, ${entry_point}, etc.)

Features

Library Detection

  • Automatically detects HytaleServer.jar from your Hytale installation
  • Registers Hytale API as a project library for code completion and navigation
  • Supports Flatpak, Windows, and macOS installation paths

Manifest Support

  • JSON schema validation for manifest.json
  • Auto-completion for all manifest fields
  • Ctrl+Click navigation from "Main" field to your plugin class
  • Template variable support (${version}, ${entry_point}, etc.)

Code Inspections

  • Main Class Validation: Ensures your Main class exists and extends JavaPlugin/PluginBase
  • Required Fields: Validates Group, Name, Version, and Main fields
  • Plugin Structure: Checks plugin classes have proper constructors

Navigation

  • Ctrl+Click on Hytale API classes to view decompiled source
  • Gutter icons for plugin classes extending JavaPlugin or PluginBase

Project Support

  • Auto-detection of Hytale plugin projects
  • Hytale Facet for project configuration

Installation

From JetBrains Marketplace

  1. Open IntelliJ IDEA
  2. Go to Settings → Plugins → Marketplace
  3. Search for "Hytale Development"
  4. Click Install

Manual Installation

  1. Download the latest release from GitHub Releases
  2. Go to Settings → Plugins → ⚙️ → Install Plugin from Disk...
  3. Select the downloaded .zip file

Requirements

  • IntelliJ IDEA 2025.2 or later (Ultimate or Community)
  • Hytale installed (for HytaleServer.jar detection)

Quick Start

  1. Create a new Java/Kotlin project
  2. Add manifest.json to your resources folder:
{
  "Group": "com.example",
  "Name": "MyPlugin",
  "Version": "1.0.0",
  "Description": "My first Hytale plugin",
  "Main": "com.example.MyPlugin",
  "ServerVersion": "*"
}
  1. Create your plugin class:
package com.example;

import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;

public class MyPlugin extends JavaPlugin {
    public MyPlugin(JavaPluginInit init) {
        super(init);
    }
    
    @Override
    public void onEnable() {
        getLogger().info("MyPlugin enabled!");
    }
}
  1. The plugin will automatically detect your project and provide IDE support!

Hytale API Classes

Key classes from HytaleServer.jar:

Class Description
com.hypixel.hytale.server.core.plugin.JavaPlugin Base class for Java plugins
com.hypixel.hytale.server.core.plugin.PluginBase Abstract plugin base
com.hypixel.hytale.server.core.plugin.JavaPluginInit Plugin initialization context
com.hypixel.hytale.server.core.plugin.event.PluginEvent Event system

Roadmap

v0.2.0 (Planned)

  • Project creation wizard
  • Live templates (hplugin, hevent, hmanifest)
  • Run configurations for Hytale server
  • Event completion for EventRegistry.registerGlobal()

Future

  • Plugin Hot Reload
  • Hytale API Reference browser
  • Hytale IDE Theme

Development

# Build the plugin
./gradlew build

# Run in sandboxed IDE
./gradlew runIde

# Run tests
./gradlew test

# Verify plugin compatibility
./gradlew verifyPlugin

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Links

Contributors

hszdependabot[bot]YannCebronactions-userjreznotDanil42RussiaCriticalRangeKotlinIslandForNeVeRnbadalMysterAitchleonard84GitHubPanghybloidrybakJonatha1983BlarcvldFstrangelookingnerdsadv1rbrichbashKonafetsryan-rushtonskoch13medmundsolivernybroeosipxdStrajkpavel-snykPr1st0n

Issues