async def world_autocomplete(self, interaction: discord.Interaction, current: str): if not current: return [] current = current.lower() query = prepare_search(current) query = {"name": query} items = await self.db.worlds.find(query).to_list(25) return [Choice(name=it["name"], value=str(it["_id"])) for it in items]
async def chatcode_upgrade_autocomplete(self, interaction: discord.Interaction, current: str): if not current: return [] query = prepare_search(current) query = {"name": query, "type": "UpgradeComponent"} items = await self.db.items.find(query).to_list(25) return [Choice(name=it["name"], value=str(it["_id"])) for it in items]
async def guildsync_autocomplete(self, interaction: discord.Interaction, current: str): syncs = await self.db.guildsyncs.find({ "guild_id": interaction.guild.id, "name": prepare_search(current) }).to_list(None) syncs = [self.SyncGuild(self, doc, interaction.guild) for doc in syncs] options = [] for sync in syncs: options.append(Choice(name=sync.guild_name, value=sync.id)) return options
async def tp_autocomplete(self, interaction: discord.Interaction, current: str): if not current: return [] query = prepare_search(current) query = { "name": query, "flags": { "$nin": ["AccountBound", "SoulbindOnAcquire"] } } items = await self.db.items.find(query).to_list(25) items = sorted(items, key=lambda c: c["name"]) return [Choice(name=it["name"], value=str(it["_id"])) for it in items]