#Allgemeine Hilfe

1 messages · Page 63 of 1

fallow raft
#

Das tritt auf seit dem ich uvicorn installiert habe

solid ingot
#

was hast du denn alles importiert?

fallow raft
#

also ich habe erstmal versuch das alles "nextcord
fastapi
aiohttp
jinja2
uvicorn
better-ipc
ezcord
aiosqlite" mit pip isnstall -r halt alles von mein text datei zu installieren nachdem das nicht geklappt hat wollte ich alles manuell installieren aber hat nicht geklappt weil dann diese error kam

ruby sparrow
fallow raft
#

Ja habs jetzt auf discord geändert aber pip wird immernoch nocht erkannt

#

wenn ich entwas mit pip install installieren möchte kommt dieses Error Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Python311\Scripts\pip.exe\__main__.py", line 4, in <module> ModuleNotFoundError: No module named 'pip'

#

now i try to uninstall python but there than this error shows up in the log Burn v3.11.1.2318, Windows v10.0 (Build 19045: Service Pack 0), path: C:\Users\krani\AppData\Local\Package Cache\{e15803b8-d809-47f3-8818-73f0d155cf58}\python-3.10.5-amd64.exe

sly lion
#

Servus, eine Nachricht mit Buttons (Interaction) funktioniert nicht mehr wenn man den Bot einmal restartet. Wie kann man das umgehen? Habe schon was mit OnReady versucht aber ich weiß nicht ob das der Weg ist

solid ingot
#

ja das on_ready event ist schon der richtige ansatz, du brauchst persistent views

sly lion
#

Danke dir

thick haven
#

Wenn ich bei einem COmmand ctx.defer() mache kann ich ja kein ephemeral=True verwenden gibt es da eine andere möglich keit wenn die interaction oder der command zu lange braucht um geshcikt zu werden

solid ingot
#

ctx.defer(ephemeral=True)

hot thunder
#

Hi, gibt es in Py-Cord auch bei Buttons Cooldowns, oder muss man das selber coden?

lofty rock
#

Moin ich brauche eure Hilfe ich hab hunger aber ich weiss nicht was ich essen soll habt ihr ideen?

lofty rock
solid ingot
#

dann ist es wieder zeit

solid ingot
# hot thunder Hi, gibt es in Py-Cord auch bei Buttons Cooldowns, oder muss man das selber code...

das musst du selbst machen, ist aber gar nicht schwer. in diesem video ist es gut erklärt
https://www.youtube.com/watch?v=fPlFhYq_2TI

In this video, we will work on making a button with a cooldown in discord.py with Cooldown Mapping.

If you found this video helpful, please do consider liking the video, subscribing, and sharing it to someone who might find this video helpful (I know a lot of people say this, but it really does help the channel 🙂). If you have any questions, fe...

▶ Play video
hot thunder
#

Danke mc

lofty rock
#

Und mein dönermann des vertrauens hat zu

limpid wolf
lofty rock
urban glen
#

Bei invisible steht dann noch dass der bot nachdenkt

odd kiteBOT
sly lion
#

Wie kann ich den Bot ein Thread in einem Discord Forum eröffnen lassen? Würde gerne ein Embed reinsenden lassen für ein Vorschlagsystem

Hätte gedacht die ChannelID vom Thread einfach rein, aber leider nicht.
channel = await self.bot.fetch_channel(1188901288507867226) message = await channel.send(embed=embed)

native plume
sly lion
native plume
#

Hab mich verlesen dachte du willst da eine Message reinschicke

urban glen
#

warummm

tawdry leaf
urban glen
#

will ja die dev version

tawdry leaf
fallow raft
#

Hi! Kann mir irgendwer dabei helfen das zu fixen? Diese code block py for guild in user_guilds: if guild["id"] in bot_guilds.response["data"]: guild["url"] = "/server/" + str(guild["id"]) else: guild["url"] = INVITE_LINK + f"&guild_id={guild['id']}" will nicht funktionieren. Wenn ich es rausnehme funktioniert die Webseite

#

das ist der error der kommt File "c:\Users\krani\Desktop\Phytor ala maxed out\main.py", line 93, in guilds if guild["id"] in bot_guilds.response["data"]: ~~~~~^^^^^^ TypeError: string indices must be integers, not 'str'

sly lion
#

Kurze Frage. Ich möchte das mein Bot eine Direktnachricht an einen User schickt mit Buttons. Jedoch schickt er die Nachricht, aber nicht die Buttons.

embed = discord.Embed(
            title="ArcaneNetworks | Ticket",
            description=f"Dein Ticket wurde geschlossen.",
            color=discord.Color.red(),
        )

        await interaction.user.send(embed=embed, view=FBTicket(self.bot))```

```py
class FBTicket(discord.ui.View):
    def __init__(self, bot):
        self.bot = bot
        super().__init__(timeout=None)

        # Feedback-Channel
        self.fbchannel = self.bot.get_channel(881316265564463124)

        @discord.ui.button(label="", style=discord.ButtonStyle.primary, emoji=":star:", custom_id="1star")
        async def button_callback3(self, button, interaction: discord.Interaction):

            embed = discord.Embed(
                title="ArcaneNetworks | Ticket-Feedback",
                description=f"{interaction.user.mention} hat das Ticket mit 1 Stern bewertet.\n Das Ticket wurde von  beansprucht.",
                color=discord.Color.red(),
            )

            ### Ticket bewerten
            await interaction.response.send_message("Danke für deine Bewertung.", ephemeral=True)
            await interaction.fbchannel.send(embed=embed)```
urban glen
#

Bin mir nicht sicher ob das geht

hot thunder
#

Also ohne Label geht, aber ich glaube sowas wie :star: geht nicht, ich bin mir aber net sicher

sly lion
#

Hatte mich daran inspiriert

urban glen
#

da müsste es ja einen fehler geben

#

hast du einen eigenen error handler @sly lion ?

sly lion
#

Ich mach mal morgen ein Thread mit dem kompletten Code

urban glen
#

aber ja :star: ist invalid

#

label geht leer aber dann kannst du den parameter auch einfach weg lassen

#

ist default None und auch okay so

sly lion
#

Ah ok, aber warum ist star invalid

urban glen
#

ist kein gültiges emoji

#

⭐ das ist unicode, kannste auch so im code einfügen und das geht

#

mit Win + . kannst du emojis einfügen

sly lion
#

Achso das habe ich gemacht. Discord hat es nur so translated

tawdry leaf
sly lion
#

Ja

urban glen
#

Vlt geht <:star:> ja

#

Ist aber nicht einfacher oder schöner als einfach den Emoji zu nehmen

sly lion
#

Alles gut das ist nicht das Problem

fallow raft
#

Bei mir wo ich mit emojis gearbeitet habe haben die emojis nur dann funktioniert wenn ich sie einmal hier auf discord geschickt habe und es dann copy pastet habe

lofty rock
#

Wie macht man das? @solid ingot

solid ingot
#

ist automatisch da wenn dein bot verifiziert ist

lofty rock
tough thicket
#

wie kann man eigentlich in embed fields blauen text schreiben?

#

ich weiß, dass das mit html code geht, aber weiß nicht mehr genau wie

solid ingot
#

ezcord.codeblock 😄

lofty rock
#
TOKEN=tkn``` ist die .env file so richtig?
tough thicket
#

wie hier auch

lofty rock
digital crypt
#

.

twin slate
#

wie kann ich den titel eines embeds bearbeiten wenn ich nur das embed object habe? alles soll gleich bleiben nur der titel soll geändert werden. wie kann ich das am einfachsten machen?

urban glen
#

embed.title = „new title“

#

@twin slate

twin slate
#

ok danke

twilit rampart
#

Moin

#

Undzwar

#

Mein Code funktioniert leider nicht so wie ich es haben möchte, der Button disabled sich nicht nach einer Interaktion

#
class StartButton(discord.ui.Button):
    def __init__(self, label):
        super().__init__(label=label, style=discord.ButtonStyle.green)

    async def callback(self, interaction, button):
        self.disabled = True

        await interaction.response.send_message("Deine Schicht hat Begonnen", ephemeral=True)```
urban glen
#

du musst die nachricht aktualisieren

#

also bearbeiten

urban glen
#

wenn nur der button schon als view gilt, bin mir da nicht sicher

twilit rampart
urban glen
#

du musstest doch dafür eine View erstellen oder?

tawdry leaf
#
def cmd_count():
    return bot.cmd_count

bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n{cmd_count()}\n{dc}"))

Das gibt dann im help cmd 0 raus jemand eine Idee wieso?

solid ingot
#

um die variable zu aktivieren müsstest du bei add_help_command noch eine variable definieren

tawdry leaf
#

also cmd_count=cmd_count zum Beispiel?

solid ingot
#

ja

tawdry leaf
#

ah okay

solid ingot
#

dann musst du aber statt {cmd_count()} dann {{cmd_count}} schreiben

tawdry leaf
#

ja habe ich beim beispiel auch xD

tawdry leaf
#

da kommt unexpected token

solid ingot
#

willst call?

tawdry leaf
#

grad schlecht bin private talk 😐

solid ingot
#

dann schick code

tawdry leaf
cursive moss
#

Wie kann ich 2 Buttons an eine Nachricht machen

tawdry leaf
#

also habe halt :

bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n
{lol=cmd_count}\n{dc}"))```
cursive moss
tawdry leaf
solid ingot
#

ey lucky

tawdry leaf
#

timo testest du es selber grad 🤔

solid ingot
#

was denn?

cursive moss
tawdry leaf
solid ingot
tawdry leaf
cursive moss
tawdry leaf
#

pastebin hat eine schlechte codierung xD

cursive moss
#

was dann?

tawdry leaf
#

ist unübersichtlich in pastebin

solid ingot
# tawdry leaf wegen meinen pröblemchen

so lucky als erstes lagerst du mal dein embed aus damit andere leute deinen code auch lesen können. dann machst du die vaiable in die runden klammern von add_help_command

embed = discord.Embed(description=f"**Bot Informationen**\n{''.join(guilds)}\n{''.join(users)}\n\n
{{lol}}\n{dc}")
bot.add_help_command(show_categories=False,buttons=button_list,timeout=None,show_cmd_count=True, embed=embed, lol=cmd_count)
cursive moss
tawdry leaf
#

Dankeschön

tawdry leaf
solid ingot
#

hast du denn die aktuellste master branch version?

tawdry leaf
#

ja eig scho

#

ich installiere nochmal neu 🙂

tawdry leaf
solid ingot
cursive moss
tawdry leaf
solid ingot
#

discord.__version__ kannst du auch einfach in deinen ganz normalen string packen, das ändert sich ja nicht. aber prinzipiell geht es mit allen variablen

tawdry leaf
solid ingot
#

code?

tawdry leaf
#
def owner():
    return discord.AppInfo.owner.display_name
  File "D:\test\pycord\main.py", line 99, in owner


    return discord.AppInfo.owner.name
AttributeError: 'member_descriptor' object has no attribute 'name'```
twilit rampart
#

Habt ihr nh ahnung ob Excel eine API Key hat?

solid ingot
#

bin mir nicht sicher, aber als alternative könntest du google sheets benutzen

urban glen
tawdry leaf
#

kommt natürlich drauf an was du machen willst

#

https://www.youtube.com/watch?v=IgzDB-FJDL0&pp=ygUMZXhjZWwgcHl0aG9u hier ist eine excel api im video gezeigt ^^

Kostenloses Beratungsgespräch: https://weiterbildung.developerakademie.com/y

In diesem Videokurs lernst du, wie du Excel mit Python automatisieren kannst. Auch, wenn du noch nie in deinem Leben programmiert hast.

____ Links ____
Excel-Testdatei: https://github.com/JunusErgin/excel-python-tutorial/raw/main/Bestellungen.xlsx
Dokumentation: https...

▶ Play video
twilit rampart
#

Danke

empty plaza
#

Was kann ich gegen den error machen

Unknown interaction

manchmal geht mein command und manchmal gibt der mir diesen error wieso? weil der länger als 3 Sekunden gebraucht hat

lucid furnace
#

aso

#

await ctx.defer()

empty plaza
empty plaza
#

hab schon geschaut aber nichts zur Unknown interaction gefunden

tawdry leaf
empty plaza
tawdry leaf
#

ja was ist denn dann?

empty plaza
#

Kollege fragte nur ob er dazu was hat

tawdry leaf
#

ja aber er hat doch schon des gesagt xD

twilit rampart
#
@slash_command(description="Starte dein Timer")
    async def start(self,
                    ctx
):
        embed = discord.Embed(
            title="...",
            description="... unter dieser Nachricht zu drücken",
        )
        embed.set_footer(text="...")

        button = StartButton("Start")
        view = discord.ui.View()
        view.add_item(button)

        await ctx.respond(embed=embed, view=view)```
#

Das ist mein Slash Command

urban glen
twilit rampart
#
Ignoring exception in view <View timeout=180.0 children=1> for item <StartButton style=<ButtonStyle.success: 3> url=None disabled=False label='Start' emoji=None row=None>:
Traceback (most recent call last):
  File "C:\Users\yildi\PycharmProjects\m\.venv\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\yildi\PycharmProjects\m\cogs\start.py", line 39, in callback
    await interaction.message.edit(view=self)
  File "C:\Users\yildi\PycharmProjects\m\.venv\Lib\site-packages\discord\message.py", line 1434, in edit
    payload["components"] = view.to_components() if view else []
                            ^^^^^^^^^^^^^^^^^^
AttributeError: 'StartButton' object has no attribute 'to_components'```
urban glen
#

Dann mach gleich eine View in der du den Button gleich drin hast

#

Im callback kannst du dann den Button deaktivieren und die Nachricht View aktualisieren

urban glen
urban glen
raven lotus
#
    @discord.ui.button(label="Abmelden", style=discord.ButtonStyle.primary, emoji="![Member](https://cdn.discordapp.com/emojis/1104143144498503740.webp?size=128 "Member")")
    async def button(self, button: discord.ui.Button, interaction: discord.Interaction):
        modal = Modal(self.bot, title="Abmeldung", user_id=interaction.user.id)
        self.user_id = interaction.user.id
        await interaction.send_modal(modal)

der will irgendwie nicht das modal senden:

AttributeError: 'Interaction' object has no attribute 'send_modal'
urban glen
#

interaction.response.send_modal

#

Denke ich

raven lotus
#

wait

#

DANKE!

#

es geht!

slim bear
#

Hallo Leute 👋🏻

Ich habe eine Frage. Und zwar weiß einer welches Event ich nutzen soll wenn ich eine Custom Boost Nachricht machen will wenn die Automatische Boost Nachricht von Discord ausgeschaltet ist?

Danke im Vorraus!

urban glen
#

direkt gibt es das nicht

#

du kannst aber gucken ob jemand die <@&1018360496396714076> rolle bekommen hat

slim bear
#

Okay macht sinn

#

Danke

urban glen
#
async def on_member_update(before: discord.Member, after: discord.Member):
    role = discord.utils.get(member.guild.roles, name='Server Booster')
    if not role in before.roles and role in after.roles:
        # Der Benutzer hat den Server geboostet
#

sowas ungefähr

#

aber nur wenn die rolle davor noch nicht da war

#

denk dir was schönes aus :)

slim bear
#

Aber wenn jemand den Server mehrmals Boosted wird ja trotzdem nur eine Nachricht angezeigt weil der Member die Rolle ja nur 1 mal bekommt

urban glen
#

jap

slim bear
#

Würde es auch gehen mit on_message das mein Bot die Nachricht von Discord einfach löscht und dann direkt die Custom Nachricht schickt dann würde es auch bek mehrfachen Boost mehrere Nachrichten geben

raven lotus
#
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonView(self.bot))

Error:

[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 12, in on_ready
    self.bot.add_view(ButtonView(self.bot))
                      ^^^^^^^^^^^^^^^^^^^^
TypeError: ButtonView.__init__() missing 1 required positional argument: 'bot'
#

warum geht das nicht

urban glen
#

zeiug mal die button view klasse

raven lotus
#
class ButtonView(discord.ui.View):
    def __init__(self, modal_instance, bot, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.modal_instance = modal_instance
        self.bot = bot
urban glen
#

ja modal instance fehlt

raven lotus
#

wo?

urban glen
#

also du gibst den bot als modal_instance in den konstruktor und die bot variable fehlt

#

das ist das 1. und 2. positional argument

#

du gibst dem konstruktor aber nur das 1.

raven lotus
#
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonView(self.bot, modal_instance=Modal))
#

oder wie

slim bear
#

Anders rum

#

Zuerst das modal und dann den bot

raven lotus
urban glen
#

Und wenn Modal eine Klasse ist dann mit Klammern

urban glen
#

Wenn du wirklich eine Instanz erwartest

#

oder modal_instance=Modal(), bot=self.bot

slim bear
urban glen
slim bear
#

Ne doch nd

slim bear
raven lotus
#
[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 13, in on_ready
    self.bot.add_view(modal_instance=Modal(), bot=self.bot)
                                     ^^^^^^^
TypeError: Modal.__init__() missing 2 required positional arguments: 'bot' and 'user_id'
#
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(modal_instance=Modal(), bot=self.bot)
#

BRUUUUUUH

urban glen
#

es steht ja alles da

raven lotus
#

SRY

#

ne, wait:

[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\user\PycharmProjects\NZmoderation\venv\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\user\PycharmProjects\NZmoderation\cogs\abmeldesystem.py", line 13, in on_ready
    self.bot.add_view(ButtonView(modal_instance=Modal(), bot=self.bot))
                                                ^^^^^^^
TypeError: Modal.__init__() missing 2 required positional arguments: 'bot' and 'user_id'
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(ButtonView(modal_instance=Modal(), bot=self.bot))
#

was muss ich genau einfügen

#

bei der User id

urban glen
#

das musst du doch wissen

#

ist dein Modal joeconcerned

raven lotus
#

AAAAAAAAAAAH

ruby sparrow
#

send mal dem button

novel ore
#

Welche Gründe kann es haben das die databse gelocked ist. Also beim hoster. Wurde da zu oft drauf zugegriffen?

solid ingot
#

das kann verschiedene gründe haben. der fehler tritt auf wenn eine verbindung aufgemacht wird, aber nicht geschlossen wird.
das kann aber auch komplizierte ursachen haben. ich hatte zb mal einen bug der den gesamten code geblockt hat, und dadurch wurde dann auch die datenbank gelockt, weil die verbindung nicht geschlossen werden konnte

urban glen
#

Das heißt nur dass die grad schon verwendet wird

novel ore
solid ingot
#

naja ezcord schließt automatisch. du musst schauen woran es liegt dass eine verbindung nicht geschlossen wird

#

denn wenn du dann ne neue vebindung aufmachen willst ist es wie ziblic schon gesagt hat, dass die DB dann schon verwendet wird

novel ore
#

Naja das könnte sein weil ich bei jeder Nachricht eine db verbinden öffne die in meinem global chat geschrieben wird vielleicht war die eine db von er ersten Nachricht noch nicht geschlossen wie er die für die 2te aufmachen wollte. Kann das sein?

solid ingot
#

eher nicht

novel ore
twilit rampart
#

Mein Button deaktiviert sich nicht nachdem man damit interagiert hat

solid ingot
#

zeig mal deinen code

twilit rampart
#
import discord
from discord import Interaction
from discord.commands import slash_command
from discord.ext import commands


class Start(commands.Cog):
    def __init__(self, bot):
        self.bot = bot


    @slash_command(description="Starte dein Timer")
    async def start(self,
                    ctx
):
        embed = discord.Embed(
            title="Schicht Beginn",
            description="Um deine Schicht zu beginnen, bitten wir dich auf das **Grüne Knopf** unter dieser Nachricht zu drücken",
        )
        embed.set_footer(text=".")

        button = StartButton("Start")
        view = discord.ui.View()
        view.add_item(button)

        await ctx.respond(embed=embed, view=view)



def setup(bot):
    bot.add_cog(Start(bot))

class StartButton(discord.ui.Button):
    def __init__(self, label):
        super().__init__(label=label, style=discord.ButtonStyle.green)

    async def callback(self, interaction):
        await interaction.response.send_message("Deine Schicht hat Begonnen", ephemeral=True)```
solid ingot
#

um den button zu deaktivieren, musst du den button erst mit self.disabled = True deaktivieren und dann die button.nachricht bearbeiten

twilit rampart
#

Also vor await interaction.response.send_message("Deine Schicht hat Begonnen", ephemeral=True)

#

Wenn ja, dann geht es nicht

thick haven
#

Was bedeute diese error was fehlt ihm den? kann mir da jemand weiterhelfen^

    return await before.channel.send(f"{member.mention} There is a problem with the TempVoice system. Please contact an admin and ask them to use the command `/tempy`!")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/abc.py", line 1616, in send
    data = await state.http.send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/http.py", line 365, in request
    raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access```
twilit rampart
#

discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access

#

Das

thick haven
#

Ja aber was für Access ?

solid ingot
lucid furnace
lofty rock
#

Wie kann ich eine Option zu einen py @bot.slash_command hinzufügen? also wie hier:

solid ingot
#

daas geht mit choices

solid ingot
#

in dem video ist ein beispiel

lofty rock
solid ingot
#

ja genau

lofty rock
solid ingot
#

ja das ist dasselbe

urban glen
urban glen
#

Wie funktioniert das dass man da trotzdem tippen kann und dann die Ergebnisse gefiltert werden so

tawdry leaf
urban glen
#

Aber async aus der Datenbank?

#

Du kannst ja im Parameter kein await benutzen

tawdry leaf
#

Ich kann dir nicht ganz folgen

urban glen
#

Normalerweise ist das ja über choices, da kannste ja nh Liste reingeben und diese z.B. von einer Funktion bekommen

#

Aber halt nicht von einer async Funktion

urban glen
solid ingot
#

wenn ihr eine async funktion wollt, brauchst ihr autocomplete statt choices

odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
urban glen
#

Das hier ist autocomplete oder?

solid ingot
#

ja genau

urban glen
#

Und nicht choices

solid ingot
#

dann können die videos dynamisch vom youtube kanal geladen werden

urban glen
#

So weit so gut

#

Das ist auch autocomplete aber wenn ich was eingebe ändert das halt nix an den angezeigten Optionsn

#

Wenn ich bei dir zB Cog eingeben kommen nur Videos mit Cog im Titel also halt in der Option

#

Wie kann das sein?

solid ingot
# urban glen Wie kann das sein?

du müsstest noch einbauen dass die optionen gefiltert werden. auf die aktuelle eingabe kannst du mit ctx.value zugreifen und dann nur die werte zurückgeben, die die eingabe enthalten

#

falls du ezcord nutzt, kannst du auch ez_autocomplete dafür nutzen

odd kiteBOT
urban glen
tough thicket
#

Kann man auch Slash Commands den Usern, die keine Permissions darauf haben, auch ohne eine SlashCommandGroup ausblenden lassen? Und dass man auch die permissions davon auch hier anpassen kann?

urban glen
#

Aber das isses danke

solid ingot
solid ingot
tough thicket
solid ingot
#

nutze stattdessen einfach @discord.default_permissions, das ist die neuere variante

odd kiteBOT
limpid wolf
tough thicket
#

die nutze ich dann, ist besser

solid ingot
#

im video werden denke ich auch alle anderen unterschiede erklärt

tough thicket
#

und man kann die permissions verändern als admin

solid ingot
#

ja in den server einstellungen

novel ore
#

Yo

urban glen
#

Ist ja geil

tough thicket
#

Commands, die nur der bot owner ausführen darf, kann man aber mit @discord.default_permissions nicht verstecken, oder?
Weil dazu finde ich nämlich nichts in den Docs.

solid ingot
#

doch, du kannst die command nur für einen bestimmten server freigeben, auf dem nur du admin bist

lethal sequoia
#

Guten Abend meine Lieben KEKW

Arbeite an einem kleinen Projekt und es wird immer größer, versuche gerade etwas Ordnung reinzubringen aber bin am verzweifeln. Wenn ich eine Ordnerstruktur habe wie in dem Screenshot unten wie importiere ich eine class aus: test.py in test2.py?

Ich habe mich jetzt einige Zeit umgeschaut und habe es jemanden so machen sehen

from ../testing import Test

Funktioniert aber nicht (hab auch ein wenig hin und her probiert) aber dachte mir kann man ja nach Monaten auch hier mal wieder eine Frage stellen 😄

solid ingot
lethal sequoia
#

Ich hab jetzt zum testen nur das test script gestartet. Aber da ich die class in einem Cog brauche müsste ich es doch sowieso so machen oder?

solid ingot
#

wenn du das ganze von einer main datei im hauptordner startest, kannst du den import so machen

from testing import test
lethal sequoia
solid ingot
#

solange du das ganze von der main datei aus startest, kannst du denselben import auch in test2.py nutzen

lethal sequoia
#

Also kann ich in der Main Datei

from testing import test

machen und dann in dem cog einfach

import test

?

solid ingot
#

im cog auch from testing import test, aber nur wenn du die main datei startest

urban glen
#

Es geht alles im davon aus von wo das Skript gestartet wurde

#

Wenn du von root startest dann schreibst du auch im 100. unterordner einfach Import utils zB wenn utils und main ganz oben sind

opaque blade
#

Bedeutet das, das dem Bot bestimmte Berechtigungen fehlen?

discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
urban glen
#

Er darf etwas halt nicht ja

opaque blade
#

Okay danke

lethal sequoia
#

Funktioniert! Vielen Dank! 🙂

Mit dem langen "namen" muss ich dann leben?

Habe es versucht mit ```py
@slash_command(name="test")
async def Test(self, ctx):
Test = test.Test()
print(Test.message())
await ctx.respond("Success!")

abzukürzen, bekomme aber den error 

```discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: Test.message() takes 0 positional arguments but 1 was given```
urban glen
#

Was ist Test?

#

Kannst du mal deine ordnerstruktur zeigen?

lethal sequoia
#

Test ist einfach nur ```py
class Test ():
def message():
print("Test")

urban glen
#

Geht das?^

lethal sequoia
#

Jap, damit hat sich meine Frage komplett geklärt, vielen Dank 🙂

Darauf erstmal weiter SQL schreiben 🥲

Schönen Abend euch noch ✌️

solid ingot
#

🎉 duckdrink

opaque blade
#

Wie kann ich das beheben?

TypeError: 'NoneType' object is not subscriptable
#

okay ist behoben

urban glen
#

Zeig mehr Code

opaque blade
#

Also... die Userinfo zeigt bei den "Orangen" None an. Kann wer mir sagen was ich falsch gemacht habe?

    @slash_command(description='・🚹│ Zeigt Personeninformationen an.')
    async def userinfo(self, ctx, user: Option(discord.User, 'Die Person, dessen Infos du wissen möchtest.', required=False) = None):
        account = c.fetchone()
        if user == None:
            if user is None:
                user = ctx.author

            embed = discord.Embed(
                title=f"Infos über {user.name}",
                description=f"Hier siehst du alle Details über {user.mention}",
                color=discord.Color.blue(),
                timestamp=discord.utils.utcnow())

            time_created = discord.utils.format_dt(user.created_at, "R")
            time_joined = discord.utils.format_dt(user.joined_at, "R")
            bank_balance = account

            embed.add_field(name='📌 Username', value=f'{user.name}', inline=True)
            embed.add_field(name='📌 Spitzname', value=f'{(user.nick if user.nick else "❌ Besitzt keinen Spitznamen :(")}', inline=False)
            embed.add_field(name='Orangen', value=f"{bank_balance} ![ORANGE](https://cdn.discordapp.com/emojis/1188082582777237554.webp?size=128 "ORANGE")", inline=False)
            embed.add_field(name="Account erstellt:", value=time_created, inline=True)
            embed.add_field(name="Server beigetreten:", value=time_joined, inline=True)
            embed.add_field(name='Rollen:', value=f'{len(user.roles)}', inline=True)
            embed.add_field(name='Höchste Rolle:', value=user.top_role.mention, inline=True)
            embed.add_field(name='Bot?', value=f'{("![GJ_Right](https://cdn.discordapp.com/emojis/1166797426523373718.webp?size=128 "GJ_Right") Ja!" if user.bot else "![GJ_Wrong](https://cdn.discordapp.com/emojis/1166797432126967929.webp?size=128 "GJ_Wrong") Nein!")}', inline=True)
            embed.add_field(name='Booster?', value=f'{("![GJ_Right](https://cdn.discordapp.com/emojis/1166797426523373718.webp?size=128 "GJ_Right") Ja!" if user.premium_since else "![GJ_Wrong](https://cdn.discordapp.com/emojis/1166797432126967929.webp?size=128 "GJ_Wrong") Nein!")}', inline=True)
            embed.set_thumbnail(url=user.display_avatar.url)
            embed.set_footer(text=f"Keesus's Zentrale 🚀", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
            await ctx.respond(embed=embed)
strange juniper
# novel ore Naja das könnte sein weil ich bei jeder Nachricht eine db verbinden öffne die in...

eigentlich.. ja. doch. wenn man eine gewisse menge traffic bekommt kann das mit sqlite3 sogar recht schnell passieren. bei mir war das ab ~400_000 nutzern die vom bot u.a. auf nachrichten überwacht wurden der fall.

ein kurzzeitiger fix, gut für nochmal ~70_000, war es einfach konstant mit einer verbindung zu arbeiten und nur bei bedarf cursor aus einem pool zu verwenden. da musste man natürlich darauf achten, dass die auch wieder geschlossen werden. Ist allerdings auch nicht ideal und liefert wie gesagt ca. 12 % puffer ehe man wieder vor dem selben problem steht.

Bei meinem stelle ich wegen dem selben mumpitz gerade auf mysql (natürlich async) um.

#

Eine weitere alternative wäre erst infos zu sammeln, beispielsweise die gebrauchten infos von ~10 nachrichten in einer liste zu sammeln und nur wenn die liste 10 einträge erreicht hat einen befehl an die datenbank zu setzen. bulk aufträge sind effizienter als einzelne aufrufe.

#

Allerdings ist das auch wieder gefrickel, dass das problem nur eine weile verzögert bzw. aufschiebt bis wieder der selbe fall auftritt.
Auf der Plus Seite sind diese "fixes" halt schnell gemacht und verschaffen einem Zeit.

urban glen
opaque blade
#

laut datenbank gibt es aber einen eintrag

urban glen
#

dann ist deine query falsch

opaque blade
#

habe leider kaum ahnung mit databases wo fixe ich das?

strange juniper
opaque blade
#

Leider wird aber bei embed.add_field(name='Orangen', value=f"{bank_balance} :ORANGE:", inline=False) immer noch None angezeigt.

urban glen
strange juniper
# opaque blade habe leider kaum ahnung mit databases wo fixe ich das?
account = c.fetchone()

ich vermute, dass c klassich für cursor steht.
Das sagt quasi "gib mir das aller erste ergebnis meiner (hier nicht vorhandenen) abfrage.

Wenn du Daten abrufen willst muss das mit einem Select statement passieren (ist identisch mit der asynchronen sqlite version)

Hier ist ein link zu denk docs, wie so eine abfrage aufgebaut werden muss. Die Grafiken darin haben mich beim DB bauen mehrmals gerettet..

... hoffe es hilft dir:

opaque blade
strange juniper
urban glen
solid ingot
#

die rollen kannst du dann in den servereinstellungen anpassen

urban glen
urban glen
opaque blade
urban glen
#

Sowas wie c.execute wenn c dein cursor ist

#

Schau dir einfach mal ein Basic Tutorial dazu an

solid ingot
strange juniper
# opaque blade wo muss ich das einsetzen?

hier ist ein beispiel, das mit dem "?" ist wichtig.
Du solltest dir aber 1-2 videos dazu ansehen, sonst bringt dir der beispiel code wenig.. allein schon weil dein table sicher anders aufgebaut ist.

   async def call_memberids_one_server(self, serverid: int) -\> Iterable[aiosqlite.Row]:
        """
        Gathers all stored UserIDs for a specific server and returns them as a collection of tuples,
        with one entry in each tuple, in a list.
        :param serverid: ID of the server to receive user IDs from
        :return: List of tuples containing UserIDs
        """
        c = await self.connection.cursor()
        await c.execute(""" 
        SELECT UserID FROM activity WHERE GuildID = ?
        """, (serverid, )
        )

        user_ids = await c.fetchall()
        await c.close()
        return user_ids

(backslash in "->" recht weit oben ignorieren)

urban glen
#

ich kann auch ohne administrator diesen command benutzen

#

anders rum hingegen funktioniert alles wie geplant

urban glen
solid ingot
urban glen
#

komisch komisch

urban glen
#

ist das richtig

#

also hierbei kann ich selbst mit view_channel permissions nicht /config get benutzen

solid ingot
urban glen
#

hmm

#

selbst in den server settings sieht man die untercommands ja nicht

#

das ist doof

strange juniper
urban glen
#

naja jetzt beispielsweise es gibt /config get und /config update

**get **können moderatoren (moderate_members) und update können nur admins

#

soweit ich das verstanden habe geht das mit diesen default permissions und servereinstellungen nicht

#

da bräuchte ich dann nen extra check aber der command wird trotzdem angezeigt

strange juniper
#

ja. der decorater macht es nur für die sichtbar, die die gewählten rechte haben.
soll eine breitere personengruppe, aber nicht alle, zugriff auf den command haben könntest du eine hybride strategie fahren.

Als Beispiel, Details müsstest du dann anpassen:
decorator beschränkt sichtbarkeit auf personen die mind. kick berechtigung haben.

wird ein bereich des befehls ausgeführt der nur für admins sein soll erfolgt ein weiterer check im code, hat die person keine adminrechte: return await ctx.respond("Kontaktiere für diese Funktion einen Admin oder den Server Besitzer").. sowas in der Art.

#

klingt doch nach einer guten vorgehensweise

urban glen
#

mir gings ja nur darum ob es möglich ist die untercommands unsichtbar zu machen

urban glen
#

naja danke

lethal sequoia
#

Hat Pycord etwas daran geändert wie man ephemeral messages versendet oder habe ich einen brainlag? Ich könnte schwören es war immer so

        else:
            embed = await EmbedBuilder.errorEmbed(self, ctx, description="License is invalid or already used!")
            await ctx.respond(embed=embed, ephemeral=True)
limpid wolf
lethal sequoia
limpid wolf
#

Oder was gibt denn deine EmbedBuilder Methode zurück? also der type

lethal sequoia
#
    @slash_command(name="embedtest")
    async def EmbedTest(self, ctx):
        await ctx.respond("Success!", ephemeral=True)

In dem Command funktioniert es tatsächlich, ich responde in der methode nicht und returned auch eigentlich nur das embed object

#
    async def errorEmbed(self, ctx, description):
        embed = discord.Embed(title=f"Error", color=discord.Color.dark_red(), description=description)
        embed.set_footer(text=f"placeholder | {datetime.now().strftime('%d.%m.%Y %H:%M')}")
        return embed
#

(ich weiß ctx brauche ich da tendenziell nicht übergeben)

lethal sequoia
opaque blade
#

In der Console:

ERROR: Could not find a version that satisfies the requirement py-cord-dev==2.5.0rc5 (from versions: none)
ERROR: No matching distribution found for py-cord-dev==2.5.0rc5
#

gibt es die ver. nicht mehr??

lucid furnace
#

ne

opaque blade
#

huhhh seid wann

lucid furnace
#

schon länge

opaque blade
#

ich krach ab

lethal sequoia
urban glen
#

du kannst pip install git+https://github.com/Pycord-Development/pycord benutzen
aber trzdm kacke

opaque blade
#

hat vor paar tagen noch funktionier aber aufeinmal nicht mehr? weird

lethal sequoia
urban glen
#

Ja alle follow-ups sind so wie beim defer

#

Weil das als 1. Antwort gilt

opaque blade
pulsar sundial
#

Wie mache ich in eine Int Funktion nur Zahlen?

solid ingot
#

wie meinst du das genau?

pulsar sundial
#

das ich @role mache unt nur zahlen dann kommen

solid ingot
#

dafür gibt es viele möglichkeiten. du könntest zb alle zahlen aus der nachricht rausfiltern, indem du alle zeichen mit .isdigit() überprüfst

pulsar sundial
#

ok

pulsar sundial
#

Wie kann ich machen das man nur in dem beliebigen Channel den command ausführen kann?

solid ingot
#

das kannst du bei slash commands in den server-einstellungen festlegen

lucid furnace
tough thicket
#

Hey, wie kann ich einen button mit einem modal auch noch nach dem neustart verfügbar lassen?

from discord.ext  import commands
from TicketSystem.Views.CloseDropdownMenu import CloseDropdown
from TicketSystem.Views.TicketButtonsEm import TicketViewButtonEmMSG
from TicketSystem.Views.MainTicketView import TicketViewCreateTicket
from TicketSystem.Views.MainTicketView import Modal


class on_ready(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener(
        'on_ready'
    )
    async def listener(
        self
    ):
        self.bot.add_view(
            TicketViewCreateTicket()
        )

        self.bot.add_view(
            TicketViewButtonEmMSG()
        )

        self.bot.add_view(
            CloseDropdown()
        )

        self.bot.add_view(
            Modal()
        )

def setup(bot):
     bot.add_cog(on_ready(bot))
solid ingot
#

persistent modal gibt es nicht. es reicht, wenn du den button persistent machst, mit dem du das modal öffnest

tough thicket
# solid ingot persistent modal gibt es nicht. es reicht, wenn du den button persistent machst,...

versuche ich ja bereits, aber irgendwie funktioniert es trotzdem nicht.

class TicketViewCreateTicket(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(label="Ticket", emoji=":envelope_with_arrow:", style=discord.ButtonStyle.blurple, custom_id="TicketViewCreateTicket")
    async def create_ticket(self, button, interaction: discord.Interaction):
        await interaction.response.send_modal(Modal(title="Create your support request"))

tough thicket
#

habe es einfach alles in die main datei geknallt xD

lucid furnace
#

was ist ein @bot.user_command()

urban glen
#

A shortcut decorator that invokes command() and adds it to the internal command list via add_application_command(). This shortcut is made specifically for UserCommand.

A class that implements the protocol for user context menu commands.

lucid furnace
#

wie mache ich ein button disabled nach 2 mal drücken

urban glen
#

könntest die clicks in der klase tracken und nach dem 2. mal dann das item disablen

#

async def callback(self, button, interaction):
self.clicked += 1
if self.clicked >= 2:
button.disabled = True
await interaction.edit(view=self)

tawdry leaf
old ore
#

kann mir bitte wer helfen in meinem linux server hat er bei der instalation von den requirements diesen error ausgegeben

native inlet
twilit rampart
#

3.12 geht ned

old ore
#

alles gut habs gefixxt bekommen

native inlet
twilit rampart
#

Ja

#

Halt unter 3.12 mein gott

solid ingot
#

bei integrationen

pulsar sundial
#

Alles klar

pulsar sundial
solid ingot
#

ich weiß nichts von einer webhook URL

old ore
#

kann mir bitte wer sagen wie ich java 18 o. 20 auf meine Dashserv server bekomme

tawdry leaf
#

kann dir link per dm senden

old ore
tawdry leaf
#

also mein stand ist eig das die dabei helfen

old ore
#

Echt ich habe da nich nicht nachgeschaut

tawdry leaf
#

hm okay

blazing path
#

Was bedeutet der Error "discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions"

solid ingot
#

dein bot hat keine berechtigung, etwas zu tun

blazing path
#

Das heißt ich muss ihm Rechte geben.

#

Aber er hat Administrator Rechte.

urban glen
#

Vlt hat er auch von discord aus nicht die rechte, was willst du denn machen?

blazing path
blazing path
# urban glen Was ist denn dein Code?

[ERROR] Error in event on_ready 
Traceback (most recent call last):
  File "C:\Users\delan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 399, in _run_event
    await coro(*args, **kwargs)
TypeError: NameChangerOnJoin.on_ready() missing 1 required positional argument: 'bot'
#

Das ist aktuell mein Error.

urban glen
#

Hm sieht komisch aus haha

#

Code?

blazing path
#

Was tun wenn Bot not defined kommt?

urban glen
#

Kann ich jz pauschal nicht sagen brauche da schon Kontext

blazing path
#

Alles gut, habe es gelöst, ich habe nur noch eine Frage, gibt es die Möglichkeit, den ersten Buchstaben beim Namen Großschreiben zu lassen?

solid ingot
#

.capitalize()

urban glen
#

. capitalize()

blazing path
#

Im Internet finde ich, new_nickname.capitalize()

#

Ah alles klar! Super danke, wie verwende ich den?

urban glen
#

.title() wenn jedes Wort groß soll

urban glen
#

Ist ein Attribut von jedem string, durch Python

blazing path
#

Nicht mit einer If abfrage?

urban glen
urban glen
blazing path
#

mh.

urban glen
#

Capitalize macht den 1. groß und den Rest klein

#

Oder ist das ein Problem für dich?

blazing path
#

Nein, ich komme gerade nur nicht hinterher...

#
import discord
from discord.ext import commands


class NameChangerOnJoin(commands.Cog):
    def __init__(self, bot: discord.Bot):
        self.bot = bot

    @commands.Cog.listener("on_member_join")
    async def on_member_join(self, member: discord.Member):
        new_nickname = f"AfD - {member.name}"
        await member.edit(nick=new_nickname)

def setup(bot: discord.Bot):
    bot.add_cog(NameChangerOnJoin(bot))

Das ist mein Code

urban glen
#

member.name.capitalize()

#

Das war’s schon

blazing path
#

Wo denn?

urban glen
#

Hinter dem afd Ding

blazing path
#

Achso, ah cool ich probier das mal aus 😄

opal chasm
#

hat jemand eine ahnung was der fehler heißt in Pycord: "discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: RuntimeError: Session is closed"

blazing path
#

Das hat nicht geklappt.

lucid furnace
#

oder was passiert und was soll passieren

blazing path
#

Kommt kein Error, nur der Name wird nicht groß geschrieben.

urban glen
urban glen
#

Was hast du denn jz geschrieben

blazing path
# lucid furnace code?
import discord
from discord.ext import commands


class NameChangerOnJoin(commands.Cog):
    def __init__(self, bot: discord.Bot):
        self.bot = bot

    @commands.Cog.listener("on_member_join")
    async def on_member_join(self, member: discord.Member):
        new_nickname = f"AfD - {member.name.capitalize()}"
        await member.edit(nick=new_nickname)


def setup(bot: discord.Bot):
    bot.add_cog(NameChangerOnJoin(bot))
blazing path
urban glen
#

Am Code liegts nicht, vlt läuft dein bot 2 mal noch an einer anderen stelle?

blazing path
#

Ich probier noch mal uno momento

blazing path
#

Also klappen tut es wirklich nicht.

lucid furnace
#

lad mich mal ein

blazing path
#

Habe es aber auch mit einem anderen Account versucht

#

Klappt trotzdessen nicht.

urban glen
#

Printe einfach mal member.name.capitalize() ALs erstes

#

Und schau was rauskommt

opal chasm
blazing path
#

Starte neu oder so? 😄

opal chasm
lucid furnace
urban glen
#

Sollte er nicht trotzdem editiert, also überschrieben werden

lucid furnace
#

anscheint nicht

#

wenn ich denn bot neustarte gehen die buttons nd mehr wie mache ich das so das die nach nem neustart immer noch gehen

tawdry leaf
#

da hat einer wohl die intents vergessen

lucid furnace
tawdry leaf
lucid furnace
#

er hat intents

tawdry leaf
#

also in dem code von ihm nd den er geschickt hat

lucid furnace
blazing path
#

Der Code funktioniert einwandfrei! 😄

lucid furnace
#

dann hat er denn nick von seinem acc geresetted und es ging

tawdry leaf
#

dann passt ja alles 😄

urban glen
#

Und dann eine View instanz reingeben

lucid furnace
# urban glen Im on_ready event bot.add_view() aufrufen
Traceback (most recent call last):
  File "C:\Users\tdius\Code\Python\MainBot\venv\Lib\site-packages\discord\client.py", line 399, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\tdius\Code\Python\MainBot\Commands\TicketSystem\Ticketsystem.py", line 15, in on_ready
    self.bot.add_view(Ticketbutton())
  File "C:\Users\tdius\Code\Python\MainBot\venv\Lib\site-packages\discord\client.py", line 1945, in add_view
    raise ValueError(
ValueError: View is not persistent. Items need to have a custom_id set and View must have no timeout```
#
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(Ticketbutton())
tawdry leaf
#

steht eig im error was du machen musst 🤔

#

custom_id beim button und bei der view timeout=None in die init

#

oder timos video anschauen zu Buttons 👀

lucid furnace
#

ich nutzt nie buttons

tawdry leaf
#

hm dann select

lucid furnace
tawdry leaf
lucid furnace
#
class Ticketbutton(View):
    def __init__(self):
        super().__init__(timeout=None)
        self.clicked = 0

    @discord.ui.button(label="Close 🔒", style=discord.ButtonStyle.danger)
    async def close_callback(self, button, interaction):
        await interaction.response.send_message("Closing Ticket in 3 seconds...")
        self.clicked += 1
        if self.clicked >= 1:
            button.disabled = True
            await interaction.edit(view=self)
            time.sleep(3)
            await interaction.channel.delete()

    @discord.ui.button(label="Claim ✔", style=discord.ButtonStyle.primary)
    async def claim_callback(self, button, interaction):
        await interaction.response.send_message("Claiming Ticket...")
        self.clicked += 1
        if self.clicked >= 1:
            button.disabled = True
            await interaction.edit(view=self)``` ist doch so
tawdry leaf
#

sehe keine custom_id

lucid furnace
#

wofür custom_id

tawdry leaf
#

für persistent xD

lofty rock
#

Für Fortnite

lucid furnace
#

wofür brauch man die

urban glen
#

Im persistent zu haben

tawdry leaf
#

das die nach restart gehen

urban glen
#

Schreib irgendwas rein

lucid furnace
#

wo kommt die hin

urban glen
#

Nach Close da einfach custom_id='close_button'

tawdry leaf
#

bei style

lofty rock
#

Wieso sollte man Vegan sein?

urban glen
#

Ja da wo Label und Style auch ist

urban glen
lofty rock
tawdry leaf
lucid furnace
#

so nh

class Ticketbutton(View):
    def __init__(self):
        super().__init__(timeout=None)
        self.clicked = 0

    @discord.ui.button(label="Close 🔒", custom_id="huanbecker123", style=discord.ButtonStyle.danger)
    async def close_callback(self, button, interaction):
        await interaction.response.send_message("Closing Ticket in 3 seconds...")
        self.clicked += 1
        if self.clicked >= 1:
            button.disabled = True
            await interaction.edit(view=self)
            time.sleep(3)
            await interaction.channel.delete()

    @discord.ui.button(label="Claim ✔", custom_id="huanbeckerin123", style=discord.ButtonStyle.primary)
    async def claim_callback(self, button, interaction):
        await interaction.response.send_message("Claiming Ticket...")
        self.clicked += 1
        if self.clicked >= 1:
            button.disabled = True
            await interaction.edit(view=self)
urban glen
#

duckno guck sie dir an

#

Kann man doch nicht essen

lucid furnace
#

doch

lucid furnace
lofty rock
lucid furnace
#

bin ich ehrlich

lofty rock
#

Hab vor paar Tagen Ente gegessen

urban glen
#

Schlechte Idee

tawdry leaf
#

asyncio 😮

lofty rock
tawdry leaf
lucid furnace
#

warum ist das so

tawdry leaf
#

3

#

2

lucid furnace
urban glen
#

lofty rock
tawdry leaf
#

du hast es so gecodet deshalb ^^

urban glen
lucid furnace
#

hmm wie mache ich es dann

urban glen
#

Was denn haha

tawdry leaf
#

xD

lucid furnace
#

denn button disablen

lofty rock
#

Disabled=True ist das doch oder?

#

Oder disable=True

tawdry leaf
#

button.disabled

lucid furnace
#

self.disabled = True aber wo

urban glen
#

Schreib interaction.message.edit

lofty rock
#

Kenne mich mit buttons null aus 🙂

urban glen
#

Ich glaub das ist was du willst

lucid furnace
lucid furnace
lofty rock
urban glen
#

in dem kontext macht es wahrscheinlich sinn alle buttons zu deaktivieren, dafür kannst du button.disabled = True mit self.disable_all_items() ersetzen

#

dann ist Claim auch deaktiviert

tawdry leaf
lofty rock
urban glen
#

und bitte mach einfach import asyncio und anstatt time.sleep(3) dann await asycio.sleep(3)

#

ist kein hexenwerk

lucid furnace
#

doch

tawdry leaf
lofty rock
#

Wie kann Ayliva in den deutschen charts sein?! (Spotify)

tawdry leaf
#

weil es einf so ist du musst es akzeptieren

tawdry leaf
#

und tiktok deinstallieren

urban glen
lofty rock
tawdry leaf
lofty rock
lucid furnace
tawdry leaf
urban glen
#

Timooo
AttributeError: module 'ezcord.utils' has no attribute 'count_lines'

tawdry leaf
#

from ezcord.utils import count_lines

urban glen
#

tawdry leaf
#

wie nö

#

so importest du des

urban glen
#

naja gibts nicht

tawdry leaf
#

hm maybe warten bei mir geht es

urban glen
tawdry leaf
#

aber habe auch den master branch

tawdry leaf
#

hast auch geupdatet?

urban glen
#

ka ich hab version 0.5.1

tawdry leaf
#

0.5.2

urban glen
#

mehr als pip install ezcord kann ich doch nicht machen

tawdry leaf
#

den master branch kannst installieren zum beispiel oder pip install ezcord -U

urban glen
#

was macht das U

tawdry leaf
#

upgrade

lucid furnace
#

update

urban glen
#

nagut

tawdry leaf
#

okay

urban glen
#

danke

opal chasm
#

was für ein import brauche ich in pycord um @client zu nutzen? weiß das jemand zufällig?

solid ingot
#

einen import brauchst du dafür nicht, das kommt ganz darauf an wie du deine bot variable genannt hast

opal chasm
#

habs jetzt abgeändert

#

danke

ruby sparrow
#

Wie kann ich ein Foto neben dem title machen?

ruby sparrow
#

hier ist ein zb

novel ore
#

Das wahrscheinlich kein Titel sondern ein Author

odd kiteBOT
novel ore
#

Da musst du daa Bild hakt bei icon_url hinsetzen

ruby sparrow
#

hab es so

#

aber ich weiß nicht, wie man ein Bild vor den Namen setzt

novel ore
#

Und du möchtest so rin Bild haben?

ruby sparrow
#

ja

#

da vor ein bild

novel ore
#

Uns bei der url muss halt deine Bild url hin

ruby sparrow
#

weiss einer wie es gejt

solid ingot
#

was davon meinst du genau?

lucid furnace
ruby sparrow
#

hab es so aber ich möche du

#

@solid ingot

solid ingot
#

bitte nicht pingen

ruby sparrow
#

sry

#

kann man Emojis für die Bots verwenden zb: DB_arrowblue wenn er bot nicht auf server ist?

misty narwhal
#

kann mir einer helfen bei mir wird nicht angezeigt das der bot streamt

misty narwhal
#

So was

#

Aber bei mir geht das net

misty narwhal
ruby sparrow
#

code?

misty narwhal
#
activity = discord.Activity(type=discord.ActivityType.streaming, name="Chill_Fabo", url="https://twitch.tv/chill_fabo")
status = discord.Status.streaming
ruby sparrow
#

meiste du so

#

@misty narwhal

misty narwhal
#
activity = discord.Activity(type=discord.ActivityType.streaming, name="Amex Studios", url="https://Amex-Studios.com")
status = discord.Status.streaming``` @ruby sparrow
lapis depot
#

mein pip will irgendwie nicht wie im tutorial funzen

#
Fatal error in launcher: Unable to create process using '"C:\Program Files\Python311\python.exe"  "C:\Users\#####\AppData\Roaming\Python\Python311\Scripts\pip.exe" ': Das System kann die angegebene Datei nicht finden.
#

wenn ich jedoch py -3 -m pip benutze funzt es normal

#

(ich habe keine ahnung wie das zeug funzt ich habe den befehl nur von der doku kopiert und das hat funktioniert)

#

bitte ping wenn ihr antwortet

urban glen
ruby sparrow
urban glen
lapis depot
lapis depot
lofty rock
#
import discord
from discord.ext import commands
from discord.commands import Option
import os
import ezcord

intents = discord.Intents.all()
status = discord.Status.idle

bot = ezcord.Bot(
    intents=intents,
    status=status,
    debug_guilds=[]
)

@bot.event
async def on_ready():
    print(f"{bot.user} is online.")

if __name__ == "__main__":
    for filename in os.listdir("cogs"):
        if filename.endswith(".py"):
            bot.load_extension(f"cogs.{filename[:-3]}")

bot.run("token")

kann mir jemand sagen was man ändern muss damit es klappt?

Traceback (most recent call last):
  File "c:\Users\skills\Downloads\ticket-bot-main (1)\ticket-bot-main\main.py", line 5, in <module>
    import ezcord
  File "C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\ezcord\__init__.py", line 7, in <module>
    from .bot import *
  File "C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\ezcord\bot.py", line 12, in <module>
    from dotenv import load_dotenv
ImportError: cannot import name 'load_dotenv' from 'dotenv' (C:\Users\skills\AppData\Roaming\Python\Python311\site-packages\dotenv\__init__.py)```
misty narwhal
#

du hast kein Dotenv und ezcord

#

mach pip install Ezcord pip install Python-dotenv

lofty rock
#

Und ivh hab beides

misty narwhal
#

Für .env

lofty rock
misty narwhal
#

dann weg IDK

lofty rock
solid ingot
#

deinstallier ezcord und alles was mit dotenv zu tun hat

#

dann installier ezcord

#

wenn es immer noch nicht klappt danach schick deine pip freeze liste

opal chasm
#

weiß jemand zufällig wie ich eine private nachricht an den User schicken kann wenn er auf den server joint?

tough thicket
#
Ignoring exception in modal <TicketSystem.Views.MainTicketView.Modal object at 0x000001C29FE24D10>:
Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
    await value.callback(interaction)
  File "c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\MainTicketView.py", line 105, in callback
    await interaction.followup.edit_original_message(content=f"Ticket successfully created in {new_ticket_channel.mention}!", message_id=msg.id)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Webhook' object has no attribute 'edit_original_message'
#

AttributeError: 'Webhook' object has no attribute 'edit_original_response'
hatte es mal so versucht, aber bringt irgendwie nichts.

#

habe da aber noch nh frage, kann man die pinn message von discord selbst auch direkt automatisch löschen lassen?

tough thicket
# tough thicket

Laut den docs ist das ja einfach edit_message, versuche das so nochmal

urban glen
#

Und nicht einfach nur edit Message Ding da

tough thicket
#

aber ist doch ein followup oder?

cursive moss
tough thicket
# cursive moss nein du musst wenn du die mesage editieren wills nur so machen: "interaction.ed...

würde klappen, aber bekomme folgenden hinweis, welchen ich angwendet habe:

c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\MainTicketView.py:109: DeprecationWarning: Interaction.edit_original_message is deprecated since version 2.2, consider using Interaction.edit_original_response instead.
  await interaction.edit_original_message(content=f"Ticket successfully created in {new_ticket_channel.mention}!")
urban glen
cursive moss
urban glen
#

sag ich ja

#

in seinem code stehts aber mit message

cursive moss
#

achso er macht das mit webhook?

tough thicket
#

alles gut, habs geändert und klappt nun. danke euch

cursive moss
#

meiste hilfe hat @urban glen gemacht

urban glen
lapis depot
native inlet
lofty rock
#

Moin wie macht man das ein button immer klappt auch nach n bot restart?

lapis depot
old ore
#

ich persönlich würde dir das on_interaction event empfehlen da kannst du alle callbacks in eine datei packen

old ore
# lofty rock wie mach ich das event?

in einem cog:


class Cog(commands.Cog):
  def __init__(self,bot):

    self.bot = bot


  @commands.Cog.listener()
  async def on_interaction(self, interaction: discord.Interaction)

     if interaction.custom_id == "abc123":
       await interaction.response.defer()

tough thicket
#
Ignoring exception in view <CloseDropdown timeout=900.0 children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Select a reason for closing the ticket.' min_values=1 max_values=1 options=[<SelectOption label='Finished :white_check_mark:' value='finished' description='- When the ticket is ready, select this.' emoji=None default=False>, <SelectOption label='User has left the server :name_badge:' value='left' description='- If the user has left the server, select this.' emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
  File "C:\Users\Max\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 426, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Max\PycharmProjects\Vysion\TicketSystem\Views\CloseDropdownMenu.py", line 65, in select_callback
    client = interaction.user.client
             ^^^^^^^^^^^^^^^^
AttributeError: 'Select' object has no attribute 'user'
#

interaction.client funktioniert ebenso nicht

old ore
#

was möchtest du denn genau mit dem client machen

#

der interacttion.client ist im grunde genommen nocht anderes als self.bot

old ore
tough thicket
old ore
#

interaction.client ist dann der bot wieso willst du den bot fetchen? ich vermute mal du willst interaction.user fetchen. Also den der intteragiertt hat?

tough thicket
#

ich glaube aber, dass es an dem transcript mit dem chat_exporter liegt.

old ore
lofty rock
tough thicket
#
# Erstellen des Transcripts
            transcript = await chat_exporter.export(
                interaction.channel,
                limit=100000,
                bot=client,
                tz_info="Europe/Berlin"
            )

            file = discord.File(
                io.BytesIO(transcript.encode()),
                filename="transcript.html"
            )

            await interaction.channel.delete()

            msg = await log.send(file=file, delete_after=2)
            link = await chat_exporter.link(msg)


            logg = discord.Embed(
                title='🔒 - Ticket has been closed',
                description=f'Creator: `{user.name}`\nReason: `Finished ✅`\n- [Transcript]({link})',
                color=discord.Colour.embed_background(),
            )
            logg.set_footer(text=f'Ticket was closed by {member.name}', icon_url=member.display_avatar.url)

            await log.send(embed=logg)

Kann es sein, dass ich an der Reihenfolge etwas falsch mache?

urban glen
#

Du löscht die Datei ja wieder

#

Die Logs werden aber auf discord gehostet quasi

tough thicket
#

Bei meiner anderen Funktion klappt es aber mit dem löschen

urban glen
#

Keks bot Hosted das auf seiner Website

#

So mache ich das auch

#

Ist natürlich am besten aber komplizierter und du brauchst nh Website

ruby sparrow
#

Kann man das irgendwie machen, wenn man die Rolle über den Befehl angibt, dann kann man sie über den Button übertragen lassen kann man das ?

urban glen
#

Kannst du nicht ein select menu mit rollen machen oder sowas

urban glen
#

Programmierst du in Word?pog

tough thicket
urban glen
#

Wenn du die Datei aber löscht dann gibt es das Transkript nirgendwo mehr

tough thicket
urban glen
#

Also kann das nicht funktionieren

tough thicket
#

warte

tough thicket
# urban glen ?

also hier, das ist mein anderer command, wo ich es auch so gemacht habe und es funktioniert dort.
bei meinem jetzigen, wo ich das mit dem ticket system mache funktioniert es nicht

ruby sparrow
urban glen
#

achso also einfach verify?

#

naja was soll man da noch über einen command angeben?

ruby sparrow
#

timo weiss du was kann das sein ?

urban glen
#

funktioniert es denn so?

ruby sparrow
#

ja

urban glen
#

achso und du willst wissen was das macht?

#

zum beispiel habe ich in meinem view order die ganzen dateien mit klassen und so und im init kann ich dann aus jeder datei alle klassen importieren, dadurch kann ich dann nur durch den ordner views alle klassen aus diesen unterdatein importieren

old ore
urban glen
#

aber auch wenn ich selber etwas in init definiere kann es direkt über diesen ordnernamen importiert werden

#

und nicht from checks.init import is_staff oder so

old ore
urban glen
#

jaja ist mir schon klar was das ist aber was hat das mit dem thema zu tun

old ore
urban glen
#

achso ja genau

#

dafür ist es ja bei mir auch

ruby sparrow
#

nikos kannst du mir helfen @limpid wolf

#

wegen die eine sache wieder

limpid wolf
ruby sparrow
#

ionos

#

wieder

ruby sparrow
#

kann wer helfen

native inlet
#

Willst du auf die seite?

ruby sparrow
#

Ich habe es erstellt, aber es funktioniert nicht

#

@native inlet

lucid furnace
lofty rock
tough thicket
#

Habe nen neuen PC und weiß nicht mehr, ob man hierfür auch Git installieren muss

#

Laut Video geht’s ja ohne

tough thicket
tawdry leaf
#

hm ich habe es installiert aber ob man es braucht versuche es einf mal ohne 😛

tough thicket
#

okay, werde ich

ruby sparrow
#

weiss einer warum geht es nicht

native plume
ruby sparrow
#

Ja

old ore
#

hey leute ich habe das problem das wenn ich meinen neuen bot auf meinem server starte daser nach ein paar stunden ohne etwas zu machen viel leistung zieht ich habe schon nach while True loops geschaut und diese gefixxt aber es ändert sich wenig/nichts. hat da wer noch tipptt

tough thicket
tough thicket
misty narwhal
#
"C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\Scripts\python.exe" "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py" 
[COG] Loaded 1 cog
Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 786, in _load_from_module_spec
    setup(self)
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
    bot.add_cog(setup(bot))
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
    bot.add_cog(setup(bot))
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
    bot.add_cog(setup(bot))
  [Previous line repeated 993 more times]
RecursionError: maximum recursion depth exceeded

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py", line 19, in <module>
    Bot.load_cogs(subdirectories=True)
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\ezcord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\vison\Desktop\Amex Bot Öffentlich\.venv\lib\site-packages\discord\cog.py", line 791, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.alle.setup' raised an error: RecursionError: maximum recursion depth exceeded

Process finished with exit code 1```
#

??

tough thicket
# cursive moss was genau?

also ich möchte, dass in einen kanal ein log embed gesendet wird, in welchem man auf das transcript klicken kann. die file aber möchte ich nicht in dem kanal haben, sondern erst die file senden, und dann erst das embed

#

wenn ich das transcript dann aber öffne, sieht es so aus:

cursive moss
#

du musst das transscript auf jeden fall in einen channel senden lassen sonnst kann er keinen link machen

tough thicket
cursive moss
#

das geht nicht

#

die file muss vorhanden sein, da der aus dem message link von dem transscript einen link für Google macht

tough thicket
#

dort wird die file danach auch direkt gelöscht aus dem discord kanal

cursive moss
#

wo lässt du es löschen?

tough thicket
cursive moss
#

da wo er es auch löscht

tough thicket
#

und die file ist ja auch nur 1 Sekunde im Kanal zu sehen, siehe hier bei dem Video

tough thicket
cursive moss
#

wo löscht er es?

tough thicket
#

und das möchte ich auch bei meinem ticket system machen

#

aber es klappt nicht

cursive moss
#

ah da

tough thicket
cursive moss
#

du hast delete after = 1

#

mach mal delete after = 3

tough thicket
#

alles klar, versuche das mal bei dem ticket system

cursive moss
tough thicket
#

also bei meinem anderem command klappt es halt auch mit delete after = 1

tough thicket
cursive moss
#

Ok

tough thicket
# cursive moss Ok

oder eben eher an der erstellung des transcripts, möchte, wenn der kanal gelöscht wird, den ganzen kanal transcripten

   # Erstellen des Transcripts
            transcript = await chat_exporter.export(
                interaction.channel,
                limit=100000,
                bot=client,
                tz_info="Europe/Berlin"
            )
#

weil bei dem anderen klappt es ja auch mit delete_after=1

tough thicket
# cursive moss

so ja, aber versuch's mal so:
einfach nur ein embed mit dem link und ohne, dass die file noch in dem log channel ist

misty narwhal
#

kann mir einer helfen ?

tough thicket
misty narwhal
tough thicket
misty narwhal
#

if name == "main":
Bot.load_cogs(subdirectories=True)
Bot.run(os.getenv("Mein Token"))

tough thicket
#
# Laden der Cogs + Logging
if __name__ == "__main__":
    for subdir in ["alle"]:
        cog_path = os.path.join("cogs", subdir)
        for filename in os.listdir(cog_path):
            if filename.endswith(".py"):
                full_path = f"cogs.{subdir}.{filename[:-3]}"
                bot.load_extension(full_path)
                print(f"{full_path} geladen ✅")

versuchs mal so

#

@misty narwhal

misty narwhal
#

Danke Test es Jetzt

tough thicket
misty narwhal
#

"C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\Scripts\python.exe" "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py"
Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 786, in _load_from_module_spec
setup(self)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\cogs\alle\setup.py", line 22, in setup
Bot.add_cog(setup(Bot))
[Previous line repeated 994 more times]
RecursionError: maximum recursion depth exceeded

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\Users\vison\Desktop\Amex Bot Öffentlich\main.py", line 21, in <module>
Bot.load_extension(full_path)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\vison\Desktop\Amex Bot Öffentlich.venv\lib\site-packages\discord\cog.py", line 791, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.alle.setup' raised an error: RecursionError: maximum recursion depth exceeded

Process finished with exit code 1

misty narwhal
#

Soll ich dir die setup.py schicken ??

tough thicket
misty narwhal
#
import discord
from discord.ext import commands
from discord.commands import slash_command
import ezcord


class Base(commands.Cog):
    def __init__(self, bot: discord.Bot):
        self.bot = bot

    @slash_command(description=f"Here You are gonna Get The setup From AS › Bot ")
    async def hello(self, ctx: discord.ApplicationContext):
        await ctx.respond(
            embed = discord.Embed(),
            title="Setup",
            description=Dash.amex-studios.com or use /setuptool,
            color=discord.Color.Blue()
        )


def setup(Bot: ezcord.Bot):
    Bot.add_cog(setup(Bot))```
tough thicket
#

heißt:

misty narwhal
#

Bot.add_cog(Base(Bot))

#

??

tough thicket
misty narwhal
#

Danke

#

Benutz du Vsc ist vsc besser al pycharm ??

tough thicket
#

Bleib einfach bei PyCharm, vor allem hast du ja auch noch die Professional Version

misty narwhal
#

Ich Programmiere auch Mit js und websiten

tough thicket
misty narwhal
misty narwhal
tough thicket
#

habe halt vsc weil ich hier und da auch mal was anderes teste und deswegen

misty narwhal
#

ja lerne grade Lua Go und Java

tough thicket
#

aber in beiden kannst du discord bots machen SmileDog

misty narwhal
#

JAJA Java Mc plugins machen und Bots coden HAHHA

#
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects```
misty narwhal
#
C:\Users\vison\AppData\Local\Microsoft\WindowsApps\python3.10.exe: can't open file 'c:\\Users\\vison\\OneDrive\\Desktop\\Amex Studios\\AS  Bot\\main.py': [Errno 2] No such file or directory
PS C:\Users\vison\OneDrive\Desktop\Amex Studios\AS › Bot> ```
#

??????

tough thicket
misty narwhal
#
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects``` @urban glen
ruby sparrow
cursive moss
tough thicket
#

file wird im kanal gelöscht und du hast dann nur den link

tough thicket
#

😄

cursive moss
#

ich lasse das mit dem channel is praktisch

tough thicket
ruby sparrow
#

Kann wer helfen?

ruby sparrow
#

meine Domain wird nicht aktiviert

silk gulch
#

@solid ingot wie hast Du das in deinem, Dashboard gemacht, dass angezeigt wird, ob der Bot sich auf dem Server befindet oder nicht?
Ich habe versucht, dass in ner for Schleife über die Discord-API abzufragen, aber das dauert dann ja ewig mit den einzelnen Abfragen für jeden Server.

urban glen
#

Kannst du nicht die Id vom Server mit bot.get_Guild benutzen und dann hast du halt entweder den Guild oder None

#

Dadurch weißt du’s ja

silk gulch
solid ingot
urban glen
#

Wie soll denn das ohne bot funktionieren?

tawdry leaf
#

einf die videos schauen oder den code ansehen dann weißt es 😄

tawdry leaf
urban glen
#

Ja natürlich aber wenn er wissen will ob der bot auf dem Server ist

#

Dann brauch er schon nen bot?

tawdry leaf
odd kiteBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

Code auf Github ► https://github.com/tibue99/tutorial-dashboard/tree/851db04fa96b76a9270ce6594fbe852cfd9b030c
Discord Dev Portal ► https://discord.com/developers/applications

Danke an Nikos für die Unterstützung beim coden und an Pascal für das Thumbnail ❤️
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Hey...

▶ Play video
tawdry leaf
urban glen
tawdry leaf
#

ja dann geht es wohl logischerweise nd?

urban glen
#

Das versuche ich ja zu sagen😭

tawdry leaf
#

ja aber verstehe eh nd was er dann abfragt wenn er den bot ja nd benutzt 😅

urban glen
#

🤷‍♂️

tawdry leaf
#

fragt er bei jeden ob die bot id in den server members ist 🤔

tawdry leaf
silk gulch
tawdry leaf
silk gulch
fierce dove
#

@tawdry leaf @tawdry leaf talk

solid ingot
fierce dove
#

srry timo

old ore
#

Hey leute habt ihr ein paar methoden so grundlegend um weniger cpu auf eurem server zu beanspruchen

urban glen
#

Hab ich nicht

#

Eigentlich sollte da Nix jetzt so viel machen

slow cosmos
#

problem ist nach einiger zeit immer RAM

old ore
#

@solid ingot hast du dazu vlt. eine idee?

solid ingot
#

der erste schritt ist herauszufinden was viel ram verbraucht

old ore
solid ingot
#

achso dann cpu meinte ich

old ore
old ore
solid ingot
#

du solltest natürlich nur die intents anmachen, die dein bot braucht

#

sonst kann es viele gründe dafür geben, schau einfach mal welches deiner systeme am meistens verbaucht

lofty rock
#

ich mach immer intents.all

#

Moin gibt es eine API mit der man checken kann ob eine Vanity frei ist?

lofty rock
tawdry leaf
#

also eben mit dem vanity

tawdry leaf
lofty rock
opaque blade
#

Moinoo, kann mir wer evtl. helfen?

Error:

[ERROR] Error in event on_member_update 
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.10/site-packages/discord/client.py", line 399, in _run_event
    await coro(*args, **kwargs)
TypeError: Welcome.on_member_update() missing 1 required positional argument: 'after'

Code:

    @bot.event
    async def on_member_update(member, before, after):
        if before.premium_since is None and after.premium_since is not None:
            embed = discord.Embed(
                title=f"Vielen Dank für deinen Boost, {after.mention} 🚀",
                description="> Danke, dass du den Server geboostet hast! Damit unterstützt du uns sehr! ❤️\n"
                            "> Du erhältst damit Zugang zu exklusiven Channel und eine neue Rolle. Viel Spaß damit! 🥳\n",
                color=COLOR_RANDOM(),
                timestamp=discord.utils.utcnow())
            embed.set_thumbnail(url=after.avatar.url)
            embed.set_footer(text="Keesus's Zentrale 🚀", icon_url="https://cdn.discordapp.com/attachments/1176981686827896964/1181701861787578451/SERVERICON.png")
            channel = bot.get_channel(WELCOMECHANNEL)

        if channel is not None:
            await channel.send(embed=embed)
urban glen
#

es gibt keine "member"

urban glen
odd kiteBOT
urban glen
#

siehe hier

opaque blade
#

oooh danke

#

ist mir gar nicht aufgefallen oops

urban glen
#

Ich brauch mal hilfe unzwar hab ich nh db_manager datei die alle methoden zur kommunikation mit der datenbank macht und auf jeden fall würde ich gerne einen 2. bot benutzen weil ich den auf einem anderen server benutzen möchte mit anderem branding aber ich möchte nicht alles copy pasten. Kann ich das irgendwie verknüpfen ohne es so redundant doppelt zu haben?

solid ingot
#

du kannst wenn du eine zweite main datei im selben directory erstellt mit dem zweiten bot ganz normal auf die datei zugreifen

urban glen
solid ingot
#

ja das sollte gehen

solid ingot
# lofty rock warum?

spätestens wenn dein bot verifiziert ist darfst du nur noch die benötigsten intents nutzen. und wenn dein bot keine messages lesen muss kann man dadurch evtl auch leistung sparen, das weiß ich aber nicht genau

lofty rock
#

Als ob ich alle intents kenne

#

:p

solid ingot
#

es gibt 3 so schwer ist das nicht

lofty rock
#

Hat jemand einen deutschen python vollkurs? (Youtube)

solid ingot
lofty rock
solid ingot
#

dort müsstest du sie ja auch alle einzeln angeschaltet haben wenn du immer .all nutzt

urban glen
solid ingot
solid ingot
lofty rock
tawdry leaf
fierce dove
slow cosmos
#

Weiß wer wie man ein pycord event erstellen kann was jeden Tag um 20 Uhr aufgerufen wird? Also nicht ale 24h wie man das mit asyncio machen könnte sondern wirklich so das man einstellen kann wann das passieren soll

solid ingot
#

@slow cosmos

slow cosmos
#

Oha danke

#

Schaue ich mir später mal an

urban glen
#

Du kannst discord.ext.tasks benutzen

old ore
solid ingot
#

du kannst zum beispiel nur ein system laden und schauen wie viel es verbraucht

old ore
solid ingot
#

doch, gerade mit cogs geht es am besten, weil du einfach einzlene cogs laden kannst

slow cosmos
#

Wie kann mab bei ctx.respond 3 embeds in einer nachricht senden

solid ingot
#

embeds=[embed1, embed2, embed3]

slow cosmos
#

ah das s hat mir bei embeds gefehlt danke

slow cosmos
#

Wie kann man in python cogs eine slash command group machen. In der main.py habe ich aktuell die command group definiert, wenn ich die jetzt aber in verschiedenen anderen pycord cog files nutzen will bekomme ich den Error:
discord.errors.ExtensionFailed: Extension 'cogs.welcome_messages.setup_welcomemessages' raised an error: NameError: name 'welcome_messages' is not defined

slow cosmos
native plume
#

Das anstatt @slash_command

slow cosmos
#

oköö danke

native plume
empty plaza
#

Kann man in pycord embeds hex farben benutzen?

slow cosmos
empty plaza
#

danke

slow cosmos
urban glen
#

und weil eine group als ein command gilt kansnt du den gleichen command nicht 2 mal erstellen

native inlet
urban glen
#

ja python wandelt es dann in int um automatisch

#

aber du kannst halt nicht diesen hex code in ein Embed übergeben zum Beispiel

ruby sparrow
#

ja

urban glen
#

wie hatte man nochma einen Typing Animation gemacht (bei slash command) und danach die nachricht dann halt kam ?

ruby sparrow
#

was meiste du#

#

kann man auch ein Tempchannel mit db machen ?

urban glen
#

man macht den Slash Command
und da, wo eig. die nachricht geschickt wird kommt anstatt 'sending command' 'Bot is thinking...'

#

dafür gabs einen bestimmten code aber weiß ned mehr wie der hieß

solid ingot
#

ctx.defer()

ruby sparrow
#

wie kann ich machen das er commad nicht an gezeig wurd

vernal rampart
ruby sparrow
vernal rampart
ruby sparrow
#

danke

#

meiste du so?

novel ore
ruby sparrow
#

ja

#

es geht aber danke