检测机器人帐户是否离线/在线

2024-04-13

我正在使用presenceUpdate然而,它触发了两次,我被告知它正在发出我与机器人拥有的共享服务器的数量。目前我的代码输出online两次。我不确定如何让它只输出一次。

if (newPresence.userID === botid) {
  if (newPresence.status === 'online') {
    console.log(newPresence.status); // Should output 'online' currently outputs 'online online'

根据Discord.js 的文档 https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-presenceUpdate presenceUpdate is Emitted whenever a guild member's presence (e.g. status, activity) is changed.

因此,这与您与机器人共享的服务器数量无关。

您可以尝试使用以下命令检查客户端的 pingPresence#status https://discord.js.org/#/docs/main/stable/class/Presence?scrollTo=status每 5 分钟,您可以编写一个如下函数:

function checkStatus() {
    if (client.users.fetch(botID).presence.status === "online" ) {
   return true;
} else {
   return false;
}
}

然后你可以运行这个:

client.setInterval(() => checkPing(), 300000);

300000是 5 分钟(以毫秒为单位),因此每 5 分钟就会运行该函数。

您可以阅读更多有关client.setInterval() https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=setInterval

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测机器人帐户是否离线/在线 的相关文章

随机推荐

  • UITapGestureRecognizer 不适用于 .began 状态

    我在我的应用程序中添加了两个手势识别器UIView func tap sender UITapGestureRecognizer if sender state began print snapping photo func longPre
  • 服务器操作的 Node.js 客户端进度指示器

    我的 Node js 服务器将对上传的文件执行某些操作 我想将近乎实时的进度反映给客户端 此操作大约需要 30 秒 1 分钟才能完成 理想情况下 文件上传后 客户端将能够观察服务器对文件操作的进度 我可以执行常规轮询 长轮询 或者通过 we
  • 如何在会话中存储石英作业的结果?

    我已经在 Grails 2 1 应用程序中安装了 Quartz 插件 每 5 分钟就会触发一个作业来计算一些数字 这些数字显示在每个页面的侧栏上 计算结果会经常变化 我的目标是当用户刷新屏幕时 他们可以在侧边栏上看到新结果 现在我的方法是将
  • php 中的 git post-receive 挂钩

    我希望能够在 post receive 挂钩上执行 php 挂钩 将文件从 git 存储库复制到同一服务器上的 web 文件夹 并且只有在主分支上推送文件时才运行 忽略其他分支 以下是我到目前为止所得到的 usr bin php 基本上 我
  • 如何从生成的sql返回本地临时表

    我有过滤 SQL 它返回列数不确定的查询 并希望在存储过程中使用结果 DECLARE RecordSelectionSql VARCHAR MAX SET RecordSelectionSql SELECT SQLQUERY FROM Re
  • 创建 tar 文件并按当前日期命名

    我正在尝试在 bash 中创建一个备份脚本 以 tar 压缩文件夹的内容并将生成的文件移动到某处 但我真的不知道该怎么做 bin bash name date y m d tar zcvf name code 但结果是文件只是命名为 y m
  • 如何在 Kotlin 中将 Fuel 与协程一起使用?

    我想获取 API 请求并将请求的数据保存到数据库 还想返回数据 即写入数据库 我知道 这在 RxJava 中是可能的 但现在我用 Kotlin 协程编写 目前使用 Fuel 而不是 Retrofit 但差异不是那么大 我读如何将 Fuel
  • 使用 Windows 服务总线 (1.1) 配置向导配置时出错

    我正在尝试使用服务总线配置向导配置 Windows 服务总线 1 1 当我尝试配置它时 出现以下错误 谁能告诉我出了什么问题 错误 5 9 2014 9 32 40 AM System Management Automation Cmdle
  • 使用 Mac Excel VBA 另存为 pdf

    我在 Mac OS 上使用 Excel VBA 保存为 PDF 有时不起作用 它会给 打印时出错 then 运行时错误 1004 应用程序定义或对象定义的错误 我的代码 昨天有效 a For Windows Dim wksSheet As
  • 在 Go 中将 https://www.example.com 重定向到 https://example.com

    现在我正在将 http 的所有内容重定向到 https 如下所示 func main router httprouter New router POST api register toHandle register router GET a
  • 使用 C# 和 ASP.Net 设置 type="password" 的输入标记的值

    所以我有这个输入标签
  • onclick 或内联脚本在扩展中不起作用

    这似乎是最简单的事情 但它就是行不通 在普通浏览器中 html 和 js 文件可以完美运行 但在 Chrome Firefox 扩展中onClick函数没有执行它应该做的事情 js 文件 function hellYeah text doc
  • OData 中的过滤器和集合

    这与 Azure 最近推出的搜索服务有关 该服务目前处于预览状态 我试图弄清楚如何将 OData 的过滤器与集合一起使用 我知道我可以这样做 filter Products any p p eq WidgetA 它将按 WidgetA 过滤
  • Python-如何获取文本文件中的行数[重复]

    这个问题在这里已经有答案了 我想知道是否可以在不使用命令的情况下知道有多少行包含我的文件文本 with open test txt as f text f readlines size len text 我的文件非常大 所以很难使用这种方法
  • 使用 C# 添加附件到电子邮件

    我正在使用此答案中的以下代码通过 Gmail 在 NET 中发送电子邮件 https stackoverflow com questions 32260 sending email in net through gmail 我遇到的问题是在
  • 调整文本区域大小以适合所有内容[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • Google Play 中的生产版和测试版

    我已在 Google Play 中以生产模式发布了一个应用程序 现在 我有一个新版本 我想以 Beta 模式为有限数量的私人 Beta 用户发布 有可能两者兼得吗 即生产模式下的版本 1 0 和测试模式下的版本 1 1 或者我应该维护一个不
  • Node.js 中 For 循环中的 async.waterfall

    使用时async waterfall https github com caolan async在一个for循环 看来for循环在嵌套之前迭代async waterfall完成所有步骤 如何避免这种情况 for var i 0 i lt u
  • NSString sizeWithAttributes:内容矩形

    如何获得 NSString 的大小 就好像它在 NSRect 中绘制一样 问题是当我尝试 NSString sizeWithAttributes 时 它返回一个 NSSize 就好像它具有无限宽度一样 我想给该方法一个最大宽度 有什么办法可
  • 检测机器人帐户是否离线/在线

    我正在使用presenceUpdate然而 它触发了两次 我被告知它正在发出我与机器人拥有的共享服务器的数量 目前我的代码输出online两次 我不确定如何让它只输出一次 if newPresence userID botid if new