Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package events;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Objects; - горит серым
- import net.dv8tion.jda.api.entities.Guild;
- import net.dv8tion.jda.api.entities.Member;
- import net.dv8tion.jda.api.entities.User;
- import net.dv8tion.jda.api.entities.channel.concrete.*;
- import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
- import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
- import net.dv8tion.jda.api.hooks.ListenerAdapter;
- import net.dv8tion.jda.api.interactions.commands.OptionMapping; - горит серым
- import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
- public class CommandExecutor extends ListenerAdapter {
- private boolean isBunkerCommand = false;
- @Override
- public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
- if (event.getName().equals("game")) {
- StringSelectMenu stringSelectMenu = StringSelectMenu.create("game-selection")
- .addOption("Бункер", "bunker")
- .addOption("Мафия", "mafia")
- .addOption("Мировой кризис", "crisis")
- .setPlaceholder("Выберите игру")
- .build();
- event.reply("Выберите игру:")
- .addActionRow(stringSelectMenu)
- .queue();
- } else if (event.getName().equals("rdc") && event.getSubcommandName().equals("game")) {
- Member member = event.getMember();
- if (member != null) {
- VoiceChannel voiceChannel = member.getVoiceState().getChannel();
- if (voiceChannel != null) {
- event.reply("Выбранный голосовой канал: " + voiceChannel.getName()).queue();
- } else {
- event.reply("Вы не находитесь в голосовом канале.").queue();
- }
- }
- }
- }
- @Override
- public void onStringSelectInteraction(StringSelectInteractionEvent event) {
- event.deferReply().queue(); // Acknowledge the interaction
- String gameId = event.getValues().get(0);
- switch (gameId) {
- case "bunker":
- isBunkerCommand = true;
- event.getHook().editOriginal("Бункер").queue();
- // Логика для игры "Бункер"
- Member member = event.getMember();
- if (member != null) {
- VoiceChannel voiceChannel = member.getVoiceState().getChannel();
- if (voiceChannel instanceof VoiceChannel) {
- sendCardsToUsersInVoiceChannel(event.getGuild(), (VoiceChannel) voiceChannel);
- }
- }
- break;
- case "mafia":
- isBunkerCommand = false;
- event.getHook().editOriginal("Мафия").queue();
- // Логика для игры "Мафия"
- break;
- case "crisis":
- isBunkerCommand = false;
- event.getHook().editOriginal("Мировой кризис").queue();
- // Логика для игры "Мировой кризис"
- break;
- }
- }
- public static void sendCardsToUsersInVoiceChannel(Guild guild, VoiceChannel voiceChannel) {
- if (voiceChannel == null) {
- System.out.println("User is not in a voice channel.");
- return;
- }
- List<Member> members = voiceChannel.getMembers();
- List<Integer> indices = new ArrayList<>();
- for (int i = 0; i < members.size(); i++) {
- indices.add(i);
- }
- Collections.shuffle(indices);
- for (int i = 0; i < members.size(); i++) {
- Member member = members.get(indices.get(i));
- User user = member.getUser();
- if (!user.isBot() && !user.isSystem()) {
- user.openPrivateChannel().queue(channel -> {
- channel.sendMessage("Ваша карта: " + generateCardForMember(member)).queue(null, error -> {
- System.out.println("Failed to send message to user " + user.getName() + ": " + error.getMessage());
- });
- });
- }
- }
- }
- public static String generateCardForMember(Member member) {
- String[] genders = {"Мужской", "Женский", "Небинарный"};
- String[] illnesses = {"Отсутствует", "Диабет", "Астма", "Рак"};
- String[] professions = {"Доктор", "Инженер", "Учитель", "Художник"};
- int age = (int) (Math.random() * 100);
- String[] phobias = {"Отсутствует", "Арахнофобия", "Акрофобия", "Клаустрофобия"};
- String[] baggage = {"Отсутствует", "Рюкзак", "Чемодан", "Сумка"};
- String gender = genders[(int) (Math.random() * genders.length)];
- String illness = illnesses[(int) (Math.random() * illnesses.length)];
- String profession = professions[(int) (Math.random() * professions.length)];
- String phobia = phobias[(int) (Math.random() * phobias.length)];
- String bag = baggage[(int) (Math.random() * baggage.length)];
- return "Карта для " + member.getEffectiveName() + "\n" +
- "Пол: " + gender + "\n" +
- "Заболевание: " + illness + "\n" +
- "Профессия: " + profession + "\n" +
- "Возраст: " + age + "\n" +
- "Фобия: " + phobia + "\n" +
- "Багаж: " + bag;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment