【问题标题】:discord.js v12 - Warn command for each guilddiscord.js v12 - 每个公会的警告命令
【发布时间】:2020-09-14 10:44:30
【问题描述】:

我有 warn command 的脚本,我需要帮助,因为这 代码正常工作,此命令保存在warnings.json 中发出警告,但是当我警告有人在每个公会中发出警告时,我只想在一个公会中发出警告。请帮忙:D

const { MessageEmbed } = require("discord.js")
const fs = require('fs')
const warns = JSON.parse(fs.readFileSync("./warnings.json", "utf8"))

const moment = require('moment')

module.exports = {
  name: "warn",
  description: "Wysyła ankiete",
  guildOnly: true,
  cooldown: 5,

  run(msg, args) {

    // Embed na permisjebota
    const permisjebota = new MessageEmbed()
    .setTitle("⛔ Nie mam uprawnień! :O")
    .setColor('ffff00')
    .setDescription("Nie mam uprawnień do tej komendy! Daj mi uprawnienia lub skonsultuj się z adminem serwera")
    .setTimestamp()
    // Embed na permisje dla użytkownika
    const permisje = new MessageEmbed()
    .setTitle("Nie masz permisji do tej komendy! :O")
    .setColor('ffff00')
    .setDescription("Nie masz uprawnień do tej komendy! Jeżeli uważasz, że to błąd skonsultuj się z adminem serwera!")

    if (!msg.member.guild.me.hasPermission("ADMINISTRATOR"))
        return msg.channel.send(permisjebota)
    if (!msg.member.hasPermission("MANAGE_MESSAGES")) return msg.channel.send(permisje)

    if(!args[0, 1]) {
        const bananekbot = new MessageEmbed()
        .setTitle("Nie podałeś argumentów!")
        .setColor('ffff00')
        .setDescription("Poprawne użycie: `m!warn <nick> <powód>`")
        return msg.channel.send(bananekbot)
    }

    var warnUser = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]))

    var reason = args.slice(1).join(" ")

    if (!warnUser) return msg.channel.send("Brak argumentu poprawne użycie: m!warn <nick> <powód>")

    if (!warns[warnUser.id]) warns[warnUser.id] = {
        warns: 0,
    } 

    warns[warnUser.id].warns++

    fs.writeFile("./warnings.json", JSON.stringify(warns), (err) =>{
        if(err) console.log(err)
    })

    const warnembed = new MessageEmbed()
    .setTitle("✅ Nadano warna")
    .setColor('ffff00')
    .setTimestamp()
    .setDescription(`Użytkownik: ${warnUser} (${warnUser.id})
    Nadający warna: ${msg.author}
    Powód: ${reason}`)
    return msg.channel.send(warnembed)
  }
}

【问题讨论】:

  • 也许检查一下公会ID什么的,如果公会ID不等于你的,那就什么都不做。不太确定它是否可能(可能是)

标签: javascript node.js discord.js


【解决方案1】:

对此的一个潜在解决方案是将warnings.json 作为一个数组,并在其中包含一个带有公会ID 的对象、警告和您需要存储的任何其他内容。所以warnings.json 会变成这样。

[
    {
        "guild_id": "12345678901234",
        "an_extra": "Thing",
        "warns": [
            "your_warns",
            "are_here",
            "store_in_any_format"
        ]
    },
    {
        "guild_id": "12345678901234",
        "an_extra": "Guild",
        "warns": [
            "so_on",
            "And so forth",
            "go the warns and guilds"
        ]
    }
]

这样,你可以简单地做Array.find(guild =&gt; guild.guild_id === msg.guild.id)(假设你试图访问的公会是msg.guild)。

MDN 上了解有关 Array.prototype.find() 的更多信息

【讨论】:

  • 你能告诉我如何将它粘贴到我的代码中吗?请
  • hasteb.in/iketuqag.js我劝你不要复制粘贴,它只是在那里展示你如何做到这一点
猜你喜欢
  • 2021-02-27
  • 2021-01-01
  • 2021-02-18
  • 1970-01-01
  • 2021-01-18
  • 2021-04-14
  • 2021-04-19
  • 2021-04-18
  • 2021-04-23
相关资源
最近更新 更多