-- -- Copyright (c) 2011 Remko Tronçon -- Licensed under the GNU General Public License v3. -- See Documentation/Licenses/GPLv3.txt for more information. -- -- This script creates the wonderland world example. -- require "sluift" --sluift.debug = true characters = { {jid = "alice@wonderland.lit", name = "Alice", groups = {}, presence = ""}, {jid = "hatter@wonderland.lit", name = "Mad Hatter", groups = {}, presence = "awayAt the Tea Party"}, {jid ="queen@wonderland.lit", name = "Queen of Hearts", groups = {}, presence = "dndExecuting"}, {jid = "rabbit@wonderland.lit", name = "White Rabbit", groups = {"Animals"}, presence = "Oh dear!"}, {jid = "turtle@wonderland.lit", name = "Mock Turtle", groups = {"Animals"}, presence = ""}, } clients = {} for _, character in ipairs(characters) do print("Connecting " .. character["name"] .. "...") client = sluift.new_client(character["jid"], os.getenv("SLUIFT_PASS")) client:set_options({compress = false, tls = false}) client:connect() client:get_contacts() client:send(character["presence"]) table.insert(clients, client) for _, contact in ipairs(characters) do if contact["jid"] ~= character["jid"] then client:add_contact(contact) end end end print("Confirming subscriptions") for _, client in ipairs(clients) do for _, contact in ipairs(characters) do client:confirm_subscription(contact["jid"]) end end print("Done. Waiting ...") while true do for _, client in ipairs(clients) do client:for_event(function(e) if e["type"] == "message" then client:send_message(e["from"], "Off with their heads!") end end, 1000) end sluift.sleep(1000) end