@@ -5,6 +5,30 @@ import DiscordConfig from "@/config/discord.json";
5
5
6
6
const iconsPath = join ( process . cwd ( ) , "resources/discord-event-icons" ) ;
7
7
8
+ const GetParticipants = async (
9
+ event : Discord . GuildScheduledEvent | Discord . PartialGuildScheduledEvent
10
+ ) => {
11
+ const eventUsers = await event . fetchSubscribers ( { withMember : true } ) ;
12
+ return eventUsers . map ( evu => evu . member ) ;
13
+ } ;
14
+
15
+ export const endEvent = async (
16
+ event ?: Discord . GuildScheduledEvent | Discord . PartialGuildScheduledEvent ,
17
+ ) => {
18
+ const bot = await globalThis . MetaConcord . container . getService ( "DiscordBot" ) ;
19
+ const guild = bot . getGuild ( ) ;
20
+ const name = event ?. name ?? "A event"
21
+ console . log ( `"${ name } " ended! Removing roles...` ) ;
22
+ const users = ( await guild ?. roles . fetch ( DiscordConfig . roles . event ) ) ?. members ;
23
+ users ?. forEach ( usr => {
24
+ usr . roles . remove ( DiscordConfig . roles . event ) ;
25
+ } )
26
+ const reason = name + " ended" ;
27
+ await bot . setIcon ( undefined , reason ) ;
28
+ await bot . setServerBanner ( undefined , reason ) ;
29
+ await bot . setNickname ( undefined , reason ) ;
30
+ } ;
31
+
8
32
export default async ( bot : DiscordBot ) : Promise < void > => {
9
33
const events = [
10
34
{
@@ -28,27 +52,6 @@ export default async (bot: DiscordBot): Promise<void> => {
28
52
} ,
29
53
] ;
30
54
31
- const GetParticipants = async (
32
- event : Discord . GuildScheduledEvent | Discord . PartialGuildScheduledEvent
33
- ) => {
34
- const eventUsers = await event . fetchSubscribers ( { withMember : true } ) ;
35
- return eventUsers . map ( evu => evu . member ) ;
36
- } ;
37
-
38
- const endEvent = async (
39
- event : Discord . GuildScheduledEvent | Discord . PartialGuildScheduledEvent
40
- ) => {
41
- console . log ( `Event "${ event . name } " ended! Removing roles...` ) ;
42
- const users = ( await event . guild ?. roles . fetch ( DiscordConfig . roles . event ) ) ?. members ;
43
- users ?. forEach ( usr => {
44
- usr . roles . remove ( DiscordConfig . roles . event ) ;
45
- } )
46
- const reason = event . name + " ended" ;
47
- await bot . setIcon ( undefined , reason ) ;
48
- await bot . setServerBanner ( undefined , reason ) ;
49
- await bot . setNickname ( undefined , reason ) ;
50
- } ;
51
-
52
55
bot . discord . on ( "guildScheduledEventUpdate" , async ( old , now ) => {
53
56
const event = now ;
54
57
0 commit comments