Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TransportClient transportClient = new HttpTransportClient();
- vk = new VkApiClient(transportClient);
- actor = new GroupActor(207235834, "ac75d9a33acfdb1c1a1afdc875a2147956575d65020f2199f20877d476af5d973757f33077668c8fffda1");
- new Thread(new Runnable() {
- @SneakyThrows
- @Override
- public void run() {
- Integer ts = vk.messages().getLongPollServer(actor).execute().getTs();
- while (true) {
- MessagesGetLongPollHistoryQuery historyQuery = vk.messages().getLongPollHistory(actor).ts(ts);
- List<Message> messages = historyQuery.execute().getMessages().getItems();
- if (!messages.isEmpty()) {
- messages.forEach(t -> {
- int vkId = t.getFromId();
- String[] args = t.getText().split(" ");
- SocialPlayer socialPlayer = PlayerService.getPlayerByVkId(vkId);
- CommandSource source = plugin.getServer().getConsoleCommandSource();
- try {
- switch (args[0].toLowerCase()) {
- case "!recovery", "recovery", "!восстановить", "восстановить" -> {
- if (!checkPlayer(vkId)) {
- return;
- }
- String newPassword = new RandomString(10).nextString();
- Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
- if (player != null) {
- player.disconnect(format("&cАккаунт был восстановлен через вк!"));
- }
- plugin.getServer().getCommandManager()
- .executeAsync(source, "forcechangepass " + socialPlayer.getName() + " " + newPassword);
- sendMessage("Вы восстановили аккаунт!\n\nВаш новый пароль \"" + newPassword + "\"", vkId);
- }
- case "!кик", "!кикнуть", "!kick", "kick", "кик", "кикнуть" -> {
- if (!checkPlayer(vkId)) {
- return;
- }
- Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
- if (player == null) {
- sendMessage("Ваш аккаунт не в сети!", vkId);
- return;
- }
- plugin.getServer().getCommandManager().executeAsync(source, "kick " + socialPlayer.getName() +
- " &cАккаунт был кикнут через вк!");
- sendMessage("Ваш аккаунт был кикнут с сервера.", vkId);
- }
- case "!hidekeyboard", "hidekeyboard" -> sendHideKeyboard(vkId);
- case "!keyboard", "keyboard", "/start", "!клавиатура", "клавиатура" ->
- sendKeyboard(vkId);
- case "!accept", "accept", "!подтвердить", "подтвердить" -> {
- if (!checkPlayer(vkId)) {
- return;
- }
- if (!containsConfirmation(socialPlayer.getUuid())) {
- sendMessage("У вас нет активных подтверджений!", vkId);
- return;
- }
- socialPlayer.setAuthorized(true);
- sendMessage("Вы подтвердили вход.", vkId);
- }
- case "!deny", "deny", "!отклонить", "отклонить" -> {
- if (!checkPlayer(vkId)) {
- return;
- }
- if (!containsConfirmation(socialPlayer.getUuid())) {
- sendMessage("У вас нет активных подтверджений!", vkId);
- return;
- }
- socialPlayer.setAuthorized(false);
- socialPlayer.setKick(true);
- sendMessage("Вы отклонили вход.", vkId);
- }
- case "!привязать", "привязать", "!link" -> {
- if (socialPlayer != null) {
- sendMessage("У вас уже привязан аккаунт\nИспользуйте !unlink чтобы отвязать.", vkId);
- return;
- }
- if (args.length < 2) {
- sendMessage("Используйте !link [код]\nЧтобы получить код введите \"/addvk\" в игре", vkId);
- return;
- }
- UUID uuid = LinkService.getUUIDbyCode(args[1]);
- if (uuid == null) {
- sendMessage("Не существует такого кода, видимо он уже истёк\n" +
- "Используйте в игре \"/addvk\" чтобы получить новый код.", vkId);
- return;
- }
- socialPlayer = PlayerService.getPlayer(uuid);
- if (socialPlayer == null) {
- sendMessage("Зайдите на сервер и попробуйте еще раз.", vkId);
- return;
- }
- sendMessage("Вы привязали аккаунт " + socialPlayer.getName() + ".", vkId);
- socialPlayer.setVkID(vkId);
- LinkService.removeCode(uuid);
- }
- case "!отвязать", "отвязать", "!unlink" -> {
- if (socialPlayer == null) {
- sendMessage("У вас не привязан аккаунт!", vkId);
- return;
- }
- socialPlayer.setVkID(0);
- sendMessage("Вы отвязали аккаунт.", vkId);
- }
- case "2fa", "!2fa" -> {
- sendMessage("Двух-этапная авторизация" + (socialPlayer.isNeedAuthorize() ?
- "выключена." : "включена."), vkId);
- socialPlayer.setNeedAuthorize(!socialPlayer.isNeedAuthorize());
- }
- case "!status", "!статус", "статус" -> {
- Player player = plugin.getServer().getPlayer(socialPlayer.getUuid()).orElse(null);
- sendMessage(
- "Статус аккаунта:\n\n" +
- "Никнейм: " + socialPlayer.getName() + "\n" +
- "Онлайн: " + (player == null ? "нет" : "да (" +
- player.getCurrentServer().get().getServerInfo().getName() + ")") +
- (player != null ? "\nIP: " + player.getRemoteAddress().getAddress()
- .getHostAddress().replace("/", "") : ""),
- vkId);
- }
- case "!забанить", "забанить", "!заблокировать", "заблокировать", "!ban", "ban",
- "разблокировать", "!разблокировать" -> {
- if (!checkPlayer(vkId)) {
- return;
- }
- boolean isBanned = Database.get().isPlayerBanned(socialPlayer.getUuid(), "127.0.0.1");
- if (isBanned) {
- plugin.getServer().getCommandManager().executeAsync(source, "unban " + socialPlayer.getName() +
- " &cАккаунт разблокирован через вк!");
- sendMessage("Ваш аккаунт был разблокирован", vkId);
- } else {
- plugin.getServer().getCommandManager().executeAsync(source, "ban " + socialPlayer.getName() +
- " &cАккаунт заблокирован через вк!");
- sendMessage("Ваш аккаунт был заблокирован", vkId);
- }
- }
- case "!help", "помощь", "!помощь" -> sendMessage(
- """
- Список команд:
- !help - список команд
- !link [код] - привязать аккаунт
- !unlink - отвязать аккаунт
- !показать клавиатуру - показать клавиатуру
- !убрать клавиатуру - убрать клавиатуру
- !восстановить - восстановить аккаунт
- !кикнуть - кикнуть аккаунт из игры
- !подтвердить - подтвердить вход
- !отклонить - отклонить вход
- !2fa - переключить режим входа""",
- vkId);
- }
- if (args.length < 2) {
- return;
- }
- switch (args[0].toLowerCase() + " " + args[1].toLowerCase()) {
- case "!двух-этапная авторизация", "двух-этапная авторизация" -> {
- if (socialPlayer.isNeedAuthorize()) {
- sendMessage("Двух-этапная авторизация выключена.", vkId);
- } else {
- sendMessage("Двух-этапная авторизация включена.", vkId);
- }
- socialPlayer.setNeedAuthorize(!socialPlayer.isNeedAuthorize());
- }
- case "!убрать клавиатуру", "убрать клавиатуру" -> sendHideKeyboard(vkId);
- case "!показать клавиатуру", "показать клавиатуру" -> sendKeyboard(vkId);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- });
- }
- ts = vk.messages().getLongPollServer(actor).execute().getTs();
- Thread.sleep(50);
- }
- }
- }).start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement