Ajout de la gestion des personnages avec des commandes personnalisées et intégration de la base de données
This commit is contained in:
commit
15b9549bcb
11 changed files with 70 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
private_env.py
|
10
GammaRPBot_Define.py
Normal file
10
GammaRPBot_Define.py
Normal file
|
@ -0,0 +1,10 @@
|
|||
import discord
|
||||
import aiosqlite
|
||||
from discord.ext import commands
|
||||
from discord import app_commands
|
||||
class GammaRPBot(commands.Bot):
|
||||
db:aiosqlite.Connection
|
||||
def __init__(self,intents:discord.Intents):
|
||||
super().__init__(command_prefix="/",intents=intents)
|
||||
async def setup_hook(self)->None:
|
||||
pass
|
BIN
__pycache__/GammaRPBot_Define.cpython-312.pyc
Normal file
BIN
__pycache__/GammaRPBot_Define.cpython-312.pyc
Normal file
Binary file not shown.
BIN
__pycache__/perso_commands.cpython-312.pyc
Normal file
BIN
__pycache__/perso_commands.cpython-312.pyc
Normal file
Binary file not shown.
BIN
__pycache__/private_env.cpython-312.pyc
Normal file
BIN
__pycache__/private_env.cpython-312.pyc
Normal file
Binary file not shown.
BIN
__pycache__/public_env.cpython-312.pyc
Normal file
BIN
__pycache__/public_env.cpython-312.pyc
Normal file
Binary file not shown.
27
main-bot.py
Normal file
27
main-bot.py
Normal file
|
@ -0,0 +1,27 @@
|
|||
import discord
|
||||
import aiosqlite
|
||||
from discord.ext import commands
|
||||
from discord import app_commands
|
||||
import logging
|
||||
import sys
|
||||
from public_env import *
|
||||
from GammaRPBot_Define import GammaRPBot
|
||||
formatter = discord.utils._ColourFormatter()
|
||||
handler = logging.StreamHandler(sys.stdout)
|
||||
handler.setFormatter(formatter)
|
||||
logging.basicConfig(level=logging.INFO, handlers=[handler])
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
|
||||
intents = discord.Intents.all()
|
||||
bot = GammaRPBot(intents)
|
||||
|
||||
@bot.event
|
||||
async def on_ready():
|
||||
bot.db = await aiosqlite.connect("main.db")
|
||||
await bot.load_extension("perso_commands")
|
||||
await bot.tree.sync()
|
||||
print(f"Logged in as {bot.user}")
|
||||
|
||||
bot.run(bot_token)
|
BIN
main.db
Normal file
BIN
main.db
Normal file
Binary file not shown.
BIN
main.db-journal
Normal file
BIN
main.db-journal
Normal file
Binary file not shown.
31
perso_commands.py
Normal file
31
perso_commands.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
from discord import app_commands
|
||||
import discord
|
||||
from GammaRPBot_Define import GammaRPBot
|
||||
async def setup(bot:GammaRPBot):
|
||||
bot.tree.add_command(PersoCommands(bot))
|
||||
class PersoCommands(app_commands.Group):
|
||||
bot:GammaRPBot
|
||||
def __init__(self,bot):
|
||||
super().__init__(name="perso",description="Commandes pour les personnages")
|
||||
self.bot=bot
|
||||
|
||||
@app_commands.command(name="créer",description="Crée un personnage")
|
||||
@app_commands.describe(short_name="Le nom court du personnage (son ID)", full_name="Le nom complet du personnage",
|
||||
story="L'histoire du personnage",powers="Les pouvoirs du personnage",age="L'âge du personnage",
|
||||
sexe="Le sexe du personnage",guild_only="Personnage global ou uniquement sur ce serveur",image="L'image du personnage")
|
||||
@app_commands.choices(guild_only=[app_commands.Choice(name="Global",value="global"),app_commands.Choice(name="Ce serveur uniquement", value="guild")])
|
||||
async def create_character(self,interaction:discord.Interaction,short_name:str,full_name:str,image:discord.Attachment,story:str,powers:str,age:int,sexe:str,guild_only:app_commands.Choice[str]):
|
||||
nom_court = short_name
|
||||
nom_complet= full_name
|
||||
if image.content_type!="image/png" and image.content_type!="image/jpeg":
|
||||
await interaction.response.send_message("L'image doit être un fichier PNG ou JPEG",ephemeral=True)
|
||||
return
|
||||
histoire = story
|
||||
pouvoirs = powers
|
||||
uuid=interaction.user.id
|
||||
guild_id = interaction.guild.id
|
||||
image_blob=await image.read()
|
||||
print(nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,guild_id)
|
||||
print(image.filename)
|
||||
await self.bot.db.execute("INSERT INTO personnages (nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,guild_id,image) VALUES (?,?,?,?,?,?,?,?,?)",(nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,guild_id,image_blob))
|
||||
|
1
public_env.py
Normal file
1
public_env.py
Normal file
|
@ -0,0 +1 @@
|
|||
from private_env import *
|
Loading…
Reference in a new issue