所以我一直在尝试在discord上制作一个拍卖机器人。我已经知道了如何处理单个项目,但我在捆绑包方面遇到了问题。
我的目标-让用户在拍卖捆绑包时提供任何/所有物品的信息,直到他说出关键字“完成”。机器人存储第一条消息的url(嵌入由机器人发送),然后在用户说完成之前不做任何事情。这两个用户是1.用户自己,2.他想拍卖的物品的机器人。
我尝试使用消息收集器,但机器人直接忽略了它。在网上搜索并试图适应我的情况后,我发现最接近的事情是在for循环中使用async/wait和waitMessages。之后,也失败了,我试图使用一个链的然后()与waitMessages.这是我的代码片段。任何帮助都很感激。
let flg =0
if(arguments[3] === 'bundle'){
message.channel.send('Say `done` when you have info-ed all your pokemons')
await message.channel.awaitMessages(m => m.author.id === '666956518511345684' || m.author.id === message.author.id, {time : 30000, errors : ['time']}).then(col1 => {
if (col1.first().author.id === '666956518511345684')
details.poke = col1.first().url
}).then(col2 => {
if (col2.first().author.id === message.author.id)
while(flg = 0){
if (col2.first().content.toLowerCase() === 'done')
flg = 1
}
})
我再次尝试消息收集器,我让它工作不知何故。以下是方法:
let i = 0
let filter = m => {m.author.id === '<Bot's id>' || m.author.id === message.author.id}
let collector = message.channel.createMessageCollector(filter, {time : 30000})
collector.on('collect', m => {
if (m.author.id === '<bot's id>' && i === 0){
details.poke = m.url
i = 1
}
if (m.author.id === message.author.id && m.content.toLowerCase() === 'done'){
collector.stop()
}
})
collector.on('end', col => { //code here })
变量i
是一个标志,因为我只需要bot发送的第一条消息的url。它可以被删除/更多的标志可以添加到您的需要/要求。让我知道你是否需要更多的帮助。
让收集器忽略bot消息,获取多个输入并检查消息内容。一旦时间耗尽,或者达到最大输入,将返回消息集合。
if(arguments[3] === 'bundle'){
message.channel.send('Say `done` when you have info-ed all your pokemons')
const filter = m => {
return !m.user.bot && ['666956518511345684', message.author.id].includes(m.author.id) && m.content.toLowerCase() === 'done';
}
message.channel.awaitMessages(filter, {
// Take a max of 5 inputs for example
max: 5
time: 30000,
errors: ['time']
}).then(collected => {
// Your code
})
}
TextChannel上的文档#waitMessages()
我需要我的机器人回复一个特定的角色,如果用户没有这个角色,机器人会回复另一条消息说“你不允许执行这个命令”,这是我的代码:
下面是我的列表示例:
我正在使用规范来构建使用Java的web服务。我使用过滤器进行身份验证和授权,为每个请求调用所有过滤器,我不需要为某个请求只指定一个过滤器,我如何做到这一点?我只想阻止另一个过滤器调用。我不使用,而是使用扩展带有注释的类,如下所示:
问题内容: 1.问题 例如,有没有一种方法可以从小部件列表ListView.builder的第二个(index = 1)项目开始? 就我而言,我正在尝试在a的顶部添加一些空白区域,ListView以便用户可以将顶部卡片滚动到更靠近他的拇指的位置。一种解决方法是Container在List小部件的顶部和底部添加empty ,以模拟空白空间。但是,将在屏幕上显示,用户可能会感到困惑,并且不知道仅通过滚
我想我的代码中的“admin-cli”是错误的,但这是master域中的客户端ID。这是不是身份证错了?如何使请求使特定用户的所有角色工作?
问题内容: 我正在尝试从表中进行SQL查询,-从所有对用户中以用户36作为发送者或接收者的最后一条消息,并将它们与用户表结合起来以获取名称。我已经设法创建了这样的东西,但仍然想问一下是否还有更简单的方法。有效的解决方案。MySQL版本-5.5.31 询问: 谢谢。更新。样本消息表中的数据: mysql> SELECT id,sender_user_id,receiver_user_id,文本,日期