Discord.js 是否可以发出设置日志通道的命令?
我正在创建一个新的用于调节的命令,我想知道是否可以生成一个设置日志通道的命令,例如,如果他们将其设置为#logs,如果他们禁止某个成员,它会向#logs发送一条消息,谢谢 我试过DB和一个支持服务器,但没有人知道如何创建一个 我试过这个:Discord.js 是否可以发出设置日志通道的命令?,discord.js,Discord.js,我正在创建一个新的用于调节的命令,我想知道是否可以生成一个设置日志通道的命令,例如,如果他们将其设置为#logs,如果他们禁止某个成员,它会向#logs发送一条消息,谢谢 我试过DB和一个支持服务器,但没有人知道如何创建一个 我试过这个: if (command === "ban") { if (!message.member.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send("Er
if (command === "ban") {
if (!message.member.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send("Error: Insufficient Permissions")
if (!message.guild.me.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send(`Error: I have Insufficient Permissions to ban Members`)
let member = message.mentions.members.first() || message.guild.members.get(args[0]);
if (!member) return message.channel.send(`Error: Missing Arguments, define member\nUsage: ${prefix}ban [member] [reason]`)
if (member.hasPermission("BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_SERVER", "ADMINISTRATOR", "MANAGE_MESSAGES", "MANAGE_ROLES")) return message.channel.send(`Error: That user is a mod/admin, I can't do that.`)
if (!member.bannable)
return message.channel.send(`I cannot ban ${member}`)
let reason = args.slice(1).join(" ");
if (!reason) return message.channel.send(`Error: Missing Arguments, define reason\nUsage: ${prefix}ban [member] [reason]`)
let log = db.fetch(`channel_${message.guild.id}`)
if (log === null) return
let logged = message.guild.channels.get(log)
member.ban(reason)
logged.send(`Banned!`)
message.channel.send(`${member.user.tag} has been successfully banned`)
}
我希望它会向记录的频道发送消息。因此,首先,您可以创建一个文件,例如
setlogchannel.js
,将频道保存在数据库中,我很确定您使用的是quick.db,这样您就可以复制并粘贴代码了
const {discord, MessageEmbed } = require('discord.js');
let db = require('quick.db')
module.exports.run = async (client, message, args) => {
try {
message.delete(15000)
let ads = db.get(`channel_${message.guild.id}`);
if (!message.member.hasPermission('ADMINISTRATOR')) return message.reply("Nope!").then(m => m.delete(15000));
if(!args[0]) return message.reply("You should enter a channel");
if (!ads) {
db.set(`channel_${message.guild.id}`, args[1])
return message.reply("Done, the log channel is :", args).then(msg => msg.delete(15000))
}
} catch (error) {
console.error(error);
let embed = new MessageEmbed()
.setTitle('Something went wrong!')
.setColor('RED');
return message.say(embed).then(msg => msg.delete({ timeout: 15000}));
}
}
module.exports.help = {
name: 'setlogchannel',
aliases: ['slc']
};
在index.js
上,您只需验证它是否存在,如果存在,则只需将它发送到该频道
if (command === "ban") {
if (!message.member.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send("Error: Insufficient Permissions")
if (!message.guild.me.hasPermission(["BAN_MEMBERS", "ADMINISTRATOR"])) return message.channel.send(`Error: I have Insufficient Permissions to ban Members`)
let member = message.mentions.members.first() || message.guild.members.get(args[0]);
if (!member) return message.channel.send(`Error: Missing Arguments, define member\nUsage: ${prefix}ban [member] [reason]`)
if (member.hasPermission("BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_SERVER", "ADMINISTRATOR", "MANAGE_MESSAGES", "MANAGE_ROLES")) return message.channel.send(`Error: That user is a mod/admin, I can't do that.`)
if (!member.bannable)
return message.channel.send(`I cannot ban ${member}`)
let reason = args.slice(1).join(" ");
if (!reason) return message.channel.send(`Error: Missing Arguments, define reason\nUsage: ${prefix}ban [member] [reason]`)
let log = db.fetch(`channel_${message.guild.id}`)
if (log) {
let logged = message.guild.channels.get(log)
logged.send(`Banned!`)
}
member.ban(reason)
message.channel.send(`${member.user.tag} has been successfully banned`)
}
就我而言,它起作用了,你能更具体地解释一下什么不起作用吗;我做message.channel.send not message.say,沿着嵌入,我使用let embed=new Discord.RichEmbed();我浏览了整个支持服务器,还没有找到如何使用它。这与你的问题有什么关系?你能显示错误日志吗