added saveable private messaging
This commit is contained in:
parent
b1b0a0df0c
commit
2e7218cc0f
@ -57,6 +57,9 @@ hunger_step = 2
|
||||
headbars_enable = true
|
||||
headbars_scale = 1
|
||||
|
||||
# private messages
|
||||
pm_enable_saving = true
|
||||
|
||||
# ambience noises
|
||||
flowing_water_sounds = true
|
||||
|
||||
|
7
mods/pm/README.txt
Normal file
7
mods/pm/README.txt
Normal file
@ -0,0 +1,7 @@
|
||||
Private message mod
|
||||
===================
|
||||
By Kaadmy, for Pixture
|
||||
|
||||
Send private messags that save until the player rejoins
|
||||
|
||||
Source license: WTFPL
|
1
mods/pm/depends.txt
Normal file
1
mods/pm/depends.txt
Normal file
@ -0,0 +1 @@
|
||||
default
|
83
mods/pm/init.lua
Normal file
83
mods/pm/init.lua
Normal file
@ -0,0 +1,83 @@
|
||||
--
|
||||
-- Private messages mod
|
||||
-- By Kaadmy, for Pixture
|
||||
--
|
||||
|
||||
local enable_saving = minetest.setting_getbool("pm_enable_saving")
|
||||
if enable_saving == nil then enable_saving = true end
|
||||
|
||||
local messages = {}
|
||||
|
||||
minetest.register_chatcommand(
|
||||
"pm",
|
||||
{
|
||||
params = "<player> <message>",
|
||||
description = "Send somebody a private message",
|
||||
privs = {shout=true},
|
||||
func = function(name, param)
|
||||
local sendto, message = param:match("^(%S+)%s(.+)$")
|
||||
|
||||
if not sendto then return false, "Invalid usage, see /help pm." end
|
||||
|
||||
if not minetest.get_player_by_name(sendto) then
|
||||
if enable_saving then
|
||||
if messages[sendto] == nil then messages[sendto] = {} end
|
||||
table.insert(messages[sendto], name .. ": " .. message)
|
||||
|
||||
return false, "The player " .. sendto
|
||||
.. " is not online, saving message instead."
|
||||
else
|
||||
return false, "The player " .. sendto
|
||||
.. " is not online, and PM saving is disabled."
|
||||
end
|
||||
end
|
||||
|
||||
minetest.log("action", "PM from " .. name .. " to " .. sendto
|
||||
.. ": " .. message)
|
||||
minetest.chat_send_player(sendto, "PM from " .. name .. ": "
|
||||
.. message)
|
||||
return true, "PM sent."
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_chatcommand(
|
||||
"pms",
|
||||
{
|
||||
description = "Show saved private messages",
|
||||
func = function(name, param)
|
||||
if not enable_saving then return false, "PM saving is disabled." end
|
||||
if messages[name] == nil then return false, "No saved PMs." end
|
||||
|
||||
minetest.chat_send_player(name, "Saved PMs:")
|
||||
|
||||
local str = ""
|
||||
local amt_pms = 0
|
||||
for _, msg in pairs(messages[name]) do
|
||||
amt_pms = amt_pms + 1
|
||||
str = str .. " " .. msg .. "\n"
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, str)
|
||||
|
||||
messages[name] = nil
|
||||
|
||||
return true, amt_pms .. " saved PMs"
|
||||
end
|
||||
})
|
||||
|
||||
if enable_saving then
|
||||
minetest.register_on_joinplayer(
|
||||
function(player)
|
||||
local name = player:get_player_name()
|
||||
|
||||
if messages[name] == nil then
|
||||
minetest.chat_send_player(name, "No saved PMs")
|
||||
return false
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, "You have " .. #messages[name] .. " saved PMs.")
|
||||
return true
|
||||
end)
|
||||
end
|
||||
|
||||
default.log("mod:pm", "loaded")
|
Loading…
x
Reference in New Issue
Block a user