@@ -122,25 +122,14 @@ func WarnHandler(e *handler.CommandEvent) error {
122
122
123
123
inf , err := model .CreateInfraction (guild .ID , user .ID , e .User ().ID , reason , severity , silent )
124
124
if err != nil {
125
+ _ = e .CreateMessage (discord .NewMessageCreateBuilder ().
126
+ SetEphemeral (true ).
127
+ SetContent ("Failed to create infraction." ).Build ())
125
128
return fmt .Errorf ("failed to create infraction: %w" , err )
126
129
}
127
130
128
131
slog .DebugContext (ctx , "Created infraction." , "infraction" , inf .Sqid ())
129
132
130
- if inf .Silent {
131
- err = e .CreateMessage (discord .NewMessageCreateBuilder ().
132
- SetEphemeral (true ).
133
- SetContent (fmt .Sprintf ("A silent warning has been added for %s" , user .Mention ())).Build ())
134
- if err != nil {
135
- slog .Error ("Failed to respond to 'warn' command interaction." ,
136
- "err" , err ,
137
- "guildID" , guild .ID ,
138
- "userID" , user .ID )
139
- return err
140
- }
141
- return nil
142
- }
143
-
144
133
embed := discord .NewEmbedBuilder ().
145
134
SetTitlef (`Warning in "%s"` , guild .Name ).
146
135
SetDescription (inf .Reason ).
@@ -149,27 +138,32 @@ func WarnHandler(e *handler.CommandEvent) error {
149
138
150
139
slog .DebugContext (ctx , "Created embed." )
151
140
152
- channel , err := e .Client ().Rest ().CreateDMChannel (user .ID )
153
- if err != nil {
154
- return e .CreateMessage (discord .NewMessageCreateBuilder ().
155
- SetEphemeral (true ).
156
- SetContent (fmt .Sprintf ("Failed to send warning to %s." , user .Mention ())).Build ())
141
+ failedToSend := false
142
+ if ! inf .Silent {
143
+ channel , err := e .Client ().Rest ().CreateDMChannel (user .ID )
144
+ if err != nil {
145
+ failedToSend = true
146
+ }
147
+ _ , err = e .Client ().Rest ().CreateMessage (channel .ID (), discord .NewMessageCreateBuilder ().
148
+ SetEmbeds (embed .Build ()).
149
+ Build ())
150
+ if err != nil {
151
+ failedToSend = true
152
+ }
157
153
}
158
- _ , err = e .Client ().Rest ().CreateMessage (channel .ID (), discord .NewMessageCreateBuilder ().
154
+
155
+ message := discord .NewMessageCreateBuilder ().
156
+ SetContentf ("## %s %s." ,
157
+ utils .Iif (inf .Silent , "Silent warning created for" ,
158
+ utils .Iif (failedToSend , "Failed to send warning to" , "Warning sent to" )),
159
+ user .Mention (),
160
+ ).
159
161
SetEmbeds (embed .Build ()).
160
- Build ())
161
- if err != nil {
162
- return e .CreateMessage (discord .NewMessageCreateBuilder ().
163
- SetEphemeral (true ).
164
- SetContent (fmt .Sprintf ("Failed to send warning to %s." , user .Mention ())).Build ())
165
- }
162
+ Build ()
166
163
167
164
guildSettings , err := model .GetGuildSettings (guild .ID )
168
165
if err == nil && guildSettings .ModeratorChannel != 0 {
169
- _ , err = e .Client ().Rest ().CreateMessage (guildSettings .ModeratorChannel , discord .NewMessageCreateBuilder ().
170
- SetContent (fmt .Sprintf ("## Warning sent to %s." , user .Mention ())).
171
- SetEmbeds (embed .Build ()).
172
- Build ())
166
+ _ , err = e .Client ().Rest ().CreateMessage (guildSettings .ModeratorChannel , message )
173
167
if err != nil {
174
168
slog .Error ("Failed to send warning to moderator channel." ,
175
169
"err" , err ,
@@ -181,7 +175,8 @@ func WarnHandler(e *handler.CommandEvent) error {
181
175
182
176
return e .CreateMessage (discord .NewMessageCreateBuilder ().
183
177
SetEphemeral (true ).
184
- SetContent (fmt .Sprintf ("Warning sent to %s." , user .Mention ())).Build ())
178
+ SetContentf ("Warning created for %s." ,
179
+ user .Mention ()).Build ())
185
180
}
186
181
187
182
func severityToColor (severity float64 ) int {
0 commit comments