Initial commit
This commit is contained in:
commit
fba8201fdf
2 changed files with 33 additions and 0 deletions
31
init.lua
Normal file
31
init.lua
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
local repl_env = table.copy(_G)
|
||||||
|
|
||||||
|
minetest.register_chatcommand("eval", {
|
||||||
|
privs = {
|
||||||
|
privs=true
|
||||||
|
},
|
||||||
|
description = 'Execute lua code on the server',
|
||||||
|
|
||||||
|
func = function(name, param)
|
||||||
|
local chunk, errmsg = loadstring('return ' .. param)
|
||||||
|
if not chunk then
|
||||||
|
chunk, errmsg = loadstring(param)
|
||||||
|
end
|
||||||
|
if errmsg then
|
||||||
|
return true, dump(errmsg)
|
||||||
|
end
|
||||||
|
|
||||||
|
for key, value in pairs(_G) do
|
||||||
|
repl_env[key] = value
|
||||||
|
end
|
||||||
|
|
||||||
|
repl_env.cur_player = minetest.get_player_by_name(name)
|
||||||
|
|
||||||
|
setfenv(chunk, repl_env)
|
||||||
|
local _, res = pcall(chunk)
|
||||||
|
|
||||||
|
for line in string.gmatch(dump(res), "[^\n]+") do
|
||||||
|
minetest.chat_send_player(name, line)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
2
mod.conf
Normal file
2
mod.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
name=repl
|
||||||
|
description=A simple repl
|
Loading…
Reference in a new issue