Guest User

Untitled

a guest
Jun 1st, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. --Well working sfinv form
  2.  
  3.  
  4. sfinv.register_page("test:gui", {
  5. title = "Some Form",
  6. is_in_nav = function(self, player, context)
  7. return minetest.check_player_privs(player, { interact = true})
  8. end,
  9. get = function(self, player, context)
  10. local players = {}
  11. context.limit_players = players
  12. local formspec = {
  13. "box[0.075,0;7.8,0.65;#111111] label[3.5,0.1;TEST] textlist[0.1,1;7.8,1;playerlist;"
  14. }
  15. local is_first = true
  16. for _ , player in pairs(minetest.get_connected_players()) do
  17. local player_name = player:get_player_name()
  18. players[#players + 1] = player_name
  19. if not is_first then
  20. formspec[#formspec + 1] = ","
  21. end
  22. formspec[#formspec + 1] = minetest.formspec_escape(player_name)
  23. is_first = false
  24. end
  25. formspec[#formspec + 1] = "]"
  26.  
  27. -- Add buttons
  28. --formspec[#formspec + 1] = "field[0.4,2.7;8,1;reason;Reason;]"
  29. formspec[#formspec + 1] = "button[0.1,3.3;2,1;kick;kick]"
  30.  
  31. return sfinv.make_formspec(player, context,
  32. table.concat(formspec, ""), false)
  33. end,
  34.  
  35.  
  36.  
  37. on_player_receive_fields = function(self, player, context, fields)
  38.  
  39. if fields.playerlist then
  40. local event = minetest.explode_textlist_event(fields.playerlist)
  41. if event.type == "CHG" then
  42. context.limit_selected_idx = event.index
  43. end
  44. elseif fields.kick then
  45. local player_name = context.limit_players[context.limit_selected_idx]
  46. local privs = minetest.get_player_privs(player:get_player_name()).kick
  47. if player_name then
  48. minetest.kick_player(player_name, "kicked")
  49. end
  50.  
  51. end
  52. end,
  53. })
Add Comment
Please, Sign In to add comment