--[[
RandomMessages mod by arsdragonfly.
arsdragonfly@gmail.com
6/19/2013
--]]
--Time between two subsequent messages.
local MESSAGE_INTERVAL = 0 

math.randomseed(os.time())

random_messages = {}
random_messages.messages = {} --This table contains all messages.

function random_messages.initialize() --Set the interval in minetest.conf.
	minetest.setting_set("random_messages_interval",120)
	minetest.setting_save();
	return 120 
end

function random_messages.set_interval() --Read the interval from minetest.conf(set it if it doesn'st exist)
	MESSAGE_INTERVAL = tonumber(minetest.setting_get("random_messages_interval")) or random_messages.initialize()
end

function random_messages.read_messages()
	local line_number = 1
	local input = io.open(minetest.get_worldpath().."/random_messages","r")
	if not input then
		local output = io.open(minetest.get_worldpath().."/random_messages","w")
		output:write("Blame the server admin! He/She has probably not edited the random messages yet.\n")
		output:write("Tell your dumb admin that this line is in (worldpath)/random_messages \n")
		io.close(output)
		input = io.open(minetest.get_worldpath().."/random_messages","r")
	end
	for line in input:lines() do
		random_messages.messages[line_number] = line
		line_number = line_number + 1
	end
	io.close(input)
end

function random_messages.display_message(message_number)
	if random_messages.messages[message_number] then
		minetest.chat_send_all(random_messages.messages[message_number])
	end
end

function random_messages.show_message()
	random_messages.display_message(math.random(#random_messages.messages))
end

--When server starts:
random_messages.set_interval()
random_messages.read_messages()

local TIMER = 0
minetest.register_globalstep(function(dtime)
	TIMER = TIMER + dtime;
	if TIMER > MESSAGE_INTERVAL then
		random_messages.show_message()
		TIMER = 0
	end
end)