159c554a86
- Add PluginBase (plugin_base.gd) — abstract base class with 12 virtual hooks - Add PluginManifest (plugin_manifest.gd) — custom Resource for plugin metadata - Add PluginManager (plugin_manager.gd) — autoload singleton: directory scan, hook dispatch, lifecycle (load/unload/reload/rescan), cvar integration - Add hello_world example plugin with all hooks demonstrating usage - Register PluginManager autoload in project.godot - Extend rcon_command_handler.gd with 'plugin' subcommand (list/load/unload/ reload/info/rescan) delegating to PluginManager
18 lines
505 B
Plaintext
18 lines
505 B
Plaintext
[gd_resource type="Resource" format=3]
|
|
|
|
[ext_resource type="Script" path="res://server/scripts/plugin_api/plugin_manifest.gd" id="1_plugin_manifest"]
|
|
|
|
[resource]
|
|
script = ExtResource("1_plugin_manifest")
|
|
name = "Hello World"
|
|
version = "1.0.0"
|
|
author = "Tactical Shooter Team"
|
|
script_path = "hello_world.gd"
|
|
enabled = true
|
|
min_api_version = "1.0.0"
|
|
max_api_version = ""
|
|
metadata = {
|
|
"description": "Example plugin that logs all server events",
|
|
"url": "https://gitea.ourpad.casa/shawn/tactical-shooter"
|
|
}
|