incrementaltp: respect physics overrides
[waspsaliva.git] / clientmods / cchat / init.lua
blob6232ea5df19f2d0ad6657e30808b8fb53c9de6bd
1 --
2 -- coras Chat hacks
3 -- * verify death messages
4 -- * log chat to stdout
6 cchat = {}
8 -- verify death
9 table.insert(minetest.registered_on_receiving_chat_message, 1, function(msg)
10 local d = msg:find('\1b@mcl_death_messages\1b') --mineclone specific
11 if d then
12 -- minetest.send_chat_message("real.") --uncomment to publish approval
13 minetest.display_chat_message("real.")
14 end
16 end)
19 -- chat logging
20 local mod_name = minetest.get_current_modname()
22 local function log(level, message)
23 minetest.log(level, ('[%s] %s'):format(mod_name, message))
24 end
26 log('action', 'Chatlog loading...')
28 local LOG_LEVEL = 'action'
30 local server_info = minetest.get_server_info()
31 local server_id = server_info.address .. ':' .. server_info.port
32 local my_name = ''
34 local register_on_send = minetest.register_on_sending_chat_message or minetest.register_on_sending_chat_messages
35 local register_on_receive = minetest.register_on_receiving_chat_message or minetest.register_on_receiving_chat_messages
38 local function safe(func)
39 -- wrap a function w/ logic to avoid crashing the game
40 local f = function(...)
41 local status, out = pcall(func, ...)
42 if status then
43 return out
44 else
45 log('warning', 'Error (func): ' .. out)
46 return nil
47 end
48 end
49 return f
50 end
52 local set_my_name_tries = 0
53 local function set_my_name()
54 if minetest.localplayer then
55 my_name = minetest.localplayer:get_name()
56 elseif set_my_name_tries < 20 then
57 set_my_name_tries = set_my_name_tries + 1
58 minetest.after(1, set_my_name)
59 else
60 my_name = ''
61 end
62 end
66 local function loglastlogs()
67 if not fren then return end
68 for k,v in pairs(fren.friends) do
69 if fren.on_server(fren.name_of(k)) then
70 log("LASTLOGLOG START")
71 --minetest.display_chat_message('Last login of friend ' .. fren.name_of(k))
72 log("Last login of friend "..fren.name_of(k))
73 minetest.send_chat_message("/last-login "..fren.name_of(k))
74 end
75 end
76 for k,v in pairs(fren.enemies) do
77 if fren.on_server(fren.name_of(k)) then
78 log("Last login of enemy "..fren.name_of(k))
79 --minetest.display_chat_message('Last login of friend ' .. fren.name_of(k))
80 minetest.send_chat_message("/last-login "..fren.name_of(k))
81 minetest.after("5.0",function() log("LASTLOGLOG END") end)
82 end
83 end
84 end
86 --minetest.after("5.0",function() loglastlogs() end)
88 if minetest.register_on_connect then
89 minetest.register_on_connect(set_my_name)
90 elseif minetest.register_on_mods_loaded then
91 minetest.register_on_mods_loaded(set_my_name)
92 else
93 minetest.after(1, set_my_name)
94 end
97 if register_on_send then
98 register_on_send(safe(function(message)
99 local msg = minetest.strip_colors(message)
100 if msg ~= '' then
101 log(LOG_LEVEL, ('%s@%s [sent] %s'):format(my_name, server_id, msg))
103 end))
106 if register_on_receive then
107 register_on_receive(safe(function(message)
108 local msg = minetest.strip_colors(message)
109 if msg ~= '' then
110 log(LOG_LEVEL, ('%s@%s %s'):format(my_name, server_id, msg))
112 end))