私信私信,欢迎新用户加入服务器
Posted
技术标签:
【中文标题】私信私信,欢迎新用户加入服务器【英文标题】:Send a direct message on private message to welcome new users who join the server 【发布时间】:2017-12-12 15:32:28 【问题描述】:我想让机器人向加入服务器的新用户发送直接/私人消息。它能够在频道上发布欢迎消息,但它不断抛出直接消息的错误。
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');
【问题讨论】:
错误是什么? 我尝试了几种方法,但大多数都给我一个功能错误。我最后使用了这个: member.sendMessage(message.author, "Hello!");这给出了一个未定义的错误。 【参考方案1】:Member
对象有一个发送方法,就像频道一样。
注意 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');
【讨论】:
【参考方案2】:使用 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()
直接向该新成员发送消息。
【讨论】:
以上是关于私信私信,欢迎新用户加入服务器的主要内容,如果未能解决你的问题,请参考以下文章