doors.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. event.load("block_click");
  2. doors = list.new();
  3. trapdoors = list.new();
  4. doors_tag = block.getTag("minecraft:wooden_doors");
  5. trapdoors_tag = block.getTag("minecraft:wooden_trapdoors");
  6. msg("dev", "§bDoors §rloaded.");
  7. @wait
  8. wait();
  9. loc = entity.getLocation(player);
  10. world_name = world.getName(loc.getWorld(loc));
  11. if(isSurvWorldName(world_name) || isStoryWorldName(world_name)) {
  12. ignoreGoto(event);
  13. }
  14. goto("wait");
  15. @block_click
  16. if(block.hasTag(doors_tag, block) && action == "right") {
  17. player_spec = player.getAutoCloseDoor(player);
  18. door_state_1 = block.getDoorStatus(block_loc);
  19. if(!door_state_1) {
  20. if(player_spec) {
  21. list.add(doors, block_loc);
  22. sgoto(60, "closedoor");
  23. }
  24. }
  25. //Nach Doppeltür suchen
  26. door_loc_2 = block.getSecondDoor(block_loc);
  27. if(door_loc_2 != null) {
  28. door_state_2 = block.getDoorStatus(door_loc_2);
  29. if(door_state_1 && door_state_2) {
  30. block.setDoorStatus(door_loc_2, false);
  31. } elseif(!door_state_1 && !door_state_2) {
  32. block.setDoorStatus(door_loc_2, true);
  33. if(player_spec) {
  34. list.add(doors, door_loc_2);
  35. sgoto(60, "closedoor");
  36. }
  37. }
  38. }
  39. goto("wait");
  40. }
  41. if(block.hasTag(trapdoors_tag, block) && action == "right") {
  42. door_state = block.getTrapdoorStatus(block_loc);
  43. if(!door_state) {
  44. player_spec = player.getAutoCloseDoor(player);
  45. if(player_spec) {
  46. list.add(trapdoors, block_loc);
  47. sgoto(60, "closetrapdoor");
  48. }
  49. }
  50. }
  51. goto("wait");
  52. @closedoor
  53. doorloc = list.getIndex(doors, 0);
  54. list.removeIndex(doors, 0);
  55. if(block.hasTag(doors_tag, block.get(doorloc))) {
  56. if(block.getDoorStatus(doorloc)) {
  57. block.setDoorStatus(doorloc, false);
  58. }
  59. }
  60. goto("wait");
  61. @closetrapdoor
  62. doorloc = list.getIndex(trapdoors, 0);
  63. list.removeIndex(trapdoors, 0);
  64. if(block.hasTag(trapdoors_tag, block.get(doorloc))) {
  65. if(block.getTrapdoorStatus(doorloc)) {
  66. block.setTrapdoorStatus(doorloc, false);
  67. }
  68. }
  69. goto("wait");