Я создаю канал с помощью команды + упомнинанием от 1 и более участника сервер и хочу сделать его частным, и чтобы только определенные люди могли в Discord его видеть (включая упомянутых) и сам бот.
Имя чата должно быть как имя первого упомянутого участника.
Не удалось реализовать от 2 и более пользователей отмеченных. Пока получается добавлять статически, но хотелось бы динамически, чтобы сократить число строк, так же, возможно, брать данные из БД.
List<Permission> List = Arrays.asList(Permission.MESSAGE_READ, Permission.MESSAGE_WRITE);
String name = event.getMessage().getMentionedMembers().get(0).getEffectiveName().toLowerCase().replaceAll(" ", "");
event.getGuild().getCategoriesByName("Hall", true).get(0)
.createVoiceChannel(name)
.addPermissionOverride(event.getGuild().getPublicRole(), Collections.emptyList(), List)
.addPermissionOverride(event.getMessage().getMentionedMembers().get(0), List, Collections.emptyList())
.addPermissionOverride(event.getGuild().getRolesByName("Admin", true).get(0), List, Collections.emptyList())
.addPermissionOverride(event.getGuild().getRolesByName("Moderator", true).get(0), List, Collections.emptyList())
.addPermissionOverride(event.getGuild().getRolesByName("LPA", true).get(0), List, Collections.emptyList())
.addPermissionOverride(event.getGuild().getRolesByName("Tech", true).get(0), List, Collections.emptyList())
.addPermissionOverride(event.getGuild().getSelfMember(), List, Collections.emptyList())
.queue();
Ответ прост, но не очевиден.
Первые две строчки кода оставляем без изменений, а остальное удаляем и вставляем вначале это:
event.getGuild().getCategoriesByName("Hall", true).get(0).createTextChannel(name).queue();
Тут мы говорим, что создаем чат в категории Hall
.Я пытался реализовать отдельно создание чата и отдельное добаление Persmissions, но Persmissions почему-то запускались раньше, поэтому для нужной нам последовательности прибегним к лямбдам.
пишем внутри переменную channel
и дальше, если действий будет много, открываем фигурные скобки и добавляем следующие данные:
@everyone
) просто пишем channel.putPermissionOverride(event.getGuild().getPublicRole()).setDeny(list).queue();
channel.putPermissionOverride(data.getGuild().getSelfMember()).setAllow(list).queue();
List<Permission> list = Arrays.asList(Permission.MESSAGE_READ, Permission.MESSAGE_WRITE);
String name = data.getEvent().getMessage().getMentionedMembers().get(0).getEffectiveName().toLowerCase().replaceAll(" ", "");
event.getGuild().getCategoriesByName("Hall", true).get(0).createTextChannel(name).queue(
channel -> {
channel.putPermissionOverride(event.getGuild().getPublicRole()).setDeny(list).queue();
for (Member member : event.getMentionedMembers()) {
try {
channel.putPermissionOverride(member).setAllow(list).queue();
} catch (Exception ignore){}
}
for(Access access : new Database().getAccess("WHERE access_high=1")){
try {
channel.putPermissionOverride(data.getGuild().getRolesByName(access.getRole(), true).get(0)).setAllow(list).queue();
} catch (Exception ignore){}
}
channel.putPermissionOverride(data.getGuild().getSelfMember()).setAllow(list).queue();
}
);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав его
Не могу написать код, который проверяет открыт UDP порт или нетМне нужно, чтобы мой код обрабатывал ICMP пакеты от системы о том, что порт недоступен
знаю, что тут уйма ответов на мой вопрос, но я либо неправильно пробую, либо опять же неправильно пробуюРазрабатываю приложение на android
Всем Доброго дня! Подскажите как применить правило Grid к всем child элементам в Sass