Tag: 不和谐

承诺中无法抓住UnhandledPromiseRejectionWarning

所以我试图抓住我的承诺UnhandledPromiseRejectionWarning,但由于某种原因,这是行不通的。 它忽略了我的代码,只是输出错误到控制台。 错误: UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:禁止(不能发送消息给此用户) 码: e.message.author.openDM().then((message) => { message.sendMessage(`test`); }).catch((error) => { e.message.channel.sendMessage(error + "test"); }); 这是一个不和谐的机器人,使用discordie。 在我看来,上面的代码应该通过私人信息发送一个消息作者的单词“testing”,如果僵尸不能,它会发送错误和单词testing在他们发送消息的渠道。但是,第二部分(在catch中)不会被执行。 tl; dr,在上面的代码捕获不起作用,我得到上述错误在控制台,而不是如果机器人没有权限,以防止用户。

如何使用node.js将string添加到JSON中的数组?

我有一个不和谐的机器人,我想有一个数组,有滥用音量和音乐命令的用户ID,这样我就可以拿走他们的能力,并使用!nomusic和!musicback等命令给他们,但我有不知道如何让它添加或删除configuration文件中的数组的ids 。 我最好的猜测是使用fs ,并将其成员的id推入数组,但我不知道如何去做这个(我对node.js非常新,特别是fs ,所以很抱歉,如果这是一个真的很容易做的事情,真的很愚蠢的问) 到目前为止,这是我得到了多less(很多程序不包括在内,所以它更容易阅读) function readNoMusicJSON() { return JSON.parse(fs.readFileSync("./nomusic.json")); } var badmusicusers = readNoMusicJSON(); function nomusicsfoyou(badmusicusers, userId) { return nomusic.concat([userId]); } function saveNoMusicFile(badmusicusers) { fs.writeFileSync("./nomusic.json"); } bot.on('message', async message => { //some code ommited due to lack of importance var args = message.content.slice(config.prefix.length).trim().split(/ +/g); var command = args.shift().toLowerCase(); switch(command){ case"music": if(badmusicusers.find(id=>id == message.author.id)) […]

discord.js – 发送私人信息给用户

我正在使用discord.js库和node.js来创build一个便于扑克的Discord机器人。 除了双手都显示给每个人,它是function性的,我需要通过玩家循环,并用手发送DM。 bot.on("message", message => { message.channel.sendMessage("string"); }) 这是任何用户发送消息时向该通道发送消息的代码。 我需要这个机器人在一个私人频道回复; 我见过的dmChannel,但我不明白如何使用它。 我有我想要发送消息的成员的用户名。 一个例子,将不胜感激。 编辑:在四处寻找一个用户对象后,我发现我可以得到所有使用客户端(bot)的.users属性的用户。 我将尽快使用user.sendMessage(“string”)方法。

discord.js机器人回复自己 – 防止发生这种情况

我目前正在编写我的第一个不和谐的机器人,而且他们已经可以播放YouTube音乐了! :D但是我遇到了一个问题,看起来没有任何帮助,或者我太盲目了¯_(ツ)_ /嗯,这是问题所在: if (message.content.includes("Good Job") || message.content.includes("good job")) { message.channel.sendMessage("Good Job everyone :smirk:"); } 正如你所看到的,如果有人input“好工作”(这只是一个例子),那么机器人会回答“干得好每个人:傻笑:),但垃圾邮件将开始:机器人读取自己的消息,并回复。我怎样才能防止机器人回答自己?:/欣赏我得到的每一个帮助!

不和谐bot自定义命令JS

我正在尝试编写一个简单的不和谐的机器人,js-commando库的工作到目前为止我工作的最多,但是现在我被卡住了,所以我得到了这个命令,你可以做!会随机select一个从1到6的数字,但我想使它更有一点自定义,所以这就是它的样子 !卷(从1滚到6) 卷25(从1到25卷) 卷100 200(从100卷到200) 问题是当我尝试做!roll 25我的validation不断说这不是一个有效的号码,但其他所有的命令工作得很好,只有当我做!roll,然后一些数字,我不明白为什么它doesn没有工作,这可能是一个简单的解决方法,在此先感谢 const commando = require('discord.js-commando') const _ = require('lodash') class DiceRollCommand extends commando.Command { constructor(bot) { super(bot, { name: 'roll', group: 'random', memberName: 'roll', description: 'Rolls a dice.' }) } async run(message, args) { let roll = args.split(' ') let hasNumber = /^[0-9]$/ if (roll[0] || roll[1]) { if […]

由于内存问题,node.js崩溃

我在discord.js中创build了一个Self-Bot ,我创build了一个函数来创build一个如下所示的框: ╭──────────────────────╮ │ Title │ ├──────────────────────┤ │ A message that was │ │ auto wrapped. │ ╰──────────────────────╯ 但是当我用这个工作时,我得到这个错误:<—最后几个GC —> [5414:0x102801600] 34628 ms: Mark-sweep 1402.3 (1462.5) -> 1402.2 (1431.5) MB, 1428.1 / 0.0 ms (+ 0.0 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 1431 ms) […]

Heroku node.js应用程序与buildpack不兼容

我今天尝试上传我的不和机器人heroku,但每次我使用git push heroku master它会给我以下错误: remote: Compressing source files… done. remote: Building source: remote: remote: —–> App not compatible with buildpack: https://codon- buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tg remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure remote: remote: ! Push failed remote: Verifying deploy… remote: remote: ! Push rejected to sjak-bot. remote: To https://git.heroku.com/sjak-bot.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed […]

array()函数返回一个对象 – Node.js Discord.js

我有一个问题与discord.js我试图让所有的玩家, let gplayers = games_array[0].role.members ,但因为它返回一个对象,就像{"123" => GuildMember {}, "456" => GuildMember {} …}我只需要我尝试使用的"123"和"456"对象let gplayers = games_array[0].role.members.array()然后使用gplayers[i]但它没有工作。 所以我试着检查出了什么问题,我发现gplayers是一个对象,即使我使用了array()函数。 console.log('Members: ', JSON.stringify(games_array[0].role.members, null, 4)) logs Members: {} 我能做些什么来存储我的对象在数组中?

这段代码似乎没有按顺序开火?

我的问题是,代码似乎没有按顺序运行,如下所示。 这个代码是我创build的discord.js机器人。 var Discord = require("discord.js"); var bot = new Discord.Client(); var yt = require("C:/Users/username/Documents/Coding/Discord/youtubetest.js"); var youtubetest = new yt(); var fs = require('fs'); var youtubedl = require('youtube-dl'); var prefix = "!"; var vidid; var commands = { play: { name: "!play ", fnc: "Gets a Youtube video matching given tags.", process: function(msg, query) { […]

NodeJS – 如何使forEach和for循环函数顺序

server.queue.forEach(function(q) { YTDL.getInfo(q, (error, info) => { console.log(info["title"]); message.reply('"' + info["title"] + '"'); }); }); for (var i = 0; i < server.queue.length; i++) { YTDL.getInfo(server.queue[i], (error, info) => { console.log(info["title"]); message.reply('"' + info["title"] + '"'); }); } 我使用Node.js创build了一个名为Discord的VoIP音乐机器人,每当上述任一循环执行时,都会以随机顺序打印。 如何使它们按顺序打印(server.queue [0],server.queue [1],server.queue [2] …)? YTDL是一个名为ytdl-core的软件包,用于下载YouTubevideo,并使用video链接显示video标题等信息。 server.queue是一组YouTubevideo链接。