UNPKG

jericho-player

Version:

LightWeight Framework for discord.js v14 Music Bots and Radio Bots with fast moderation with commands and no memory leak mode

133 lines (126 loc) 4.14 kB
const { VoiceChannel, StageChannel, Client, Message, GuildMember, Guild, GuildChannel, User, ButtonInteraction, CommandInteraction, SelectMenuInteraction, } = require('discord.js'); class snowFlakes { static async voiceResolver(discordClient, snowflake) { if (!(discordClient && discordClient instanceof Client)) return undefined; else if ( ((snowflake && snowflake instanceof VoiceChannel) || snowflake instanceof StageChannel) && snowflake?.id ) return snowflake; else if ( snowflake && snowflake instanceof Message && snowflake?.member?.voice ) return snowflake?.member?.voice?.channel; else if (snowflake && snowflake instanceof GuildMember && snowflake?.voice) return snowflake?.voice?.channel; else if ( snowflake && typeof snowflake === 'string' && snowflake?.trim() !== '' ) return ( discordClient.channels.cache.get(snowflake?.trim()) ?? discordClient.channels.cache?.find((channel) => channel?.name?.includes(snowflake?.trim())) ?? (await discordClient.channels .fetch(snowflake?.trim()) ?.catch(() => undefined)) ); else return undefined; } static async guildResolver(discordClient, snowflake) { if (!(discordClient && discordClient instanceof Client)) return undefined; else if (snowflake && snowflake instanceof Guild) return snowflake; else if ( snowflake && (snowflake instanceof Message || snowflake instanceof GuildChannel) && snowflake?.guild ) return snowflake?.guild; else if ( snowflake && typeof snowflake === 'string' && snowflake?.trim() !== '' ) return ( discordClient.guilds.cache.get(snowflake?.trim()) ?? discordClient.guilds.cache?.find((guild) => guild?.name?.includes(snowflake?.trim())) ?? (await discordClient.guilds .fetch(snowflake?.trim()) ?.catch(() => undefined)) ); else return undefined; } static async userResolver(discordClient, snowflake) { if (!(discordClient && discordClient instanceof Client)) return undefined; else if (snowflake && snowflake instanceof User) return snowflake; else if ( snowflake && (snowflake instanceof Message || snowflake instanceof GuildMember) ) return snowflake?.author ?? snowflake?.user ?? snowflake?.member; else if ( snowflake && (snowflake instanceof ButtonInteraction || snowflake instanceof SelectMenuInteraction || snowflake instanceof CommandInteraction) ) return ( snowflake?.user ?? snowflake?.message?.author ?? snowflake?.member?.user ); else if ( snowflake && typeof snowflake === 'string' && snowflake?.trim() !== '' ) return ( discordClient.users.cache.get(snowflake?.trim()) ?? discordClient.users.cache?.find((guild) => guild?.name?.includes(snowflake?.trim())) ?? (await discordClient.users .fetch(snowflake?.trim()) ?.catch(() => undefined)) ); else return undefined; } static async messageResolver(discordClient, snowflake) { if (!(discordClient && discordClient instanceof Client)) return undefined; else if (snowflake && snowflake instanceof Message) return snowflake; else if ( snowflake && (snowflake instanceof ButtonInteraction || snowflake instanceof SelectMenuInteraction || snowflake instanceof CommandInteraction) && snowflake?.message ) return snowflake?.message; else return undefined; } static interactionResolver(discordClient, snowflake) { if (!(discordClient && discordClient instanceof Client)) return undefined; else if ( snowflake && (snowflake instanceof ButtonInteraction || snowflake instanceof SelectMenuInteraction || snowflake instanceof CommandInteraction) && snowflake?.commandId && snowflake?.commandName ) return snowflake; else return undefined; } } module.exports = snowFlakes;