1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-02 22:23:13 +00:00
Lumi/modules/config/xp_reward.py

43 lines
1.2 KiB
Python

import discord
from config.parser import JsonCache
from services.xp_service import XpRewardService
art = JsonCache.read_json("art")
async def show(ctx):
level_reward = XpRewardService(ctx.guild.id)
embed = discord.Embed(
color=discord.Color.embed_background(),
description="Read [the guide](https://wiki.wlinator.org/xprewards) before editing.\n",
)
icon = ctx.guild.icon if ctx.guild.icon else art["logo"]["opaque"]
embed.set_author(name="Level Rewards", icon_url=icon)
for level in sorted(level_reward.rewards.keys()):
role_id, persistent = level_reward.rewards.get(level)
role = ctx.guild.get_role(role_id)
embed.description += (
f"\n**Level {level}** -> {role.mention if role else 'Role not found'}"
)
if bool(persistent):
embed.description += " (persistent)"
await ctx.respond(embed=embed)
async def add_reward(ctx, level, role_id, persistent):
level_reward = XpRewardService(ctx.guild.id)
level_reward.add_reward(level, role_id, persistent)
await show(ctx)
async def remove_reward(ctx, level):
level_reward = XpRewardService(ctx.guild.id)
level_reward.remove_reward(level)
await show(ctx)