在私人消息上发送直接消息以欢迎加入服务器的新用户

时间:2017-07-08 11:52:57

标签: javascript node.js discord discord.js

您好我想让机器人向加入服务器的新用户发送直接/私人消息。它能够在频道上发布欢迎消息,但它不断为直接消息抛出错误。

const Discord = require('discord.js');
const bot = new Discord.Client ();

bot.on('ready', () => {
  console.log('I am ready!');
});

bot.on('guildMemberAdd', member => {
       member.guild.defaultChannel.send(`Welcome to the server, ${member}!`);
       console.log(`${member.user.username} has joined`);
});

bot.login('TOKEN_HERE');

2 个答案:

答案 0 :(得分:0)

Member对象有一个像channel一样的发送方法。

注意不推荐使用sendMessage

const Discord = require('discord.js');
const bot = new Discord.Client ();

bot.on('guildMemberAdd', member => {
   member.send("Welcome to the server!");
});

bot.login('TOKEN_HERE');

答案 1 :(得分:0)

使用 Python 可以运行如下脚本 (Source)

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

client = discord.Client()

@client.event
async def on_ready():
    print(f'{client.user.name} has connected to Discord!')

@client.event
async def on_member_join(member):
    await member.create_dm()
    await member.dm_channel.send(
        f'Hi {member.name}, welcome to my Discord server!'
    )

client.run(TOKEN)

on_member_join() 处理新成员加入公会的事件。

在本例中,它使用 member.create_dm() 创建直接消息通道。然后,使用该频道向该新成员.send()直接发送消息。