目前正在为公会袭击创建“签到”命令
Posted
技术标签:
【中文标题】目前正在为公会袭击创建“签到”命令【英文标题】:Currently creating a 'check-in' command for guild raiding 【发布时间】:2019-04-14 16:57:32 【问题描述】:我目前正在尝试为公会袭击创建一个“签到”机器人命令。
简单地说,只要用户输入!checkin
,他们的用户名就会被注册到团队中。这将一直持续到团队成员满员为止。这是我当前的代码:
if (command === "checkin")
let team = [];
team.push(message.member.displayName)
现在这段代码只向团队注册了 1 个用户,我知道这是因为每当调用该命令时,该数组都会设置为一个空数组。我将如何重写此代码以使其每当用户键入!checkin
时,它们将被推入数组,而当下一个人这样做时,他将被推入更新的数组而不是空数组?
【问题讨论】:
嗨,我要删除push
标签,因为它是为了版本控制,而不是 Array.push()
:)
【参考方案1】:
如果我是正确的,您的代码将如下所示:
const Discord = require('discord.js');
const client = new Discord.Client()
client.on('message', msg =>
// ... previous code
if (command == 'checkin')
team.push(message.member.displayName);
)
问题是数组 'team'
未在正确的范围内定义。您应该在 client.on('message', msg =>
块之外定义您的数组,如下所示:
const Discord = require('discord.js');
const client = new Discord.Client()
var team = [];
这将允许将数组推入消息函数内部,并仍保留其原始内容。
如果您想了解更多关于 javascript 变量作用域的信息,我发现这个网页帮助了我:https://www.w3schools.com/js/js_scope.asp
【讨论】:
以上是关于目前正在为公会袭击创建“签到”命令的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Discord API 返回错误 405 以向公会添加斜杠命令?
Android 使用GangSDK创建第三方家族公会系统经验分享
GitGit 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )