该机器人非常简单,最终将不需要我提供任何输入。我想要的机器人程序是检查加入帐户的年龄,如果他们是过去10分钟内创建的新帐户,则禁止它们。我坚持的部分是计算我认为的时间。该漫游器没有给出任何错误,只是没有禁止我创建的新帐户。为了进行测试,我将机器人放到了我正在制造的没有其他任何人的新服务器上,并且还将时间量更改为14400秒,以便在10天之内,应该给我足够的时间弄清楚怎么了。
这是我目前的代码:
const Discord = require("discord.js");
const client = new Discord.Client();
client.on("ready", () => {
console.log("I am ready!");
});
client.on("message", (message) => {
if (message.content.startsWith("ping")) {
message.channel.send("pong!");
}
});
client.on("guildMemberAdd", (member) => {
if (Date.now() - member.user.createdAt <= 14400) {
guildMember.ban({ days: 14, reason: 'New account' })
}
});
client.login("Token");
member.client.user.createdAt 是我认为遇到问题的部分。当我在Date.now()上运行调试时,效果很好,但似乎无法获得它来计算加入帐户的期限。
我很确定这是我需要的属性,但是我必须错误地调用它。请原谅任何无知,我对js来说是新手。
https://discord.js.org/#/docs/main/master/class/User?scrollTo=createdAt
我很想知道我在做什么错。谢谢!
答案 0 :(得分:0)
最后解决了问题。这个问题实际上是多方面的。第一个问题是我以为它是在几秒钟内计算,但是实际上它是在几毫秒内计算,因此if语句永远不会正确。一旦通过将时间增加到10天(以毫秒为单位)来实现这一目标,由于没有定义,我在guildMember上遇到了一个错误。我将其更改为Member,然后在不能超过7的日期出现错误。这是最终的工作代码。
const Discord = require("discord.js");
const client = new Discord.Client();
client.on("ready", () => {
console.log("I am ready!");
});
client.on("message", (message) => {
if (message.content.startsWith("ping")) {
message.channel.send("pong!");
}
});
client.on("guildMemberAdd", (member) => {
if (Date.now() - member.user.createdAt <= 864000000) {
member.ban({ days: 7, reason: 'New account' })
}
});
client.login("Token");
答案 1 :(得分:0)
您需要将“异步”设置为工作
const Discord = require("discord.js");
const client = new Discord.Client();
client.on("ready", () => {
console.log("I am ready!");
});
client.on("message", (message) => {
if (message.content.startsWith("ping")) {
message.channel.send("pong!");
}
});
client.on("guildMemberAdd", async member => {
if (Date.now() - member.user.createdAt <= 1209600000) {
member.ban({ days: 14, reason: 'New account' })
}
});
client.login("Token");