- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这里是第一次海报。抱歉,如果这是一个明显的修复,但我对 Nodejs 和一般编程世界非常陌生。
我目前正在尝试创建一个 Discord 机器人,允许任何用户使用 !vote 命令发起“喜欢它或讨厌它”的投票。投票开始后,机器人会发出一条消息宣布投票,然后用心形和骷髅表情符号对自己的消息使用react,分别表示爱和恨选项。 这部分正在按预期工作。
经过设定的时间(非常短的一段时间)后,机器人应该计算表情符号的 react ,并确定是否有更多的心、更多的头骨,或者两者的数量相等。根据结果,它将发送另一条消息宣布投票结果。 这部分没有按预期工作。
就目前情况而言,我可以通过在聊天中发送新消息并使用正确的表情符号对该消息使用react,让机器人响应我的 !vote 命令。机器人还将等待设定的时间并宣布投票结果。然而,它总是宣布投票是中立的,无论我在计时器到期之前单击哪个表情符号(当然,确保我没有同时单击两个表情符号)。
我用来比较票数的代码显然没有按预期运行。然而,在花了几个小时尝试不同的修复方法之后,我无法找到适合我生活的解决方案,这让我发疯。这其中是否有不正确的部分?如果是这样,我该如何解决它?
非常感谢任何能插话的人。在潜伏了一段时间并在过去的其他人的问题中找到了无数的解决方案之后,我想我最终会向 Stack Overflow 上可爱的人们寻求帮助。你们太摇滚了!
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on('message', function(message){
if(message.content.toLowerCase().startsWith('!vote'))
{
var heartCount = 0;
var skullCount = 0;
message.channel.send(
"The vote begins! Do we love it or hate it?")
.then(async function (message){
try {
await message.react("❤️")
await message.react("💀")
}
catch (error) {
console.error('One of the emojis failed to react.');
}
})
const filter = (reaction, user) => {
return ["❤️","💀"].includes(reaction.emoji.name) && user.id === message.author.id };
message.awaitReactions(filter, {time: 10000})
.then(collected => {
for (var i = 0; i < collected.length; i++){
if (collected[i].emoji.name === "❤️")
{heartCount++;}
else if (collected[i].emoji.name === "💀")
{skullCount++;}
};
if (heartCount > skullCount){
message.channel.send("We love it!");
}
else if (heartCount < skullCount){
message.channel.send("We hate it.");
}
else {
message.channel.send("We're neutral about it.");
}
})
}
});
bot.login(process.env.BOT_TOKEN);
最佳答案
第一个问题是 user.id === message.author.id
因此只有消息作者可以使用react。 message.channel.send
返回新消息的 promise ,因此您可以使用 then =>
进行消息 react 。最好使用操作 collector on Collect
来获取计数,然后在收集器结束时发送消息。
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on('message', function(message){
var heartCount = 0;
var skullCount = 0;
if(message.content.toLowerCase().startsWith('!vote')) {
message.channel.send('The vote begins! Do we love it or hate it?').then(msg => {
msg.react(`❤️`).then(() => msg.react('💀'));
const filter = (reaction, user) => {
return [`❤️`, '💀'].includes(reaction.emoji.name);
};
const collector = msg.createReactionCollector(filter, {time: 10000});
collector.on('collect', (reaction, reactionCollector) => {
if (reaction.emoji.name === `❤️`) {
heartCount+=1
} else if (reaction.emoji.name === `💀`) {
skullCount+=1
}
});
collector.on('end', (reaction, reactionCollector) => {
if (heartCount > skullCount){
message.channel.send("We love it!");
}
else if (heartCount < skullCount){
message.channel.send("We hate it.");
}
else {
message.channel.send("We're neutral about it.");
}
});
})
}
})
关于javascript - 不和谐机器人 : struggling to tally emoji reacts for voting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59926154/
我的对话 fragment 有问题。我想使用 android:onClick 属性,因为在我看来代码更清晰。 在我的布局中,我有以下声明: 现在我的 DialogFragment import an
我正在制作一个使用谷歌地图的应用程序,我的主要 xml 代码 fragment 如下: 我的java代码是: import android.os.Bundle; import com.googl
是否可以在一个应用程序中有两个单独的首选项?我有一个在运行时连接到外部可执行文件(引擎)的应用程序。应用程序有自己的偏好,引擎也有。这两者不能混用,因为下次用户可能会决定加载具有不同偏好的完全不同的引
这是“Google Catalogs”应用程序的快照。我只是想知道我们如何进行这种图像重叠。![enter image description here][1] 最佳答案 您可以使用 FrameLay
我制作了一个 GridView ,其中添加了图像。但我的问题是它显示的 gridview 尺寸非常小,其中只有 3 张图像,就像图片中那样,我想在其中显示 9 张图像。 小号 但我希望 gridvie
我目前正在学习如何在 Android 上创建和使用服务。我查看了 android SDK 以获得进一步的帮助,我发现了 android:enable=[true |假]。 在SDK中是这样说的: Th
在完成我的 Android 游戏时,我希望用户将他/她的分数与高分进行比较。为此,我将当前的最高分存储在 SQLite 数据库中。但我认为我的方法(似乎可行)笨拙且丑陋: //in the final
出于某种原因,谷歌没有为模拟器提供任何通知声音,我找不到任何关于如何加载通知声音的引用。 我遇到过这个线程:How to play ringtone/alarm sound in Android但是除
我的应用有以下样式: true #ffffff true 它在我使用的大多数手机上运行良好。 (LG G5、Nexus 5、Moto G)但是当我在 LeEco Pro
我想确保我的网站阻止 Selenium 和 QTP 等自动化工具。有没有办法做到这一点 ?网站上的哪些设置会导致 Selenium 失败? 最佳答案 适当考虑对原始问题“你到底为什么要这样做?”的评论
我正在处理我的联系表,我希望它尽可能地防止垃圾邮件。我正在使用一些方法作为反击: 使用 JavaScript 正则表达式验证电子邮件的合法性 验证所有字段是否具有足够的值 制作一个不可见的字段来吸引机
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, over
我正在制作一个 android 应用程序,我需要在我的应用程序中显示远程图像我使用以下代码。但图像未显示: for(int i=0;i
我有几个与 Android 操作系统中的 AIML 集成相关的问题。我对 Java 了解不多,但我对 AIML 了解很多。我制作了 AIML 文件,现在我想做的是制作一个可以加载文件并在 GUI 中运
我有一个具有“登录”和“注销”操作的应用程序。用户登录后,在他们注销时堆栈中可能还剩下任意数量的 Activity 。 当用户注销时,我希望重置所有应用程序状态。我清除了我的磁盘缓存和首选项,但在运行
我是 Android 应用程序开发的新手,我正在尝试开发一个可用的应用程序。但是我创建的这个页面自创建以来就出现了问题,我真的希望有人能帮助我解决这个问题。每次我运行这个程序时,应用程序都会关闭。 这
我尝试将 android:imeOptions 设置为 actionSend、actionSearch。但是键盘上没有“发送”或“搜索”按钮,只有普通的“Enter”键。我还尝试设置不同的输入类型。
我想创建一种方法来查看相机坐标的中心是否在某个区域的边界内,如果是,则执行一些操作。 当我尝试这样做时,出现错误:Operator !不能应用于 LatLngBounds。 我也试过 if(temp
我正在尝试将视频录制时长限制为 5 秒。我正在使用默认相机和此代码: intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5); 现在它在三星 S6 上工
我正在开发一款安卓游戏 https://code.google.com/p/something-soft/我的日志猫说它正试图激发游戏的 Intent ,但随后主线程似乎死了(出现 ActivityN
我是一名优秀的程序员,十分优秀!