Add API
parent
95d1484d09
commit
449caec3f2
|
@ -1 +0,0 @@
|
|||
irc?
|
121
init.lua
121
init.lua
|
@ -1,3 +1,8 @@
|
|||
chat6 = {}
|
||||
chat6.message_normal = "normal"
|
||||
chat6.message_action = "action"
|
||||
chat6.message_private = "private"
|
||||
|
||||
local nick_colors = {
|
||||
"#4E9A06", --19
|
||||
"#CC0000", --20
|
||||
|
@ -19,49 +24,77 @@ local function get_nick_color(nick)
|
|||
return(nick_colors[color+1])
|
||||
end
|
||||
|
||||
minetest.register_on_chat_message(function(fromname,msg)
|
||||
local outgoingnick = minetest.setting_get("chat6.outgoing_nick_color") or "#CC0000"
|
||||
local outgoingmsg = minetest.setting_get("chat6.outgoing_message_color") or "#CCCCCC"
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
local players = minetest.get_connected_players()
|
||||
for _,player in pairs(players) do
|
||||
local toname = player:get_player_name()
|
||||
if toname == fromname then
|
||||
local colorednick = minetest.colorize(outgoingnick,fromname)
|
||||
local coloredmessage = minetest.colorize(outgoingmsg,msg)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,coloredmessage))
|
||||
elseif string.find(msg,toname) then
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,msg)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,coloredmessage))
|
||||
else
|
||||
local colorednick = minetest.colorize(get_nick_color(fromname),fromname)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,msg))
|
||||
function chat6.send_colored_message(fromname,msg,toname,msgtype)
|
||||
if msgtype == chat6.message_private then
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
if (not toname) or (not msg) then
|
||||
minetest.chat_send_player(fromname,minetest.colorize("#FF0000","Error")..": Player name or message missing")
|
||||
return false
|
||||
end
|
||||
if not minetest.get_player_by_name(toname) then
|
||||
minetest.chat_send_player(fromname,minetest.colorize("#FF0000","Error")..": Target player is not online")
|
||||
return false
|
||||
end
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,message)
|
||||
minetest.chat_send_player(fromname,"Message sent.")
|
||||
minetest.chat_send_player(toname,string.format("PM from %s: %s",fromname,coloredmessage))
|
||||
elseif msgtype == chat6.message_action then
|
||||
local outgoingnick = minetest.setting_get("chat6.outgoing_nick_color") or "#CC0000"
|
||||
local outgoingmsg = minetest.setting_get("chat6.outgoing_message_color") or "#CCCCCC"
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
local players = minetest.get_connected_players()
|
||||
for _,player in pairs(players) do
|
||||
local toname = player:get_player_name()
|
||||
if toname == fromname then
|
||||
local colorednick = minetest.colorize(outgoingnick,fromname)
|
||||
local coloredmessage = minetest.colorize(outgoingmsg,msg)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,coloredmessage))
|
||||
elseif string.find(msg,toname) then
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,msg)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,coloredmessage))
|
||||
else
|
||||
local colorednick = minetest.colorize(get_nick_color(fromname),fromname)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,msg))
|
||||
end
|
||||
end
|
||||
else
|
||||
local outgoingnick = minetest.setting_get("chat6.outgoing_nick_color") or "#CC0000"
|
||||
local outgoingmsg = minetest.setting_get("chat6.outgoing_message_color") or "#CCCCCC"
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
local players = minetest.get_connected_players()
|
||||
for _,player in pairs(players) do
|
||||
local toname = player:get_player_name()
|
||||
if toname == fromname then
|
||||
local colorednick = minetest.colorize(outgoingnick,fromname)
|
||||
local coloredmessage = minetest.colorize(outgoingmsg,msg)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,coloredmessage))
|
||||
elseif string.find(msg,toname) then
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,msg)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,coloredmessage))
|
||||
else
|
||||
local colorednick = minetest.colorize(get_nick_color(fromname),fromname)
|
||||
minetest.chat_send_player(toname,string.format("<%s> %s",colorednick,msg))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_chat_message(function(fromname,msg)
|
||||
if string.sub(msg,1,1) == "/" then
|
||||
return false
|
||||
end
|
||||
chat6.send_colored_message(fromname,msg,nil,chat6.message_normal)
|
||||
if minetest.get_modpath("irc") then
|
||||
irc:say(string.format("<%s> %s",fromname,msg))
|
||||
end
|
||||
return true
|
||||
end)
|
||||
|
||||
minetest.override_chatcommand("me",{func=function(fromname,msg)
|
||||
local outgoingnick = minetest.setting_get("chat6.outgoing_nick_color") or "#CC0000"
|
||||
local outgoingmsg = minetest.setting_get("chat6.outgoing_message_color") or "#CCCCCC"
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
local players = minetest.get_connected_players()
|
||||
for _,player in pairs(players) do
|
||||
local toname = player:get_player_name()
|
||||
if toname == fromname then
|
||||
local colorednick = minetest.colorize(outgoingnick,fromname)
|
||||
local coloredmessage = minetest.colorize(outgoingmsg,msg)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,coloredmessage))
|
||||
elseif string.find(msg,toname) then
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,msg)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,coloredmessage))
|
||||
else
|
||||
local colorednick = minetest.colorize(get_nick_color(fromname),fromname)
|
||||
minetest.chat_send_player(toname,string.format("* %s %s",colorednick,msg))
|
||||
end
|
||||
end
|
||||
chat6.send_colored_message(fromname,msg,nil,chat6.message_action)
|
||||
if minetest.get_modpath("irc") then
|
||||
irc:say(string.format("* %s %s",fromname,msg))
|
||||
end
|
||||
|
@ -69,19 +102,7 @@ minetest.override_chatcommand("me",{func=function(fromname,msg)
|
|||
end})
|
||||
|
||||
minetest.override_chatcommand("msg",{func=function(fromname,msg)
|
||||
local highlight = minetest.setting_get("chat6.highlight_color") or "#4E9A06"
|
||||
local toname, message = msg:match("^(%S+)%s(.+)$")
|
||||
if (not toname) or (not msg) then
|
||||
minetest.chat_send_player(fromname,minetest.colorize("#FF0000","Error")..": Player name or message missing")
|
||||
return false
|
||||
end
|
||||
if not minetest.get_player_by_name(toname) then
|
||||
minetest.chat_send_player(fromname,minetest.colorize("#FF0000","Error")..": Target player is not online")
|
||||
return false
|
||||
end
|
||||
local colorednick = minetest.colorize(highlight,fromname)
|
||||
local coloredmessage = minetest.colorize(highlight,message)
|
||||
minetest.chat_send_player(fromname,"Message sent.")
|
||||
minetest.chat_send_player(toname,string.format("PM from %s: %s",fromname,coloredmessage))
|
||||
chat6.send_colored_message(fromname,message,toname,chat6.message_private)
|
||||
return true
|
||||
end})
|
||||
|
|
Loading…
Reference in New Issue