--
-- 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