Ticket-System, Web-Composer und Nachrichten-Bearbeitung
- Tickets: /ticket-setup postet 🎫-Button; Klick erstellt privaten Thread (ein offenes Ticket pro User), Schließen-Button sperrt + archiviert - Composer auf der Setup-Seite: Nachricht/Embed als Bot in beliebigen Kanal senden oder per Message-ID bearbeiten (nur eigene Bot-Posts) - API v1: PATCH /api/v1/message — Skripte können ihre Bot-Posts aktualisieren - Setting ticket_channel_id; README ergänzt Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// /ticket-setup — postet das Ticket-Embed mit 🎫-Button in den aktuellen Kanal (Admin)
|
||||
import {
|
||||
SlashCommandBuilder, PermissionFlagsBits, MessageFlags,
|
||||
ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder,
|
||||
} from 'discord.js';
|
||||
import { ticketChannelId } from '../../runtime-settings.js';
|
||||
|
||||
export const data = new SlashCommandBuilder()
|
||||
.setName('ticket-setup')
|
||||
.setDescription('Postet das Ticket-Embed mit Button in diesen Kanal')
|
||||
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator);
|
||||
|
||||
export async function execute(interaction) {
|
||||
if (!ticketChannelId()) {
|
||||
await interaction.reply({
|
||||
content: '❌ Erst auf der Setup-Seite einen Ticket-Kanal wählen.',
|
||||
flags: MessageFlags.Ephemeral,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(0xf5c518)
|
||||
.setTitle('🎫 Support-Ticket')
|
||||
.setDescription(
|
||||
'Du hast eine Frage, ein Problem oder ein privates Anliegen?\n\n' +
|
||||
'Klick auf den Button — es öffnet sich ein **privater Thread**, ' +
|
||||
'den nur du und das Team sehen können.'
|
||||
)
|
||||
.setFooter({ text: 'D4RKST3R // SUPPORT' });
|
||||
|
||||
const row = new ActionRowBuilder().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId('ticket_create')
|
||||
.setStyle(ButtonStyle.Primary)
|
||||
.setLabel('Ticket erstellen')
|
||||
.setEmoji('🎫')
|
||||
);
|
||||
|
||||
await interaction.channel.send({ embeds: [embed], components: [row] });
|
||||
await interaction.reply({ content: '✅ Ticket-Post erstellt.', flags: MessageFlags.Ephemeral });
|
||||
}
|
||||
Reference in New Issue
Block a user