Closed vtqq613 closed 1 month ago
Увидел, проверю. Постараюсь к вечеру, но не обещаю.
Если получится разобраться самостоятельно – дай знать
Измени файл загрузки вот так, пожалуйста, перезапусти сервер и пришли свежую ошибку с более дательным логом
P.S. Еще debug.Trace()
добавь после принта
addons/ggram/lua/ggram/extensions/multipart_methods.lua:8
Что это за файл у тебя? Скинь
На чистом сервере у меня все заработало нормально
# Устанавливаем чистый сервер
$HOME/steamcmd/steamcmd.sh +force_install_dir "$HOME/gm/test" +login anonymous +app_update 4020 validate +quit
# Закрываем steamcmd и переходим в папку addons
cd ~/gm/test/garrysmod/addons
# Скачиваем последнюю версию ggram с гита
git clone git@github.com:TRIGONIM/ggram.git
mkdir -p ggram-mod/lua/autorun
mkdir -p ggram-mod/lua/ggram/bots/testbot
# Редактируем файл загрузчика. Добавляем туда код из инструкции для гмода
code ggram-mod/lua/autorun/ggram-load.lua
# Создаем файл бота и размещаем в нем код
code ggram-mod/lua/ggram/bots/testbot/_init.lua
# Запуск сервера из папки garrysmod
./srcds_run -port 27015 +maxplayers 60 +map gm_construct
```lua -- This file should be shared for loading prior to SERVER -- If it is loaded too late, ggram-dependent scripts may throw errors if CLIENT then return end local function loadBots(path, iDeep) iDeep = iDeep or 0 local files,dirs = file.Find(path .. "/*","LUA") for _,f in ipairs(files) do if f == "_init.lua" then print("GG Loading Bot " .. path) include(path .. "/" .. f) break end end for _,d in ipairs(iDeep > 0 and dirs or {}) do loadBots(path .. "/" .. d, iDeep - 1) end end local function loadExtensions(path) local files = file.Find(path .. "/*","LUA") for _,f in ipairs(files) do local fpath = path .. "/" .. f print("GG Loading " .. fpath) include(fpath) end end local gmod_require_override do local require_cache = {} gmod_require_override = function(path) if require_cache[path] ~= nil then return require_cache[path] end local content = include(path .. ".lua") require_cache[path] = content or false return content end end gg_require_orig = gg_require_orig or require -- Override to make "require("deferred")", "require("ggram.middlewares.name")", etc. work. function require(path) path = path:gsub("%.", "/") if file.Exists(path .. ".lua", "LUA") then return gmod_require_override(path) end return gg_require_orig(path) end ggram = require("ggram") loadExtensions("ggram/extensions") loadBots("ggram/bots", 1) ```
```lua local ggram = require("ggram") local bot = ggram("12345:secret") require("ggram.polling").start(bot) bot.command("start", function(ctx) print("Написал " .. ctx.from.username) ctx.reply.text("Hello @" .. ctx.from.username) end) print("Бот запустился") ```