簡體   English   中英

我的代碼中的所有嵌入都停止工作+靜音命令錯誤

[英]all the embeds in my code stopped working + mute command error

第一個問題:我的代碼中的所有嵌入都停止工作 - 無論我嘗試運行什么命令,如果它有嵌入,我都會收到錯誤:DiscordAPIError:無法發送空消息

第二個問題:我目前正在使用 mongoDB 數據庫編寫靜音命令,它將我需要的所有內容都放入數據庫中,但是如果我嘗試將某人靜音,它最終只會將其靜音 1 秒,基本上完全忽略了第二個參數。 這就是我希望該命令執行的操作:當您將某人靜音時,您需要提供用戶 ID 和時間(以毫秒為單位)+ 原因,然后將其放入數據庫中。 這是代碼:[PS 我沒有收到錯誤消息,它只是不能像我想要的那樣正常工作]

const mongo = require('../mongo.js')
const muteSchema = require('../schemas/mute-schema.js')
const Discord = require('discord.js')
const ms = require ("ms")

module.exports = {
  commands: 'mute',
  minArgs: 2,
  expectedArgs: "<Target user's @> <time> <reason>",
  requiredRoles: ['Staff'],
  callback: async (message, arguments) => {
    const target = message.mentions.users.first() || message.guild.members.cache.get(arguments[0])
    if (!target) {
      message.channel.send('Please specify someone to mute.')
      return
    }
    const { guild, channel } = message
    arguments.shift()
    const mutedRole = message.guild.roles.cache.find(role => role.name === 'muted');
    const guildId = message.guild.id
    const userId = target.id
    const reason = arguments.join(' ')
    const user = target
    const arg2=arguments[2]
    const mute = {
      author: message.member.user.tag,
      timestamp: new Date().getTime(),
      reason,

    }

    await mongo().then(async (mongoose) => {
      try {
        await muteSchema.findOneAndUpdate(
          {
            guildId,
            userId,
          },
          {
            guildId,
            userId,
            $push: {
              mutes: mute,
            },
          },
          {
            upsert: true,
          }
        )
      } finally {
        mongoose.connection.close()
      }
    })
    message.delete()
    user.roles.add(mutedRole)
    setTimeout(function() {
        user.roles.remove(mutedRole)
    }, ms(`${arg2}`));
    try{
        message.channel.send(`works`)
    }
    catch(error){
      const embed3 = new Discord.MessageEmbed()
      .setDescription(`✅ I Couldn't DM them but **${target} has been muted || ${reason}**`)
      .setColor('#004d00')
      message.channel.send({ embeds: [embed3] });
    }
  },
}

djs v13 有一個新的更新,您需要像這樣發送嵌入:

const exampleEmbed = new Discord.MessageEmbed()
.setTitle('example')
.setDescription('example')
.setColor('RANDOM')
 message.channel.send({embed: [exampleEmbed]});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM