Проверьте, является ли текстовый канал на сервере каналом объявлений, ролей или правил (discord.js)

Как проверить, является ли канал каналом сообщества внутри гильдии? Примеры канала сообщества: announcementsrolesrules. Есть ли способ определить, используется ли канал администраторами для какой-либо специальной цели, кроме общего обсуждения? Этот вопрос относится к каналам внутри сервера, а не к самим серверам.

Прошу прощения, а что такое канал сообщества?? Вы имеете в виду, как в канале объявлений? Или форумный канал? Пожалуйста, подумайте о том, чтобы быть более точным в своем вопросе, включив изображения, или подумайте о том, чтобы прочитать, как задать панель вопросов при публикации вопроса.

Jeffplays2005 28.11.2022 03:24

Отвечает ли это на ваш вопрос? Определите, является ли сервер сообществом в discord.js v12 Если нет, не могли бы вы уточнить вопрос? Проблемы с вашей терминологией.

Austin Poulson 28.11.2022 21:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
145
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прямого способа сделать это нет, поскольку эти каналы определяются пользователями неофициально. Вместо этого вы можете проверить разрешения канала и сделать предположения на основе этих настроек. Проблема в том, что серверы могут иметь совершенно разные способы использования разрешений ролей, что делает это менее эффективным. Также нет прямого способа проверить, но вот один из способов сделать это:

let isThisACommunityChannel = null;
let {id} = message.guild.defaultRole, // get the ID of defaultRole
let overwrites = message.channel.permissionOverwrites.get(id); // get the permissionOverwrites for that role

// If the overwrites exist and SEND_MESSAGES is set to false, then it's already locked
if (overwrites && overwrites.SEND_MESSAGES === false) {
  // The default role can't message here, so there's a good chance it's a special channel
  communityChannel = true;
} else {
  communityChannel = false;
}

Да, это немного похоже на это, но я просто хочу определить, является ли канал каналом сообщества, таким как канал объявлений или канал правил...

Alden Vacker 15.12.2022 17:08

Ах, я понимаю, что вы имеете в виду. Поскольку эти типы каналов на самом деле не определяются разногласиями, я уверен, что прямого способа сделать это нет. Возможно, вы могли бы фильтровать по разрешениям канала. Например, проверьте разрешения на публикацию.

Austin Poulson 15.12.2022 17:30

Нашел способ сделать это. Проверьте мой ответ :)

Austin Poulson 15.12.2022 19:28

Хорошо, я понимаю, что ты имеешь в виду, и это неплохая идея. Поэтому мой бот будет проверять разные разрешения, чтобы проверить это. Спасибо !

Alden Vacker 24.12.2022 12:35

Другие вопросы по теме