local http_api = minetest.request_http_api() function tablelength(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end function send_messages(res) for message in string.gmatch(res["data"], "[^\n]+") do if message == "list" then local x = minetest.get_connected_players() local text = "List of Players (" text = text .. tostring(tablelength(x)) .. "/" text = text .. tostring(minetest.settings:get("max_users")) .. "):" for j, i in ipairs(x) do text = text .. "\n" .. i.get_player_name(i) end http_api.fetch_async({url = "http://localhost:" .. port .. "/sendCode", post_data = {message = text}}) elseif message == "time" then local x = minetest.get_timeofday() local text = string.format("%02d:%02d", math.floor(x*24), math.floor((x*24*60) % 60)) http_api.fetch_async({url = "http://localhost:" .. port .. "/sendCode", post_data = {message = text}}) else minetest.chat_send_all(message) end end end function main() port = minetest.settings:get("chat_server_port") if port == nil then port = "9876" end http_api.fetch({url = "http://localhost:" .. port .. "/get"}, send_messages) minetest.after(0.5, main) end function dead(player) http_api.fetch_async({url = "http://localhost:" .. port .. "/sendCode", post_data = {message = player.get_player_name(player) .. " died."}}) end function join(player) http_api.fetch_async({url = "http://localhost:" .. port .. "/sendCode", post_data = {message = player.get_player_name(player) .. " joined the server."}}) end function left(player) http_api.fetch_async({url = "http://localhost:" .. port .. "/sendCode", post_data = {message = player.get_player_name(player) .. " left the server."}}) end function chat(name, message) http_api.fetch_async({url = "http://localhost:" .. port .. "/send", post_data = {message = "<" .. name .. "> " .. message}}) end if http_api == nil then minetest.log("error", "Chat Mod is not in secure.http_mods or secure.trusted_mods. Exiting.") else main() end minetest.register_on_dieplayer(dead) minetest.register_on_joinplayer(join) minetest.register_on_leaveplayer(left) minetest.register_on_chat_message(chat)