С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.05.2024
Сообщений: 1

Майнкрафт плагин для заявок на Java в Discord работает не так, как должен

17.05.2024, 22:43. Показов 1295. Ответов 1

Студворк — интернет-сервис помощи студентам
Сделали плагин, который нужен для создания заявок на майнкрафт сервер.
Должен делать так: Игрок пишет заявку на сервер, ему приходит сообщение в ЛС о том, что он оставил заявку. После, если админ её принимает через реакцию - бот отправляет об этом сообщение игроку в ЛС, выдаёт ему роль в Дискорд сервере и добавляет игрока в вайтлист в Майнкрафте.
Но выходит так, что игрок пишет заявку, ему приходит об этом сообщение в лс. Когда админ её принимает нажатием реакции, то бот отправляет сообщение не игроку в лс, а админу в лс. И роль выдаёт не игроку, а тому, кто нажал реакцию.
Помогите, пожалуйста!



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
            // Создание встроенного сообщения
            String embedTitle = MDM.getInstance().getConfig().getString("discord.messages.verification.title");
            String embedDescription = MDM.getInstance().getConfig().getString("discord.messages.verification.description")
                    .replace("%user_id%", event.getUser().getId())
                    .replace("%nick%", nick)
                    .replace("%age%", age)
                    .replace("%description%", description);
            Color customColor = new Color(0, 255, 0);
            EmbedBuilder embedBuilder = new EmbedBuilder()
                    .setTitle(embedTitle)
                    .setDescription(embedDescription)
                    .setThumbnail("https://cravatar.eu/helmavatar/" + nick + "/64.png")
                    .setColor(customColor);
 
            // Отправка сообщения с кнопками
            event.getJDA().getTextChannelById(MDM.getInstance().getConfig().getString("discord.messages.verification.channel-id"))
                    .sendMessageEmbeds(embedBuilder.build())
                    .queue((message) -> {
                        
                        User user = event.getUser();
                        user.openPrivateChannel().queue((channel) ->
                                channel.sendMessage("Здравствуйте! Заявка успешно подана! Ожидайте её рассмотрения.").queue());
                        message.addReaction(Emoji.fromFormatted("✅")).queue(); // Галачка
                        message.addReaction(Emoji.fromFormatted("❌")).queue(); // Крестик
 
                    });
        }
    }
// Логика кнопок
    @Override
    public void onMessageReactionAdd(@NotNull MessageReactionAddEvent event) {
        if (!event.getUser().isBot()) {
            switch (event.getEmoji().getName()) {
                case "✅":
                    if (event.getUser().getId().equals(applicantId)) {
                        Role role = event.getGuild().getRoleById(MDM.getInstance().getConfig().getString("discord.role_id"));
                        Member member = event.getMember();
                        event.getGuild().addRoleToMember(member, role).queue();
                        System.out.println("Роль добавлена пользователю с ID: " + applicantId);
                        String command = MDM.getInstance().getConfig().getString("minecraft.command")
                                .replace("%player%", nick);
                        Bukkit.getScheduler().runTask(MDM.getInstance(), () -> {
                            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), command);
                            System.out.println("Команда '" + command + "' выполнена для игрока: " + nick);
                        });
 
                        User user = event.getUser();
                        user.openPrivateChannel().queue((channel) -> {
                            channel.sendMessage("Здравствуйте, ваша заявка успешно рассмотрена!\n \n IP-сервера можно посмотреть в ДС канале '〔\uD83D\uDC8E〕ip•сервера'").queue();
                            System.out.println("Сообщение отправлено пользователю с ID: " + applicantId);
                        });
                    }
                    break;
                case "❌":
                    if (event.getUser().getId().equals(applicantId)) {
                        User user = event.getUser();
                        user.openPrivateChannel().queue((channel) -> {
                            channel.sendMessage("Здравствуйте, к сожалению ваша заявка была отклонена.").queue();
                            System.out.println("Заявка пользователя с ID: " + applicantId + " была отклонена.");
                        });
                    }
                    break;
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2024, 22:43
Ответы с готовыми решениями:

Как открыть файлы через Java плагин для серверов майнкрафт
Видел несколько серверов где есть команда /rms ,она(команда) скачивает и открывает всякие файлы на компе через конфиг, я хочу понять как...

Плагин на Java для Майнкрафт сервера
Доброго времени суток. Стоит задача - реализовать плагин для сервера Майнкрафт. Он должен выдавать игроку определенные привилегии и...

Собрал пк но он не работает так как должен
Комплектующие: AMD FX 8320 GTX 660 m5a97 r2.0 8 ОЗУ 4х4 Суть в том что я играю 2 игры всего лишь. Дота 2, CS:GO - вот например...

1
 Аватар для MrGemy
6 / 5 / 2
Регистрация: 10.09.2023
Сообщений: 41
20.05.2024, 20:21
Цитата Сообщение от To1s Посмотреть сообщение
Member member = event.getMember();
Ты получаешь пользователя, который нажал на кнопку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2024, 20:21
Помогаю со студенческими работами здесь

Код работает не так как должен
Читаю я значит книгу, а там вот такой код: prompt = "\nTell me something, and I will repeat it back to you:" prompt +=...

Отладчик работает не так как казалось бы должен
Прошу объяснить, почему отладчик работает не так как казалось бы должен. Т.е. привожу для примера такой код: ; Создаём окно. ...

(потоки )не работает так как должен в чем причина
#include <iostream> #include <cstdlib> #include <thread> using namespace std; // Функция для выполнения в дочернем потоке: void...

Плагин должен работать только в записях,а работает и в page.php
Плагин создавался для отображения строки в записях"<p>При копировании статьи, ставьте обратную ссылку, пожалуйста!</p>"; А...

На ПК интернет работает так, как и должен, как я подключил интернет к ноутбуку скорость упал на несколько раз
и пинг в играх от 500 до 1000 доходит. На сайтах тоже грузит долго.На вирус проверял не нашел.Интернет кабельный 10 Мбит/с с адаптером...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru