From e39e4401091f5a344a52c741dfe39e7cbc6c9b20 Mon Sep 17 00:00:00 2001 From: anima Date: Tue, 26 Apr 2022 20:15:38 +0200 Subject: [PATCH] reqrite in discord.py v2 --- bot/__init__.py | 1 + bot/client.py | 17 ++++++++++ main.py | 85 +++++++++++++++---------------------------------- 3 files changed, 44 insertions(+), 59 deletions(-) create mode 100644 bot/__init__.py create mode 100644 bot/client.py diff --git a/bot/__init__.py b/bot/__init__.py new file mode 100644 index 0000000..d83d82a --- /dev/null +++ b/bot/__init__.py @@ -0,0 +1 @@ +from .client import client \ No newline at end of file diff --git a/bot/client.py b/bot/client.py new file mode 100644 index 0000000..ff51b7c --- /dev/null +++ b/bot/client.py @@ -0,0 +1,17 @@ +import discord +from discord import app_commands + +guild_id = '283156308465811456' + +class client(discord.Client): + def __init__(self, intents=discord.Intents.default()): + super().__init__(intents=intents) + self.synced = False #we use this so the bot doesn't sync commands more than once + self.tree = tree = app_commands.CommandTree(self) + + async def on_ready(self): + await self.wait_until_ready() + if not self.synced: #check if slash commands have been synced + await self.tree.sync(guild = discord.Object(id=guild_id)) #guild specific: leave blank if global (global registration can take 1-24 hours) + self.synced = True + print(f"We have logged in as {self.user}.") \ No newline at end of file diff --git a/main.py b/main.py index 225c3b4..1f8ab1e 100644 --- a/main.py +++ b/main.py @@ -1,33 +1,33 @@ -#################### -# == Main Info == -# main.py -# by 4nima -# v.0.0.0 -# -#################### -# == Descrtiption == -# template for discord bot -# -#################### -# == Dependencies == -# pip3 install discord -# pip3 install flask (for keep_alive) -#################### +""" + version 2.0.0 + author 4nima, oce + description template for discord bot + requirements + - discord + - flask (for keep_alive) +""" ## Imports -import asyncio as aio -import logging as log import json -import random +import logging as log -from discord.ext import commands +import discord +from discord import app_commands #from lib.keep_alive import keep_alive +from bot import client + +intents = discord.Intents.default() +intents.message_content = True + +guild_id = '283156308465811456' + +bot = client(intents) + ## Vars ### Load and set Bot Config with open("bot.conf", 'r') as f: BOTDATA = json.load(f) -bot = commands.Bot(command_prefix=BOTDATA['prefix']) ### Set logging options log.basicConfig( @@ -37,43 +37,10 @@ log.basicConfig( datefmt='%Y-%m-%d %H:%M:%S' ) -## Run -### Events -@bot.event -async def on_ready(): - log.info(f'Logged in as {bot.user}') - print(f'Logged in as {bot.user}') +# run +# bot defination +@bot.tree.command(guild = discord.Object(id=guild_id), name = 'tester', description='testing') #guild specific slash command +async def slash2(interaction: discord.Interaction): + await interaction.response.send_message(f"I am working! I was made with Discord.py!", ephemeral = True) - for guild in bot.guilds: - log.info(f'Connect to Server {guild.name} (id: {guild.id})') - -@bot.event -async def on_reaction_add(reac, usr): - print(reac) - print(usr) - -### Commands -@bot.command(name='hello', help='Say hello!') -async def say_hello(ctx): - async with ctx.typing(): - log.info('Start say_hello function') - await ctx.message.add_reaction('🤔') - reply = await ctx.send(f'Hello, <@{ctx.author.id}>!') - print(ctx.guild) - print(ctx.message.content) - print(ctx.message) - print(ctx.author) - print(reply) - await aio.sleep(random.randint(1,5)) - await ctx.message.remove_reaction('🤔', bot.user) - if random.randint(1,100) < 10: - log.error('say_hello function was failed') - await ctx.message.add_reaction('❌') - else: - log.info('Run say_hello successfully') - await ctx.message.add_reaction('✅') - await aio.sleep(10) - await ctx.message.delete() - -#keep_alive() -bot.run(BOTDATA['token']) +bot.run(BOTDATA['token']) \ No newline at end of file