import discord from discord import embeds from discord import member from discord import user from discord import message from discord.errors import DiscordException from discord.ext import commands import asyncio import json import os import random from discord.ext.commands.core import command client = commands.Bot(command_prefix=';') client.remove_command("help") @client.event async def on_ready(): print('ADS is ready to moderate.') await client.change_presence( status=discord.Status.online, activity=discord.Game('moderating servers|;help')) @client.event async def on_member_join(member): with open('users.json', 'r') as f: users = json.load(f) await update_data(users, member) with open('users.json', 'w') as f: json.dump(users, f) @client.event async def on_message(message): if message.author.bot == False: with open('users.json', 'r') as f: users = json.load(f) await update_data(users, message.author) await add_experience(users, message.author, 5) await level_up(users, message.author, message) with open('users.json', 'w') as f: json.dump(users, f) await client.process_commands(message) async def update_data(users, user): if not f'{user.id}' in users: users[f'{user.id}'] = {} users[f'{user.id}']['experience'] = 0 users[f'{user.id}']['level'] = 1 async def add_experience(users, user, exp): users[f'{user.id}']['experience'] += exp async def level_up(users, user, message): with open('levels.json', 'r') as g: levels = json.load(g) experience = users[f'{user.id}']['experience'] lvl_start = users[f'{user.id}']['level'] lvl_end = int(experience ** (1 / 4)) if lvl_start < lvl_end: embed=discord.Embed(title="You have levels up lets gooo <:4206sheeshers:859636904698052608>", description=f"{user.mention} has leveled up to level {lvl_end} YOU ARE OPP!! ", color=0xff0000) await message.send(embed=embed) users[f'{user.id}']['level'] = lvl_end @client.command() async def level(ctx, member: discord.Member = None): if not member: id = ctx.message.author.id with open('users.json', 'r') as f: users = json.load(f) lvl = users[str(id)]['level'] embed=discord.Embed(title="Your level <:4206sheeshers:859636904698052608> ", description=f"Your level {lvl}!!", color=0xff0000) await ctx.send(embed=embed) else: id = member.id with open('users.json', 'r') as f: users = json.load(f) lvl = users[str(id)]['level'] embed=discord.Embed(title="Members level", description=f"{member} level {lvl}!!", color=0xff0000) await ctx.send(embed=embed) client.run("TOKEN")