Dev #253

Merged
OpzekerIT merged 2 commits from dev into main 2025-10-02 13:47:47 +00:00
Showing only changes of commit 5ef611c727 - Show all commits

View file

@ -130,19 +130,19 @@ async def teamify(ctx, *args):
await ctx.send(f"Kanaal {channel.name} is opgeruimd omdat het leeg was!") await ctx.send(f"Kanaal {channel.name} is opgeruimd omdat het leeg was!")
@bot.command() @bot.command()
async def whoisbest(ctx, category="Casual", matchesback=18): async def whoisbest(ctx, category="Casual", matchesback=18, top=3):
if category.lower() == "help": if category.lower() == "help":
help_message = ( help_message = (
"**Gebruik van het commando `whoisbest`:**\n" "**Gebruik van het commando `whoisbest`:**\n"
"`!whoisbest [category] [matchesback]`\n\n" "`!whoisbest [category] [matchesback] [top]`\n\n"
"**Parameters:**\n" "**Parameters:**\n"
"`category` - De categorie van de stats, bijv. 'Casual' of 'Ranked'. Niet hoofdlettergevoelig.\n" "`category` - De categorie van de stats, bijv. 'Casual' of 'Ranked'. Niet hoofdlettergevoelig.\n"
"`matchesback` - Het minimum aantal matches dat een speler gespeeld moet hebben om mee te tellen (standaard 18).\n\n" "`matchesback` - Het minimum aantal matches dat een speler gespeeld moet hebben om mee te tellen (standaard 18).\n\n"
"**Voorbeeld:**\n" "**Voorbeeld:**\n"
"`!whoisbest Casual 18`\n" "`!whoisbest Casual 18`\n"
"Laat de top 3 spelers zien op basis van winratio en gemiddelde damage in de Casual categorie met minimaal 18 matches.\n\n" "Laat de top 3 spelers zien op basis van winratio en gemiddelde damage in de Casual categorie met minimaal 18 matches.\n"
"Typ `!whoisbest help` om deze uitleg opnieuw te zien." "Typ `!whoisbest help` om deze uitleg opnieuw te zien."
) )
await ctx.send(help_message) await ctx.send(help_message)
@ -178,10 +178,10 @@ async def whoisbest(ctx, category="Casual", matchesback=18):
return return
# Sorteer spelers op winratio (aflopend) # Sorteer spelers op winratio (aflopend)
top_winratio = sorted(players, key=lambda x: x.get("winratio", 0), reverse=True)[:3] top_winratio = sorted(players, key=lambda x: x.get("winratio", 0), reverse=True)[:top]
# Sorteer spelers op gemiddelde damage (aflopend) # Sorteer spelers op gemiddelde damage (aflopend)
top_ahd = sorted(players, key=lambda x: x.get("ahd", 0), reverse=True)[:3] top_ahd = sorted(players, key=lambda x: x.get("ahd", 0), reverse=True)[:top]
# Bouw het bericht op # Bouw het bericht op
message = f"**\U0001F3C6 Top 3 Winratio ({actual_category})**\n" message = f"**\U0001F3C6 Top 3 Winratio ({actual_category})**\n"
@ -193,16 +193,16 @@ async def whoisbest(ctx, category="Casual", matchesback=18):
message += f"{i}. **{player['playername']}** - {player['ahd']:.2f}\n" message += f"{i}. **{player['playername']}** - {player['ahd']:.2f}\n"
##AI ##AI
system_prompt = dedent(""" system_prompt = dedent(f"""
Je bent een Discord announcer-bot op de PUBG-server van DTCH. Je bent een Discord announcer-bot op de PUBG-server van DTCH.
Stijl: brutaal/competitief, licht denigrerend maar leesbaar. Stijl: brutaal/competitief, licht denigrerend maar leesbaar.
AHD = Avarage Human Damage AHD = Average Human Damage
Regels: Regels:
- Gebruik uitsluitend de meegeleverde stats-tekst. - Gebruik uitsluitend de meegeleverde stats-tekst.
- Output ALLEEN Discord-markdown (geen JSON, geen codeblokken). - Output ALLEEN Discord-markdown (geen JSON, geen codeblokken).
- Structuur: - Structuur:
1) Titel met category en korte snedige ondertitel. 1) Titel met category en korte snedige ondertitel.
2) **🏆 Top 3 Winratio** en **💀 Top 3 AHD** (exact die koppen). 2) **🏆 Top {top} Winratio** en **💀 Top {top} AHD** (exact die koppen).
3) Per regel: 🥇/🥈/🥉 + **naam** + waarde (winratio met %). 3) Per regel: 🥇/🥈/🥉 + **naam** + waarde (winratio met %).
4) Sluit af met 1 of 2 regels analyse van de stats, gebruik humor. 4) Sluit af met 1 of 2 regels analyse van de stats, gebruik humor.
- Max ~1800 tekens. - Max ~1800 tekens.