Toggle navigation
Toggle navigation
This project
Loading...
Sign in
박건희
/
emon_bot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Minty U
2022-05-16 22:27:20 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
fb689dca44d7e882eb6fb3d319e3a4544f995652
fb689dca
1 parent
c8312514
Command folder added
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
107 additions
and
2 deletions
Commands/Example/help.js
index.js
Commands/Example/help.js
0 → 100644
View file @
fb689dc
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
:
[
'example'
],
des
:
[
'봇에 대한 명령어 리스트들을 불러옵니다.'
],
use
:
[
'!도움말 <명령어>'
]
};
\ No newline at end of file
index.js
View file @
fb689dc
const
{
Client
,
Intents
}
=
require
(
'discord.js'
);
const
Discord
=
require
(
"discord.js"
);
const
{
token
}
=
require
(
'./config.json'
);
const
fs
=
require
(
'fs'
);
const
client
=
new
Client
({
intents
:
[
Intents
.
FLAGS
.
GUILDS
,
Intents
.
FLAGS
.
GUILD_MESSAGES
]
});
...
...
@@ -7,9 +9,37 @@ client.once('ready', () => {
console
.
log
(
`Logged in as
${
client
.
user
.
tag
}
!`
);
});
client
.
commands
=
new
Discord
.
Collection
();
client
.
aliases
=
new
Discord
.
Collection
();
client
.
category
=
[
'example'
,
'stationery'
,
'translate'
,
'tts'
];
fs
.
readdirSync
(
"./Commands/"
).
forEach
(
dir
=>
{
const
Filter
=
fs
.
readdirSync
(
`./Commands/
${
dir
}
`
).
filter
(
f
=>
f
.
endsWith
(
".js"
));
Filter
.
forEach
(
file
=>
{
const
cmd
=
require
(
`./Commands/
${
dir
}
/
${
file
}
`
);
client
.
commands
.
set
(
cmd
.
config
.
name
,
cmd
);
for
(
let
alias
of
cmd
.
config
.
aliases
)
{
client
.
aliases
.
set
(
alias
,
cmd
.
config
.
name
);
}
});
});
function
runCommand
(
command
,
message
,
args
,
prefix
)
{
if
(
client
.
commands
.
get
(
command
)
||
client
.
aliases
.
get
(
command
))
{
const
cmd
=
client
.
commands
.
get
(
command
)
||
client
.
commands
.
get
(
client
.
aliases
.
get
(
command
));
if
(
cmd
)
cmd
.
run
(
client
,
message
,
args
,
prefix
);
}
}
client
.
on
(
'messageCreate'
,
msg
=>
{
if
(
msg
.
content
===
'ping'
)
{
msg
.
reply
(
'Pong!'
);
const
prefix
=
"!"
;
if
(
!
msg
.
content
.
startsWith
(
prefix
))
return
;
let
args
=
msg
.
content
.
slice
(
prefix
.
length
).
trim
().
split
(
/ +/g
);
let
command
=
args
.
shift
().
toLowerCase
();
try
{
runCommand
(
command
,
msg
,
args
,
prefix
);
}
catch
(
e
)
{
console
.
error
(
e
);
}
});
...
...
Please
register
or
login
to post a comment