start replacement of highscores.py
This commit is contained in:
parent
8756947298
commit
c0a5dda5d2
1 changed files with 57 additions and 0 deletions
57
cogs/message_xp.py
Normal file
57
cogs/message_xp.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
from discord.ext import commands
|
||||
import json
|
||||
import os
|
||||
from cogs.base_cog.bot_base_cog import BotBaseCog
|
||||
|
||||
class MessageXP(BotBaseCog):
|
||||
|
||||
def __init__(self, bot):
|
||||
super().__init__(bot)
|
||||
self.setup(__class__.__name__)
|
||||
|
||||
@commands.command()
|
||||
async def stats(self, ctx):
|
||||
author_id = ctx.author.id
|
||||
if not os.path.exists(self.data_dir + "xp.json"):
|
||||
create_xp_file(self)
|
||||
try:
|
||||
with open(self.data_dir + "xp.json", "r") as xp_file:
|
||||
xp_data = json.load(xp_file)
|
||||
xp_file.close()
|
||||
if author_id in xp_data:
|
||||
await ctx.send(f"You have {xp_data[author_id]} XP")
|
||||
else:
|
||||
await ctx.send("You have 0 XP")
|
||||
except:
|
||||
await ctx.send("Error getting XP")
|
||||
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_message(self, message: discord.Message):
|
||||
author_id = message.author.id
|
||||
if author_id == self.bot_id:
|
||||
return
|
||||
else:
|
||||
#check if file exists
|
||||
if not os.path.exists(self.data_dir + "xp.json"):
|
||||
create_xp_file(self)
|
||||
with open(self.data_dir + "xp.json", "r") as xp_file:
|
||||
xp_data = json.load(xp_file)
|
||||
xp_file.close()
|
||||
if author_id in xp_data:
|
||||
xp_data[author_id] += 1
|
||||
else:
|
||||
xp_data[author_id] = 1
|
||||
with open(self.data_dir + "xp.json", "w") as xp_file:
|
||||
json.dump(xp_data, xp_file)
|
||||
xp_file.close()
|
||||
|
||||
def create_xp_file(self):
|
||||
with open(self.data_dir + "xp.json", "w") as xp_file:
|
||||
xp_data = {}
|
||||
json.dump(xp_data, xp_file)
|
||||
xp_file.close()
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
await bot.add_cog(MessageXP(bot))
|
||||
Loading…
Add table
Add a link
Reference in a new issue