t_p6_api: build plugin scripting system
- 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
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
[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"
|
||||
}
|
||||
Reference in New Issue
Block a user