#Allgemeine Hilfe

1 messages · Page 15 of 1

urban glen
#

Sogar diff oder discord4py ist besser als pycord

#

Danke für den Ping weird

floral monolith
#

@urban glen @solid ingot @urban glen

urban glen
#

@floral monolith @floral monolith @floral monolith

lofty haven
#

leider kommt da nur ein lik

#

link*

floral monolith
urban glen
lofty haven
#

will ja aber das avatar

urban glen
lofty haven
#

im embed sehen

urban glen
lofty haven
#

nee im title

urban glen
#

Du kannst es nicht als Titel machen

urban glen
lofty haven
#

wieso gleich so agro tf

urban glen
#

Und is nicht „agro“ smugdoggo

#

Alles einfach weiter nach hinten rücken

lofty haven
urban glen
solid ingot
#

ah, das ist der embed author

#

embed.set_author()

urban glen
#

Und ich dachte mir schon, was meint er mit avatar im titel? Haha hundxDD

lofty haven
#

ahh ok danke und tut mir leid dass ich nicht alles weiß -_-

lofty haven
#

hzm ganz ehrlich

#

sorry

urban glen
#

@solid ingot ich glaube die leute schauen deine Videos ohne ein wenig Grundwissen von python zu haben

lofty haven
#

kann man nicht mal was fragen ohne das man gleich beleidigt oder sonstiges wird

urban glen
#

Steht auch in den regeln

urban glen
#

„Tf“ is keine Beleidigung, falls du dies meinst

lofty haven
#

mein ich nicht

urban glen
lofty haven
#

und bitte helf mir nicht mehr wenn es dich abnervt

urban glen
lofty haven
#

woher willst du denn wissen was ich bisher alles gecodet habe

#

vlt hab ich einfach noch nie author benutzt und was auch immer

#

lass mich doch einfach fragen

solid ingot
#

entspannt euch bitte

#

@urban glen es ist schön dass du hier helfen magst, aber sei bitte auch zu leuten nett die etwas nicht verstehen oder noch nicht gut python können

urban glen
urban glen
lofty haven
#

ok is mir jetzt auch egal danke für die Hilfe auf jeden Fall

solid ingot
#

embed author ist keine python grundlage

urban glen
# solid ingot embed author ist keine python grundlage

Da geht es um pycord basics, aber ich red grad vom allgemeinem, dass gefühlt 80% der Member hier auf dem Server durch deine Videos direkt mit discord bots starten und eig nur alles abschreiben ohne es zu verstehen

solid ingot
#

ja eben, es ging eben um pycord basics, nicht um python basics

#

und auch bei python basics sollst du nett bleiben. du kannst dann einfach freundlich auf ein python tutorial verweisen oder gar nicht antworten wenn es dich nervt

#

ich werde unhöfliche nachrichten mit tf am ende nicht mehr länger dulden

#

@lofty haven du kannst hier gerne jederzeit sachen fragen, wenn nochmal jemand unhöflich ist mach am besten ein ticket auf

urban glen
solid ingot
#

es ist unhöflich. ende der diskussion

#

so ist gut

#

ist ja jetzt schon ganz links :D

urban glen
#

Machst du die Klasse in nem Cog?

#

Oder woher kommt der bot

#

Weil sonst müsstest du eigentlich interaction.client machen

#

Is doch nitro oder nd?

#

TohruWtf discord nitro basics

solid ingot
#

normalerweise hab ich kein nitro, aber mir wurde nitro basic geschenkt. diesen channel aber bitte nur für coding fragen nutzen

urban glen
#

Haha schick mal Nitro docs xD

#

Oder du könntest das Geld spenden, anstatt es einem Owner von Discord zu geben ._.

#

Ah das erklärts

#

xd

#

Is das der ganze error?
Oder gibts mehr? Wo auch nh Line steht

#

Ahh

#

Du hast klammern vergessen

#

Also beim Button

#

Wo du das modal sendest

#

MyModal()

#

Und wenns möglich ist, auch als screenshot xD, bin am handy

#

wenn du die klasse in nem cog machst, dann mach self.bot.get_channel

#

Und wenn du außerhalb vom Cog machst, dann mach interaction.client.get_channel

#

ok

#

xd

#

Welches hast du denn genommen?

#

self.bot oder interaction.client

#

Dann probier das andere

#

Hm?

#

Dann idk

#

Dachte in pycord is es wie in nextcord

#

Aber du könntest den bot von klasse zu klasse übergeben

solid ingot
#

ich hab dazu ein video gemacht

urban glen
#

Eig nd, beim modal machst du

def __init__(self, bot):
    self.bot = bot

Und beim senden vom modal machst du dann nur .send_modal(self.bot)

Und dann kannst du beim modal auch self.bot nutzen

urban glen
solid ingot
urban glen
#

Mit der aussage kann ich dir nicht besonders gut helfen

#

Eig hab ichs dir grad erklärt und vorgecodet

urban glen
#

Oder ner extra lib

solid ingot
#

mit der lib die ich auch für die youtube notifications nutze

burnt prairieBOT
#

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

Links aus diesem Video
Python Dictionary ► https://www.w3schools.com/python/python_dictionaries.asp
Gigachad ist traurig ► https://youtu.be/dxzW_sbltgE

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

PYCORD
Docs ► https...

▶ Play video
urban glen
#

Wieso machst du nicht mit den Youtube Developer shit, damit kann mans glaube auch machen, dann muss man aber mit mehr aiohttp oder requests arbeiten

solid ingot
#

genau deswegen

#

für das tutorial wollte ich es möglichst simpel machen

urban glen
#

Okö

urban glen
#

ohh

#

Nutze auch nh Fork

#

Lmao okay? Gelöscht? xd

#

nh fork?

#

da stehe ich aufm schlauch no jk

urban glen
#

Also pycord, nextcord, disnake, discord4py und sowas

#

ahhhhhhhhhhh

#

okay

#

jzt check ichs

#

okk

urban glen
#

sorry 😂

urban glen
#

Hier auch pycord

#

Und hier auch von discord4py (also soll dazu umbenannt werden)

quiet socket
#
C:\Users\Georgi\AppData\Local\Programs\Python\Python310\python.exe "C:\Users\Georgi\Documents\Georgi\Developer stuff\KUNDEN\ZZELA\main.py" 
Traceback (most recent call last):
  File "C:\Users\Georgi\Documents\Georgi\Developer stuff\KUNDEN\ZZELA\main.py", line 5, in <module>
    from discord.commands import Option
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\__init__.py", line 26, in <module>
    from .context import *
  File "C:\Users\Georgi\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\context.py", line 29, in <module>
    import discord.abc
ModuleNotFoundError: No module named 'discord.abc'

Process finished with exit code 1
#

code:

urban glen
# quiet socket

Uff will die datei nicht downloaden, jemand anders muss dir helfen

quiet socket
#

kk

solid ingot
#

sieht nach einer falschen version aus, schau mal in #🔍・pycord-help

urban glen
#

Code?

#

Aber schick als screenshot pls

#

Musst halt vom Cog den bot auch an den Button übergeben

#

Damit es dann zum modal übergeben werden kann

#

Also das selbe wie oben beim Modal, halt nur beim Button

#

Dann schick doch nur Code

#

Screenshot?

#

Bin am handy

#

ok

#

Dann muss dir wer anders helfen

#

?

#

?

#

?

#

?

#

Will dich nur verwirren

solid ingot
#

also wird "geschickt" gesendet, aber das embed nicht?

#

das embed müsstest du da noch hinzufügen

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

ich denke mit required=False

#

so denke ich

discord.ui.InputText(
                label="Schreibe hier deine Bewerbung",
                placeholder="Placeholder",
                style=discord.InputTextStyle.long,
                required=False
            ),
brazen scarab
solid ingot
#

ich seh da kein fehler aktuell, hast du den message content intent an?

wise stone
#

bzw. mach daraus nen slash command @urban glen

#

und nutzt du discord.Bot oder commands.Bot 🤔

#

oder bridge.Bot

#

und wenn du !bewerbun..... sendet kommt da was?

#

oder nichts

brazen scarab
#

da kommt das embed oben und der button da drunter

wise stone
#

ist theoretisch egal

#

äh ich sehe was da

#

du hast im Button class den Parameter self.bot übergeben

#

hast es aber nicht im Code davor nicht gemacht

#

wo das View gesendet wird

#

müsstest dann in den () noch self.bot einfügen

#

beim modal auch

#

und wieso interaction._client_.get_channel?

#

mach das Client da raus

#

kannst auch self.bot.get_channel machen da du den Parameter bot übergehen hast

#

und beim command unter ansyc alles ein Tab nach links

#

nicht richtig eingerückt

solid ingot
#

dafür brauchst du subcommand groups

solid ingot
#

nein noch nicht

solid ingot
#

machst du das nicht schon?

#

also entweder kann man das direkt in der SQL abfrage machen oder du erstellst eine if abfrage in python

solid ingot
#

achsoo

#

dann kannst du einfach team != 0 schreiben

wise stone
#

== heißt ob es 1zu1 steht
!= halt das Gegenteil

solid ingot
#

genau

fluid leaf
#

@solid ingot er nimmt deine Regeln ernst

urban glen
#

Worum gehts?

#

Hast du da noch nh problem?

Könnte helfen, aber bin am Handy

#

Also bräuchte Screenshot

#

Nvm doch nd

#

Setz mich grad an meinen Pc

#

Channel getten und reinschicken

#
channel = ctx.guild.get_channel(ID)
await channel.send(embed=embed)```
#

Und halt wenn es ein channel ist, der auf einem bestimmten server ist, dann einfach

guild = self.bot.get_guild(ServerID)
channel = guild.get_channel(ChannelID)
await channel.send(embed=embed)```
#

bewerbungsmsg?

#

self.bot

#

Wenn es in nem Cog is

#

Was meinst du?

#

await self.bot.send_message(f"{interaction.user.mention} Bewerbung wurde ans Team gesendet!", ephemeral=True) was wird das?

#

So:
await interaction.response.send_message(f"{interaction.user.mention} Bewerbung wurde ans Team gesendet!", ephemeral=True)

#

Bisschen mehr error wäre besser

#

Hm?

#

Wieso hast du nen eigenen Error Handler eyes_cry

#

Wie soll man dir dann helfen

#

Ohne mehr details?

#

Jemand nh Idee was ich in meinen Bot einbauen könnte?

#

Zum 3. mal, ich brauch was schwereres

#

Nein. Du kannst halt einfach kein Python (nicht böse gemeint)

#

Wie gesagt, könnte dir mit Live Share helfen, aber du nutzt ja nh IDE

#

Und ich kann über VSCode nicht mit Liveshare auf Pycharm zugreifen, falls es die extension da überhaupt gibt

cloud cedar
#

Hab grad in Pycord help geschaut kriegs aber nicht hin. Hab glaube alles richtig installiert, aber "no module named 'discord'" kommt sobald ich import discord schreib

#

Wie fix ich das

alpine axle
#

Lade den pycord runter

cloud cedar
#

hab ich

alpine axle
#

Dan normales discors

cloud cedar
#

wie

#
``` das wars
#

das hab ich doch

urban glen
#

Nein seh ich nicht? ._.

#

Das wird da nicht stehen, kannst es deaktivieren

#

Man kann auswählen ob ich dann Terminal sehe oder nd

#

Mein VSC Background, so sexy

cloud cedar
urban glen
#

Gibt extensions dafür

cloud cedar
#

ol´ksfsdiuhbfuid

cloud cedar
urban glen
#

Is vsc basics

#

man sollte sich auch mit seiner entwicklungsumgebung vertraut machen

cloud cedar
urban glen
#

Nutze keine IDE, also idk

alpine axle
#

Also es gibt nh Extension

urban glen
#

Gibt viele Extensions

alpine axle
#

Für den Hintergrund

urban glen
alpine axle
#

Sag Mal die Extension die du benutzt

urban glen
#

hab kb vsc zu öffnen

alpine axle
#

Ey weißt du warum das hier bei mir so ist

#

Warte ich zeig dir

cloud cedar
#

bot = discord.Bot()
AttributeError: module 'discord' has no attribute 'Bot'

import discord

bot = discord.Bot()

bot.run()

#

Was zum

alpine axle
#

Discord hat kein Attribute bot

urban glen
alpine axle
#

Da steht ..

#

Running] python -u "c:\Programieren\pythonProject\test.py"
Hello

[Done] exited with code=0 in 0.451 seconds

urban glen
#

Is doch richtig

cloud cedar
alpine axle
#

Ja aber manchmal Krieg ich kein oitput

alpine axle
#

Aber benutzt Mal bot.Client

alpine axle
#

Und da. Sag .Al den theme

urban glen
#

Mein Background ist ein eigenes, is nicht in Doki Theme enthalten

#

Is nh Lokales Bild

cloud cedar
urban glen
#

Das ich transparentiert habe

urban glen
#

Was wird das wenn es fertig is?

alpine axle
#

Nein sorry discord.Client

cloud cedar
alpine axle
#

Mit klammern

cloud cedar
#

bot = discord.Client()
AttributeError: module 'discord' has no attribute 'Client'

urban glen
alpine axle
#

Den prefix kannst du zu irgendwas machen

cloud cedar
cloud cedar
cloud cedar
#

ne

#

kp wie aber habs noch mal uninstalled und installed, geht jetzt

tough thicket
solid ingot
#

hast du den message content intent aktiviert?

solid ingot
#

auch im code?

solid ingot
#

okay gut

#

lass dir vielleicht mal den message content ausprinten

#

evtl liegt es am ausrufezeichen

#

das muss nicht zwangsläufig immer mit drin sein

tough thicket
solid ingot
#

hast du dir die nachricht mal ausprinten lassen?

tough thicket
#

wie meinst?

#

prints einbauen an paar stellen?

#

achso

solid ingot
#

genau, also print(message.content), damit du siehst wo der fehler ist

solid ingot
#

schick mal den ganzen code

tough thicket
#
@bot.event
async def on_message(message):
    max = '@tough thicket'
    print("1")
    print(message.content)
    if max in message.content:
        print(message.content)
        print("2")
        await message.channel.send("Max ist gleich da!")
        print("3")
solid ingot
#

schick mal den ganzen oberen teil wo du dein bot definierst

tough thicket
# solid ingot schick mal den ganzen oberen teil wo du dein bot definierst

import discord
import asyncio
import os
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
from dotenv import load_dotenv
import json

# Message-Counter
from discord.ext import commands
from discord.ext import tasks
import sqlite3


intents = discord.Intents.default()


bot = discord.Bot(command_prefix='.', intents=intents)

Sieht halt aktuell so aus

solid ingot
#

das muss weg

#

damit überschreibst du die intents, die du darüber definiert hast

tough thicket
#

ah ne, passt

#

klappt schon, danke dir sehr! dog_love

solid ingot
#

freut mich!

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @trail locust, du bist jetzt Level 13 🎉

solid ingot
#

nein

floral monolith
solid ingot
#

schreib immer dazu was genau nicht geht oder welchen Error du bekommst

#

message content intent an?

tough thicket
#

Hey, wie fixe ich

In emoji_id: Value "" is not snowflake.```
#

der error kommt von:

 await message.add_reaction(':max1385:')

in einem cog

urban glen
#

Musst es so machen

#

Was hat das mit max zutun?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @past temple, du bist jetzt Level 18 🎉

tough thicket
urban glen
#

Hab ich schon

#

Weißt du doch, hast ja selber meinen Code

#

bist so Lustig

#

Hab den Code nur für dich bisschen überarbeitet

#

Wie gesagt, habs für dich überarbeitet

#

Hab ja eig auch, dass man mit Buttons Skippen kann und sowas

#

Welchen Server?

#

Hab ich

#

hab schon einiges

urban glen
#

Brauch ich nicht

#

wofür?

#

nein?

#

Weil es kein öffentlicher Bot sein soll

#

Nein.

#

Das Music System beim Bot läuft mit Youtube und wenn er auf nem anderen Server is, dann zählt er als Öffentlich und das verstößt gegen die ToS

#

Der ist auf meinem privaten Server

#

Wo nur ich drauf bin

#

Wie gesagt, nicht öffentlich

#

Hä?

#

Wie "ist ja ned lustig"

#

Ja? ist ja auch richtig so?

#

Ich code ja nicht um es zu veröffentlichen oder so, sondern nur weil ich Aufgaben brauche

#

Also wofür sollten den mehr leute benutzen?

#

nein?

#

Dann wäre er ja "öffentlich"

#

Wenn mehr als der Bot Owner auf dem Server sind

urban glen
#

mach nur deathrun um xp zu bekommen

wise stone
#

was laberst du für ein Shit

#

Es ist erst gegen die ToS von YouTube wenn du dafür Geld verlangst z.b. Premium und co.

#

Du kannst es natürlich in öffentlichen Bots tun solange man an den Angaben von YouTube hält und wie gesagt kein Geld verlangst o.ä.

urban glen
#

Deshalb wechseln die meisten ja zu soundcloud

wise stone
urban glen
wise stone
#

if abfragen ._.

brazen scarab
#
work = discord.SlashCommandGroup("work", "test")
    @work.command(name='legal')
    @work.command(name='illegal')

Wenn ich bot = discord.Bot nehme, habe ich ja nur Slash Befehle aber wie pack ich das in meine Group? Ich hab keinen Error nix aber der Befehl ist auch nicht da thinkCat

brazen scarab
#

Weiß nicht genau wofür du da jetzt meinen Code brauchst LUL

#

Habs ^^

urban glen
#

Weil du nicht richtig geschickt hast

brazen scarab
#

Das sind halt nur ausschnitte

#

Keine Ahnung was du hast

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @brazen scarab, du bist jetzt Level 12 🎉

brazen scarab
#

Kann man Slash Commands Groups nicht im Cog benutzen?

#

Ich verstehe sowieso nicht wieso das ein Prefix ist. Das soll ja immer in einem Channel bleiben. FalseFacePalmLaugh

#

Moment ...

#
    @commands.command()
    @commands.is_owner()
    async def bewerbungsmsg(self, ctx):
        embed = discord.Embed(
            title="A",
            description="A",
            color=0x2f3136
        )
        await ctx.send(embed=embed, view=bewerbungsviewer(self.bot))```

änder den Befehl zu das
#

Den kannst du ausblenden?

#

Das Thema hatten wir schonmal

#
    @discord.slash_command(description="Leere einen Channel")
    @default_permissions(manage_messages=True)```

Den Befehl sieht nur der der die permission `manage_messages` hat
#

Andere sehen ihn nicht

#

administrator

#

Für gewöhnlich gibt man niemandem administrator. Die permission hat man aber immer als besitzer

#

f string vergessen

#

!bewerbung /bewerbung

#

?!

#

Da hab ich lieber eine Liste, die mir zeigt was mein Bot kann kekw

#

Wenn du 582375890273890 Commands hast, die über Prefix laufen

#

Viel Spaß sich das alles zu merken

#

Unnötig in meinen Augen. Aber jeder, wie er möchte.

#

Ja, der funktioniert nichtmehr, weil der Bot den alten Button nichtmehr kennt

frail loom
brazen scarab
frail loom
#
    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(SelectUI())
#

so glaube ich

#

also so in etwa wenn man eine view classe nutzt ^^

#

war bei mir in einem cog deswegen das self

brazen scarab
frail loom
#

wie hast du den cog denn geladen wenn ich mal so fragen darf ? ^^

dense magnet
#

self.bot.add_view

#

du bist in einer cog

#

Dazu kannst du, wenn du nur ein embed schickst, einfach embed=embed benutzen. embeds=[] benutzt du wenn du mehr als eins schicken willst

#

bewerbungsviewer(self.bot)

#

Fehler lesen

frail loom
dense magnet
#

Wenn du was tust?

frail loom
#

und was kommt für ein fehler ?

dense magnet
#

Schick den button einmal neu ab

#

cool? xd

frail loom
#

(bewerbungsviewer(self.bot)) ohne self.bot

dense magnet
#

du musst dem view eine custom id geben

#

wies auch im error steht

#

Damit du einen view persistent machen kannst musst du dem Button eine Custom ID geben

#
    @discord.ui.button(label="Bewerben!", style=discord.ButtonStyle.grey, emoji="📝", custom_id="DEINECUSTOMID")```
#

ca so

#

vollkommen egal

#

In welchem?

#

Was willst du da denn machen?

#

Nein du musst das auch da eintragen wo du den Button erstellst

tawdry leaf
#

Und du musst bei View noch timeout=none machen

#

Kann dir später zeigen wie des geht Handy ist schlecht grad

brazen scarab
#

Ah nvm

#
class bewerbungsviewer(discord.ui.View):
    def __init__(self, bot, *items: Item):
        super().__init__(*items, timeout=None)
        self.bot = bot```

@urban glen
brazen scarab
tawdry leaf
#

Ja sag ich doch sowas 😅

fluid leaf
#

discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: ValueError: could not find open space for item
Code:

from discord.ext import commands
from discord.commands import slash_command
from Config.Views.emmodal import *

class Sayembed(commands.Cog):
    def __init__(self, client):
        self.client = client

    @slash_command(description="Erstelle dein Embed")
    @commands.has_permissions(administrator=True)
    async def embed(self, ctx):
        modal = emModal(title="Erstelle ein Embed")
        await ctx.send_modal(modal)


def setup(client):
    client.add_cog(Sayembed(client))
wise stone
#

und das discord da entfernen

#

und debug guilds nutzen sollte dann gehen

brazen scarab
mystic sentinel
#

wenn ich eine Option mit ein ein slash command mit rein machen will konnte man das nicht so machen das der user sich aus suchen konnte ob er die option benutzt oder nicht

mystic sentinel
tender horizon
#

Es ist falsch ein gerückt die class

urban glen
#

@cloud cedar schreibt...

cloud cedar
#

await value.callback(interaction)
TypeError: meinmodal.callback() missing 1 required positional argument: 'bot'

Was da los? Was hab ich falsch gemacht

        embed = discord.Embed(title=self.children[0].value, description=self.children[1].value)
        channel = await self.bot.fetch_channel(18718718718718718769420)
        await channel.send(embed = embed)





class TestView(discord.ui.View):
    @discord.ui.button(label="Mal was testen")
    async def button_callback(self, button, interaction):
        await interaction.response.send_modal(meinmodal(title = "Funzt ned"))```
#

@urban glen schreibt

urban glen
#

Also ausm Cog oder so

cloud cedar
urban glen
#

Du musst halt, da wo du den Button sendest auch TestView(self.bot) machen

#

Und beim View musst du den Bot hinzufügen

cloud cedar
#

Ja kp

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

    @slash_command()
    async def bewerben(self, ctx):

        await ctx.respond("Bewerbe dich hier als Mod.", view=BewerberView(bot=self.bot))


class bewerbemodal(discord.ui.Modal):
    bot = None

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

    async def callback(self, interaction):
        embed = discord.Embed(
            title=self.values[0], description=self.values[1])
        channel = await self.bot.fetch_channel(channelid lol)
        await channel.send(embed=embed)


class BewerberView(discord.ui.View):
    def __init__(self, bot):
        self.bot = bot

    @discord.ui.button(label="Als Moderator Bewerben")
    async def button_callback(self, button, interaction):
        await interaction.response.send_modal(bewerbemodal(bot=self.bot, title="Test"))


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

Kommt nen error
frail pewter
#

Guten Morgen,
ich wollte einen command schreiben mit dem ich Infos über User in eine Datenbank eintragen und diese auch wieder abrufen kann leider hab ich null Ahnung wie das geht deswegen wollte ich fragen ob sich damit jemand auskennt oder jemand weiß wo ich mir ein tutorial oder sowas davon anschauen kann.

urban glen
frail pewter
urban glen
quiet socket
#

wie kann ich das fixen?

#

@urban glen bist du jetzt auch web dev?

urban glen
wise stone
#

und der Parameter bot fehlt im super init

cloud cedar
wise stone
#

und beim slash command

#

nur self.bot kein bot=self.bot

wise stone
#

ups Def init

cloud cedar
#

das hier oben auch falsch?


def  __init__(self, bot):
        self.bot = bot
quiet socket
wise stone
#

nur bei der View class

#

schau die Tutorials nochmal an

wise stone
#

müsstsst einfach nur neuen Projekt erstellt ansonsten neu setupen

quiet socket
#

okay

brazen scarab
#
import asyncio
import discord
from discord.ext import commands
import aiosqlite

settings = discord.SlashCommandGroup("settings")


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

    @settings.command()
    async def welcome(self, ctx):
        if ctx.message.author.bot:
            return
        await ctx.respond("Wähle deinen Channel")
        def check(m):
            return m.author == ctx.author and m.channel == ctx.channel
        try:
            message = await self.bot.wait_for('message', check=check, timeout=60.0)
        except asyncio.TimeoutError:
            await ctx.send('Du hast leider zu lange gebraucht.')
            return
        channel = message.channel
        if channel.type == discord.ChannelType.text:
            db = await aiosqlite.connect('guilds.db')
            cursor = await db.cursor()
            await cursor.execute(
                "CREATE TABLE IF NOT EXISTS guild_settings (guild_id INTEGER PRIMARY KEY, welcome_channel_id INTEGER)")
            await cursor.execute("INSERT INTO guild_settings (guild_id, welcome_channel_id) VALUES (?,?)",
                                 (ctx.guild.id, channel.id))
            await db.commit()
            await ctx.respond(f'Willkommenschannel gesetzt: {channel.mention}')
        else:
            await ctx.respond("Ungültiger Channel. Bitte wähle einen Textchannel aus")


def setup(bot):
    bot.add_cog(Settings(bot))
    bot.add_application_command(settings)

Ich versuche mich grade an diesen Commands Groups sadpanda
Hab jetzt auch mal geschaut aber irgendwie finde ich darüber nichts innerhalb von Cogs ...
Mein Problem : Der will immer nen Context.. Liegt wohl daran async def welcome(self, ctx): Aber wie kann ich das anders machen? sadpanda

quiet socket
paper iris
paper iris
brazen scarab
#

Ich versuche mich grade an diesen Commands Groups

urban glen
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @scenic vine, du bist jetzt Level 2 🎉

Du hast <@&1042123300970696705> erhalten!

quiet socket
#
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'Member' object has no attribute 'avatar_url'```
#

was kann ich stattdessen nutzen?

quiet socket
#

danke

cloud cedar
#

Wie mach ich ne Beschreibung für einen Slash_Command

urban glen
cloud cedar
#

in die klammern bei @slash_command(hier)?

dense magnet
#

ja

cloud cedar
#

danke

burnt prairieBOT
#
Keks

@cloud cedar hat @dense magnet einen Keks geschenkt!

@dense magnet hat jetzt 1 Kekse keks

#
Keks

@cloud cedar hat @past temple einen Keks geschenkt!

@past temple hat jetzt 73 Kekse keks

urban glen
#

@cloud cedar in #🔗・bots

cloud cedar
urban glen
#

Dafür ist der channel da

cloud cedar
#

Wollt ja aber nicht großartig befehle ausführen sondern euch nen Keks geben

burnt prairieBOT
#
Keks

@past temple hat @cloud cedar einen Keks geschenkt!

@cloud cedar hat jetzt 142 Kekse keks

#
Keks

@past temple hat @cloud cedar einen Keks geschenkt!

@cloud cedar hat jetzt 143 Kekse keks

#
Keks

@past temple hat @cloud cedar einen Keks geschenkt!

@cloud cedar hat jetzt 144 Kekse keks

urban glen
#

Wie kann ich alle meine Kekse weg geben?

cloud cedar
#

das is jetzt aber wirklich spammen kollege

burnt prairieBOT
#
Booster Bestenliste

1. @stuck drift - 126 Tage geboostet
2. @frail loom - 122 Tage geboostet
3. @jagged wolf - 94 Tage geboostet
4. @icy jungle - 94 Tage geboostet
5. @astral saffron - 94 Tage geboostet
6. @iron apex - 86 Tage geboostet
7. @craggy yew - 77 Tage geboostet
8. @limpid wolf - 65 Tage geboostet
9. @floral monolith - 64 Tage geboostet
10. @narrow dune - 51 Tage geboostet
11. @fossil vortex - 46 Tage geboostet
12. @obtuse estuary - 33 Tage geboostet
13. @cloud garden - 30 Tage geboostet
14. @umbral goblet - 30 Tage geboostet
15. @obsidian steeple - 19 Tage geboostet

cloud cedar
#

die brauch man nicht
du brauchst auch kein danke
ist trotzdem nice

solid ingot
#

bitte in #🔗・bots @urban glen

cloud cedar
#

Wie krieg ich nochmal die url vom guild icon

solid ingot
#

guild.icon.url

urban glen
solid ingot
#

wenn jemand anders was falsch macht, heißt das nicht dass es dann für dich erlaubt ist. außerdem kann man gerne mal kekse als dankeschön verteilen, das booster leaderboard gehört aber nicht in den help kanal

urban glen
#

Sind unnötig für mich

solid ingot
#

das ist kein grund bot commands in den help kanal zu spammen

cloud cedar
#

Ich hab außerdem nich gespammt sondern mich bedankt
anyways braucht irgendwer hilfe beim coden
weil ich nämlich nicht helfen kann weil ich lost bin

cloud cedar
solid ingot
#

naja also du brauchst halt das server objekt wenn du von einem server das icon haben willst

solid ingot
#

in einem slash command zb mit ctx.guild

cloud cedar
#

#

bin ich dumm

#

ich wollte den link in den footer pfeffern

tender horizon
#
Ignoring exception in command home:
Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
  File "C:\Python310\lib\site-packages\discord\commands\core.py", line 970, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "e:\bot\cogs\home.py", line 46, in home
    await ctx.respond(embed=embed, file=file, view=view, ephemeral=True)
  File "C:\Python310\lib\site-packages\discord\commands\context.py", line 282, in respond
    return await self.interaction.response.send_message(
  File "C:\Python310\lib\site-packages\discord\interactions.py", line 825, in send_message
    await self._locked_response(
  File "C:\Python310\lib\site-packages\discord\interactions.py", line 1090, in _locked_response
    await coro
  File "C:\Python310\lib\site-packages\discord\webhook\async_.py", line 213, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction

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

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\discord\bot.py", line 1088, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Python310\lib\site-packages\discord\commands\core.py", line 374, in invoke
    await injected(ctx)
  File "C:\Python310\lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: NotFound: 404 Not Found (error code: 10062): Unknown interaction
#
@slash_command(description="Zeige dein Zuhause")
    async def home(self, ctx):
        await check_user_home(ctx.author.id)
        lager = await lager_raum_len(ctx.author.id)
        home_id = await get_home(ctx.author.id)
        bar_geld= await get_money(ctx.author.id)
        bank_konto = await get_bankkonto(ctx.author.id)
        ges_geld = bar_geld + bank_konto
        hausnummer = await get_hausnummer(ctx.author.id)
        bages= await get_bages(user_id=ctx.author.id)
        embed = discord.Embed(title=f"Zuhause von {ctx.author}", description=f"**Hausnummer: {hausnummer}**", color=discord.Color.yellow())
        embed.add_field(name="Inventar",value=f"Abstellraum: {lager}/20")
        embed.add_field(name="Geld", value=f"Bankkonto: {bank_konto}$\nBargeld: {bar_geld}$\nGesammtes Geld: {ges_geld}$", inline=False)
        embed.add_field(name="Bages", value=bages)
        file = discord.File("home.jpg", filename="image.png")
        embed.set_image(url="attachment://image.png")
        select=home_select()
        view=discord.ui.View(timeout=None)
        view.add_item(select)
        await ctx.respond(embed=embed, file=file, view=view, ephemeral=True)
cloud cedar
#

Wie konnte man nochmal checken ob ein User eine Rolle hat?
irgendwas mit role = idvonderrolle
und dann
if role in ???
dann mach was

#

Nen bewerbungscommand, mit dem man sich nur mit der Levelrolle 5 bewerben kann

#

ja

#

wohin mach ich das

dense magnet
dense magnet
#

gern

cloud cedar
#

Muss ich dann in meiner class auch ctx hinzufügen?

#

oder bei Button?

dense magnet
dense magnet
cloud cedar
#

ich versteh garnix mehr

dense magnet
#

Das btw sowieso nicht

dense magnet
cloud cedar
dense magnet
#

bot_has_role überprüft die rollen vom Bot User nicht von dem User der anfragt

cloud cedar
dense magnet
#

Du benutzt ctx nur bei commands

#

Bei Interactions bzw views nutzt du interaction

cloud cedar
dense magnet
#

also machst du statt ctx interaction

dense magnet
cloud cedar
dense magnet
#

?

#

#

hab ich dir doch grade erklärt xd

cloud cedar
#

sorry, aber ich verstehs einfach null

#

lul

dense magnet
cloud cedar
#

Danke, glaub es is echt schwer jemanden mit meinem iq (2) das zu erklären,
darf ich dir einen Keks überreichen?

dense magnet
#

alles super xd

cloud cedar
#

Wie kann ich ne Rolle mit der Id pingen? Also mit den <> dingern

solid ingot
#

<@&ID>

cloud cedar
cloud cedar
#

Kann ich mehrere Buttons in einer Nachricht haben, die verschiedene Modals aufrufen?

cloud cedar
urban glen
cloud cedar
#

ok

#

Hab aktuell das Problem dass das Modal nicht gesendet wird, aber ich auch keinen Error krieg

wise stone
#

Code?

wise stone
#

wäre nett es einfach hier so zu senden

cloud cedar
#

glaub zu groß

#

sieht man auch nicht ganz

#

dann sorry

wise stone
#

@cloud cedar die class müssen außerhalb der cog class sein

wise stone
#

einfach die class runter schieben -_-

cloud cedar
#

ACHSO

lofty haven
#
class KIntConverter(commands.Converter):
    async def convert(self, ctx, argument):
        match = re.match(r"(\d+(?:[.,]\d+)?)(k|m|b|t)?", argument.lower())
        if match:
            number = Decimal(match.group(1).replace(",", "."))
            if match.group(2) == "k":
                number *= 1000
            elif match.group(2) == "m":
                number *= 1000000
            elif match.group(2) == "b":
                number *= 1000000000
            elif match.group(2) == "t":
                number *= 1000000000000
            return int(number)
        raise commands.BadArgument("This is not a valid number.")```
#

wie kann ich hier einfügen dass ich bei "all" all das geld es users nehme

#
    def format_money(self, amount: int) -> str:
        return "{:,}".format(amount).replace(",", " ")

    async def check_user(self, user_id):
        async with aiosqlite.connect(self.DB) as db:
            await db.execute("INSERT OR IGNORE INTO economy (user_id) VALUES (?)", (user_id,))
            await db.commit()

    async def get_money(self, user_id):
        await self.check_user(user_id)
        async with aiosqlite.connect(self.DB) as db:
            async with db.execute("SELECT money FROM economy WHERE user_id = ?", (user_id,)) as cursor:
                result = await cursor.fetchone()

            return self.format_money(result[0])```
#

falls das hilft

indigo sapphire
#

hey hätte jemand eine ahnung ob so ein premission gibt wenn jemand die rechte bzw nicht in der datenbank eingetragen wurde den befehl zb nicht sehen kann?

urban glen
#

Bin noch Dosiert mit paar Tabletten, also helf ich lieber nicht lmao

#

Sonst kommt nur shit bei rum

indigo sapphire
brazen scarab
#

Kann mir grade ma einer sagen, wie ich den Avatar vom Bot rausfinde im cog? self.bot.display_avatar.url war es scheinbar nicht peepothink

solid ingot
#

self.bot.user.display_avatar.url

solid ingot
brazen scarab
urban glen
#

?

indigo sapphire
urban glen
#

Wie random

#

Lmao

urban glen
brazen scarab
urban glen
# indigo sapphire So bezogen

Das „wie random“ war garnicht hier gedacht xD, wollte oben bei Notifications jemandem antworten (halt iphone xD)

brazen scarab
#

Frag ich jetzt nochmal? kekw
{len(ctx.bot.users)} (Das gibt mir alle User.. Ich will aber nur die Bots haben)

urban glen
#

Von nem server?

brazen scarab
urban glen
#

len(ctx.guild.members) damit bekommst du die member

brazen scarab
#

Ja super

#

Das weiß ich auch. kekw

#

"Ich will aber nur die Bots haben"

urban glen
#

._.

#

Kannst du dir nicht denken wie man das macht? xd

brazen scarab
#

Nein, keine Ahnung sonst würde ich nicht fragen.

urban glen
#

count = 0
for member in ctx.guild.members:
    if member.bot:
        count += 1
#

Ungefähr so

#

Sorry falls es falsch eingerückt is, habs aufm handy gemacht

urban glen
brazen scarab
#

Ja ne dann lass ich das weg, das macht meinen schönen Code kaputt lol

#

Dumm das es nicht einfach nen ctx.bots_count gibt

urban glen
brazen scarab
urban glen
#

Man sollte nicht auf schönheit achten, was ich empfehlen kann, is nur sich an pep8 zu halten.

brazen scarab
#

Nagut, sieht auch so gut aus. Danke ^^

brazen scarab
urban glen
#

#💬・chat message

brazen scarab
#

Hätte auch gereicht 3378_BurningPanda

urban glen
#

i for i in ctx.guild.members if i.bot müsste auch gehen

brazen scarab
#

Frag mich nicht, das hat mir Lara grade gegeben damit mein Code wieder hübsch ist kekw

urban glen
#

...

burnt prairieBOT
#

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

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

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

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

▶ Play video
solid ingot
#

@mystic flower schau dir das an, da zeige ich genau das mit den rollen

mystic flower
#

okay

urban glen
#

Hey, ich habe hier seit mehreren Tagen einen Error der immer häufiger Auftritt obwohl die Commands früher immer funktioniert haben.

mystic flower
#

Zeig mal den code

#

@urban glen

urban glen
#

Hab das Problem schon behoben aber trotzdem Danke

mystic flower
#

jo

tough thicket
#

https://discord.com/channels/1010915072694046794/1059632568158400592 wie kann ich hier diesen Error fixen:


Traceback (most recent call last):
  File "/home/container/.local/lib/python3.9/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/home/container/main.py", line 97, in vanity_task
    vanity = await has_vanity(member)
  File "/home/container/main.py", line 78, in has_vanity
    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
TypeError: argument of type 'NoneType' is not iterable

tough thicket
frail pewter
#

Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 936, in exec_module
File "<frozen importlib._bootstrap_external>", line 1074, in get_code
File "<frozen importlib._bootstrap_external>", line 1004, in source_to_code
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\admin\PycharmProjects\Discord_bot\cogs\rep.py", line 17
channel = await self.bot.fetch_channel(1064581390961754173)
^
IndentationError: expected an indented block after function definition on line 13

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

Traceback (most recent call last):
File "C:\Users\admin\PycharmProjects\Discord_bot\main.py", line 138, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "C:\Users\admin\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\admin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.rep' raised an error: IndentationError: expected an indented block after function definition on line 13 (rep.py, line 17)

Kann mir jemand verraten was das Problem ist

solid ingot
#

du hast eine mothode rep, jedoch ist diese leer, deswegen wird der error angezeigt

#

außerdem ist das @slash_command zu weit nach rechts eingerückt

frail pewter
frail pewter
solid ingot
#

stelle am besten erstmal sicher, dass deine einrückung richtig ist

#

bei dir ist das zu weit rechts eingerückt

frail pewter
solid ingot
solid ingot
frail pewter
solid ingot
#

das author muss weg

frail pewter
solid ingot
#

ah

#

ctx.author

frail pewter
#

okay Danke

frail pewter
#

@commands.cooldown(86400s, commands.BucketType.user)

wenn ich einen 24 stunden cooldown auf den befehl haben möchte muss ich ich das eingeben oder?

solid ingot
#

das s brauchst du nicht, aber ja

#

und ich denke die rate fehlt noch

#
@commands.cooldown(1, 86400, commands.BucketType.user)
frail pewter
frail pewter
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @frail pewter, du bist jetzt Level 5 🎉

Du hast <@&1024276691205496872> erhalten!

solid ingot
#

dafür brauchst du ein error event

frail pewter
wise stone
#

der Error kommt weil manche User kein Status haben deswegen

urban glen
# tough thicket Wo meinst du jetzt?
async def has_vanity(member: discord.Member):
    if not len(member.activities) == 0:
        for i in member.activities:
            if isinstance(i, discord.CustomActivity):
                try:
                    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
                        return True
                except NoneType:
                    return "was du halt sagen willst"
    else:
        return False```
tough thicket
#

okay, schaue gleich mal

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tough thicket, du bist jetzt Level 7 🎉

tough thicket
# urban glen ```py async def has_vanity(member: discord.Member): if not len(member.activi...

Unhandled exception in internal background task 'vanity_task'.
Traceback (most recent call last):
  File "/home/container/main.py", line 79, in has_vanity
    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
TypeError: argument of type 'NoneType' is not iterable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.9/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/home/container/main.py", line 99, in vanity_task
    vanity = await has_vanity(member)
  File "/home/container/main.py", line 81, in has_vanity
    except NoneType:
NameError: name 'NoneType' is not defined


#

@wise stone

wise stone
#

@tough thicket dann nur except

tough thicket
#

async def has_vanity(member: discord.Member):
    if not len(member.activities) == 0:
        for i in member.activities:
            if isinstance(i, discord.CustomActivity):
                try:
                    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
                        return True
                except:
                    return "Mitglied hat keinen Status."
    else:
        return False

#

jetzt vergibt er die Rolle, obwohl leute nicht mal den link im status haben

wise stone
#

bruh what

#

gang falsch

#

async def has_vanity(member: discord.Member):
try:
    if not len(member.activities) == 0:
        for i in member.activities:
            if isinstance(i, discord.CustomActivity):
                
                    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
                        return True
                
    except NoneType:
        pass

#

es nruckung ist bissl falsch

#

einrückung*

#

bin am Handy deswegen

tough thicket
#


Unhandled exception in internal background task 'vanity_task'.
Traceback (most recent call last):
  File "/home/container/main.py", line 79, in has_vanity
    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
TypeError: argument of type 'NoneType' is not iterable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.9/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/home/container/main.py", line 99, in vanity_task
    vanity = await has_vanity(member)
  File "/home/container/main.py", line 81, in has_vanity
    except NoneType:
NameError: name 'NoneType' is not defined

tough thicket
wise stone
#

sollte dann zu 100% gehen

tough thicket
#

#1019974414487535736 message

wise stone
#

@tough thicket kopier den Code von dir oben nochmal

#

und tu den try und except raus

#

weil der Code schon so geht

#

und dein Return erigbt null sinn

tough thicket
#

Hattest mir ja gesagt, dass ich das hinzufügen sollte

wise stone
#

ja aber net den Code vom Herr roin

tough thicket
#

sondern?

#

Wo muss das denn sonst hin

frail pewter
#

Ist es möglich einem Command einen Cooldown zu geben, der sich aber nur auf die Eingabe bezieht die der user eingibt.

Zum Beispiel:
/vote user
dann kannst du so oft voten wie du willst aber jeden user nur alle 24 stunden.

solid ingot
#

hm, ich denke das müsstest du dann selbst prüfen, indem du zb in einer datenbank speicherst, für wen ein user schon gevotet hat

frail pewter
dense magnet
# frail pewter okay Danke das ist mir leider zu Kompliziert

So kompliziert ist das nicht. Du speicherst einfach nur die Zeit wann der User gevoted wurde und überprüfst bei dem nächsten aufrufen ob diese Zeit länger als 24h her ist. Wenn du deinen Bot nicht oft neu startest kannst du das auch ihm cache speichern also zb in einer Liste und den User dann nach 24h wieder entfernen aber das wäre unpraktisch weil nach einem Neustart die Liste resettet wäre

thick haven
#

Kann mir jmd helfen ich versuche in dem folgenden code die user in in einem dic zu vergleichen also wenn sie drinne ist dann print eins und wenn nicht das print 2 aber er printet mir imemr print 2
CODE

            print(voice_state_times.items())
            print(user_id)
            if str(user_id) in voice_state_times.items():
                print(f'User {user_id} is in the list')
            else:
                print(f'User {user_id} is not in the list')```
**PRINT**
dict_items([])
416015508303904779
User 416015508303904779 is not in the list

dict_items([(416015508303904779, datetime.datetime(2023, 1, 17, 0, 3, 57, 392702))])
416015508303904779
User 416015508303904779 is not in the list
mystic flower
#

kann mir da wer helfen

urban glen
#

Was wird das cr_cry

#

So viele try und except

#

._.

#

xD

urban glen
# mystic flower

Du musst immer await interaction.user.remove_roles machen, also mit await

mystic flower
mystic flower
#

nvm es kommt kein error xD

urban glen
#

if dieRolle not in interaction.user.roles:

mystic flower
#

okay

#

ja es kommt kein error

silk gulch
#

Wie bekomme ich den den aktuellen Timestamp damit man sowas hier machen kann?

#
current_time = time.time()
timebl = discord.utils.format_dt(current_time, 'R')
await ctx.respond(timebl)```

So geht es ja schonmal nicht.
urban glen
#

Machs doch so

#

Is easier

#

Also so mach ich's

urban glen
silk gulch
tough thicket
#

Der Code ist ja das hier:


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

async def has_vanity(member: discord.Member):
    if not len(member.activities) == 0:
        for i in member.activities:
            if isinstance(i, discord.CustomActivity):
                if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
                    return True

    else:
        return False


silk gulch
#

Kann man irgendwie Abfragen ob ein Benutzer auf dem Discord Server ist wo der Befehl ausgeführt wird?

wise stone
#

@tough thicket hab's überarbeitet

#

wenn das Bild endlich hochgeladen wurd

solid ingot
#

vergiss nicht den server member intent anzuschalten

tough thicket
silk gulch
wise stone
#

@tough thicket

solid ingot
wise stone
#

formuliere deine Frage anders...

tough thicket
#

was meinst du?

silk gulch
solid ingot
#

zB if member in ctx.guild.members

tough thicket
#

aso und: Der Bot kann dem user, der neu beigetreten ist keine DM senden ...
Denke es liegt daran, dass der User seine DMs nicht an hat.

Wie kann ich nun in Py-Cord ein try oder so hinzufügen, dass der sonstige Code nicht crasht?

Code:


 await member.send(embed=embed2)
silk gulch
tough thicket
#

(Denke, dass der Error davon kam)

silk gulch
#

np

indigo sapphire
#

kann mir da jemand helfen?

for index, unit, in enumerate(units):
                description += f'{unit}\n'
                print(description)

                if (index+1) % 25 == 0:
                    embed = discord.Embed(
                        title='Unit List',
                        description=description,
                        color=discord.Color.green()
                    )
                    pages.append(Page(embeds=[embed]))
                    description=''
            
            await Paginator(pages=pages).respond(interaction)

ich möchte das es message edit machen anstatt respond

indigo sapphire
#

ich frag mal anders wie kann ich in Paginator noch mein eigene view hinzufügen, und den variable von index beim view vererbt?

mein code:

# variable settings
            pages = []
            description=''
            indexs=[]

            async with aiosqlite.connect(os.getenv('Shiro7DSGCSQL')) as db:
                async with db.execute("SELECT Unit_Title_Name FROM SevenDSGC_Unit",) as cursor:
                    unit_title = await cursor.fetchall()

                async with db.execute("SELECT Unit_Name FROM SevenDSGC_Unit") as cursor:
                    units = await cursor.fetchall()
            
            for index, unit, in enumerate(units):
                description += f'{unit}\n'
                indexs.append(int(index))

                if (index+1) % 25 == 0:
                    embed = discord.Embed(
                        title='Unit List',
                        description=description,
                        color=discord.Color.green()
                    )
                    pages.append(Page(embeds=[embed]))
                    description=''
            print(indexs)
            await Paginator(pages=pages).respond(interaction)
            await interaction.response.edit_message(view=Views(
                    [
                        SevenDSGCSelectUnit(
                            options=SevenDSGC_SQL_List_All_From_rowID(
                                rowID=(tuple(indexs))
                            ),
                            search='all'
                        ),
                        UnitButtonSearch()
                    ]
                )
            )
urban glen
#

du hast komplett anderen code geschickt

quiet socket
#

kann mir jemand helfen meinen bot on zu bringen?

#

was muss eigentlich hier hin?

indigo sapphire
urban glen
indigo sapphire
#

Nein leider nicht was ich wollte darum frage ich ja auch

urban glen
#

kannst du in #1020759567421931620 ?

urban glen
indigo sapphire
#

hier geht es doch auch?

urban glen
indigo sapphire
urban glen
indigo sapphire
#

Nope

urban glen
indigo sapphire
#

Ob man hier schreib oder eins erstellt?

#

Oder VC?

urban glen
#

du kannst ja bei der init funktion in der klasse: self.msg = ""

indigo sapphire
#

?

urban glen
#

ne doch nicht

#

kannst du ein bisschen mehr vom code schicken

indigo sapphire
#

Was brauchst du den?

#

Beim view kannst du einfach ignorieren

#

Wichtig ist nur rowID da sollen Zahlen rein Bzw liste

#

Ich möchte einfach den Index rein tun

#

Custom view yk?

Für paginator

urban glen
#

was ist das

#

noch nie gehört

solid ingot
solid ingot
#

wie meinst du das?

cloud cedar
#

Hi, hab nen ordentlichen Batzen code geschrieben, krieg keinen Error aber das Modal wird nicht versendet.
Würde den erst schicken, wenn irgendwer sich dazu mal bisschen Zeit nimmt, keine Ahnung wie groß das Problem ist.

Bitte melden wenn wer kann

solid ingot
#

kannst den gerne schicken, für größere probleme mach am besten einen neuen post auf

indigo sapphire
wise stone
#

ansonsten passt es

indigo sapphire
#

Es ist mit paginator wie soll das gehen?

cloud cedar
indigo sapphire
#

Und wie bekomme ich den Index vom nächsten Eintrag?

wise stone
#

try and see

indigo sapphire
#

Hä wie soll ich versuchen wenn ich nicht weiss wie man es versucht?

wise stone
indigo sapphire
#

Und was ist mit paginator?

wise stone
#

der kommt auch peepohype

indigo sapphire
#

Hä?

wise stone
#

expermiere doch einfach ._.

#

kenne mich nicht mit paginator so gut aus daher dieser Rat

indigo sapphire
#

Hä hab ich doch es gibt auch nichts wirklich dazu

#

Denkst du hab es nicht probiert???

Anscheinend nicht?

wise stone
#

auch einfach ne View geaddet?

indigo sapphire
#

What you mean?

wise stone
#

du kannst ja save nen Button nh

indigo sapphire
#

wise stone
#

...machst ne Button class fügst es im Code hinzu und glotz rein

indigo sapphire
#

Ähm hast du den Code angeschaut?

Wie soll ich bitte schön mit paginator machen?

Es soll einfach eine Liste machen danach mit view auswählen den Text der user ausgeben quasi

indigo sapphire
wise stone
#

glaub ich 😬

#

warte lieber auf @solid ingot oder jm klügeres als uch

indigo sapphire
#

Um es verständlich für dich zu machen. Was du schreibst hilft mir nicht weiter und macht mich noch agression. Den vorherigen Helfer hat es schon noch mehr Benzin ins Feuer reingetan und du auch noch?

Wenn du nicht helfen kannst dann lass es.

#

Wenn du keine Ahnung von paginator hast dann lass es einfach

wise stone
#

kriech Mal in deine nerd Ecke zurück DP_Catwithgun

indigo sapphire
#

Ich möchte es verstehen und nicht idk von irgend random Typ der selbst keine Ahnung hat mir zu versuchen es zu helfen.

indigo sapphire
#

Geholfen hat es nicht

quiet socket
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @quiet socket, du bist jetzt Level 10 🎉

Du hast <@&1032921984612433952> erhalten!

wise stone
#

wie es da steht

#

nicht Home Dings da bumfs

frail pewter
#

Kann mir jemand sagen warum die rolle nicht vergeben wird? Es kommt kein Fehler code.

solid ingot
#

die ID kannst du so nicht direkt in die add_roles methode einfügen. zuerst müsstest du die rolle mit guild.get_role bekommen, und diese dann in add_roles einfügen

#

allerdings sollte in diesem fall eigentlich ein error kommen

frail pewter
silk gulch
indigo sapphire
#

@solid ingot kannst du mir helfen mit paginator?

möchte zusätlich mein eigene view hinzufügen

solid ingot
#

es kommen keine runden klammern hinter den hexcode

#

das kann mehrere gründe haben, vielleicht ist er falsch eingerückt?

indigo sapphire
tough thicket
#

wie kann ich sagen, dass der Bot nicht reagieren soll, wenn der User ein Bot ist?

Code:

@commands.Cog.listener()
    async def on_message(self, message):
        test = '@swift pendant'

        if test in message.content:
            await message.channel.send(
                'test',
                delete_after=3)
urban glen
#

Am besten tust du das über test = '@swift pendant'

quiet socket
#
/usr/local/bin/python: can't open file '/home/container/main.py': [Errno 2] No such file or directory``` hmmm ich habe eine main.py datei
urban glen
#

zahl gleich was?

urban glen
#

ja

#

ja, das kannst du mit if machen

wise stone
#

beim Panel brauchst du nicht das Home/container

#

nie

quiet socket
#

@wise stone kann dein Feedback Code vom GitHub nicht verwenden peepothink

solid ingot
#

da scheint pycord nicht richtig installiert zu sein, schau evtl nochmal bei #🔍・pycord-help

wise stone
#

hast es nicht richtig rein gecopy

paper iris
#

wo?

urban glen
dense magnet
#

Der Server wird "guild" genannt

burnt prairieBOT
#

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

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

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

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

▶ Play video
solid ingot
#

@rose epoch

red drum
#

Moin, kurze Frage aktuell hab ich ctx.author in meiner Embed Nachricht (@commands.command)damit der Bot dem Author antwortet. Kann ich auch nur den Nickname anzeigen lassen, also das er nicht auf den richtigen User-Name sondern auf den Nickname antwortet?

solid ingot
#

ja das müsste mit ctx.author.display_name gehen

red drum
tough thicket
#

Moin.
Habe ein Welcome-Event & nen' Button. Wie kann ich an die andere Klasse (Button-Klasse) den User weitergeben, der gejoint ist?
||PS: Bevor ihr mir hier jetzt Timo's Video schickt: Möchte es für einen Button haben, der kein Timeout hat mmLol ||

fluid leaf
#

:D

fluid leaf
#

warte

#
class GiveawayEnter(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)
tough thicket
#

Das benötige ich

solid ingot
#

dazu müsstest du die werte in einer datenbank zwischenspeichern, und dann wieder laden wenn der bot startet

tough thicket
wise stone
#

die Werte einfach in die Buttons Reinspeichern also werte in die class übergeben

#

@tough thicket

#

so mache ich es

#

ich habs wie im Video den member Übergeben

tough thicket
#

Okay, probiere mal morgen

solid ingot
#

wenn du einen default wert setzt ist es automatisch nicht required

red drum
#

Wenn ich das Profilbild von meinem Bot auf der Discord-Developer Seite ändere wie lange dauert es bis das auf dem Server angezeigt wird oder muss ich dafür den Bot neu auf den Server holen. Die Beschreibung hat er sofort geändert 😮

#

Yes! Jetzt komme ich mir blöd vor XD

silk gulch
#

Weiß jemand wie ich in einem Cog definierten Listener (nicht von py-cord) die ctx-Variable reinbekomme?

silk gulch
#

Ja habs beheben können schon.

wise stone
#

ok

silk gulch
#

Weiß wer mögliche Fehler, warum er den Song nicht in die Queue packt?
Der Print wird auch ausgeführt.

vc.queue.put(song)
print(f'Queued song "{song}"')
embed.add_field(name=translate(ctx.guild.id, 'Play', 'PLAY_SUCCESS_WORD_POSITION_IN_QUEUE'), value=f"{vc.queue.count + 1}", inline=True)
embed.fields[0].name = translate(ctx.guild.id, 'Play', 'PLAY_SUCCESS_WORD_ADDED_TO_QUEUE').replace('{ü}', 'ü')
await ctx.respond(embed=embed)```
solid ingot
#

kommt ein error?

silk gulch
#

Intents hat er auch.

tawdry leaf
indigo sapphire
#

Wie kann man da ein besseres feedback machen?

Das zB Berechtigung fehlen?

solid ingot
#

mit einem Error Event zum Beispiel

#

kommt drauf an wie du die permissions prüfst

indigo sapphire
#

bzw angezeigt werden welche fehlen um den befehl zu nutzen

brazen scarab
#
    @command.command()
    async def blacklist(self, ctx: discord.ApplicationContext, user: discord.User, grund: str):
        """Füge einen Benutzer zur Blacklist hinzu"""
        if WAS KOMMT DA HIN == 306429712828334091:```

Wie kann ich festlegen, das **nur** ich den Befehl nutzen kann? Ich hab jetzt die kompletten docs auseinander genommen und bekomme ständig :
`'NoneType' object has no attribute 'author'` oder `'NoneType' object has no attribute 'id'` oder was weiß ich ![crying_panda](https://cdn.discordapp.com/emojis/1064470407740137522.webp?size=128 "crying_panda")
silk gulch
brazen scarab
#

Hab ich auch schon versucht LUL

silk gulch
#

Testen.. Ab und an zeigt er das so an..

#

Ansonsten mal

if ctx.author.user.id == 306429712828334091```
testen
brazen scarab
silk gulch
brazen scarab
#

Ja peepohappy
Aber wieso gibt PyCharm mir ne Warnung? peepothink

silk gulch
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @silk gulch, du bist jetzt Level 13 🎉

silk gulch
brazen scarab
#

und ich suche ne Stunde in den Docs (die mal super geil sind ... nicht ) und finde nix ...

silk gulch
#

Ja die Docs von pycord sind wirklich super. peepohype

brazen scarab
silk gulch
#

Aber sehe gerade man könnte Python hinzufügen.

brazen scarab
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @brazen scarab, du bist jetzt Level 13 🎉

brazen scarab
#

bitte*

silk gulch
#

IntelliJ hat auch das neue Design, ja.

brazen scarab
#

Ich schau mir das mal an. Danke

silk gulch
brazen scarab
silk gulch
silk gulch
brazen scarab
solid ingot
#

du meinst den titel neben den inhalt?

wise stone
#

hab da eigentlich jedes Error drinnen

tough thicket
indigo sapphire
#

In #1027677692730036294 ?

#

Wird mal anpassen mit Datenbank Text SQlite oder JSON. Werd das bei dir senden als eine Art Update

tough thicket
#

Hey, weiß jemand, warum der Bot keine Nachricht schickt?


@commands.Cog.listener()
    async def on_member_join(self, member):
        
        channel = self.bot.get_channel(1039573169968787567)

        background = Editor(Canvas((900, 280), color='#23272A'))
        profile = Editor('assets/avatar.png')
        # To use users profile picture load it from url using the `load_image` function

        await profile.resize((200, 200))
        await profile.circle_image()

        font_regular = Font.montserrat(variant='italic', size=30)
        font_thin = Font.montserrat(variant='light', size=18)
        font_medium = Font.poppins(variant='bold', size=40)
        font_big = Font.poppins(variant='bold', size=50)

        card_left_shape = [(0, 0), (0, 270), (330, 270), (260, 0)]

        await background.polygon(card_left_shape, '#2C2F33')

        await background.paste(profile, (40, 35))
        await background.ellipse((40, 35), 200, 200, outline='white', stroke_width=3)

        await background.text((600, 20), 'WELCOME', font=font_big, color='white', align='center')
        await background.text((600, 70), data['name'], font=font_regular, color='#5865f2', align='center')

        await background.text((600, 130), 'YOU ARE MEMBER', font=font_medium, color='white', align='center')
        await background.text((600, 175), data['member'], font=font_regular, color='#5865f2', align='center')

        await background.text(
            (620, 245), 'THANK YOU FOR JOINING. WE HOPE YOU LIKE IT!',
            font=font_thin,
            color='white',
            align='center'
        )


        await channel.send(file=background, view=WelcomeButton())
        await background.show()

silk gulch
#

Versuch es mal ohne View.

tough thicket
silk gulch
#

Und wenn du anstelle der file nen String mit 'Test' senden tust?

solid ingot
#

das ist die ganz normale embed beschreibung, keine embed felder

tough thicket
#

Selbst ohne passiert nichts


@commands.Cog.listener()
    async def on_member_join(self, member):
        channel = await self.bot.fetch_channel(1039573169968787567)


        await channel.send('test', view=WelcomeButton())

silk gulch
solid ingot
#

schick mal deinen code

solid ingot
#

du hast es mit fields gemacht. du musst es in die description machen

cloud cedar
#

Wie send ich von aus einem callback raus nen Embed in nen anderen kanal

burnt prairieBOT
#

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

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

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

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

▶ Play video
cloud cedar
#

oke

#

geht das ohne Bot attribut?

solid ingot
#

hm naja

#

dafür hab ich nochmal ein extra video

tough thicket
#

Erhalte aber jetzt diesen Error:

raise InvalidArgument("file parameter must be File") discord.errors.InvalidArgument: file parameter must be File

#

Habe es schon 😄

brazen scarab
#

await db.execute("DELETE FROM blacklist WHERE user_id, grund")
Wie setzt man das korrekt um? haha Bin grade zu blöd

urban glen
#

Oder was meinst du?

brazen scarab
urban glen
brazen scarab
urban glen
#
query = """DELETE FROM blacklist WHERE user_id = ?"""
value = (user.id,)
await db.execute(query, value)

Sowas ist ein prepared statement

#

Oder ungefähr so

brazen scarab
# urban glen Probiers aus

Ja alles gut, ich habe bei SQlite noch keine DELETE function nutzen müssen. Den rest weiß ich aber danke ^^ Funktioniert

tough thicket
#

wie ist das gemeint?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tough thicket, du bist jetzt Level 8 🎉

tough thicket
#

also wie kann ich nun das Profilbild des Users laden?

solid ingot
#

dazu musst du die load_image funktion benutzen von easypil

tough thicket
#

await profile.resize((200, 200))
TypeError: object Image can't be used in 'await' expression

#

denke da muss dann das await weg nh?

solid ingot
#

ja

tough thicket
#

Wieso klappt der Uptime-Timestamp hier nicht?

current_time = int(time.time())
<t:{current_time}:R>
rose epoch
#

Kann mir wer bei ein error helfen?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @hoary loom, du bist jetzt Level 10 🎉

Du hast <@&1032921984612433952> erhalten!

dense magnet
#

Du musst von der interaction einfach nur einen Inhalt abfragen. Zb fragst du das label ab oder addest values und vergleichst diese

twilit ice
#

Dann if {dein value} in interaction.data["values"]:
await …

twilit ice
#

Jo

fluid leaf
silk gulch
silk gulch
#

Bei mir geht es ja auch

urban glen
#

Hey wie bekomm ich das deinstalliert?

urban glen
#

Ich weiß es nicht hab das nie installiert

#

Was is das denn überhaupt genau?

#

Wo is das?

#

Bei meinem Python Interpreter

solid ingot
#

kannst du auf das minus symbol klicken?

urban glen
#

Dann kommt dieser Error

solid ingot
#

hm keine ahnung

#

vlt nochmal komplett python mit allen modulen löschen und neu installieren

urban glen
#

Werde ich versuchen

#

Aber trotzdem Danke für eure Hilfe

quiet socket
#

wie kann ich das fixen?

brazen scarab
#

Eine welcome Message, habe ich erst danach rein gemacht, damit ich in Zukunft die ID's habe. Ist es aber möglich, von der Person noch die ID irgendwie rauszufinden?

quiet socket
# quiet socket wie kann ich das fixen?
 aiohttp/_websocket.c(198): fatal error C1083: Datei (Include) kann nicht ge”ffnet werden: "longintrepr.h": No such file or directory
      error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
PS C:\Users\Georgi\PycharmProjects\pythonProject> 
#

das ist der error