/[sudobot]/trunk/src/commands/moderation/UnmuteCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/moderation/UnmuteCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 86 by rakin, Mon Jul 29 17:28:32 2024 UTC revision 159 by rakin, Mon Jul 29 17:28:49 2024 UTC
# Line 11  import ms from 'ms'; Line 11  import ms from 'ms';
11    
12  import PunishmentType from '../../types/PunishmentType';  import PunishmentType from '../../types/PunishmentType';
13    
14  export async function unmute(client: DiscordClient, user: GuildMember, msg: Message | CommandInteraction, d: User) {  export async function unmute(client: DiscordClient, user: GuildMember, d: User) {
15      try {                  try {            
16          await History.create(user.id, msg.guild!, 'unmute', msg.member!.user.id, null);          await History.create(user.id, user.guild!, 'unmute', d.id, null);
17    
18          const role = await msg.guild!.roles.fetch(client.config.get('mute_role'));          const role = await user.guild!.roles.fetch(client.config.props[user.guild.id].mute_role);
19          await user.roles.remove(role!);          await user.roles.remove(role!, 'Unmuting user');
20    
21          const { default: Punishment } = await import('../../models/Punishment');          const { default: Punishment } = await import('../../models/Punishment');
22    
23            const { getTimeouts, clearTimeoutv2 } = await import('../../utils/setTimeout');
24    
25            const { default: Hardmute } = await import("../../models/Hardmute");
26    
27            const hardmute = await Hardmute.findOne({
28                where: {
29                    user_id: user.id,
30                    guild_id: user.guild.id,
31                },
32                order: [
33                    ['id', 'DESC']
34                ]
35            });
36    
37            if (hardmute) {
38                for await (const roleID of hardmute.get().roles) {
39                    try {
40                        const role = await user.guild.roles.fetch(roleID);
41    
42                        if (role) {
43                            await user.roles.add(role, 'Adding the roles which were removed due to hardmute');
44                        }
45                    }
46                    catch (e) {
47                        console.log(e);                    
48                    }
49                }
50    
51                await hardmute.destroy();
52            }
53    
54            const timeouts = getTimeouts();
55            
56            for (const timeout of timeouts.values()) {
57                if (timeout.row.params) {
58                    try {
59                        const json = JSON.parse(timeout.row.params);
60    
61                        if (json) {
62                            if (json[1] === user.id && timeout.row.filePath.endsWith('unmute-job')) {
63                                await clearTimeoutv2(timeout);
64                            }
65                        }
66                    }
67                    catch (e) {
68                        console.log(e);                    
69                    }
70                }
71            }
72    
73          await Punishment.create({          await Punishment.create({
74              type: PunishmentType.UNMUTE,              type: PunishmentType.UNMUTE,
75              user_id: user.id,              user_id: user.id,
76              guild_id: msg.guild!.id,              guild_id: user.guild!.id,
77              mod_id: d.id,              mod_id: d.id,
78              mod_tag: d.tag,              mod_tag: d.tag,
79          });          });
80    
81          await user.send({          try {
82              embeds: [              await user.send({
83                  new MessageEmbed()                  embeds: [
84                  .setAuthor({                      new MessageEmbed()
85                      iconURL: <string> msg.guild!.iconURL(),                      .setAuthor({
86                      name: `\tYou have been unmuted in ${msg.guild!.name}`                          iconURL: <string> user.guild!.iconURL(),
87                  })                          name: `\tYou have been unmuted in ${user.guild!.name}`
88              ]                      })
89          });                  ]
90                });
91            }
92            catch (e) {
93                console.log(e);
94            }
95    
96          await client.logger.logUnmute(user, d);          await client.logger.logUnmute(user, d);
97      }      }
# Line 65  export default class UnmuteCommand exten Line 120  export default class UnmuteCommand exten
120              return;              return;
121          }          }
122    
123            if (msg instanceof CommandInteraction)  
124                await msg.deferReply();
125    
126          let user: GuildMember;          let user: GuildMember;
127    
128          if (options.isInteraction) {          if (options.isInteraction) {
129              user = await <GuildMember> options.options.getMember('member');              user = await <GuildMember> options.options.getMember('member');
130    
131              if (!user) {              if (!user) {
132                  await msg.reply({                  await this.deferReply(msg, {
133                      embeds: [                      embeds: [
134                          new MessageEmbed()                          new MessageEmbed()
135                          .setColor('#f14a60')                          .setColor('#f14a60')
# Line 93  export default class UnmuteCommand exten Line 151  export default class UnmuteCommand exten
151                  user = user2;                  user = user2;
152              }              }
153              catch (e) {              catch (e) {
154                  await msg.reply({                  await this.deferReply(msg, {
155                      embeds: [                      embeds: [
156                          new MessageEmbed()                          new MessageEmbed()
157                          .setColor('#f14a60')                          .setColor('#f14a60')
# Line 107  export default class UnmuteCommand exten Line 165  export default class UnmuteCommand exten
165              console.log(user);              console.log(user);
166          }          }
167    
168          await unmute(client, user, msg, msg.member!.user as User);          await unmute(client, user, msg.member!.user as User);
169    
170          await msg.reply({          await this.deferReply(msg, {
171              embeds: [              embeds: [
172                  new MessageEmbed()                  new MessageEmbed()
173                  .setAuthor({                  .setAuthor({
# Line 126  export default class UnmuteCommand exten Line 184  export default class UnmuteCommand exten
184              ]              ]
185          });          });
186      }      }
 }  
187    }

Legend:
Removed from v.86  
changed lines
  Added in v.159

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26