55 lines
1.7 KiB
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
|
|
})
|