mirror of
https://github.com/wlinator/luminara.git
synced 2024-10-03 00:03:13 +00:00
43 lines
1.1 KiB
Python
43 lines
1.1 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="",
|
|
)
|
|
|
|
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)
|