#Allgemeine Hilfe

1 messages · Page 2 of 1

urban glen
#

Bei privaten Anbietern ist das was anderes, aber wenn du jetzt online was suchst, wirst du nicht viel finden

thick haven
#

Das du auf meinen dc kommen musst

#

Nope

#

Nichmal Werbung oder so

urban glen
#

Die meisten Leute wollen ja auch Geld im gegenzug, um ihren Server finanzieren zu können

indigo sapphire
#

War nur verwirrt wo

#

Meinst also in deine yt channel

thick haven
#

Naja wer was braucht muss mir schreiben dann klären wir das

indigo sapphire
#

Gerne

#

Naja was die Daten dort angeht gehört dir

#

🤔

thick haven
#

Richtig

indigo sapphire
#

Wirst es nicht entziffern können

urban glen
indigo sapphire
#

Ist alles verschlüsselt

#

😂

thick haven
indigo sapphire
#

Ich werde die Texte selbst verschlüsseln

#

👀

thick haven
#

Also wennde nur ne DB willst kein ding

indigo sapphire
#

Mit Bycribt

indigo sapphire
#

🤔

#

Wie zB kann er ihre DB nutzen

thick haven
#

fickle creek
#

DB = DeutscheBahn

thick haven
#

Xd

fickle creek
indigo sapphire
#

Ich zB mache game DB also mit gaming Daten von anderen Games die kann er genausogut nutzen

#

Und muss nicht selber alles Sammel

thick haven
#

Ja teroetisch schon praktisch ne

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @thick haven, du bist jetzt Level 6 🎉

thick haven
#

Aber wie gesagt wer was free will einfach anschreiben

indigo sapphire
#

👍

urban glen
indigo sapphire
#

Ist egal

#

Ist nicht wichtig wenn doch ist alles verschlüsselt

#

🤷‍♂️

#

@urban glen

#

Ich hab Glücklicherweise gelernt mit Bycribt verschlüsseln

urban glen
#

Als Admin hat man Zugriff auf alle Dateien

indigo sapphire
#

😂

urban glen
#

Wäre halt das ganze Projekt auf dem server, dann hätte er den src und dann ja

#

Aber ist ja jz egal. Ist schon nett, dass Partymann so etwas anbietet

indigo sapphire
#

Jup

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @indigo sapphire, du bist jetzt Level 16 🎉

urban glen
#

gg

indigo sapphire
#

Ich finde nur wenn er auch den DB nutzt ist eigentlich eine gute deal

indigo sapphire
urban glen
#

Ich guck dann mal weiter mein Tutorial, noch einen schönen Abend

urban glen
#

Halt auf yt

indigo sapphire
#

Bei wem?

urban glen
#

Basics auf x2 Geschwindigkeit

indigo sapphire
#

Naja wenn du ein Code brauchst um Sachen zu verschlüsseln sag mir Bescheid

urban glen
#

Joa alles gut

urban glen
# indigo sapphire Bei wem?

Danach muss ich halt noch das guckenhttps://www.youtube.com/watch?v=HGOBQPFzWKo

Take your Python skills to the next level with this intermediate Python course. First, you will get a review of basic concepts such as lists, strings, and dictionaries, but with an emphasis on some lesser known capabilities. Then, you will learn more advanced topics such as threading, multiprocessing, context managers, generators, and more.

💻 C...

▶ Play video
indigo sapphire
#

Ich empfehle dir Morpheus

#

Und florian dallwig

urban glen
#

Weiß jemand, wie ich das hier änder, weil der speichert meine txt files nicht als normale txt files

#

Ich glaube das wird zu einer requirements file

#

Ich kann auch einfach nur eine datei erstellen, ohne Endung, da klappt alles, nur mich würde es interessieren ob das normal ist oder net.

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @craggy yew, du bist jetzt Level 10 🎉

Du hast <@&1024276907136663562> erhalten!

urban glen
#

Less go

solid ingot
viscid lake
#

weiß jemand why das ned geht

solid ingot
#

was ist der fehler?

viscid lake
#

Er schickt einfach nichts

solid ingot
#

dann wird entweder das event nicht ausgelöst oder die if abfrage ist immer falsch

viscid lake
#

immer noch

#

der code ist neu o.O

#

alla du hacker schaust in mein pc

solid ingot
#

was xD

viscid lake
#

asooo

#

verlesen

#

hab "immer noch" gelesen

solid ingot
#

mach dir mal ein print und schau nach ob das die richtigr ID ist

viscid lake
#

print("ID")

#

so?

solid ingot
#

print(thread.parent_id)

viscid lake
#

kannst du call frage von max

solid ingot
#

ja gleich

thick haven
urban glen
#

Bei dem 2. wäre ich vorsichtig Freundchen

thick haven
#

Wieso?

indigo sapphire
#

wie kann man embed edierten wenn es schon gesendet ist

solid ingot
#

hey, schau mal in #1028696005203460146

indigo sapphire
#

puh ist das komplieziert

urban glen
thick haven
#

Lesen kannste a ned oder?

#

Ich habe gesagt reinteoretisch und 2. wa es nicht auf mich sondern in algemeinen gemeint und wer will bitte fifa 23 so nen rotz

indigo sapphire
#

hab eine frage gibt es eine möglichkeit für den db

#

direkt in main anstatt jedes mal eine MySQL= zu machen

#

?

urban glen
#

🙋‍♂️🤦‍♂️

indigo sapphire
#

es geht mir um cogs

indigo sapphire
#

wie speichere ich bilder in mysql

solid ingot
#

ich würde dir eher empfehlen den link oder eine referenz zu speichern

indigo sapphire
solid ingot
#

ja das stimmt, würde ich trotzdem nicht empfehlen

indigo sapphire
#

Hab noch eine frage gibt es eine Möglichkeit pycord und MySQL zusammen in eine cogs?

hab keine lust jedes mal den login zumachen

solid ingot
#

ja

indigo sapphire
#

wie den ?

solid ingot
#

du kannst beides importieren und auch in cogs ganz normale datenbankbefehle ausführen

indigo sapphire
indigo sapphire
#

kommt deine DB/SQL guide noch diese woche lmao

solid ingot
#

da mache ich nur sqlite

indigo sapphire
#

passt schon

indigo sapphire
#

dann kann ich es mir vorstellen

solid ingot
#

was klappt denn bei dir nicht?

indigo sapphire
#

ich kann es mir nicht vorstellen

solid ingot
#

nicht vorstellen, ausprobieren!

indigo sapphire
#

der mysql funktioniert einwandfrei, ich weiss nur nicht wie ich es mit den pycord machen kann

indigo sapphire
#

🤔

solid ingot
#

du hast doch schon den mysql code und den pycord code. das eine kannst du einfach mit dem anderen kombinieren

indigo sapphire
#

hööö

#

👀

#

wie denn???

solid ingot
#

schau dir am besten nochmal an, wie klassen bei python funktionieren

#

um mysql in einem cog zu benutzen, musst du den code ja nur in einer python klasse benutzen

#

dazu findest du bestimmt ein tutorial

indigo sapphire
#

wait ich soll ein guide suchen über mysql mit pycord?

solid ingot
#

nein

indigo sapphire
#

ich versteh bischen das konzept

#

also soll ich eine klasse erstellen mit mysql und pycord bot bridge

solid ingot
#

wieso bridge?

indigo sapphire
#

idk

#
bot = bridge.Bot(
    command_prefix=prefix,
    status=status,
    activity=activity,
    case_insensitive=True,
    owner_id= 650456829712793655,
    debug_guild=[
            1021771684589604904,
            ],
    intents=(Intents.all())
)

# mysql
shirodb = mysql.connector.connect(
#

die beide zusammen tun und danach sollte in cogs gehen?

indigo sapphire
#

ich komme nicht weiter ohne eine vorlage

thick haven
thick haven
indigo sapphire
#

Ty

#

👍

#

Ehren man

#

Hab für die tables so 1-2H Gebraucht

#

😂

indigo sapphire
indigo sapphire
#

Ist es möglich in diese Layout zu Embeden?

#

Oder muss ich es als Bild Embeden?

indigo sapphire
#

Und als empfohlene Teams wäre zirka so embed

#

Oder ist das so nicht möglich?

solid ingot
#

wie meinst du das genau?

#

du kannst in embeds nur bilder einbinden

indigo sapphire
#

ich meine den schwer als text

#

die andere als bild genauso neben einander

#

der button automatisch ignorieren

#

dort sollte ein bild kommen

#

es soll genau so in diese layout sein

#

aslo 6 add_field

solid ingot
#

nein das geht nicht. du müsstest das bild dann mit einer library wie pillow so bearbeiten dass es passt, aber die buttons können nur unterhalb des embeds sein

indigo sapphire
indigo sapphire
solid ingot
#

ich verstehe nicht ganz was du vorhast

indigo sapphire
#

hast du zeit für vc

solid ingot
#

ja später

indigo sapphire
#

okay wann etwa?

#

ich kann glaub besser erklären

urban glen
#

Kann mir wer helfen?

#

der code funktioniert nicht mehr

obtuse estuary
#

Hast du mal in #🔰・old-help-rules

#

Geguckt

solid ingot
#

hast du in den einstellungen bei interpreter etwas ausgewählt?

indigo sapphire
#

ähm warum geht in ```py
embed.set_footer(text=f'Author: {ctx.user.display_name}')

#

sollte das nicht wie in rank list sein?

indigo sapphire
#

so wie hier

indigo sapphire
urban glen
#

ich wollte einen 2 bot machen

#

und jezt funktioniert der code nicht mehr

solid ingot
#

du musst in den einstellungen bei interpreter noch die richtige python version auswählen

indigo sapphire
#

in embed

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tawny lily, du bist jetzt Level 2 🎉

urban glen
solid ingot
#

und jetzt die python version auswählen

indigo sapphire
#

Author: @indigo sapphire

solid ingot
#

im footer geht das nicht

indigo sapphire
#

ah okay

#

schade

thick haven
indigo sapphire
#

Okay 👍

viscid lake
#

ka why aber mein automod geht nicht gibt kein fehler

#
@bot.event
async def on_message(msg):
  for bad_word in bad_words:
    if bad_word in msg.content.lower().split(" "):
      await msg.delete()
      bad_word_embed = discord.Embed(title = "Auto Mod", description=f"{msg.author.mention}, Bitte höre auf sowas zu schreiben", color=discord.Color.red())
      await msg.channel.send(embed=bad_word_embed, delete_after=5.0)```
solid ingot
#

message content intent aktiviert?

viscid lake
#

alles

solid ingot
#

wird das event aufgerufen bei einer nachricht?

viscid lake
#

nein

#

kommt auch kein fehler

solid ingot
#

hat der bot lesezugriff auf den channel?

viscid lake
#

alles clean

viscid lake
#
File "/home/zap997720/g515472/discordbot/main.py", line 264, in &lt;module&gt;
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/zap997720/g515472/.local/lib/python3.9/site-packages/discord/cog.py", line 869, in load_extension
self._load_from_module_spec(spec, name)
File "/home/zap997720/g515472/.local/lib/python3.9/site-packages/discord/cog.py", line 735, in _load_from_module_spec
del sys.modules[key]
KeyError: 'cogs.main'```
#

uhmmm

#

Timo weist du was ich tun muss ich komme nicht drauf

solid ingot
#

bin nicht sicher

#

hast du die main im cogs ordner?

viscid lake
#

Nein das ist es ja

#

Also eig ist der größer aber vieles doppelt

indigo sapphire
#

hey @thick haven bräuchte mal hilfe in db

ich würde gerne das erste bild von dort aus laden wie kann ich es machen

#

oder weisst du es tibue wie ich commands aus .sql file laden kann?

solid ingot
#

ne leider nicht

indigo sapphire
#

uh okay

viscid lake
#

@solid ingot das dem main.cogs ist gefixt aber das mit dem automod nicht

#

Das geht immer noch nicht

indigo sapphire
#

jeder einzelne charakter bilder als quadrat und die haben ihre eigene slot

urban glen
#

Ich kann dotenV nicht installieren

#

weiß wer warum?

solid ingot
#

hey, wie hast du es probiert?

urban glen
#

pip install dotenv

solid ingot
#

das muss python-dotenv heißen

urban glen
#

hab ich

#

jz steht das da

solid ingot
#

da musst du einen ordner reinschreiben

urban glen
#

welchen ordner?

solid ingot
#

ich nehme mal an deinen cogs ordner

urban glen
solid ingot
#

deine projektstruktur scheint nicht richtig zu sein. was möchtest du denn mit dem os.listdir() erreichen?

urban glen
#

dass die zsm wirken

#

oder wie man das nennt

solid ingot
#

achso ja das sieht schonmal gut aus. hast du die Main Datei auch im cogs ordner?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tawny lily, du bist jetzt Level 3 🎉

solid ingot
urban glen
#

wo soll ich die reinmachen

#

?

solid ingot
#

in den ordner, in dem auch der cogs ordner ist

urban glen
#

ey du hast für alles eif eine lösung

#

es hat eif geklappt

solid ingot
#

freut mich :D

viscid lake
#

Keine Ahnung warum aber der bot schickt alles 2 mal

viscid lake
#

Hat sich erledigt

indigo sapphire
#

Hey tibu kann der bot custom emoji aus meinem Server nehmen und überall nutzen?

#

🤔

solid ingot
#

ja

indigo sapphire
#

Anzeigen lassen?

solid ingot
#

genau

indigo sapphire
#

Wenn das geht heftig

#

Dann kann ich es doch so wie ich es mir vorstelle machen

indigo sapphire
#

@thick haven muss ich eine nur wegen MySQL die Def import aus dem Main hollen um MySQL Befehle nutzen zu können?

calm bone
#

@solid ingot Eine Frage kann ich irgendwie ein timestamp einbauen weil höchstwahrscheinlich der Server auf UTC gestellt ist?

#

Er zeigt an das es 15:40 ist.

solid ingot
#

ja klar das geht, wo möchtest du den timestamp denn einbauen?

solid ingot
calm bone
#

als embed timestamp

solid ingot
#

was ich dir empfehlen kann ist discord.utils.utcnow()

#

ah warte

calm bone
#

z.b:

solid ingot
#

wenn du das so machst, sollte die zeit für jeden user automatisch in die aktuelle zeitzone übertragen werden

embed.timestamp = discord.utils.utcnow()
calm bone
#

wo genau soll ich das einfügen

solid ingot
#

unter den code mit dem du das embed erzeugst

embed = discord.Embed(title="Test")
embed.timestamp = discord.utils.utcnow()
calm bone
#

@solid ingot nope geht net ist immer noch auf 16:33

frail loom
#

ich mache das immer hiermit

from datetime import datetime, timedelta

embed = discord.Embed(title=f"xxx",
                                      description=f"xxx",
                                      color=0x9900FF,
                                      timestamp=datetime.utcnow() + timedelta(hours=2)
                                      )
#

einfach 5000x einfacher mit embed.timestamp = discord.utils.utcnow() 😄

autumn oar
#

Bei meinem Bot, lassen sich die Commands nicht ausführen es kommen aber auch keine Fehlermeldungen

autumn oar
#

Normaler Command

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @autumn oar, du bist jetzt Level 2 🎉

solid ingot
#

kann der bot nachrichten lesen?

#

also hat er zugriff auf den channel und ist der message content intent aktiviert?

viscid lake
#

Wie kann ich Leuten Rollen geben wenn die ein slash command benutzen hab vieles ausprobiert kommt immer ein error

solid ingot
#

was für ein error bekommst du?

solid ingot
autumn oar
viscid lake
#

wir wollen den Fehler

solid ingot
#

es kommt ja kein fehler

viscid lake
#

Hmm schwierig

solid ingot
#

prüf mal, ob das event an sich ausgeführt wird ober ob nur die die if bedingung immer false ist

indigo sapphire
#

Evt die Line falsch?

indigo sapphire
#

weis jemand was für ein Problem das ist?

solid ingot
#

zeig mal deine packages

indigo sapphire
#

py-cord discord asyncio python-dotenv aiomysql colorama

solid ingot
#

wenn du mit pycord arbeitest, musst du discord entfernen

indigo sapphire
#

verwirrt

#

auch die import in main?

solid ingot
#

nein

indigo sapphire
#

ok

#

ty geht alles

#

muss mir das mal merken

solid ingot
#

ja xD

indigo sapphire
#

hallo leute hätte da mal eine paar fragen

#

wie kann ich eine for schleife machen

#

der alles von ordner DB lädt?

#

für den mysql

indigo sapphire
indigo sapphire
#
class SevenDSGCDropdownsSelect(discord.ui.Select):
    def __init__(self):
        super().__init__(
            min_values=1,
            max_values=1,
            placeholder='Hier deine 7DSGC Optionen',
            options=SevenDSCG_Options,
        )
    async def callback(self, interaction):
        #Check ob der eingabe von ctx.auhtor stammt wenn ja dann true
        def check_author(message):
            return message.author == interaction.author and message.channel == interaction.channel

        await interaction.response.send_message(f'Du hast "{self.values[0]}" gewählt', ephemeral=True)
        # Checkt was der user gewählt hat
        if self.values[0] == 'Search':
            print('Search  gewählt')
            embed = discord.Embed(
            title='🔎〢Search 7DSGC Unit',
            description='Bitte schreibe den name des Unit für deine Suche hier in dem Chat',
            color=0xf0d33f,
            )
            embed.set_footer(text=f'{interaction.user.display_name}')

            #Sende eine Embed
            await interaction.response.send_message(embed=embed, ephemeral=True)

            # warte wenn etwas geschrieben wird
            answer = await self.interaction.wait_for('message', check=check_author)
            await answer.reply(f'{interaction.user.display_name}')
#

den slash command

async def seven_dsgc(self, ctx, search):
        if search is None:
            select = SevenDSGCDropdownsSelect()
            select.append_option(add_7DSGC_Unit)
            select.append_option(delete_7DSGC_Unit)
            view = discord.ui.View(timeout=None)
            view.add_item(select)
            await ctx.respond('Wähle eine 7DSGC Funktionen in Dropdowns Menü', view=view, ephemeral=True)
#

kann mir jemand helfen beim answer

#

ich schaffe das irgenwie nicht

#

möchte das der author eine name, text schreib

#

danach wird es gelöscht was er geschrieben hat und es wird dann in DB nach dem name gesucht

#

denn error

Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\SevenDSGC.py", line 138, in callback
    answer = await interaction.wait_for('message', check=check_author)
AttributeError: 'Interaction' object has no attribute 'wait_for'
solid ingot
#

da sollte bot.wait_for statt interaction.wait_for sein

indigo sapphire
#

Es ist aber in keinem bot

#

Oder def

#

Es sollte in eine drop-down Menü sein

#

Kann ich mal versuchen

frail loom
#

kann mir evtl jemand sagen wie der befehl ist um den avatar von meinem bot als icon zu nehmen?

Weiß grad nur wie manns macht mit user avatars ^^

solid ingot
#

das ist bot.user.avatar.url

frail loom
#

perfekt danke !

#

im cog dann mit self.bot.user.avatar.url oder ?

solid ingot
#

genau

frail loom
#

thaaanks

#

und nochmal etwas komplizierteres, ich habe ein command um mit einem Modal ein embed zu machen.

Dort habe ich die möglichkeit ein Link für ein Image rein zu machen.

Kann man das irgendwie machen das ich statt nen link ins formular mache auch self.bot.user.avatar.url einfüge ?

Hoffe das war verständlich 😄

solid ingot
#

also den code kannst du nicht direkt ins formular schreiben, aber du könntest das dann mit einer if abfrage checken

also wenn zB "bot" eingegeben wurde machst du url=self.bot.user.avatar.url, und wenn nicht, dann wird der link genommen der eingegeben wurde

frail loom
#

ah okai perfekt, ich danke !

indigo sapphire
# solid ingot da sollte bot.wait_for statt interaction.wait_for sein

geht nicht gibt eine error

Ignoring exception in view <View timeout=900.0 children=1> for item <SevenDSGCDropdownsSelect placeholder='Hier deine 7DSGC Optionen' min_values=1 max_values=1 options=[<SelectOption label='Search' value='Search' description='Diese Option ermöglich dir nach 7DSGC Unit zu suchen' emoji=<PartialEmoji animated=False name=':mag:' id=None> default=False>, <SelectOption label='7DSGC Unit Hinzufügen' value='add 7DSGC' description='Diese Option ermöglich neue 7DSGC Unit in DatenBank hinzufügen' emoji=<PartialEmoji animated=False name='\U0001faaa' id=None> default=False>, <SelectOption label='7DSGC Unit Löschen' value='delete 7DSGC' description='Diese Option Löscht 7DSGC Unit aus der DatenBank' emoji=<PartialEmoji animated=False name=':negative_squared_cross_mark:' id=None> default=False>] disabled=False>:
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 396, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\SevenDSGC.py", line 138, in callback
    await bot.wait_for('message', check=check_author).reply(f'{answer.content}')
AttributeError: 'coroutine' object has no attribute 'reply'
C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py:398: RuntimeWarning: coroutine 'wait_for' was never awaited
  return await self.on_error(e, item, interaction)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
solid ingot
#

da fehlt ein await vor reply

indigo sapphire
#

ahh

#

wie den genau?
await bot.wait_for('message', check=check_author).await.reply(f'{answer.content}')

#

geht irgenwie nicht

solid ingot
#

ne das geht nicht mit .await.reply

indigo sapphire
#

answer = await bot.wait_for('message', check=check_author)
await answer.reply(f'{answer.content}')

#

es gibt keine error

#

hast du zeit für coding support?

solid ingot
#

leider nicht

indigo sapphire
#

okay ty

frail loom
#
await bot.wait_for('message', check=check_author) 
await.reply(f'{answer.content}')
#

ich denke so oder ?

indigo sapphire
#

öhm denke nicht

haughty spruce
#

allgemeine frage zum "design" eines bots. ziel ist es vorerst 2,3,4 funktionen zu basteln, die ihre daten behalten sollen, wenn der bot neu startet, das spricht also für json oder db store der daten. vermutlich möchte ich den bot auf 1,2,3 servern einsetzen.
eines der features sollen z.b. reminder sein.. startet der bot, soll er für jeden server die reminder einlesen und sie nach entsprechender regel täglich, wöchentlich oder zu termin x in entsprechenden kanälen anzeigen oder sie mit slash command abrufbar / editierbar / anlegbar machen.
gemäss dieser "vorgabe", was wären eurer meinung nach die best practices fürs DB design ? legt man lieber grundsätzlich pro discord server eine db an ? speichert man alle "reminder" in der tabelle "reminder" und schreibt auch die server_id und channel_id mit rein ? alternative ansätze ?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @haughty spruce, du bist jetzt Level 2 🎉

solid ingot
#

hey, also für jeden discord server eine eigene DB würde ich nicht empfehlen. ich persönlich würde das mit der reminder tabelle machen, und in diese tabelle dann server_id und channel_id schreiben

haughty spruce
#

danke.. klingt für mich auch am logischsten.. muss man die DB pro call nicht wechseln.. das trifft dann also genau so auf alle anderen funktionen zu und man muss die discord_id überall mitschleifen, wäre halt dööflich, wenn der serverA command etwas bei serverB ausgibt 😄

#

was ich auch nicht finden konnte war so ne art "date picker" für modals oder allgemein interaktions-elemente.. da gibts nix ne ? müsste man mit mutiplen select boxen machen ?

#

oder komplett aus modals rausnehmen und als definierten eintrag in ein /command

solid ingot
#

hm, leider nicht, das müsstest du dann mit mit mehreren boxen oder slash commands machen

haughty spruce
#

bin mi kopf noch am "planen" was ich wie machen wollen würde, theoretisches vorgeplänkel eben..
sinn würde m.e. auch machen, dass man sich ne eigene klasse schreibt für DB interaktionen mit den funktionen insert, update, delete und denen dann entsprechend die sql queries oder values übergibt ?

solid ingot
#

ja, das mache ich auch meistens so

#

ich übergebe meist direkt die values

haughty spruce
#

wieso "meistens" ? das impliziert es gibt fälle wo das sinn macht und wo nicht ?

solid ingot
#

wenn ich kleinere bots mit simpleren funktionen mache, mache ich dafür nicht immer eine eigene klasse mit DB interaktionen. bei größeren projekten schon

haughty spruce
#

i see.. gesetzt es ist ein "grösseres" projekt.. hat die klasse "db" dann die funktionen "insert, update, delete" welche die grundsätzlichen funktionen und db interaktioen bereitstellen und gibt es dann eine funktion "inser_reminder", "update_reminder" usw die die calls zusammenfügen aus den daten und dann an "insert" oder "update" übergeben ? das fühlt sich redundant an.. redundant würde sich auch anfühlen die calls komplett in den einzelnen funktionen zu bauen und an insert oder so zu übergeben

solid ingot
#

das kommt immer ganz auf das projekt an. an sich spricht nichts gegen solche methoden wie insert_reminder, aber ich denke das macht nur sinn, wenn man diese funktion auch von mehreren stellen aus aufruft.
beim @burnt prairie habe ich es zum beispiel so gemacht, dass ich eine funktion habe, mit der man kekse von einem user addieren oder subtrahieren kann, da man diese währung an vielen unterschiedlichen stellen verdienen kann

haughty spruce
#

danke fürs feedback soweit. ich denke damit kann ich erstmal loslegen und an diversen punkten schier verzweifeln 😄
das on.ready würde ich nutzen, um direkt alles zu laden was ich aus den DBs brauche ? oder wäre ein ausgelagerter timer, der mir nach x minuten den kram läd sinnvoller ?

indigo sapphire
#

oder reminder speichern möchte um die alte reminder anzuschauen

haughty spruce
#

ich denke "/reminder list|add|update" wäre das worauf ich hinaus wollte.. mit optionalen features, die aber für add und udpate nicht optional wären.. da muss ich mir die struktur der / commands nochmal genauer anschauen

solid ingot
#

wenn du die daten nur in on_ready lädst, hast du die reminder, die während der laufzeit des bots hinzugefügt wurden, nicht abgedeckt, oder übersehe ich etwas?

haughty spruce
#

die sind ja zur laufzeit im speicher und werden beim add/update auch in die DB geschrieben.. nur wenn der bot panic schiebt und abraucht, soll er das ja neu laden, wenn er neu startet

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @haughty spruce, du bist jetzt Level 3 🎉

solid ingot
#

achso 😄

haughty spruce
#

ich bin KEIN programmierer btw.. sollte ich also dumme fragen stellen liegts einfach daran 😄

atomic jasper
#
@bot.slash_command(description="Let the bot send a message")
async def say(
        ctx,
        text: Option(str, "The text you want to send"),
        channel: Option(discord.TextChannel, "The channel you want to send the message to")
):
    await channel.send(text)
    await ctx.respond("Message posted", ephemeral=True)```
#

@solid ingot Wie kann ich aus dieses befehl nen ban oder mute befehl machen?

#

Habs versucht und es ging schief

viscid lake
#

Kein ping

atomic jasper
#

Hm?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @atomic jasper, du bist jetzt Level 14 🎉

atomic jasper
#

Was meinst du damit?

obtuse estuary
#

Das du nicht unbedingt timo pingen solltst

atomic jasper
#

Achso oke

#

Kann mir dann jemand helfen?

#

Bitte?

obtuse estuary
#

So habe ich es gemacht aber so schwer is das nicht. @slash_command(description="Banne einen Member") #Beschreibung des Befehls‘‘‘ @discord.default_permissions(ban_members=True) #Permission die man dafür braucht @discord.guild_only() async def ban( #ban command self, ctx, member: Option(discord.Member, "Wähle einen Member"), reason: Option(str, "Der Grund") ): await member.ban(reason=reason) await ctx.respond(f"{member.mention} wurde gebannt!", ephemeral=True)

#

Oh bruh

atomic jasper
#

Verstehe

#

Das ergibt sinn

solid ingot
atomic jasper
#

Mein gehirn mag kreativ sein dennoch nicht komplex 😔

obtuse estuary
solid ingot
atomic jasper
#

AAAAAAAAAAAAAAA

solid ingot
#

aber zwiebeln mit röst

atomic jasper
#

Hhehehhee

crystal star
#

ist es möglich beispielsweise wenn eine zahl zwischen 500 - 1000 ist eine zahl zu schreiben also beispielsweise so:


xp = 510

if xp in [500-1000]:
        print(xp)

( weiß das es so nicht funktioniert aber meine vom Prinzip her)

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @crystal star, du bist jetzt Level 2 🎉

solid ingot
viscid lake
#
File "/home/zap997720/g515472/discordbot/main.py", line 361, in &lt;module&gt;
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/zap997720/g515472/.local/lib/python3.9/site-packages/discord/cog.py", line 869, in load_extension
self._load_from_module_spec(spec, name)```
#

hat wer eine Lösung

atomic jasper
atomic jasper
solid ingot
atomic jasper
#

Sollte ich zuerst die Rollen erstellen?

solid ingot
indigo sapphire
atomic jasper
#

Wie denn?

solid ingot
#

du hast aiosqlite nicht installiert

viscid lake
#

hab ich eig

atomic jasper
#
@discord.default_permissions(ban_members=True)´´´
viscid lake
atomic jasper
#

Soll ich es mit default_permissions ersetzen?

viscid lake
#

ja

atomic jasper
#

Oke

#

Etwa so?

viscid lake
#

probiere es einfach

atomic jasper
#
@discord.commands.has_any_role(Moderator, Admin)(ban_members=True)```
atomic jasper
solid ingot
#

das müssten String sein, also "Moderator" statt Moderator

atomic jasper
#

Achso oke

solid ingot
#

das mit ban_members darf sich nicht dahinter stehen

atomic jasper
#

Wo denn?

#

Darunter?

solid ingot
#

ja, also bei Default permissions zb

atomic jasper
viscid lake
#

Timo call gleich?

atomic jasper
#

HILFE

#
Traceback (most recent call last):
  File "c:\Users\...\OneDrive\Dokumente\Discord Bot\Bot.py", line 32, in <module>
    @discord.commands.has_any_role("Moderator, Admin")
AttributeError: module 'discord.commands' has no attribute 'has_any_role'
PS C:\Users\...\OneDrive\Dokumente\Discord Bot>```
#

Was bedeutet das?

solid ingot
atomic jasper
#

Meister timo

#

Ich brauche deine hilfe

#

Was bedeutet diese alien sprache?

viscid lake
atomic jasper
#

Jungs kann mir mal jemand kurz helfen?

viscid lake
#

geht trz nicht also der code

atomic jasper
#

Nope

atomic jasper
#

Muss ich die rollen zuerst erstellen oder?

solid ingot
atomic jasper
#
raceback (most recent call last):
  File "c:\Users\...\OneDrive\Dokumente\Discord Bot\Bot.py", line 32, in <module>
    @discord.ext.commands("Moderator, Admin")
TypeError: 'module' object is not callable
PS C:\Users\...\OneDrive\Dokumente\Discord Bot>```
atomic jasper
#

Irgend ne andere Idee timo?

#

Ich kenne mich da nicht aus sorry

solid ingot
#

hey, schau mal hier: #1027957814368423996

solid ingot
atomic jasper
#

Mhm?

solid ingot
#

@discord.ext.commands.has_any_role

atomic jasper
#

Achso

#

Oke danke timo

#

YAY

#

DANKE

#

ES FUNKTIONIERT

#

Ich werde dir schon mal ne belohnung geben 🤤

solid ingot
#

komisch, geht es jetzt?

solid ingot
atomic jasper
#

Hey timo

#

Wenn ich den ban command benutze dann bekomme ich ne nachricht

#

Anwendung reagiert nicht

#

Hab ich ja

#
            await ctx.respond(f"{member.mention} Has been banned!", ephemeral=True)```
#

Statt member.ban?

#

Mhm

#

Nope aber egal

#

Danke

#

Natürlich weiss er das er wartet einfach auf seine belohnung 🤤

#

Naja...

#

1 man 1 keks

#

Timo ich brauche schon wieder deine hilfe

solid ingot
#

was gibts

atomic jasper
#

Was ist falsch?

#

Bei den output ist alles oke

atomic jasper
#

Den command funktioniert nicht

#

Warum weiss ich nicht

#

Und mit dem output stimmt alles

frail loom
#

Damit kann man nichts anfangen Kenagi, am besten Fehlermeldung wenn eine kommt oder den code

atomic jasper
#
@bot.slash_command(description="Ban a member who broke the rules")
@discord.ext.commands.has_any_role("Moderator, Admin")
@discord.default_permissions(ban_members=True)
@discord.guild_only()
async def ban(
            self, ctx,
            member: Option(discord.Member, "User"),
            reason: Option(str, "Reason")
    ):
            await member.ban(reason=reason)
            await ctx.respond(f"{member.mention} Has been banned!", ephemeral=True)```
frail loom
#

versuchs mal mit member: Option(discord.Member, description="Wähle einen User") und reason: Option(str, description="Reason")

atomic jasper
viscid lake
solid ingot
#

@atomic jasper schau dir nochmal genau diese zeile an

@discord.ext.commands.has_any_role("Moderator, Admin")
atomic jasper
#

Mhm

solid ingot
#

das sollte so aussehen

@discord.ext.commands.has_any_role("Moderator", "Admin")
atomic jasper
#

💀

solid ingot
atomic jasper
solid ingot
#

gut

atomic jasper
#

1 mann 1 keks

atomic jasper
#
PS C:\Users\...\OneDrive\Dokumente\Discord Bot> & C:/Users/.../AppData/Local/Microsoft/WindowsApps/python3.10.exe "c:/Users/.../OneDrive/Dokumente/Discord Bot/Bot.py"
Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\...\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\client.py", line 382, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\...\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\bot.py", line 1054, in on_connect
    await self.sync_commands()
  File "C:\Users\...\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\bot.py", line 657, in sync_commands
    app_cmds = await self.register_commands(
  File "C:\Users\...\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\bot.py", line 485, in register_commands
    prefetched_commands = await self._bot.http.get_guild_commands(self._bot.user.id, guild_id)
  File "C:\Users\...\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\http.py", line 353, in request
    raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access
Erased Bot#9964 is online```
#

Jungs irgendwie stimmt etwas mit meinem phyton nicht

solid ingot
#

sieht so aus als hätte der bot keinen zugriff auf den server, von dem du die ID eingefügt hast

atomic jasper
#

Timo sei mal ehrlich...

#

Woher hast du diese alien sprache gelernt? 🤨

solid ingot
#

python ist meine muttersprache

frail loom
#

self._bot.http.get_guild_commands(self._bot.user.id, guild_id) der bindestrich da gehört dahin?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @frail loom, du bist jetzt Level 7 🎉

frail loom
solid ingot
#

ich denke schon

#

das ist nicht der code von kenagi, sondern der von pycord

frail loom
#

achsoo

#

meine muttersprache war leider nur gebrochen deutsch xd

atomic jasper
solid ingot
#

🐍

atomic jasper
#

Dennoch funktioniert der befehl nicht

#

Und bei den output ist alles okay

#

Es zeigt an das der Bot online ist

#

Timo ich könnte deine hilfe gut gebrauchen

viscid lake
#

hab wieder das problem das der command nach dem benutzen verschwindet und dan kommt "Ungültiger Befehl für Interaktion-Anwendung"

solid ingot
#

läuft der bot evtl mehrmals?

viscid lake
solid ingot
#

hm, das kann mehrere ursachen haben, da müsste ich mir mal den code anschauen

viscid lake
#

Kurz call?

solid ingot
#

später

solid ingot
#

mir sind ein paar sachen aufgefallen am code:

  • du hast ja einen prefix command, da darfst du glaub ich kein ctx.respond verwenden.
  • beim letzten command soltte die embed color direkt in discord.Embed() gesetzt werden
  • bei den slash commands sollte es discord.ApplicationContext statt commands.Context heißen
viscid lake
solid ingot
#

einen vergessen wahrscheinlich

viscid lake
#

Ich schau mal danke

solid ingot
viscid lake
#

sollte alles gemacht sein

#

Danke!!!!!!

uneven cedar
#

hallo

#

hab eine frage zu meinem bot ist mit pyhton geschrieben

uneven cedar
#

ich hab ein bot

#

und der kann per befehl denn man ein gibt schick der ein eine dm wo ein emed ist und da was drin steht und ich wil wissen wie ich das embed ändern kann

viscid lake
#

Enden?

#

ctx.send(embed=embed)

uneven cedar
#

embed

viscid lake
#

Ja

#

Oder wie du dein embed genannt hast

uneven cedar
#

ändern kann

crystal star
#

wie kann für @commands.Cog.listener() einen cooldown festlegen?

solid ingot
#

das musst du manuell machen, zB indem du mit einem task alle 60 sekunden eine variable auf true setzt und das dann in der methode von @commands.Cog.listener() checkst

crystal star
solid ingot
#

so halb, also du könntest eine liste machen, wo du alle user reintust, du eine nachricht schreiben. diese liste leerst du dann alle 60 sekunden mit einem task.
bei on_message prüfst du dann, ob der user schon in der liste ist oder noch nicht

crystal star
#

hmm ok danke

indigo sapphire
#

tib hab fast 1:1 nachgemacht und es geht nicht

solid ingot
#

bist du auf sqlite umgesteigen?

indigo sapphire
#

nicht ganz

atomic jasper
#

Umgestiegen* da merkt man das deutsch nicht deine Muttersprache ist :(

indigo sapphire
#

das ist nur eine übergangs sql

#

nur wegen den server

solid ingot
atomic jasper
#

Meine ist LUA

#

Hehehehehe...peepohehe

indigo sapphire
#

kann mir jemand mit den lite sql helfen?

#

mein def code:

def embed(Unit_name):
embed = discord.Embed(
title="Sariel",
description="\u200b",
color=discord.Colour.brand_red(), # Pycord provides a class with default colors you can choose from
)
embed.add_field(name="Team-PvP 1", value=
f'>[The Four Archangels]〢Sariel'+
f'>[Advent des Blitzes]〢Ludociel'+
f'>[Advent]〢Tarmiel '+
f'>[Sinn der Lust]〢Gowther')
embed.add_field(name="Team-PvP 2", value="\u200b")
embed.add_field(name="Team-PvP 3", value="\u200b")
embed.add_field(name="Team-PvE 3", value="\u200b")
embed.add_field(name="Team-PvE 2", value="\u200b")
embed.add_field(name="Team-PvE 3", value="\u200b")
# No Inline
embed.add_field(
name='Substats:',
value=f'> ATK: 15%'+' | '+'Def: 15%'+' | '+'HP: 15%',
inline=False)

# Inline
embed.add_field(
    name='PvP Gear Sets:', 
    value='> 4x ATK'+' **|** '+'2x Crit',
    inline=True)
embed.add_field(
    name='PvE Gear Sets:',
    value='> 4x ATK'+' **|** '+'2x Crit',
    inline=True)
embed.add_field(
    name='\u200b',
    value='\u200b',
    inline=True)

embed.set_footer(text=f'{Author_id}')
embed.set_author(name=f"[{Unit_Title_Name}]", icon_url=f"{Race}")
embed.set_thumbnail(url=f"{Unit_Icon}")
#

ich würde gerne eine def embed system machen um damit in SQLite die daten reintun

#

da wäre meine Slash command

#
#7DSGC Option Menü
    @bridge.bridge_command(
        name= str('seven-dsgc-lite'), 
        description = 'Alle 7DSGC Befehle wie zb seven-dsgc search:Meliodas',
        aliases=['7DSGC-Lite', '7DS-Lite'])
    @option(
        name='search',
        description='Eingabe was du suchen willst wie zb Meliodas',
        default=None,)
    async def seven_dsgc(self, ctx, search):
        if search is None:
            select = SevenDSGCDropdownsSelect()
            select.append_option(add_7DSGC_Unit)
            select.append_option(delete_7DSGC_Unit)
            view = discord.ui.View(timeout=None)
            view.add_item(select)
            await ctx.respond('Wähle eine 7DSGC Funktionen in Dropdowns Menü', view=view, ephemeral=True)
        elif search is not None:
            search
solid ingot
#

was ist denn dein fehler?

indigo sapphire
#

keine ich hab nur keine ahnung wie lite geht

#

😂

#

und schaffe keine vernüftige speicherung für embed

indigo sapphire
#

kurze frage wie speichere ich in sqlite URL?

#

als text?

#

es soll danach in embed rein als set_thumbnail

solid ingot
#

es gibt einen text datentyp

indigo sapphire
#

ah also sollte es einfach so gehen?

#

kann ich in WHERE nach 2 Row suchen?

#

quasi oder

solid ingot
#

ja

indigo sapphire
#

also zirka so?

#
SELECT Unit_Name, Unit_Icon, Unit_Title_Name, Race, Reco_PvP_Gear, Reco_PvE_Gear, Reco_Substats, Author_id
                    FROM SevenDSGC_Unit
                    WHERE Alias= ? OR Unit_Name= ?
                    """, (search, search,)
#

geht das auch so?

solid ingot
#

die klammern brauchst du nicht

indigo sapphire
#

wirklich?

obtuse estuary
#

Jo wie kann man wenn in der aiosqlite datenbank zB. die xp spalte auf 10 kommt dann zB. eine nachricht senden lassen?

viscid lake
#

Schau dir das neue Video von Timo an

#

Da ist alles drinnen

obtuse estuary
#

naja aber da sieht man doch nur wie man daten raus lesen kann

#

bin gerade noch ein bssl lost

viscid lake
#

Und dsnn zeigt er wie man das macht das man abfragen kann als user

#

🙂

solid ingot
#

du musst immer wenn die XP aktualisiert werden mit einem select statement prüfen, wie viele xp der user hat

#

also erst die xp aktualisieren mit update

#

dann mit select prüfen wie viel xp der user hat

obtuse estuary
#

Kann es mir gerade noch nicht so erschließen kannst du es mir zeigen? peepoheart

solid ingot
#

bin talk :D

indigo sapphire
#

Würde gerne den Text sariel unter [The Four]

#

Wie geht das?

indigo sapphire
#

hey jungs weiss jemand von euch wie ich in SQLite index INT NOT NULL AUTO_INCREMENT machen kann?

#

diese argument ist von mysql idk ob es in SQLite gibt.

#

genau genommen rowid

solid ingot
#

wenn du INTEGR PRIMARY KEY benutzt hast du prinzipiell schon automatisch Auto increment

indigo sapphire
#

Sonst Brauch ich nichts mehr?

#

👀

solid ingot
#

nein

indigo sapphire
#

Okay In MySQL ist Bischen anders

solid ingot
indigo sapphire
#

Hab es versucht mit /n

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @indigo sapphire, du bist jetzt Level 18 🎉

indigo sapphire
#

Fehlt noch dein embed Page guide

crystal star
#

wie kann nachfragen wie lange ein user auf einem discord ist ( also wieviele tage )?

obtuse estuary
#

hey, das geht mit py user.created_at

#

Und wenn du es noch in einem schönen Zeit format machen willtst geht das mit py {discord.utils.format_dt(user.created_at)} **|** {discord.utils.format_dt(user.created_at, style='R')} Das muss dann natürlich in ein f string

crystal star
solid ingot
#

das geht mit member.joined_at

crystal star
#

danke

crystal star
#

also wieviele tage es her ist das der user den server gejoined ist

solid ingot
#

also entweder machst du das mit einem discord timestamp, da werden dann aber nicht immer die tage angezeigt, sondern wenn der user schon vor 2 jahren gejoint ist wird dann angezeigt "2 jahre"

crystal star
#

am besten wäre wenn es möglich ist die genaue tages anzahl

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @crystal star, du bist jetzt Level 5 🎉

Du hast <@&1024276691205496872> erhalten!

solid ingot
#

dafür musst du erst die differenz zwischen dem aktuellen zeitpunkt und dem zeitpunkt ausrechnen, bei dem der user gejoint ist.
die zeit kannst du mit total_seconds in sekunden bekommen und musst das ganze dann in tage umrechnen

#

dafür muss man sich etwas mit datetime objekten bei python auskennen

urban glen
#

Kann mir wer helfen

#

der code ist eigentlich richtig

viscid lake
#

Code

obtuse estuary
urban glen
# obtuse estuary Code
from discord.ext import commands

intent = discord.Intents.default()
intent.members = True

bot = commands.Bot(command_prefix="/", intent=intent) # Prefix hier einfügen!

role_id = .........#
guild_id = ........#

class RoleButton(discord.ui.Button):
    def init(self):
        super().init(
            label="Verifiziere dich hier!",
            style=discord.enums.ButtonStyle.blurple, 
            custom_id="interaction:RoleButton",
        )
    async def callback(self, interaction: discord.Interaction):
        user = interaction.user

        role = interaction.guild.get_role(role_id)

        if role is None:
            return

        if role not in user.roles:
            await user.add_roles(role)
            await interaction.response.send_message(f"🎉 Du bist nun verifiziert!", ephemeral=True)

        else:
            await interaction.response.send_message(f"❌ Du bist bereits verifiziert!", ephemeral=True)

BILD_URL = "https://cdn.discordapp.com/attachments/879688173201027092/930861267101573180/willkommen_blue.png"
BESCHREIBUNG = """🔹 Bleibe freundlich und höflich! 
🔹 Belästigungen jeder Art ist nicht erwünscht!
🔹 Akzeptiere die Meinung anderer User!
🔹 
🔹 Halte dich an die allgemeinen Richtlinien von Discord!""" 

@bot.command()
async def post(ctx: commands.Context): # Command
    view = discord.ui.View(timeout=None)

    view.add_item(RoleButton())

    await ctx.send(f"{BILD_URL}")
    await ctx.send(f"{BESCHREIBUNG}", view=view)

@bot.event
async def on_ready():
    print("ONLINE!")
    view = discord.ui.View(timeout=None)
    view.add_item(RoleButton())
    bot.add_view(view)

bot.run("")```
indigo sapphire
#

wo liegt das problem

solid ingot
#

@indigo sapphire bitte nur den Code senden, der für den Error relevant ist, siehe #🔰・old-help-rules

#

prüfe, dass du in allen cogs eine Setup Methode hast

indigo sapphire
#

Kk

urban glen
obtuse estuary
#

Code bidde

urban glen
#
from discord.ext import commands

intent = discord.Intents.default()
intent.members = True

bot = commands.Bot(command_prefix="/", intent=intent) # Prefix hier einfügen!

role_id = .........#
guild_id = ........#

class RoleButton(discord.ui.Button):
    def init(self):
        super().init(
            label="Verifiziere dich hier!",
            style=discord.enums.ButtonStyle.blurple, 
            custom_id="interaction:RoleButton",
        )
    async def callback(self, interaction: discord.Interaction):
        user = interaction.user

        role = interaction.guild.get_role(role_id)

        if role is None:
            return

        if role not in user.roles:
            await user.add_roles(role)
            await interaction.response.send_message(f"🎉 Du bist nun verifiziert!", ephemeral=True)

        else:
            await interaction.response.send_message(f"❌ Du bist bereits verifiziert!", ephemeral=True)

BILD_URL = "https://cdn.discordapp.com/attachments/879688173201027092/930861267101573180/willkommen_blue.png"
BESCHREIBUNG = """🔹 Bleibe freundlich und höflich! 
🔹 Belästigungen jeder Art ist nicht erwünscht!
🔹 Akzeptiere die Meinung anderer User!
🔹 
🔹 Halte dich an die allgemeinen Richtlinien von Discord!""" 

@bot.command()
async def post(ctx: commands.Context): # Command
    view = discord.ui.View(timeout=None)

    view.add_item(RoleButton())

    await ctx.send(f"{BILD_URL}")
    await ctx.send(f"{BESCHREIBUNG}", view=view)

@bot.event
async def on_ready():
    print("ONLINE!")
    view = discord.ui.View(timeout=None)
    view.add_item(RoleButton())
    bot.add_view(view)

bot.run("")```
#

Ich brauch schnell Hilfe

obtuse estuary
#

Schick mal ein screen shot von zeile 55

#

@urban glen

urban glen
obtuse estuary
#

Ok jetzt gehe mal zur Button class

urban glen
#

ja

obtuse estuary
#

Da muss ein comma bei timeout und dann musst du wie in dem Vid von tibue eine custom id festlegen die Kann heißen wie du willst

#

Also so: custom_id=„Test“

urban glen
#

wo beim timeout

#

?

#

Kannst du dass sonst einmal im code umändern?

obtuse estuary
#

Bei der button class im konsrtruktor

obtuse estuary
#

Oh warte

#

Du hast eine custom id wait ich gucke mal

#

Kann dir nachher weiter helfen

urban glen
#

wann

#

Kann ich dir dm?

obtuse estuary
#

Guck nochmal auf timos github

obtuse estuary
#

@solid ingot helf mal dem armen

solid ingot
# urban glen

Hey! Ich hab etwas gebraucht um den Fehler zu finden, da die Timeouts und Custom IDs an sich richtig gesetzt sind

#

Du musst aber __init__ anstatt init schreiben, damit die custom ID auch erkannt wird

urban glen
solid ingot
#

hier auch

urban glen
#

ey

#

unglaublich

#

einfach geklappt

solid ingot
#

freut mich!

indigo sapphire
#

Tibue dein Guide mit SQLite funktioniert nicht ganz dufte

#

👀

#

Ich hatte bei insert einen Problem es erstellt immer mehrere Value und das ist ein Problem

obtuse estuary
#

Maul

#

Er macht nur gute vidsfcku

#

Spassspeepoheart

indigo sapphire
#

Es fehlt eben paar Parameter

#

Ich hab ja gesehen das es funktioniert idk warum bei ihn nicht unendlich seine ID erstellt

#

🤣

frail loom
#

also bei mir funktioniert es auch tadellos

fickle creek
solid ingot
indigo sapphire
#

Kein Fehler

#

Es erstellt nur mehr id

#

Das will ich aber nicht alle selbe id

#

Ganz grob gesagt hab ich nach gemacht aber es erstellt immer wieder die selbe ID

indigo sapphire
#

benötigt bei sowas Hilfe: SQLite select if row value not exists insert

solid ingot
indigo sapphire
#

Ja

solid ingot
#

hast du das "PRIMARY KEY" vergessen?

indigo sapphire
#

😅

indigo sapphire
#

Ich hab einfach für den ID der user nach deine Guide gearbeitet

#

Da war nix von primary key

#

Der key ist doch für RowID

solid ingot
indigo sapphire
#

Wait rly?

#

Es geht so?

#

Der primary key sagt das es einzigartig ist richtig?

solid ingot
#

ja genau, wenn etwas als primary key markiert ist, kann es also gar nicht doppelt in der DB vorkommen

indigo sapphire
#

Kk ty 👍

viscid lake
solid ingot
#

ein datetime muss wahrscheinlich raus

#

also nur datetime statt datetime.datetime

viscid lake
#

wie mach ich das kleiner

solid ingot
#

drück auf einfügen

obtuse estuary
#

Einfühwn

solid ingot
#

diese taste wo man manchmal aus versehen draufkommt

viscid lake
#

ja xd

obtuse estuary
#

Spass

viscid lake
obtuse estuary
#

Kann dir md weiter helfen aber das weißt du ja daddy

viscid lake
solid ingot
#

ey

viscid lake
#

Du bist auch mein daddy

solid ingot
# viscid lake

hast du guild ID gesetzt für einen Server wo der bot nicht drauf ist

viscid lake
#

Brsuchst ned Eifer zu werden

viscid lake
#

hab nichts gefunden

solid ingot
#

schick mal den Code wo du den bot definierst

viscid lake
#

Also meine main uhm

solid ingot
#

joa

viscid lake
solid ingot
#

mach mal codeblock, bin am handy

viscid lake
#

das werden viele

solid ingot
#

ja ne

#

nur code wo du bot definierst

viscid lake
#
intents = discord.Intents.all()
bot = commands.Bot(command_prefix="!", intents=intents)
bot.remove_command("help")







####################################################

@bot.event
async def on_message_delete(message: discord.Message):
    if message.mentions != 0:
        if len(message.mentions) < 3:
            for m in message.mentions:
                if m == message.author or m.bot:
                    pass
                else:
                    embed=discord.Embed(title=f":ghost: | Ghost ping", description=f"**{m}** du wurdest von {message.author.mention} ghostpinged.\n \n**Nachricht:** {message.content}", color=0xffb375)
                    await message.channel.send(embed=embed)
        else:
            embed=discord.Embed(title=f":ghost: | Ghost ping", description=f"**{len(message.mentions)} User** wurden von {message.author.mention} ghostpinged.\n \n**Nachricht:** {message.content}", color=0xffb375)
            await message.channel.send(embed=embed)
solid ingot
#

komisch, hast du bei irgendeinem command eine guild_id gesetzt?

viscid lake
#

Ja aber alle ids sind geändert

solid ingot
#

vlt hast du eine vergessen?

viscid lake
indigo sapphire
#

: D

#

insert taste

indigo sapphire
solid ingot
#

das brauçhst du gar nicht

#

nimm user_id

indigo sapphire
#

okay

#

so btw es kommt immer in

CheckPremium= await cursor.fetchone()

(0,) will aber nur die integer

#

was hab ich da falsch gemacht in lite

solid ingot
#

dann brauchst du (await cursor.fetchone())[0]

indigo sapphire
#

waiiit

#

gibt fehler

Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 127, in wrapped
    ret = await coro(arg)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 907, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "c:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem\cogs\ExclusiveCommandLite.py", line 89, in embed
    if CheckPremium[0] == 1 or True:
TypeError: 'int' object is not subscriptable

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

Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1009, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 359, in invoke
    await injected(ctx)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 135, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: 'int' object is not subscriptable
obtuse estuary
#

@indigo sapphire du musst aber nicht dann immer deine Nachricht löschen wenn du die Lösung hast

indigo sapphire
#

ah dachte es ist dann irrelevant und gelöst yk?

solid ingot
indigo sapphire
#

ja

#

es ist auch als integer gespeichert in sqlite

solid ingot
#

du meintest doch eben dass du (0,) als integer haben willst

#

das hast du ja damit

indigo sapphire
#

ja es vergleich aber nicht

#

in ```py
if CheckPremium[0] in (1, True):
await ctx.send_modal(modal)
else:
await ctx.respond(f"Member: {ctx.author.name} hat keine berechtigung für den Command um es ausführen{ctx.author.name} du kannst auch deine Premium berechtigung bekommen, indem du auf dem Button: 'Get Premium' drückst. danach wirst du auf meinem server weiter geleitet.", view=view, ephemeral= True)

#
async with db.execute(f'SELECT UserPremium FROM UserConfig WHERE (UserID="{ctx.author.id}")') as cursor:
                CheckPremium= await cursor.fetchone()
#

falls ihr fragt von wo die variable CheckPremium ist

#

problem ist es nur das es nicht 1 ist und trotzdem den modal schickt

#

es wird ja als (0,) geprintet

#

bei mysql wird es normal als 0 geprintet

solid ingot
#

CheckPremium ist (0,)
CheckPremium[0] ist 0

indigo sapphire
#

aber warum geht dann den if CheckPremium[0] in (1, True)
nicht?

#

und schickt trotzdem die formular

obtuse estuary
indigo sapphire
solid ingot
#

ja, wenn du kannst du auch drunterschreiben dass du es schon gelöst hast

indigo sapphire
#

okay gut zu wissen 👍

#

hab es irgenwie

#

die lösung

#

geht nicht

solid ingot
#

das liegt aber an der if Abfrage, nicht am integer

indigo sapphire
#

geht wieder

solid ingot
#

wieso machst du es nicht so?

if CheckPremium[0] == 1

indigo sapphire
#

naja idk

#

xD

#

dachte wegen dem text True

#

Anfangs wuste ich ja nicht das es 0 zurück gibt anstatt False

obtuse estuary
#

Kann man 2 Primary keys festlegen?

#

Weil möchte auch wie die user_id den namen speichen in der Datenbank

solid ingot
#

hey, prinzipiell kann der primary key aus mehreren spalten bestehen, aber den namen würde ich nicht unbedingt als primary key markieren

#

mach am besten user_id als primary key und name als normalen text

obtuse estuary
#

ok und wie speicher ich den namen dann? weil wenn ich das so mache: py await db.execute( "INSERT OR IGNORE INTO users (user_id) VALUES (?) AND users (name) VALUES (?)", (message.author.id,) ) await db.execute( "INSERT OR IGNORE INTO users (name) VALUES (?)", (message.author.name,) ) wird bei jeder message eine neue spalte erzeugt

indigo sapphire
#

Naja anstatt primary key sollte Ansicht auch in Insert

#

if not exists geben

#

🤔

#

Naja würde sagen du solltest eine SQlite oder MySQL DB Guide Serie anfangen

obtuse estuary
solid ingot
#

@obtuse estuary

await db.execute("INSERT OR IGNORE INTO users (user_id, names) VALUES (?,?)", (message.author.id, message.author.name))
obtuse estuary
#

thx

indigo sapphire
#

Gibt auch andere Möglichkeiten wie in MySQL

#

Kannst recherchieren da findest du sicher was

#

Es gab noch keine ausführliche Guide für SQlite von Tibue oder wird es noch?

#

🤔

solid ingot
#

Was fehlt dir im SQLite Video?

indigo sapphire
#

Alle commands Möglichkeiten

#

Es gibt noch sehr viele

#

🤷‍♂️

solid ingot
#

das stimmt, ein paar andere gibt es noch

indigo sapphire
#

Joa wäre als play list sehr cool

#

Es gibt auch andere DB/SQL

#

😉

#

Darüber kann man auch gut Guide machen

#

Finde deine Erklärung super

frail loom
#

ist es eigendlich sehr kompliziert einen "setup" command zu machen für so ticket system oder Twitch live notify`s?

Würd die befehle gerne per setup machen und nicht fest im code den channel festlegen

solid ingot
#

Hey, das kommt auf den setup befehl an. meinst du so ein interaktives setup, wo der user nacheinander bestimmte werte eingibt?

frail loom
#

wo man zb den channel selbst festlegen kann und selbst streamer einfügen kann die man sehen möchte.

#

oder der fürs ticket system selbst einen channel und eine kategorie erstellt

autumn oar
solid ingot
#

hast du evtl Embed.discord statt discord.Embed geschrieben?

autumn oar
#

Nein

solid ingot
#

schick mal deinen code

autumn oar
solid ingot
frail loom
solid ingot
#

ja das mit der db braucht übung, aber sobald du es geschafft hast, dass du die IDs der channels speichern und wieder laden kannst, kannst du über die ID ganz einfach das channel objekt bekommen und dort nachrichten senden oder tickets erstellen

#

beim ticket system vom keks bot wird zum beispiel nur die ID der ticket kategorie gespeichert, für #🎫・tickets habe ich einfach einen command gemacht, mit dem man die button-nachricht direkt in einen channel senden kann, ohne dass man etwas abspeichern muss

indigo sapphire
indigo sapphire
#

hätte da eine frage warum ich nicht abchecken kann ob der ctx.author.id == owner_id ist.

if ctx.author.id == os.getenv('owner_id'):
                print('owner checked')
                await ctx.send_modal(modal)
            elif CheckPremium[0] == 1:
                print(CheckPremium[0])
                await ctx.send_modal(modal)
            else:
                await ctx.respond(f"**Member:** **{ctx.author.name}** hat keine ***berechtigung*** für den Command um es ausführen{ctx.author.name} du kannst auch deine Premium berechtigung bekommen, indem du auf dem Button: 'Get Premium' drückst. danach wirst du auf meinem server weiter geleitet.", view=view, ephemeral= True)
#

ich hab es mit os.getenv('owner_id') gemacht

#

in .env ist das hier owner_id=650456829712793655

indigo sapphire
#

Warum gibt der bot immer diese fehler?

Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 382, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1055, in on_connect
    await self.sync_commands()
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 642, in sync_commands
    registered_commands = await self.register_commands(
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 541, in register_commands
    registered = await register("bulk", data, _log=False)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 359, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In options.1: Required options must be placed before non-required options
#

irgenwie wird bei mir keine slash befehle angezeigt

#

kann mir da jemand helfen?

fickle creek
#
  File "C:\Users\merto\PycharmProjects\pythonProject\main.py", line 1, in <module>
    import discord
ModuleNotFoundError: No module named 'discord'```

weiss einer warum er discord nicht erkennt?
indigo sapphire
#

Nicht installiert?

fickle creek
fickle creek
solid ingot
#

schau Mal bei schritt 3 in #🔍・pycord-help

#

wahrscheinlich hast du's für eine andere Version installiert

fickle creek
#

ist das richtig?

solid ingot
#

ja das sieht gut aus

#

funktioniert es?

fickle creek
indigo sapphire
#

xD

solid ingot
#

hm komisch

indigo sapphire
#

ah das hab ich auch gehabt

solid ingot
#

das problem tritt normalerweise auf wenn man zB disocord.py noch installiert hat

indigo sapphire
#

👀

#

leider ist mein main futsch und muste alles neu machen

fickle creek
#

Nie mehr wieder stetzt ich mein pc zurück

indigo sapphire
#

du könntest auch in ordner gehen wo alle pip install gespeichert wird

#

und dort alles löschen

solid ingot
#

installier pycord nochmal neu

fickle creek
#

Hat funktioniert

#

Danki

solid ingot
#

sehr gut

atomic jasper
obtuse estuary
#

Code bidde

#

Immer #🔰・old-help-rules beachten

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tawny lily, du bist jetzt Level 4 🎉

obtuse estuary
#

Aso wo denn

urban glen
#

ja ich meine wo soll ich denn nach hilfe suchen=

#

?

solid ingot
indigo sapphire
#

Hey wie macht man das mit Button und der Embed/Naricht ändert sich?

Ohne es gelöscht zu werden und bearbeitet?

indigo sapphire
#

Ah ok 👍

#

Aber es wurde nicht editiert

#

Wie macht man den das?

fickle creek
#

Mit buttons

indigo sapphire
#

wenn man mit button macht kommt neue embed oder naricht

#

und es ist ein und die selbe naricht

solid ingot
#

zb mit interaction.response.edit_message()

indigo sapphire
#

naja interessante dort steht es nicht ob es bearbeitet ist

#

test

indigo sapphire
#

oh interessant wenn man es als embed editet wird nicht bearbeitet stehen

solid ingot
#

doch, wenn du eine nachricht bearbeitest steht immer da, dass die nachricht bearbeitet wurde

indigo sapphire
#

@solid ingot so hab ich es hier verstanden

fickle creek
#

also

#

weiss einer was er mir sagen will

solid ingot
#

klammern vergessen?

fickle creek
solid ingot
#

ah, das sollte await channel.send(embed=embed) heißen

#

sonst weiß discord nicht, dass das ein embed objekt ist und versucht das als text zu senden

fickle creek
#

danke

#

immernoch pepecry

obtuse estuary
#

Ja du hast auch die embed variable lost eingerückt

#

Muss eins nach rechts

#

Sry links

#

Und dan zwischen die = Leerzeichen

#

@fickle creek

fickle creek
#

mh

#

dankö

solid ingot
obtuse estuary
solid ingot
#

sehr gut röstiger jimmy

obtuse estuary
fickle creek
indigo sapphire
#

Ty

indigo sapphire
obtuse estuary
#

Ja iwi schon aber erst seit kurzem pepecry

indigo sapphire
#

Miau

#

🥲

indigo sapphire
#

was ist das den für eine error?

PS C:\Users\Manuel Berchtold\OneDrive - Kantonale Schule für Berufsbildung\Dokumente\Python\ShrioLaplaceBot\ShiroSystem> & "C:/Users/Manuel Berchtold/AppData/Local/Programs/Python/Python310/python.exe" "c:/Users/Manuel Berchtold/OneDrive - Kantonale Schule für Berufsbildung/Dokumente/Python/ShrioLaplaceBot/ShiroSystem/ShiroMain.py"
Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 382, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1055, in on_connect
    await self.sync_commands()
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 642, in sync_commands
    registered_commands = await self.register_commands(
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 541, in register_commands
    registered = await register("bulk", data, _log=False)
  File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 359, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In options.1: Required options must be placed before non-required options
solid ingot
#

wenn du options hast, die einen Default wert haben, müssen alle anderen Options davor kommen

indigo sapphire
#

also wenn ich im import option hab muss ich die nutzen?

#

und was muss ich da machen?

frail loom
#

Ich denke Timo meint das so, dass wenn du im Command Options hast die einen Default wert haben das du alle anderen Options ohne default wert davor schreiben musst

indigo sapphire
#

Hab ich gemerkt

#

Idk aber bei Option search von mir geht

#

Und team_search nicht

#

😅

indigo sapphire
indigo sapphire
#

was ist das den für ein fehler?

#

Es schickt keine Fehler raus was ist da los?

#

es sollte diese abschnitt schicken```py
if [search_unit, search_team] == None:
select = SevenDSGCDropdownsSelect()
for append_option in append_option_var_list:
select.append_option(append_option)
view = discord.ui.View(timeout=None)
view.add_item(select)
await ctx.respond('Wähle eine 7DSGC Funktionen in Dropdowns Menü', view=view, ephemeral=True)

uneven cedar
#

line 371
author = ctx.message.author
^
IndentationError: unindent does not match any outer indentation level

#

wie kann ich denn fehler beheben

indigo sapphire
#

Hey wie kann ich in SQlite abchecken ob mehrere Sachen gleich sind und danach auflisten was es gibt

#

zB in Table: Name

Tibue
ChangChi ect

solid ingot
#

du kannst verschiedene bedingungen mit AND verbinden

indigo sapphire
#

Okay wurde nicht aufgeklärt

#

Gute Frage andere Seits hab ich bischen mit Verifizierung befasst

solid ingot
#

nein, das stimmt nicht, ´keine sorge :)

fickle creek
#

dann ist dein fraund ein internationaler hacker

indigo sapphire
#

Um verifiziert zu werden müssen deine bot mindestens 75 Server drauf sein die du nicht drinn bist

frail loom
#

abend, wie bekomme ich das hin das die namen untereinander geschrieben werden?


embed.add_field(name="__Spieler__", value=f"{', '.join(serverquery.players.names)}‎ ")

wollte mit \n machen aber im string hinterm komma geht es nicht...

solid ingot
#

hm, bin mir nicht sicher, also ich hätte es eigentlich auch mit "\n".join probiert

frail loom
#

geht aber nicht im string

#

ist dann rot unterstrichen

frail loom
#

LÖSUNG

separator = '\n'

        embed.add_field(name="__Spieler__", value=separator.join(serverquery.players.names))
indigo sapphire
#

kann mir jemand helfen was ich da falsch gemacht hab?
Main.py

bot = bridge.Bot(
    command_prefix=prefix,
    status=status,
    activity=activity,
    case_insensitive=True,
    owner_ids=set(os.getenv('owner_ids')),
    debug_guild=os.getenv('debug_guild'),)

den code

@commands.is_owner()
    @slash_command(
        name='sql', 
        description = 'Konfiguriere ShiroSQLite database',
        )
    @option(
        name='mysql',
        description='Eingabe was du suchen willst wie zb Meliodas',
        default=None
    )
    @option(
        name='sqlite',
        description='Eingabe was du suchen willst wie zb Meliodas',
        default=None
    )
    async def sql(self, ctx, mysql, sqlite):
#

in .env datei

# Settings ID
owner_id=650456829712793655
owner_ids= [650456829712793655]
debug_guild=[1021771684589604904]
premium_serverID=[765970401083129886, 1014599831282528296, 1021771684589604904]
obtuse estuary
#

Was ist der Fehler?

indigo sapphire
#

fehler

File "C:\Users\Manuel Berchtold\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 2269, in predicate
    raise NotOwner("You do not own this bot.")
discord.ext.commands.errors.NotOwner: You do not own this bot.
#

wtf :3

#

650456829712793655 das ist mein id

obtuse estuary
#

Kp frag @solid ingot

indigo sapphire
#

ich fühl mich da dumm tibue hat gesagt man kann in check einfach rein tun und das wars quasi

#

im video

#

naja dann pech für mich

#

hab es herausgefunden liegt an bridge

#

muss alles neu umstellen leider

#

hey hätte da eine frage kann man dropdown menü editen?

obtuse estuary
#

Meinst du die Auswahl Möglichkeiten?

indigo sapphire
#

ja

#

hab ich nichts gefunden

solid ingot
obtuse estuary
indigo sapphire
#

Meinte das die gleiche select drop-down bleibt und alles andere verschwindet.

#

Danach eine neue Option erscheint,
So wie eine embed Page

#

Wie ich es mir vorstelle:

#

Mein Text
"Hier die drop-down Menü"

#

Wo Drop-down Menü ist, wird es verschwinden und eine neue kommt

#

Mein Text bleibt

indigo sapphire
#

wie kann ich zb wenn option MySQL gewählt wird die option SQLite Deaktivieren und nicht anzeigen lassen?

#

@solid ingot

indigo sapphire
#

also alles was danach geschrieben sollte genau sein

solid ingot
#

naja, schau dir nochmal genau das video an. um optionen dynamisch hinzuzufügen, brauchst du keine view klasse, sondern eine select klasse

indigo sapphire
#

ich hab das video 2 mal angeschaut und weiss immer noch nicht wie man option entfernen kann

solid ingot
#

naja, entfernen nicht direkt, aber du kannst sie entfernen, indem du sie nicht hinzufügst

indigo sapphire
#

joa wie du im meine code schon sehen kannst

#

sind 2 discord.SelectOption ein muss und daher kann ich sie nicht so einfach entfernen

#

@solid ingot
hättest du abend zeit so ab 20:00

obtuse estuary
#

Bestimmt hat er aber bitte nd immer pingen ^^

indigo sapphire
#

okay sryy

indigo sapphire
indigo sapphire
#

naja schluss endlich ist mir egal ob es tibue ist oder nicht Hauptsache , ich weiß das jemand mir in Coding Support hilft.

iron apex
#

vllt kann mir ja jmd weiter helfen , ich will beim slash command das der user sich einen store aussuchen kann , an diesem store soll aber eine id hinterlegt werden damit ich später mit diesem wert weiter arbeiten kann, kann man bei choices noch eine value hinterlegen oder kann man dies auch anders lösen ?

hier mal ein screen vllt wisst ihr ja wie ich es meine

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @iron apex, du bist jetzt Level 2 🎉

iron apex
solid ingot
#

hey, also versteckte infos kannst du bei choices nicht einbauen. um viele if-bedingungen zu vermeiden, könntest du zum beispiel ein dictionary verwenden

#

so zum beispiel

store_list = {
  "hamburg": "StoreID555",
  "berlin": "StoreID666",
}
#

@iron apex dann könntest du bei choices auch store_list.keys() hinschreiben zum beispiel

iron apex
#

jo vielen dank ich versuchs mal 🙂

indigo sapphire
#

Wait er will eine Auswahl haben?

Du könntest auch @Option macheb

indigo sapphire
frail loom
#

weiß jemand zufällig warum bei meinem Bot nicht das {/} zeichen angezeigt wird.
Nur bei meinem Main Bot.
Mein Minecraft server bot zeigt das an ^^

solid ingot
#

kannst du einen screenshot schicken, ich weiß nicht genau was du meinst?