在加入时为 Discord 成员添加角色
Adding Role To Discord Member on Join
我正在尝试使用 js 编写一个 Discord 机器人,它将欢迎新加入者加入服务器并为他们分配 7 天的“试用会员”角色。我一直无法让角色的自动分配工作。我将在下面包含我的代码,非常感谢任何帮助。谢谢
/////Generic Authorization and packages////
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
const bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('ready', function (evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});
//////有问题的代码块从这里开始\\\
bot.on('guildMemberAdd', member => {
console.log('User ' + member.username + ' has joined the server!')
var roleid = '746791647140118591';
member.roles.add('746791647140118591').then(()=> {
bot.sendMessage({
to: member.id,
message: 'beep boop!'
})
});
////// 问题代码块结束
//protocol for setting the start date of the trial membership
var currentDate = new Date();
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var date_formatted = month + '/' + day + '/' + year;
// protocol for setting the end date of the trial membership
var end_date = new Date();
end_date.setDate(end_date.getDate()+7);
var end_day = end_date.getDate();
var end_month = end_date.getMonth()+ 1;
var end_year = end_date.getFullYear();
var formatted_end_date = end_month + '/' + end_day + '/' + end_year;
console.dir(member);
userID=member.id;
bot.sendMessage({
to: member.id,
message: 'Hi there ' +member.username+ '! Welcome to Stonks Society- we\'re glad you\'re here. Your trial membership begins today ('+ date_formatted +') and will expire in seven days ('+ formatted_end_date +')'
})
// });
});
您使用的是 discord.io 而不是 discord.js,要使用 discord.io 添加角色,您应该这样做
var roleID = '746791647140118591';
var serverID = 'the ID of the server';
bot.addToRole({
serverID: serverID,
roleID: roleID,
userID: member.id
}, (err) => {
if(err) console.log(err);
});
有关详细信息,您可以阅读文档 here
我正在尝试使用 js 编写一个 Discord 机器人,它将欢迎新加入者加入服务器并为他们分配 7 天的“试用会员”角色。我一直无法让角色的自动分配工作。我将在下面包含我的代码,非常感谢任何帮助。谢谢
/////Generic Authorization and packages////
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
const bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('ready', function (evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});
//////有问题的代码块从这里开始\\\
bot.on('guildMemberAdd', member => {
console.log('User ' + member.username + ' has joined the server!')
var roleid = '746791647140118591';
member.roles.add('746791647140118591').then(()=> {
bot.sendMessage({
to: member.id,
message: 'beep boop!'
})
});
////// 问题代码块结束
//protocol for setting the start date of the trial membership
var currentDate = new Date();
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var date_formatted = month + '/' + day + '/' + year;
// protocol for setting the end date of the trial membership
var end_date = new Date();
end_date.setDate(end_date.getDate()+7);
var end_day = end_date.getDate();
var end_month = end_date.getMonth()+ 1;
var end_year = end_date.getFullYear();
var formatted_end_date = end_month + '/' + end_day + '/' + end_year;
console.dir(member);
userID=member.id;
bot.sendMessage({
to: member.id,
message: 'Hi there ' +member.username+ '! Welcome to Stonks Society- we\'re glad you\'re here. Your trial membership begins today ('+ date_formatted +') and will expire in seven days ('+ formatted_end_date +')'
})
// });
});
您使用的是 discord.io 而不是 discord.js,要使用 discord.io 添加角色,您应该这样做
var roleID = '746791647140118591';
var serverID = 'the ID of the server';
bot.addToRole({
serverID: serverID,
roleID: roleID,
userID: member.id
}, (err) => {
if(err) console.log(err);
});
有关详细信息,您可以阅读文档 here