Update init.lua
Addet get_installed_commands() for more metadata. Signed-off-by: H5N3RG <janguenni13@web.de>
This commit is contained in:
31
init.lua
31
init.lua
@@ -1,8 +1,9 @@
|
|||||||
-- ===========================================================================
|
-- ===========================================================================
|
||||||
-- LLM Connect Init v0.7.6
|
-- LLM Connect Init v0.7.7
|
||||||
-- author: H5N3RG
|
-- author: H5N3RG
|
||||||
-- license: LGPL-3.0-or-later
|
-- license: LGPL-3.0-or-later
|
||||||
-- Fix: max_tokens type handling, fully configurable, robust JSON
|
-- Fix: max_tokens type handling, fully configurable, robust JSON
|
||||||
|
-- Addet: metadata for ingame-commads
|
||||||
-- Enhancement: Dynamic metadata handling, player name in prompts
|
-- Enhancement: Dynamic metadata handling, player name in prompts
|
||||||
-- ===========================================================================
|
-- ===========================================================================
|
||||||
|
|
||||||
@@ -94,6 +95,24 @@ local function get_installed_mods()
|
|||||||
end
|
end
|
||||||
return mods
|
return mods
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- NEUE FUNKTION: Befehle sammeln
|
||||||
|
local function get_installed_commands()
|
||||||
|
local commands = {}
|
||||||
|
if core.chatcommands then
|
||||||
|
for name, cmd in pairs(core.chatcommands) do
|
||||||
|
if not name:match("^__builtin:") then
|
||||||
|
local desc = cmd.description or "No description"
|
||||||
|
table.insert(commands, "/" .. name .. " " .. (cmd.params or "") .. " - " .. desc)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
table.sort(commands)
|
||||||
|
else
|
||||||
|
table.insert(commands, "Command list not available.")
|
||||||
|
end
|
||||||
|
return commands
|
||||||
|
end
|
||||||
|
|
||||||
local function get_server_settings()
|
local function get_server_settings()
|
||||||
local settings = {
|
local settings = {
|
||||||
server_name = core.settings:get("server_name") or "Unnamed Server",
|
server_name = core.settings:get("server_name") or "Unnamed Server",
|
||||||
@@ -112,6 +131,7 @@ function meta_data_functions.gather_context(player_name)
|
|||||||
local context = {}
|
local context = {}
|
||||||
context.player = get_username(player_name)
|
context.player = get_username(player_name)
|
||||||
context.installed_mods = get_installed_mods()
|
context.installed_mods = get_installed_mods()
|
||||||
|
context.installed_commands = get_installed_commands() -- HINZUGEFÜGT
|
||||||
context.server_settings = get_server_settings()
|
context.server_settings = get_server_settings()
|
||||||
-- Add dynamic player data (e.g., position)
|
-- Add dynamic player data (e.g., position)
|
||||||
local player = core.get_player_by_name(player_name)
|
local player = core.get_player_by_name(player_name)
|
||||||
@@ -126,7 +146,7 @@ end
|
|||||||
|
|
||||||
-- Compute a simple hash for metadata to detect changes
|
-- Compute a simple hash for metadata to detect changes
|
||||||
local function compute_metadata_hash(context)
|
local function compute_metadata_hash(context)
|
||||||
local str = context.player .. context.server_settings.server_name .. context.server_settings.worldpath .. table.concat(context.installed_mods, ",")
|
local str = context.player .. context.server_settings.server_name .. context.server_settings.worldpath .. table.concat(context.installed_mods, ",") .. table.concat(context.installed_commands, ",") -- Hash aktualisiert
|
||||||
return core.sha1(str)
|
return core.sha1(str)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -254,6 +274,9 @@ core.register_chatcommand("llm", {
|
|||||||
if llm_materials_context and llm_materials_context.get_available_materials then
|
if llm_materials_context and llm_materials_context.get_available_materials then
|
||||||
materials_context_str = "\n\n--- AVAILABLE MATERIALS ---\n" .. llm_materials_context.get_available_materials()
|
materials_context_str = "\n\n--- AVAILABLE MATERIALS ---\n" .. llm_materials_context.get_available_materials()
|
||||||
end
|
end
|
||||||
|
-- Befehlsliste hinzufügen
|
||||||
|
local commands_list_str = table.concat(context_data.installed_commands, "\n")
|
||||||
|
|
||||||
local metadata_string = "\n\n--- METADATA ---\n" ..
|
local metadata_string = "\n\n--- METADATA ---\n" ..
|
||||||
"Player: " .. context_data.player .. "\n" ..
|
"Player: " .. context_data.player .. "\n" ..
|
||||||
"Player Position: " .. context_data.player_position .. "\n" ..
|
"Player Position: " .. context_data.player_position .. "\n" ..
|
||||||
@@ -264,7 +287,9 @@ core.register_chatcommand("llm", {
|
|||||||
"Mapgen: " .. context_data.server_settings.mapgen .. "\n" ..
|
"Mapgen: " .. context_data.server_settings.mapgen .. "\n" ..
|
||||||
"World Path: " .. context_data.server_settings.worldpath .. "\n" ..
|
"World Path: " .. context_data.server_settings.worldpath .. "\n" ..
|
||||||
"Port: " .. context_data.server_settings.port .. "\n" ..
|
"Port: " .. context_data.server_settings.port .. "\n" ..
|
||||||
"Installed Mods (" .. #context_data.installed_mods .. "): " .. mods_list_str .. "\n" .. materials_context_str
|
"Installed Mods (" .. #context_data.installed_mods .. "): " .. mods_list_str .. "\n" ..
|
||||||
|
"Available Commands:\n" .. commands_list_str .. "\n" .. -- HINZUGEFÜGT
|
||||||
|
materials_context_str
|
||||||
dynamic_system_prompt = system_prompt_content .. metadata_string
|
dynamic_system_prompt = system_prompt_content .. metadata_string
|
||||||
metadata_cache[name] = { hash = current_metadata_hash, metadata = metadata_string }
|
metadata_cache[name] = { hash = current_metadata_hash, metadata = metadata_string }
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user