这是我尝试过的:它只执行第一个。
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const roleName = message.member.roles.cache.find(r => r.name === "Owner")
if (roleName) {
return message.reply("Pog")
} else {
return message.reply("Sorry, an error occured.")
}
});
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'ping') {
client.commands.get('ping').execute(message, args);
} else if (command == 'youtube') {
client.commands.get('youtube').execute(message, args);
} else if (command == 'clear') {
client.commands.get('clear').execute(message, args);
} else if (command == 'mute') {
client.commands.get('mute').execute(message, args);
} else if (command == 'unmute') {
client.commands.get('unmute').execute(message, args);
}
});
我是 js 新手,我需要帮助将这两个代码组合在一起。 我想要做的就是使用命令的人需要扮演某些角色,以便像成员一样...... 不能使用静音命令。
答案 0 :(得分:0)
是的,您可以这样做,您只想先找到角色,然后在调用 .execute(message, args);
之前运行 if 语句以检查用户是否具有此角色
可以这样做:
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'ping') {
client.commands.get('ping').execute(message, args);
} else if (command == 'youtube') {
client.commands.get('youtube').execute(message, args);
} else if (command == 'clear') {
client.commands.get('clear').execute(message, args);
} else if (command == 'mute') {
if (message.member.roles.cache.some(role => role.name == "Owner")) {
client.commands.get('mute').execute(message, args);
} else {
message.reply("You are unable to use this command");
}
} else if (command == 'unmute') {
if (message.member.roles.cache.some(role => role.name == "Owner")) {
client.commands.get('unmute').execute(message, args);
} else {
message.reply("You are unable to use this command");
}
}
});
您应该避免对同一事件使用多个侦听器,而只使用一个。另请注意,如果消息是在 DM 中发送的,则 member
中将没有 message
对象