[rndstatus] resolve potential heartbeat issues (#140)

Certain edge cases, e.g. two duplicate statuses, would cause random_status (which never yields) to loop either forever or for a long time.
This removes the while loop entirely.
This commit is contained in:
zephyrkul
2020-08-12 14:21:20 -06:00
committed by GitHub
parent f42304a8e6
commit 6511802554

View File

@@ -192,15 +192,9 @@ class RndStatus(commands.Cog):
current = str(guild.me.activity.name)
except AttributeError:
current = None
try:
new = str(guild.me.activity.name)
except AttributeError:
new = None
if len(statuses) > 1:
while current == new:
new = rndchoice(statuses)
elif len(statuses) == 1:
new = statuses[0]
else:
new = None
return new
new_statuses = [s for s in statuses if s != current]
if len(new_statuses) > 1:
return rndchoice(new_statuses)
elif len(new_statuses) == 1:
return new_statuses[0]
return current