init.lua 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. better_nametags = {}
  2. better_nametags.allowSneak=true
  3. better_nametags.tags = {}
  4. better_nametags.players = {}
  5. minetest.settings:set_bool("unlimited_player_transfer_distance", false)
  6. minetest.settings:set("player_transfer_distance", (
  7. minetest.settings:get("active_object_send_range_blocks") or 3
  8. ))
  9. local defaultNameFunction = function(_) return _:get_player_name() end
  10. local defaultCheckFunction= function(_) return false end
  11. better_nametags.register_tag = function(tagName, color, checkFunction, nameFunction, rankWeight)
  12. if nameFunction == nil then
  13. nameFunction = defaultNameFunction
  14. end
  15. if checkFunction == nil then
  16. checkFunction = defaultCheckFunction
  17. end
  18. better_nametags.tags[tagName] = {
  19. title = tagName,
  20. Color = color,
  21. has = checkFunction,
  22. getName = nameFunction,
  23. weight = rankWeight,
  24. }
  25. end
  26. minetest.register_on_leaveplayer(function(player)
  27. better_nametags.players[player:get_player_name()] = nil
  28. end)
  29. if not minetestd then
  30. dofile(minetest.get_modpath("better_nametags").."/service.lua")
  31. dofile(minetest.get_modpath("better_nametags").."/tag_types.lua")
  32. local dt = 0
  33. minetest.register_globalstep(function(dtime)
  34. if dt < 0.5 then
  35. dt = dt + dtime
  36. return
  37. end
  38. dt = 0
  39. for _,player in pairs(minetest.get_connected_players()) do
  40. better_nametags.update_nametag(player)
  41. end
  42. end)
  43. else
  44. minetestd.register_service("better_nametags", {
  45. start = function()
  46. dofile(minetest.get_modpath("better_nametags").."/service.lua")
  47. dofile(minetest.get_modpath("better_nametags").."/tag_types.lua")
  48. minetestd.services.better_nametags.enabled = true
  49. return true
  50. end,
  51. stop = function()
  52. better_nametags.players = {}
  53. minetestd.playerctl.steps.better_nametags = nil
  54. minetestd.services.better_nametags.enabled = false
  55. end,
  56. depends = {playerctl=true},
  57. })
  58. end