因此,我创建了一个discord.js机器人并将以下内容添加到index.js:
client.on("guildCreate", guild = {
const logsServerJoin = client.channels.get('757945781352136794');
console.log(`The bot just joined to ${guild.name}, Owned by ${guild.owner.user.tag}`);
client.channels.cache.get('channel id paste here').send(`The bot just joined to ${guild.name}, Owned by ${guild.owner.user.tag}`);
var guildMSG = guild.channels.find('name', 'general');
if (guildMSG) {
guildMSG.send(` Hello there! My original name is \`Bryant\`!\n\ This bot created by **R 1 J 4 N#7686**\n\ For more info
type \`/help\`!\n\ \`Bryant - Official Server:\`
https://discord.gg/UsQFpzy`);
} else {
return;
}
});
// Logs of the bot leaves a server and changed the game of the bot
client.on("guildDelete", guild = {
client.channels.cache.get('757945781352136794').send(`The bot just
left ${guild.name}, Owned by ${guild.owner.user.tag}`);
console.log(`The bot has been left ${guild.name}, Owned by ${guild.owner.user.tag}`);
logsServerLeave.send(`The bot has been left ${guild.name}, Owned by ${guild.owner.user.tag}`);
});
它在终端上没有显示任何错误。应该让我记录一下该机器人在提到的频道中加入并离开的位置,但是没有?♂️。有人可以帮我吗?
答案 0 :(得分:0)
如果在控制台中没有控制台日志,也没有消息/错误消息告诉您找不到该频道,则问题很可能与您注册事件的方式有关,请确保'List of PPT Slides to Paste to
For i = 2 To 40
MySlideArray = Array(i)
Next i
'List of Excel Ranges to Copy from
For J = 7 To 45
MyRangeArray = Array(Sheets(J).Range("A1:K39"))
Next J
是discord.js客户端的一个实例,下面是一个最小的工作示例
client
答案 1 :(得分:0)
如果您尝试从您的家庭不和谐服务器中获取机器人提醒您的日志,您可以通过多种方式执行此操作:从缓存中获取频道、构建频道或使用网络钩子。目前您正在尝试从缓存中获取频道。虽然是一个不错的解决方案,但在以后使用分片时它可能会失败。我个人更喜欢 webhooks,因为它们是最简单和最孤立的。
这种技术与您的做法非常相似。
const channel = client.channels.cache.get('757945781352136794')
channel.send('An Event occurred')
只需将此代码放在您想要记录某些内容的任何位置即可。
const guild = new Discord.Guild(client, { id: '757945781352136794' });
const channel = new Discord.TextChannel(guild, { id: '757945781352136794' });
channel.send('An Event occurred')
此方法类似于从缓存中获取频道,但它会更快,因为您正在构建您的主公会和频道,然后将其发送给它。请注意,您需要一个可以从 message.client
我最喜欢的方法使用网络钩子。我建议您阅读 Discord 和 Discord.js
中的 discord webhooks 如何工作您还需要创建一个网络钩子。这很容易。进入您希望将 webhook 发送到的频道,然后转到集成并创建一个新的 webhook。您可以根据需要更改名称和个人资料,但请复制网址,它应该如下所示:
https://discord.com/api/webhooks/757945781352136794/OkMsuUHwdStR90k7hrfEi5*********
路径的最后一部分是 webhook 令牌,前一位是通道 ID
我建议您创建一个可以像这样调用的辅助函数:
sendWebhook('An event occurred');
然后写函数创建然后发送到webhook
function sendWebhook(text) {
const webhook = new Discord.WebhookClient('757945781352136794', 'OkMsuUHwdStR90k7hrfEi5*********');
webhook.send(text);
webhook.destroy();
}
这不会很动态,改变频道会很痛苦,但对于不断记录(如公会加入和离开)我认为这是最好的解决方案
答案 2 :(得分:0)
问题可能是您没有启用“特权网关意图”。要打开它们,请转到 https://discord.com/developers,单击您的应用程序,然后单击“Bot”,然后向下滚动并启用“PRESENCE INTENT”和“SERVER MEMBERS INTENT”并保存。它现在应该对你有用。