by Anonymous » 29 Dec 2024, 05:42
https://discordpy.readthedocs.io/en/sta ... tml#greedy
Ich folge einem Tutorial, das ein untergeordnetes Befehlsobjekt erstellt. bot, um eine Hintergrundaufgabe auszuführen.
Ich versuche, den Befehl „discord.ext.commands.Greedy“ in einem Slash-Befehl zu implementieren, um eine Liste von „discord.Member“ zu übergeben Objekte, an denen gearbeitet werden soll.
Ich erhalte beim Start die angegebene Fehlermeldung TypeError: unsupported type annotation Greedy[Member]
example Code, um meinen Fehler zu reproduzieren
Code: Select all
import discord
from discord.ext import commands
from discord import app_commands
class MyClient(commands.Bot):
def __init__(self, *, intents: discord.Intents):
super().__init__(command_prefix="/", intents=intents)
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
client = MyClient(intents=intents)
@client.tree.command(name="slap")
async def slap(interaction: discord.Interaction, members: discord.ext.commands.Greedy[discord.Member], *, reason='no reason'):
slapped = ", ".join(x.name for x in members)
await interaction.response.send_message(f'{slapped} just got slapped for {reason}')
Ich verwende discord.py Version 2.4
Wie würde ich den Beispielcode korrigieren, damit ein Slash-Befehl mit mehr als einem discord.Member ausgeführt wird? und geben Sie den angegebenen Text aus.
Ein funktionierender Befehl sollte so aussehen
Code: Select all
/slap members:@user1, @user2, @user3 reason="I am greedy"
https://discordpy.readthedocs.io/en/stable/ext/commands/commands.html#greedy
Ich folge einem Tutorial, das ein untergeordnetes Befehlsobjekt erstellt. bot, um eine Hintergrundaufgabe auszuführen.
Ich versuche, den Befehl „discord.ext.commands.Greedy“ in einem Slash-Befehl zu implementieren, um eine Liste von „discord.Member“ zu übergeben Objekte, an denen gearbeitet werden soll.
Ich erhalte beim Start die angegebene Fehlermeldung TypeError: unsupported type annotation Greedy[Member]
example Code, um meinen Fehler zu reproduzieren
[code]import discord
from discord.ext import commands
from discord import app_commands
class MyClient(commands.Bot):
def __init__(self, *, intents: discord.Intents):
super().__init__(command_prefix="/", intents=intents)
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
client = MyClient(intents=intents)
@client.tree.command(name="slap")
async def slap(interaction: discord.Interaction, members: discord.ext.commands.Greedy[discord.Member], *, reason='no reason'):
slapped = ", ".join(x.name for x in members)
await interaction.response.send_message(f'{slapped} just got slapped for {reason}')
[/code]
Ich verwende discord.py Version 2.4
Wie würde ich den Beispielcode korrigieren, damit ein Slash-Befehl mit mehr als einem discord.Member ausgeführt wird? und geben Sie den angegebenen Text aus.
Ein funktionierender Befehl sollte so aussehen
[code]/slap members:@user1, @user2, @user3 reason="I am greedy"[/code]