我尝试制作一个随机单词命令,我也是这个Discord js的新手。所以…很抱歉我糟糕的代码。我的代码是
const discord = require('discord.js')
module.exports = {
commands: 'randomWords',
minArgs: 1,
maxArgs: 1,
expectedArgs: '<Number>',
callback: async (message, arguments, text, client) => {
const request = require('request');
const https = require('https');
if (!isNaN(arguments[0])) {
var url = `https://random-word-api.herokuapp.com/word?number=${arguments[0]}`
} else {
message.channel.send("Please input a number. ex. 24")
}
// Get data from link
https.get(url, resp => {
let data = '';
// chunk of data been received
resp.on("data", chunk => {
data += chunk
})
resp.on("end", () => {
let dataIn = JSON.parse(data);
var dataInString = dataIn.toString()
var datas = dataInString.replace(/,/g, " ")
// here you add a new line every 2 words or 3 words
console.log("nnn" + datas + "nnn")
// i know i suck at this, but my terminal was very filled and so confused reading so added spaces
// send the message
const embed = new discord.MessageEmbed()
.setAuthor(`Random Words: ${arguments[0]}`)
.setDescription(`this right here is supposed to be advertisement, so i deleted it for stack overflow nWord Separated by spaces`)
.addFields(
{ name: "Words:", value: datas },
{name: "Invite Bot Below", value: "invite bot advertisement blocked"}
)
message.channel.send(embed)
})
})
}
}
问题出在回调中,命令处理程序与无关
问题出现在第38行附近
真的很感激你能帮我:(谢谢
let words = ["hello", "test", "ice", "cream", "fast", "food"];
let str = "";
for(var i = 0; i < words.length; i++) {
if(i % 2 === 0) str += words[i] + " ";
else str += words[i] + "n";
}
console.log(str);
也许这个例子可以帮助你解决问题。for循环遍历数组。如果i
是一个相等的数字,它只打印出没有新行的值。否则,如果i
不是一个相等的数字,它会打印出值,但会打印出一行新行。
其输出为:
hello test
ice cream
fast food