繁体   English   中英

如何使用角色制作 dm 命令? / Discord js V12

[英]how to make dm command with role ? / Discord js V12

我想知道如何制作 dm 命令但有一个角色,所以我制作了这段代码,

const { Client, Message, MessageEmbed } = require('discord.js');
//const { join } = require('path');

module.exports = {
    name: 'dm-role',
    /** 
     * @param {Client} client 
     * @param {Message} message 
     * @param {String[]} args 
     */
    run: async(client, message, args) => {

        if(!args[0]) return message.channel.send("who do you want to send a message to?")
        const role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
        if(!user) return message.channel.send("no user found?")
        const reason = args.slice(1).join(" ")
        if(!reason) return message.channel.send("what's the message?");
        try {
            await user.send(reason);
            return message.channel.send("done");

        } catch {
            return message.channel.send("i cant send the dm");
        }



        
       }   
}

好的,所以我尝试了这段代码,但机器人说“我无法发送 dm”,这意味着机器人有错误

我尝试这个代码“https://stackoverflow.com/a/61618962/16849847”代码是:

const { Client, Message, MessageEmbed } = require('discord.js');
const { join } = require('path');

module.exports = {
    name: 'dm-role',
    /** 
     * @param {Client} client 
     * @param {Message} message 
     * @param {String[]} args 
     */
    run: async(client, message, args) => {

        if (!args[0]) return message.reply('you need to provide a role')
if (!args[1]) return message.reply('you need to provide a message')
const role = message.mentions.roles.first()
message.guild.roles.cache.get(role.id).members.forEach(member => member.send(args[1]))

        
       }   
}

是的,这段代码有效,但只发送了 1 句话,下一句没有发送,就像这样在此处输入图像描述

在此处输入图像描述

我希望你们能帮助我,这取决于你们,你们想修复第一个代码或第二个代码谢谢,伙计们!

问题与您发送消息的方式有关

您通过发送args[1]来发送消息,这意味着您只会发送第一个单词。

要解决此问题,请在第一个代码段中发送消息内容:

// Replace args[1] with args.slice(1).join(" ")
message.guild.roles.cache.get(role.id).members.forEach(member => member.send(args.slice(1).join(" ")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM