← Back to Roadmap
A
A main class extending
Plugin Basics
20 minSet up your first Hytale plugin with manifest and entry point.
Your First Plugin
Every Hytale plugin needs two things:
manifest.json fileJavaPluginmanifest.json
json
{
"group": "dev.yourname",
"name": "MyFirstPlugin",
"version": "1.0.0",
"main": "dev.yourname.myfirstplugin.MyFirstPlugin",
"description": "My first Hytale plugin!",
"authors": ["YourName"]
}Main Class
java
package dev.yourname.myfirstplugin;import com.hypixel.hytale.server.plugin.JavaPlugin;
public class MyFirstPlugin extends JavaPlugin {
@Override
public void setup() {
getLogger().info("Plugin is loading!");
// Register commands, events, etc.
}
@Override
public void teardown() {
getLogger().info("Plugin is unloading!");
// Cleanup resources
}
}
Lifecycle
setup() - Called when plugin loads. Register everything here.teardown() - Called when plugin unloads. Clean up here.Best Practices
- Use a singleton pattern for accessing your plugin instance
- Register all systems and listeners in
setup() - Clean up scheduled tasks in
teardown()
java
public class MyFirstPlugin extends JavaPlugin {
private static MyFirstPlugin instance; public static MyFirstPlugin getInstance() {
return instance;
}
@Override
public void setup() {
instance = this;
// ...
}
}