【问题标题】:How do I make a ban, kick and clear command for my bot?如何为我的机器人制定禁令、踢出和清除命令?
【发布时间】:2021-05-14 12:44:33
【问题描述】:

我想知道如何为我的机器人制定禁令、踢出和清除命令。我将向您展示代码,但在此之前我一直在进行研究,但没有任何效果。我使用 node.js,我是初学者,所以我需要你告诉我。

-命令的代码(没有外部链接) - 如何让代码工作。 - 在哪里放置代码。

好的,代码如下。

const Discord = require('discord.js');
const bot = new Discord.Client();
const { MessageEmbed } = require("discord.js");

bot.once('ready', () => {
    console.log('Ready!');
});

bot.on('message', message => {
if(message.content === '!help') {
let embed = new MessageEmbed()
.setTitle("Ratchet Commands")
.setDescription("!getpizza, !shutup, !playdead, !server-info, !myname, !banhammer, !yourcreator, !annoy, !youare")
.setColor("RANDOM")
message.channel.send(embed)
}
});

bot.on('message', message => {
    if (message.content === '!getpizza') {
        message.channel.send('Welcome to Ratchets Pizza!!! Heres your pizza and have a nice day!!! :pizza:');
    }
});


bot.on('message', message => {
    if (message.content === '!shutup') {
        message.channel.send('Okay, I am sorry.');
    }
});

bot.on('message', message => {
    if (message.content === '!server-info') {
        message.channel.send(`Server name: ${message.guild.name}\nTotal members: ${message.guild.memberCount}`);
    }
});

bot.on('message', message => {
    if (message.content === '!myname') {
        message.channel.send(`Your username: ${message.author.username}`);
    }
});

bot.on('message', message => {
    if (message.content === '!rocket') {
        message.channel.send('3..2..1..Blast Off!!! :rocket:');
    }
});

bot.on('message', message => {
    if (message.content === '!youare') {
        message.channel.send(`I am <@!808773656700256318>`);
    }
});
bot.on('message', message => {
if(message.content === '!yourcreator') {
let embed = new MessageEmbed()
.setTitle("Ratchets Creator")
.setDescription("My creator is <@!765607070539579402>")
.setColor("RANDOM")
message.channel.send(embed)
}
});


bot.on('message', message => {
if(message.content.startsWith(`!annoy`)) {
    const mentionedUser = message.mentions.users.first();
    if(!mentionedUser) return message.channel.send("You have to mention someone to continue annoying someone :rofl:");
    mentionedUser.send('You have a problem with me?');
    message.channel.send("Annoyed " + mentionedUser + "! (Oh wait, I annoyed them 2 times!)");
}
});


module.exports = {
    name: '!kick',
    description: "this command kicks people",
    execute(message, args){
        const member = message.mentions.users.first();
        if(member){
            const memberTarget = message.guild.member(member);
            memberTarget.kick();
            message.channel.send("bing bong he is gone!");
        }else{
            message.channel.send('you couldnt kick that person');
        }
    }
}

bot.login('TOKEN');

我知道我需要一个命令处理程序,但我也不知道该怎么做。

谢谢!!!

【问题讨论】:

  • "我使用 node.js,我是初学者" 虽然超出了您提出的问题的范围,但您可能应该考虑解决一些复杂性较低的问题在毕业到像 Discord 机器人这样复杂的东西之前学习你正在使用的语言的基础知识的任务。在 Stack Overflow 上,我们专注于单一的、具体的、可回答的编码问题。对于 Stack Overflow 的问答格式,您的问题方式过于宽泛(可能部分或完全是由于您对所使用的语言缺乏基础知识) - 请参阅 How to Ask
  • 你也可以从 discordjs.guidelearn how to ask Stack Overflow 上的好问题中学习基础知识

标签: javascript node.js discord discord.js bots


【解决方案1】:

所以首先你犯了一个非常大的错误,你总是回忆message事件,像这样优化你的代码:

const Discord = require('discord.js');
const bot = new Discord.Client();
const { MessageEmbed } = require("discord.js");

bot.once('ready', () => {
    console.log('Ready!');
});

bot.on('message', message => {
if(message.content === '!help') {
let embed = new MessageEmbed()
.setTitle("Ratchet Commands")
.setDescription("!getpizza, !shutup, !playdead, !server-info, !myname, !banhammer, !yourcreator, !annoy, !youare")
.setColor("RANDOM")
message.channel.send(embed)

if (message.content === '!getpizza') {
        message.channel.send('Welcome to Ratchets Pizza!!! Heres your pizza and have a nice day!!! :pizza:');
}

if (message.content === '!server-info') {
        message.channel.send(`Server name: ${message.guild.name}\nTotal members: ${message.guild.memberCount}`);
    }

if (message.content === '!myname') {
        message.channel.send(`Your username: ${message.author.username}`);
    }

if (message.content === '!rocket') {
        message.channel.send('3..2..1..Blast Off!!! :rocket:');
    }

if (message.content === '!youare') {
        message.channel.send(`I am <@!808773656700256318>`);
    }

if(message.content === '!yourcreator') {
let embed = new MessageEmbed()
.setTitle("Ratchets Creator")
.setDescription("My creator is <@!765607070539579402>")
.setColor("RANDOM")
message.channel.send(embed)
}

if(message.content.startsWith(`!annoy`)) {
    const mentionedUser = message.mentions.users.first();
    if(!mentionedUser) return message.channel.send("You have to mention someone to continue annoying someone :rofl:");
    mentionedUser.send('You have a problem with me?');
    message.channel.send("Annoyed " + mentionedUser + "! (Oh wait, I annoyed them 2 times!)");
}

});

module.exports = {
    name: '!kick',
    description: "this command kicks people",
    execute(message, args){
        const member = message.mentions.users.first();
        if(member){
            const memberTarget = message.guild.member(member);
            memberTarget.kick();
            message.channel.send("bing bong he is gone!");
        }else{
            message.channel.send('you couldnt kick that person');
        }
    }
}

bot.login('TOKEN');

然后做一个 !ban @提及你可以做:

if (message.content.startsWith('!ban ')) {
                if (message.mentions.members.first()) {
                    if (!message.mentions.members.first().bannable) {
                        message.channel.send('I can\'t ban the specified user')
                        return
                    }
                    try {
                        message.mentions.members.first().ban()
                    }finally {
                        message.channel.send('The member was correctly banned')
                    }
                }
            }

还有一个 !kick

if (message.content.startsWith('!kick ')) {
                if (message.mentions.members.first()) {
                    if (!message.mentions.members.first().kickable) {
                        message.channel.send('I can\'t kick the specified user')
                        return
                    }
                    try {
                        message.mentions.members.first().kick
                    }finally {
                        message.channel.send('The member was correctly kicked')
                    }
                }
            }

最后是清除命令

if (message.content.startsWith('!clear ')) {
                let toClear = args[1]
                for (let i = 0; i < toClear; i++) {
                    m.channel.lastMessage.delete()
                }
            }

希望对你有帮助^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 2020-12-23
    • 2021-01-24
    • 2022-07-16
    • 2021-11-21
    • 2020-10-20
    • 2017-03-10
    • 2020-08-14
    相关资源
    最近更新 更多