minetest-scuttlebutt/init.lua

55 lines
1.7 KiB
Lua

local json = require("json")
ssb = dofile(minetest.get_modpath("scuttlebutt") .. "/ssb.lua")
function ssb_receive(key, json)
relation = "FROM JSON"
message = key .. "said: " .. "FROM JSON"
name = "FROM RELATION"
minetest.chat_send_player(name, message)
end
function ssb_send(player, key, message)
if key == "" or message == "" then
return "error: empty key or message!"
end
local pname = player:get_player_name()
message = string.format("Minetest bot here. %s says: %s", pname, message)
local content = {
type = "post",
text = message,
recps = {key},
}
local ret, err = ssb:publish(content)
if (not err) then
return "ok: message sent."
-- return (string.format("ret: %s", json.encode(ret)))
else
return (string.format("error happened: %s", err))
end
end
minetest.register_chatcommand("ssb", {
params = "<@key> [message]",
description = "Scuttlebutt Chat",
privs = {
ssb = true,
},
func = function(name, param)
local player = minetest.get_player_by_name(name)
local key, message = string.match(param, "^(@[^ ]+) *(.*)$")
if not key or key == "" then
return true, "error: could not parse key"
elseif not message or message == "" then
local settings = minetest.settings:to_table()
local ip = settings.server_address or "127.0.0.1"
local port = settings.port or 30000
message = "Please join me on minetest: " .. ip .. ":" .. port
-- return true, "error: could not parse message"
end
return true, ssb_send(player, key, message)
end
})