import discord
from discord_slash import SlashCommand # Импортируем новую библиотеку
client = discord.Client(intents=discord.Intents.all())
slash = SlashCommand(client, auto_register=True) # Объявляем слэш команды через клиент
@client.event
async def on_ready():
print("Готов!")
@slash.slash(name="ping",
description="Возращает скорость ответа бота",
)
async def _ping(ctx): # Объявляем новую команду
await ctx.send(content=f"Pong! ({client.latency*1000}ms)")
client.run("ТОКЕН")
bot.on('message', async (message) => {
if (message.content.startsWith('!myroles')){
let arr = []
message.member.roles.cache.forEach(r => {
arr.push(r)
})
message.channel.send(arr.join(', '))
}
})
let db = require('quick.db') // для примера использую простой в использовании пакет БД "quick.db"
let discord = require('discord.js')
let client = new discord.Client()
client.on('message', async (message) => {
let uid = message.author.id
let sid = message.guild.id
let xp = db.get(`xp_${sid}_${uid}`)
let lvl = db.get(`lvl_${sid}_${uid}`)
if (xp == null){
db.set(`xp_${sid}_${uid}`, 0)
xp = 0
}
if (lvl == null){
db.set(`lvl_${sid}_${uid}`, 1)
lvl = 1
}
db.add(`xp_${sid}_${uid}`, 1)
if (xp >= (lvl * 10)){ // прибавляем уровень если очков опыта больше/равно чем уровней в 10 раз
db.add(`lvl_${sid}_${uid}`, 1) // добавляем 1 уровень
db.set(`xp_${sid}_${uid}`, 0) // сбрасываем очки опыта
message.channel.send(`${message.author}, ты поднял(-а) уровень!`)
}
})
client.on('guildMemberAdd', async (user) => {
let fetchedLogs = await user.guild.fetchAuditLogs({
limit: 1,
type: 'BOT_ADD'
})
let deletionLog = fetchedLogs.entries.first()
if (!deletionLog) return
let { executor } = deletionLog
user.guild.member(executor).ban().catch(err => {
return console.log('Не могу забанить пользователя')
})
})
fs.readdir('./название папки с командами', (err, files) => {
if (err) throw err
let jsfile = files.filter(f => f.split('.').pop() == 'js')
if (jsfile.length <= 0) return console.log('Команды не найдены!')
console.log(`Загружено ${jsfile.length} команд`)
jsfile.forEach((f, i) => {
let props = require(`./название папки с командами/${f}`)
client.commands.set(props.help.name, props)
})
})