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