/[sudobot]/trunk/src/services/Starboard.ts
ViewVC logotype

Diff of /trunk/src/services/Starboard.ts

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

trunk/src/Starboard.js revision 33 by rakin, Mon Jul 29 17:28:17 2024 UTC trunk/src/services/Starboard.ts revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1  const MessageEmbed = require("../src/MessageEmbed");  /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  module.exports = class Starboard {  import { MessageAttachment, MessageReaction, TextChannel } from "discord.js";
21      async handle(reaction, user) {  import MessageEmbed from "../client/MessageEmbed";
22          if (app.config.get('starboard').enabled) {  import Service from "../utils/structures/Service";
             let emoji;  
23    
24              if (typeof reaction._emoji !== 'undefined')  export default class Starboard extends Service {
25                  emoji = reaction._emoji.name;      async handle(reaction: MessageReaction) {
26              else          if (this.client.config.get('starboard').enabled) {
27                  emoji = reaction.anme;              let emoji = reaction.emoji.name;
28                            
29              console.log(reaction, emoji);              console.log(emoji);
30    
31              if (emoji === '⭐' && reaction.message.channel.id !== app.config.get('starboard').channel && reaction.count === app.config.get('starboard').messages) {              if (emoji === '⭐' && reaction.message.channel.id !== this.client.config.get('starboard').channel && reaction.count === this.client.config.get('starboard').reactions) {
32                  try {                  try {
33                      const channel = await reaction.message.guild.channels.fetch(app.config.get('starboard').channel);                      const channel = <TextChannel> await reaction.message.guild!.channels.fetch(this.client.config.get('starboard').channel);
34    
35                      let props = {                      let props = {
36                          embeds: reaction.message.embeds || []                          embeds: reaction.message.embeds || []
37                      }                      };
38            
39                      const msg = await channel.send({                      const msg = await channel.send({
40                          embeds: [                          embeds: [
41                              ...props.embeds,                              ...props.embeds,
42                              new MessageEmbed()                              new MessageEmbed()
43                              .setAuthor({                              .setAuthor({
44                                  name: reaction.message.author.tag,                                  name: reaction.message.author!.tag,
45                                  iconURL: reaction.message.author.displayAvatarURL(),                                  iconURL: reaction.message.author!.displayAvatarURL(),
46                              })                              })
47                              .setDescription(reaction.message.content)                              .setDescription(reaction.message.content!)
48                              .addField('URL', `[Click here](${reaction.message.url})`)                              .addField('URL', `[Click here](${reaction.message.url})`)
49                              .setTimestamp()                              .setTimestamp()
50                              .setFooter({                              .setFooter({
# Line 39  module.exports = class Starboard { Line 55  module.exports = class Starboard {
55                              return {                              return {
56                                  name: a.name,                                  name: a.name,
57                                  attachment: a.proxyURL                                  attachment: a.proxyURL
58                              }                              } as MessageAttachment
59                          })                          })
60                      });                      });
61            

Legend:
Removed from v.33  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26