Added input checking to task setup.
parent
c091ef0d4e
commit
c782e9be6e
|
@ -21,7 +21,7 @@ function lobby.no_drop(itemstack, dropper, pos)
|
|||
end
|
||||
|
||||
function lobby.is_integer(input)
|
||||
number = tonumber(input)
|
||||
local number = tonumber(input)
|
||||
if number then
|
||||
if math.floor(number) == number then
|
||||
return true
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -44,13 +44,17 @@ minetest.register_node('tasks:code_setup', {
|
|||
if not fields.input or fields.input == "" then
|
||||
return
|
||||
end
|
||||
local input_text = fields.input:split(', ')
|
||||
meta:set_string('xp', input_text[1])
|
||||
meta:set_string('timer', input_text[2])
|
||||
meta:set_string('infotext', input_text[3])
|
||||
meta:set_string('formspec', code_formspec_answer(pos))
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name = 'tasks:code_1', param2 = node.param2})
|
||||
if tasks.valid_input(fields.input) then
|
||||
local input_text = fields.input:split(', ')
|
||||
meta:set_string('xp', input_text[1])
|
||||
meta:set_string('timer', input_text[2])
|
||||
meta:set_string('infotext', input_text[3])
|
||||
meta:set_string('formspec', code_formspec_answer(pos))
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name = 'tasks:code_1', param2 = node.param2})
|
||||
else
|
||||
minetest.chat_send_player(sender:get_player_name(), 'Double check your formatting please.')
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -38,13 +38,17 @@ minetest.register_node('tasks:engine_0_setup',{
|
|||
if not fields.input or fields.input == "" then
|
||||
return
|
||||
end
|
||||
local node = minetest.get_node(pos)
|
||||
local inv = meta:get_inventory()
|
||||
meta:set_string('xp', fields.input)
|
||||
inv:set_size('part', 1)
|
||||
meta:set_string('infotext', 'Arc Reactor')
|
||||
meta:set_string('formspec', formspec_good)
|
||||
minetest.swap_node(pos, {name = 'tasks:engine_0_on', param2 = node.param2})
|
||||
if tasks.is_integer(fields.input) then
|
||||
local node = minetest.get_node(pos)
|
||||
local inv = meta:get_inventory()
|
||||
meta:set_string('xp', fields.input)
|
||||
inv:set_size('part', 1)
|
||||
meta:set_string('infotext', 'Arc Reactor')
|
||||
meta:set_string('formspec', formspec_good)
|
||||
minetest.swap_node(pos, {name = 'tasks:engine_0_on', param2 = node.param2})
|
||||
else
|
||||
minetest.chat_send_player(sender:get_player_name(), 'Integers only please.')
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -38,13 +38,17 @@ minetest.register_node('tasks:engine_1_setup',{
|
|||
if not fields.input or fields.input == "" then
|
||||
return
|
||||
end
|
||||
local node = minetest.get_node(pos)
|
||||
local inv = meta:get_inventory()
|
||||
meta:set_string('xp', fields.input)
|
||||
inv:set_size('part', 1)
|
||||
meta:set_string('infotext', 'Plasma Accelerator')
|
||||
meta:set_string('formspec', formspec_good)
|
||||
minetest.swap_node(pos, {name = 'tasks:engine_1_on', param2 = node.param2})
|
||||
if tasks.is_integer(fields.input) then
|
||||
local node = minetest.get_node(pos)
|
||||
local inv = meta:get_inventory()
|
||||
meta:set_string('xp', fields.input)
|
||||
inv:set_size('part', 1)
|
||||
meta:set_string('infotext', 'Plasma Accelerator')
|
||||
meta:set_string('formspec', formspec_good)
|
||||
minetest.swap_node(pos, {name = 'tasks:engine_1_on', param2 = node.param2})
|
||||
else
|
||||
minetest.chat_send_player(sender:get_player_name(), 'Integers only please.')
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -21,13 +21,17 @@ minetest.register_node('tasks:example_setup', { --This is the node that can be p
|
|||
if not fields.input or fields.input == "" then
|
||||
return
|
||||
end
|
||||
local input_text = fields.input:split(', ')
|
||||
meta:set_string('xp', input_text[1])
|
||||
meta:set_string('timer', input_text[2])
|
||||
meta:set_string('infotext', input_text[3])
|
||||
meta:set_string('formspec', '')
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name = 'tasks:example_1', param2 = node.param2}) --Swap to the active node.
|
||||
if tasks.valid_input(fields.input) then
|
||||
local input_text = fields.input:split(', ')
|
||||
meta:set_string('xp', input_text[1])
|
||||
meta:set_string('timer', input_text[2])
|
||||
meta:set_string('infotext', input_text[3])
|
||||
meta:set_string('formspec', '')
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.swap_node(pos, {name = 'tasks:example_1', param2 = node.param2}) --Swap to the active node.
|
||||
else
|
||||
minetest.chat_send_player(sender:get_player_name(), 'Double check your formatting please.')
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -56,6 +56,24 @@ function tasks.only_add_xp(xp, name) -- This function only adds XP, you are resp
|
|||
end
|
||||
end
|
||||
|
||||
function tasks.is_integer(input)
|
||||
local number = tonumber(input)
|
||||
if number then
|
||||
if math.floor(number) == number then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function tasks.valid_input(string)
|
||||
local variables = string:split(', ')
|
||||
local xp = variables[1]
|
||||
local timer = variables[2]
|
||||
if tasks.is_integer(xp) and tasks.is_integer(timer) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
tasks.formspec_configuration =
|
||||
'size[6,3]'..
|
||||
'label[.5,.25;Please enter data in this format: \nXP, Timer_Duration, Task_name]'..
|
||||
|
|
Loading…
Reference in New Issue