export default { name: "messageCreate", async execute(client, message) { if (message.author.bot || !message.guild) return; if (message.content === `<@${client.bot.user.id}>`) return message.reply(`Mein Prefix ist: \`${client.config.prefix}\``); if (!message.content.startsWith(client.config.prefix)) return; const args = message.content .slice(client.config.prefix.length) .trim() .split(" "); const commandName = args.shift().toLowerCase(); const command = client.commands.get(commandName) || client.commands.get(client.aliases.get(commandName)); if ( !command || (!command.guild.includes("all") && !command.guild.includes(message.guild.id)) ) return; // Cooldown check if (client.cooldowns.has(`${message.guild.id}-${message.author.id}`)) { if ( command.name === client.cooldowns.get(`${message.guild.id}-${message.author.id}`) ) return message.reply( `Bitte warte ${command.cooldown} Sekunde(n) bevor du diesen Befehl erneut verwendest!` ); } // NSFW check if (command.nsfw && !message.channel.nsfw) return message.reply( "Dieser Befehl ist als NSFW markiert. Bitte verwende ihn in einem NSFW-Kanal!" ); // Args check if (command.args_required > 0 && args.length < command.args_required) { if (!command.args_usage) return message.reply("Du hast nicht genug Argumente für diesen Befehl angegeben!"); else return message.reply( `Du hast nicht genug Argumente für diesen Befehl angegeben! Korrekte Nutzung: \`${client.config.prefix}${command.name} ${command.args_usage}\`` ); } // User permissions check if (command.user_permissions?.length > 0) { if (!message.member.permissions.has(command.user_permissions)) return message.reply( `Du hast keine Berechtigung diesen Befehl auszuführen! \`${command.user_permissions.join("` `")}\`` ); } // Bot permissions check if (command.bot_permissions?.length > 0) { if (!message.guild.members.me.permissions.has(command.bot_permissions)) return message.reply( `Ich habe nicht die erforderlichen Berechtigungen! \`${command.bot_permissions.join("` `")}\`` ); } // Mark as prefix command message.isSlash = false; command.execute(client, message, args); client.logger.info( `[cmd] [${message.guild.name}] [#${message.channel.name}] (${message.author.username}) ${message.content}` ); // Update cooldowns client.cooldowns.set(`${message.guild.id}-${message.author.id}`, command.name); setTimeout(() => { client.cooldowns.delete(`${message.guild.id}-${message.author.id}`); }, command.cooldown * 1000); }, };