88 User ,
99} from 'discord.js' ;
1010import { REACTION_ROLE , REACTION_ROLE_CHANNEL } from '../config' ;
11- import { wrap_in_embed } from './embed_helpers' ;
1211
1312export async function hasPermission (
1413 reaction : MessageReaction | PartialMessageReaction ,
@@ -76,14 +75,12 @@ export async function sendReactionRoleMessage(client: Client) {
7675 ) ;
7776 messageArray . push ( '\n**<#879007560429088800>**' ) ;
7877 messageArray . push (
79- "If you'd like to get involved with Tauri development you can react to the Tauri Contributor role below to be able to chat in the various channels ." ,
78+ "Get involved with Tauri development and browse the different projects ." ,
8079 ) ;
8180 messageArray . push ( '\n**<#683637724116418561>**' ) ;
8281 messageArray . push (
8382 "See what the community is working on outside of Tauri. Reach out if you have a passion project you'd like to talk about." ,
8483 ) ;
85- messageArray . push ( '\n**Server Roles**' ) ;
86- messageArray . push ( 'React below to receive the relative role' ) ;
8784
8885 let messageBody = messageArray . join ( '\n' ) ;
8986
@@ -93,71 +90,24 @@ export async function sendReactionRoleMessage(client: Client) {
9390
9491 console . debug ( 'Got messages' ) ;
9592
93+ // Get an existing message with identical contents
9694 let message = messages
9795 . filter ( ( item ) => item . content === messageBody )
9896 . last ( ) ;
9997
10098 if ( message && message . author . id == message . client . user . id ) {
10199 console . debug ( 'Attempting to edit message...' ) ;
100+ // Edit the message
102101 await message . edit ( messageBody ) ;
103102 console . debug ( 'Message edited' ) ;
104103 } else {
104+ // Delete old messages from the bot
105+ messages . filter ( ( item ) => item . author . id == item . client . user . id ) . forEach ( ( item ) => item . delete ( ) )
105106 console . debug ( 'Attempting to send message...' ) ;
107+ // Send the message
106108 message = await channel . send ( messageBody ) ;
107109 console . debug ( 'Message sent' ) ;
108110 }
109-
110- // Loop all available reaction roles
111- REACTION_ROLE . forEach ( async ( role ) => {
112- // Get the reaction
113- console . debug ( 'Attempting to get reactions...' ) ;
114- const reaction = await message . reactions . resolve ( role . emojiId ) ;
115- console . debug ( 'Got reactions' ) ;
116-
117- // No reactions yet
118- if ( ! reaction ) {
119- return ;
120- }
121-
122- // Get all users that reacted minus the bot
123- console . debug ( 'Getting users who reacted...' ) ;
124- const reactedUsers = ( await reaction . users . fetch ( ) ) . filter (
125- ( user ) => user . id !== message . author . id ,
126- ) ;
127- console . debug ( 'Finished fetching users' ) ;
128-
129- // Loop all users and add the role
130- let counter = 0 ;
131- reactedUsers . forEach ( async ( user ) => {
132- try {
133- const result = await hasPermission ( reaction , user ) ;
134- counter += 1 ;
135- const localCounter = counter ;
136- console . debug (
137- `(${ localCounter } / ${ reactedUsers . size } ) Attempting to add role...` ,
138- ) ;
139- if ( result ) {
140- await result . member . roles . add ( result . roleId ) ;
141- console . debug (
142- `(${ localCounter } / ${ reactedUsers . size } ) Role added` ,
143- ) ;
144- }
145- } catch ( error ) {
146- console . error ( `Issue adding role: ${ error } ` ) ;
147- }
148- } ) ;
149- } ) ;
150-
151- var roleDescription : string [ ] = [ ] ;
152-
153- REACTION_ROLE . forEach ( async ( reaction ) => {
154- message . react ( reaction . emojiId ) ;
155- roleDescription . push (
156- `<:${ reaction . emojiName } :${ reaction . emojiId } > ${ reaction . description } ` ,
157- ) ;
158- } ) ;
159-
160- await message . edit ( wrap_in_embed ( roleDescription . join ( '\n' ) ) ) ;
161111 } catch ( error ) {
162112 console . error ( `Issue starting up reaction: ${ error } ` ) ;
163113 }
0 commit comments