MessageEmbed is not a consturcotr but is a construtcor

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);

New contributor

Pain Abi is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật