Чтобы отправить сообщение в личные сообщения из текстового канала с помощью Discord.js, вам нужно получить объект пользователя и использовать его метод `send()`. Вот пример:
```javascript
// Предположим, что у вас есть объект "message" от события "message" приходящего события
// и пользователь, которому вы хотите отправить сообщение, имеет ID "userID"
const user = message.client.users.cache.get('userID'); // Получаем объект пользователя по его ID
if (!user) return console.log('Невозможно найти пользователя.');
const content = 'Привет! Это сообщение отправлено из текстового канала в личные сообщения.'; // Содержание сообщения
user.send(content)
.then(() => console.log('Сообщение отправлено в личные сообщения пользователя.'))
.catch(error => console.error(`Не удалось отправить сообщение в личные сообщения: ${error}`));
```
Чтобы получить сообщения, написанные пользователем с "специальной ролью" в канале тикета и отправить их пользователю в личные сообщения, вам нужно получить все сообщения из канала, пройти по ним и проверить роль каждого пользователя, который их написал. Вот пример:
```javascript
// Предположим, что у вас есть объект "message" от события "message" приходящего события
// и вы хотите отправить сообщения только пользователям с ролью "специальная роль"
const channel = message.guild.channels.cache.get('channelID'); // Получаем объект канала по его ID
if (!channel) return console.log('Невозможно найти канал.');
channel.messages.fetch()
.then(messages => {
messages.forEach(message => {
if (message.member.roles.cache.some(role => role.name === 'специальная роль')) {
const user = message.author;
const content = message.content;
// Отправляем сообщение пользователю в личные сообщения
user.send(content)
.then(() => console.log(`Сообщение от пользователя "${user.username}" отправлено в личные сообщения.`))
.catch(error => console.error(`Не удалось отправить сообщение от пользователя "${user.username}" в личные сообщения: ${error}`));
}
});
})
.catch(error => console.error(`Не удалось получить сообщения из канала: ${error}`));
```
Примечание: Для использования `fetch()` метода необходимо, чтобы у бота были права на просмотр истории сообщений в канале. Также убедитесь, что у вас есть актуальная версия Discord.js для использования всех функций — `^12.5.1`.