Ivan_number_one

ASAS

Jun 13th, 2023 (edited)
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.85 KB | None | 0 0
  1. package events;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.List;
  6. import java.util.Objects; - горит серым
  7.  
  8. import net.dv8tion.jda.api.entities.Guild;
  9. import net.dv8tion.jda.api.entities.Member;
  10. import net.dv8tion.jda.api.entities.User;
  11. import net.dv8tion.jda.api.entities.channel.concrete.*;
  12. import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
  13. import net.dv8tion.jda.api.events.interaction.component.StringSelectInteractionEvent;
  14. import net.dv8tion.jda.api.hooks.ListenerAdapter;
  15. import net.dv8tion.jda.api.interactions.commands.OptionMapping; - горит серым
  16. import net.dv8tion.jda.api.interactions.components.selections.StringSelectMenu;
  17.  
  18. public class CommandExecutor extends ListenerAdapter {
  19. private boolean isBunkerCommand = false;
  20.  
  21. @Override
  22. public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
  23. if (event.getName().equals("game")) {
  24. StringSelectMenu stringSelectMenu = StringSelectMenu.create("game-selection")
  25. .addOption("Бункер", "bunker")
  26. .addOption("Мафия", "mafia")
  27. .addOption("Мировой кризис", "crisis")
  28. .setPlaceholder("Выберите игру")
  29. .build();
  30. event.reply("Выберите игру:")
  31. .addActionRow(stringSelectMenu)
  32. .queue();
  33. } else if (event.getName().equals("rdc") && event.getSubcommandName().equals("game")) {
  34. Member member = event.getMember();
  35. if (member != null) {
  36. VoiceChannel voiceChannel = member.getVoiceState().getChannel();
  37. if (voiceChannel != null) {
  38. event.reply("Выбранный голосовой канал: " + voiceChannel.getName()).queue();
  39. } else {
  40. event.reply("Вы не находитесь в голосовом канале.").queue();
  41. }
  42. }
  43. }
  44. }
  45.  
  46. @Override
  47. public void onStringSelectInteraction(StringSelectInteractionEvent event) {
  48. event.deferReply().queue(); // Acknowledge the interaction
  49.  
  50. String gameId = event.getValues().get(0);
  51. switch (gameId) {
  52. case "bunker":
  53. isBunkerCommand = true;
  54. event.getHook().editOriginal("Бункер").queue();
  55. // Логика для игры "Бункер"
  56. Member member = event.getMember();
  57. if (member != null) {
  58. VoiceChannel voiceChannel = member.getVoiceState().getChannel();
  59. if (voiceChannel instanceof VoiceChannel) {
  60. sendCardsToUsersInVoiceChannel(event.getGuild(), (VoiceChannel) voiceChannel);
  61. }
  62. }
  63. break;
  64. case "mafia":
  65. isBunkerCommand = false;
  66. event.getHook().editOriginal("Мафия").queue();
  67. // Логика для игры "Мафия"
  68. break;
  69. case "crisis":
  70. isBunkerCommand = false;
  71. event.getHook().editOriginal("Мировой кризис").queue();
  72. // Логика для игры "Мировой кризис"
  73. break;
  74. }
  75. }
  76.  
  77. public static void sendCardsToUsersInVoiceChannel(Guild guild, VoiceChannel voiceChannel) {
  78. if (voiceChannel == null) {
  79. System.out.println("User is not in a voice channel.");
  80. return;
  81. }
  82.  
  83. List<Member> members = voiceChannel.getMembers();
  84. List<Integer> indices = new ArrayList<>();
  85. for (int i = 0; i < members.size(); i++) {
  86. indices.add(i);
  87. }
  88. Collections.shuffle(indices);
  89. for (int i = 0; i < members.size(); i++) {
  90. Member member = members.get(indices.get(i));
  91. User user = member.getUser();
  92. if (!user.isBot() && !user.isSystem()) {
  93. user.openPrivateChannel().queue(channel -> {
  94. channel.sendMessage("Ваша карта: " + generateCardForMember(member)).queue(null, error -> {
  95. System.out.println("Failed to send message to user " + user.getName() + ": " + error.getMessage());
  96. });
  97. });
  98. }
  99. }
  100. }
  101.  
  102. public static String generateCardForMember(Member member) {
  103. String[] genders = {"Мужской", "Женский", "Небинарный"};
  104. String[] illnesses = {"Отсутствует", "Диабет", "Астма", "Рак"};
  105. String[] professions = {"Доктор", "Инженер", "Учитель", "Художник"};
  106. int age = (int) (Math.random() * 100);
  107. String[] phobias = {"Отсутствует", "Арахнофобия", "Акрофобия", "Клаустрофобия"};
  108. String[] baggage = {"Отсутствует", "Рюкзак", "Чемодан", "Сумка"};
  109.  
  110. String gender = genders[(int) (Math.random() * genders.length)];
  111. String illness = illnesses[(int) (Math.random() * illnesses.length)];
  112. String profession = professions[(int) (Math.random() * professions.length)];
  113. String phobia = phobias[(int) (Math.random() * phobias.length)];
  114. String bag = baggage[(int) (Math.random() * baggage.length)];
  115.  
  116. return "Карта для " + member.getEffectiveName() + "\n" +
  117. "Пол: " + gender + "\n" +
  118. "Заболевание: " + illness + "\n" +
  119. "Профессия: " + profession + "\n" +
  120. "Возраст: " + age + "\n" +
  121. "Фобия: " + phobia + "\n" +
  122. "Багаж: " + bag;
  123. }
  124. }
  125.  
  126.  
Advertisement
Add Comment
Please, Sign In to add comment