update console commands execution pipeline

This commit is contained in:
MihailRis 2025-01-22 09:30:32 +03:00
parent a0210c82ce
commit db2795eb4f
3 changed files with 26 additions and 7 deletions

View File

@ -2,6 +2,13 @@
To work with the command interpreter, use the **console** library.
When sending a command via the standard console (core:console layout):
1. the `allow-cheats` rule is checked
2. the `pos.x|y|z`, `entity.id`, `entity.selected` variables are automatically set.
3. the command handler is called - console.submit or the default one.
The default handler calls console.execute, passing the result to the console.log call.
## Commands creation
To create a console command, use the following function:

View File

@ -2,6 +2,13 @@
Для работы с командным интерпретатором предоставляется библиотека **console**.
При отправке команды через стандартную консоль (макет core:console):
1. проверяется правило `allow-cheats`
2. автоматически устанавливаются переменные `pos.x|y|z`, `entity.id`, `entity.selected`.
3. вызывается обработчик команд - console.submit или по-умолчанию.
Обработчик по-умолчанию вызывает console.execute, передавая результат в вызов console.log.
## Создание команд
Для создания команды консоли используется следующая функция:

View File

@ -101,7 +101,7 @@ function setup_variables()
console.set('pos.y', y)
console.set('pos.z', z)
local pentity = player.get_entity(pid)
if pentity ~= 0 then
if pentity > 0 then
console.set('entity.id', pentity)
end
local sentity = player.get_selected_entity(pid)
@ -148,8 +148,6 @@ function submit(text)
text = text:sub(2)
end
end
setup_variables()
local name
for s in text:gmatch("%S+") do
@ -167,12 +165,19 @@ function submit(text)
end
document.log.caret = -1
local status, result = pcall(console.execute, text)
if result then
console.log(result)
end
document.prompt.text = ""
document.prompt.focused = true
setup_variables()
if console.submit then
console.submit(text)
else
local status, result = pcall(console.execute, text)
if result then
console.log(result)
end
end
end
function set_mode(mode)