我正在开发一个小机器人,但我正在阻止。我想例如在中午12:00时他给我发送一条消息。我试图创建一个并行程序,但仍然无法向自己发送消息。
我的并行脚本:
const Discord = require('discord.js');
const client = new Discord.Client();
const moment = require("moment");
const cheerio = require("cheerio");
const request = require("request");
const prefix = 'dolores ';
const fs = require('fs')
const myip = "";
const queue = new Map();
var currentdate = new Date();
client.once('ready', () => {
console.log('Event activate : My Body is Ready');
});
myip.send(`test`);
client.login("");
答案 0 :(得分:0)
首先,您需要确定在X
时希望使用什么方法来做某事。
这是我的首选方法。
function checkIfNearby(){
let rightNow = new Date();
let timeNow = (rightNow.getHours() * oneHour) + (rightNow.getMinutes() * 60000) + (rightNow.getSeconds() * 1000);
if(timeNow < timeToRun && timeNow+oneHour >= timeToRun){//are within a hour's window
setTimeout(function(){
//DO ACTION
},timeToRun - timeNow);
}else{
setTimeout(checkIfNearby,oneHour);//check again in a hour.
}
}
client.on("ready",function(){
checkIfNearby();
});
另一种方法是将checkIfNearby
替换为:
function checkIfNearby(){
let rightNow = new Date();
let timeNow = (rightNow.getHours() * oneHour) + (rightNow.getMinutes() * 60000) + (rightNow.getSeconds() * 1000);
setTimeout(function(){
//DO ACTION
}, timeToRun - timeNow);
}
因此,当我们运行//DO ACTION
时,我们需要向我们的人(在本例中为您)发送一条消息。我们需要的是用户的ID和以下内容:
let user;
client.on("ready", function(){
client.users.fetch("<USER-ID-HERE>").then((fetched) => user = fetched);
}).catch(console.error);
现在代替//DO ACTION
的是if(user)user.send("Hey, it's now time");
这有效,只有一次。因此,一旦它发送了消息,就不会再做。要使其重复,请在运行checkIfNearby()
//DO ACTION