local S = minetest.get_translator("site_connect") site_connect = {} site_connect.modpath = minetest.get_modpath("site_connect") dofile(site_connect.modpath.."/hash.lua") local pass = {} --[[ formspec_version[6] size[8,5] button[4.4,3.7;3,0.8;save;Сохранить] field[0.5,2.2;5,0.8;pass;Пароль;] label[0.5,1.2;Введите пароль\, для авторизации на сайте] label[0.5,0.6;Внимание! Сайт в процесе разработки] label[0.5,3.4;Сообщение] ]] local function get_formspec_main(name) local formspec = { "size[8,5]", "label[0.2,0.4;".. S("Attention! The site is under development.") .."]", "label[0.2,1;" .. S("Enter your password to log in to the site") .. "]", "field[0.5,2.2;5,0.8;pass;".. S("Password") ..";]", "button[4.3,3.4;3,0.8;save;".. S("Save") .."]", } if pass[name] == 'empty' then table.insert(formspec, 'label[0.2,3.4;'.. S("The password field must not be empty.") ..']') end if pass[name] == 'success' then table.insert(formspec, 'label[0.2,3.4;'.. S("Password saved") ..']') end return table.concat(formspec, "") end minetest.register_chatcommand("set_site_pass", { description = S("Setting up an authorization password for the site"), privs = { interact = true }, func = function(name) minetest.show_formspec(name, "site_connect:set_password", get_formspec_main(name)) end }) minetest.register_on_player_receive_fields(function(player, formname, fields) local name = player:get_player_name() if formname ~= "site_connect:set_password" then return end if fields.save then local fpass = string.gsub(fields.pass, "%s+", "") if fpass == '' then --minetest.chat_send_all('Поле пароля не должно быть пустым') pass[name] = 'empty' minetest.show_formspec(name, "site_connect:set_password", get_formspec_main(name)) return end pass[name] = 'success' local save_meta = player:get_meta() save_meta:set_string("site_connect:password", sha256(fpass)) minetest.show_formspec(name, "site_connect:set_password", get_formspec_main(name)) --minetest.chat_send_all(sha256(fields.pass)) end end)