#Allgemeine Hilfe
1 messages · Page 45 of 1
kann man doch ein github code privat machen Wenn man es zuerst öffentlich gemacht hat?
Ich denke, wenn jemand das beantworten kann, hätte er es getan. Da musst du es nd löschen und nochmal fragen
sry hab erst im #💬・chat gefargt
Naja dann is die abfrage halt falsch.
erst hier dann im #💬・chat dann wieder hier, lol
aber warum was passt da net
Gibt es mehrere mod rollen?
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ß
was soll in deinem beispiel role sein
muss das nicht anders um if ROLLEN in any...
Mein internet is broken, es lädt nichts kann nd helfen sorry xD
ich geh jetzt erstmal und dann komm ich so gegen 23 Uhr wieder
bis dahin ist es vielleicht geladen xD
und?
Mit ./ Greifst du auf den Ordner zu, wo deine aktuelle py Datei ist
ah ok
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()
Stark
Denkst du wir können mit einer Zeile Code was anfangen?
wie sieht deine kein Datei aus?
Warte schicke später den code
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'```
runde klammern hinter now()
Merci. ❤️
Wie meinst du?
Was ist an dem Satz so schwer zu verstehen??
if member.mobile_status:
print("Handy")
else:
print("Kein Handy")
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
Hast keine children = [ ] Zeile
Das muss glaube ich noch in den Code
Wie kann man mich immer pingen also nicht den owner sonder auf jedem server ich? also @vernal rampart
<@ID>, also in deinem fall @vernal rampart
danke
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?
ich weiß nur wie es in js geht muss mal recherchieren
bot einf keine everyone ping rechte geben
Gibt es eine möglichkeit Voice Gespräche mit einem Bot aufzunehmen und dann in eine mp3 datei zu exportieren?
Also Alexa als Bot nur krasser ?
Glaube nicht das jemand mal sowas gecodet hat
Ja
Glaube nicht, dass jemand das schonmal gecodet hat. Kannst ja der erste sein ^^
alexa kann man coden weiß auch wie
musst halt viele commands haben
Ja
Ah nice. SOweit ich weiß hat dies bis jetzt noch niemand gemacht
Gibt es einen Code den man Downloaden kann?
ich mach das wenn ich home bin 
ich kenn keinen auf anhieb sorry
Selber Coden immer beser
Nice
Ja aber keine Ahnung wie ich das mache
bei mir ist random rot muss ich dann import random schreieben?
Ja, du musst random importieren
danke
Läuft das nicht über ne message flag in js, glaube 4096
Also flags:[4096]
@asuna.wav
Weiß jmd wie man den Help Command bei ezcord/pycord bearbeiten kann? hab da iwie gehört man kann den bearbeiten
was möchtest du denn bearbeiten
will das z.b. in nem embed haben
dann machst du ein ganz normales embed und machst dann bot.add_help_command(embed=embed)
und in dem embed ist es dann so wie gewohnt?
naja in dem embed machst du halt alles wie du es willst titel und description color kannst du alles setzen
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)
der help command ist standardmäßig auch schon ein embed
hö
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
jetzt schriebst du einfach bot.add_help_command()
dann hast du alles (help system ist in einem embed)
und dann embed=embed
braucsht du net
ah ok
außer du willst was am embed ändern aber sonst kannst du auch das standart lassen
danke xd
kannst auch gerade talk kommen wenn noch was ist
ne alles gut hab nur nie das mit dem help command gecheckt xd
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!")
die if abfrage if view.value == "apply": wird wahrscheinlich nicht true
Hast du, eine Idee woran das liegt ?
lass es dir am besten mal den wert printen damit du siehst woran es liegt
- Als erstes habe ich das view.wait rausgenommen
- Als Wert kam "None " raus
Hi
Hey
async def hug(self, ctx, member):
also ich möchte ein slash command erstellen
Es sollte ähnlich wie /hug sein
ok
Hier ist mein Code jedoch wird es wenn ich / tippe nicht angezeigt
Mach es mal in nh Code block
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)```
Du musst deine function definieren (also einen namen geben)
Dann schreib das dahin
Wird immernoch nicht angezeigt
Wie hast du es denn jetzt gemacht?
Und await embed.send geht nicht
await ctx.respond(embed=embed)
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
command ist zu weit rechts eingerückt
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...
welcher?
hug
Ich habe mir das Video angeschaut finde aber immernoch nicht den fehler
Hab mein erstes eigenes Slash Command erstellt wohoo
Nice
Kannst du mir kurz helfen
Ja
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))```
Kleiner Tipp: slash_command und Option kannst du hintereinander mit einem komma dazwischen schreiben, da du dies aus der gleichen Sache importierst
Pycord richtig ?
ja
Außerdem darf beim Name keine klammer sein. Du muss es so schreiben
@slash_command(description="Dein Text", name="Dein Name")
Ah okay
geht irgendwie immernoch nicht
Warte. Ich gehe kurz am PC. Da ist es einfach den Fehler zu finden
okay
sende bitte mal ein foto
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
häää
es geht immernoch nicht
gibt es irgendwie vielleicht ein limit von dem ich nicht weiß für slash commands?
ne
discord.errors.ExtensionFailed: Extension 'cogs.punch' raised an error: TypeError: module() takes at most 2 arguments (3 given)
jetzt kommt so eine fehler meldung
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
ja liegt an der Einrückung
Weil das Embed nicht im Slas Command definiert worden ist, sondern davor
Wie jetzt
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus dem Video
Tenor API ► https://developers.google.com/tenor/guides/quickstart
Postman ► https://www.postman.com/
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Gui...
nimm den
Ich würde aber gerne wissen wie ich diesen fehler code beseitigen kann
Kannste Call, dann versuche ich es dir zu erklären
Ja
Bei dem Chat-Exporter, kann ich dann in Interaktionen interaction.bot oder so schreiben statt self.bot?
interaction.client
thx.
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```
welche Nachricht ist da gemeint die nicht gefunden wurde
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
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
@woeful sparrow
Wie macht man, dass wenn man auf den Bot drauf Klick unterdem Game steht, dass man Commands tryen kann ?
das kommt automatisch wenn dein bot auf genug servern ist
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
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()
den fehler bekommst du nicht wegen self.children, sondern weil in deiner datenbank die tabelle "applications" nicht existiert
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()
Hatte falsche datenbank angegeben, aber trotzdem geht es nicht
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()
probiers aus 
wie geht das mit dm
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...
@wind finch ich hab schon ich möche das wurde über dm gesend
- https://google.com/
- Eingabe: discord.py how to send message to a member
- Ergebnisse ansehen
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?
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
Kopfkratz
hat nicht ctx.author die server-spezifischen infos drinne und ctx.user die allgemeinen?
oder anders
steckt in 'user' drinne, welche berechtigungen die person im bezug zu einem bestimmten server hat?
habe ich da was falsch verstanden 😅 ?
timo hast du bei dein video gezeig HTML Datei über dm senden ?
okay, ich probiere das mal aus! melde mich gleich zurück. Vielen Dank schonmal!
nein, aber du kannst es genauso machen, nur dass du den channel durch einen user austauschst
hab so
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'```
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...
habs gerade getestet, funktioniert einwandfrei. Vielen Dank!!
👍🏽
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()```
Die Log 🎫 • avtano0.txt wurde nicht gefunden.
discord.errors.ExtensionFailed: Extension 'cogs.invitedm' raised an error: AttributeError: 'Bot' object has no attribute 'add_command'
du muss @slach_command machen
slash command ist rot markiert
from discord.commands import slash_command```
danke
kein ding
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)
mit einer if bedingung
@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
danke
Ja gibt ein Video von timo dazu
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...
Wenn du es trotz dem Video nicht weißt einfach nochmal melden
Ja das geht, dann musst du es in eine url umwandeln. Hat Timo auch im Video gezeigt wie
Komme nicht hin
Was genau meinst du ?
Ab Minute 5 erklärt @solid ingot es
Mit dem link
Ja genau
schau das video!
hab schon
kannst helfen
Klar
komm conig
Warte. Ich komme so in 5 min
mache kurz denn komme ich wieder
Was ?
komm mal kurz
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!**")
lass dir result mal ausgeben und schau von welchem typ es ist
ist aber noch immer da
ka
Weis wer was ich für diesen import from email.Header import Header installieren muss?
email?
maybe, sonst google mal
jo
│ 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
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
Wo erstellst du drin modal?
schick Mal den requests code
deine modal Klasse heißt "modal", aber du rufst "request" auf
Ok werde ich machen
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
Spice up your Discord experience with our diverse range of Discord Bots and Servers as well as other spaces to discover DAOs.
da kommt einfach nur <Response [403]> das kann iregndwie nicht stimmen
Kennt sich hier wer mit Customtkinter aus?
This video will cover how to use customtkinter, which is an infinitely better way to style tkinter apps.
You can get the code here:
https://github.com/clear-code-projects/tkinter-complete/blob/main/3 style/3_3_customtk.py
@mystic flower
Wasn das ?
TKinter nur in moderner
Und was ist das ?
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?
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
ist richtig
aber wenn ich member.name mache kommt auch mr.fauli
oder gibts dafür ein neues attribute? Sehe nichts in den docs
Aber warum klappt es dann nicht?
print dir mal data
im pycord master branch gibt es noch global_name: https://docs.pycord.dev/en/master/api/abcs.html#discord.abc.User.global_name
An abstract base class(also known as an abc) is a class that models can inherit to get their behaviour. Abstract base classes should not be instantiated. They are mainly there for usage with isinst...
ah danke habe ich garnicht gefunden
muss man die master branch speziell runterladen?
ja, pip install git+https://github.com/Pycord-Development/pycord
ey
Dafür muss man git installiert haben oder? Also um das herunterladen zu könne über git
ja

@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'
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
Bei mir wird mir nicht mal der rank command angezeigt
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
Bei dir jetzt ?
ne in der datei wo du mein ding reinkopiert hast
Außer deine 2 nicht nein
achso überlesen
hat irgendwas mit dem connecten zu db zu tun
du hast schon ein cmd der so heißt
du hast keine db schon die level.db heißt oder#
stimmt
Bin ich dumm da steht command name
alles gut xd
Hat schon geklappt
jetzt klappts bei dir?
jo
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))
Inwiefern? Bild?
Wenn ich einen User kicke, wird dieser gekickt und dann kommt die Nachricht das ein Fehler aufgetreten ist
Und diese kommt nur wenn es einen HTTPException ist
Bei den excepts nutzt du ctx.send und nd respond, falls du darauf hinaus willst
Aber meine Erfolgsnachricht, wenn ein User gekickt wird kommt halt nicht mal
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
was war der fehler
Was ?
weshalb hats nicht geklappt(lvlsystem)
Ich weiß wo der Fehler lag, aber tut mir leid das ich das jetzt so sage kannst es nicht wissen da es an meinem Projekt lag
ah ok
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))
cog gerladen? wird das event ausgeführt?
Das event gibt es garnd
Soweit ich weiß
Meinst glaube:
on_guild_role_delete
Danke
Wie kann der bot invite link von anderen Servern erstellen
Moin
so zum beispiel: https://docs.pycord.dev/en/stable/api/abcs.html#discord.abc.GuildChannel.create_invite
An abstract base class(also known as an abc) is a class that models can inherit to get their behaviour. Abstract base classes should not be instantiated. They are mainly there for usage with isinst...
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"
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
why ist es da unknown message
Einfach "reason" als parameter hinzufügen
async def kick(ctx: discord.ApplicationContext, member: discord.Member, reason: str = "Kein Grund Angegeben"):
Ah, das habe ich auch versucht aber habe wohl das str nicht angegeben
Das is eig egal
Es liegt vermutlich am delete_after=3
Weil du es ja ephemeral abschickst
Versuchs ersttmal ohne delete_after=3 um zu prüfen ob es daran liegt
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))
Es gibt kein ApplicationContext in einem event, wie kommst du darauf?
Egal, aber wie soll ich den footer ohne ctx machen ?
Kann es sein das du garnicht so richtig ahnung davon hast, wie das ganze Funktioniert?
Doch habe ich
Merk ich
https://www.google.com -> Docs -> Fertig
Im footer soll der Name des Server stehen, sowie das Bild
#1019974414487535736 message
role.guild.????????
Da sind wir

Junge das ist eine Nachricht, da hab ich dir doch gesagt wie das geht
role.guild.name!!!!!
IMMER NOCH
Lies mal 3 nachrichten drüber, da siehst du das ich dir die lösung schon gegeben habe
Einfach mal augen aufmachen
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
Klappt auch so
icon gibt halt das asset wieder, icon.url gibt halt einen link zum icon, also die url vom asset
Gibt es auch ein role Color Change event ?
Nein, aber du kannst es mit dem on_guild_role_update Event abfragen
Danke dir
on_guild_user_role_update gibt es so ein Event oder ähnliches event
Inwiefern?
Was möchtest du denn genau machen?
https://discordpy.readthedocs.io/en/stable/api.html#event-reference
Hier findest du alle Events die es gibt
Ich möchte checken welche Rolle un user bekommt bzw entfernt wird
Das kannste nutzen
Danke
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))
Meines wissens nach kann man ein Embed Field nicht einfach leer lassen
Bei mir geht es aber
hm, okay?
Was genau geht denn nicht?
Versuch doch mal prints dazwischen zu setzten
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))
Warum self.member?
Hast du nirgends definiert in deiner klasse
Wenn ich das mache, dann wirft mir mein Code einen Fehler. Wie kann ich sonst den Member pingen ?
before.member vermute ich mal
In den Docs müsste es stehen
Ah ne
Einfach nur "before"
Da es bereits ein Member Objekt ist
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))
Lies meine Nachricht nochmal
Ik, aber ich möchte den Member pingen
Wie gesagt ist before bereits ein discord.Member, und deshalb brauchst du nur before.mention, logischerweise
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))
https://discordpy.readthedocs.io/en/stable/api.html#discord.Member
Hier findest du alle Attributen, die es bei dem discord.Member Objekt gibt
Jungs wie mach ich nochmal diese Zeichen damit ich ein Code block machen kann
3 ` davon neben einander
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
Dann must du dahinter dem ersten PY schreiben
Jedoch kann ich beim ausführen des Commands kein Member erwähnen, sondern nur den grund geben.
Du kickst nicht richtig
await member.kick(reason=reason)
Also du machst /kick aber dann wird "member" und "reason" nicht angezeigt?
Und woran lag es ?
Hab bei async def, "self" nicht eingegeben
Ah
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
das klappt nicht wegen dem fehler von oben
dann besuch die website mal wie du es eingibst
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()```
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)```
Und schick mal dein ganzes on_message
Damit ich nh besseren überblick hab xD
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```
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?
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 😦
Bei mir gehts
@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
ich checke es nicht vllt liegt es auch an dem hoster
wie sieht deine json aus @tall gorge
@graceful fiber
Die json wird aus der request get-anfrage abgerufen
Kann mir wer in #1137483752612843520 Helfen ?
Wenn du noch Hilfe brauchst sag gerne bescheid dann kann ich es dir erklären.
Ja bitte erkläre es mir ist ja glaube ich auch deine api soweit ich weiß
Ja ist meine Kann dir das heute Nachmittag nach Schule erklären
ok danke
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.
wie kann man schauen ob eine auswahl bei einem command leer gelassen wurde
if auswahl is None:
Oder
if not auswahl:
if AUSWAHL is None
Ich denke es reicht 1 mal
habe es früher geschrieben aber ist später angekommen (internet), sorry :(
ok so hatte ich es, dann habe ich wohl ein anderes problem, aber danke euch
bei pycharm funktionier es, bei dem hsoter nicht kp warum
Macht man das so weil es sieht irgendwie komisch aus:
regel_button TEXT DEFAULT Ja```
regel_button TEXT DEFAULT 'Ja'
Jmd nh Idee, warum die DB Anfrage mit dem has_ticket = 0 nicht anschlägt?
hab alles versucht aber es ändert es nd
thx
kann man 2 modale direkt nacheinander senden lassen
nein
du musst zb eine nachricht mit button zwischendurch senden, un beim button öffnet sich das nächste modal
Oder eif den Inhalt vom 2. ins erste mit reinmachen ._.
das wäre dann zu lang xd
ok danke
weiß jmd was
commit vergessen?
wusste gar nd das man da nen commit machen musste 😂 danke
bei allem was nicht select ist 😄
ah bruh, danke
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")```
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
Musste nd noch angeben was für eine Zeit gemeint is? Z.B. utc?
Bei nem anderen Bot von mir hat es so funktioniert komischerweiße..
Musst es auf utc umschreiben. Sowas funktioniert nur mit der utc Zeit. Hat Timo auch in einem Video erklärt
Also wennn man es aus ner DB zieht und in nem command sendet wird es {interaction.user.mention} senden weil es da {ctx.author.mention} heißen müsste. ansonsten maybe mit nem f string?
Und wie schreibe ich es so um?
dann haste maybe nd time importiert
Ist es. 😄
aber das aus der db ist doch schon im f string
@tasks.loop(
time=time(22, 0, tzinfo=timezone.utc)
)
bei mir wäre es mit nteraction wegen button
Teste ich..
kann ich doch nd wissen hast nur gesagt das {interaction.user.mention} gemacht wird 😮
zeig mal den code wie dus hast
Nö, macht er auch leider nicht..
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.
weil so wenn ich ja was mit mention schreibe wird es genauso zurückgeschrieben
Dann k.A., sorry.
@solid ingot, kannst Du da helfen? 😮
zeig mal den output vom embed
mit utc sollte es funktionieren
Hat es basically leider nicht.
das ist dann einfach {...}
beachte dass UTC 2 stunden früher ist als wir
Und wie könnte ich es auf unsere Zeit umschreiben? Oder rechnen?
gut gut habs mal nachprogrammiert.
Wäre jetzt Zuhause
naja aktuell -2
ok, bei pycharm funktioniert es aber beim hoster nicht
Dann liegts wohl am Hoster
probiere mal folgendes:
description=f"{self.children[0].value}"
Oder wo auch immer es is
Hat geklappt.
das ist das gleiche wie wenn ich es ganz ohne kalmmern etc schreibe
ja leider
welchen nutzt du? irgend nh free kack?
naja ich habs so gelöst
a = 1
b = f"{a}"
print(b)
das is ungefähr dasselbe prinzip
ohne den f string kam dann das: {1}
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'
#🔍・pycord-help
Ich habe discord installiert
zeig mal deine pip freez
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
Du solltest immer nur eine verschiedene Discord Lib nutzen
d.h. alles mit discord deinstallieren und dann nur ezcord installieren.
Am ok
ja ):, kann kein geld ausgeben aso endelon 😦
keks hsoting hat leider zu wenig memory
würde gerne etwas anderes nutzen, hatte davor mal keks hosting premium habe aber kein nitro mehr
man darf jtzt hier keine werbung für andere machen nh? weil ich hätte nen free hoster mit 256 mb memory ._.
kannst du per dm?
also du meinst das es so geht?
description=f"{self.children[1].value}```
so hats zumindest bei mir geklappt
ok teste es dann später
bei mir geht es so nicht
hmm dann keine ahhnung
Wenn es nur eine variable ist braucht man keinen String 😅
Bei mir hat es wenn man nur {a} da hatte, es {a} geprintet deswegen der String
Aha der String macht aber nix anderes eig 😂
Hat btw. jemand nen Tool, womit man bei Mac die Koordinaten eines Pixels sehen kann, wenn man drüberhovert?
Würde glaube mit ShareX gehen wobei ich mir nur sicherbin das das wen man einen Screenshot macht bei windows angezeigt wird bei mac weiß ich es nicht aber könnte ich mir vorstllen
?
schick mal deinen code
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))
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
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))
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
lass dir vielleicht mal in jedem loop die variablen printen, zb self.videos und video_ids. dann kannst du sehen, was genau nicht funktioniert. in self.videos sollten die letzten 5 videos gespeichert werden und in video_ids werden die neusten videos von dem kanal geladen. wenn dann eine video ID gefunden wird, die noch nicht in self.videos ist, wird das als neues video erkannt
Also passiert das nur beim ersten mal?
schau dir mal an in welcher zeile der error auftritt
Finde den Fehler nicht
im ersten durchlauf wird self.videos befüllt, eine genauere erklärung findest du im video
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...
Danke!
hier wird dir sogar genau angezeigt wo der fehler ist. view.0 ist falsch
Oder muss ich die null zu ein o machen
@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)```
Joa?
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'
kannst du mal den ganzen fehler schicken?
Ach und dieses user: Option(user.id) hab ich schon verbessert
ist schon das ganze
also schon gefixxt?
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)
naja um ehrlich zu sein würde ich gerne den fehler in meinem eigenen code wissen wollen
damit ich auch was dazu lerne
Wie kann ich machen das jedes Emoji von mein bot auch auf anderen Servern angezeigt wird
Das sollte dein Code-Fehler beheben
user_id = int(user.id)
user_obj = await self.bot.fetch_user(user_id)
await ctx.guild.unban(user_obj)
Wie kann ich machen das jedes Emoji von mein bot auch auf anderen Servern angezeigt wird
hä kopier emoji id und füg es im embed oder so hinzu
Auf anderen Server kommt aber nur der Name vom emoji
Hier
dein bot braucht die berechtigung für externe emojis
Oke
Ja klar haha aber trotzdem danke dir ^^
jo danke! ich versuchs mal später
Geht immer noch nicht
@solid ingot gibt es dafür intents
hast du das auch mit der emoji id gemacht?
das ist der name, nicht die ID
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)
ist der bot auf dem server, der das emoji hat?
woran lags?
Musste den bot neu einladen auf densServer wo das Emoji war
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))```
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
falsch
Dein Command darf nicht mit bot_ oder cog_ anfangen
also danke
sry, habe nich genau gelesen
This section outlines the different types of events listened by Client. There are two ways to register an event, the first way is through the use of Client.event(). The second way is through subcla...
Das hab ich mir schon angesehen ich meinte eher sowas wie on_guild_channel_delete da ist es so das du den channel bekommst der gelöscht wird aber das gibt es nicht für Rollen oder Kategorien
Für alles in einem nicht, soweit ich weiß
Wie macht man sowas mit py-cord?
https://github.com/Pycord-Development/pycord/blob/master/examples/app_commands/context_menus.py
user_command denke ich
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - Pycord-Development/pycord
Thx
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Tutorial Playlist ► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/int...
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
weiß jemand den fehler
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...
Vielleicht hilft das
kenne das video aber eig stimmt alles und in der db steht auch etwas drin
geprintet wird auch alles
Soll ich kurz in mein Ticketsystem gucken, wie ich das gemacht habe ?
kannst du gerne machen wenn dass das problem lösen könnte
Jo. Einen Moment
Kann daran liegen, dass deine Category nicht gefunden wird
Wie greifst du denn in der View klasse auf self.bot zu?
class TutorialView(discord.ui.View):
def init(self, bot):
self.bot = bot
meist du das?
Und wie übergibst du deinen Bot in diese Klasse?
jo hat erstmals nicht geklappt dann habe ich str mit discord.Member ersetzt danach hat es geklappt
ah okay
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
restriction?
genau
meinst du @commands.slash_command()
@commands.has_role?
also das es für gewisse User / Rollen verboten ist den command aus zu führen
@commands.has_role(ROLEID)
brauchst halt noch ein error handler wenn er die rolle nicht hat
aber so sollte es schon gehen
Genau
👍🏽
wie schreibe ich es nun im If satz...
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?
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
kannst rolle oder perms abfragen
Was macht mehr Sinn. Über Rollen oder ? Weil wenn ich es über permissions mache ist es für mich nicht so klar
also du kannst
if ctx.author.permission.????
oder
role = self.bot.get_role(id)
if role in ctx.author.roles:
Kann ich auch machen, dass die Moderator Rollen und die Admin Rollen in einer Liste sind und dies dann bei denen so ist ?
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

Kann ich es auch nicht einfach so machen ?
adminroles = self.bot.get_role(os.getenv("ADMIN_ROLES")
modroles = self.bot.get_role(os.getenv("MOD_ROLES")
if adminroles in ctx.author.roles:
#Sende embed mit Admin gif
elif modroles in ctx.author.roles:
#Sende embed mit Moderator gif
else:
#Error message
Würde dies so gehen ?
Ja
Danke
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
Einfach Python downloaden und installieren, dann sollte es mit pip klappen
habs schon trz danke
Weiß wer weiter?
Es gibt kein self.bot in deiner Klasse
hä, was meinst du
Zeig mal 😮
du könntest auch eif interaction.client machen
Ja gut. Aber warum nutzt du nd das? Da musste nichts übergeben
aber z.b. beim rollen getten geht es auch nicht, liegt nicht nur an der kategorie
printe dir mal die daten aus, maybe liegt’s daran
ne da wird alles geprintet, aheb ich schon getestet deswegen kapiere ich es ja nicht
noch ideen?
Würde es erstmal so machen, dass ich `await cat.create_text_channel schreibst, dann sparst dir bissl text
dann kannste die parameter nochmal festlegen und mal printen lassen
wie meinst du
ich finde es so übersichtlicher
Worum geht es?
bei meinem ticket system kommt die ganze zeit ein NoneType error bei der modrole obwohl eig alles korrekt ist
genauer gesagt bei allen werten
Warum setzt du eig am anfang alles auf None und danach fragst du es ab?
Dann ist ja logisch, dass es None is
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
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'```
Modrole wird anscheinend nicht gefunden, deswegen ist das none
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...
ik aber die gibt es
ich weiß einfach nicht was falsch ist
schick doch mal den code
Den ganzen?
nein
hast du dir schonmal data[1] geprintet?
Ja alles, ist auch im Code dabei
Und da kommen die werte
1131576859142934611 -- 1
wrer -- 2
ererr -- 3
345612 -- 4
-- 5
-- 6```
ist das ein string oder ein integer?
Weißt du den fehler
du codest aufm handy?
Ja
War gerade unterwegs da kann ich schlecht am PC sein
Nee
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.
@commands.has_role(1138232108993757306)
Du brauchst die rolle mit dieser id
.
Das weiß ich ja, war jedoch nicht meine frage
Ich möchte das der bot das error in nem Embed schickt
Warum hast du denn die on_application_command_error event im command drinne?
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)```
Wurde mir so erklärt
Dann wurde es dir falsch erklärt
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github
► https://github.com/tibue99/tutorial-bot
Tutorial Playlist
► https://youtube.com/playlist?list=PLwRWzD1Sw5lXZApchxorxeBQ_P_Fjdsj1
Discord Developer Portal
► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/i...
Hab ich mir schon angeschaut
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
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.
Denke schon
Hat jmd ne idee wie?
also kann mir wer bei meinem problem helfen?
mach maybe mal ein post hier hat man kaum Durchblick so
Jo, musste halt splitten, such Mal auf Google am besten nach "how to split Text in Python" oder sowas
dankööö
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....
interaction.guild
ja aber ich habe ja keine interaction
Und was ist das dann?
aber ich kann das ja nicht da reinschreiben weil es den button nicht geben soll
Ich versteh irgendwie nicht dein genaues problem gerade
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
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?
stimmt danke dir
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)
If not admin is in glaub und du verwendest embed obwohl embed davor garnicht definiert ist
schick mal bitte nen bild von dem code discord einrückung is mies. oder machs als txt xd
Und ich würde dir diesen error Händler empfehlen https://discord.com/channels/1010915072694046794/1058129906267070554
jungs in türkei ist grad erdbeben habs grad gespürt gib mir nh sekunde
f
Perfekt
du musst @commands.Cog.listener() und async def _on_application_Command_error(): einmal nach links tabben.
also falsche syntax
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...
ich habs mir schon 10 mal angeschaut, danke.
Jungs
Ich bekomme die ganze zeit so ein fehler
"Less than 1 MiB is left on the system directory partition ("
Wie geht das weg
Liegt an deinem Pc
Zu wenig Speicher
Sagt aber Python anders. Hat anscheinend zu wenig dafür
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)
Mach ein on_ready Event in der du die classe lädst oder so
Hab ich versucht aber hat nicht so geklappt
Dann ka. Sry
wie kann ich dropdown menüs auf den placholder nach jeder auswahl zurücksetzen
Ist ganz einfach. Warte
select.disabled = True
await interaction.message.edit(view=self)
Vorausgesetzt, du hast dein Select direkt in einer View Klasse und hast es nicht ephemeral
Wenn du es ephemeral hast, dass so:
select.disabled = True
await interaction.response.edit_message(view=self)
await interaction.message.edit(view=self)
danke euch
oh man... nur wegen der einrückung hab ich 3 tage gebraucht. Danke!
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
Ist der Bot über die Rolle
Hm müsste ich nachschauen
Wie kann bei ein Auto-Delete WebHooks Nachrichten überspringen die werden nicht gelöscht?
und hat dein bot genügend rechte?
verstehe nicht was du meinst
Naja ich möchte die WebHooks Nachrichten nicht gelöscht werden
Ja aber geht immernoch nd
hat der bot die manage server berechtigung
Der hat Admin
Die normale bot role muss trotzdem über die Member Rolle sein
Jo ist sie ja
Send mal bild
Einfach sagen, dass angepinnte Nachrichten nicht gelöscht werden. LoL
wie ?
Kann es gerade nd anders zeigen.
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
Kann man mit einem bot das role Icon einer Rolle ändern wenn ja wie?
alles gut habs schon gefixxt
das geht mit role.edit: https://docs.pycord.dev/en/stable/api/models.html#discord.Role.edit
Models are classes that are received from Discord and are not meant to be created by the user of the library. Attributes key, url. Methods def is_animated, async read, def replace, async save, def ...
Kann mir jemand helfen?
wobei ?
das kann dir niemand sagen bevor du deine frage gestellt hast 
Perfekt ich danke dir
Weiter oben ist sie schon.
Wollte sie nicht noch einmal rein senden.
alles gut kann nicht jeder so schnell sein wie ich 
.
Danke
jo
@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?
Kann ich mir irgendwas Printen?
Um vielleicht etwas herauszufinden, weil eigentlich stimmt der Code so weit ich weiß.
du kannst einmal mit prints prüfen ob das event ausgeführt wird und ob die if bedingung true wird
Eine frage
Jo ?
Undzwar die Images in den Embeds sind immer riesig, wie kann ich es so um coden, das es eine bestimmte größe besitzt?
Mit easy pill
Oder du setzt es als Thumbnail, das is doch kleiner oder?
Ja, aber kommt auch auf die Größe des Bildes oder gifs an
Naja die wird gar nicht wahr.
der user bekommt die rolle nur wenn beide if bedingungen wahr werden
Damit kannst du Images bearbeiten und coole Welcome Cards und Level Ranked cards machen
ne ich meine coden
Ja aber habe den Status drinne, dann sollte die ja im Normalfall wahr werden , ich gucke nochmal meinen Code durch.
Beispiel: #1137751297198661652
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
Easy-PIL Docs ► https://easy-pil.readthedocs.io/
Space Bild ► https://github.com/tibue99/tutorial-bot/blob/main/Einzelvideos/Easy-PIL/space.png
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCO...
Das ka
bei easypil kannst du nen resize machen. also z.B. auf 500x500 pixel
okay
wenn du dir die einzelnen Teile der If Bedingung printest, siehst du wieso die Werte nicht gleich sind zB und dann weißt du wieso die Bedingung nicht true wird
dann müsstes kleiner sein ig
Alles klar danke
Kannst dir auch gerne mal #1137751297198661652 angucken
Mit nem video lernt man da mehr… vor allem da dein Code ja laut dir nd für Anfänger geeignet ist.
Stimmt
Es kommt halt bei dem Prints nichts dabei raus.
wie hast du die prints denn gesetzt?
Ja dann freue ich mich schon auf morgen damit ich meine Welcome Card und mein embed command erweitern kann!

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
Hab mir noch bissle mehr geprintet, das ist dabei rausgekommen.
Aber das ging nur einmal
Jetzt Printet sich bei restart nichts
Naja gehe erstmal pennen , gute Nacht.
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...
habe gerade genau diesen error bekommen
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
Richtige Message ID angegeben?
zeig mal deinen code
message.edit musst du awaiten
Probier doch mal deine message zu fetchen, um zu schauen ob es überhaupt auch so gefunden werden kann
benötigst dafür ein discord.TextChannel objekt
also:
channel = bot.get_channel(id)
message = await channel.fetch_message(id)
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:
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
Musst bei .edit den content angeben
also
await message.edit(content="...")
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
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...
Meinst du das?
yes
ich meine ich kann mcih daran erinnern
wie das viel einfacher ging
aber ka vlt vertue ich mich auch
options gibt es auch, statt autocomplete
ahh ja das klingt schon eher iwe das woran ich mich erinner
konnte man bei options nicht einfach eine liste angeben danach?
options=["1", "2"]
Weiß grad nd wie es in pycord is
choices=["1", "2"]
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.")```
Dann änder doch kurz die Zeit um es zu testen
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
Wenn ich jetzt eine liste in einer db speicher sollte ich bdas so speicher [id1,id2,id3] oder lieber so id1,id2,id3
kommt darauf an was du damit machen willst
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.
lesen
steht doch da, du darfst nur 5 components haben
habe 2
gib mal den code
hab den fehler aber behoben, war was ganz anderes
was wars denn
alles gut, trotzdem vielen dank
das ist eine gute frage, habe einmal meinen ganzen Code umstrukturiert.
das könnte so ich sein
😂😂
Bei mir laden keine commands mehr aber cogs
Benutze ezcors
also die cogs laden nur nd die commands
is das bei allen cogs so?
Ja alle laden aber der bot läd keine commands
Nvm nicht alle cogs laden
oben gehts weiter
nur security wurde geladen oder was
ne der screen ist klein geworden
schick mal nen screen von der security datei
Dein Bot ist offline
der hat welche...
Zeig mal in deiner security.py
es geht nicht um die sondern allgemein es werden alle cogs geladen außer commands
debug_guilds?
?
hast du debug_guilds?
nein
verrückt
intents=intents,
debug_guilds=[SERVER IDS]
)```
soweit ich weiß muss das in deinen code
@viscid lake
Weiß jemand was der Rate Limit für Discord Rollen Entfernung ist
Rate meinste?
Hab es auch nie benutzt
Soweit ich weiß ist es für alles 50 pro Sekunde... also Global Rate Limit (https://discord.com/developers/docs/topics/rate-limits)
ist kein muss
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):
interaction.client
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
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
Digga oasis einfach
Aber ne leider nicht arbeite nur mit aiosqlite
Kann mir da jmd helfen
Hast du schon in den docs geschaut
Weil ausm kopf weiß ich es auch nicht
da hab ich nix gefunden :/
Hmm
for channel in guild.voice_channels:
if user.id in channel.voice_states:
...
Kann ich das auch so machen das ich sage if user.id inn voice_channel?
ja das würde dann so aussehen
for voice_channel in guild.voice_channels:
if user.id in voice_channel.voice_states:
...
aber ich muss das in ner schleife durch gehen
kannst du
du kannst dir auch einen voice channel holen und dann machen if user.id in channel.voice_states
kannst du mir noch sagen wie ich einen user discordconnecten kann? ich ha bd as mit dem versucht .disconnect() und .move_to(None)
das zweite war richtig
await banned_user.move_to(None) AttributeError: 'User' object has no attribute 'move_to'
und das gleiche bei .disconnect()
?
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
kann ichd as konvertieren?
naja wenn du die guild kannst kannst du darüber den member laden
Okay, kannst du mir sagen wie das geht oder wie ichd as umsetzte
eine möglichkeit ist guild.get_member()
also würdest du sagen so?
interaction.guild.get_member(banned_user) await banned_user.move_to(None)
nicht ganz, in dem fall bringt das get_member nichts, weil du den member nirgendwo speicherst und trotzdem mit banned_user weitermachst
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
Oh stimm t
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'
die level up nachricht und rolle funktioniert nicht
- Der Code ist nicht selber gemacht
- Es findet
messagenicht, btw benutzt es nicht
Ist das schlimm 1
nope
mein get_level funktioniert nicht:
@staticmethod
def get_level(xp):
lvl = 1
while True:
xp -= 100
if xp < 0:
return lvl
lvl += 1
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.)
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```
ok
müsste aber trotz fehler funktionieren
probier es einfach mal, auch trz dem nonetype fehler
'NoneType' object has no attribute 'id'

