#Allgemeine Hilfe

1 messages · Page 45 of 1

novel ore
#

ich hab es so die rolle ist auch in der dm der select geht auch aber es kommt trotzdem das man keine rechte hat

ruby sparrow
#

kann man doch ein github code privat machen Wenn man es zuerst öffentlich gemacht hat?

restive herald
ruby sparrow
restive herald
restive herald
novel ore
restive herald
#

Ich glaub ich hab’s

#

du schaust, ob die gesamte liste in den rollen is das wird falsch

#

du müsstest etwas mit any machen also

if any interaction.user.roles in ROLLEN:``` 
soweit ich weiß
novel ore
restive herald
#

hab’s mal editiert

#

war mir nd ganz sicher wie das war

novel ore
restive herald
novel ore
#

bis dahin ist es vielleicht geladen xD

restive herald
#

xD ja mal schauen

#

mobile daten sind halt alle und fahre gerade auto

novel ore
urban glen
#

Mit ./ Greifst du auf den Ordner zu, wo deine aktuelle py Datei ist

novel ore
#

ah ok

tall gorge
#

Error: ```During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "/home/container/Cogs/Automod.py", line 229, in on_message
data = result.json()
^^^^^^^^^^^^^
File "/home/container/.local/lib/python3.11/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Ignoring exception in on_message
Traceback (most recent call last):
File "/home/container/.local/lib/python3.11/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/init.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)````

Code:

data = result.json()

urban glen
solid ingot
#

wie sieht deine kein Datei aus?

tall gorge
#

Warte schicke später den code

silk gulch
#

Wie kann ich denn von dem Zeitpunkt aus + 1 Tag auf einem Timestamp legen?

test = datetime.now + timedelta(days=1)
time = discord.utils.format_dt(test, "R")

print(test)
await ctx.respond(f'Versuche es in {time} erneut!')```

Damit klappt es leider nicht.

[ERROR] Error while executing /test
Traceback (most recent call last):
File "C:\Users\maxme\Desktop\Discord Bots\Lucidron\venv\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
^^^^^^^^^^^^^^^
File "C:\Users\maxme\Desktop\Discord Bots\Lucidron\venv\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Users\maxme\Desktop\Discord Bots\Lucidron\commands\basic\TestCommand.py", line 14, in test
test = datetime.now + timedelta(days=1)
~^~~~~~~
TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'datetime.timedelta'```

solid ingot
#

runde klammern hinter now()

silk gulch
#

Merci. ❤️

ruby sparrow
#

Wie meinst du?

urban glen
#
if member.mobile_status:
    print("Handy")
else:
    print("Kein Handy")
safe tendon
#

Ich kriege diesen error

Ignoring exception in view <AntiNukeInterface timeout=None children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Select an option' min_values=1 max_values=1 options=[<SelectOption label='max role creation(s)' value='max_role_creations' description='The maximum amount of roles a user can create in a minute' emoji=None default=False>, <SelectOption label='max channel creation(s)' value='max_channel_creations' description='The maximum amount of channels a user can create in a minute' emoji=None default=False>, <SelectOption label='max role deletion(s)' value='max_role_deletions' description='The maximum amount of roles a user can delete in a minute' emoji=None default=False>, <SelectOption label='max channel deletion(s)' value='max_channel_deletions' description='The maximum amount of channels a user can delete in a minute' emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/root/merl/src/modules/plugins/settings.py", line 203, in callback
await interaction.response.send_message(
File "/usr/local/lib/python3.10/dist-packages/discord/interactions.py", line 789, in send_message
payload["components"] = view.to_components()
File "/usr/local/lib/python3.10/dist-packages/discord/ui/view.py", line 215, in to_components
children = sorted(self.children, key=key)
AttributeError: 'MaxRoleCreationsButton' object has no attribute 'children'

und das der code

wind finch
#

Das muss glaube ich noch in den Code

vernal rampart
#

Wie kann man mich immer pingen also nicht den owner sonder auf jedem server ich? also @vernal rampart

solid ingot
#

<@ID>, also in deinem fall @vernal rampart

vernal rampart
#

danke

urban glen
#

Meine Frage ist, kann ich bei einer Nachrixht einstellen, das keine Rollen gepingt werden es wird aber angezeigt das die rolle gepingt wird, aber das niemand gepingt wird der die rolle hat?

solid ingot
#

ja das geht

#

bin nicht mehr ganz sicher wie

urban glen
tawdry leaf
summer vigil
#

Gibt es eine möglichkeit Voice Gespräche mit einem Bot aufzunehmen und dann in eine mp3 datei zu exportieren?

limber crow
#

Glaube nicht das jemand mal sowas gecodet hat

summer vigil
#

Ja

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @summer vigil, du bist jetzt Level 3 🎉

Du hast insgesamt 23 Nachrichten geschrieben.

limber crow
# summer vigil Ja

Glaube nicht, dass jemand das schonmal gecodet hat. Kannst ja der erste sein ^^

urban glen
#

musst halt viele commands haben

limber crow
summer vigil
urban glen
urban glen
limber crow
summer vigil
vernal rampart
#

bei mir ist random rot muss ich dann import random schreieben?

urban glen
vernal rampart
#

danke

graceful fiber
restive herald
#

Weiß jmd wie man den Help Command bei ezcord/pycord bearbeiten kann? hab da iwie gehört man kann den bearbeiten

restive herald
#

will das z.b. in nem embed haben

novel ore
restive herald
novel ore
#

naja in dem embed machst du halt alles wie du es willst titel und description color kannst du alles setzen

restive herald
#

meine ja bei dem normalem help command da is ja dann diese übersicht. ist die dann im embed? oder muss ich dann das embed komplett selbst gestalten (stehe eif gerade auf dem schlauch sorry)

novel ore
#

zeig mal deine main.py was du bist jetzt hast

solid ingot
restive herald
# novel ore zeig mal deine main.py was du bist jetzt hast
import os
from dotenv import load_dotenv
import ezcord

intents = discord.Intents.default()


bot = ezcord.PrefixBot(
    intents=intents,
    debug_guilds=[1135591381331611668],
    command_prefix=["?","+"])



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


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

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

is eif die normale

novel ore
#

dann hast du alles (help system ist in einem embed)

restive herald
#

und dann embed=embed

novel ore
#

braucsht du net

restive herald
#

ah ok

novel ore
#

außer du willst was am embed ändern aber sonst kannst du auch das standart lassen

restive herald
#

danke xd

novel ore
#

kannst auch gerade talk kommen wenn noch was ist

restive herald
#

ne alles gut hab nur nie das mit dem help command gecheckt xd

jaunty jasper
#

Der Bot erstellt kein Kanal und printet auch nicht "1"

@bot.command()
async def ticket(ctx):
    user = ctx.author
    role = discord.utils.get(ctx.guild.roles, name="*") 

    if role in user.roles:
        embed = discord.Embed(
            title="Tickets",
            description="test",
            color=discord.Color.blue()
        )
        embed.set_footer(text="test")

        view = TicketView()
        message = await ctx.send(embed=embed, view=view)

        await view.wait()

        if view.value == "apply":
            category = discord.utils.get(ctx.guild.categories, id=1137114655765045401)  
            channel_name = f"tickets-{user.name}"
            overwrites = {
                ctx.guild.default_role: discord.PermissionOverwrite(read_messages=False),
                user: discord.PermissionOverwrite(read_messages=True)
            }
            print("1")
            **channel = await category.create_text_channel(channel_name, overwrites=overwrites)**
            await user.add_roles(channel)
            await ctx.send(f"Kanal {channel.mention} erstellt. Viel Erfolg!")
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @jaunty jasper, du bist jetzt Level 3 🎉

Du hast insgesamt 41 Nachrichten geschrieben.

solid ingot
#

die if abfrage if view.value == "apply": wird wahrscheinlich nicht true

jaunty jasper
solid ingot
#

lass es dir am besten mal den wert printen damit du siehst woran es liegt

jaunty jasper
#
  • Als erstes habe ich das view.wait rausgenommen
  • Als Wert kam "None " raus
jade sapphire
#

Hi

urban glen
jade sapphire
#

async def hug(self, ctx, member):

#

also ich möchte ein slash command erstellen

#

Es sollte ähnlich wie /hug sein

urban glen
#

ok

jade sapphire
#

Aber ich weiß nicht was nacht async def kommt

#

könnte einer mir vielleicht helfen

urban glen
#

Wie genau meinst du das?

jade sapphire
#

Hier ist mein Code jedoch wird es wenn ich / tippe nicht angezeigt

urban glen
jade sapphire
#

eh

#
        async def (self, ctx, member):
            embed = discord.Embed(
                title="**E I N E   U M A R M U N G++",
                description=f"{ctx.author.mention} **umarmt** {member.mention}, wie niedlich!",
                color=discord.Color.blue()
            )

            embed.set_image(self, url="https://i.pinimg.com/originals/9f/b8/ad/9fb8add5d9a2abe060cafcd211e1b8d5.gif")
            embed.set_footer(text="Bot erstellt von Astolon1")

            await embed.send(embed=embed)```
urban glen
jade sapphire
#

genau

#

wollte ich hug haben

urban glen
#

Dann schreib das dahin

jade sapphire
#

Wird immernoch nicht angezeigt

urban glen
#

Und await embed.send geht nicht

#

await ctx.respond(embed=embed)

jade sapphire
#

warte mal

#

ahh hab meinen eigenen fehler gefunden

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

        @slash_command(description=("Umarme jemanden den du gern hast!"), name=("hug"))
        async def hug(self,
                      ctx,
                      member: Option(discord.Member, "Gib einen User an", default=None)

):
            embed = discord.Embed(
                title="**E I N E   U M A R M U N G++",
                description=f"{ctx.author.mention} **umarmt** {member.mention}, wie niedlich!",
                color=discord.Color.blue()
            )

            embed.set_image(url="https://i.pinimg.com/originals/9f/b8/ad/9fb8add5d9a2abe060cafcd211e1b8d5.gif")
            embed.set_footer(text="Bot erstellt von Astolon1")

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

Jungs was ist denn da falsch?

#

Mir wird der slash command nicht mal angezeigt

solid ingot
#

command ist zu weit rechts eingerückt

burnt prairieBOT
#

Rückgängig machen könnt ihr eine Einrückung übrigens mit Shift + Tab :)

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 Serve...

▶ Play video
jade sapphire
#

welcher?

restive herald
#

hug

jade sapphire
#

Ich habe mir das Video angeschaut finde aber immernoch nicht den fehler

#

Hab mein erstes eigenes Slash Command erstellt wohoo

jade sapphire
limber crow
jade sapphire
#

Ich code grad mein zweites slash command

#

und es geht irgendwie wieder nicht

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


class Punch(commands.cog):
    def __init__(self, bot):
        self.bot = bot

@slash_command(description=("Schlage einen User virtuell!"), name=("punch"))
async def punch(self,
                    ctx,
                    member: Option(discord.Member, "Gib einen User an")

):
        embed = discord.Embed(
            title="**Massenschlägerei**",
            description=f"{member.mention} wehrt sich gegen {ctx.author.mention}",
            color=discord.Color.blue()
        )

        embed.set_image(url="https://i.pinimg.com/originals/e4/4d/95/e44d9577ec2b2752bacc74699178195f.gif")
        embed.set_footer(text="Bot erstellt von Astolon1")

        await ctx.respond(embed=embed)


def setup(bot):
    bot.add_cog(Punch(bot))```
limber crow
jade sapphire
#

ah okay

#

danke

limber crow
jade sapphire
#

ja

limber crow
jade sapphire
#

Ah okay

jade sapphire
limber crow
jade sapphire
#

okay

jade sapphire
tawdry leaf
#

okay verstehe

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


class Punch(commands.cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command(description=("Schlage einen User virtuell!"), name=("punch"))
    async def punch(self,
#

@jade sapphire des muss schon in class aber nicht in die def init

jade sapphire
#

häää

#

es geht immernoch nicht

#

gibt es irgendwie vielleicht ein limit von dem ich nicht weiß für slash commands?

jade sapphire
#

discord.errors.ExtensionFailed: Extension 'cogs.punch' raised an error: TypeError: module() takes at most 2 arguments (3 given)

#

jetzt kommt so eine fehler meldung

limber crow
#

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

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

    @slash_command(description="hello")
    async def punch(self, ctx, member: Option(discord.Member, "The member you want to punch", required=True)):
        
        
        embed = discord.Embed(
            title="**Massenschlägerei**",
            description=f"{member.mention} wehrt sich gegen {ctx.author.mention}",
            color=discord.Color.blue()
        )

        embed.set_image(url="https://i.pinimg.com/originals/e4/4d/95/e44d9577ec2b2752bacc74699178195f.gif")
        embed.set_footer(text="Bot erstellt von Astolon1")

        await ctx.respond(embed=embed)


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

@jade sapphire

limber crow
jade sapphire
#

Wie jetzt

jade sapphire
#

Ich würde aber gerne wissen wie ich diesen fehler code beseitigen kann

limber crow
jade sapphire
#

Ja

restive herald
#

Bei dem Chat-Exporter, kann ich dann in Interaktionen interaction.bot oder so schreiben statt self.bot?

restive herald
novel ore
#
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "/home/container/cogs/commands/moderation.py", line 822, in clear
    await ctx.respond(embed=success_embed, delete_after=3, ephemeral=True)
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/context.py", line 286, in respond
    return await self.followup.send(*args, **kwargs)  # self.send_followup
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/webhook/async_.py", line 1745, in send
    data = await adapter.execute_webhook(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/webhook/async_.py", line 219, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10008): Unknown Message```
urban glen
#

füg ein ctx.defer hinzu

#

aso aber meine frage ist warum 2 ctx.defer

#

das 2. muss weg

#

oder das 1. wie du willst @novel ore

limber crow
limber crow
#

Wie macht man, dass wenn man auf den Bot drauf Klick unterdem Game steht, dass man Commands tryen kann ?

solid ingot
#

das kommt automatisch wenn dein bot auf genug servern ist

limber crow
#

Wie kann ich hier die Nachricht die im Modal eingegeben wurde auslesen und in der Datenbank speichern ?


class DenyModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Application Deny Message",
                placeholder="Write your Application deny Message here",
            ),
            title="Deny Message",
        )

    async def callback(self, interaction: discord.Interaction):
        await interaction.response.send_message("Deny Message set", ephemeral= True) 

Kompletter Code: https://sourceb.in/LLE5H53JbL

solid ingot
#

self.children ist eine liste mit allen werten, die der user eingegeben hat

limber crow
# solid ingot `self.children` ist eine liste mit allen werten, die der user eingegeben hat

Wenn ich das mache bekomme ich ein Fehler

Fehlercode

Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
    await value.callback(interaction)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Setups\setup-apply.py", line 313, in callback
    await cursor.execute(
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 48, in execute
    await self._execute(self._cursor.execute, sql, parameters)
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 40, in _execute
    return await self._conn._execute(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 133, in _execute
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 106, in run
    result = function()
             ^^^^^^^^^^
sqlite3.OperationalError: no such table: applications

Code


class DenyModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Application Deny Message",
                placeholder="Write your Application deny Message here",
            ),
            title="Deny Message",
        )

    async def callback(self, interaction: discord.Interaction):
        async with aiosqlite.connect("database/roster.db") as db:
                async with db.cursor() as cursor:
                    
                    await cursor.execute(
                        """INSERT INTO applications (deny_msg) VALUES (?)""",
                        (self.children[0].value),
                    )
                    await db.commit()
solid ingot
#

den fehler bekommst du nicht wegen self.children, sondern weil in deiner datenbank die tabelle "applications" nicht existiert

limber crow
# solid ingot den fehler bekommst du nicht wegen `self.children`, sondern weil in deiner daten...

Fehlercode

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.
Ignoring exception in modal <cogs.Setups.setup-apply.DenyModal object at 0x000001BDE8DD9190>:
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\modal.py", line 341, in dispatch
    await value.callback(interaction)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Setups\setup-apply.py", line 313, in callback
    await cursor.execute(
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 48, in execute
    await self._execute(self._cursor.execute, sql, parameters)
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\cursor.py", line 40, in _execute
    return await self._conn._execute(fn, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 133, in _execute
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 106, in run
    result = function()
             ^^^^^^^^^^
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.

Code


class DenyModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Application Deny Message",
                placeholder="Write your Application deny Message here",
            ),
            title="Deny Message",
        )

    async def callback(self, interaction: discord.Interaction):
        async with aiosqlite.connect("database/applications.db") as db:
                async with db.cursor() as cursor:
                    
                    await cursor.execute(
                        """INSERT INTO applications (deny_msg) VALUES (?)""",
                        (self.children[0].value),
                    )
                    await db.commit()
limber crow
solid ingot
#

da fehlt ein komma hinter self.children[0].value

limber crow
# solid ingot da fehlt ein komma hinter `self.children[0].value`

So ?

class DenyModal(discord.ui.Modal):
    def __init__(self):
        super().__init__(
            discord.ui.InputText(
                label="Application Deny Message",
                placeholder="Write your Application deny Message here",
            ),
            title="Deny Message",
        )

    async def callback(self, interaction: discord.Interaction):
        async with aiosqlite.connect("database/applications.db") as db:
                async with db.cursor() as cursor:
                    
                    await cursor.execute(
                        """INSERT INTO applications (deny_msg) VALUES (?)""",
                        (self.children[0].value,),
                    )
                    await db.commit()
solid ingot
#

probiers aus duckgun

ruby sparrow
#

wie geht das mit dm

burnt prairieBOT
#

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

Links aus diesem Video
Chat Exporter ► https://github.com/mahtoid/DiscordChatExporterPy

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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/introductio...

▶ Play video
ruby sparrow
#

@wind finch ich hab schon ich möche das wurde über dm gesend

urban glen
strange juniper
#

gibt es einen besseren weg, pycharm daran zu hindern hier einen false positive zu werfen als das?

    if ctx.author.guild_permissions.kick_members: # noqa

Zusatzinfos:
Es geht hier um ein Slash-Command.
In den Argumenten wird ctx wie folgt definiert..

async def funktionsname (ctx: discord.ApplicationContext, anderes zeugs, )
#

sollte ich dafür ein thema aufmachen oder passt das in der allgemeinen hilfe?

solid ingot
#

das geht auch hier in allgemeine hilfe, je nachdem was dir lieber ist. eine möglichkeit wäre ctx.author durch ctx.user zu ersetzen, eine andere möglichkeit wäre das direkt von pycharm ignorieren zu lassen

strange juniper
#

habe ich da was falsch verstanden 😅 ?

solid ingot
#

beides dasselbe

ruby sparrow
#

timo hast du bei dein video gezeig HTML Datei über dm senden ?

strange juniper
# solid ingot

okay, ich probiere das mal aus! melde mich gleich zurück. Vielen Dank schonmal!

solid ingot
ruby sparrow
#
logchannel = interaction.guild.get_channel(logchannelid)
        loguser = interaction.guild.get_user(interaction.user)
        logger = Logger(interaction.channel)
        await logger.create_log_file()
        await logger.send_log_file(logchannel)
        embed2 = discord.Embed(
            title=f"Chat erfolgreich exportiert",
            description=f"Geschlossen von {interaction.user.mention} 🔒\n```{interaction.channel.name}```",
            color=discord.Color.purple(),
            timestamp=datetime.now()
        )```
#
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\nicor\PycharmProjects\asvpython\cogs\Ticket.py", line 286, in button_callback2
    loguser = interaction.guild.get_user(interaction.user)
AttributeError: 'Guild' object has no attribute 'get_user'```
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
strange juniper
# solid ingot

habs gerade getestet, funktioniert einwandfrei. Vielen Dank!!

solid ingot
#

👍🏽

ruby sparrow
#
Ignoring exception in view <TicketClose timeout=None children=2> for item <Button style=<ButtonStyle.danger: 4> url=None disabled=True label='Close' emoji=None row=None>:
Traceback (most recent call last):
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\nicor\PycharmProjects\asvpython\cogs\Ticket.py", line 288, in button_callback2
    await logger.send_log_file(interaction.user)
  File "C:\Users\nicor\PycharmProjects\asvpython\cogs\Ticket.py", line 257, in send_log_file
    files=[discord.File(f"Log {self.channel.name}.txt", filename=f"{self.channel.name}.txt")]
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\file.py", line 99, in __init__
    self.fp = open(fp, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'Log 🎫・avtano0.txt'```
#
@discord.ui.button(label="Close", style=discord.ButtonStyle.red, emoji=None, custom_id="ticketclose")
    async def button_callback2(self, button, interaction):
        for child in self.children:
            child.disabled = True

        closeem = discord.Embed(
            title="Ticket wird geschlossen",
            description=f"Anfrage von: {interaction.user.mention}\n"
                        f"\n"
                        f"Das Ticket wird in wenigen Sekunden gelöscht!\n"
                        f"▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n"
                        f"Lass doch gerne ein <#{feedbackch}> da!\n",
            color=discord.Color.purple()
        )
        closeem.set_footer(icon_url=self.bot.user.display_avatar.url, text=self.bot.user)

        logchannel = interaction.guild.get_channel(logchannelid)
        loguser = interaction.guild.get_member(interaction.user)
        logger = Logger(interaction.channel)
        await logger.send_log_file(interaction.user)
        await logger.create_log_file()
        await logger.send_log_file(logchannel)
        embed2 = discord.Embed(
            title=f"Chat erfolgreich exportiert",
            description=f"Geschlossen von {interaction.user.mention} 🔒\n```{interaction.channel.name}```",
            color=discord.Color.purple(),
            timestamp=datetime.now()```
wind finch
vernal rampart
#

discord.errors.ExtensionFailed: Extension 'cogs.invitedm' raised an error: AttributeError: 'Bot' object has no attribute 'add_command'

vernal rampart
ruby sparrow
vernal rampart
#

danke

ruby sparrow
#

kein ding

vernal rampart
#

wie kann ich hier mein min. und max. einstellen das man nur von 0 - 100 eingeben kann?

#
@slash_command()
    async def random(self, ctx, min: int, max: int):
        embed = discord.Embed(
                    title=f"Zufallszahl",
                    description=f"Die Zufallszahl ist: {random.randint(min, max)}",
                    color=discord.Color.purple())
        await ctx.respond(embed=embed)
ruby sparrow
#
@slash_command()
    async def random(self, ctx, min: int, max: int):
        if 0 <= min <= 100 and 0 <= max <= 100:
            if min <= max:
                random_number = random.randint(min, max)
                embed = discord.Embed(
                    title="Zufallszahl",
                    description=f"Die Zufallszahl ist: {random_number}",
                    color=discord.Color.purple())
                await ctx.respond(embed=embed)
            else:
                await ctx.respond("Das 'min'-Argument sollte kleiner oder gleich dem 'max'-Argument sein.")
        else:
            await ctx.respond("Ungültige Eingabe. Bitte gib 'min' und 'max' als ganze Zahlen im Bereich von 0 bis 100 ein.")``` zb so @vernal rampart
vernal rampart
#

danke

ruby sparrow
#

das ist nur ein zb

#

kann man die das send lassen @solid ingot nur dem link

tall gorge
#

Ja gibt ein Video von timo dazu

burnt prairieBOT
#

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

Links aus diesem Video
Chat Exporter ► https://github.com/mahtoid/DiscordChatExporterPy

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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/introductio...

▶ Play video
tall gorge
#

Wenn du es trotz dem Video nicht weißt einfach nochmal melden

limber crow
ruby sparrow
#

Komme nicht hin

limber crow
limber crow
ruby sparrow
limber crow
urban glen
ruby sparrow
ruby sparrow
limber crow
ruby sparrow
limber crow
ruby sparrow
limber crow
urban glen
#

Deine Hose ist Nass

#

HJHAHAH AHAJ AHAJA HAHA

ruby sparrow
tall gorge
#

Traceback (most recent call last):
  File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "/home/container/Cogs/Automod.py", line 229, in on_message
    data = result.json()
           ^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)```
```py
    @commands.Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return
        async with aiosqlite.connect(self.db) as db:
            await db.execute("INSERT OR IGNORE INTO servers (guild_id, log_channel_id, enabled, teamrole_id) VALUES (?, ?, ?, ?)", (message.guild.id, None, 0, None))
            await db.commit()
        async with aiosqlite.connect(self.db) as db:
            async with db.execute("SELECT enabled, teamrole_id, log_channel_id FROM servers WHERE guild_id = ?", (message.guild.id,)) as cursor:
                enabled, teamrole_id, log_channel_id = await cursor.fetchone()
            if teamrole_id is None:
                pass
            if teamrole_id is not None:
                teamrole = message.guild.get_role(teamrole_id)
                if teamrole in message.author.roles:
                    return

            if enabled == 0:
                return
            if enabled == 1:
                result = requests.get(f"https://api.nykoos.dev/filter/badword?text={message.content}")
                data = result.json()
                contains = data['contains']

                if contains is True:
                    await message.delete()
                    await message.channel.send(
                        f"**`❌` | {message.author.mention}, dein Text enthält ein Wort, das nicht erlaubt ist!**")
solid ingot
#

lass dir result mal ausgeben und schau von welchem typ es ist

novel ore
urban glen
#

ka

urban glen
#

Weis wer was ich für diesen import from email.Header import Header installieren muss?

#

email?

#

maybe, sonst google mal

urban glen
#
  │ exit code: 1
  ╰─> [3 lines of output]
      C:\Program Files\Python311\Lib\site-packages\setuptools\dist.py:286: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated, consider using implicit namespaces instead (PEP 420).
        warnings.warn(msg, SetuptoolsDeprecationWarning)
      error in Cogs setup command: use_2to3 is invalid.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.```
#

kommt aber dann der fehler

snow hatch
#

Moin bisschen früh aber komme gerade nicht weiter

    @commands.Cog.listener()
    async def on_voice_state_update(self,member, before, after,):
        if after.channel and await self.get_channel(after.channel.guild.id) == after.channel.id:  
            overwrites= {
                member: discord.PermissionOverwrite(connect=True,speak=True)
            }
            channel = await self.bot.create_voice_channel(name=member.nick, overwrites= overwrites, category = after.channel.category)
            await member.move_to(channel) 
            temp_channels.append(channel.id) 

        if before.channel and before.channel.id in temp_channels:  
            if len(before.channel.members) == 0:  
                await before.channel.delete()  
                temp_channels.remove(before.channel.id)  ```
Kriege dort wegen dem create channel folgenden fehler:
```py
AttributeError: 'Bot' object has no attribute 'create_voice_channel'

Wieso? Also ein tippfehler habe ich nicht
Lieg es daran das ich Bot nicht in die klasse oben importiere sondern einfach so verwende? Weil wenn ja, immer wenn ich bot zwischen self und before schreibe spuckt er mir den fehler auf das es kein after gibt

novel ore
#

Wo erstellst du drin modal?

solid ingot
#

schick Mal den requests code

solid ingot
#

deine modal Klasse heißt "modal", aber du rufst "request" auf

tall gorge
vernal rampart
#

ich habe bei https://www.top.gg einen bot und dann habe ich auf meinem server einen webhook erstellt und in bei top.gg eingefügt und eine testnachricht geschickt, es kommt aber nichts

Top.gg

Spice up your Discord experience with our diverse range of Discord Bots and Servers as well as other spaces to discover DAOs.

tall gorge
mystic flower
#

Kennt sich hier wer mit Customtkinter aus?

burnt prairieBOT
fierce dove
limber crow
mystic flower
#

TKinter nur in moderner

limber crow
snow hatch
#

moin
Bin verwirrt, mit display_name sollte man eigentlich den "nickname" kriegen also bei mir ein Faultier
Kriege da aber hal den usertag/namen als bsp. mr.fauli raus, weshalb?

solid ingot
#

das ist durch das neue name update von discord ist das etwas kompliziert. ursprünglich ist display_name der name, der auf einem server angezeigt wird. wenn ein user kein spezifischen nickname für einen server ausgewählt hat, ist das also der normale username, nicht der nickname

snow hatch
snow hatch
tall gorge
urban glen
#

print dir mal data

solid ingot
snow hatch
#

ah danke habe ich garnicht gefunden

snow hatch
solid ingot
#

ja, pip install git+https://github.com/Pycord-Development/pycord

snow hatch
#

ey
Dafür muss man git installiert haben oder? Also um das herunterladen zu könne über git

solid ingot
#

ja

snow hatch
limber crow
#

@snow hatch bekomme diesen Fehler bei deinem Levelsystem


Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
    await self.sync_commands()
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
    registered_commands = await self.register_commands(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 599, in register_commands
    registered = await register("bulk", data, _log=False)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 371, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 27: Application command names must be unique
Unhandled exception in internal background task 'is_connected'.
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\tasks\__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Fun\lvl.py", line 249, in is_connected
    for member in guild.members:
                  ^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'members'
snow hatch
#

hm

#

hast du die guild geändert

#

also mit deiner id gewechselt

limber crow
# snow hatch also mit deiner id gewechselt

Geändert, aber jetzt kommt der Fehler.


Ignoring exception in on_connect
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
    await self.sync_commands()
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
    registered_commands = await self.register_commands(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 599, in register_commands
    registered = await register("bulk", data, _log=False)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 371, in request
    raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 27: Application command names must be unique
snow hatch
#

lass mich schauen

#

also bei mir läuft alles

limber crow
snow hatch
#

also, in zeile 27 wo er sag das es einzigartig sein muss ist der on_ready

#

hast du in der datei irgendwo noch ein on_ready

limber crow
snow hatch
#

ne in der datei wo du mein ding reinkopiert hast

limber crow
snow hatch
#

achso überlesen
hat irgendwas mit dem connecten zu db zu tun

urban glen
snow hatch
#

du hast keine db schon die level.db heißt oder#

snow hatch
urban glen
#

alles gut xd

snow hatch
#

also wie gesagt @limber crow bei mir läufts

#

aber checke mal alles bei mir

limber crow
snow hatch
#

jetzt klappts bei dir?

limber crow
limber crow
#

Warum geht die Respond nachricht nicht ?


import discord
import os
from discord.ext import commands
from discord.commands import slash_command, Option, OptionChoice
from datetime import datetime

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

    @slash_command(name="kick", description="Kicke einen User")
    @commands.has_permissions(kick_members=True)
    async def kick(self, ctx: commands.Context, 
                   member: Option(discord.Member, "Wähle einen Member"),  
                   grund: Option(description="Bitte gebe einen Grund an", choices=[
                       OptionChoice(name=gr, value=gr) for gr in [
                           "Werbung",
                           "Beleidigung",
                           "Spam",
                           "Fehlverhalten",
                           "Andere"
                       ]])):
        try:
            await member.kick(reason=grund)

            em = discord.Embed(
                title="👢 | User gekickt",
                color=discord.Color.red(),
                timestamp=datetime.now()
            )
            em.add_field(name="User", value=f"{member.mention} | `{member.id}`", inline=False)
            em.add_field(name="Grund", value=f"{grund}", inline=False)
            em.add_field(name="Teamler", value=f"{ctx.author.mention} | `{ctx.author.id}`", inline=False)
            em.set_footer(text=f"{ctx.guild.name}", icon_url=ctx.guild.icon)

            file_thmp = discord.File(f"img/kick.png", filename="kick.png")
            file_img = discord.File(f"img/kick.gif", filename="kick.gif")
            em.set_image(url="attachment://kick.gif")
            em.set_thumbnail(url="attachment://kick.png")

            target_channel_id = int(os.getenv("MOD_LOG"))

            target_channel = self.bot.get_channel(target_channel_id)
            if target_channel:
                await target_channel.send(embed=em, files=[file_img, file_thmp])
            else:
                await ctx.send("Der Channel konnte nicht gefunden werden.")
        
            await ctx.respond(f"Der User {member.mention} wurde aus dem Grund `{grund}` gekickt.", ephemeral=True)

        except discord.Forbidden:
            await ctx.send("Ich habe keine Berechtigung, diesen User zu kicken.")
        except discord.HTTPException:
            await ctx.send("Ein Fehler ist aufgetreten.")

def setup(bot):
    bot.add_cog(KickCommand(bot))
limber crow
#

Und diese kommt nur wenn es einen HTTPException ist

urban glen
limber crow
urban glen
#
import discord
import os
from discord.ext import commands
from discord.commands import slash_command, Option, OptionChoice
from datetime import datetime

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

    @slash_command(name="kick", description="Kicke einen User")
    @commands.has_permissions(kick_members=True)
    async def kick(self, ctx: commands.Context, 
                   member: Option(discord.Member, "Wähle einen Member"),  
                   grund: Option(description="Bitte gebe einen Grund an", choices=[
                       OptionChoice(name=gr, value=gr) for gr in [
                           "Werbung",
                           "Beleidigung",
                           "Spam",
                           "Fehlverhalten",
                           "Andere"
                       ]])):
        try:
            # restlicher code ...
            await ctx.respond(f"Der User {member.mention} wurde aus dem Grund `{grund}` gekickt.", ephemeral=True)
        except Exception as e:
            print(e)
#

Schau was dir da geprintet wird

snow hatch
limber crow
snow hatch
#

weshalb hats nicht geklappt(lvlsystem)

limber crow
snow hatch
#

ah ok

limber crow
#

Warum kommt hier keine Nachricht wenn eine Rolle gelöscht wird ?

import discord
import os
from discord.ext import commands

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

    @commands.Cog.listener()
    async def on_role_delete(self, role):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))

        embed = discord.Embed(
            title="Rolle gelöscht",
            description=f"Die Rolle '{role.name}' wurde gelöscht.",
            color=discord.Color.red()
        )

        await channel.send(embed=embed)


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

cog gerladen? wird das event ausgeführt?

urban glen
#

Soweit ich weiß

#

Meinst glaube:

on_guild_role_delete
limber crow
fierce dove
#

Wie kann der bot invite link von anderen Servern erstellen

jade sapphire
#

Moin

solid ingot
jade sapphire
#

Ich arbeite zurzeit an einem kick command, jedoch als embed respond. Ich möchte nicht nur das man nur den member eingeben sollte, um diesen zu kicken sondern auch die begründung dazu. Weiß wer wie man es codet? also nicht nur member: "erwähnung" sondern auch beispielsweise reason: "begründung"

novel ore
#
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "/home/container/cogs/commands/moderation.py", line 824, in clear
    await ctx.respond(embed=success_embed, delete_after=3, ephemeral=True)
  File "/home/container/.local/lib/python3.11/site-packages/discord/commands/context.py", line 286, in respond
    return await self.followup.send(*args, **kwargs)  # self.send_followup
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/webhook/async_.py", line 1745, in send
    data = await adapter.execute_webhook(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/discord/webhook/async_.py", line 219, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10008): Unknown Message
urban glen
jade sapphire
#

Ah, das habe ich auch versucht aber habe wohl das str nicht angegeben

urban glen
#

Das is eig egal

urban glen
#

Weil du es ja ephemeral abschickst

#

Versuchs ersttmal ohne delete_after=3 um zu prüfen ob es daran liegt

limber crow
#

Wieso geht das nicht so ?

Fehlercode

Ignoring exception in on_guild_role_delete
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^
TypeError: RolesUpdate.on_guild_role_delete() missing 1 required positional argument: 'ctx'

Code

import discord
import os
from discord.ext import commands
from datetime import datetime

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

    @commands.Cog.listener()
    async def on_guild_role_delete(self, role, ctx: discord.ApplicationContext):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))

        embed = discord.Embed(
            title="Rolle gelöscht",
            color=discord.Color.red(),
            timestamp=datetime.now()
        )
        embed.add_field(name="", value=f"**Role:** {role.mention}", inline=False)
        embed.add_field(name="", value=f"**Role name:** {role.name}", inline=False)
        embed.add_field(name="", value=f"**Role id:** {role.id}", inline=False)
        embed.add_field(name="", value=f"**Role Color:** {role.color}", inline=False)
        embed.add_field(name="", value=f"**Role Position:** {role.position}", inline=False)
        embed.set_footer(text=f"{ctx.guild.name}", icon_url=f"{ctx.guild.icon_url}")

        file = discord.File(f"img/Mülleimer.png", filename="Muelleimer.png")
        embed.set_thumbnail(url="attachment://Muelleimer.png")

        await channel.send(embed=embed)


def setup(bot):
    bot.add_cog(RolesUpdate(bot))
urban glen
limber crow
urban glen
urban glen
#

Merk ich

limber crow
urban glen
urban glen
urban glen
urban glen
limber crow
#

Wenigstens einer der mit verfünftigt hilft

urban glen
#

Einfach mal augen aufmachen

limber crow
urban glen
# limber crow Das war die lösung

Ich weiß, ich habe dir die lösung oben geschrieben, siehe: #1019974414487535736 message

Und nicht role.guild.icon sondern role.guild.icon.url

urban glen
#

icon gibt halt das asset wieder, icon.url gibt halt einen link zum icon, also die url vom asset

limber crow
#

Gibt es auch ein role Color Change event ?

urban glen
limber crow
#

on_guild_user_role_update gibt es so ein Event oder ähnliches event

urban glen
limber crow
limber crow
limber crow
#

Wieso klappt das nicht ? (Füge dem User eine Rolle hinzu, aber es wird nicht geupdatet)

import discord
import os
from discord.ext import commands
from datetime import datetime

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

    @commands.Cog.listener()
    async def on_user_update(self, before, after):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))
        
        embed = discord.Embed(
            title="User Rollen Update",
            color=discord.Color.blue(),
            timestamp=datetime.now()
        )
        embed.add_field(name="", value=f"**Member:** {before.user.mention}", inline=False)
        embed.add_field(name="", value=f"**Member ID:** {before.user.id}", inline=False)
        embed.add_field(name="", value="", inline=False)
        embed.add_field(name="", value=f"**New Role:** {after.role.mention}", inline=False)
        
        await channel.send(embed=embed)


def setup(bot):
    bot.add_cog(UserUpdate(bot))
urban glen
#

Meines wissens nach kann man ein Embed Field nicht einfach leer lassen

urban glen
#

hm, okay?

Was genau geht denn nicht?

Versuch doch mal prints dazwischen zu setzten

limber crow
#

Fehlercode

Ignoring exception in on_member_update
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Logging\UserUpdate.py", line 20, in on_member_update
    embed.add_field(name="", value=f"**Member:** {self.member.mention}", inline=False)
                                                  ^^^^^^^^^^^
AttributeError: 'UserUpdate' object has no attribute 'member'

Code

import discord
import os
from discord.ext import commands
from datetime import datetime

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

    @commands.Cog.listener()
    async def on_member_update(self, before, after):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))
        
        embed = discord.Embed(
            title="User Rollen Update",
            color=discord.Color.blue(),
            timestamp=datetime.now()
        )
        embed.add_field(name="", value=f"**Member:** {self.member.mention}", inline=False)
        embed.add_field(name="", value=f"**Member ID:** {before.member.id}", inline=False)
        embed.add_field(name="", value="", inline=False)
        embed.add_field(name="", value=f"**New Role:** {after.role.mention}", inline=False)
        
        await channel.send(embed=embed)


def setup(bot):
    bot.add_cog(UserUpdate(bot))
urban glen
#

Hast du nirgends definiert in deiner klasse

limber crow
urban glen
#

before.member vermute ich mal

#

In den Docs müsste es stehen

#

Ah ne

#

Einfach nur "before"

#

Da es bereits ein Member Objekt ist

limber crow
#

Fehlercode

Ignoring exception in on_member_update
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Logging\UserUpdate.py", line 20, in on_member_update
    embed.add_field(name="", value=f"**Member:** {before.member.mention}", inline=False)
                                                  ^^^^^^^^^^^^^
AttributeError: 'Member' object has no attribute 'member'

Code

import discord
import os
from discord.ext import commands
from datetime import datetime

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

    @commands.Cog.listener()
    async def on_member_update(self, before, after):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))
        
        embed = discord.Embed(
            title="User Rollen Update",
            color=discord.Color.blue(),
            timestamp=datetime.now()
        )
        embed.add_field(name="", value=f"**Member:** {before.member.mention}", inline=False)
        embed.add_field(name="", value=f"**Member ID:** {before.member.id}", inline=False)
        embed.add_field(name="", value="", inline=False)
        embed.add_field(name="", value=f"**New Role:** {after.role.mention}", inline=False)
        
        await channel.send(embed=embed)


def setup(bot):
    bot.add_cog(UserUpdate(bot))
limber crow
urban glen
limber crow
#

Fehlercode

Ignoring exception in on_member_update
Traceback (most recent call last):
  File "C:\Users\YT197\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\YT197\Desktop\Allgemein\Dev\Discord\Pycord\TestBot\cogs\Logging\UserUpdate.py", line 23, in on_member_update
    embed.add_field(name="", value=f"**New Role:** {after.role}", inline=False)
                                                    ^^^^^^^^^^
AttributeError: 'Member' object has no attribute 'role'

Code

import discord
import os
from discord.ext import commands
from datetime import datetime

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

    @commands.Cog.listener()
    async def on_member_update(self, before, after):
        channel_id = os.getenv("SERVER_LOG")
        channel = self.bot.get_channel(int(channel_id))
        
        embed = discord.Embed(
            title="User Rollen Update",
            color=discord.Color.blue(),
            timestamp=datetime.now()
        )
        embed.add_field(name="", value=f"**Member:** {before.mention}", inline=False)
        embed.add_field(name="", value=f"**Member ID:** {before.id}", inline=False)
        embed.add_field(name="", value="", inline=False)
        embed.add_field(name="", value=f"**New Role:** {after.role}", inline=False)
        
        await channel.send(embed=embed)


def setup(bot):
    bot.add_cog(UserUpdate(bot))
jade sapphire
#

Jungs wie mach ich nochmal diese Zeichen damit ich ein Code block machen kann

jade sapphire
#

Aber wie mach ich das Zeichen

#

''' bei mir kommt nur das

#
    def __init__(self, bot: discord.Bot):
        self.bot = bot

    @slash_command(description="Kicke einen Member")
    async def kick(ctx,
                   member: Option(discord.Member, "Gib einen User an"),
                   reason: Option(str, "Gebe den Grund an")
    ):

        embed = discord.Embed(title="Administrative Maßnahme",
                                description=f"{ctx.author.mention} kickt {member.mention} weil {reason}",
                                color=discord.color.blue()
        )

        await member.kick
        await ctx.respond(embed=embed)


    @commands.Cog.listener()
    async def on_application_command_error(self,
                                           ctx,
                                           error):
        await ctx.respond(f"Es ist ein Fehler aufgetreten: {error}", ephemeral=True)
#

Also hier ist mein Command

limber crow
jade sapphire
#

Jedoch kann ich beim ausführen des Commands kein Member erwähnen, sondern nur den grund geben.

urban glen
#
await member.kick(reason=reason)
jade sapphire
#

Oh

#

Ich kann aber immernoch nicht einen User eingeben, den ich kicken möchte

urban glen
#

Also du machst /kick aber dann wird "member" und "reason" nicht angezeigt?

jade sapphire
#

Ahhh

#

Hab den Fehler gefunden

limber crow
jade sapphire
#

Hab bei async def, "self" nicht eingegeben

limber crow
#

Ah

jade sapphire
#

nun noch ein problem

#

Wenn ich den Command ausführen möchte bekomme ich so eine fehlermeldung

#

Hab meinen eigenen Fehler schon wieder gefunden haha

tall gorge
jade sapphire
#

Hat geklappt!

urban glen
tall gorge
#

da klappt alles

#

also wenn ich es bei der website eingebe und davor ging auch alles genau so

#

hier nochmal der code abschnitt:

result = requests.get(f"https://api.nykoos.dev/filter/badword?text={message.content}")
                print(f"{result}")
                data = result.json()
                
                print(f"{data}")
                contains = data['contains']
                

                if contains is True:
                    await message.delete()```
urban glen
#

Worum genau gehts grad?

#

Schick ma error, falls vorhanden

tall gorge
#
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.11/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/container/.local/lib/python3.11/site-packages/discord/client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "/home/container/Cogs/Automod.py", line 230, in on_message
    data = result.json()
           ^^^^^^^^^^^^^
  File "/home/container/.local/lib/python3.11/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)```
urban glen
#

Und schick mal dein ganzes on_message
Damit ich nh besseren überblick hab xD

tall gorge
#

ok

#
@commands.Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return
        async with aiosqlite.connect(self.db) as db:
            await db.execute("INSERT OR IGNORE INTO servers (guild_id, log_channel_id, enabled, teamrole_id) VALUES (?, ?, ?, ?)", (message.guild.id, None, 0, None))
            await db.commit()
        async with aiosqlite.connect(self.db) as db:
            async with db.execute("SELECT enabled, teamrole_id, log_channel_id FROM servers WHERE guild_id = ?", (message.guild.id,)) as cursor:
                enabled, teamrole_id, log_channel_id = await cursor.fetchone()
            if teamrole_id is None:
                pass
            if teamrole_id is not None:
                teamrole = message.guild.get_role(teamrole_id)
                if teamrole in message.author.roles:
                    return

            if enabled == 0:
                return
            if enabled == 1:
                result = requests.get(f"https://api.nykoos.dev/filter/badword?text={message.content}")
                print(f"{result}")
                data = result.json()
                
                print(f"{data}")
                contains = data['contains']
                

#
                if contains is True:
                    await message.delete()
                    await message.channel.send(
                        f"**`❌` | {message.author.mention}, dein Text enthält ein Wort, das nicht erlaubt ist!**")
                    async with db.execute("SELECT log_channel_id FROM servers WHERE guild_id = ?",
                                          (message.guild.id,)) as cursor:
                        if log_channel_id is None:
                            pass
                        else:
                            try:
                                log_channel_id = await cursor.fetchone()
                                log_channel = self.bot.get_channel(log_channel_id[0])
                                embed = discord.Embed(title="**`🚨` | AUTOMOD**",
                                                      description=f"> Ein User hat einen verbotenen Begriff benutzt!",
                                                      color=0x2B2D31)
                                ......weitere embed einstellungen
                                await log_channel.send(embed=embed)
                            except:
                                pass
            else:
                pass```
urban glen
#
import requests


def test(msg: str):
    result = requests.get(f"https://api.nykoos.dev/filter/badword?text={msg}")
    print(f"{result}")
    data = result.json()

    print(f"{data}")
    contains = data['contains']
    


    if contains:
        print("contains badword")
    else:
        print("does not contain badword")
        
        
test(msg="Du bist ein ..") # Bei ... hatte ich das H-wort

habs getestet, bei mir funktioniert es:

<Response [200]>
{'given': 'Du bist ein ..', 'filtered': 'Du bist ein ..', 'contains': False} # hab das h-wort mit .. ersetzt, wegen Automod und so
does not contain badword
#

Was genau geht denn bei dir nicht?

tall gorge
#

ka da kommt dieser fehler den ich irgendwie nicht verstehe wenn ich eine nachricht auf dem server schreibe und davor hat alles perfekt funktioniert

#

und halt "schlechte" wörter werden dann auch nicht gelöscht

#

ich kapiere es einfach nicht eig ist alles richtig aber es klappt halt nicht 😦

urban glen
#
    
    @commands.Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return
        
        result = requests.get(f"https://api.nykoos.dev/filter/badword?text={message.content}")
        print(f"{result}")
        data = result.json()
        
        print(f"{data}")
        contains = data['contains']
        if contains is True:
            await message.delete()
            await message.channel.send(f"**`❌` | {message.author.mention}, dein Text enthält ein Wort, das nicht erlaubt ist!**")

Habs so probiert, also halt den (für mich) unnötigen kram entfernt

tall gorge
#

ich checke es nicht vllt liegt es auch an dem hoster

graceful fiber
#

wie sieht deine json aus @tall gorge

urban glen
#

Die json wird aus der request get-anfrage abgerufen

limber crow
#

Kann mir wer in #1137483752612843520 Helfen ?

limpid wolf
tall gorge
limpid wolf
tall gorge
#

ok danke

summer vigil
#

Bei dem Tutorial Bot von Coding Keks gibt es ja eine YT Benachrichtigung, ich habe das Problem das sobald ein neues Video raus kommt der Bot die Nachricht alle 2 - 3 min wieder schickt.

tall gorge
#

wie kann man schauen ob eine auswahl bei einem command leer gelassen wurde

urban glen
#

Oder

if not auswahl:
#

if AUSWAHL is None

urban glen
#

habe es früher geschrieben aber ist später angekommen (internet), sorry :(

tall gorge
#

ok so hatte ich es, dann habe ich wohl ein anderes problem, aber danke euch

tall gorge
#

Macht man das so weil es sieht irgendwie komisch aus:

regel_button TEXT DEFAULT Ja```
solid ingot
#
regel_button TEXT DEFAULT 'Ja'
restive herald
#

Jmd nh Idee, warum die DB Anfrage mit dem has_ticket = 0 nicht anschlägt?

#

hab alles versucht aber es ändert es nd

tall gorge
#

kann man 2 modale direkt nacheinander senden lassen

solid ingot
#

nein

#

du musst zb eine nachricht mit button zwischendurch senden, un beim button öffnet sich das nächste modal

restive herald
#

Oder eif den Inhalt vom 2. ins erste mit reinmachen ._.

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @restive herald, du bist jetzt Level 18 🎉

Du hast insgesamt 1,605 Nachrichten geschrieben.

tall gorge
solid ingot
#

commit vergessen?

restive herald
#

wusste gar nd das man da nen commit machen musste 😂 danke

solid ingot
#

bei allem was nicht select ist 😄

restive herald
#

ah bruh, danke

silk gulch
#

Weiß jemand warum mein Task um 15:24 Uhr nicht ausgeführt wird?

@tasks.loop(time=time(15, 24))
async def check_birthdays(self, guild):
    print("Test")```
tall gorge
#

wie kann man wenn man bei einem modal z.b. {interactioon.user.mention} eingibt dass das dann auch wirklich funktioniert wenn man das aus einer db zieht und dann wo anders mit einem befehl sendet

restive herald
silk gulch
limber crow
restive herald
restive herald
silk gulch
tall gorge
restive herald
tall gorge
restive herald
tall gorge
#

doch stand da vorhon aber egal

#

weißt du wie das gehen würde

restive herald
#

zeig mal den code wie dus hast

silk gulch
restive herald
tall gorge
silk gulch
# restive herald zeig mal den code

Am Code liegt es nicht.
Wenn ich @tasks.loop(hours=24) eingebe, funktioniert es.
Nur nicht, wenn ich es um eine bestimmte Uhrzeit täglich triggern möchte.

tall gorge
# tall gorge

weil so wenn ich ja was mit mention schreibe wird es genauso zurückgeschrieben

silk gulch
restive herald
solid ingot
silk gulch
tall gorge
solid ingot
silk gulch
restive herald
limpid wolf
tall gorge
limpid wolf
#

Dann liegts wohl am Hoster

restive herald
silk gulch
tall gorge
tall gorge
limpid wolf
restive herald
#
a = 1
b = f"{a}"

print(b)
#

das is ungefähr dasselbe prinzip

#

ohne den f string kam dann das: {1}

fierce dove
#

Traceback (most recent call last):
File "/storage/emulated/0/Timo/Dev/Discord/Bot/Eski/main.py", line 3, in <module>
import ezcord
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/ezcord/init.py", line 6, in <module>
from . import components, emb, logs, sql, times, utils
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/ezcord/components.py", line 123, in <module>
class EzView(discord.ui.View):
^^^^^^^^^^
AttributeError: module 'discord' has no attribute 'ui'

fierce dove
#

Ich habe discord installiert

restive herald
#

zeig mal deine pip freez

fierce dove
#

aiofile==3.8.7
aiofiles==0.8.0
aiohttp==3.8.5
aiopath==0.6.11
aiosignal==1.3.1
aiosqlite==0.17.0
anyio==3.7.1
async-timeout==4.0.2
asyncpraw==7.7.1
asyncprawcore==2.3.0
attrs==23.1.0
caio==0.9.12
certifi==2023.7.22
chardet==5.2.0
charset-normalizer==3.2.0
color-pprint==0.0.3
colorama==0.4.6
craiyon.py==1.0.0
discord==2.3.1
discord.py==2.3.1
discord.py-message-components @ git+https://github.com/mccoderpy/discord.py-message-components.git@60c66473b0b8ebd70e2349a7dfb5339736bfd908
ezcord==0.3.3
frozenlist==1.4.0
idna==3.4
multidict==6.0.4
py-cord==2.4.1
pypresence==4.3.0
python-dotenv==1.0.0
regex==2023.6.3
requests==2.31.0
sniffio==1.3.0
typing==3.7.4.3
typing_extensions==4.7.1
update-checker==0.18.0
urllib3==2.0.4
websocket-client==1.6.1
yarl==1.9.2

restive herald
#

Du solltest immer nur eine verschiedene Discord Lib nutzen

#

d.h. alles mit discord deinstallieren und dann nur ezcord installieren.

fierce dove
#

Am ok

tall gorge
limpid wolf
#

nutz dock keks hosting 😮

#

Und endelon naja weiß ich ja nicht

tall gorge
#

keks hsoting hat leider zu wenig memory

#

würde gerne etwas anderes nutzen, hatte davor mal keks hosting premium habe aber kein nitro mehr

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tall gorge, du bist jetzt Level 14 🎉

Du hast insgesamt 848 Nachrichten geschrieben.

restive herald
#

man darf jtzt hier keine werbung für andere machen nh? weil ich hätte nen free hoster mit 256 mb memory ._.

tall gorge
#

kannst du per dm?

tall gorge
restive herald
tall gorge
#

ok teste es dann später

tall gorge
#

bei mir geht es so nicht

restive herald
#

hmm dann keine ahhnung

tawdry leaf
restive herald
tawdry leaf
#

Aha der String macht aber nix anderes eig 😂

restive herald
#

Hat btw. jemand nen Tool, womit man bei Mac die Koordinaten eines Pixels sehen kann, wenn man drüberhovert?

limpid wolf
solid ingot
#

schick mal deinen code

summer vigil
#

from discord.ext import commands, tasks

import scrapetube

class Youtube(commands.Cog):
def init(self, bot):
self.bot = bot
self.channels = {
"Sxak": f"https://www.youtube.com/@Sxak1",

    }
    self.videos = {}

@commands.Cog.listener()
async def on_ready(self):
    self.check.start()

@tasks.loop(seconds=60)
async def check(self):
    discord_channel = self.bot.get_channel(1137110780924395571)  # hier channel id einfügen

    for channel_name in self.channels:
        videos = scrapetube.get_channel(channel_url=self.channels[channel_name], limit=5)
        video_ids = [video["videoId"] for video in videos]

        if self.check.current_loop == 0:
            self.videos[channel_name] = video_ids
            continue

        for video_id in video_ids:
            if video_id not in self.videos[channel_name]:
                url = f"https://youtu.be/{video_id}"
                await discord_channel.send(f"**{channel_name}** hat ein Video hochgeladen\n\n{url}")

        self.videos[channel_name] = video_ids

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

graceful fiber
summer vigil
#
from discord.ext import commands, tasks

import scrapetube


class Youtube(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.channels = {
            "Sxak": f"https://www.youtube.com/@Sxak1",
            
        }
        self.videos = {}

    @commands.Cog.listener()
    async def on_ready(self):
        self.check.start()

    @tasks.loop(seconds=60)
    async def check(self):
        discord_channel = self.bot.get_channel(1137110780924395571)  # hier channel id einfügen

        for channel_name in self.channels:
            videos = scrapetube.get_channel(channel_url=self.channels[channel_name], limit=5)
            video_ids = [video["videoId"] for video in videos]

            if self.check.current_loop == 0:
                self.videos[channel_name] = video_ids
                continue

            for video_id in video_ids:
                if video_id not in self.videos[channel_name]:
                    url = f"https://youtu.be/{video_id}"
                    await discord_channel.send(f"**{channel_name}** hat ein Video hochgeladen\n\n{url}")

            self.videos[channel_name] = video_ids


def setup(bot):
    bot.add_cog(Youtube(bot))
fierce dove
#

Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/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 "/storage/emulated/0/Timo/Dev/Discord/Bot/Eski/cogs/General/tictactoe.py", line 27
if state in (view.X, view.0):
^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?

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

Traceback (most recent call last):
File "/storage/emulated/0/Timo/Dev/Discord/Bot/Eski/main.py", line 42, in <module>
bot.load_cogs(
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/ezcord/bot.py", line 231, in load_cogs
self.load_extension(f"{'.'.join(path.parts)}.{dirname}.{name}")
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/cog.py", line 777, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.General.tictactoe' raised an error: SyntaxError: invalid syntax. Perhaps you forgot a comma? (tictactoe.py, line 27)

#

Help

solid ingot
summer vigil
#

Also passiert das nur beim ersten mal?

solid ingot
fierce dove
solid ingot
burnt prairieBOT
#

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

Links aus diesem Video
Scrapetube Docs ► https://scrapetube.readthedocs.io/en/latest/
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...

▶ Play video
summer vigil
#

Danke!

solid ingot
tawdry leaf
fierce dove
jade sapphire
#
@slash_command(description="entbanne ein User", name="unban")
    async def unban(self,
                    ctx,
                    user: Option(user.id, "Gebe die ID des jeweiligen Users an")
    ):
        embed = discord.Embed(
            title="Entbannung",
            description=f"{ctx.author.mention} entbannt {user.id}",
            color=discord.Color.blue()
        )
        embed.set_image(url="https://i.ytimg.com/vi/Ao52TmGNiGs/hqdefault.jpg")
        embed.set_footer(text="Bot erstellt von Astolon1")

        user_obj = await self.bot.fetch_user(int(user))
        await ctx.guild.unban(user_obj)
        await ctx.respond(embed=embed)```
jade sapphire
#

Moin also mein Unban command hat leider ein fehler, Es ist ein Fehler aufgetreten: Application Command raised an exception: TypeError: int() argument must be a string, a bytes-like object or a number, not 'User'

solid ingot
#

kannst du mal den ganzen fehler schicken?

jade sapphire
#

Ach und dieses user: Option(user.id) hab ich schon verbessert

jade sapphire
jade sapphire
#

Nein

#

Unban geht immernoch nicht

vivid sky
#

Hier ein example hab früher sowas gemacht du musst mal testen ob es noch geht aber bestimmt:

@commands.slash_command(description='unban a member')
async def unban(ctx, self, member: discord.Option(str, required=True)):
    if not ctx.author.guild_permissions.ban_members:
        return await ctx.response.send_message("You dont have the permissions to do that")
    x = False
    async for ban in ctx.guild.bans(limit=None):
        if ban.user.id == int(member):
            member = ban.user
            x = True
    if x is False:
        await ctx.response.send_message('The specified member is not banned!', ephemeral=True)
    else:
        await ctx.guild.unban(member)
        await ctx.response.send_message(f'Success unban!', ephemeral=True)
jade sapphire
#

naja um ehrlich zu sein würde ich gerne den fehler in meinem eigenen code wissen wollen

#

damit ich auch was dazu lerne

vivid sky
#

Es war ja auch ein beispiel

#

"example"

fierce dove
#

Wie kann ich machen das jedes Emoji von mein bot auch auf anderen Servern angezeigt wird

vivid sky
fierce dove
#

Wie kann ich machen das jedes Emoji von mein bot auch auf anderen Servern angezeigt wird

vivid sky
fierce dove
#

Auf anderen Server kommt aber nur der Name vom emoji

solid ingot
#

dein bot braucht die berechtigung für externe emojis

fierce dove
#

Oke

jade sapphire
jade sapphire
fierce dove
#

@solid ingot gibt es dafür intents

tall gorge
#

hast du das auch mit der emoji id gemacht?

solid ingot
#

das ist der name, nicht die ID

fierce dove
#
embed = discord.Embed(title=f"{auswahl}", description=f"<bluearrow:1138156917877903551> {random.choice(Antwort)}", color=discord.Color.from_rgb(89, 101, 242))
        await ctx.respond(embed=embed)
solid ingot
#

ist der bot auf dem server, der das emoji hat?

fierce dove
#

Ja

#

Hab's geschafft

solid ingot
#

woran lags?

fierce dove
#

Musste den bot neu einladen auf densServer wo das Emoji war

ruby sparrow
#
Traceback (most recent call last):
  File "C:\Users\nicor\OneDrive\Desktop\asvpython\main.py", line 91, in <module>
    bot.load_cogs("cogs", log=ezcord.CogLog.default, log_color="green")
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\ezcord\bot.py", line 213, in load_cogs
    self.load_extension(f"{'.'.join(path.parts)}.{name}")
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\nicor\AppData\Local\Programs\Python\Python310\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.BotInfo' raised an error: TypeError: Commands or listeners must not start with cog_ or bot_ (in method BotInfo.bot_guilds)```
#
import discord
from discord.ext import commands
from discord.commands import slash_command



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

    @slash_command()
    async def bot_guilds(self, ctx):
        guilds = self.bot.guilds
        guild_list = "\n".join([f"{guild.name} (ID: {guild.id})" for guild in guilds])
        embed = discord.Embed(title="Bot Guilds", description=guild_list, color=discord.Color.green())
        await ctx.respond(embed=embed)

def setup(bot):
    bot.add_cog(BotInfo(bot))```
hard pivot
#

Hallo weiß wer ob pycord ein event hat bei dem alles drinnen ist wenn was deletet wird also channel, rollen und sowas?
Oder ein event was das einzen anzeigt

urban glen
#

falsch

urban glen
ruby sparrow
tall gorge
ruby sparrow
hard pivot
urban glen
urban glen
#

Wie macht man sowas mit py-cord?

urban glen
#

Thx

tall gorge
#
Traceback (most recent call last):
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\ticket.py", line 509, in button_callback1
    ticket_channel = await interaction.guild.create_text_channel(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\guild.py", line 1263, in create_text_channel
    data = await self._create_channel(
                 ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\guild.py", line 1142, in _create_channel
    "id": target.id,
          ^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'

Aber eig ist es nicht NoneType, deswegen verstehe ich nnicht was falsch ist

tall gorge
#

weiß jemand den fehler

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
wind finch
#

Vielleicht hilft das

tall gorge
#

kenne das video aber eig stimmt alles und in der db steht auch etwas drin

#

geprintet wird auch alles

limber crow
tall gorge
#

kannst du gerne machen wenn dass das problem lösen könnte

limber crow
urban glen
#

Wie greifst du denn in der View klasse auf self.bot zu?

tall gorge
#

class TutorialView(discord.ui.View):
def init(self, bot):
self.bot = bot

#

meist du das?

urban glen
#

Und wie übergibst du deinen Bot in diese Klasse?

tall gorge
#

ich bin verwirrt

#

was meinst du genau

jade sapphire
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @jade sapphire, du bist jetzt Level 12 🎉

Du hast insgesamt 1,121 Nachrichten geschrieben.

jade sapphire
#

danke aber!

#

Noch nh frage wie kann ich ein restriction auf die jeweiligen slash commands setzen, so das nur gewisse rollen es nutzen können

jade sapphire
#

genau

vivid sky
#

meinst du @commands.slash_command()
@commands.has_role?

jade sapphire
#

also das es für gewisse User / Rollen verboten ist den command aus zu führen

vivid sky
#

@commands.has_role(ROLEID)

jade sapphire
#

Danke

#

Nur das?

vivid sky
#

brauchst halt noch ein error handler wenn er die rolle nicht hat

#

aber so sollte es schon gehen

jade sapphire
#

Genau

vivid sky
#

👍🏽

jade sapphire
#

wie schreibe ich es nun im If satz...

vivid sky
#
ADMINID = ctx.guild.get_role(ROLEID)
if not ADMINID in ctx.author.roles:
     return await ctx.respond("du hast keine rechte")

Meinst du das so?

jade sapphire
#

genau

#

danke

limber crow
#

Ich habe da mal so eine Frage. Kann man beim Bansystem Checken, ob ein Moderator oder ein Admin einen User gebannt hat ? Ich frage, weil wenn ein Admin jemanden bannt, soll ein anderes gif kommen, als wenn ein Moderator einen User bant

urban glen
#

kannst rolle oder perms abfragen

limber crow
urban glen
#

also du kannst
if ctx.author.permission.????
oder
role = self.bot.get_role(id)
if role in ctx.author.roles:

limber crow
urban glen
#

und dann immer bei der if abfrage url = machen und ja

#

aber wenn du es mit rolle abfragst musst du schauen das die person admin rolle hat und keine mod rolle hat

vivid sky
limber crow
#

Würde dies so gehen ?

urban glen
limber crow
urban glen
#

Hey, mein freund hat das Programm das da steht das pip nicht installieren ist kann mir wer helfen?

#

haben add to path getan bei python

limber crow
urban glen
#

habs schon trz danke

restive herald
tall gorge
restive herald
#

du machst self.bot.fetch_channel obwohl du kein self.bot in der klasse hast.

tall gorge
#

doch eig schon

#

und ging ja davor auch

restive herald
#

du könntest auch eif interaction.client machen

tall gorge
restive herald
tall gorge
#

aber z.b. beim rollen getten geht es auch nicht, liegt nicht nur an der kategorie

restive herald
#

printe dir mal die daten aus, maybe liegt’s daran

tall gorge
#

ne da wird alles geprintet, aheb ich schon getestet deswegen kapiere ich es ja nicht

#

noch ideen?

restive herald
#

dann kannste die parameter nochmal festlegen und mal printen lassen

silk gulch
#

Worum geht es?

tall gorge
#

bei meinem ticket system kommt die ganze zeit ein NoneType error bei der modrole obwohl eig alles korrekt ist

#

genauer gesagt bei allen werten

urban glen
#

Warum setzt du eig am anfang alles auf None und danach fragst du es ab?

Dann ist ja logisch, dass es None is

tall gorge
#

wie muss ich es dann machen?

#

weil irgendetwas muss man ja hinschreiben

urban glen
#
async with aiosqlite.connect(self.db) as db:                                 
            await db.execute("""
                        INSERT OR IGNORE INTO tickets (guild_id, kategorie_id, teamrole_id, ticket_open_title, ticket_open_description, ticket_open_color, ticket_open_image, ticket_open_thumbnail)
                        VALUES (?, ?, ?, ?, ?, ?, ?, ?)
                        """, (interaction.guild.id, None, None, None, None, None, None, None))

Diese Zeilen entfernen

Weil wenn du es auf None setzt und dann abrufst, ist ja logisch das es None ist

tall gorge
#

ok, danke bin wohl noch müde

#

es kommt aber trz der fehler:

Traceback (most recent call last):
  File "C:\Users\Kevin\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Users\Kevin\PycharmProjects\NightPro - Test\Cogs\ticket.py", line 477, in button_callback1
    print(modrole.name)
          ^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'name'```
solid ingot
#

Modrole wird anscheinend nicht gefunden, deswegen ist das none

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
tall gorge
#

pepecry ich weiß einfach nicht was falsch ist

solid ingot
#

schick doch mal den code

tall gorge
#

Den ganzen?

solid ingot
#

nein

tall gorge
solid ingot
#

hast du dir schonmal data[1] geprintet?

tall gorge
#

Ja alles, ist auch im Code dabei

#

Und da kommen die werte

#
1131576859142934611  --  1
wrer  --  2
ererr  --  3
345612  --  4
  --  5
  --  6```
solid ingot
#

ist das ein string oder ein integer?

tall gorge
#

int

#

habe es so zumindest in der db gespeichert

tall gorge
#

Weißt du den fehler

jade sapphire
tall gorge
#

Ja

restive herald
jade sapphire
#

aso dachte du codest generell am hand

#

y

restive herald
#

Nee

jade sapphire
#

xD

#

Moin Jungs ich habe leider ein kleines problem, undzwar ich habe an einem /ban command gearbeitet was auch "problemlos" ging, jedoch geht mein "restriction" command nicht. Ich möchte das es ein embed schickt, falls der User die gegebene rolle nicht hat, und nicht das der bot ohne embed so antwortet:

Es ist ein Fehler aufgetreten: Role 1138232108993757306 is required to run this command.

urban glen
#

@commands.has_role(1138232108993757306)

Du brauchst die rolle mit dieser id

jade sapphire
#

Ich möchte das der bot das error in nem Embed schickt

urban glen
#

Warum hast du denn die on_application_command_error event im command drinne?

jade sapphire
#
admin = ctx.guild.get_role(1138232108993757306)
        if not admin is ctx.author.roles:
            async def on_application_command_error(self, ctx, error):
                embed = discord.Embed(
                    title="Keine Berechtigung",
                    description=f"{ctx.author.mention} du hast keine rechte um diesen Command auszuführen! {error}"
                )
            return await ctx.respond(embed=embed)```
urban glen
#

Dann wurde es dir falsch erklärt

jade sapphire
#

hmm...

#

Sollte ich es löschen?

jade sapphire
#

Hab ich mir schon angeschaut

jade sapphire
#
        async def on_application_command_error(self, ctx, error):
                    embed = discord.Embed(
                        title="Keine Berechtigung",
                        description=f"{ctx.author.mention} du hast keine rechte um diesen Command auszuführen! {error}"
                    )
                    ctx.respond(embed=embed)
                    raise error```
#

Jetzt hab ich es mal so versucht

#

Woops habe await vergessen

#

Naja geht immernoch nicht

#

ja jetzt habe ich garnicht die admin role bestimmt

#

oh man… ich raste gleich aus xD

restive herald
#

Kann man in Python es so machen, dass wenn ein Input z.b. länger als 10 Zeichen ist, die Hälfte des inputs oben steht und die Hälfte unten?

#

also es sozusagen 2 outprints gibt, einen mit der 1.hälfte und einen mit der 2.

restive herald
#

Hat jmd ne idee wie?

tall gorge
#

also kann mir wer bei meinem problem helfen?

tawdry leaf
urban glen
tall gorge
#

ich will diesen regel button nur anzeigen wenn in der db es auf ja gesetzt wird, aber wie soll ich dann die guild id überprüfen weil ich es ja nicht mit ctx oder interaction machen kann

 @discord.ui.button(label="Regel", style=discord.ButtonStyle.blurple, emoji="🔖", custom_id="Regel", row=1)
    async def button_callback4(self, button, interaction):
.....embed text.....
             ```
Ich wollte es dann ca so machen aber dann habe ich das guild problem:
```py
conn = aiosqlite.connect('ticket.db')
cursor = conn.cursor()


cursor.execute("SELECT regel_button FROM tickets WHERE guild_id = ?", (ctx.guild.id))
result = cursor.fetchone()


if result:
    regel_button = result[0]
else:
    regel_button = None

cursor.close()
conn.close()```
```py
if regel_button == "ja":
   
    button = discord.ui.Button....
solid ingot
#

interaction.guild

tall gorge
#

ja aber ich habe ja keine interaction

urban glen
tall gorge
#

aber ich kann das ja nicht da reinschreiben weil es den button nicht geben soll

urban glen
#

Ich versteh irgendwie nicht dein genaues problem gerade

tall gorge
#

also ich will eine if abfrage if button is "Ja" machen dann soll es den button geben und wenn es Nein ist nicht und ich greife dann auf die db zu um abzufragen ob der buttonwert ja oder nein ist aber dafür brauche ich die guild id und ich weiß nicht wie ich daruaf zugreifen soll

urban glen
#

Machst du das nd mit nem command?

class deineView(discord.ui.View):
    ...

  @discord.ui.button(...)
  ...


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


    @slash_command("regel")
    async def regel(self, ctx):
        conn = aiosqlite.connect('ticket.db')
        cursor = conn.cursor()
        
        
        cursor.execute("SELECT regel_button FROM tickets WHERE guild_id = ?", (ctx.guild.id,))
        result = cursor.fetchone()

        if result:
            regel_button = result[0]
        else:
            regel_button = None

        cursor.close()
        conn.close()

        if regel_button == "ja":
            await ctx.respond(view=deineView())
        else:
            pass

so geht das doch eig?

tall gorge
#

stimmt danke dir

jade sapphire
#

leute ich versuche seit 3 tagen ein fehler zu beheben, bzw. zu finden wieso mein embed für den error bspw. wenn ein user nicht die rolle hat, das ein embed geschickt wird das den user der den command ausgeführt hat, aber die rolle dafür nicht besitzt, informiert das er keine rechte dafür hat.

#
        if not admin is ctx.author.roles:
            await ctx.respond(embed=embed)
            embed = discord.Embed(
                title="Keine Berechtigung",
                description=f"{ctx.author.mention} du hast keine rechte um diesen Command auszuführen!"
                )```
#
        async def on_application_command_error(self,
                                               ctx,
                                               error
    ):
        admin = ctx.guild.get_role(1138232108993757306)
        if not admin is ctx.author.roles:
            await ctx.respond(embed=embed)
            embed = discord.Embed(
                title="Keine Berechtigung",
                description=f"{ctx.author.mention} du hast keine rechte um diesen Command auszuführen!"
                )
            await ctx.respond(embed=embed)```
#

discord.errors.ExtensionFailed: Extension 'cogs.ban' raised an error: IndentationError: expected an indented block (ban.py, line 36)

#

Nun bekomme ich so ein Error

#

Zeile 36 ist da bei admin = ctx.guild.get_role(1138232108993757306)

vivid sky
restive herald
vivid sky
jade sapphire
#

jungs in türkei ist grad erdbeben habs grad gespürt gib mir nh sekunde

vivid sky
#

Perfekt

jade sapphire
restive herald
#

du musst @commands.Cog.listener() und async def _on_application_Command_error(): einmal nach links tabben.

#

also falsche syntax

burnt prairieBOT
#

Rückgängig machen könnt ihr eine Einrückung übrigens mit Shift + Tab :)

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 Serve...

▶ Play video
jade sapphire
#

Jungs

#

Ich bekomme die ganze zeit so ein fehler

#

"Less than 1 MiB is left on the system directory partition ("

#

Wie geht das weg

limber crow
#

Zu wenig Speicher

jade sapphire
#

kann nicht sein

#

habe sehr viel speicher eig

limber crow
hard pivot
#
class DatabaseSetup():

    def db_connector():

        db_connector = mysql.connector.connect(host=os.getenv('host'), user=os.getenv('user'), password=os.getenv("sql_passwort"), database=os.getenv('discord_db'), buffered=True)
        return db_connector

    def db_close(cursor, db_connection):

        if db_connection.is_connected:
            
            db_connection.close()
            cursor.close()

        else:
            pass

Hallo kann mir wer sagen wie ich es so machen kann das der connector immer beim start des bot eine connection aufbaut und wenn er ausgeht sie wieder schließt? (Hab's momentan so ist aber relativ unpraktisch)

limber crow
hard pivot
#

Hab ich versucht aber hat nicht so geklappt

limber crow
tall gorge
#

wie kann ich dropdown menüs auf den placholder nach jeder auswahl zurücksetzen

urban glen
limber crow
tall gorge
#

danke euch

jade sapphire
wind finch
#

Warum kriegt der Member keine Rolle?

@bot.event
async def on_member_update(before, after):
    target_status = "gg/dreamsplace" 
    role_id = 1135226840630440058
    if before.activity != after.activity:
        if isinstance(after.activity, discord.CustomActivity) and after.activity.state == target_status:
            role = after.guild.get_role(role_id)
            await after.add_roles(role)
        else:
            role = after.guild.get_role(role_id)
            await after.remove_roles(role)```

Kommt kein Error
wind finch
#

Hm müsste ich nachschauen

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @wind finch, du bist jetzt Level 10 🎉

Du hast insgesamt 417 Nachrichten geschrieben.

Du hast <@&1032921984612433952> erhalten!

ruby sparrow
#

Wie kann bei ein Auto-Delete WebHooks Nachrichten überspringen die werden nicht gelöscht?

tall gorge
#

und hat dein bot genügend rechte?

ruby sparrow
wind finch
tall gorge
wind finch
ruby sparrow
#

Die normale bot role muss trotzdem über die Member Rolle sein

ruby sparrow
#

Send mal bild

limber crow
wind finch
limber crow
# ruby sparrow wie ?

Ich habe das so gemacht


@commands.Cog.listener()
    async def on_message(self, message):
        for channel_id, time in self.autodelete_channels:
            if (
                message.channel.id == channel_id
                and not message.pinned
            ):
                await asyncio.sleep(time)
                await message.delete()

Siehe auch #1122936925934858281

opal basin
#

Kann man mit einem bot das role Icon einer Rolle ändern wenn ja wie?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @opal basin, du bist jetzt Level 5 🎉

Du hast insgesamt 113 Nachrichten geschrieben.

Du hast <@&1024276691205496872> erhalten!

jade sapphire
#

alles gut habs schon gefixxt

solid ingot
wind finch
#

Kann mir jemand helfen?

limber crow
solid ingot
wind finch
solid ingot
#

alles gut kann nicht jeder so schnell sein wie ich nikos

opal basin
#

Danke

wind finch
#

jo

solid ingot
#

@wind finch wenn kein error kommt, wird wahrscheinlich entweder das event nicht ausgeführt, oder die if bedingung wird nicht true

#

hast du den member intent im code aktiviert?

wind finch
#

Um vielleicht etwas herauszufinden, weil eigentlich stimmt der Code so weit ich weiß.

solid ingot
#

du kannst einmal mit prints prüfen ob das event ausgeführt wird und ob die if bedingung true wird

jade sapphire
#

Eine frage

limber crow
jade sapphire
#

Undzwar die Images in den Embeds sind immer riesig, wie kann ich es so um coden, das es eine bestimmte größe besitzt?

restive herald
#

Oder du setzt es als Thumbnail, das is doch kleiner oder?

limber crow
solid ingot
#

der user bekommt die rolle nur wenn beide if bedingungen wahr werden

jade sapphire
#

was ist das

limber crow
jade sapphire
#

ne ich meine coden

wind finch
jade sapphire
#

also kann es irgendwie coden oder so?

#

das sich der image automatisch verkleinert

limber crow
burnt prairieBOT
#
limber crow
restive herald
jade sapphire
#

okay

solid ingot
restive herald
#

dann müsstes kleiner sein ig

jade sapphire
#

Alles klar danke

limber crow
restive herald
wind finch
solid ingot
#

wie hast du die prints denn gesetzt?

jade sapphire
#

Ja dann freue ich mich schon auf morgen damit ich meine Welcome Card und mein embed command erweitern kann!

solid ingot
solid ingot
#

wenn du die prints innerhalb der if bedingung machst, die nicht ausgeführt wird, werden sie auch nicht angezeigt. versuch dir mal vor den bedingungen die werte zu printen, die du in die bedingungen einsetzt. dann siehst du ja, ob die werte gleich oder ungleich sind und weißt dann, wieso die if bedingung nicht true wird

wind finch
wind finch
#

Aber das ging nur einmal

#

Jetzt Printet sich bei restart nichts

#

Naja gehe erstmal pennen , gute Nacht.

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
limber pewter
#

bot.get_message

#

Versuche eine Nachricht zu bearbeiten die ich mit bot.get_message bekomme

#

AttributeError: 'NoneType' object has no attribute 'edit'

#

Kriege also beim bot.get_message schon ein None zurück

urban glen
#

Richtige Message ID angegeben?

limber pewter
#

Yes, mehrmals geprüft

#

Bot hat auch Zugriff auf den Channel

urban glen
#

zeig mal deinen code

limber pewter
urban glen
limber pewter
#

...

#

es tut mir leid

urban glen
#

Probier doch mal deine message zu fetchen, um zu schauen ob es überhaupt auch so gefunden werden kann

limber pewter
#

aber das wird wohl nicht der fehler sein

#

wie fetch ich die message

urban glen
#

Oder du machst

channel = bot.get_channel(id)
message = channel.get_partial_message(id)
#

Das gibt dir dann nh PartialMessage Objekt und hier findest du den rest:

limber pewter
#

discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: PartialMessage.edit() takes 1 positional argument but 2 were given

#

schaue mir dazu mal die docs an

#

funktioniert 🙂 danke

urban glen
limber pewter
#

yes yes hab ich auch gesehen

#

wie macht man bei einem Slash Command String Option dass da so Vorschläge kommen

#

dass man was auswählen kann oben

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
obtuse estuary
#

Meinst du das?

limber pewter
#

yes

#

ich meine ich kann mcih daran erinnern

#

wie das viel einfacher ging

#

aber ka vlt vertue ich mich auch

urban glen
#

options gibt es auch, statt autocomplete

burnt prairieBOT
#
Level Up!

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

Du hast insgesamt 10,955 Nachrichten geschrieben.

limber pewter
#

konnte man bei options nicht einfach eine liste angeben danach?

#

options=["1", "2"]

urban glen
#

Weiß grad nd wie es in pycord is

solid ingot
limber pewter
#

perfekt

#

danke

tall gorge
#

Der code müsste doch eig funktionieren oder, kann ich nämlich jetzt schlecht testen keine lust 24h zu warten xd

 @slash_command()
    async def userstats(self, ctx, user: discord.Member):

        end_time = datetime.datetime.utcnow()
        start_time = end_time - datetime.timedelta(hours=24)

        async with aiosqlite.connect(self.db) as db:
            async with db.execute(
                    "SELECT msg_count FROM messages WHERE guild_id = ? AND user_id = ? AND msg_date BETWEEN ? AND ?",
                    (ctx.guild.id, user.id, start_time, end_time)) as cursor:
                data = await cursor.fetchone()

        await ctx.respond(
            f"Der Benutzer {user.name} hat in den letzten 24 Stunden insgesamt {data[0]} Nachricht(en) geschrieben.")```
urban glen
tall gorge
#

ja stimmt könnte man machen xd

#

funktioniert leider doch nicht werden immer alle geschriebenen nachrichten angezeigt

#

ach stimmt das sind ja andere zeitzonen nicht so optimal

thick haven
#

Wenn ich jetzt eine liste in einer db speicher sollte ich bdas so speicher [id1,id2,id3] oder lieber so id1,id2,id3

tall gorge
#

kommt darauf an was du damit machen willst

limber pewter
#

kriege einen Invalid Form Body Error wenn ich ein modal senden will

#
Traceback (most recent call last):
  File "C:\Users\AngelosKehayoglou\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\AngelosKehayoglou\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Users\AngelosKehayoglou\AppData\Local\Programs\Python\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: HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In data.components: Must be between 1 and 5 in length.
limber pewter
#

ja danke dir

#

habe ich

#

verstehe den fehler trotzdem nicht

graceful fiber
limber pewter
#

habe 2

restive herald
limber pewter
#

hab den fehler aber behoben, war was ganz anderes

restive herald
limber pewter
limber pewter
restive herald
limber pewter
#

😂😂

viscid lake
#

Bei mir laden keine commands mehr aber cogs

Benutze ezcors

restive herald
#

is das bei allen cogs so?

viscid lake
#

Ja alle laden aber der bot läd keine commands

#

Nvm nicht alle cogs laden

#

oben gehts weiter

restive herald
#

nur security wurde geladen oder was

viscid lake
#

ne der screen ist klein geworden

restive herald
#

schick mal nen screen von der security datei

viscid lake
#

der rest kam nach dem infos

#

und am ende kam RuntimeError: Event loop is closed

urban glen
urban glen
#

also kein @slash_command

viscid lake
urban glen
viscid lake
#

es geht nicht um die sondern allgemein es werden alle cogs geladen außer commands

urban glen
#

debug_guilds?

viscid lake
#

?

urban glen
#

hast du debug_guilds?

viscid lake
#

nein

limber pewter
#

verrückt

#
    intents=intents,
    debug_guilds=[SERVER IDS]
)```
#

soweit ich weiß muss das in deinen code

#

@viscid lake

restive herald
#

debug_guilds müssen nd rein

#

das is nur optional

urban glen
#

Weiß jemand was der Rate Limit für Discord Rollen Entfernung ist

viscid lake
restive herald
vivid sky
thick haven
#

kann ich hier irgentwie .fetch_user nutzen ohne den bot mitzugeben nur mit sddiesen 3 parametern
@discord.ui.user_select(placeholder="Wähle einen user aus", min_values=1,max_values=1) async def user_callback(self, select, interaction):

solid ingot
#

interaction.client

thick haven
#

banned_user = await interaction.client.fetch_user(banned_user_id) print(banned_user.voice)
wie kann ich schauen ob der user in einem bestimmten voice ist ich brauche die id wo der user drinne ist aber mit .voice machen

ocean sandal
#

Kennst sich jemand mit dem mysql Connector package für python aus? Ich bekomme es nicht zum laufen. Mein Command: pip install mysql-connector-python . Habe es auch schon mit pip3 Versucht. Error: ModuleNotFoundError: No module named 'mysql.connector'; 'mysql' is not a package

obtuse estuary
thick haven
obtuse estuary
#

Weil ausm kopf weiß ich es auch nicht

thick haven
obtuse estuary
#

Hmm

solid ingot
#
for channel in guild.voice_channels:
    if user.id in channel.voice_states:
        ...
thick haven
solid ingot
#

ja das würde dann so aussehen

for voice_channel in guild.voice_channels:
    if user.id in voice_channel.voice_states:
        ...
thick haven
solid ingot
#

kannst du

#

du kannst dir auch einen voice channel holen und dann machen if user.id in channel.voice_states

thick haven
solid ingot
#

das zweite war richtig

thick haven
#

und das gleiche bei .disconnect()

#

?

solid ingot
#

das muss schon ein member sein, kein user

#

member sind user, die mitglied auf einem bestimmtem server sind, und nur member können demzufolge auch in einem voice channel sein

thick haven
solid ingot
#

naja wenn du die guild kannst kannst du darüber den member laden

thick haven
#

Okay, kannst du mir sagen wie das geht oder wie ichd as umsetzte

solid ingot
#

eine möglichkeit ist guild.get_member()

thick haven
#

also würdest du sagen so?
interaction.guild.get_member(banned_user) await banned_user.move_to(None)

solid ingot
#

nicht ganz, in dem fall bringt das get_member nichts, weil du den member nirgendwo speicherst und trotzdem mit banned_user weitermachst

limber crow
#

Kannst den Member beim Bannen in der Datenbank speichern mit Name und ID. So mache ich das zumindest

#

Aber bei dem Bannsystem von mir Arbeite ich schon mit Datenbank, da ich diese für manche Dinge brauche

trim dagger
#

Der Fehler

Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/commands/core.py", line 235, in wrapped
ret = await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/storage/emulated/0/Felix/Dev/Discord/Bot/globalChat/main.py", line 91, in addglobal
await sendAll(embed=embed)
^^^^^^^^^^^^^^^^^^^^
TypeError: sendAll() missing 1 required positional argument: 'message'

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

Traceback (most recent call last): File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/commands/bot.py", line 1350, in invoke
await ctx.command.invoke(ctx)
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/commands/core.py", line 1029, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/ext/commands/core.py", line 244, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: sendAll() missing 1 required positional argument: 'message'

vernal rampart
urban glen
urban glen
vernal rampart
#

mein get_level funktioniert nicht:

@staticmethod
    def get_level(xp):
        lvl = 1

        while True:
            xp -= 100
            if xp < 0:
                return lvl
            lvl += 1
wind finch
#
import discord
from discord.ext import commands


class MemberStatusCog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.target_status = "gg/dreamsplace"
        self.role_id = 1135226840630440058

    @commands.Cog.listener()
    async def on_member_update(self, before, after):
        
        if before.activity != after.activity:
            if after.activity is None:
               return  

            print("Aktuelle Aktivität:", after.activity) 
            print("Zielstatus:", self.target_status)
            print("Aktueller Status der Aktivität:", after.activity.state)

            if isinstance(after.activity, discord.CustomActivity):
                print("Die Aktivität ist eine CustomActivity.")
                print("Vergleiche", after.activity.state, "mit", self.target_status)
                if after.activity.state == self.target_status:
                    print("Die Bedingung ist wahr! Rolle wird hinzugefügt.")
                    role = after.guild.get_role(self.role_id)
                    await after.add_roles(role)
                else:
                    print("Die Bedingung ist nicht wahr! Rolle wird entfernt.")
                    role = after.guild.get_role(self.role_id)
                    await after.remove_roles(role)


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

Warum kriegt der User keine Rolle
#

(Bot hat alle Möglichen Berechtigungen.)

urban glen
wind finch
# urban glen Es gibt ein Funktionierendes, in code-austausch

@urban glen kommt aber dann

Unhandled exception in internal background task 'vanity_task'.
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.10/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/home/container/main.py", line 54, in vanity_task
    vanity = await has_vanity(member)
  File "/home/container/main.py", line 35, in has_vanity
    if STATUS_TEXT in i.name or STATUS_TEXT == i.name:
TypeError: argument of type 'NoneType' is not iterable```
urban glen
#

printe dir mal i.name und STATUS_TEXT

wind finch
#

ok

urban glen
#

müsste aber trotz fehler funktionieren

#

probier es einfach mal, auch trz dem nonetype fehler

trim dagger
#

'NoneType' object has no attribute 'id'