sitting.txt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. event.load("entity_mount");
  2. event.load("block_click");
  3. sitting = map.new();
  4. stairs_tag = block.getTag("minecraft:stairs");
  5. half_property = block.getProperty("half");
  6. msg("dev", "§bSitting §rloaded.");
  7. @wait
  8. wait();
  9. ignoreGoto(event);
  10. goto("wait");
  11. @entity_mount
  12. if(isPlayer(rider)) {
  13. player = rider;
  14. if(map.contains(sitting, player)) {
  15. entity.remove(map.get(sitting, player));
  16. map.remove(sitting, player);
  17. }
  18. }
  19. goto("wait");
  20. @block_click
  21. if(hand == "OFF_HAND") {
  22. goto("wait");
  23. }
  24. if(block.hasTag(stairs_tag, block)) {
  25. if(action == "left") {
  26. goto("wait");
  27. }
  28. if(block.getState(block_loc, half_property) != "bottom") {
  29. goto("wait");
  30. }
  31. if(item.getType(entity.getEquip(player, "hand")) != "minecraft:air") {
  32. goto("wait");
  33. }
  34. if(!loc.isAir(loc.mod(block_loc, 0, 1, 0))) {
  35. goto("wait");
  36. }
  37. if(map.contains(sitting, player)) {
  38. goto("wait");
  39. }
  40. if(player.hasMinigame(player)) {
  41. goto("wait");
  42. }
  43. if(!player.hasSittingActivated(player)) {
  44. goto("wait");
  45. }
  46. entity = entity.spawn("km:nobody", loc.mod(block_loc, 0.5, 0, 0.5), "{NoGravity:true}");
  47. map.add(sitting, player, entity);
  48. entity.mount(player, entity);
  49. }
  50. goto("wait");