This mod asks every new player the root of 16. If a player answers uncorrectly, it gets banned.
This mod can filter very stupid players and bots.
Code: Select all
-- THIS CODE IS ONLY FOR 0.4 COMPATIBILITY, will be removed by 0.5
if not minetest.translate then
function minetest.translate(textdomain, str, ...)
local arg = {n=select('#', ...), ...}
return str:gsub("@(.)", function(matched)
local c = string.byte(matched)
if string.byte("1") <= c and c <= string.byte("9") then
return arg[c - string.byte("0")]
else
return matched
end
end)
end
function minetest.get_translator(textdomain)
return function(str, ...) return minetest.translate(textdomain or "", str, ...) end
end
end
-- ENВ
local S = minetest.get_translator("mathknowledge")
local mtlog = minetest.log
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local mainformspec = ""..
"size[4,3]" ..
"label[0,0;"..S("Math test").."]" ..
"field[1,1.5;3,1;name;"..S("What is the root of 16?")..";]" ..
"button_exit[1,2;2,1;exit;Check]"
minetest.register_on_newplayer(function(player)
local name = player:get_player_name()
minetest.show_formspec(name, modname.."testform", mainformspec)
end)
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname == modname.."testform" then
if fields.name ~= "4" then
minetest.ban_player(player:get_player_name())
end
return true
end
end)