Advertisement
Primer2023

Untitled

Jun 22nd, 2023 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.85 KB | None | 0 0
  1.         TransportClient transportClient = new HttpTransportClient();
  2.         vk = new VkApiClient(transportClient);
  3.         actor = new GroupActor(207235834, "ac75d9a33acfdb1c1a1afdc875a2147956575d65020f2199f20877d476af5d973757f33077668c8fffda1");
  4.         new Thread(new Runnable() {
  5.             @SneakyThrows
  6.             @Override
  7.             public void run() {
  8.                 Integer ts = vk.messages().getLongPollServer(actor).execute().getTs();
  9.                 while (true) {
  10.                     MessagesGetLongPollHistoryQuery historyQuery = vk.messages().getLongPollHistory(actor).ts(ts);
  11.                     List<Message> messages = historyQuery.execute().getMessages().getItems();
  12.                     if (!messages.isEmpty()) {
  13.                         messages.forEach(t -> {
  14.                             int vkId = t.getFromId();
  15.                             String[] args = t.getText().split(" ");
  16.                             SocialPlayer socialPlayer = PlayerService.getPlayerByVkId(vkId);
  17.                             CommandSource source = plugin.getServer().getConsoleCommandSource();
  18.                             try {
  19.                                 switch (args[0].toLowerCase()) {
  20.                                     case "!recovery", "recovery", "!восстановить", "восстановить" -> {
  21.                                         if (!checkPlayer(vkId)) {
  22.                                             return;
  23.                                         }
  24.  
  25.                                         String newPassword = new RandomString(10).nextString();
  26.  
  27.                                         Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
  28.  
  29.                                         if (player != null) {
  30.                                             player.disconnect(format("&cАккаунт был восстановлен через вк!"));
  31.                                         }
  32.  
  33.                                         plugin.getServer().getCommandManager()
  34.                                                 .executeAsync(source, "forcechangepass " + socialPlayer.getName() + " " + newPassword);
  35.                                         sendMessage("Вы восстановили аккаунт!\n\nВаш новый пароль \"" + newPassword + "\"", vkId);
  36.                                     }
  37.                                     case "!кик", "!кикнуть", "!kick", "kick", "кик", "кикнуть" -> {
  38.                                         if (!checkPlayer(vkId)) {
  39.                                             return;
  40.                                         }
  41.  
  42.                                         Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
  43.  
  44.                                         if (player == null) {
  45.                                             sendMessage("Ваш аккаунт не в сети!", vkId);
  46.                                             return;
  47.                                         }
  48.  
  49.                                         plugin.getServer().getCommandManager().executeAsync(source, "kick " + socialPlayer.getName() +
  50.                                                 " &cАккаунт был кикнут через вк!");
  51.                                         sendMessage("Ваш аккаунт был кикнут с сервера.", vkId);
  52.                                     }
  53.                                     case "!hidekeyboard", "hidekeyboard" -> sendHideKeyboard(vkId);
  54.                                     case "!keyboard", "keyboard", "/start", "!клавиатура", "клавиатура" ->
  55.                                             sendKeyboard(vkId);
  56.                                     case "!accept", "accept", "!подтвердить", "подтвердить" -> {
  57.                                         if (!checkPlayer(vkId)) {
  58.                                             return;
  59.                                         }
  60.  
  61.                                         if (!containsConfirmation(socialPlayer.getUuid())) {
  62.                                             sendMessage("У вас нет активных подтверджений!", vkId);
  63.                                             return;
  64.                                         }
  65.  
  66.                                         socialPlayer.setAuthorized(true);
  67.                                         sendMessage("Вы подтвердили вход.", vkId);
  68.                                     }
  69.                                     case "!deny", "deny", "!отклонить", "отклонить" -> {
  70.                                         if (!checkPlayer(vkId)) {
  71.                                             return;
  72.                                         }
  73.  
  74.                                         if (!containsConfirmation(socialPlayer.getUuid())) {
  75.                                             sendMessage("У вас нет активных подтверджений!", vkId);
  76.                                             return;
  77.                                         }
  78.  
  79.                                         socialPlayer.setAuthorized(false);
  80.                                         socialPlayer.setKick(true);
  81.                                         sendMessage("Вы отклонили вход.", vkId);
  82.                                     }
  83.                                     case "!привязать", "привязать", "!link" -> {
  84.                                         if (socialPlayer != null) {
  85.                                             sendMessage("У вас уже привязан аккаунт\nИспользуйте !unlink чтобы отвязать.", vkId);
  86.                                             return;
  87.                                         }
  88.  
  89.                                         if (args.length < 2) {
  90.                                             sendMessage("Используйте !link [код]\nЧтобы получить код введите \"/addvk\" в игре", vkId);
  91.                                             return;
  92.                                         }
  93.  
  94.                                         UUID uuid = LinkService.getUUIDbyCode(args[1]);
  95.  
  96.                                         if (uuid == null) {
  97.                                             sendMessage("Не существует такого кода, видимо он уже истёк\n" +
  98.                                                     "Используйте в игре \"/addvk\" чтобы получить новый код.", vkId);
  99.                                             return;
  100.                                         }
  101.  
  102.                                         socialPlayer = PlayerService.getPlayer(uuid);
  103.  
  104.                                         if (socialPlayer == null) {
  105.                                             sendMessage("Зайдите на сервер и попробуйте еще раз.", vkId);
  106.                                             return;
  107.                                         }
  108.  
  109.                                         sendMessage("Вы привязали аккаунт " + socialPlayer.getName() + ".", vkId);
  110.                                         socialPlayer.setVkID(vkId);
  111.                                         LinkService.removeCode(uuid);
  112.                                     }
  113.                                     case "!отвязать", "отвязать", "!unlink" -> {
  114.                                         if (socialPlayer == null) {
  115.                                             sendMessage("У вас не привязан аккаунт!", vkId);
  116.                                             return;
  117.                                         }
  118.  
  119.                                         socialPlayer.setVkID(0);
  120.                                         sendMessage("Вы отвязали аккаунт.", vkId);
  121.                                     }
  122.                                     case "2fa", "!2fa" -> {
  123.                                         sendMessage("Двух-этапная авторизация" + (socialPlayer.isNeedAuthorize() ?
  124.                                                 "выключена." : "включена."), vkId);
  125.  
  126.                                         socialPlayer.setNeedAuthorize(!socialPlayer.isNeedAuthorize());
  127.                                     }
  128.                                     case "!status", "!статус", "статус" -> {
  129.                                         Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
  130.                                         sendMessage(
  131.                                                 "Статус аккаунта:\n\n" +
  132.                                                         "Никнейм: " + socialPlayer.getName() + "\n" +
  133.                                                         "Онлайн: " + (player == null ? "нет" : "да (" +
  134.                                                         player.getCurrentServer().get().getServerInfo().getName() + ")") +
  135.                                                         (player != null ? "\nIP: " + player.getRemoteAddress().getAddress()
  136.                                                         .getHostAddress().replace("/", "") : ""),
  137.                                                 vkId);
  138.                                     }
  139.                                     case "!забанить", "забанить", "!заблокировать", "заблокировать", "!ban", "ban",
  140.                                             "разблокировать", "!разблокировать" -> {
  141.                                         if (!checkPlayer(vkId)) {
  142.                                             return;
  143.                                         }
  144.  
  145.                                         boolean isBanned = Database.get().isPlayerBanned(socialPlayer.getUuid(), "127.0.0.1");
  146.  
  147.                                         if (isBanned) {
  148.                                             plugin.getServer().getCommandManager().executeAsync(source, "unban " + socialPlayer.getName() +
  149.                                                     " &cАккаунт разблокирован через вк!");
  150.                                             sendMessage("Ваш аккаунт был разблокирован", vkId);
  151.                                         } else {
  152.                                             plugin.getServer().getCommandManager().executeAsync(source, "ban " + socialPlayer.getName() +
  153.                                                     " &cАккаунт заблокирован через вк!");
  154.                                             sendMessage("Ваш аккаунт был заблокирован", vkId);
  155.                                         }
  156.                                     }
  157.                                     case "!help", "помощь", "!помощь" -> sendMessage(
  158.                                             """
  159.                                                    Список команд:
  160.  
  161.                                                    !help - список команд
  162.                                                    !link [код] - привязать аккаунт
  163.                                                    !unlink - отвязать аккаунт
  164.                                                    !показать клавиатуру - показать клавиатуру
  165.                                                    !убрать клавиатуру - убрать клавиатуру
  166.                                                    !восстановить - восстановить аккаунт
  167.                                                    !кикнуть - кикнуть аккаунт из игры
  168.                                                    !подтвердить - подтвердить вход
  169.                                                    !отклонить - отклонить вход
  170.                                                    !2fa - переключить режим входа""",
  171.                                             vkId);
  172.                                 }
  173.  
  174.                                 if (args.length < 2) {
  175.                                     return;
  176.                                 }
  177.  
  178.                                 switch (args[0].toLowerCase() + " " + args[1].toLowerCase()) {
  179.                                     case "!двух-этапная авторизация", "двух-этапная авторизация" -> {
  180.                                         if (socialPlayer.isNeedAuthorize()) {
  181.                                             sendMessage("Двух-этапная авторизация выключена.", vkId);
  182.                                         } else {
  183.                                             sendMessage("Двух-этапная авторизация включена.", vkId);
  184.                                         }
  185.  
  186.                                         socialPlayer.setNeedAuthorize(!socialPlayer.isNeedAuthorize());
  187.                                     }
  188.                                     case "!убрать клавиатуру", "убрать клавиатуру" -> sendHideKeyboard(vkId);
  189.                                     case "!показать клавиатуру", "показать клавиатуру" -> sendKeyboard(vkId);
  190.                                 }
  191.                             } catch (Exception e) {
  192.                                 e.printStackTrace();
  193.                             }
  194.                         });
  195.                     }
  196.                     ts = vk.messages().getLongPollServer(actor).execute().getTs();
  197.                     Thread.sleep(50);
  198.                 }
  199.             }
  200.         }).start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement