Я решил вашу первую проблему в приведенном ниже коде.
- Вы выполняли
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 })
})