Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import fetch from "node-fetch"; import { config } from '../config'; import { Client, MessageAttachment, MessageEmbed, TextChannel } from "discord.js"; import { Routes } from "discord-api-types/v10"; import { REST } from "@discordjs/rest"; const discordCommands = [] let inited = false const callbacks: Function[] = [] const interactionsListener:any[] = []; let client: Client; const channels: TextChannel[] = []; export default class DiscordClient { getDiscordCommands() { return discordCommands } setup: boolean; getClient():Client { return client } getInteractionsListener() { return interactionsListener } init(callback:Function=undefined) { Iif (!process.env.DISCORD_TOKEN) return; Iif (!client) { console.log(`new discord client`) client = new Client({ intents: ['GUILD_MESSAGE_REACTIONS', 'GUILD_MEMBERS', 'MESSAGE_CONTENT'] }); client.once('ready', async (c) => { console.log('logged in', c.user.username) const configurationChannels = config.discord_channels.split(','); for (let channel of configurationChannels) { //console.log(`fetching ${channel}`) channels.push( (await client.channels.fetch(channel)) as TextChannel, ); } const rest = new REST().setToken(process.env.DISCORD_TOKEN); const guildIds = config.discord_guild_ids.split(',') Iif (callback) callback() Iif (callbacks.length) callbacks.forEach(c => c()) client.on('interactionCreate', (interaction) => { for (const listener of interactionsListener) { listener(interaction) } }) guildIds.forEach(async (guildId) => { await rest.put( Routes.applicationGuildCommands(config.discord_client_id, guildId), { body: discordCommands }, ); }) }); } if (!inited) { inited = true client.login(process.env.DISCORD_TOKEN); } else if (client.isReady()) { Iif (callback !== undefined) callback() } else { Iif (callback !== undefined) callbacks.push(callback) } this.setup = true; } async sendEmbed(embed:MessageEmbed, image:string|Buffer, platform:string) { channels.forEach(async (channel) => { await channel.send({ embeds: [embed], files: [ { attachment: image, name: 'token.png' }, { attachment: platform, name: 'platform.png' }, ], }); }); } async send(text: string, images: string[]) { channels.forEach(async (channel) => { await channel.send({ content: text, files: images, }); }); } } |