implement channel and shout
This commit is contained in:
parent
44d36c6801
commit
aa1cd34cc0
32
channel_mode.lua
Normal file
32
channel_mode.lua
Normal file
@ -0,0 +1,32 @@
|
||||
|
||||
-- Channel mode
|
||||
|
||||
local allchannels = {} -- channel_name --> list of players
|
||||
local playerschannel = {} -- playername --> channel_name
|
||||
|
||||
chat_modes.register("channel", {
|
||||
help = "Send messages to a specific channel only.",
|
||||
|
||||
register = function(playername, params)
|
||||
local channelname = params[1]
|
||||
local channelplayers = allchannels[ channelname ]
|
||||
|
||||
channelplayers[playername] = minetest.get_player_by_name(playername)
|
||||
playerschannel[playername] = channelname
|
||||
end,
|
||||
|
||||
deregister = function(playername)
|
||||
local channelplayers = allchannels[playername]
|
||||
|
||||
channelplayers[playername] = nil
|
||||
playerschannel[playername] = nil
|
||||
end,
|
||||
|
||||
getPlayers = function(playername, message)
|
||||
local targetplayers = {}
|
||||
|
||||
for _,player in pairs(allchannels[ playerschannel[playername] ]) do
|
||||
targetplayers[#targetplayers] = player
|
||||
end
|
||||
end
|
||||
})
|
10
shout_mode.lua
Normal file
10
shout_mode.lua
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
-- The default-default mode - just get all connected players
|
||||
chat_modes.register("shout", {
|
||||
help = "Send all messages to all players",
|
||||
register = function() end,
|
||||
deregister() = function() end,
|
||||
getPlayers = function()
|
||||
return minetest.get_connected_players()
|
||||
end
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user