Add ability to send staff messages to Discord
This commit is contained in:
parent
bcc1c7954a
commit
9190a5541f
@ -63,5 +63,55 @@ if filter then
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
local modpath = minetest.get_modpath(minetest.get_current_modname()) .. "/"
|
--
|
||||||
dofile(modpath .. "staff_channel.lua")
|
--
|
||||||
|
--- Staff Channel
|
||||||
|
--- Moved here because http api can't be requested unless in the main file
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
local staff = {}
|
||||||
|
local http = minetest.request_http_api()
|
||||||
|
|
||||||
|
minetest.register_chatcommand("st", {
|
||||||
|
params = "<msg>",
|
||||||
|
description = "Send a message on the staff channel",
|
||||||
|
privs = { kick = true},
|
||||||
|
func = function(name, param)
|
||||||
|
local msg = "<" .. name .. "> " .. param
|
||||||
|
for _, toname in pairs(staff) do
|
||||||
|
minetest.chat_send_player(toname, minetest.colorize("#ff9900", msg))
|
||||||
|
|
||||||
|
minetest.log("action", "CHAT [STAFFCHANNEL]: <" .. name .. "> " .. param)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Send to discord
|
||||||
|
if http and minetest.settings:get("server_chat_webhook") then
|
||||||
|
http.fetch({
|
||||||
|
method = "POST",
|
||||||
|
url = minetest.settings:get("server_chat_webhook"),
|
||||||
|
extra_headers = {"Content-Type: application/json"},
|
||||||
|
timeout = 5,
|
||||||
|
data = minetest.write_json({
|
||||||
|
username = "Ingame Staff Channel",
|
||||||
|
avatar_url = "https://cdn.discordapp.com/avatars/447857790589992966/7ab615bae6196346bac795e66ba873dd.png",
|
||||||
|
content = msg,
|
||||||
|
}),
|
||||||
|
}, function() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
if minetest.check_player_privs(player, { kick = true}) then
|
||||||
|
table.insert(staff, player:get_player_name())
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
local name = player:get_player_name()
|
||||||
|
local idx = table.indexof(staff, name)
|
||||||
|
if idx ~= -1 then
|
||||||
|
table.remove(staff, idx)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
1
server_chat/settingtypes.txt
Normal file
1
server_chat/settingtypes.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
server_chat_webhook (Webhook to send staff messages to) string ""
|
@ -1,27 +0,0 @@
|
|||||||
local staff = {}
|
|
||||||
minetest.register_chatcommand("st", {
|
|
||||||
params = "<msg>",
|
|
||||||
description = "Send a message on the staff channel",
|
|
||||||
privs = { kick = true, ban = true },
|
|
||||||
func = function(name, param)
|
|
||||||
for _, toname in pairs(staff) do
|
|
||||||
minetest.chat_send_player(toname, minetest.colorize("#ff9900",
|
|
||||||
"<" .. name .. "> " .. param))
|
|
||||||
minetest.log("action", "CHAT [STAFFCHANNEL]: <" .. name .. "> " .. param)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
if minetest.check_player_privs(player, { kick = true, ban = true }) then
|
|
||||||
table.insert(staff, player:get_player_name())
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_on_leaveplayer(function(player)
|
|
||||||
local name = player:get_player_name()
|
|
||||||
local idx = table.indexof(staff, name)
|
|
||||||
if idx ~= -1 then
|
|
||||||
table.remove(staff, idx)
|
|
||||||
end
|
|
||||||
end)
|
|
Loading…
x
Reference in New Issue
Block a user