help.js
3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
const Discord = require("discord.js");
exports.run = async (client, msg, args, prefix) => {
if (!args[0]) {
const categorys = client.category; // bot.js에 있는 client.category 를 categorys로 선언하였습니다.
let Commands = new Discord.MessageEmbed()
.setAuthor(client.user.username + " 봇 명령어", client.user.displayAvatarURL())
.setColor("7289DA")
.setFooter(`${prefix}도움 <명령어> 를 통하여 해당 명령어를 자세히 확인해보세요.`);
for (const category of categorys) { // 위에서 선언한 것을 for문으로 category로 선언하였습니다. (반복문)
/**
* 위에 for문을 잠시 설명해드리자면
* categorys가 있는 만큼 반복을 하여
* categorys중에 하나를 category로 선언하여 아래의 코드를 작성한 것입니다.
*/
// console.log(client.commands.filter(el => el.config.category == category).keys());
let a = client.commands.filter(el => el.config.category == category).keys();
let arr = [];
for (const i of a) {
arr.push(i);
}
Commands.addField(category, `> **\`${arr.join(', ')}\`**`);
/**
* 소제목에는 카테고리 이름을 넣고
* 소 설명에는 이전에 client.commands를 컬랙션으로 지정한 것들을 불러와 필터를 시켜줍니다.
* el로 선언하여 el이 어떤식으로 되어있냐면
* 이전에 명령어들에게 exports를 사용하여 모듈화 하였는데 그것들을 불러오게 됩니다.
* 여러가지 있는데 그중에 하나만 뜯어서 보여드렸습니다.
* {
* run: [AsyncFunction],
* config: {
* name: "asd",
* aliases: ["asd1", "asd2", "123"],
* category: ["example"],
* des: ["config 설명"],
* use: ["튜토야 도움 <명령어>"]
* }
* }
* 그러고 이제 config.category가 const로 선언한 category와 맞는지 확인 후 Array화 시킨 후 안에 있는 명령어들을 불러온 것입니다.
*/
}
msg.reply({ embeds: [Commands] });
} else {
if (client.commands.get(args[0])) { // 만약에 client.commands안에 args[0] 라는게 있다면
var command = client.commands.get(args[0]); // command 는 client.commands.get(args[0])로 선언해줍시다.
} else if (client.aliases.get(args[0])) { // 만약에 client.aliases 안에 args[0] 라는게 있다면
let aliases = client.aliases.get(args[0]); // aliases 를 client.aliases.get(args[0])로 선언해주고 (왜냐하면 저기서 aliases를 불러오면 command 이름이 나오기 때문입니다.)
var command = client.commands.get(aliases); // commands는 client.commands.get(aliases)으로 선언해줍시다.
} else return msg.reply(`${args[0]} 명령어라는 것을 찾을 수 없어요...`);
let config = command.config;
let name = config.name;
let aliases = config.aliases;
let category = config.category;
let description = config.des;
let use = config.use;
let Command = new Discord.MessageEmbed()
.setTitle(`${name} 명령어`)
.setColor("7289DA")
.setDescription(`\`\`\`fix\n사용법: ${use}\`\`\``)
.addField("명령어 설명", `**${description}**`, false)
.addField("카테고리", `**${category}**`, true)
.addField("공유하는 명령어", `**${aliases}**`, true);
msg.reply({ embeds: [Command] });
}
};
exports.config = {
name: '도움말',
aliases: ['도움', '명령어', 'commands', 'help'],
category: ['Help'],
des: ['봇에 대한 명령어 리스트들을 불러옵니다.'],
use: ['!도움말 <명령어>']
};