friends.txt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. executeOnce = databank.prepare("CREATE TABLE IF NOT EXISTS friends (player_id INT NOT NULL, friend_id INT NOT NULL, time BIGINT NOT NULL, PRIMARY KEY (player_id, friend_id), FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);");
  2. databank.workerExecute(executeOnce);
  3. event.load("custom_command");
  4. map.new(newfriends);
  5. map.new(aliasmap);
  6. map.add(aliasmap, "f", "friend");
  7. freundepräfix = "§5Freunde";
  8. msg("dev", "§bFriends §rwurde geladen");
  9. @wait
  10. wait();
  11. if(event == "custom_command") {
  12. origin = map.get(aliasmap, command);
  13. if(origin != null) {
  14. command = origin;
  15. }
  16. size = list.getSize(args);
  17. if(command == "friend") {
  18. if(size == 0) {
  19. goto("syntax");
  20. } else {
  21. arg0 = text.toLowerCase(list.getIndex(args, 0));
  22. if(arg0 == "add") {
  23. goto("add");
  24. } elseif(arg0 == "remove") {
  25. goto("remove");
  26. } elseif(arg0 == "list") {
  27. goto("list");
  28. } else {
  29. goto("syntax");
  30. }
  31. }
  32. }
  33. }
  34. goto("wait");
  35. @syntax
  36. player.speak(player, freundepräfix, "§r/friend ...");
  37. msg(player, "§5 - add <name> §rMarkiert einen Spieler als Freund");
  38. msg(player, "§5 - remove <name> §rEntfernt einen Spieler als Freund");
  39. msg(player, "§5 - list §rListet deine Freunde auf");
  40. goto("wait");
  41. @add
  42. if(size != 2) {
  43. player.speak(player, freundepräfix, "§r/friend add <name>");
  44. goto("wait");
  45. }
  46. friend_name = list.getIndex(args, 1);
  47. if(player_name == friend_name) {
  48. player.speak(player, freundepräfix, "§rDu kannst dich nicht selbst einladen");
  49. goto("wait");
  50. }
  51. player_id = player.getId(player);
  52. if(!checkIfEverOnline(friend_name)) {
  53. player.speak(player, freundepräfix, "§rDieser Spieler war noch nie online");
  54. goto("wait");
  55. }
  56. friend_id = player.getId(player.getUuid(friend_name));
  57. if(isAFriend(player_id, friend_id)) {
  58. player.speak(player, freundepräfix, "§rDieser Spieler ist bereits dein Freund");
  59. goto("wait");
  60. }
  61. if(map.contains(newfriends, friend_id)) {
  62. if(map.get(newfriends, friend_id) == player_id) {
  63. addFriend(player_id, friend_id);
  64. map.remove(newfriends, friend_id);
  65. player.speak(player, freundepräfix, concat("§rDu bist nun mit §7", friend_name, "§r befreundet"));
  66. sendmessage(friend_name, freundepräfix, concat("§rDu bist nun mit §7", player_name, "§r befreundet"), true);
  67. goto("wait");
  68. }
  69. }
  70. map.add(newfriends, player_id, friend_id); //Einlader, Eingeladener
  71. player.speak(player, freundepräfix, concat("§rDu hast §7", friend_name, "§r eine Einladung geschickt"));
  72. sendmessage(friend_name, freundepräfix, concat("§7", player_name, "§r möchte dein Freund sein"), true);
  73. if(isOnline(friend_name)) {
  74. friend = read.player(friend_name);
  75. msg(friend_name, text.click("§r[§aAnnehmen§r]", concat("/friend add ", player_name)));
  76. }
  77. goto("wait");
  78. @list
  79. if(size != 1) {
  80. player.speak(player, commandspräfix, "/friend list");
  81. } else {
  82. player_id = player.getId(player);
  83. friendlist = getFriendsList(player_id);
  84. listsize = list.getSize(friendlist);
  85. if(listsize == 0) {
  86. player.speak(player, freundepräfix, "§rDu hast noch keine Freunde");
  87. } else {
  88. msg(player, "§5Freunde:");
  89. for(i = 0; i <= listsize - 1; i++) {
  90. msg(player, "§r- ", list.getIndex(friendlist, i));
  91. }
  92. }
  93. }
  94. goto("wait");
  95. @remove
  96. if(size != 2) {
  97. player.speak(player, freundepräfix, "§r/friend remove <name>");
  98. } else {
  99. friend_name = list.getIndex(args, 1);
  100. player_id = player.getId(player);
  101. if(!checkIfEverOnline(friend_name)) {
  102. player.speak(player, freundepräfix, "§rDieser Spieler war noch nie online");
  103. goto("wait");
  104. }
  105. friend_id = player.getId(player.getUuid(friend_name));
  106. if(!isAFriend(player_id, friend_id)) {
  107. player.speak(player, freundepräfix, "§rDieser Spieler ist nicht dein Freund");
  108. goto("wait");
  109. }
  110. deleteFriend(player_id, friend_id);
  111. deleteFriend(friend_id, player_id);
  112. player.speak(player, freundepräfix, concat("§rDu bist nun nicht mehr mit §7", friend_name, "§r befreundet"));
  113. sendmessage(friend_name, freundepräfix, concat("§rDu bist nun nicht mehr mit §7", player_name, "§r befreundet"), true);
  114. }
  115. goto("wait");