generated from your-land/yl_template
master #10
3
api.lua
3
api.lua
@ -27,7 +27,8 @@ function yl_ticker.set(message, frequency, runtime, owner, param)
|
|||||||
|
|
||||||
-- Check frequency
|
-- Check frequency
|
||||||
if (type(frequency) ~= "number") then
|
if (type(frequency) ~= "number") then
|
||||||
return false, "frequency not a number"
|
frequency = yl_ticker.settings.frequency
|
||||||
|
--return false, "frequency not a number"
|
||||||
end
|
end
|
||||||
if (frequency <= 0) then
|
if (frequency <= 0) then
|
||||||
return false, "Frequency cannot be zero or negative"
|
return false, "Frequency cannot be zero or negative"
|
||||||
|
|||||||
@ -17,6 +17,7 @@ local chatcommand_definition = {
|
|||||||
"[yl_ticker] player " .. name .. " lists all tickers: " ..
|
"[yl_ticker] player " .. name .. " lists all tickers: " ..
|
||||||
param .. " unsuccessfully, message: " ..
|
param .. " unsuccessfully, message: " ..
|
||||||
dump(message))
|
dump(message))
|
||||||
|
if (next(message) == nil) then message = "No tickers active" end
|
||||||
return false, dump(message)
|
return false, dump(message)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -27,14 +27,12 @@ local function calculate_bucket(bucket, data) -- This is per bucket
|
|||||||
ticker._next_runtime = os.time() + n * distance
|
ticker._next_runtime = os.time() + n * distance
|
||||||
n = n + 1
|
n = n + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local delta = 1
|
local delta = 1
|
||||||
local timer = 0
|
local timer = 0
|
||||||
|
|
||||||
local gs = function(dtime)
|
local gs = function(dtime)
|
||||||
|
|
||||||
timer = timer + dtime
|
timer = timer + dtime
|
||||||
if timer <= delta then return end
|
if timer <= delta then return end
|
||||||
timer = timer - delta
|
timer = timer - delta
|
||||||
@ -50,32 +48,33 @@ local gs = function(dtime)
|
|||||||
|
|
||||||
-- Check if any ticker should be displayed
|
-- Check if any ticker should be displayed
|
||||||
for _, ticker in pairs(data) do
|
for _, ticker in pairs(data) do
|
||||||
-- Check if any ticker needs to be removed from the list due to runtime expired.
|
if current_time >= (ticker._next_runtime or 0) then
|
||||||
if ((type(ticker.runtime) == "number") and
|
|
||||||
(current_time >= ticker.runtime)) then
|
|
||||||
yl_ticker.delete(ticker.id)
|
|
||||||
table.insert(changed_buckets, ticker.frequency)
|
|
||||||
elseif current_time >= (ticker._next_runtime or 0) then
|
|
||||||
|
|
||||||
if (type(ticker._next_runtime) ~= "number") then
|
if (type(ticker._next_runtime) ~= "number") then
|
||||||
table.insert(changed_buckets, ticker.frequency)
|
table.insert(changed_buckets, ticker.frequency)
|
||||||
else
|
else
|
||||||
|
yl_ticker.log(os.date("!%H:%M:%S", os.time()) .. " = " ..
|
||||||
|
tostring(ticker.id))
|
||||||
local a_success, message = yl_ticker.say(ticker.id, "*")
|
local a_success, message = yl_ticker.say(ticker.id, "*")
|
||||||
if (a_success == false) then
|
if (a_success == false) then
|
||||||
minetest.log("error",
|
minetest.log("error",
|
||||||
"[yl_ticker] globalstep cannot send to target, message = " ..
|
"[yl_ticker] globalstep cannot send to target, message = " ..
|
||||||
dump(message) .. " : ticker = " ..
|
dump(message) .. " : ticker = " ..
|
||||||
dump(ticker))
|
dump(ticker))
|
||||||
return
|
|
||||||
end
|
end
|
||||||
ticker._next_runtime = ticker._next_runtime +
|
ticker._next_runtime = ticker._next_runtime +
|
||||||
(ticker.frequency or 3600)
|
(ticker.frequency or
|
||||||
|
yl_ticker.settings.frequency)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
yl_ticker.log(os.date("!%H:%M:%S", os.time()) .. " = " ..
|
-- Check if this ticker needs to be removed from the list due to runtime expired.
|
||||||
tostring(ticker.id))
|
if ((type(ticker.runtime) == "number") and
|
||||||
|
(current_time > ticker.runtime)) then
|
||||||
|
yl_ticker.delete(ticker.id)
|
||||||
|
table.insert(changed_buckets, ticker.frequency)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If there were any tickers that had no _next_runtime, then we need to recalculate their bucket
|
-- If there were any tickers that had no _next_runtime, then we need to recalculate their bucket
|
||||||
if next(data) then
|
if next(data) then
|
||||||
for _, bucket in ipairs(changed_buckets) do
|
for _, bucket in ipairs(changed_buckets) do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user