From 15b9549bcb5c258ac8e9435cedc20eac72b35135 Mon Sep 17 00:00:00 2001 From: GZod01 Date: Sun, 15 Dec 2024 14:59:41 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20gestion=20des=20personnages?= =?UTF-8?q?=20avec=20des=20commandes=20personnalis=C3=A9es=20et=20int?= =?UTF-8?q?=C3=A9gration=20de=20la=20base=20de=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + GammaRPBot_Define.py | 10 ++++++ __pycache__/GammaRPBot_Define.cpython-312.pyc | Bin 0 -> 1061 bytes __pycache__/perso_commands.cpython-312.pyc | Bin 0 -> 3590 bytes __pycache__/private_env.cpython-312.pyc | Bin 0 -> 261 bytes __pycache__/public_env.cpython-312.pyc | Bin 0 -> 202 bytes main-bot.py | 27 +++++++++++++++ main.db | Bin 0 -> 8192 bytes main.db-journal | Bin 0 -> 8720 bytes perso_commands.py | 31 ++++++++++++++++++ public_env.py | 1 + 11 files changed, 70 insertions(+) create mode 100644 .gitignore create mode 100644 GammaRPBot_Define.py create mode 100644 __pycache__/GammaRPBot_Define.cpython-312.pyc create mode 100644 __pycache__/perso_commands.cpython-312.pyc create mode 100644 __pycache__/private_env.cpython-312.pyc create mode 100644 __pycache__/public_env.cpython-312.pyc create mode 100644 main-bot.py create mode 100644 main.db create mode 100644 main.db-journal create mode 100644 perso_commands.py create mode 100644 public_env.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5163f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +private_env.py \ No newline at end of file diff --git a/GammaRPBot_Define.py b/GammaRPBot_Define.py new file mode 100644 index 0000000..f324dd0 --- /dev/null +++ b/GammaRPBot_Define.py @@ -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 diff --git a/__pycache__/GammaRPBot_Define.cpython-312.pyc b/__pycache__/GammaRPBot_Define.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..01efd41ee8f15073d6d5675310ab6002f4202c87 GIT binary patch literal 1061 zcmZWoL2DC16n?Y2$!^l5t<*xLJw))}Ug}+{h%HnRVo@rx1jluEQnzk))0vGnrH7&w z+k>D7sh+$lRq%g!v4~iviU%)xE5xGqXE z0N<6;U6~GOT|=+|KKLXAC*6rdP}f4OraL-OHa&!z;TQxomn7@tkQD>P#L;E}Z?k%jrkG`X zGJ(+7Sa!bue}7e5gDUa$)q-RB8RTs^xiwfMPW~#`S(%@9k=2!%^Kl|I|CTg^C}B|| zJgp~{fmji1oka1BY(R40T-TQ2F*edC%jAu=*@+_11Y0lflT)@P`#XiwI%m~jk*gxm zoDq#W(!>>Ie956;NCPf@5pKTm2rfN%=L{gsZs-6;a}YC}m!- zq*150^DM% z3zRN2+_2-xxj`%z!XRNXKZ#Ak?gVip2Pk!;C{A3ZVW*|(2f~ZFFU^bTD`>ZfA61l# zoq>2P3~^Y54=9GJrgQC@cotz>sLx8AK=J1xY@36h&CxA$^rJDltC7r^=W{RP7x5k- z{B4j-kss-X*(M)T_!tV=*I_cw789->09VyZ9iM4>(U7vWV^u@rR5euWbLerXv}d@`~z_H=9y5VlkN1J?ch&Hw-a literal 0 HcmV?d00001 diff --git a/__pycache__/perso_commands.cpython-312.pyc b/__pycache__/perso_commands.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f74df3c34310ed2a78ffe7711d355c1a2eb0a87 GIT binary patch literal 3590 zcma(UTWlN0ac}RAJibJUk{n5~lyjWYVyoIgokv|5ZdA&UWec)m$+5#KKGU}=iqw(E z+{2M*s&Qkdk%0!uPiq$m(4ZehUAsU(``N@l0s2EGE=X(}pg@1xKecjE*I%7IK12~J z&?9bUc6MfVXLlaQKSUxy1W)WQmok_A2>q20T94c$wo^ddMg$STKzSi02%N?SN^vY2 zI4`C|;7L?m#zej;r6i1|5%Jwb#7~8sw?fNk1K$%HIOSW%3FYs6kPuinT`X$4na`&S z#GV62a5@cxbMxOb9VT8e9bIUsd5~}K2E5yg0L~x*wpd0vZ)!KlH5cpTIxXiw=U&rl z3kzr+{YHFCNCE-~=BZ_y$>v5Ag2j#5+=}{SHu;^U^ES*crCo~} zOH-!q=4rvPm!{~|B~P(XNE_>U@Eirj2#75i{;oyj(J+@ci%(-L1}6u{rm zL+xl#CJe<$BuMZGwnIx-Z|u4TdMx+n#I_#7F!@ApsI3ArdB$ z`#txR4vkn_uuXWD2HL|mL87Ghe&4S3_L7Q`{vD|dzCX~qNHR!6xuLeXHbM5$2zd(L zA(-FaX1574409v!K24)!Kj2X~k3CkVkzvqTj*+pO(!Hj3H%|3#qBSAaw}2AQSOF07 zf<)VwnowJ}vPCCr79h-J+XX46Xj-Hs7wQUblE^Tm1k^`{p}y;&96hzj-feA!h%qL~i-3%FvxmwnQa{0RhYAP&$&DVW)D61MW$P65EirP zS~vT!cP8Gss~N+*0%>o$;8FHXm-3pR+HgNQSGBHE*D4Lp9?It7l6EhfP*~7jF)c^) z?k%wF8b*VZ!2@fZ`HJRSaQI9FReoP8 zO&cyP4JO;$=-42WJv&h0c;R88Y{8*cTIV5SJp~+#CzmzG0nY?$goCF!;92D<>7CU- z4BQ*=ZvPVMP_ty?jbK^a2$iM1N;eT!Uj{=j{*PJg&Bn_@uAK{Dz4_$YCBDUhJla*k zZb1LK2BG{@d|UjHEJF)fM`d{Uj!3LQt(u|vc#o7^TW*zmxuc24+j9t#^D_Lr(^K;WY;!n?? zoL+=>9-ze)2z)DTl-6hF7EYd9RA=TE&vxXmt&T%xLkon=o@h{B`cAa6bpmRdmzon0 z>=QiJCtNp6CK~Y$gtxzh`r72|`I8Ik_;)9|eu+eog>@4Gx!`EddXX~4qIS_N*p!8B zS|D1U+P0TTF61S{SzF<{bM1@J*MH^Kj!agMO#c4(7e~(4W23cLyc&zw zVn?g7qm>u5O0H0e9sM$9*1~2bY}UiEdjHU-QtuxI5E-gPMyrw0T12fz)J>`0KUV91 zuG;@xt^ZK9{}4zFkNte)XCoi&ul0XzGg$A5eXw$C<%88*tF@j3)t&=e2pznH0ba&g zj&j)L=qmmJM{nb45zr~|3`eu#JV&pJ=Q(;!yu^_vW<7*+BJ`Z-s`zh&0;}RbJh&A_ zk)rSzTpx%(-okw1i4Elky)!8$`-D$rAsLcB^-U@;_^d}rMx@W8F9H1kCZf^4B(A~fu%^A~rj5po#oIrNYFfHbFr757t!w9mXlAEGGtqV|7MygPw7$ao4HKb&TQ72>k!CN~ zDKrxe3j82&y-(Oz8cp5%RN;VEL3;|~;_juM4m9Q9Q*5zVG8L9FkYX z-}-CMC#%mVw-6tFZZ~k{jmu3UQ>bOutC{u25cDVU6qw<{Fqp+>cLt02!p`6ge0gVJ z;57_EW8k+jL=8uv`-+(4F=XH=@t>Z(ZIN$l+s_^4^cmq%kgsF$FLCcPFyXgOaN4`# zzMVe-+7w;R7N{2$-giHfr!5oy1Ms`Jiy8)aw|Sx*Zv@l{YZ``dLC8J~U`rGP;VY#6 m3H5x1#<#E_eDlN8+X&DjX`iqvemGkjh*t;V|3ZA^+50cY0(b`i literal 0 HcmV?d00001 diff --git a/__pycache__/private_env.cpython-312.pyc b/__pycache__/private_env.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69d95a494a1365a14e0daa51c130916a14dcf5bb GIT binary patch literal 261 zcmX@j%ge<81UeVv(nEmsV-N=h7@>^M96-i&h7^V=Ia?el7F$@h3)inw8 z$@fh1DfZK3yv3Q6UlL!EpPibwlHoJR!e5@wRxzQ)sYS&xiKRuUIWaEz$)&lec_qa$ zE~#ZP0YHiTyu8F5g@B^`tkh(nuzO-|Zemb?Q+`QIK~ZK|Vo7RzYF?RMLFF$Fo80`A g(wtPgA~vAOApaDDy!(Nfk&*ERS4bmg5etwD02>-i5C8xG literal 0 HcmV?d00001 diff --git a/__pycache__/public_env.cpython-312.pyc b/__pycache__/public_env.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9234e25d03d98d17938468dfed451c4abc0cfd4b GIT binary patch literal 202 zcmX@j%ge<81S%Ke(j|fPV-N=hn4pZ$d_cx@h7^Vr#vF#VOpFYbOq$FuL6Vw`w-~kj zfFyT8QD#|UNoss*UfD{9&mg&99?n)Vp~b01#W9JcMX5P4F8Rr&xv6<2#W60aWibIj ziTu30#2kfyqWrAXWT3EnVs36?P=Hf@NlZa$Qch+v$TYoz%3mBdx%nxjIjMF<96*B^ Vfw&mN_`uA_$at4QvWN}H0RUf9HXZ-~ literal 0 HcmV?d00001 diff --git a/main-bot.py b/main-bot.py new file mode 100644 index 0000000..0416494 --- /dev/null +++ b/main-bot.py @@ -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) \ No newline at end of file diff --git a/main.db b/main.db new file mode 100644 index 0000000000000000000000000000000000000000..b7ffcae30bc547b536ca9c25dd5c44b460eea13c GIT binary patch literal 8192 zcmeI#&r8EF6bJBR3WdSYn@1n)vcd46?Cz8xLK!+c@Z?ChxCPp#B_KH4@Ev2VBcF8zr_e6}bB%EG2r-=3WsR(c0$$v`|b~AYy#N~@? z79IoyAOHafKmY;|fB*y_009U<;4cb%eemRJION}FUgm|Wm35}7#((yn*Xj&7&Z@uZ!Ub)h_Yb?~vL%kXo`3zNrcr=2(2s&-tP zW*-`^Z8VMEP$u59xE?=!o@e4oEMn=@LAA4Oql?WdEFTwWzD(2pINr^}r5^zS2tWV= V5P$##AOHafKmY;|fWSW%_yI(HO~e2I literal 0 HcmV?d00001 diff --git a/main.db-journal b/main.db-journal new file mode 100644 index 0000000000000000000000000000000000000000..c9233ca45bb898cc9d95477cbbf2442404153763 GIT binary patch literal 8720 zcmeI&K}*9h6bJC63Wb5Vn@1n)vcd46?B>BKL4-1NR`BF#x3~q`rljfERs2AHvV8(C zCL&!g-aHKXhZNq+OH2D}E)8XD*S4SCOP2-ToppBwME_ZUKR!gtN_y2MPb^)yH_th{ zB61HMy2Gu9ruqD^$r$6U__r`*XT$p=SLMg2%yl#fKmY;|fB*y_009U<00Izzz&;AR zz3}j)*W>R8Hc2yCN>k~gNS3l{g~82KjAKFZ_&O5QDp0>eROoy**R`>v4UsoY(h(oCm5TdB%wWn@z>b-i{2RWnf6YC*Ahj{S6h>fIz3w_@tk zN^WFRTh=OD%-rOk2{d_%qRznW`+PX~z<;A-+h-q_AnpkQ5P$##AOHafKmY;|fB*y_ K@OJ|K|Bo+RAXMrA literal 0 HcmV?d00001 diff --git a/perso_commands.py b/perso_commands.py new file mode 100644 index 0000000..4dab6d6 --- /dev/null +++ b/perso_commands.py @@ -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)) + \ No newline at end of file diff --git a/public_env.py b/public_env.py new file mode 100644 index 0000000..0b62d12 --- /dev/null +++ b/public_env.py @@ -0,0 +1 @@ +from private_env import * \ No newline at end of file