javascript - discord.js 向具有角色的用户发送预定消息
问题描述
我正在做一个小指导学生应用程序,但现在我正在使用不和谐作为应用程序的持有者
我想要完成的不是发送预定消息,因为我为此使用了 node.schedule,我正在尝试向每个具有特定角色的用户发送预定的私人消息
const botconfig = require('./botconfig.json');
const token = '*';
const Discord = require('discord.js');
const schedule = require('node-schedule');
const client = new Discord.Client();
var classA = '?';
var sumaryA = '?';
var profA = '?';
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
var class8_30 = schedule.scheduleJob({hour: 8, minute: 30, dayOfWeek: 1}, function(){
classA = 'English';
client.users.get("500087456046120961").send("Class now");
});
});
client.on('message', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
if(msg.content.toLowerCase().startsWith('!myclassis')){
var args = msg.content.toLowerCase().split(' ');
console.log(args);
if(args[1] === '10a'){
var t10A = msg.guild.roles.find('name', 'Class_10A');
msg.member.addRole(t10A.id);
msg.channel.send('You\'re now part of class 10A');
}
}
if (msg.content.toLowerCase() === "class"){
let c10A = msg.guild.roles.find("name", "Class_10A");
if (msg.member.roles.has(c10A.id))
msg.author.send(aulaA);
}
});
client.login(token);
我现在使用的方式是通过 id 发送消息,这实际上既不实用也不“自动”我看过很多视频,我已经阅读了文档,但我真的找不到它,但我确定它存在我只是不知道该怎么做,也找不到怎么做
如果有人可以帮助我,我会很乐意帮助并感谢花在这上面的时间:)
解决方案
如果我理解你的问题是正确的,你可以通过首先获取应用角色的公会来解决它。然后,您将获得需要用户的角色。然后你得到所有的公会成员并向每个成员发送消息。
您可以在下面找到它如何工作的示例。自己尝试一下,如果您有任何问题,请告诉我。
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
var class8_30 = schedule.scheduleJob({hour: 8, minute: 30, dayOfWeek: 1}, function(){
let guild = client.guilds.find((guild) => guild.id === '<Guild ID here>');
if (!guild) {
// Guild can't be found
return;
}
let role = guild.roles.find((role) => role.name === '<Role name here>');
if (!role) {
// Role can't be found
return;
}
role.members.forEach((member) => {
member.send('Class now!')
// Should there be an error, log it to the console
.catch(console.error);
});
});
});
推荐阅读
- java - Cassandra 忽略更新空值 spring boot
- java - 如何修复 Eclipse IDE 运行配置(出现问题对话框)
- build - 发布工件的 Azure Devops 构建管道失败
- python - 将带有空格作为分隔符的 .txt 转换为带有逗号作为分隔符的 .csv
- r - R中整个数据帧的多次替换
- laravel - 有没有办法将一个 URI 用于多个路由?
- javascript - NPM start 显示错误
- c# - 这种 WCF ChannelFactory 类型的怪异怎么可能?
- reactjs - IBM-Watson 助手 - 加载资源失败:服务器响应状态为 404(未找到)
- python - 画布未正确对齐