Fix nick assignment logic in chan command; ensure proper handling of guild owner and use random.sample for unique nicks
All checks were successful
Push Docker image / build (push) Successful in 5m11s

This commit is contained in:
Edgar P. Burkhart 2025-10-04 15:18:59 +02:00
parent c4205dbaf6
commit 08a9566476
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227

View file

@ -54,18 +54,20 @@ class NickBot:
await ctx.defer() await ctx.defer()
members = ctx.guild.members members = ctx.guild.members
members.remove(ctx.guild.owner)
nicks = (await file.read()).decode().splitlines() nicks = (await file.read()).decode().splitlines()
if len(nicks) < len(members): if len(nicks) < len(members):
await ctx.respond("ERRE CHAN", ephemeral=True, delete_after=30) await ctx.respond("ERRE CHAN", ephemeral=True, delete_after=30)
return return
nicks = random.choices(nicks, k=len(members)) nicks = random.sample(nicks, k=len(members))
for member, nick in zip(members, nicks): members.remove(ctx.guild.owner)
logger.info(member, nick) for member, nick in zip(members, nicks[:-1]):
logger.info(f"{member} {nick}")
await member.edit(nick=nick) await member.edit(nick=nick)
nicks[-1] = f"**{nicks[-1]}**"
embed = discord.Embed( embed = discord.Embed(
title="CHAN", description="\n".join(nicks), color=discord.Colour.green() title="CHAN", description="\n".join(nicks), color=discord.Colour.green()
) )