#Allgemeine Hilfe

1 messages · Page 64 of 1

old ore
#

So also ich hab jetzt geschaut und habe gemerkt das folgendes passiert:

  1. Nach dem Start vom bot ist er normal so bei 0,30%-0,60%
  2. Sobald man beginnt Nachrichten zu schreiben beginnt die Leistung nach oben zu gehen d.h nach ca 40msgs ca auf 2%
    Ich habe ein on_message Event in meinem bot dieses wird benötigt für Systeme wie anti link, anti ping, usw.
  3. Jetzt ist meine Vermutung das nach einiger Zeit der bot einfach viel zu viel Leistung dadurch verbraucht. Und meine frage ist jetzt gibt es eine möglichkeit das zu beheben oder gibt es andere Events die dafür besser sind
solid ingot
#

am event an sich liegt es wahrscheinlich nicht, sondern eher daran was du in diesem event machst

novel ore
#

Du könntest im on_message event erstmal abfragen ob die msg auf einer guild oder in den dms ist und wenn du dms nicht brauchst direkt mal return machen das selbe bei den kanälen du nimmst dir alle kanäle und wenn die nachricht nicht dort ist direkt return damit da nichts verbraucht wird

old ore
old ore
solid ingot
#

du kannst es mir hier zukommen lassen

novel ore
#
        if msg.channel.type == discord.ChannelType.private:
            return

Das geht auch bisschen leichter xD
Einfach

if not msg.guild:
  return
empty plaza
#

Jo ich habe eine Frage wieso geht das autocomplte nur teil weiße?´

#

ist es besser in Slashcommands discord.ApplicationContext nutzen?

tawdry leaf
tawdry leaf
urban glen
#

Nimm einfach vs Code joeswag

empty plaza
#

Ich benutz auch vsc aber so i mean wofür hab ich pycharm pro ist halt nicht wirklich bad aber auch irgendwo schon

tawdry leaf
empty plaza
#

ik

graceful fiber
#

Hat jemand Erfahrung mit C# in .NET Desktop Umgebungen? So in die Richtung Windows Forms?
Also frage erstmal bevor ich das hier genauer erkläre 😅

tawdry leaf
#

Hm hat jemand schon mal gefragt glaube nd

lofty rock
graceful fiber
graceful fiber
lofty rock
#

als "Exploit" genannt

graceful fiber
old ore
novel ore
unkempt karma
#

await interaction.respond("")

#

nicht ins @discord.ui.button.... rein

restive herald
#

jmd ne idee warum im error nen anderer code angezeigt wird? und wie man das beheben kann xd

solid ingot
#

war der code vorher irgendwann so wie im error?

#

check mal ob der bot mehrmals läuft

restive herald
#

thx

raven lotus
#

Ich habe eine Frage:
Wie kann man ein Select Menü bei einem Bot restart nochmal benutzen?

odd kiteBOT
ruby sparrow
#

@raven lotus

ruby sparrow
raven lotus
#

Danke!

ruby sparrow
#

bitte

#

wie kann ich nochmal bei embed custom emojis benutzen?

last depot
#

So einfach mit den Namen und der Id

#

Und einfach einfügen

ruby sparrow
last depot
#

Du darfst das nicht in in `` diesen Zeichen machen dann geht es nicht, das ist klar.

#

@ruby sparrow

ruby sparrow
#

hat sich schon geklärt

last depot
urban glen
#

Ich habe immer das Problem dass mein bot nach ein paar Stunden nicht mehr antwortet, der läuft auf nem Server und da läuft auch noch alles aber CPU usage ist bei 0% und der war bei discord sogar offline, ein Error im Terminal gibts aber nicht das ist total komisch

solid ingot
#

hm schwierig, das kann viele Gründe haben. vlt wird der bot durch irgendwas geblockt, bei mir war das zB Mal weil die Datenbank etwas nicht verarbeiten konnte.
Bau evtl Mal ein paar Logs ein um herauszufinden, was der Auslöser sein könnte.

urban glen
#

Hm logs schwierig, mache da sonst immer nur Print irgendwo hin haha aber da weis ich garnicht wo ich anfangen sollte

solid ingot
#

wo hostest du den bot?

urban glen
#

SparkedHost

#

Ich könnte ja mal probieren den auf meinem pc zu hosten für nh Weile

solid ingot
#

ja genau, probier Mal aus den bot woanders zu hosten, um zu schauen ob es am hoster liegt oder am bot

urban glen
#

🫡

#

Von Channel.edit() nur mit der category bekomme ich jetzt auch einen TimeoutError

#

Das ist alles ziemlich komisch in letzter Zeit

strange juniper
#

Glühbirnen-polier-Frage des Tages:

Wenn wir diese Struktur als Rückgabewert einer Methode haben:

((2,), (5,)) # kann beliebig viele tuples mit ganzen zahlen enthalten

Der Rückgabewert aber auch None sein kann,

wie gibt man das beim Definieren der Parameter richtig an?

def method_name(*arg *kwargs) -> tuple | None 

scheint mir unvollständig bzw. zu simpel.

solid ingot
#

wenn du magst kannst du noch mit eckickn klammern hinter dem tupel schreiben, welche Werte innerhalb von tupel sind

urban glen
ruby sparrow
#

Was brauche ich sonst noch für ein öffentliches Ticketsystem? in db ( was muss alles in die db sein )

urban glen
#

Was auch immer du brauchst, kannst ja auch später was hinzufügen

ruby sparrow
urban glen
#

Wie was musst du eintragen?

#

'tickets': {
'id': 'INT NOT NULL PRIMARY KEY AUTO_INCREMENT',
'channel_id': 'BIGINT',
'category_id': 'BIGINT',
'guild_id': 'BIGINT NOT NULL',
'created_at': 'DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP',
'owner_id': 'BIGINT NOT NULL',
'subject': 'TEXT NOT NULL',
'allow_afk_close': 'BOOLEAN NOT NULL DEFAULT TRUE',
'closed': 'BOOLEAN DEFAULT FALSE',
'close_reason': 'TEXT',
'transcript': 'TEXT'
},

#

Das hier hab ich zum Beispiel

ruby sparrow
#
async def setup(self):
            await self.execute(
            """CREATE TABLE IF NOT EXISTS Ticket(
            GuildID INTEGER PRIMARY KEY,
            Category INTEGER DEFAULT 0,
            Role INTEGER DEFAULT 0,
            dropdown INTEGER DEFAULT 0,
            owner_id INTEGER PRIMARY KEY
            )"""
        )```
#

pass so?

#

die kann ich die Category an zeigen lassen ?

urban glen
ruby sparrow
#

Ich meinte wie kann man das über sein eigene bot Anzeige wie heißt das

raven lotus
ruby sparrow
#
[ERROR] Error while executing /ticketv2 setup 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped 
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke 
    await self.callback(self.cog, ctx, **kwargs)
  File "d:\Projects\cloud-bot\cogs\ticketv2.py", line 45, in setup
    await ctx.respond("test", View=ticket())
                                   ^^^^^^^^
  File "d:\Projects\cloud-bot\cogs\ticketv2.py", line 59, in __init__
    super().__init__(
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\littxlecord\components.py", line 130, in __init__
    super().__init__(*args, **kwargs)
TypeError: View.__init__() got an unexpected keyword argument 'min_values'```
#
@ticketv2.command(description="Erstellen Sie Ihr Ticketsystem!")
    async def setup(self, ctx, kategorie: discord.CategoryChannel, ticket_channel: discord.TextChannel, log_channel: discord.TextChannel, geschlossene_tickets: discord.CategoryChannel):
        await ctx.respond("test", View=ticket())



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


class ticket(View):
    def __init__(self):
        super().__init__(timeout=None)


    def __init__(self):
        super().__init__(
            min_values=1,
            max_values=1,
            placeholder="Triff eine Auswahl",
            options=options,
        )

    async def callback(self, interaction):
        await interaction.response.send_message(f"Du hast {self.values[0]} gewählt")```
tawdry leaf
#

👀

#

wieso 2 mal

def __init__(self):
        super().__init__(timeout=None)```
tawdry leaf
urban glen
#

Deine Werte sollten in eine selectmenu rein und nicht in die View

urban glen
#

await asyncio.sleep(5) davor?

urban glen
#

Wie bekomme ich das Interaktion fehlgeschlagen weg

vernal rampart
urban glen
#

Ja antworten, falls das nach dem restart passiert musst du es persistent machen

#

ok

#

wie bekomme ich sowas im Profil?

#

also dieses App hinzufügen

urban glen
#

Danke

novel ore
#

Wie konnte man nochmal den ersten Buchstarben des Wortes automatisch großschreiben lassen?

urban glen
#

Für das erste Wort. Für jedes Wort im Satz .title()

silk gulch
#

Level 142 bei 112 Nachrichten? Muss das so?

#

Wofür bezahle ich den Scheißhaufen namens Vodafone überhaupt, wenn nie das Internet funktioniert??

silk gulch
lofty rock
silk gulch
lofty rock
silk gulch
tawdry leaf
hot thunder
#

Hey, ist es irgendwie möglich mit meinem Bot @everyone zu pingen, ohne das User einen Ping bekommen?

#

Ungefähr so wie dieser Bot es gemacht hat

tawdry leaf
#

wenn du die permissions ihm wegnimmst

hot thunder
#

Also der Bot in dem Bild hat Administrator und hat auch niemanden gepingt

tawdry leaf
#

das ausmachen

urban glen
#

Bringt dir davon was?

hot thunder
#

Das zweite könnte maybe funktionieren, ich schaue mir das mal an

raven lotus
#

Aber der Bot darf keine Administrator haben

tawdry leaf
#

bei den linken schon

hot thunder
#

Also das linke hat funktioniert, danke mc

urban glen
#

Was haste da übergeben? None?

hot thunder
#
allowed_mentions=discord.AllowedMentions.none()
urban glen
thick haven
#

Ich habe mal eine Frage,Ich habe viele buttons und nach einiger zeit gehen die nciht muss man die nachladen? oder waran liegt das

solid ingot
#

du müsstest den timeout ändern

thick haven
#

timeout None oder wie

#

Weil so habe ich das geamcht

        for group in button_groups:
            groups += 1
            views += int((len(group)))
            view = discord.ui.View(timeout=None)
            for button in group:
                view.add_item(button)```
jaunty jasper
#

Wie kann man z.b. in einem Embed einen Slashcommand "pingen" ?

novel ore
solid ingot
novel ore
#

ja ansonsten musst du es manuell machen also </command name:command id>

urban glen
opal chasm
#

weiß jemand wie ich bei einem embed ein button hinzufügen kann?

urban glen
#

Das muss zur gesamten Nachricht hinzugefügt werden

urban glen
#

Funktioniert mit views

opal chasm
#

okay ich guck mal danke

opal chasm
ruby sparrow
#

hat wer ein gut commad was man nach machen kann

urban glen
#

Ein was??

ruby sparrow
urban glen
#

Ein gut Command was man machen kann

#

Das sagt überhaupt nix aus

ruby sparrow
#
Traceback (most recent call last):
  File "d:\Projects\cloud-bot\main.py", line 49, in <module>
    bot.load_cogs("cogs", subdirectories=True)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\littxlecord\bot.py", line 315, in load_cogs
    self.load_extension(cog)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\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.report' raised an error: RuntimeError: no running event loo```
#
import discord
from discord.commands import slash_command, Option
import ezcord

class Report(ezcord.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.owner_id = 817435791079768105

    @slash_command(
        description="Send a DM owner report about the bot!"
    )
    async def report(self, ctx, reason: Option(str, description="Describe your problem in more detail and where the error lies")):
        owner_user = await self.bot.fetch_user(self.owner_id)

        embed = discord.Embed(
            title=f"Report from {ctx.author.display_name}",
            description=reason,
            color=discord.Color.red()
        )

        dm_channel = await owner_user.create_dm()
        await dm_channel.send(embed=embed)

        await ctx.respond("Your report has been sent. Thank you, it may take a maximum of a day to receive an answer!", ephemeral=True)

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




class Report(discord.ui.View):
    def __init__(self, user_id, **kwargs):
        super().__init__(timeout=None)
        self.user_id = user_id

    @discord.ui.button(label="Yes", style=discord.ButtonStyle.success, emoji="✅", custom_id="yes")
    async def yes_button_callback(self, button, interaction):
        user = await self.bot.fetch_user(self.user_id)

        await user.send("Vielen Dank für deine Unterstützung bei der Fehlerbehebung!")

void creek
#

Wie kann man ein embeds machen mit command

ruby sparrow
#

@void creek

void creek
#

Aber mit ein command

ruby sparrow
#

so was oder

void creek
#

Ich möchte ja das der bot ein command hat und das er embeds erstellen mit dem command

#

Ne

#

Das Mann so macht /creat embed | Neuigkeiten | chat

#

Und dann den text

ruby sparrow
#

meinst du Modal?

void creek
#

Ne

#

Egal

ruby sparrow
void creek
#

Achso okay

#
import discord
from discord.ext import commands
from discord.commands import slash_command


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

    @slash_command()
    async def modal(self, ctx):
        modal = TutorialModal(title="Erstelle ein Embed")
        await ctx.send_modal(modal)

    @slash_command()
    async def button_modal(self, ctx):
        await ctx.respond("Hey", view=TutorialView())


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


class TutorialModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Embed Titel",
                placeholder="Placeholder"
            ),
            discord.ui.InputText(
                label="Embed Beschreibung",
                placeholder="Placeholder",
                style=discord.InputTextStyle.long
            ),
            *args,
            **kwargs
        )

    async def callback(self, interaction):
        embed = discord.Embed(
            title=self.children[0].value,
            description=self.children[1].value,
            color=discord.Color.green()
        )
        await interaction.response.send_message(embed=embed)


class TutorialView(discord.ui.View):
    @discord.ui.button(label="Klicke hier")
    async def button_callback(self, button, interaction):
        await interaction.response.send_modal(TutorialModal(title="Erstelle ein Embed"))
#

Wie kann man das in embeds machen

ruby sparrow
#

das oder

void creek
#

Ja

ruby sparrow
#

/modal

void creek
#

Und das er dass in ein embed schickt

ruby sparrow
#

/modal

void creek
#

@ruby sparrow das der command nur ich benutze kann

ruby sparrow
void creek
#

Ja

#

Warte ich schicke bild

ruby sparrow
#

ok

void creek
#

Jeder kann ihn benutzen

#

Aber ich möchte das ich ihn nur benutze

ruby sparrow
#

jerzt /modal auf dein server

void creek
ruby sparrow
#

was ist dein errro

void creek
#

Habe kein aber ich möchte das ich ihn nur nutzen kann

ruby sparrow
#

denn mach dem commmad nur auf owner

void creek
#

Und wie mache ich das

#

Und so sieht der aus

ruby sparrow
#

mit py if ctx.author.id == dein id :

void creek
#

Okay

ruby sparrow
#

Na ja, unter Async

urban glen
void creek
#

Und wie kann ich das machen das ich ein Channel auswählen da wo das gesendet wird

urban glen
#

Geht nicht

tawdry leaf
#
async def select_callback(self, select, interaction):
        if "Python" in select.values:
            labels = [option.label for option in select.options]
            if "Keks" not in labels:
                select.append_option(keks)
            else:
                select.disabled = True

            await interaction.response.edit_message(view=self)
        else:
            s = ""
            for auswahl in select.values:
                s += f"- {auswahl}\n"

            await interaction.response.send_message(f"Du hast folgendes ausgewählt:\n{s}")```
Wenn ich den code ausführe kommt immer interaction has responded before
urban glen
#

So hab ich das

#

Weil ich Channel Auswahl wollte und auch in der Description Channel pingen und so

void creek
#

Ja das möchte ich auch

#

@urban glen

urban glen
#

Okay?

void creek
#

Wie Code ich das

urban glen
#

Mach doch erstmal nen Command

#

Da kannste z.B. Titel eingeben und damit wird dann ein embed erstellt

#

Das sollte ja kein Ding sein oder

void creek
#

Ja aber ich kann noch nicht so gut coden

#

Bin Anfänger

urban glen
#

Dann schau dir timos Tutorials an

#

Dauert ein bisschen aber die Zeit musst du dir nehmen

void creek
#

Ein command kann ich ja auch

urban glen
void creek
#

Ne das nicht

urban glen
#

Was hast du denn dann für einen Command?

void creek
#

Ein Slash command

urban glen
#

Zeig mal den Code dafür

void creek
#

Ich meinte das ich ein erstelle kann

urban glen
#

Dann mach doch erstmal

#

Du musst ja irgendwo anfangen nh

void creek
urban glen
#

Im Namen darf kein Leerzeichen sein

void creek
#

Ok

#

Habe ich gemacht

slow cosmos
urban glen
#

Und den Parameter die man dann in discord eingeben kann

void creek
#

Ich weiß aber nicht was wie man Parameter coden kann

urban glen
void creek
urban glen
#

So wird das nicht gehen

void creek
#

Hà wie Dann?

#

Ach egal dann benutzen ich scnx

urban glen
#

Was das

void creek
#

Ein Website die den bit coden aber du das nicht mit bekommst

#

Und du hast Panels die du einrichten kannst

urban glen
#

Würd mir stinken

tawdry leaf
#

deswegen stinkt es so

#

Kann jemand mir sagen wie man den Bot owner im help embed anzeigen kann bei mir kommt ein error oder None immer 😐

urban glen
#

info = await bot.application_info()

#

info.owner

#

Das müsstest du dann sein glaub ich

slow cosmos
#

Wie kann man in ezcord cog so einen event listener machen in pycord geht das ja mit
@commands.Cog.listener()

novel ore
#

kannst du immernoch so machen

urban glen
#

ezcord ist eine Erweiterung, das ändert oder entfernt keine Funktionalität von pycord

slow cosmos
#

Okay danke! war kurz verwundert warum ich error bekommen haben hatte aber nur gebutterfingert bei was anderem

tawdry leaf
slow cosmos
#

Wie kann man in pycord eine kategorie über eine id bekommen

#

das man dadrin einen channel erstellen kann etc,

solid ingot
#

eine Kategorie zählt sozusagen auch als Channel, deswegen kannst du dieselbe Methode

urban glen
slow cosmos
#

okay danke hatte das etwas komplizierter mit discord.utils.get gemacht

solid ingot
#

so geht's auch 😊

tawdry leaf
urban glen
#
last_message = channel.last_message

messages = await channel.history(limit=1).flatten()

last_message ist None, messages[0] ist die letzte Nachricht im Channel aber ich will den api Call nicht machen müssen, warum geht das 1. nicht?

#

Ah naja falls jemand das selbe Problem hat, ich werde jetzt fetch_message benutzen

urban glen
#

last_message = await anext((message async for message in channel.history(limit=1)), None) das benutze ich jetzt, anxet ist seit 3.10 built in. Ich glaub aber nicht dass sonst jemand auch so ein Problem hat peeposhrug

slow cosmos
#

Weiß wer wie man in pycord so ein Forum Post erstellen kann

urban glen
#

Guild attribute

#

Ach du meinst nicht Forum Channel sondern Forum Post nh

slow cosmos
#

wue das hier

urban glen
#

Glaub das ist es

slow cosmos
#

Ich probiere das mal später aus

#

danke

ruby sparrow
#

wie kann ich die beide Buttons nebeneinander machen?

ruby sparrow
#

[ERROR] Error in event on ready 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "d:\Projects\cloud-bot\cogs\report.py", line 15, in on_ready
    self.bot.add_view(reportView())
                      ^^^^^^^^^^^^
TypeError: reportView.__init__() missing 1 required positional argument: 'user_id'```
#
@commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(reportView())```
#
class ReportView(discord.ui.View):
    def __init__(self, user_id):
        super().__init__(timeout=None)
        self.user_id = user_id

    async def send_confirmation(self, confirmation_message):
        user = await self.bot.fetch_user(self.user_id)
        await user.send(confirmation_message)

    @discord.ui.button(label="Yes", style=discord.ButtonStyle.primary, emoji="✔", custom_id="yes", row=2)
    async def button_callback1(self, button, interaction):
        await self.send_confirmation("Your error has been confirmed. Please join the Discord server for the bug role: ")
        await interaction.response.send_message("Confirmation sent to the user.", ephemeral=True)

    @discord.ui.button(label="No", style=discord.ButtonStyle.primary, emoji="❌", custom_id="no", row=2)
    async def button_callback2(self, button, interaction):
        await self.send_confirmation("The bot owner didn't confirm it, which means it's not a bot bug, but a bug on the Discord server or wherever Discord is located and there's nothing we can do about it. Have fun!🥰")
        await interaction.response.send_message("Confirmation sent to the user.", ephemeral=True)```
twin slate
#

Du musst die userid da angeben beim self.bot.add_view(reportView(123456789012345678))
Ich bin mir nicht sicher ob da ein ein self benötigt wird teste es aus

urban glen
#

Außerdem Fehlercode hier reinknallen ohne Kommentar bringt keinem was

silk gulch
#

Wüsste wer, ob es bei Bots wirklich schwer wird, wavelink zu verwenden?
Gibt viele die sagen, dass der Bot dann nicht verifiziert werden kann, weil Discord wohl gegen wavelink ist.
Oder wüsste wer eine andere Library für mein Music-Feature?

viscid lake
silk gulch
empty plaza
#

Hallo ich habe eine frage wie kann ich bei SQLite aus 2 verscheiden Tabellen die Ergebnisse raus holen?

#

bitte hilft mir jemand auf lock

#

ihr wisst aber nur auf lock

solid ingot
#

du musst nur den tabellen namen bei deinem select statement ändern

empty plaza
#

Ja aber das ist ja nur eine Tabelle

#

ich möchte 2

solid ingot
#

das musst du genauer beschreiben

empty plaza
#

Ich habe 2 Tabellen eine für guilds und channel ids das andere für embeds und ich brauche halt beide aus der Datenbank

slow cosmos
empty plaza
slow cosmos
lofty rock
#

sollte ich irgenwas noch einen haken geben?

vernal rampart
solid ingot
#

je nachdem was du möchtest kannst du noch den path und die associations aktivieren

vernal rampart
lofty rock
vernal rampart
solid ingot
lofty rock
unkempt karma
#

wie kann ich im cog einen user getten?

ruby sparrow
#

Was meinst du

unkempt karma
ruby sparrow
#

warte ich send dir ein tb

unkempt karma
ruby sparrow
#

meiste du das

unkempt karma
#

habs glaub selber

ruby sparrow
old ore
#

wieso bekomm ich aufeinmal den error

solid ingot
#

kann mehrere gründe haben, zb wenn discord down ist

old ore
solid ingot
old ore
solid ingot
#

dann liegt es an deinem server

old ore
empty plaza
#

Ich habe eine frage

#

Was ist besser zu benutzen discord.Interaction oder discord.ApplicationContext?

viscid lake
empty plaza
#

mir wurde gesagt es wäre besser discord.ApplicationContext zu nutzen verstehe aber den unterschied nd

solid ingot
#

das kommt darauf an welche discord library du benutzt. aussuchen kannst du dir das nicht

solid ingot
#

dann discord.ApplicationContext

empty plaza
strange juniper
urban glen
#

Ähhh?

#

Infinity ping?

slow cosmos
#

Habe das hier gerade im KeksBot gesehen und wollte Fragen wie man in Python so ein Diagram Bild zurück geben kann.

Und bei den Nachrichten wird da einfach bei jeder neuen nachricht in einer datenbank 1 hinzuaddiert?

solid ingot
#

diagramme kannst du zb mit matplotlib machen

slow cosmos
#

ah danke!

void creek
#

Ich habe ein Error

@bot.slash_command(name='serverinfo', description="Zeigt Infos über den Server")
async def server_info(ctx):
    server = ctx.guild
    embed = discord.Embed(title="Server Information", color=0x3498db)
    embed.add_field(name="Server Name", value=server.name, inline=False)
    embed.add_field(name="Server ID", value=server.id, inline=False)
    embed.add_field(name="Mitgliederanzahl", value=server.member_count, inline=False)
    embed.add_field(name="Server erstellt am", value=server.created_at.strftime("%Y-%m-%d %H:%M:%S"), inline=False)
    embed.set_thumbnail(url=server.display_avatar.url)
    await ctx.send(embed=embed)
urban glen
#

Da steht alles

#

Guild hat keinen display avatar

twilit anvil
#

@void creek Server hat keinen Atrribut der display_avatar heißt

urban glen
#

Das hast du dir ausgedacht. Wenn dann ein icon

twilit anvil
#

Du musst server.icon machen

#

Bruh

tawdry leaf
urban glen
#

Sei nicht so faul

tawdry leaf
solid ingot
tawdry leaf
void creek
#

@twilit anvil

vivid sky
strange juniper
native plume
urban glen
#

Ist es möglich beim ezcord ready event werte untereinander aufzulisten?

#

Möchte einfach die guild Namen von dem bot azeigen

solid ingot
#

das geht aktuell nicht denke ich, die tabelle wird zeilenweise generiert

urban glen
#

Ja wenn ich \n joine ist die in der Mitte geteilt

solid ingot
#

wenn du beim log style was anderes als eine tabelle einstellst geht es vlt, aber dann ist halt die tabelle nicht mehr da

#

das wäre aktuell die einzige möglichkeit denke ich

urban glen
#

Hm unschön haha

#

Bin mir aber sicher das hier schonmal gesehen zu haben

urban glen
#

passt alles, danke dir

void creek
blissful ember
#

Ich code ihn discord.py kann ich mir trotzdem Timos videos anschauen und ohne probleme machen?

odd kiteBOT
#

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

Links aus diesem Video
Discord.py Code ► https://github.com/tibue99/dpy-tutorial
Pycord Code ► https://github.com/tibue99/tutorial-bot

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Inhalt 📚
Heute vergleichen wir Discord Bot Libraries für Python: Pycord und Discord.py. Beide Libraries haben Vor- und Nachteile, und d...

▶ Play video
empty plaza
#

Hallo ich habe eine frage wie viele zeichen darf ein discord Button haben also von der länge

empty plaza
#

bester man danke hätte ich so nd gefunden

tawdry leaf
urban glen
#

Steht auch im pycord source

empty plaza
#

aha

tough thicket
#

Wie kann ich am besten die Stats eines Users der letzten zwei Wochen auf dem Server abrufen? Also wenn ich die Voice time und nachrichtenanzahl dem User zurückgeben möchte

urban glen
#

das geht denke ich nicht automatisch über pycord

blissful ember
#

Was sind so Standard was in eine Main Datei kommt wenn man mit Cogs arbeitet?

odd kiteBOT
#

Hier findest du das Main-Datei Template 🍕

blissful ember
solid ingot
#

wenn du mit der maus drübergehst siehst du immer wieso es unterstrichen wird

blissful ember
#

Bedeutet?

solid ingot
#

ein doppelpunkt wird erwartet

empty plaza
#

Timo ich glaub hab ich schon mal gefragt aber vergessen was würdest du mehr empfehlen Pycharm oder VSC

blissful ember
#

Wie?

empty plaza
solid ingot
empty plaza
#

und normal auch?

solid ingot
#

ja

blissful ember
empty plaza
#

oder bei anderen sachen

blissful ember
#

Versteh ich grad ne

empty plaza
#

kannst du mir deine mein zeigen?

blissful ember
#

Das hab ich copy

empty plaza
#

hast du die Einrückung überprüft?

#

copy and paste ist in python arsch

blissful ember
#

Also ich hab das selbst geschrieben aber vom Video halt

#

Und ja

empty plaza
#

Kannst du mir ein bild von DEINEM code schicken

blissful ember
empty plaza
#

wie viele == hast du

#
if __name__ == '__main__':
#

versuch das

blissful ember
#

Jetzt geht’s danke, siehst oben das Intens.members ? Was ist daran falsch?

empty plaza
#

lösch das und benutzt discord.Intents.all()

ruby sparrow
#

hast du die intens an gemacht ?

blissful ember
blissful ember
empty plaza
#

geht´s?

blissful ember
#

Ja

ruby sparrow
#

ok

empty plaza
ruby sparrow
#

viel spaß bei coden :D

empty plaza
ruby sparrow
#

haha

empty plaza
#

meinst du Silvio?

ruby sparrow
#

ja

tough thicket
ruby sparrow
#

ne

empty plaza
#

ist das nd egal wie voll die ist?

blissful ember
blissful ember
#

Ich hab ein Problem..

odd kiteBOT
#

Hier findest du das EzCord Bot Template 🚨

slow cosmos
#

was macht da dieses add_help_command

ruby sparrow
#
def setup(bot)
  bot.add_cog(name(bot))``` @blissful ember
blissful ember
#

So einfügen unten oben Mitte?

#

@ruby sparrow

ruby sparrow
#

send mal code

blissful ember
ruby sparrow
#

er eror ist in ein cogs

blissful ember
#

Wait

empty plaza
#

geh in deine status datei

solid ingot
empty plaza
#

und füg unten ```py
def setup(bot)
bot.add_cog(name(bot))

#

name ersetzt du mit deinem class namen

blissful ember
empty plaza
#

sonst ist dein server arsch

ruby sparrow
#

ja

#

@blissful ember geht es

blissful ember
empty plaza
#

nein schau

#

du musst aus der class rausgehen also damit du ganz am rand bist da fügst du das so ein

blissful ember
tough thicket
# ruby sparrow ne

Heißt ich muss bei jedem on Message Event wenn ein User einen neue Nachricht schreibt, diese in die dB einfügen?

empty plaza
#

ein doppelpunkt bei (bot):

blissful ember
#

Danke

blissful ember
#

Grün ?

twin slate
empty plaza
#

ist pycharm glaube normal

twin slate
empty plaza
#

ne ist richtig so

#

siehst du ist bei mir auch so

twin slate
#

Pycjarm zeigt das dann aber manchmal als “fehler” an

#

Ich weiß das das auch so funktioniert

blissful ember
#

Oke danke

ruby sparrow
#
import asyncio
import discord
import littxlecord
from dotenv import load_dotenv
import os


load_dotenv()

intents = discord.Intents.all()
activity = discord.Activity(type=discord.ActivityType.watching, name="Coding Keks")
status = discord.Status.dnd

bot = littxlecord.Bot(
    command_prefix="!",
    intents=intents,
    activity=activity,
    status=status
)

async def main():
    bot.load_cogs("cogs")
    await bot.start(os.getenv("TOKEN"))

if __name__ == "__main__":
    asyncio.run(main())
blissful ember
#

Kurze Frage was muss immer in einen Cog das er funktioniert @ruby sparrow

ruby sparrow
#

was miste du

#

@blissful ember

blissful ember
#

@ruby sparrow

ruby sparrow
#
if __name__ == "__main__":
    for filename in os.listdir("cogs"):
        if filename.endswith(".py"):
            bot.load_extension(f"cogs.{filename[:-3]}")
``` wenn du das hast denn macht er code alleine
blissful ember
#

Aber ich muss dich immer class, setup und add Cog machen?

ruby sparrow
#

ja

blissful ember
#

Nur das ?

ruby sparrow
#

guck dir noch mal das video an

blissful ember
#

Jo, wie Speicher ich meine Sachen?

tough thicket
#

Und wie ist das mit der Voice time?

blissful ember
ruby sparrow
twin slate
# tough thicket Bei jedem User dann?

wenn du wissen willst wie viele nachrichten insgesamt auf dem server geschrieben wurden musst du bei jedem user bei jeder nachricht +1 rechnen. wei vioce time würde ich glaube ich eine @task.loop(seconds=60) machen und da dann immer +1 minute in der datenbank rechnen bei jedem user wieder

blissful ember
twin slate
#

mach ins on_vioce_state_change oder wie das event heißt eine while schleife wo du am anfang asynciosleep(60) machst und dann +1 minute rechnest und dann wird die schleife neu gestrtet

#

ich hoffe das ist verständlöich genug

silk gulch
#

Wie bekomme ich denn den aktuellen Timestamp, dass ich ihn so: <t:1705489798.731993:R>
benutzen kann?

#

Weil so funktioniert das iwie nicht

blissful ember
#

Warum f rot?

tawdry leaf
silk gulch
tawdry leaf
silk gulch
silk gulch
blissful ember
#

Neuer Fehler 😭

ruby sparrow
#

Bro...

tawdry leaf
tawdry leaf
ruby sparrow
silk gulch
tawdry leaf
blissful ember
tawdry leaf
blissful ember
silk gulch
tawdry leaf
ruby sparrow
tawdry leaf
tawdry leaf
ruby sparrow
silk gulch
tawdry leaf
blissful ember
#

Hab’s Danke

silk gulch
odd kiteBOT
#

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

Links aus diesem Video
SQLite Datetime Docs ► https://www.sqlite.org/lang_datefunc.html

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

Discord Developer Portal ► https://discord.com/developers/applications

▬▬▬▬▬▬▬▬▬▬▬...

▶ Play video
blissful ember
silk gulch
blissful ember
#
async def info(
        ctx,
        alter:Option (int, "Das Alter", min_value=1, max_value=99),
        user:Option(discord.Member, "Gib einen User an", default=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()
    )

    time = discord.utils.format_dt(user.created_at, "R")

    embed.add_field(name="Account erstellt", value=time, inline=False)
    embed.add_field(name="ID", value=user.id)
    embed.add_field(name="Alter", value=alter)

    embed.set_thumbnail(url=ctx.author.display_avatar.url)
    embed.set_footer(text="Das ist ein Footer")

    await ctx.respond(embed=embed)```
silk gulch
silk gulch
blissful ember
silk gulch
# blissful ember Ich mein das alle in eine Stelle ein oder in einzelnen?
from discord.commands import slash_command

@slash_command(name="userinfo", description="Zeige Infos über einen User")
async def info(
        ctx,
        alter:Option (int, "Das Alter", min_value=1, max_value=99),
        user:Option(discord.Member, "Gib einen User an", default=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()
    )

    time = discord.utils.format_dt(user.created_at, "R")

    embed.add_field(name="Account erstellt", value=time, inline=False)
    embed.add_field(name="ID", value=user.id)
    embed.add_field(name="Alter", value=alter)

    embed.set_thumbnail(url=ctx.author.display_avatar.url)
    embed.set_footer(text="Das ist ein Footer")

    await ctx.respond(embed=embed)```

So..
silk gulch
tawdry leaf
silk gulch
# blissful ember

Danne ersetze oben mal

from discord.commands import slash_command```

zu

from discord.commands import slash_command, Option```

#

Ist auch py-cord installiert?

blissful ember
#

Ja

silk gulch
tawdry leaf
#

from discord import slash_command, Option

#

ist es bei py-cord

silk gulch
#

Habs doch auch so? xD

tawdry leaf
#

knapp daneben

silk gulch
#

Aber es klappt ja auch so, wie ich es gesendet habe.

blissful ember
silk gulch
#

py-cord wirklich installed?

blissful ember
#

JA

ruby sparrow
#

@blissful ember mach mal pip freeze

silk gulch
#

Im Terminal

blissful ember
ruby sparrow
#

kannst du bitte pc kommen

blissful ember
#

Ne

#

Können wir kurz Talk mit Bildschrim aufnahme?

silk gulch
#

Du müsstest schon mit uns reden.

blissful ember
ruby sparrow
#

@blissful ember guck in sein live

blissful ember
#

Leak alles

#

Leckt

#

Kann nicht, wenn über Pc drin und kann über Handy dann geht der Pc Raus

#

HAHAHAHA

#

Wait kurz @ruby sparrow @silk gulch

#
from discord.commands import slash_command,Option

class status(commands.Cog):
   def __init__(self, bot):
    self.bot = bot       
def setup(bot):
     bot.add_cog(status(bot))
     
@slash_command(name="userinfo", description="Zeige Infos über einen User")
async def info(
        ctx,
        alter:Option (int, "Das Alter", min_value=1, max_value=99),
        user:Option(discord.Member, "Gib einen User an", default=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()
    )

    time = discord.utils.format_dt(user.created_at, "R")

    embed.add_field(name="Account erstellt", value=time, inline=False)
    embed.add_field(name="ID", value=user.id)
    embed.add_field(name="Alter", value=alter)

    embed.set_thumbnail(url=ctx.author.display_avatar.url)
    embed.set_footer(text="Das ist ein Footer")

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

mein code

#

Ich seh dein Stream nd @silk gulch

ruby sparrow
#
from discord.ext import commands
from discord.commands import slash_command,Option

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

     
    @slash_command(name="userinfo", description="Zeige Infos über einen User")
    async def info(
            ctx,
            alter:Option (int, "Das Alter", min_value=1, max_value=99),
            user:Option(discord.Member, "Gib einen User an", default=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()
        )

        time = discord.utils.format_dt(user.created_at, "R")

        embed.add_field(name="Account erstellt", value=time, inline=False)
        embed.add_field(name="ID", value=user.id)
        embed.add_field(name="Alter", value=alter)

        embed.set_thumbnail(url=ctx.author.display_avatar.url)
        embed.set_footer(text="Das ist ein Footer")

        await ctx.respond(embed=embed)


def setup(bot):
     bot.add_cog(status(bot))```
silk gulch
#

color=discord.Color.random(seed=)

blissful ember
#
import os
from dotenv import load_dotenv

intents = discord.Intents.all()

status = discord.Status.dnd
activity = discord.Activity(type=discord.ActivityType.playing, name="Pycharm")
bot = discord.Bot(intents=intents, status=status, activity=activity)


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

# class status(commands.Cog):
#     def __init__(self, bot):
#         self.bot = bot       # Das muss in jeden Cog 
# def setup(bot):
#     bot.add_cog(status(bot))
if __name__ == "__main__":
    for f in os.listdir("cogs"):
        if f.endswith(".py"):
            bot.load_extension(f"cogs.{f[:-3]}")


load_dotenv()
bot.run(os.getenv("TOKEN"))```
#

Muss weg, aber der Command ging immernoch nicht

#

@silk gulch

silk gulch
blissful ember
#

Und du hast mir den Code geschickt

strange juniper
# empty plaza siehst du ist bei mir auch so

das wird nicht als fehler im sinne von code fehler markiert, sondern als stil violation.

Ans Ende jeder Datei gehört ein Zeilenumbruch, offizielle Begründung ist, dass vermieden/erkannt wird wenn code aus einer Datei kopiert wird und der markierte Bereich nicht bis ans Ende ging oder sowas.

Wie dem auch sei, Stil Richtlinien haben schon ihren Sinn! Selbst wenn man über Einzelne Punkte davon heftig debattieren kann.
Es ist einfacher und sehr viel angenehmer viel Code von vielen Devs zu lesen, wurde dieser mit den gleichen Rahmenbedingungen gebaut.

  • Leerzeile ans Ende jeder Datei
  • Für neue Klassen, Methoden und Funktionen 2 Leerzeilen
  • Teile innerhalb einer Klasse/Methode/Funktion, die andere Aufgabenbereiche bedienen, mit einem Zeilenumbruch trennen.

Machts einfach angenehmer + Pycharm ist happy.

strange juniper
empty plaza
#

WOHA mir wurde buch geschrieben

silk gulch
#

@blissful ember einmal Pingen reicht aber auch. Musst nicht jedes Mal auf die Nachricht antworten.

tough thicket
blissful ember
empty plaza
empty plaza
#

was willst du den machen?

blissful ember
empty plaza
#
embed = discord.Embed(
  color=discord.Color.from_rgb(RGBCODE),
  title="DEIN TEXT",
  description="dein text"
)
blissful ember
blissful ember
novel ore
#

Was muss man alles in der -pre-commit-config ändern wenn man von der Version 3.11 auf 3.12 wächselt

tough thicket
tawdry leaf
novel ore
silk gulch
solid ingot
solid ingot
twin slate
solid ingot
novel ore
#

und das -plus auch lassen?

solid ingot
#

ja wenn du möchtest

novel ore
solid ingot
#

schreib am besten immer nur dinge in deine config von denen du weißt was sie machen. wenn du dir unsicher bist, schau im repository von dem pre-commit hook nach

novel ore
urban glen
#

Ich hab hier diese Info das irgendein Task zerstört wurde und danach nochmal ezcord Ready Text mit 5000 Ping, jz läuft der Server zwar noch aber der bot ist offline und macht nix

tawdry leaf
#

kannst du maybe des foto am pc machen

lofty rock
#

wieso klappt es nicht wenn ich am Url /select dranhänge?
es klappt nur /select.html

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]```

```html
<a href="select" class="btn py-2 px-4 rounded-full inline-block">Get Started</a>```
silk gulch
#

Ist die Library 'lavaplayer' auch gegen die Nutzungsbedingungen?
Oder nur weil YouTube da integriert ist?

Weil irgendwer hat mal gemeint, dass wavelink gegen die ToS ist.

slow cosmos
#

ei html musst du immer die endung angeben

#

kann ja dein das du eine select.html und select.php datei im ordner hast

#

dann muss dein HTML skript ja wissen was du willst

lofty rock
#

Hier ist auch kein .html

limpid wolf
#

Das ist ja auch nicht nur eine .html Datei. Die nutzen denke ich mal einen Webserver, der dann die Datein zurück gibt auch ohne eine .html erweiterung. Kann dir jetzt nicht sagen was das für ein Webserver ist, da das ganze von GitBook gemanaged wird.

ruby sparrow
#

@silk gulch guck mal dm

lofty rock
#

Bei anderen seiten geht es nur bei der nicht

limpid wolf
#

Ja weil die wahrscheinlich einen Webserver benutzen

ruby sparrow
#

wie kann ich machen wenn man auf den Button drückt dann kommt so ein Modal?

slow cosmos
#

Soweit ich weiß geht das nurmauf Webservern

Lokal brauchst du zB React oder sowas um solche routes erstellen zu können

limpid wolf
#

Also du brauchst dafür halt einen Webserver

lofty rock
#

Komisch

limpid wolf
#

Ne

lofty rock
#

Bei mein anderen code geht es ohne das ich da irgendwas anders hab

lofty rock
limpid wolf
#

Idk was du unter hosten verstehst. Am einfachsten ist ein Webserver wie nginx.

lofty rock
#

Also
Pfadundso/select

#

nur /select.html

#

bei mein anderen code geht es ohne .html

slow cosmos
lofty rock
#

nvm ich nehms zurück - danke für eure Hilfe

blissful ember
#

Hab ich mehrere mal geschaut finde trotzdem mein Fehler nd

strange juniper
blissful ember
#

Codeausschnitt:

from discord.ext import commands
from discord.commands import slash_command,Option

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

     
    @slash_command(name="userinfo", description="Zeige Infos über einen User")
    async def info(
            ctx,
            alter:Option (int, "Das Alter", min_value=1, max_value=99),
            user:Option(discord.Member, "Gib einen User an", default=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()
        )

        time = discord.utils.format_dt(user.created_at, "R")

        embed.add_field(name="Account erstellt", value=time, inline=False)
        embed.add_field(name="ID", value=user.id)
        embed.add_field(name="Alter", value=alter)

        embed.set_thumbnail(url=ctx.author.display_avatar.url)
        embed.set_footer(text="Das ist ein Footer")

        await ctx.respond(embed=embed)


def setup(bot):
     bot.add_cog(status(bot))```

Fehler gibt es keinen. Mein Slash Command wird nicht angezeigt
empty plaza
#

hast du mal versucht discord neu zu laden

blissful ember
#

Wie meinst,

empty plaza
#

drück mal CTRL + R

blissful ember
empty plaza
#

oder STRG

blissful ember
empty plaza
#

falsch eingerückt

#

@slash_command muss unter def nicht self.bot

blissful ember
#

Versteh ich nicht

urban glen
#

nur die ezcord tabelle ist komisch aber das rote ist der ping

empty plaza
#
from discord.ext import commands
from discord.commands import slash_command,Option

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

     
   @slash_command(name="userinfo", description="Zeige Infos über einen User")
   async def info(
            ctx,
            alter:Option (int, "Das Alter", min_value=1, max_value=99),
            user:Option(discord.Member, "Gib einen User an", default=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()
        )

        time = discord.utils.format_dt(user.created_at, "R")

        embed.add_field(name="Account erstellt", value=time, inline=False)
        embed.add_field(name="ID", value=user.id)
        embed.add_field(name="Alter", value=alter)

        embed.set_thumbnail(url=ctx.author.display_avatar.url)
        embed.set_footer(text="Das ist ein Footer")

        await ctx.respond(embed=embed)


def setup(bot):
     bot.add_cog(status(bot))
blissful ember
#

Jetzt ist jz Discord rot

strange juniper
blissful ember
#

Im ganzen Code

strange juniper
#

@slash command sieht in dem bild oben richtig positioniert aus btw

#

hier:

from discord.ext import commands
from discord.commands import slash_command,Option

würde ich auch mal noch ein "import discord" einsetzen.

#

also hinzufügen, nicht etwas anderes ersetzen

#

und nach dem komma vor Option gehört ne leertaste

empty plaza
#

nein

#

import discord

#

er hat nur

from discord.ext import commands
from discord.commands import slash_command,Option
strange juniper
#

aus:

info(
            ctx,
            alter:Option (int, " # ...

mach mal:

info(
            ctx: discord.ApplicationContext,
            alter:Option (int, " # ...

wenn wir schon dabei sind

strange juniper
empty plaza
#

ah übersehen

empty plaza
#

wieso soll er den TypeHint weg machen?

strange juniper
#

die letzte änderung hier hat zwar funktionell keinen unterschied, das type-hinting sorgt aber dafür dass deine IDE (vermute pycharm) dir aut-vervollständigung anbieten kann, wenn du innerhalb der methode schreibst.

Dazu muss ctx halt wie oben gezeigt definiert werden und bei den imports muss "import discord" dabei sein.

empty plaza
strange juniper
#

... ist ein auslassungzeichen 😄

empty plaza
#

ich glaub ich werd blind seid dem ich krank bin

strange juniper
#

alles da soll bleiben wie es ist, nur aus

ctx
soll er

ctx: discord.ApplicationContext 

machen

strange juniper
#

okay gut

blissful ember
#

Jetzt ist ctx rot

#

Mehrere Sachen Hilfe

empty plaza
#

Schick mal bitte ein bild

blissful ember
empty plaza
#

wenn du discord auf deinem pc hast schick es bitte darüber mit WIN + shift + s

strange juniper
#

+1

#

immerhin stimmen die imports schonmal.

Fortschritte! 😄

blissful ember
#

Wo ist Shift?

strange juniper
#

die taste mit der du einzelne buchstaben groß schreibst

empty plaza
#

links an deiner Tastatur

#

unter deiner groß schreibung taste

strange juniper
#

snipet-tool... wurde nach solitär auch zeit das microsoft mal wieder was brauchbares baut nikos

strange juniper
# empty plaza

das nenne ich support! soll keiner sagen er kriegt nix 😄

blissful ember
#

Geht nd komme irgendwo bei Spracherkennung raus

empty plaza
#

oder @blissful ember drück Windows und such nach Snipping Tool

#

und klicke dann auf NEU

#

Halte dann mit deiner mausgedrückt und ziehe es entlang

void creek
#
import discord
from discord.ext import commands
from discord.commands import slash_command


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

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

    @slash_command()
    async def button1(self, ctx):
        await ctx.respond("Klicke hier", view=TutorialView())

    @slash_command()
    async def button2(self, ctx):
        button = TutorialButton("Kekse sind cool")
        view = discord.ui.View()
        view.add_item(button)
        
    
        await ctx.respond("hier klicken", view=view)


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


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

    @discord.ui.button(label="Keks", style=discord.ButtonStyle.primary, emoji="🍪", custom_id="keks", row=2)
    async def button_callback1(self, button, interaction):
        await interaction.response.send_message("Keks", ephemeral=True)

    @discord.ui.button(label="Pizza", style=discord.ButtonStyle.primary, emoji="🍕", custom_id="pizza", row=1)
    async def button_callback2(self, button, interaction):
        button.disabled = True

        # Alle Buttons deaktivieren
        # for child in self.children:
        #     child.disabled = True

        await interaction.response.edit_message(view=self)


class TutorialButton(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("Hey!", ephemeral=True)

Wie kann ich das ihn embed schreiben

empty plaza
#

was meinst du? dem user

blissful ember
empty plaza
#

erstelle dazu ein neues embed

void creek
#

Und rollen Vergeben

empty plaza
#
    color=discord.Color.from_rgb(RGBFARBE),
    title="NAME",
    description="text"
)```
blissful ember
tawdry leaf
tawdry leaf
void creek
#

Aber kann ich auch ohne embed.add_field schreiben

#

Also kann ich nur Titel machen

tawdry leaf
#

Ja kannst du

blissful ember
tawdry leaf
empty plaza
void creek
#

Und wie kann ich das der bot rolle verteilt

tawdry leaf
blissful ember
tawdry leaf
#

empty plaza
empty plaza
#

schreibst du über ctx noch self,

#

dazu hast du noch ein kommer vergessen

#

am ende kommt kein kommer hin bei nach ctx schon

strange juniper
blissful ember
#

Immernoch nicht

empty plaza
#

zeig was du getan hast

blissful ember
empty plaza
empty plaza
void creek
#

Und wie kann ich das der bot rolle verteilt

empty plaza
blissful ember
empty plaza
#

deine einrückung ist auch falsch

tawdry leaf
blissful ember
tawdry leaf
#

ja sollte dann wohl gehen

empty plaza
blissful ember
#

Man sieht den cmd nd

strange juniper
#

kopier bitte mal die zeile user in den parametern als blanken text hier rein. möchte etwas probieren.

#

@blissful ember

strange juniper
#

hat aber nix mit irgend nem problem zu tun! das ist reine neugier!

strange juniper
#

hm?

#

du kannst dich doch auch ohne was zu installieren, einfach über 'n browser in discord einloggen

#

funktioniert das teil eigentlich inzwischen? war abgelenkt

blissful ember
#

Ich versteh nicht?

#

Das hat nix damit zutun

strange juniper
#

schon gut, vergiss den teil. kann ich auch testen, wenn ich das nächste mal selbst am bauen bin

blissful ember
#

Oke mein Problem gibt es immernoch

empty plaza
#

Kannst du bitte ein bild schicken wie ich es dir gesagt habe?

blissful ember
empty plaza
#

ist deine einrückung richtig geh zeile 15 zum doppelpunkt und drück von da enter wenn es wo anders ist was das if ist es falsch

blissful ember
empty plaza
#

@strange juniper bitte kannst du das machen ich muss was für die Schule machen

blissful ember
#

egal, ich geht jz komischer weiße

#

danke trotzdem

empty plaza
#

kkp

strange juniper
#

ah, sehe gerade, ihr habts schon. um so besser

empty plaza
#

@blissful ember ich würde empfehlen die Videos von timo zu schauen weil die sind ja nicht zum spaß da es sollten 80% könntest du solche fehler erkennen und bearbeiten

blissful ember
#

yes

blissful ember
#

@empty plaza

empty plaza
#

in einer liste

blissful ember
#

oke

empty plaza
#

dann wenn ein member joint lässt du diese liste durch gehen

blissful ember
#

msg1, msg2, msg3, so?

#

finde kein beispiel im Netz

empty plaza
#
liste = ["Hi", "Hallo"]
blissful ember
#

und wie verbinde ich das mit dem user.join?

empty plaza
#

ich glaub @strange juniper kann dir da weiter helfen mit listen kenne ich mich NOCH nicht aus sorry für ping

strange juniper
#

hm?

#

was? wo? wer? wie?

blissful ember
#

finde kein beispiel im Netz

strange juniper
#

schaue gleich, gib mir 2 minuten

blissful ember
#

ok

strange juniper
# blissful ember ok

soll der immer die selbe abfolge an verschiedenen welcom nachrichten ausgeben oder jedesmal zufällig eine aus einer sammlung ausgeben?

strange juniper
#

bei den imports:

#

"from random import randint"

#

muss nix installiert werden, hat python schon dabei

#

dann baust du dir.. ja, liste ging auch, aber wozu platz vergeuden..
... du baust dir einen tuple mit verschiedenen nachrichten drinne.

#

erstelle bitte einen und poste ihn hier. beispielnachrichten reichen.

blissful ember
#

kann sowas nicht bin neu im gebiet

empty plaza
#

das machst du einfach oben wo deine imports sind

blissful ember
#

ok

strange juniper
#

imports sind immer alle ganz oben in der datei

#

ein tuple ist ähnlich wie eine liste, man kann ihn nur später nicht mehr verändern, deshalb weiß python genau wieviel speicher dafür reserviert werden muss.. es kennt ja den genauen inhalt.

sieht so aus:

#
variable_name = ("text1", "text2", 5, 1.2, True, set(1,2,3,3,3,5), [], {"key": "value", "key2" : "value2"}) 
#

das nur zur demonstration, man kan veränderbare datentypen innerhalb eines tuples haben und wenn man richtig darauf zugreift diese auch später ändern, aber zurück zum thema...

#

.. was du brauchst ist ein tuple der texte enthält. also sowas:

variable_name = ("text1", "text2", "text3")

natürlich funktioniert ein tuple auch ohne ihn einer variablen zuzuweisen. jedoch kommen neulinge mit der vertrauten struktur meist besser klar.

#

erstelle also einen tuple mit 2-3 begrüßungen.

#

du kannst ihn später noch nach belieben polieren oder erweitern.

#

dann poste ihn hier

strange juniper
# blissful ember ok

wenn etwas unklar ist nur fragen, ich kanns jederzeit vereinfachen oder auf ein detail eingehen

blissful ember
empty plaza
#

Tratos kann man es nicht einfach mit einem array machen? ist doch einfacher

strange juniper
#

Okay in einfacher

strange juniper
#
Willkommensnachrichten = ("Hi", "Hallo", "Hoffe du bringst Bier mit")
#

Hier haben wir 3 verschiedene Willkommensnachrichten in einem Tuple gespeichert.

#

Der aufruf funktioniert wie bei listen auch.

#

Wichtig ist zu wissen, dass man von 0 an zählt @blissful ember

blissful ember
#

Bitte in einem Ping bei den Msg und vllt am Ende in klammern die userzahl schreiben wenn das geht

strange juniper
#

also "Hi" ist der erste Eintrag und wird über den Index "0" aufgerufen.

strange juniper
#

also wenn ein vereinfachtes teil schon läuft und funktioniert

blissful ember
#

oke

#

wollte das nur voher erwähnen

strange juniper
#

Ja, kannst du natürlich genau so speichern wie du auch "hi" speichern kannst. das getippe mache ich jetzt aber nicht 😄

Also zum Aufrufen:

blissful ember
#

😄

strange juniper
blissful ember
strange juniper
#

Oh

#

okay.

Hier nochmal das Beispiel:

Willkommensnachrichten = ("Hi", "Hallo", "Hoffe du bringst Bier mit")

willst du nun auf den ersten Eintrag zugreifen passiert das so:

Willkommensnachrichten[0]

das wäre der Wert "Hi"

#

steht in der Klammer eine 1 wäre es "Hallo" usw.

#

aber achte darauf, dass du in der eckigen klammer nie eine Zahl eingiebst, die es im tuple nicht gibt.

Willkommensnachricht[3] 

würde zu einer Fehlermeldung führen.

#

Die Zahl in der Klammer wird übrigens Index genannt.

#

so weit alles klar?

blissful ember
#

Ne, verstehe nix, vllt weil ich kaputt bin ich lege mich jz hin könnenwir morgen weiter machen?

strange juniper
blissful ember
#

Ja mach ich

urban glen
#

Yo @solid ingot sorry für den Ping aber ich glaub du bist der einzige der nh Idee haben könnte was das sein soll. Nachdem das passiert ist war der bot offline obwohl der Server weiterlief und auch nach dem ezcord Ready kam keiner Fehler oder weiteres. CPU bei 0%. Hab diese Task destroyed noch nie gesehen und auch 5000ms latency ist komisch

solid ingot
#

hm, kann mehrere ursachen haben. wenn das nur einmalig war würd ich mir keine gedanken machen. wenn es mehrmals vorkommt musst du mal im code schauen was das ausgelöst haben könnte

urban glen
#

ist schön öfter so gewesen

#

aber kann mir auch vorstellen dass es am host liegt weil das bei mehreren bots von mir schon so war

solid ingot
#

wenn es bei mehreren bots ist, liegt es wahrscheinlich entweder am hoster oder an einem package

#

kannst ja mal probieren die bots woanders laufen zu lassen dann findest du es ganz einfach raus

urban glen
empty plaza
#

wie kann ich wenn ich @option() benutze das es nicht requried ist?

urban glen
#

required=False

empty plaza
#

Ich habe eine frag nähmlich wieso wird mir das pycharm nicht angezeigt aber bei vsc schon

urban glen
#

was die interaction ist

#

ansonsten liegt es daran dass vscode besser ist

empty plaza
tawdry leaf
empty plaza
ruby sparrow
#

Gibt es eine Möglichkeit, dies zu tun? Wenn Sie den Befehl zu oft als Spam versenden, kommt es beim Bot automatisch zu einer timeout?

blissful ember
#

@strange juniper muss grad lernen kannst aber schon Anfangen bin so in 10 20 Minuten bei dir

#

Falls du Zeit hast?

strange juniper
blissful ember
#

Was ist Ork?

blissful ember
#

@strange juniper

strange juniper
strange juniper
blissful ember
strange juniper
#

Am Anfang war das Wort 😄

#

Worum ging das jetzt noch gleich? Habe so viel gemacht seitdem

blissful ember
#

ja

#

@strange juniper

blissful ember
#

zufällige welcomemsg mit turple oder so

strange juniper
#

ach die kiste! erinnere mich

#

okay, der turple hieß tuple und ist einer der grundlegenden datentypen in python. kannst du die erklärung dazu nochmal lesen und mir bescheid sagen ob die verstanden wurde oder noch fragen dazu sind?

tawdry leaf
#

turple 🤔

#

ein interresantes gespräch 😄

strange juniper
#

Ich hatte sie 2-3 leuten gezeigt, die nicht programmieren um zu sehen obs zu schwierig zu verstehen war, die kamen damit aber ganz gut klar

tawdry leaf
#

Für mehr Python Inhalte schau' dir auch gerne meinen Blog an: https://pymeister.blogspot.com

In diesem Video geht es um den Datentyp Tuple. Tuple sind ähnlich wie Listen, aber haben auch einige Unterschiede zu Listen. Hier lernst du welche Gemeinsamkeiten, Unterschiede und Vorteile/Nachteile Tupel und Listen haben. Weiterhin geht es in diesem V...

▶ Play video
strange juniper
strange juniper
ruby sparrow
#

wie kann ich von user dem banner gekommen

tawdry leaf
native inlet
tawdry leaf
ruby sparrow
#
@credits.command(description="Modify credits on the bot")
    async def setup(self, ctx, *, msg_in):
        await con_log('Y', 'CMMND', f'{ctx.author.name} is modifying Credits with the following args: {msg_in}')

        sanitize_in = msg_in.replace('\\', '').replace("'", "\\'").replace('"', '\\"')

        line = sanitize_in.split(" ")

        if len(line) < 2:
            await ctx.respond("Please provide the Zoo ID and Credits.")
            return

        littxid = line[0]
        credit_value = int(line[1])



        await ctx.respond(f"Success! Modified Credits for {littxid}: {credit_value}")
        print(f"Modified Credits for {littxid}: {credit_value}")

def con_log(*args):
    logging.info(" ".join(map(str, args)))```
#
[ERROR] Error while executing /credits setup 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "d:\Projects\cloud-bot\cogs\credits.py", line 14, in setup
    await con_log('Y', 'CMMND', f'{ctx.author.name} is modifying Credits with the following args: {msg_in}')
TypeError: object NoneType can't be used in 'await' expression
ERROR:littxlecord:Error while executing **/credits setup** ```TypeError: object NoneType can't be used in 'await' expression``` ```
void creek
#
custom_id="verify:btn"

Kann ich da auch die rollen id reinschreiben

solid ingot
#

prinzipiell kannst du als custom ID nehmen, was du möchtest

strange juniper
# ruby sparrow kann wer helfen

Kannst du den Code ausnahmsweise als screen Shot posten? Bin gerade auf mobile und kann nix vergrößern ums im Detail anzusehen

strange juniper
strange juniper
blissful ember
strange juniper
#

Klar. Hast du den Datentyp inzwischen gelernt?

blissful ember
strange juniper
# blissful ember Konnte mir den noch nicht anschauen, aber ich versteh lieber wenn du es mir erkl...

Etwas nicht zu wissen ist okay. Etwas nicht oder nicht direkt zu verstehen ist auch okay. Es gar nicht erst versuchen wollen geht nicht.

Du hast inzwischen zwei selbst geschriebene Erklärungen zu einem an sich simplen Datentyp bekommen. Die Antwort darauf "Verstehe nur Bahnhof". Dann hat dir Lucky ein Timo-Video verlinkt, dass genau diesen Datentyp erklärt.

Also ein bisschen Wille und Einsatz musst du schon mitbringen. Ich bin gerne Bereit dir die Konzepte und Bausteine zu geben, die man für dein custum command braucht. Vorkauen oder einfach bauen werde ich es dir aber nicht.

void creek
#

@solid ingot so sieht es aus aber es kommt ein error

hot thunder
native inlet
void creek
native plume
#

Es muss keine Nummer sein du kannst es auch youtubebutton sein

tough thicket
#

wie kann ich die antwort auch ephemeral danach machen? ich meine, der bot muss lange nachdenken, um meine diagramm-antwort zu generieren.

in der zeit mache ist erstmal await ctx.defer(), doch am ende ist die nachricht für alle sichtbar.

solid ingot
#

await ctx.defer(ephemeral=True)

tough thicket
#

danke dir

outer ibex
#

Hey Ich wollte einen Custom status machen aber es funktoniert nicht so ganz

import os
from dotenv import load_dotenv
import discord
import ezcord

activity = discord.CustomActivity(
    "Ich mag Fortnite :cookie:"
)

intents = discord.Intents.default()


bot = ezcord.Bot(
    intents=intents,
    language="de",
    
    activity=activity,
    )



err_embed = discord.Embed(
    title=":x: Bot Error",
    color=discord.Color.red()
)
err_embed.set_footer(text="Turbo_v2, Dev: sully2664")


ezcord.set_embed_templates(error_embed=err_embed)

embed = discord.Embed(
    title="Hey, ich bin der Turbo Bot ",
    description="Turboo ist ein leistungsstarker Bot, der alles in Ihrem Discord verwaltet. Wie Auto-/Moderations-/Ticket-/Verifizierungssysteme/USW.!!",

    
    color=discord.Color.red()

)
embed.add_field(name=f"General Informations",value= "> :dev: **Developer:** sully2664\n > :Py:**Coding Language:**Python; 3.9.13 \n > :file:**Libary:** py-cord",inline=False)
embed.set_footer(text="Wähle eine Kategorie aus, um mehr zu erfahren!")

bot.add_help_command(style=ezcord.HelpStyle.codeblocks_inline,embed=embed,show_categories=False)

if __name__ == '__main__':
    bot.load_cogs(subdirectories=True)
    load_dotenv()
    bot.run(os.getenv("TOKEN"))```
solid ingot
#

das funktioniert aktuell nur mit dem pycord master branch

outer ibex
#

hab eigenlich die neuste py-cord version

solid ingot
#
pip install git+https://github.com/Pycord-Development/pycord
outer ibex
ruby sparrow
outer ibex
ruby sparrow
#

kannst du mal kurz call

#
[ERROR] Error while executing /welcome_setup 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "d:\Projects\cloud-bot\cogs\admin\willkommen.py", line 35, in welcome_setup
    await db.execute(
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 184, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 129, in _execute
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 102, in run
    result = function()
             ^^^^^^^^^^
sqlite3.ProgrammingError: Error binding parameter 3: type 'Role' is not supported```
#
import discord
import aiosqlite
from discord.commands import slash_command, Option
from discord.ext import commands


class WelcomeCard(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.DB = "welcome.db"

    @commands.Cog.listener()
    async def on_ready(self):
        async with aiosqlite.connect(self.DB) as db:
            await db.execute(
                """CREATE TABLE IF NOT EXISTS welcome (
                    guild_id INTEGER,
                    welcome_channel INTEGER,
                    role_name INTEGER
                )"""
            )

    @slash_command()
    @discord.guild_only()
    async def welcome_setup(
        self, ctx: discord.ApplicationContext, channel: Option(discord.TextChannel), role_name: Option(discord.Role)
    ):
        async with aiosqlite.connect(self.DB) as db:
            cursor = await db.execute(
                "SELECT * FROM welcome WHERE guild_id = ?", (ctx.guild.id,)
            )
            entry = await cursor.fetchone()

            if not entry:
                await db.execute(
                    "INSERT INTO welcome VALUES (?,?,?)", (ctx.guild.id, channel.id, role_name)
                )
            else:
                await db.execute(
                "INSERT INTO welcome VALUES (?,?,?)", (ctx.guild.id, channel.id, role_name)
                )

            await db.commit()
            await ctx.respond(f"✅ Welcome channel set to {channel.mention} and role name set to {role_name}", ephemeral=True)


    @commands.Cog.listener()
    async def on_member_join(self, member: discord.Member, role: discord.role):
        async with aiosqlite.connect(self.DB) as db:
            cursor = await db.execute(
                "SELECT * FROM welcome WHERE guild_id = ?", (member.guild.id,)
            )
            entry = await cursor.fetchone()

            if entry:
                channel_id = entry[1]
                channel = self.bot.get_channel(channel_id)

                if channel:
                    embed = discord.Embed(
                        description=f"Hey {member.mention} und herzlich willkommen auf dem Discord-Server von **{member.guild.name}!**\n\n\n★ Du bist das {member.guild.member_count} Mitglied auf diesem Server!",
                        color=discord.Color.red(),
                    )
                    embed.set_author(
                        icon_url=member.guild.icon.url, name=member.guild.name
                    )
                    embed.set_image(
                        url="https://media.discordapp.net/attachments/1190258623511789603/1192734854073299095/dy1QM5M.png?ex=65aa27e5&is=6597b2e5&hm=480032919b01d512a06c30e4319680ef2f0b2dbbb3af1b4047dc7e5a09fc3957&=&format=webp&quality=lossless&width=1246&height=701"
                    )

                    await channel.send(member.mention, embed=embed)


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

rollen kannst du nicht in die datenbank einfügen, nur IDs

outer ibex
#

danke sehr

outer ibex
ruby sparrow
#

wie kan ich abfragen ob er server schon in db ist

#

wenn ja denn komm er user ein eroor

outer ibex
#

Bekomme Das mit dem Custom Status nicht hin auf Dem hosting server von @high glen

solid ingot
#

du kannst das hier in deine requirements.txt datei tun

py-cord @ git+https://github.com/Pycord-Development/pycord
outer ibex
void creek
#

Die anderen Buttons werden nicht angezeigt

solid ingot
#

jeder button braucht eine callback methode

void creek
#

Wie Code ich das

ruby sparrow
#

@void creek

#
@slash_command()
    @discord.guild_only()
    async def welcome_setup(
        self, ctx: discord.ApplicationContext, channel: Option(discord.TextChannel), role_name: Option(discord.Role)
    ):
        async with aiosqlite.connect(self.DB) as db:
            cursor = await db.execute(
                "SELECT * FROM welcome WHERE guild_id = ?", (ctx.guild.id,)
            )
            entry = await cursor.fetchone()

            if entry:
                raise commands.CommandError("Der Willkommens-Setup wurde bereits für diesen Server durchgeführt.(Schreiben Sie dem littxle_, weil Sie den falschen Kanal oder die falsche Rolle eingegeben haben!)", ephemeral=True )

            await db.execute(
                "INSERT INTO welcome VALUES (?,?,?)", (ctx.guild.id, channel.id, role_name.id)
            )

            await db.commit()
            await ctx.respond(f"✅ Willkommenskanal auf {channel.mention} und Rollenname auf {role_name.mention} gesetzt", ephemeral=True)
#
[ERROR] Error while executing /welcome_setup 
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "d:\Projects\cloud-bot\cogs\events\willkommen.py", line 36, in welcome_setup
    raise commands.CommandError("Der Willkommens-Setup wurde bereits für diesen Server durchgeführt.(Schreiben Sie dem littxle_, weil Sie den falschen Kanal oder die falsche Rolle eingegeben haben!)", ephemeral=True )
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: CommandError.__init__() got an unexpected keyword argument 'ephemeral'```
ruby sparrow
void creek
ruby sparrow
#

wenn es so geht denn ja

urban glen
#

Müsste passen ja

#

Also generell lieber default_permissions benutzen dann sehen die Leute den Command garnicht erst aber sollte alles gehen so

outer ibex
ruby sparrow
#

ja

outer ibex
native plume
outer ibex
#

Leute Wie kann man Aus der DB infos raus holen z.b Wie viele Member über einem link gejoined sind?

native plume
#

;

outer ibex
#
Traceback (most recent call last):
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\commands\core.py", line 131, in wrapped
    ret = await coro(arg)
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\commands\core.py", line 1002, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "c:\Users\disco\Desktop\Turbo\cogs\Economy\economy.py", line 64, in daily
    await db.execute(
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\aiosqlite\context.py", line 54, in wrapper
    return Result(method(self, *args, **kwargs))
TypeError: Connection.execute() takes from 2 to 3 positional arguments but 5 were given
#

Wollte es machen wenn man /daily macht das dann im embed die ganzen Münzen angezeigt wird

ruby sparrow
outer ibex
#
Traceback (most recent call last):
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\commands\core.py", line 131, in wrapped
    ret = await coro(arg)
  File "C:\Users\disco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\commands\core.py", line 1002, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "c:\Users\disco\Desktop\Turbo\cogs\Moderation\moderation.py", line 54, in kick
    kick_embed.set_author(name=f"{ctx.guild.name}", icon_url=member.avatar.url)
AttributeError: 'NoneType' object has no attribute 'url'
#

also wenn der server kein bild hat und der user kein icon hat wie kann ich des machen das dann kein error kommt?

#

irgendwie mit none

#

command funktoniert sonnst

native inlet
outer ibex
native inlet
#

Jetzt helf ich nicht mehr.

Ich habe die erste nachricht bereits gesehen, und nur um mich zu Erwähnen, die Nachricht neuzusenden?

outer ibex
#

aber das du nicht mehr helfen willst verstehe ich

lofty rock
#

ich bin mir aber nicht sicher ob es so gehen wird daher ich kein py-cord wirklich kann

outer ibex
#

pycord ist eigenlich so wie python

lofty rock
#

naja probier es mal aus

outer ibex
#

danke

lofty rock
lofty rock
native inlet
outer ibex
#

ich weiß

native inlet
#

Weil dein Satz für mich irgendwie so keinen Sinn ergibt

outer ibex
#

ja alles gut

void creek
#

Warum kriege ich nicht meine rolle

#

@solid ingot sorry für ping

native inlet
outer ibex
blissful ember
#

Frage: Was muss man alles können das man verschiedene Willkommensnachrichten mit Auto Role ?

strange juniper
#

Aber okay, ich versuch eine sinnigere Antwort zu schreiben

#

Datentypen:

  • tuple verstehen wäre ein arger vorteil
  • listen sollten es aber mindestens sein.

Indexing:

  • Ein fancy Wort dafür aus einem datentyp der mehrere inhalte hat einen bestimmten Inhalt auszuwähle

Module:

  • discord (obviously)
  • zumindest so weit um den listener zu bauen und bei eintreffendem event eine Antwort zu senden
  • random
    dort brauchst du grundlegendes verständnis von entweder random-choice(genauen wortlaut müsste ich jetzt in die docs sehen oder randint. eines der beiden solltest du kennen.

Formatierung:

  • F-Strings wären ein arger vorteil, normale strings gehen zwar auch aber.. määäh, schmerzhaft zu benutzen bei sowas.
#

Damit kannst dus dann bauen.

blissful ember
strange juniper
# blissful ember Hast du dazu gute Tutorials?

Naja wir haben dir ja schon ein video zu den tuples gegeben. da ist der datentyp und ich würde vermuten auch das anwählen darin gespeicherter Inhalte drinne. Video dauert ~15 minuten, Nach ansehen und mitmachen (also dabei ausprobieren, nur schauen ist immer blöd beim coden) sind die ersten 2 Punkte schon abgefrühstückt.

#

einen Beispielcode aus Random kann ich dir zeigen, das ist echt easy. Gibt halt erst Sinn wenn du listen oder tuples kannst.

blissful ember
#

gerne

strange juniper
#

pingst mich einfach wenn du die ersten 2 Punkte verstanden hast. ohne tuple oder liste hättest du nix worauf du random anwenden kannst.

void creek
#

@outer ibex

from datetime import datetime
import discord
from discord.commands import slash_command
from discord.ext import commands

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

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

    @slash_command(description="🚫 × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="**Wenn ihr die Rollen haben wollt von Youtube/Twitch dann Klickt unten auf die Knöpfe für die Rollen die ihr haben wollt.**",
            color=discord.Color.green()
        )

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")

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

    @discord.ui.button(
        label="Twitch",
        style=discord.ButtonStyle.blurple,
        custom_id="1184728688898625557"
    )
    async def button_callback1(self, button, interaction):
        await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)
        
    
    @discord.ui.button(
        label="YouTube",
        style=discord.ButtonStyle.red,
        custom_id="1184728825465155665"
    )
    async def button_callback2(self, button, interaction):
        await interaction.response.send_message("Du hast du rolle bekommen", ephemeral=True)
        
        

def setup(bot):
    bot.add_cog(Profile(bot))
outer ibex
#

Du musst jemand die role hinzufügen das geht mit role.add(id)

#

z.b member.role.add(021312323141)

tawdry leaf
void creek
#

Und wo soll ich das hin schreiben?

outer ibex
blissful ember
# strange juniper pingst mich einfach wenn du die ersten 2 Punkte verstanden hast. ohne tuple oder...

Ich hab den Code von früher gefunden: ```import json
import os
import random

import discord
from discord.ext import commands

class Welcome(commands.Cog):
def init(self, bot):
self.bot: commands.Bot = bot
self.file_path = 'data.json'
self.default_data = {
'channel_id': 123,
'messages': [
'Willkommen {member}!',
'{member.mention} ist beigetreten'
]
}

    if not os.path.exists(self.file_path):
        with open(self.file_path, 'w') as f:
            json.dump(self.default_data, f, indent=4)
            self.data = self.default_data
            print(f'Created {self.file_path!r}')
    else:
        with open(self.file_path, 'r') as f:
            self.data = json.load(f)


@commands.Cog.listener()
async def on_member_join(self, member: discord.Member):
    channel_id = self.data['channel_id']
    channel = self.bot.get_channel(channel_id)
    messages = self.data['messages']
    message: str = random.choice(messages)
    message = message.format(member=member)
    await channel.send(message)


@commands.command()
async def test_join(self, ctx):
    """Führt das on_member_join event zum testen aus."""
    self.bot.dispatch('member_join', ctx.author)``` Meiung ?
outer ibex
outer ibex
# void creek <@793887959287857173> ```py from datetime import datetime import discord from d...

Teste mal

from datetime import datetime
import discord
from discord.commands import slash_command
from discord.ext import commands

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

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

    @slash_command(description=":no_entry_sign: × Nur für Admins!")
    @commands.has_permissions(administrator=True)
    async def selfroles(self, ctx, channel: discord.TextChannel):
        await ctx.defer()

        embed = discord.Embed(
            title="**Wenn ihr die Rollen haben wollt von Youtube/Twitch dann Klickt unten auf die Knöpfe für die Rollen die ihr haben wollt.**",
            color=discord.Color.green()
        )

        await channel.send(embed=embed, view=ButtonSelect())
        await ctx.respond(f"Die Rules wurden in {channel.mention} geschickt")



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

    @discord.ui.button(
        label="Twitch",
        style=discord.ButtonStyle.blurple,
        custom_id="1184728688898625557"
    )
    async def button_callback1(self, button, interaction):
 role = message.guild.get_role(123456789)  # hier role ID einfügen       

 await interaction.add_roles(role) 
await interaction.response.send_message("Du hast die Rolle bekommen", ephemeral=True)
        
    
    @discord.ui.button(
        label="YouTube",
        style=discord.ButtonStyle.red,
        custom_id="1184728825465155665"
    )
 role = message.guild.get_role(123456789)  # hier role ID einfügen    

async def button_callback2(self, button, interaction):
await interaction.add_roles(role)        
await interaction.response.send_message("Du hast du rolle bekommen", ephemeral=True)
        
        

def setup(bot):
    bot.add_cog(Profile(bot))
outer ibex
outer ibex
native inlet
native inlet
#

Und wieso message?

outer ibex
strange juniper