gpt4 book ai didi

javascript - 每 x 小时在每个群组/公会的 Discord 上发送消息

转载 作者:行者123 更新时间:2023-12-01 02:31:00 25 4
gpt4 key购买 nike

目前我正在开发一个事件机器人,该机器人已在 Discord 中的几个群组中使用。所以现在我有这个代码:

if (command === "init")
{
//var d = new Date();
//var n = d.getHours();
message.channel.send("BunnBot starting...");
var interval = setInterval (function () {
message.channel.send("123")
//message.channel.send(n);
}, 30 * 1000);
}

问题是,该命令仅适用于当前组,这意味着在任何其他组中我也必须使用 init 命令。

如何解决?如何让我的机器人向每个组发送消息?

编辑:好的,我稍微改变了代码,我现在使用这个:好的,这是我的新代码,现在我遇到了一条错误消息,发送不是一个函数

client.on("ready", () => {
console.log('Logged in as BunnyBot');
setInterval (function () {
client.guilds.forEach(() => { //for each guild the bot is in
let defaultChannel = "";
client.guilds.forEach((channel) => {
if(channel.type == "text" && defaultChannel == "") {
if(channel.permissionsFor(guild.me).has("SEND_MESSAGES")) {
defaultChannel = channel;
}
}
})
message.defaultChannel.send("Message here"); //send it to whatever channel the bot has permissions to send on
console.log("Sending Messages");
})
}, 1 * 1000);
})

问题:现在我收到一条错误消息,表明 send 不是函数。

最佳答案

暂时忽略#general-channel情况,您可以通过执行以下操作来完成所有公会发帖:

编辑:

const Discord = require("discord.js");
const bot = new Discord.Client();
bot.on("ready", () => {
bot.guilds.forEach((guild) => { //for each guild the bot is in
let defaultChannel = "";
guild.channels.forEach((channel) => {
if(channel.type == "text" && defaultChannel == "") {
if(channel.permissionsFor(guild.me).has("SEND_MESSAGES")) {
defaultChannel = channel;
}
}
})
setInterval (function () {
defaultChannel.send("Message here") //send it to whatever channel the bot has permissions to send on
}, 30 * 1000);
})
})

这段代码应该以您想要的时间间隔向您的机器人所在的所有公会发送您想要的消息,尽管可能不是您想要的 channel

关于javascript - 每 x 小时在每个群组/公会的 Discord 上发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com