filter unavailable stickers/emojis in on_random. locked stickers and emojis were still in the guild lists, causing 50081 (cannot use this sticker) and 10014 (unknown emoji) errors and skipping the llm reply

This commit is contained in:
david committed 2026-10-13 05:17:15 -03:00
1 parent fec259bb5c
commit 1013d472e6
1 file changed
+3 -2
+3 -2
View File
@@ -261,8 +261,9 @@ async def on_random(message) -> bool:
# single weighted pick between sticker/emoji/media, used as a substitute for an actual
# llm reply — only called once on_message already decided this message gets a response.
# returns True if it fired (caller should skip the llm call), False if it should proceed normally.
stickers = list(message.guild.stickers)
emojis = [str(e) for e in message.guild.emojis]
# skip locked/role-restricted ones, discord rejects those (50081 / 10014)
stickers = [s for s in message.guild.stickers if s.available]
emojis = [str(e) for e in message.guild.emojis if e.available and not e.roles]
options = []
if stickers: