Fehler
[SYSTEM] BOT ONLINE!
node:events:497
throw er; // Unhandled ‘error’ event
^
TypeError: Discord.MessageEmbed is not a constructor
at createEmbed (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotbot.js:27:19)
at Client. (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotbot.js:178:27)
at Client.emit (node:events:519:28)
at MessageCreateAction.handle (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modulesdiscord.jssrcclientactionsMessageCreate.js:28:14)
at module.exports [as MESSAGE_CREATE] (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:355:31)
at WebSocketManager. (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:239:12)
at WebSocketManager.emit (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modules@vladfranguasync_event_emitterdistindex.cjs:282:31)
at WebSocketShard. (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modules@discordjswsdistindex.js:1190:51)
at WebSocketShard.emit (C:UsersAdminDownloadstbdark_pxin-painabi-ticketbotnode_modules@vladfranguasync_event_emitterdistindex.cjs:282:31)
Emitted ‘error’ event on Client instance at:
at emitUnhandledRejectionOrErr (node:events:402:10)
at process.processTicksAndRejections (node:internal/process/task_queues:84:21)
Node.js v20.13.1
i tried to make ticketmenu !ticketmenu then came this error
const Discord = require('discord.js');
const { createConnection } = require('mysql');
const { createTranscript } = require('discord-html-transcripts');
const fs = require('fs');
require("dotenv").config();
const currentDate = new Date();
const currentTime = currentDate.toLocaleString();
const client = new Discord.Client({
intents: [
Discord.GatewayIntentBits.Guilds,
Discord.GatewayIntentBits.GuildMessages,
Discord.GatewayIntentBits.MessageContent,
Discord.GatewayIntentBits.GuildMembers,
],
});
function sendLog(msg) {
let embed = new Discord.MessageEmbed();
embed.setColor(process.env.COLOR);
embed.setTitle(msg);
embed.setTimestamp();
return client.guilds.cache.get(process.env.GUILD_ID).channels.cache.get(process.env.LOG_CHANNEL).send({ embeds: }).catch((err)=>{logfile(err)});
}
function createEmbed(title, msg) {
const embed = new Discord.MessageEmbed();
embed.setAuthor(process.env.SERVER_NAME, process.env.LOGO);
embed.setColor(process.env.COLOR);
embed.setThumbnail(process.env.LOGO);
embed.setImage(process.env.BANNER);
embed.setTitle(title);
embed.setDescription(msg);
embed.setTimestamp();
embed.setFooter(process.env.SERVER_NAME, process.env.LOGO);
return embed;
}
function logfile(logMessage) {
const timestamp = new Date().toISOString();
const logEntry = `n[${timestamp}] ${logMessage}`;
const logFilePath = './log.log';
fs.appendFile(logFilePath, logEntry, (err) => {
if (err) {
console.error('Error writing to log file:', err);
}
});
};
async function createTicket(interaction, emoji, owner, type, parent, permissions) {
const newTicket = await interaction.guild.channels.create({
name: `${emoji}-${owner.username}`,
parent: parent,
type: 'GUILD_TEXT',
topic: `${type} - ${owner.username} (${owner.id})`,
permissionOverwrites: [
{
id: interaction.guild.roles.everyone.id,
deny: ['VIEW_CHANNEL'],
},
{
id: permissions,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'SEND_TTS_MESSAGES'],
},
{
id: owner.id,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'SEND_TTS_MESSAGES'],
},
],
}).catch((err)=>{logfile(err)});
sendLog(`${owner.tag} hat das Ticket __${newTicket.name}__ Geöffnet!`);
return newTicket;
}
async function addToTicket(ticket_id, user_id) {
const ticket = client.guilds.cache.get(process.env.GUILD_ID).channels.cache.get(ticket_id);
const user = client.guilds.cache.get(process.env.GUILD_ID).members.cache.get(user_id);
ticket.permissionOverwrites.edit(user.id, {SEND_MESSAGES: true});
}
client.on('ready', async () => {
client.user.setPresence({
activities: [
{
name: 'engineservice.xyz',
type: 'WATCHING',
},
],
status: 'dnd'
});
logfile('bot is online');
console.log('[SYSTEM] BOT ONLINE!');
setTimeout(() => {
client.user.setPresence({
activities: [
{
name: 'discord.gg/engineservice',
type: 'PLAYING',
},
],
status: 'online'
});
logfile('Status changed to "discord.gg/engineservice"');
console.log('[SYSTEM] Status changed to "discord.gg/engineservice"');
}, 10000);
});
/*client.on("guildMemberAdd", async (member) => {
const Embed = new Discord.MessageEmbed();
Embed.setAuthor({
name: `engineservice.xyz`,
iconURL: "https://cdn.discordapp.com/attachments/1245025183501254726/1245086529924239380/es.png?ex=66582171&is=6656cff1&hm=4ec22a9e937338fc9ab88b703a1fb550974074bdeec4330049b7dbf6dd4e603c&",
});
Embed.setTitle("Hey, schön, dass du da bist!");
Embed.setColor("#0000ff");
Embed.setTimestamp();
Embed.setImage("https://cdn.discordapp.com/attachments/1245025183501254726/1245086529504673872/engine.png?ex=66582171&is=6656cff1&hm=4ff9914d8fc330ac7e13fab33aeadeace7bdf5475ef9809b71126e09eb54db92&");
Embed.setDescription(`
Willkommen **${member.user.tag}** (<@${member.user.id}>), ist gerade dem Server beigetreten. ????
auf dem offiziellen __**EngineService.xyz**__ Discord Server
Um alle Kanäle zu sehen, musst du unsere Regeln akzeptieren! <#1242032315732066329>
Bei Fragen oder Problemen, eröffne gerne ein Ticket <#1242032350926340129>
**Mit freundlichen Grüßen,**
**Dein engineservice.xyz Team**
`);
Embed.setThumbnail(member.user.displayAvatarURL({ format: 'png', dynamic: true, size: 512 }));
Embed.setFooter({
text: `engineservice.xyz • ${currentTime}`,
iconURL: "https://cdn.discordapp.com/attachments/1245025183501254726/1245086529924239380/es.png?ex=66582171&is=6656cff1&hm=4ec22a9e937338fc9ab88b703a1fb550974074bdeec4330049b7dbf6dd4e603c&", // Hier kannst du das Server-Icon einfügen, falls gewünscht
});
return member.guild.channels.cache.get("1242032312028364851").send({
content: `<@${member.user.id}>`,
embeds: [Embed],
});
});*/
client.on('guildMemberAdd', member => {
const channel = member.guild.channels.cache.get("1242032314259603477");
if (channel) {
const memberCount = member.guild.memberCount;
channel.setName(`Mitglieder » ${memberCount}`);
logfile('Neuer Member <3');
console.log(`[SYSTEM] Kanal "${channel.name}" aktualisiert. Neue Mitgliederanzahl: ${memberCount}`);
} else {
logfile('Guildmemberadd Channel nicht gefunedn');
console.log(`[SYSTEM] Kanal nicht gefunden!`);
}
});
client.on('messageCreate', async (message) => {
if (message.author.bot) return;
if (message.content.startsWith('!add')) {
const input = message.content.slice('!add'.length).trim();
if (input) {
addToTicket(message.channel.id, input);
} else {
message.channel.send('Bitte gib eine ID ein, die du hinzufügen möchtest.');
}
}
if (message.content.startsWith('!ticketmenu')) {
if (message.member.permissions.has('ADMINISTRATOR')) {
const embed = createEmbed('EngineService', 'Hier kannst du ein Ticket erstellen, wenn du Hilfe benötigst!');
const buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('open_ticket_select_menu')
.setLabel('TICKET ERÖFFNEN!')
.setStyle('SUCCESS')
.setEmoji('????'),
new Discord.MessageButton()
.setCustomId('open_ticket_informations')
.setLabel('TICKET INFORMATIONEN!')
.setStyle('SUCCESS')
.setEmoji('ℹ️')
);
message.channel.send({ embeds: , components: [buttons] }).catch((err)=>{logfile(err)});
} else {
if (message.deletable()) {
message.delete().catch((err)=>{logfile(err)});
}
}
}
});
var selectmenu_msg = null;
client.on('interactionCreate', async (interaction) => {
if (interaction.isCommand()) return;
if (interaction.customId === 'open_ticket_select_menu') {
const selectmenu = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageSelectMenu()
.setCustomId('ticket_selectmenu')
.setPlaceholder('Wähle ein Ticket aus!')
.addOptions([
{
label: '???? Support Ticket',
value: 'open_ticket__support'
},
{
label: '???? Partner Ticket',
value: 'open_ticket__partner'
},
{
label: '???? Teambewerbungs Ticket',
value: 'open_ticket__team'
},
{
label: '???? Kauf Ticket',
value: 'open_ticket__donation'
}
])
);
selectmenu_msg = await interaction.reply({ components: [selectmenu], ephemeral: true }).catch((err)=>{logfile(err)});
} else if (interaction.customId === 'ticket_selectmenu') {
let ticket_type = '';
await interaction.values.forEach(async value => {
ticket_type += `${value}`
});
if (ticket_type === 'open_ticket__support') {
const newTicket = await createTicket(interaction, '????', interaction.user, 'Support Ticket', '1242032302259703848', '1242032272916615230');
const newTicketCreated = createEmbed(`EngineService`, `
Dein Ticket wurde erfolgreich erstellt.
Du findest dein Ticket in <#${newTicket.id}>!
`);
const TicketOpenMessage = createEmbed(`EngineService`, `
Hey <@${interaction.user.id}>, bitte beschreibe dein Problem!
Ein Teammitglied wird sich in Kürze bei dir melden!
Bitte beachte, dass wir nur Kunden mit der entsprechenden Rolle helfen können. Hole dir diese Rolle in <#1242032343217078292> mit dem Befehl /claim!
`);
const Buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('close_ticket_request')
.setStyle('SUCCESS')
.setLabel('SCHLIEßEN')
.setEmoji('????'),
new Discord.MessageButton()
.setCustomId('ticket_claim')
.setStyle('SUCCESS')
.setLabel('BEANSPRUCHEN')
.setEmoji('????')
);
newTicket.send({ embeds: [TicketOpenMessage], content: `<@${interaction.user.id}> × <@&1242032272916615230>`, components: [Buttons] }).catch((err)=>{logfile(err)});
let TicketCreatedMsg = await interaction.reply({ embeds: [newTicketCreated], ephemeral: true }).catch((err)=>{logfile(err)});
} else if (ticket_type === 'open_ticket__partner') {
const newTicket = await createTicket(interaction, '????', interaction.user, 'Partner Ticket', '1243982327193931888', '1242032304474427402');
const newTicketCreated = createEmbed(`EngineService`, `
Dein Ticket wurde erfolgreich erstellt.
Du findest dein Ticket in <#${newTicket.id}>!
`);
const TicketOpenMessage = createEmbed(`EngineService`, `
Hey <@${interaction.user.id}>, Hey bitte warte bis sich in kürze einer vom Mangament bei dir meldet!
`);
const Buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('close_ticket_request')
.setStyle('SUCCESS')
.setLabel('SCHLIEßEN')
.setEmoji('????'),
new Discord.MessageButton()
.setCustomId('ticket_claim')
.setStyle('SUCCESS')
.setLabel('BEANSPRUCHEN')
.setEmoji('????')
);
newTicket.send({ embeds: [TicketOpenMessage], content: `<@${interaction.user.id}> × <@&1243982327193931888>`, components: [Buttons] }).catch((err)=>{logfile(err)});
let TicketCreatedMsg = await interaction.reply({ embeds: [newTicketCreated], ephemeral: true }).catch((err)=>{logfile(err)});
} else if (ticket_type === 'open_ticket__donation') {
const newTicket = await createTicket(interaction, '????', interaction.user, 'Kauf Ticket', '1242032303127924757', '1242032260010741770');
const newTicketCreated = createEmbed(`EngineService`, `
Dein Ticket wurde erfolgreich erstellt.
Du findest dein Ticket in <#${newTicket.id}>!
`);
const TicketOpenMessage = createEmbed(`EngineService`, `
Hey <@${interaction.user.id}>, Bitte warte bis ein <@&1242032260010741770> sich bei dir meldet die Aufname geschiecht vom <@1143526017579884684>!
<@${interaction.user.id}>, Bitte sende keine Codes in das Ticket oder an Teamitglieder Privat auẞer an einen <@&1242032260010741770>!
Dies gilt zu deiner Sicherheit!
`);
const Buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('close_ticket_request')
.setStyle('SUCCESS')
.setLabel('SCHLIEßEN')
.setEmoji('????'),
new Discord.MessageButton()
.setCustomId('ticket_claim')
.setStyle('SUCCESS')
.setLabel('BEANSPRUCHEN')
.setEmoji('????')
);
newTicket.send({ embeds: [TicketOpenMessage], content: `<@${interaction.user.id}> × <@1143526017579884684> × <@&1242032260010741770> `, components: [Buttons] }).catch((err)=>{logfile(err)});
let TicketCreatedMsg = await interaction.reply({ embeds: [newTicketCreated], ephemeral: true }).catch((err)=>{logfile(err)});
} else if (ticket_type === 'open_ticket__team') {
const newTicket = await createTicket(interaction, '????', interaction.user, 'Teambewerbungs Ticket', '1143526017579884684', '1242032304474427402');
const newTicketCreated = createEmbed(`EngineService`, `
Dein Ticket wurde erfolgreich erstellt.
Du findest dein Ticket in <#${newTicket.id}>!
`);
const TicketOpenMessage = createEmbed(`EngineService`, `
Hey <@${interaction.user.id}>, Bitte warte auf das
`);
const Buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('close_ticket_request')
.setStyle('SUCCESS')
.setLabel('SCHLIEßEN')
.setEmoji('????'),
new Discord.MessageButton()
.setCustomId('ticket_claim')
.setStyle('SUCCESS')
.setLabel('BEANSPRUCHEN')
.setEmoji('????')
);
newTicket.send({ embeds: [TicketOpenMessage], content: `<@${interaction.user.id}> × <@1143526017579884684>`, components: [Buttons] }).catch((err)=>{logfile(err)});
let TicketCreatedMsg = await interaction.reply({ embeds: [newTicketCreated], ephemeral: true }).catch((err)=>{logfile(err)});
}
} else if (interaction.customId === 'close_ticket_request') {
const Embed = createEmbed(`EngineService`, `
<@${interaction.user.id}> hat das Ticket von Ticket __${interaction.channel.name}__ Geschlossen!
`);
const Buttons = new Discord.MessageActionRow()
.addComponents(
new Discord.MessageButton()
.setCustomId('delete_ticket')
.setStyle('SUCCESS')
.setLabel('TICKET LÖSCHEN')
.setEmoji('????️'),
new Discord.MessageButton()
.setCustomId('transcript_ticket')
.setStyle('SUCCESS')
.setLabel('TRANSCRIPT ERSTELLEN')
.setEmoji('????')
);
interaction.reply({ embeds: [Embed], components: [Buttons] }).catch((err)=>{logfile(err)});
interaction.channel.permissionOverwrites.set([]);
interaction.channel.permissionOverwrites.set([
{
id: interaction.guild.roles.everyone.id,
deny: ['VIEW_CHANNEL'],
},
{
id: '1242032272916615230',
allow: ['VIEW_CHANNEL'],
},
]);
interaction.channel.edit({
parent: '1242032305409888287'
});
sendLog(`${interaction.user.tag} hat das Ticket __${interaction.channel.name}__ erfolgreich geschlossen!`);
} else if (interaction.customId === 'delete_ticket') {
interaction.channel.delete().catch((err)=>{logfile(err)});
sendLog(`${interaction.user.tag} hat das Ticket __${interaction.channel.name}__ erfolgreich gelöscht!`);
} else if (interaction.customId === 'transcript_ticket') {
const Transcript = await createTranscript(interaction.channel, {
saveImages: true,
limit: -1,
returnBuffer: false,
filename: 'transcript.html',
footerText: 'EngineService Ticket Transcript by painabixyz',
poweredBy: false,
favicon: '',
});
interaction.guild.channels.cache.get('1242032363542810635').send({ files: [Transcript] }).catch((err)=>{logfile(err)});
let Embed = createEmbed(`EngineService`, `
Ein Transcript wurde Erstellt und in <#1242032363542810635> Gesendet!
`);
interaction.reply({ embeds: [Embed], ephemeral: true, files: [Transcript] }).catch((err)=>{logfile(err)});
sendLog(`${interaction.user.tag} hat ein Transcript von dem Ticket __${interaction.channel.name}__ Erstellt!`);
} else if (interaction.customId === 'open_ticket_informations') {
const embed = createEmbed('TICKET-SYSTEM HILFE', 'Hier kannst du ein Ticket eröffnen. Die Abfrage erhälst du, nachdem du den Button "TICKET ERÖFFNEN" gedrückt hast!');
interaction.reply({ embeds: [Embed], ephemeral: true }).catch((err)=>{logfile(err)});
} else if (interaction.customId === 'ticket_claim') {
const embed = createEmbed('TICKET-SYSTEM HILFE', `${interaction.user.tag} hat das Ticket __${interaction.channel.name}__ erfolgreich gelöscht!`);
interaction.reply({ embeds: [Embed], ephemeral: true }).catch((err)=>{logfile(err)});
sendLog(`${interaction.user.tag} hat das Ticket __${interaction.channel.name}__ gelclaimed!`);
}
});
client.login(process.env.TOKEN);
Pain Abi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.