我正在尝试编写一个discord机器人,该机器人可以编辑每几分钟发送一次的相同消息,我已经编写了一些代码,但是只编辑了一次。我是这种事物的新手,任何想法可能出什么问题或我需要做什么?
应该使用我的FiveM Server进行编辑,但我想先完成编辑部分
我已经尝试在邮件中使用setTimeout()
,但是它只编辑一次邮件。
const config = require("./config.js");
const request = require('request');
const Discord = require('discord.js');
const client = new Discord.Client();
var ip = "Private"
var port = "30120"
var timeoutvar = "60000"
const players = request(`http://${ip}:${port}/players.json`, function (players, error, response, body) {
console.log('body:', body);
});
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
// Set the bot's presence (activity and status)
client.on("ready", () => {
client.user.setPresence({
game: {
name: 'MODPS',
type: 'WATCHING'
},
status: 'dnd'
})
})
client.on('message', msg => {
client.channels.get("channelid").send(`${players}`)
.then((msg) => {
setTimeout(function() {
msg.edit(`${players}`)
}, 2000)}
)}
)
client.login(token);
预期结果:至少每分钟左右要编辑一条消息。
实际结果:同一条消息仅编辑一次。
答案 0 :(得分:3)
您可以使用setInterval()
方法进行操作。
setInterval()
方法重复调用函数或执行代码段,每次调用之间有固定的时间延迟。
client.on('message', msg => {
client.channels.get("channelid").send(`${players}`)
.then((msg) => {
setInterval(function() {
msg.edit(`${players}`)
}, 1000)} /* 1000 ms = 1 second */
)}
)
这是setInterval()
方法的基本示例:
setInterval(function(){
console.log('Hello World');
}, 2000);
答案 1 :(得分:1)
60,000毫秒= 60秒。 setInterval
每隔x
毫秒执行一次给定功能:
client.on('message', msg => {
client.channels.get("channelid").send(`${players}`)
.then((msg) => {
setInterval(function() {
msg.edit(`${players}`)
}, 60000)}
)}
)
答案 2 :(得分:0)
这有效:
[[8,14],[10,12]]