Я пытаюсь создать сообщение о добавлении гильдии - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь сделать так, чтобы, когда мой бот добавлялся на другой сервер, он отправлял вставку с указанием количества серверов, на которых он сейчас находится, и имени гильдии, а также владельца гильдии. Я также пытаюсь сделать еще одно встраивание, чтобы он сообщал мне, когда он покидает сервер, и сообщал мне, когда он сначала присоединился к серверу, а затем, когда он был удален, а также имя гильдии и владельца гильдии. Использую Discord. js. Может кто-нибудь помочь, пожалуйста? Это мой текущий сценарий:

bot.on("guildCreate", guild => {
    const joinserverembed = new Discord.MessageEmbed()
        .setTitle("Joined a server!")
        .addField("Guild name:", `${guild.name}`)
        .addField("Time of join:", `${Discord.Guild.createdTimestamp()}`)
        .setColor("GREEN")
        .setThumbnail(guild.displayAvatarURL())
    if (guilds.channel.id = 740121026683207760) {
        channel.send(joinserverembed)
    }
    guild.channel.send("Thank you for inviting Ultra Bot Premium! Please use up!introduction and up!help for the new perks and more!")
})

bot.on("guildDelete", guild => {
    const leftserverembed = new Discord.MessageEmbed()
        .setTitle("Left a server!")
        .addField("Guild name:", `${guild.name}`)
        .addField("Time of removal:", `${createdTimestamp()}`)
        .setColor("RED")
        .setThumbnail(guild.displayAvatarURL())
    if (guilds.channel.id = 740121026683207760) {
        channel.send(leftserverembed)
    }
})

1 Ответ

2 голосов
/ 04 августа 2020

Я решил вашу первую проблему в приведенном ниже коде.

  • Вы выполняли guild.channel.send(), в данном случае guild представляет Discord.Guild, однако вы его используете как будто он представляет собой экземпляр Message, которого нет.

Вы можете использовать guild.channels.cache.find(x => x.name == 'general').send("Thanks for inviting me to this server¬!"), чтобы отправить сообщение на канал с именем general на этом сервере.

    bot.on("guildCreate", guild => {
        const joinserverembed = new Discord.MessageEmbed()
        .setTitle("Joined a server!")
        .addField("Guild name:", `${guild.name}`)
        .addField("Time of join:", `${new Date()}`)
        .setColor("GREEN")
        .setThumbnail(guild.displayAvatarURL())
        bot.channels.cache.get("740121026683207760").send({ embed: joinserverembed })
        guild.channels.cache.filter(x => x.type != 'category').random().send("Thank you for inviting Ultra Bot Premium! Please use up!introduction and up!help for the new perks and more!")
    })

Я фильтрую каналы в гильдии, проверяя, что они не являются категориями, а затем отправляю приветственное сообщение на случайное.

Что касается вашего второго запроса, вам нужно использовать базу данных, сохранить дату .now отметка времени, когда он был добавлен, затем, когда бот покинет гильдию, он должен получить значение и отобразить свое время. Я не делал этого для вас, но я исправил ваш код:

    bot.on("guildDelete", guild => {
        const leftserverembed = new Discord.MessageEmbed()
        .setTitle("Left a server!")
        .addField("Guild name:", `${guild.name}`)
        .addField("Time of removal:", `${createdTimestamp()}`)
        .setColor("RED")
        .setThumbnail(guild.displayAvatarURL())
         bot.channels.cache.get("740121026683207760").send({ embed: leftserverembed })
    })
...