const { REST } = require("@discordjs/rest"); const { Routes } = require("discord-api-types/v9"); const Discord = require("discord.js"); const ytdl = require("ytdl-core"); const { joinVoiceChannel, createAudioPlayer, StreamType, AudioPlayerStatus, VoiceConnectionStatus, entersState, createAudioResource, } = require("@discordjs/voice"); const { createDiscordJSAdapter } = require("./adapter"); const PREFIX = "//"; const COMMANDS = [ { name: "apply", description: "Replies with the application link for yucky! aiming." }, { name: "discord", description: "Replies with the invite link to yucky! aimings Discord server." }, { name: "twitter", description: "Replies with the link to yucky! aimings Twitter." }, { name: "github", description: "Replies with the link to yucky! aimings GitHub." }, { name: "steam", description: "Replies with the invite link to yucky! aimings Steam group." }, { name: "youtube", description: "Replies with the link to yucky! aimings YouTube channel." }, { name: "press", description: "Replies with the link to yucky! aimings press pack." }, ]; const player = createAudioPlayer(); const client = new Discord.Client( { intents: [ Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_VOICE_STATES, ], } ); const rest = new REST({ version: "9" }) .setToken("ODg5NDE0MDUzNjE1Nzk2Mjg3.YUg5Yg.2i3KiNfOXC2AbuBg-8jM3InxmuI"); const connectToChannel = async (channel) => { const connection = joinVoiceChannel({ channelId: channel.id, guildId: channel.guild.id, adapterCreator: createDiscordJSAdapter(channel), }); try { await entersState(connection, VoiceConnectionStatus.Ready, 30e3); return connection; } catch (error) { connection.destroy(); throw error; } }; const playURL = url => { const resource = createAudioResource(url, { inputType: StreamType.Arbitrary }); player.play(resource); return entersState(player, AudioPlayerStatus.Playing, 5e3); } (async () => { try { console.log("started resfreshing application (/) commands."); await rest.put( Routes.applicationGuildCommands( "889414053615796287", "888524070432423957" ), { body: COMMANDS }, ); console.log("successfully reloaded application (/) commands."); } catch (error) { console.error(error); } })(); client.on("ready", () => { console.log(`logged in as ${client.user.tag}.`); client.user.setActivity("your applications", { type: "WATCHING" }); }); client.on("error", console.error) client.on("interactionCreate", async interaction => { if (!interaction.isCommand()) { return; } switch (interaction.commandName) { case "apply": { await interaction.reply("https://fuwn.link/apply2yucky") } break; case "discord": { await interaction.reply("https://discord.io/yucky") } break; case "twitter": { await interaction.reply("https://twitter.com/yuckyaiming") } break; case "github": { await interaction.reply("https://github.com/yuckyaiming") } break; case "steam": { await interaction.reply("https://steamcommunity.com/groups/yucky_de") } break; case "youtube": { await interaction.reply("https://www.youtube.com/channel/UCDZsU0eaFU0HjcM_1bpYbUA") } break; case "press": { await interaction .reply("https://drive.google.com/drive/folders/1A7TJ-PXqYqJ5VHBtzvYInFOEpA3Gk8zC?usp=sharing") } break; } }); client.on("messageCreate", async message => { let arguments; let command; if (message.author.id === client.user.id) { return; } if (message.content.startsWith(PREFIX)) { arguments = message.content.slice(PREFIX.length).split(/ +/); command = arguments.shift().toLowerCase(); } else { return; } switch (command) { case "say": { await message.delete(); if (message.author.id === "217348698294714370") { await message.channel.send(arguments.join(" ")); } } break; case "join": { await message.delete(); if (message.author.id === "217348698294714370") { const connection = await connectToChannel(message.member.voice.channel); } } break; case "play": { await message.delete(); if (message.author.id === "217348698294714370") { const connection = await connectToChannel(message.member.voice.channel); await playURL("https://www.soundjay.com/human/fart-01.mp3"); connection.subscribe(player); } } break; } }); client.login("ODg5NDE0MDUzNjE1Nzk2Mjg3.YUg5Yg.2i3KiNfOXC2AbuBg-8jM3InxmuI");