@@ -125,11 +125,11 @@ export const listRecurringMessages = async (interaction: ChatInputCommandInterac
125
125
return ;
126
126
}
127
127
128
- const recurringMessageInCurrentGuild = recurringMessages . filter (
128
+ const messagesInCurrentGuild = recurringMessages . filter (
129
129
( { channelId } ) => interaction . guild ?. channels . cache . has ( channelId ) ,
130
130
) ;
131
131
132
- const messageByChannelName = recurringMessageInCurrentGuild . reduce (
132
+ const messagesByChannelName = messagesInCurrentGuild . reduce (
133
133
( acc , { id, frequency, message, channelId } ) => {
134
134
const channel = interaction . guild ?. channels . cache . get ( channelId ) ;
135
135
const channelName = channel ?. name ?? 'unknown' ;
@@ -138,24 +138,30 @@ export const listRecurringMessages = async (interaction: ChatInputCommandInterac
138
138
acc [ channelName ] = [ ] ;
139
139
}
140
140
141
- acc [ channelName ] ! . push (
142
- `**·** id: ${ id } - frequency: ${ frequency } - message: ${ message . substring ( 0 , 50 ) } ${
143
- message . length > 35 ? '...' : ''
144
- } `,
145
- ) ;
141
+ acc [ channelName ] ! . push ( { id, frequency, message } ) ;
146
142
147
143
return acc ;
148
144
} ,
149
- { } as Record < string , string [ ] > ,
145
+ { } as Record < string , { id : string ; frequency : string ; message : string } [ ] > ,
150
146
) ;
151
147
152
- const recurringMessagesList = Object . entries ( messageByChannelName )
153
- . map ( ( [ channelName , messages ] ) => {
154
- return `**\#${ channelName } **\n${ messages . join ( '\n' ) } ` ;
155
- } )
156
- . join ( '\n\n' ) ;
157
-
158
- await interaction . reply ( recurringMessagesList ) ;
148
+ const embeds = Object . entries ( messagesByChannelName ) . map ( ( [ channelName , messages ] ) => {
149
+ const fields = messages . map ( ( { id, frequency, message } ) => ( {
150
+ name : `⏰ - ${ frequencyDisplay [ frequency as Frequency ] } (id: ${ id } )` ,
151
+ value : message . substring ( 0 , 1000 ) + ( message . length > 1000 ? '...' : '' ) ,
152
+ } ) ) ;
153
+
154
+ return {
155
+ title : `# ${ channelName } ` ,
156
+ color : 0x0099ff ,
157
+ fields,
158
+ footer : {
159
+ text : '\u2800' . repeat ( 256 ) , // hackish way have even width for all embeds
160
+ } ,
161
+ } ;
162
+ } ) ;
163
+
164
+ await interaction . reply ( { embeds } ) ;
159
165
} ;
160
166
161
167
export const relaunchRecurringMessages = async ( client : Client < true > ) => {
0 commit comments