From ef770c8c3256502f3d820331a8bf64379c6f3840 Mon Sep 17 00:00:00 2001 From: cheapie Date: Tue, 14 Mar 2017 22:06:48 -0500 Subject: Add content --- init.lua | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 init.lua (limited to 'init.lua') diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..4b6cccf --- /dev/null +++ b/init.lua @@ -0,0 +1,87 @@ +local nick_colors = { + "#4E9A06", --19 + "#CC0000", --20 + "#5C3566", --22 + "#C4A000", --24 + "#73D216", --25 + "#11A879", --26 + "#58A19D", --27 + "#57799E", --28 + "#A04265", --29 +} + +local function get_nick_color(nick) + local color = 0 + for i=1,string.len(nick),1 do + color = color + string.byte(string.sub(nick,i,i)) + end + color = color % #nick_colors + 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)) + end + 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 + if minetest.get_modpath("irc") then + irc:say(string.format("* %s %s",fromname,msg)) + end + return true +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)) + return true +end}) -- cgit v1.2.3