Fix: Replace deprecated ephemeral with MessageFlags.Ephemeral
All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 6s

Fixes Discord.js v14 deprecation warning by replacing all
ephemeral: true usages with flags: [MessageFlags.Ephemeral].

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 18:22:44 +01:00
parent d65e613cdd
commit f78636447b
5 changed files with 33 additions and 33 deletions

View File

@@ -1,4 +1,4 @@
import { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder, GuildMember } from 'discord.js'; import { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder, GuildMember, MessageFlags } from 'discord.js';
import { Command } from '../../structures/Command.js'; import { Command } from '../../structures/Command.js';
const command: Command = { const command: Command = {
@@ -136,12 +136,12 @@ const command: Command = {
const reason = interaction.options.getString('reason') ?? 'Kein Grund'; const reason = interaction.options.getString('reason') ?? 'Kein Grund';
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
if (!target.kickable) { if (!target.kickable) {
await interaction.reply({ content: 'Ich kann diesen Nutzer nicht kicken.', ephemeral: true }); await interaction.reply({ content: 'Ich kann diesen Nutzer nicht kicken.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -150,7 +150,7 @@ const command: Command = {
await interaction.reply(`✅ Gekickt: ${target.user.tag}\nGrund: ${reason}`); await interaction.reply(`✅ Gekickt: ${target.user.tag}\nGrund: ${reason}`);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
await interaction.reply({ content: '❌ Fehler beim Kicken.', ephemeral: true }); await interaction.reply({ content: '❌ Fehler beim Kicken.', flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }
@@ -160,7 +160,7 @@ const command: Command = {
const reason = interaction.options.getString('reason')!; const reason = interaction.options.getString('reason')!;
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -217,7 +217,7 @@ const command: Command = {
const target = interaction.options.getMember('target') as GuildMember; const target = interaction.options.getMember('target') as GuildMember;
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -229,7 +229,7 @@ const command: Command = {
); );
if (!latestWarn) { if (!latestWarn) {
await interaction.reply({ content: 'Keine Warnung für diesen Nutzer gefunden.', ephemeral: true }); await interaction.reply({ content: 'Keine Warnung für diesen Nutzer gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -245,7 +245,7 @@ const command: Command = {
const reason = interaction.options.getString('reason') ?? 'Kein Grund'; const reason = interaction.options.getString('reason') ?? 'Kein Grund';
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -269,7 +269,7 @@ const command: Command = {
const multiplier = unitSeconds[unit!]; const multiplier = unitSeconds[unit!];
if (!multiplier) { if (!multiplier) {
await interaction.reply({ content: '❌ Ungültige Zeiteinheit.', ephemeral: true }); await interaction.reply({ content: '❌ Ungültige Zeiteinheit.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -287,7 +287,7 @@ const command: Command = {
}; };
durationText = `${duration} ${unitNames[unit!]}`; durationText = `${duration} ${unitNames[unit!]}`;
} else { } else {
await interaction.reply({ content: '❌ Dauer oder Zeiteinheit angeben.', ephemeral: true }); await interaction.reply({ content: '❌ Dauer oder Zeiteinheit angeben.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -296,7 +296,7 @@ const command: Command = {
await interaction.reply(`✅ Gemuted: ${target.user.tag}\nDauer: ${durationText}\nGrund: ${reason}`); await interaction.reply(`✅ Gemuted: ${target.user.tag}\nDauer: ${durationText}\nGrund: ${reason}`);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
await interaction.reply({ content: '❌ Fehler beim Muten.', ephemeral: true }); await interaction.reply({ content: '❌ Fehler beim Muten.', flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }
@@ -305,7 +305,7 @@ const command: Command = {
const target = interaction.options.getMember('target') as GuildMember; const target = interaction.options.getMember('target') as GuildMember;
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -314,7 +314,7 @@ const command: Command = {
await interaction.reply(`✅ Entmutet: ${target.user.tag}`); await interaction.reply(`✅ Entmutet: ${target.user.tag}`);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
await interaction.reply({ content: '❌ Fehler beim Entmuten.', ephemeral: true }); await interaction.reply({ content: '❌ Fehler beim Entmuten.', flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }
@@ -325,12 +325,12 @@ const command: Command = {
const deleteDays = interaction.options.getInteger('delete_days') ?? 0; const deleteDays = interaction.options.getInteger('delete_days') ?? 0;
if (!target) { if (!target) {
await interaction.reply({ content: 'Nutzer nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Nutzer nicht gefunden.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
if (!target.bannable) { if (!target.bannable) {
await interaction.reply({ content: 'Ich kann diesen Nutzer nicht bannen.', ephemeral: true }); await interaction.reply({ content: 'Ich kann diesen Nutzer nicht bannen.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
@@ -339,7 +339,7 @@ const command: Command = {
await interaction.reply(`✅ Gebannt: ${target.user.tag}\nGrund: ${reason}`); await interaction.reply(`✅ Gebannt: ${target.user.tag}\nGrund: ${reason}`);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
await interaction.reply({ content: '❌ Fehler beim Bannen.', ephemeral: true }); await interaction.reply({ content: '❌ Fehler beim Bannen.', flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }
@@ -356,7 +356,7 @@ const command: Command = {
await interaction.reply(`✅ Entbannt: ${targetId}`); await interaction.reply(`✅ Entbannt: ${targetId}`);
} catch (error: any) { } catch (error: any) {
console.error(error); console.error(error);
await interaction.reply({ content: `❌ Fehler beim Entbannen: ${error.message}`, ephemeral: true }); await interaction.reply({ content: `❌ Fehler beim Entbannen: ${error.message}`, flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }
@@ -376,14 +376,14 @@ const command: Command = {
{ name: 'Mute-Dauer', value: `${(settings?.warn_mute_duration ?? 1800) / 60} Min`, inline: true } { name: 'Mute-Dauer', value: `${(settings?.warn_mute_duration ?? 1800) / 60} Min`, inline: true }
); );
await interaction.reply({ embeds: [embed], ephemeral: true }); await interaction.reply({ embeds: [embed], flags: [MessageFlags.Ephemeral] });
return; return;
} }
if (setting === 'warn_threshold') { if (setting === 'warn_threshold') {
const threshold = parseInt(value!); const threshold = parseInt(value!);
if (isNaN(threshold) || threshold < 1) { if (isNaN(threshold) || threshold < 1) {
await interaction.reply({ content: '❌ Ungültiger Wert. Mindestens 1.', ephemeral: true }); await interaction.reply({ content: '❌ Ungültiger Wert. Mindestens 1.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
DB.run('UPDATE guild_settings SET warn_threshold = ? WHERE guild_id = ?', threshold, guildId); DB.run('UPDATE guild_settings SET warn_threshold = ? WHERE guild_id = ?', threshold, guildId);
@@ -394,7 +394,7 @@ const command: Command = {
if (setting === 'warn_action') { if (setting === 'warn_action') {
const validActions = ['none', 'kick', 'mute', 'ban']; const validActions = ['none', 'kick', 'mute', 'ban'];
if (!validActions.includes(value!)) { if (!validActions.includes(value!)) {
await interaction.reply({ content: `❌ Ungültige Aktion. Möglich: ${validActions.join(', ')}`, ephemeral: true }); await interaction.reply({ content: `❌ Ungültige Aktion. Möglich: ${validActions.join(', ')}`, flags: [MessageFlags.Ephemeral] });
return; return;
} }
DB.run('UPDATE guild_settings SET warn_action = ? WHERE guild_id = ?', value, guildId); DB.run('UPDATE guild_settings SET warn_action = ? WHERE guild_id = ?', value, guildId);
@@ -405,7 +405,7 @@ const command: Command = {
if (setting === 'warn_mute_duration') { if (setting === 'warn_mute_duration') {
const duration = durationValue ?? 1800; const duration = durationValue ?? 1800;
if (duration < 0) { if (duration < 0) {
await interaction.reply({ content: '❌ Ungültige Dauer.', ephemeral: true }); await interaction.reply({ content: '❌ Ungültige Dauer.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
DB.run('UPDATE guild_settings SET warn_mute_duration = ? WHERE guild_id = ?', duration, guildId); DB.run('UPDATE guild_settings SET warn_mute_duration = ? WHERE guild_id = ?', duration, guildId);

View File

@@ -1,4 +1,4 @@
import { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } from 'discord.js'; import { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits, MessageFlags } from 'discord.js';
import { Command } from '../../structures/Command.js'; import { Command } from '../../structures/Command.js';
const command: Command = { const command: Command = {
@@ -52,7 +52,7 @@ const command: Command = {
} }
} }
await interaction.reply({ embeds: [embed], ephemeral: true }); await interaction.reply({ embeds: [embed], flags: [MessageFlags.Ephemeral] });
}, },
}; };

View File

@@ -1,4 +1,4 @@
import { SlashCommandBuilder, EmbedBuilder } from 'discord.js'; import { SlashCommandBuilder, EmbedBuilder, MessageFlags } from 'discord.js';
import { Command } from '../../structures/Command.js'; import { Command } from '../../structures/Command.js';
import { Deployer } from '../../structures/Deployer.js'; import { Deployer } from '../../structures/Deployer.js';
@@ -24,14 +24,14 @@ const command: Command = {
if (!client.application?.owner) await client.application?.fetch(); if (!client.application?.owner) await client.application?.fetch();
if (interaction.user.id !== client.application?.owner?.id) { if (interaction.user.id !== client.application?.owner?.id) {
await interaction.reply({ content: 'Keine Berechtigung.', ephemeral: true }); await interaction.reply({ content: 'Keine Berechtigung.', flags: [MessageFlags.Ephemeral] });
return; return;
} }
const subcommand = interaction.options.getSubcommand(); const subcommand = interaction.options.getSubcommand();
if (subcommand === 'deploy') { if (subcommand === 'deploy') {
await interaction.deferReply({ ephemeral: true }); await interaction.deferReply({ flags: [MessageFlags.Ephemeral] });
try { try {
const count = await Deployer.deploy(client.user!.id, client.token!); const count = await Deployer.deploy(client.user!.id, client.token!);
@@ -44,7 +44,7 @@ const command: Command = {
} }
if (subcommand === 'stats') { if (subcommand === 'stats') {
await interaction.deferReply({ ephemeral: true }); await interaction.deferReply({ flags: [MessageFlags.Ephemeral] });
const uptime = process.uptime(); const uptime = process.uptime();
const days = Math.floor(uptime / 86400); const days = Math.floor(uptime / 86400);
@@ -69,7 +69,7 @@ const command: Command = {
} }
if (subcommand === 'servers') { if (subcommand === 'servers') {
await interaction.deferReply({ ephemeral: true }); await interaction.deferReply({ flags: [MessageFlags.Ephemeral] });
const guilds = client.guilds.cache.map((guild: any) => const guilds = client.guilds.cache.map((guild: any) =>
`• **${guild.name}** \`(${guild.id})\` - ${guild.memberCount} Mitglieder` `• **${guild.name}** \`(${guild.id})\` - ${guild.memberCount} Mitglieder`
@@ -97,7 +97,7 @@ const command: Command = {
const nextEmbed = new EmbedBuilder() const nextEmbed = new EmbedBuilder()
.setColor(0xf1c40f) .setColor(0xf1c40f)
.setDescription(chunks[i].substring(0, 4000)); .setDescription(chunks[i].substring(0, 4000));
await interaction.followUp({ embeds: [nextEmbed], ephemeral: true }); await interaction.followUp({ embeds: [nextEmbed], flags: [MessageFlags.Ephemeral] });
} }
return; return;
} }

View File

@@ -1,4 +1,4 @@
import { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder } from 'discord.js'; import { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder, MessageFlags } from 'discord.js';
import { Command } from '../../structures/Command.js'; import { Command } from '../../structures/Command.js';
import { TwitchManager } from '../../structures/TwitchManager.js'; import { TwitchManager } from '../../structures/TwitchManager.js';
@@ -94,7 +94,7 @@ const command: Command = {
// Admin only // Admin only
if (!isAdmin) { if (!isAdmin) {
await interaction.reply({ content: '❌ Keine Berechtigung.', ephemeral: true }); await interaction.reply({ content: '❌ Keine Berechtigung.', flags: [MessageFlags.Ephemeral] });
return; return;
} }

View File

@@ -1,4 +1,4 @@
import { Events } from 'discord.js'; import { Events, MessageFlags } from 'discord.js';
export default { export default {
name: Events.InteractionCreate, name: Events.InteractionCreate,
@@ -21,7 +21,7 @@ export default {
`, interaction.commandName); `, interaction.commandName);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
const replyOptions = { content: 'There was an error while executing this command!', ephemeral: true }; const replyOptions = { content: 'There was an error while executing this command!', flags: [MessageFlags.Ephemeral] };
if (interaction.replied || interaction.deferred) { if (interaction.replied || interaction.deferred) {
await interaction.followUp(replyOptions); await interaction.followUp(replyOptions);
} else { } else {