This repository has been archived by the owner on Aug 22, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
57 lines (42 loc) · 2.13 KB
/
index.js
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
/**
* ' // ' 은 주석(프로그램 실행 시 영향 X)입니다.
* 한국어 앞에 있는 ' // ' 을 삭제할 시 프로그램 실행할 때 오류가 발생하게 됩니다
* 영어 앞에 있는 ' // ' 만 삭제해 주세요!
*/
const Discord = require("discord.js")
const client = new Discord.Client()
const settings = require( "./settings.json")
const updateMembers = () => {
const guild = client.guilds.cache.get(settings.guildId)
stats = {
all: guild.memberCount,
member: guild.members.cache.filter((member) => !member.user.bot).size,
bot: guild.members.cache.filter((member) => member.user.bot).size,
voice: guild.members.cache.filter((member) => member.voice.channel ? member.voice.channel.guild.id === guild.id : false).size
}
// client.channels.cache.get(settings.statsChannel.all).setName('All: ' + stats.all)
// 전체 멤버 수를 디스코드 서버 채널에 적용
// client.channels.cache.get(settings.statsChannel.member).setName('Member: ' + stats.member)
// 유저 수를 디스코드 서버 채널에 적용
// client.channels.cache.get(settings.statsChannel.bot).setName('Bot: ' + stats.bot)
// 봇 수를 디스코드 서버 채널에 적용
client.channels.cache.get(settings.statsChannel.voice).setName('📡ㅣ음성 연결 : ' + stats.voice)
// 음성 채널에 접속한 유저 수를 서버 채널에 적용
return console.log("Member count updated", stats)
}
// client.on('guildMemberJoin', () => updateMembers)
// 서버에 멤버가 들어왔을 때 실행
// client.on('guildMemberRemove', () => updateMembers)
// 서버에서 멤버가 나갔을 떄 실행
client.on('voiceStateUpdate', (oldState, newState) => {
const voiceChannels = newState.member.guild.channels.cache.filter(c => c.type === 'voice')
let count = 0
for (const [id, voiceChannel] of voiceChannels) count += voiceChannel.members.size
return console.log("Now voice connection member: ", count)
})
client.on("ready", () => {
console.log("Bot Ready")
updateMembers()
setInterval(updateMembers, 1000 * 60 * 10)
})
client.login(settings.token)