import { Command } from '../structures/command' import { RunOptions } from '../types/commandTypes' import { APIEmbed } from 'discord.js' import { v4 as uuid } from 'uuid' import { logger } from '../logger' import { attachmentImages } from '../..' const color = 0x0099FF export default new Command({ name: 'mitgucken', description: 'Erfahre wie die Verbindung mit Jellyfin funktioniert und eine WatchTogether Gruppe funktioniert.', options: [], run: async (interaction: RunOptions) => { const requestId = uuid() interaction.interaction.followUp('Ich schicke dir einen Guide per DM!') const embedList: APIEmbed[] = [] // DownloadLink embedList.push({ color, title: 'Jellyfin Media Player', description: 'Du kannst den Jellyfin Media Player von github herunterladen.\n Der Mediaplayer muss genutzt werden, da ein Schauen direkt über das Webinterface den Server zum Schmelzen bringt.', fields: [ { name: "Windows", value: "https://github.com/jellyfin/jellyfin-media-player/releases/download/v1.9.1/JellyfinMediaPlayer-1.9.1-windows-x64.exe" }, { name: "Mac", value: "https://github.com/jellyfin/jellyfin-media-player/releases/download/v1.9.1/JellyfinMediaPlayer-1.9.1-macos-notarized.dmg" } ] }) // Installation embedList.push({ color, title: "Installation", description: "Führe die Datei aus und installiere den Jellyfin Media Player an den Ort deiner Wahl", image: { url: 'attachment://set_splashscreen.png' } }) // Login embedList.push({ color, title: "Server Auswahl", description: "Die Jellyfin App kann sich mit mehreren Servern verbinden.\n Hattest du noch nie eine Server Verbindung wähle hier 'Server hinzufügen'.", image: { url: 'attachment://start_screen.png' } }) // Server Address embedList.push({ color, title: "Server Verbindung", description: "Stelle eine Verbindung zum Hartzarett Jellyfin Server her", fields: [ { name: "Server Adresse", value: "https://media.hartzarett.ruhr" } ], image: { url: 'attachment://server_verbindung.png' } }) // Account choice embedList.push({ color, title: "Account Auswahl", description: "In der Regel sind die Accounts aus Datenschutzgründen versteckt.\nWähle 'Manuelle Anmeldung' aus", image: { url: 'attachment://auswahl_anmeldung.png' } }), // password screen embedList.push({ color, title: "Login", description: "Melde dich mit dem Usernamen und Passwort an, welches dir von mir zugeschickt wird.", image: { url: 'attachment://login_screen.png' } }) embedList.push({ color, title: "SyncPlay Menü", image: { url: 'attachment://jellyfin_ubersicht.png' }, description: "Im Hauptbildschirm findest du die 'SyncPlay' Einstellungen oben rechts.", }) // join group embedList.push({ color, title: "Gruppe beitreten", image: { url: 'attachment://gruppe_beitreten.png' }, description: "Suche dir aus dem Dropdown die SyncPlay Gruppe aus, die zu deinem Event gehört.", }) // leave group embedList.push({ color, title: "Gruppe verlassen", image: { url: 'attachment://gruppe_verlassen.png' }, description: "Wenn du die Watchparty verlassen möchtest, kannst du das ebenfalls über das Menü oben rechts tun.", }) // resume playback embedList.push({ color, title: "Wiedergabe fortsetzen", image: { url: 'attachment://wiedergabe_fortsetzen.png' }, description: "Wenn du aus der Watchparty rausgeflogen bist, oder die Wiedergabe verlassen hast, kannst du über das Menü oben rechts auch wieder zurückkehren.", }) //logger.info(`Trying to use ${splashScreen.name}`, { requestId, guildId: interaction.interaction.guild?.id }) logger.info(`Sending guide to ${interaction.interaction.user.id}`, { requestId, guildId: interaction.interaction.guild?.id }) const userDMchannel = await interaction.interaction.user.createDM() userDMchannel.send({ embeds: embedList, files: attachmentImages}) } })