简体   繁体   English

Discord.js,切换命令

[英]Discord.js, Toggling commands

so I want to toggle command using a command.所以我想使用命令切换命令。 eg ?command toggle (name) .例如?command toggle (name) I've been thinking of using a database and getting the guild and the commands available and then it checks if it is disabled when doing the command on the action.我一直在考虑使用数据库并获取可用的行会和命令,然后检查它是否在对操作执行命令时被禁用。 I don't know how to approach this tho.我不知道如何处理这个问题。 Any help?有什么帮助吗? Thanks in advance: :)提前致谢: :)

You could achieve this by using a database and something along these lines.您可以通过使用数据库和类似的东西来实现这一点。 Use these as guidelines when making your own, the following code hasn't been tested, ill leave the rest up to you.在自己制作时使用这些作为指南,以下代码尚未经过测试,我将 rest 留给您。

var mysql = require("mysql")
var prefix = "!"

// con == connection to database


// on message
if (!message.content.startsWith(prefix)) return;

let [command, ...args] = msg.content.slice(prefix.length).split(/\s+/g)
var disabled = false;

con.query(`SELECT * FROM commandsettings WHERE command = ${command}`, (err, rows) {
    if (err) return console.err(err);
    if (!rows) return;

    disabled = rows[0].toggled
})

if (disabled === true) return;


// command handler
if (command == "toggle") {
    con.query(`SELECT * FROM commandsettings WHERE command = '${args[0]}'`, (err, rows) => {
        if (err) return console.error(err)
        if (!rows) return console.error("NO ROWS FOUND")

        var toggleto = (args[1] || rows[0].toggled ? false : true)

        con.query(`UPDATE commandsettings SET toggled = '${toggleto}' WHERE command = '${args[0]}`, (err) => {
            if (err) console.error(err)
        })

        message.channel.send(`Toggled Command "${command}" to "${toggleto ? "Enabled" : "Disabled"} "`)

    })
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM