node_callbacks.lua 955 B

123456789101112131415161718192021
  1. function sabotage.on_rightclick(pos, node, clicker)
  2. local name = clicker:get_player_name()
  3. local player_attributes = clicker:get_meta()
  4. local mode = player_attributes:get_string('mode')
  5. local meta = minetest.get_meta(pos)
  6. local map_id = meta:get_string('map_id')
  7. local sabotaged = lobby.sabotage[map_id]
  8. sabotage.player_pos[name] = pos
  9. if mode == 'traitor' and not sabotaged then
  10. minetest.show_formspec(name, 'sabotage:traitor', sabotage.traitor_formspec(pos))
  11. elseif mode == 'builder' then
  12. if not minetest.is_protected(pos, name) or minetest.check_player_privs(name, {server = true}) then
  13. minetest.show_formspec(name, 'sabotage:builder', sabotage.builder_formspec(pos))
  14. end
  15. elseif mode == 'player' and sabotaged then
  16. minetest.show_formspec(name, 'sabotage:player', sabotage.player_formspec(pos))
  17. else
  18. minetest.chat_send_player(name, 'You can\'t interact with this now.')
  19. end
  20. end