init.lua 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. if not minetest.global_exists("welcome") then welcome = {} end
  2. welcome.modpath = minetest.get_modpath("welcome_msg")
  3. -- Timeout in seconds.
  4. welcome.timeout = tonumber(minetest.settings:get("welcome_msg_delay") or 15)
  5. welcome.timeout2 = tonumber(minetest.settings:get("welcome_msg_delay2") or 30)
  6. -- The welcome message.
  7. welcome.message = minetest.settings:get("welcome_msg_string") or "Welcome!"
  8. welcome.message2 = minetest.settings:get("welcome_msg_string2") or "Welcome message 2!"
  9. welcome.color = core.get_color_escape_sequence("#ff00ff")
  10. welcome.on_timer = function(pname)
  11. local player = minetest.get_player_by_name(pname)
  12. if not player then return end -- Player doesn't exist anymore.
  13. minetest.chat_send_player(pname, welcome.color .. "# Server: " .. welcome.message)
  14. end
  15. welcome.on_timer2 = function(pname)
  16. local player = minetest.get_player_by_name(pname)
  17. if not player then return end -- Player doesn't exist anymore.
  18. if welcome.message2 then
  19. minetest.chat_send_player(pname, welcome.color .. "# Server: " .. welcome.message2)
  20. end
  21. end
  22. welcome.on_joinplayer = function(player, last_login)
  23. if not player or not player:is_player() then return end
  24. local pname = player:get_player_name()
  25. if banned_names.guest_name(pname) then
  26. minetest.after(10, function() minetest.chat_send_player(pname, "# Server: WARNING! You have logged in using a \"guest name\". Please be aware that such accounts are subject to deletion WITHOUT WARNING. You are still free to explore the server, though! If you want to play permanently, log in under another (non-guest) name and register the account by crafting and keeping a Proof of Citizenship.") end)
  27. return
  28. end
  29. local pname = player:get_player_name()
  30. if passport.player_registered(pname) then return end
  31. --minetest.after(welcome.timeout, welcome.on_timer, pname)
  32. minetest.after(welcome.timeout2, welcome.on_timer2, pname)
  33. end
  34. function welcome.player_near_outback_edge(player)
  35. local pname = player:get_player_name()
  36. local spamkey = pname .. ":abyss_edge"
  37. if not spam.test_key(spamkey) then
  38. minetest.chat_send_player(pname, welcome.color ..
  39. "# Server: <" .. rename.gpn(pname) ..
  40. ">, you are at the Outback boundary. " ..
  41. "Escape is possible only through the Dimensional Gate.")
  42. spam.mark_key(spamkey, 60*5)
  43. end
  44. end
  45. if not welcome.init_done then
  46. minetest.register_on_joinplayer(function(...)
  47. return welcome.on_joinplayer(...) end)
  48. -- Support for mod reloading, if available.
  49. if minetest.get_modpath("reload") then
  50. local args = {
  51. "welcome:core",
  52. welcome.modpath .. "/init.lua",
  53. false,
  54. }
  55. reload.register_file(unpack(args))
  56. end
  57. dofile(welcome.modpath .. "/joinspec.lua")
  58. welcome.init_done = true
  59. end