#Allgemeine Hilfe
1 messages · Page 52 of 1
Vllt neu
Hab ich öfters gemacht
Ich hatte das auch
import uvicorn
from discord.ext.ipc import Client
from fastapi import FastAPI, HTTPException, Request
from fastapi.responses import RedirectResponse
from fastapi.staticfiles import StaticFiles
from starlette.templating import Jinja2Templates
from backend import api
CLIENT_ID = 1154822864701247569
CLIENT_SECRET = "_8dtPUT61oNigpKx5NWCpSqc1QPeSWxt"
REDIRECT_URI = "http://localhost:3000/callback"
LOGIN_URL = "https://discord.com/api/oauth2/authorize?client_id=1154822864701247569&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcallback&response_type=code&scope=guilds%20identify"
app = FastAPI()
app.mount("/static", StaticFiles(directory="frontend/static"), name="static")
templates = Jinja2Templates(directory="frontend")
ipc = Client(secret_key="Flux")
@app.get("/")
async def home(request: Request):
guild_count = await ipc.request("guild_count")
return templates.TemplateResponse(
"index.html",
{
"request": request,
"count": guild_count.response,
"login_url": LOGIN_URL
},
)
@app.get("/callback")
async def callback(code: str):
data = {
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"grant_type": "authorization_code",
"code": code,
"redirect_uri": REDIRECT_URI,
}
result = await api.get_token_response(data)
if result is None:
raise HTTPException(status_code=401, detail="Invalid Auth Code")
return RedirectResponse(url="/guilds")
@app.get("/guilds")
async def guilds():
return {"success": "Erfolgreich eingeloggt"}
if __name__ == "__main__":
uvicorn.run("main:app", host="localhost", port=3000, reload=True)
@fierce dove komm mal call
Warum
ich will dich helfen
Sie kann ich meine eigene mp3 in den Radio bot vom Tutorial kriegen
Meinst du wie du sie abspielen kannst?
Wie krieg ich die mp3 zu link?
Die auf meinen pc ist die ich gemacht hab
Weil möchte sie ja in den bot kriegen
Wieso als Link?
Kannst einfach den pfad angeben
Ist ja beim hosting
Einfach da wo link ist, dann den pfad.
Beispiel:
discord.FFmpegPCMAudio("audios/DeineAudio.mp3")
Na und?
Kannst ja trotzdem den pfad angeben
Und woher bekomm ich den?
Woher soll ich denn wissen wie du deinen ordner und deine datei genannt hast?
Ich kenn doch nicht deine ordner struktur
Wie soll ich den Pfad vom Hosting überhaupt bekommen
Hab die mp3 file hochgeladen
Zeig deine Ordner Struktur
Einfach so wie beim Pc
@fierce dove https://discord.com/channels/1010915072694046794/1154867462802780220 komm hier
Bin am handy
wann bist du an pc
Morgen
ok
Schau nach
Kommt ein error
schick
@solid ingot wie bekomm ivj den Pfad von der MP3 file in mein „Radio“ hosting?
./PFAD
Ja so wie du einen pfad halt angibst
ordner/datei.mp3
Wenn ich mein Bot starten möchte. Kommt dies hier
Was kommt
Das
Code
.
Das ist ein anderer error
@limber crow
ne
Docg
Habs selber gefixed bekommen
@urban glen ey komm mal kurz wieder
Ok
woran lag es
discord.py & Dashboard xD
Hi habe eine frage wenn man hier fragen darf kann man bei pycharm zwischen den command ein bild oder ein Emoji aus dem Ordner hinzufügen ?
wie meinst du des genau ?
Hast du vllt ein Beispiel
das es wie hier ist mit dem symbol
das nennt man icon_url
Okay wie kann ich das machen das es so ist
embed.set_footer(url=pfad)
und was muss ich da jetzt rein machen die url ?
hast du des bild im selben projekt
ne aber ich weiß ja nix ich habe ja nicht mal anhnung wie man das macht
na dann lerne erstmal die Grundlagen 😐
ja aber weil ich weiß nciht wie man das bild in das programm rein bekommt
und habe noch ne frage kann jemand mir helfen weil ich versuche die fehler zu beheben aber es geht nicht Traceback (most recent call last):
File "C:\Users\chris\Desktop\Feuer-chris bot.py\main.py", line 1, in <module>
import discord
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord_init_.py", line 27, in <module>
from .application_role_connection import *
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\application_role_connection.py", line 27, in <module>
from typing import TYPE_CHECKING
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\typing.py", line 26, in <module>
import contextlib
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 7, in <module>
from functools import wraps
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\functools.py", line 965, in <module>
class cached_property:
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\functools.py", line 1012, in cached_property
class_getitem = classmethod(GenericAlias)
^^^^^^^^^^^^
NameError: name 'GenericAlias' is not defined
Process finished with exit code 1
ich habe eine frage: wie bekommt man einen Text in die nächste Zeile?
GG
danke!
einfach nur /n im Text hinzufügen?
achso
mit nem backslash
\n
ja
ja
thx, geht jetzt
oder bei Field einf auf inline=False
Sorry hab mich am handy vertan
wie heißt die Permission in Python für manage message?
hat sich geklärt: manage_messages
jap
wie macht man eine unsichtbare respond nachricht (also nachrichten, wo, wenn man unten auf Nachricht verwerfen klickt, sie verschwindet)
z.B. bei respond(embed=embed,ephermal=True)
also mit ephermal=True
*ephemeral
Ignoring exception in view <SelectMenu timeout=None children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='Wähle eine Kategorie' min_values=1 max_values=1 options=[<SelectOption label='⛔|Support Ticket' value='1' description='Öffne ein Support Ticket' emoji=None default=False>, <SelectOption label='🔴 |User report' value='2' description='Öffne ein Userreport Ticket' emoji=None default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\felix\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\felix\Desktop\Neuer Test Bot\cogs\ticket.py", line 97, in select_callback
channel = await interaction.guild.create_text_channel("⛔|Support Ticket", category=category, overwrites=overwrites)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\felix\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\felix\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'
code :
options = [
discord.SelectOption(label="⛔|Support Ticket", description="Öffne ein Support Ticket", value="1"),
discord.SelectOption(label="🔴 |User report", description="Öffne ein Userreport Ticket", value="2")
]
@discord.ui.select(
min_values=1,
max_values=1,
placeholder="Wähle eine Kategorie",
options=options,
custom_id="drop"
)
async def select_callback(self, select, interaction: discord.Interaction):
if "1" in select.values:
category = self.bot.get_channel(int(get_config("Support_Categorie")))
everyone = interaction.guild.get_role(int(get_config("Guild_ID")))
team = interaction.guild.get_role(int(get_config("Support_Accessrole")))
overwrites = {
interaction.guild.default_role: discord.PermissionOverwrite(read_messages=False),
interaction.guild.get_role(team): discord.PermissionOverwrite(read_messages=True, send_messages=True),
interaction.user: discord.PermissionOverwrite(read_messages=True, send_messages=True)
}
channel = await interaction.guild.create_text_channel("⛔|Support Ticket", category=category, overwrites=overwrites)
was ist falsch
Definier davor mal Guild und lass es dann printen.
du lädst erst die team rolle, und versuchst dann mit der team rolle nochmal die team rolle zu laden
Wie bekommt man den Pfad von einer datei im kekshosting
("img/bild.png")
so ungefähr
musst halt wissen wie deine datei heißt
0922.MP3
wie meiste du das?
Wie ich den Pfad von einer datei bekomme im kekshosting
ordner/datei
So wie normal am pc auch
Welche datei willst du haben?
Und in welchem Ordner ist die?
Ist halt hier
Ich muss das einfach in die base.py kriegen wegen Radio
Probier ich
Also so?
0922.mp3 sollte eig auch gehen
Top danke
./ geht auch
was soll ich weg machen?
naja du versuchst die rolle 2 mal zu laden. eins davon muss weg
bei den overwrites?
also so?
overwrites = {
interaction.guild.default_role: discord.PermissionOverwrite(read_messages=False),
interaction.guild.get_role(team): discord.PermissionOverwrite(read_messages=True, send_messages=True),
}
wo hast du denn team definiert?
achso
kannst es ja mal ausprobieren dann siehst du obs geht
Ein punkt ist im Selben Dictonary und zwei Punkte ein Dictonary davor 🙂
weiß jemand wie man abfragt das wenn jemand vom team antwortet im ticket die person die das ticket geöffnet hat dann so eine nachricht bekommt
wie bekommt man einen Text in die nächste Zeile? in HTML
gibt mehrere möglichkeiten, zb <br>
ok danke !
habs entfernt geht jetzt danke
das kannst du im on_message event machen
danke ich probiere es
kann ich das event ins ticket machen?
ins ticket cog ja
weiter unten oder oben?
wie du deinen code anordnest darfst du dir aussuchen 😄
bei so html und css sachen ist chatgpt gut behilflich
kannst ja ihm den Code geben und schreiben "Kannst du machen, dass der Text "Made by Nico" ganz unten in der mitte ist?"
naja wie ?
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
self.bot.add_view(Ticketcommand(self.bot))
async def on_message(msg):
if '⛔|Support Ticket' in msg.channel.name():
ticket_owner = get_config("Guild_ID")
if ticket_owner:
await ticket_owner.send("Das Team hat auf Ihr Ticket geantwortet.")
if msg.author.id in [get_config("Support_Accessrole")]:
return
kann man so das machen das wenn das team ins ticket schreibt das dem ticket ersteller per dm geantwortet wird dein ticket wurde beantwortet
Hast du es ausprobiert?
@fierce dove brachst du noch helfe?
Nein
ja es ging nicht kam auch kein error
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
self.bot.add_view(Ticketcommand(self.bot))
@commands.Cog.listener()
async def on_message(self, msg):
if '⛔|Support Ticket' in msg.channel.name():
ticket_owner = get_config("Guild_ID")
if ticket_owner:
await ticket_owner.send("Das Team hat auf Ihr Ticket geantwortet.")
if msg.author.id in [get_config("Support_Accessrole")]:
return
jo
bekomme den error
TypeError: 'str' object is not callable
[ERROR] Error in event on_message
Traceback (most recent call last):
File "C:\Users\felix\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "c:\Users\felix\Desktop\Neuer Test Bot\cogs\ticket.py", line 35, in on_message
if '⛔|Support Ticket' in msg.channel.name():
^^^^^^^^^^^^^^^^^^
TypeError: 'str' object is not callable
Steht da doch
Mach die klammern bei msg.channel.name weg
danke
Python basics >>>>>>
[ERROR] Error in event on_message
Traceback (most recent call last):
File "C:\Users\felix\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "c:\Users\felix\Desktop\Neuer Test Bot\cogs\ticket.py", line 35, in on_message
if '⛔|Support Ticket' in msg.channel.name:
^^^^^^^^^^^^^^^^
AttributeError: 'DMChannel' object has no attribute 'name'
Ja dms halt, da gibts kein channel name
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
self.bot.add_view(Ticketcommand(self.bot))
@commands.Cog.listener()
async def on_message(self, msg):
if not message.guild:
return
if '⛔|Support Ticket' in msg.channel.name:
ticket_owner = get_config("Guild_ID")
if ticket_owner:
await ticket_owner.send("Das Team hat auf Ihr Ticket geantwortet.")
if msg.author.id in [get_config("Support_Accessrole")]:
return
irgendwie nekommt mein 2 acc der das ticket öffnet keine dm wenn ich (teammitglied) reinschreibe was kann ich ändern oder ergibt der code kein sinn? habe kein error
import discord
from discord.ext import commands
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import youtube_dl
bot = commands.Bot(command_prefix="!")
# Set up the Spotify API client credentials
client_credentials_manager = SpotifyClientCredentials(
client_id='YOUR_SPOTIFY_CLIENT_ID',
client_secret='YOUR_SPOTIFY_CLIENT_SECRET'
)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.command()
async def join(ctx):
channel = ctx.author.voice.channel
vc = await channel.connect()
@bot.command()
async def leave(ctx):
vc = ctx.voice_client
if vc:
await vc.disconnect()
else:
await ctx.send("I'm not in a voice channel.")
@bot.command()
async def play(ctx, spotify_link):
vc = ctx.voice_client
if not vc:
await ctx.send("I'm not in a voice channel. Use `!join` first.")
return
try:
# Extract the track ID from the Spotify link
parts = spotify_link.split("/")
track_id = parts[-1]
# Get track information from Spotify
track_info = sp.track(track_id)
# Get the track name and artist from the track info
track_name = track_info['name']
artist_name = track_info['artists'][0]['name']
# Search for the track on YouTube
query = f"{track_name} {artist_name}"
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(query, download=False)
url = info['formats'][0]['url']
# Play the track in the voice channel
vc.stop()
vc.play(discord.FFmpegPCMAudio(url))
await ctx.send(f'Now playing {track_name} by {artist_name}')
except Exception as e:
await ctx.send(f'An error occurred: {e}')
bot.run('YOUR_BOT_TOKEN')
klappt der code oder eher nicht?
teste es bitte selber
Woher soll ich
client_id='YOUR_SPOTIFY_CLIENT_ID',
client_secret='YOUR_SPOTIFY_CLIENT_SECRET'
???
das wird eh nicht klappen chat GPT kann nix
- du codest des also solltest du des schon wissen und nd einf codes kopieren
spotify developer portal kennst du aber schon?
ich code da nix
nein
dann bist du hier auch falsch
Ich meine damit das chat gpt das gemacht hat
ik
kann das leider ja nicht
und was bringt dir des jz ?
was?
ein veralteter code
soll ich eine application erstellen?
Keine ahnung vielleicht hab ich ja glück und es klappt
dann geh doch auf fiverr und suche da
wonach
nach einen spotify code
das kostet da eh alles so viel
ja dann lass es gleich bleiben aber mit sowas von chat gpt brauchst ja auch nd hier her kommen und fragen
Traceback (most recent call last):
File "/storage/emulated/0/Timo/Dev/Discord/Bot/quizBot/bot.py", line 19, in <module>
discord.utils.setup_logging()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'discord.utils' has no attribute 'setup_logging'
Nutzt du py-cord?
Ja
Ja dann musst du den code umschreiben in py-cord
Warum
@commands.Cog.listener()
async def on_ready(self):
self.bot.add_view(SelectMenu(self.bot))
self.bot.add_view(Ticketcommand(self.bot))
@commands.Cog.listener()
async def on_message(self, msg):
if not message.guild:
return
if '⛔|Support Ticket' in msg.channel.name:
ticket_owner = get_config("Guild_ID")
if ticket_owner:
await ticket_owner.send("Das Team hat auf Ihr Ticket geantwortet.")
if msg.author.id in [get_config("Support_Accessrole")]:
return
irgendwie nekommt mein 2 acc der das ticket öffnet keine dm wenn ich (teammitglied) reinschreibe was kann ich ändern oder ergibt der code kein sinn? habe kein error
schau mal ob der bot deinen 2.acc überhaupt eine dm senden darf
kann ich machen
ja er kann ihn dmen
habe da grad ein fehler mal sehen wann es geht xD
OK🙂
Wie kann man den master Branch deinstallieren
Ignoring exception in view <Ticketclose timeout=None children=2> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=True label='Löschen' emoji=<PartialEmoji animated=False name='🗑️' id=None> r
ow=None>:
Traceback (most recent call last):
File "C:\Users\felix\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "c:\Users\felix\Desktop\Neuer Test Bot\cogs\ticket.py", line 186, in button_callback1
await interaction.send_message()
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Interaction' object has no attribute 'send_message'
code:
@commands.Cog.listener()
async def on_message(self, msg):
if not msg.guild:
return
if '⛔|Support Ticket' in msg.channel.name:
ticket_owner = get_config("Guild_ID")
if ticket_owner:
await ticket_owner.send("Das Team hat auf Ihr Ticket geantwortet.")
if msg.author.id in [get_config("Support_Accessrole")]:
return
sicher dass das der code dazu ist?
Falscher Code abschnitt
stimmt falscher error ich meinte da gibt es kein error zu
aber es geht halt nicht
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 827, in _do_call
return await self._callback(self.binding, interaction, **params) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/storage/emulated/0/Timo/Dev/Discord/Bot/quizBot/cogs/flagquiz.py", line 164, in _setup
await self.cursor.execute(
^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'execute'
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/app_commands/tree.py", line 1248, in _call
await command._invoke_with_namespace(interaction, namespace)
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 853, in _invoke_with_namespace
return await self._do_call(interaction, transformed_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 846, in _do_call
raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'setup' raised an exception: AttributeError: 'NoneType' object has no attribute 'execute'
<discord.interactions.Interaction object at 0xf31f0730>
wie meinst du das? der master branch ist sozusagen der hauptcode von deinem projekt. wenn du das projekt nicht mehr haben willst, kannst du es auf github löschen
genauso wie die package
Ok
dann prüf mal bis wohin der code ausgeführt wird. wenn nichts passiert, wird wohl eine if bedingung nicht true
also wenn du die master branch hast von py-cord deinstalliert die sich automatisch wenn du pip uninstall py-cord machst
Ok
@urban glen kannst du kurz rein kommen
bekomme es nd hin 🙂
ok
kann wer kurz hier rein https://discord.com/channels/1010915072694046794/1020759567421931620
beim Pagniator wenn ich ein defer davor mache muss ich dann des unten anders machen anstatt wie sonst paginator.respond
Weiß jemand was ich tun soll, damit dieser Error bei der Installation der Packages nicht mehr kommt?
python.exe neuinstallieren
lucky kannst du kurz kommen
Also Python neuinstallieren?
ja
ja
Ich verstehe einfach nicht, warum die butten oben nicht b angezeigt wird
Danke
bitte
?
ne
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus dem Video
Paginator Guide ► https://guide.pycord.dev/extensions/pages/paginator-basics
Paginator Docs ► https://docs.pycord.dev/en/stable/ext/pages/index.html#paginator
Modulo Operator ► https://www.youtube.com/watch?v=rVGrds7AbPw
Code auf Github ► ...
das wird in dem video nd gezeigt 
Und
es geht alles ich bekomme nur einen error trz
Kannst du den schicken?
dm
👍
Wie kann ich den butten dünner machen?
button rassismus
😂😂😂
Welchen button?
html
width
hier
Da hab ich ihm schon geholfen -> #1155159264617308331
Traceback (most recent call last):
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 783, in _load_from_module_spec
setup = getattr(lib, "setup")
AttributeError: module 'modules.jail.db' has no attribute 'setup'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\gehtd\Desktop\Important Stuff\AquaEcho\main.py", line 4, in <module>
bot = Bot()
File "c:\Users\gehtd\Desktop\Important Stuff\AquaEcho\addons\Bot.py", line 21, in __init__
self.load_all_cogs()
File "c:\Users\gehtd\Desktop\Important Stuff\AquaEcho\addons\Bot.py", line 47, in load_all_cogs
self.load_subdir("modules")
File "c:\Users\gehtd\Desktop\Important Stuff\AquaEcho\addons\Bot.py", line 43, in load_subdir
self.load_extension(f"{root_dir}.{sub.name}.{item.name[:-3]}")
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 913, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 786, in _load_from_module_spec
raise errors.NoEntryPointError(key)
discord.errors.NoEntryPointError: Extension 'modules.jail.db' has no 'setup' function.
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x0000022E0BAE47C0>
Weiß nicht warum der error ausschlägt
Weil du keine Setup function hast
OK
du losti
ja
oha das als dev 😐
Ich glaube du solltest Anfangen deine Kündigung zu schreiben ._.
😅
Ich brauche Hilfe wie werde ich besser in Fortnite
Kann man aimbot mit Python coden
bestimmt irgendwie
Das kann zum normalen game auch hwid führen
neee
Doch bei meinen kollegen ist es passiert
aber des hat hier nix zu suchen leute
Er hat nur bei nova gecheated
Doch brauche hilfe für hwid unban
#🔰・old-help-rules
kann ich nochmal das Quiz in #🔰・old-help-rules wiederholen? ich habe mich halt verklickt und dann konnte ich nicht mehr alles verbessern
#💬・chat
Warum in chat
frag ich mich auch
Grundsätzlich ist das Forum für Code-Probleme rund um Python, Discord Bots und Hosting
maybe nochmal den Test machen xD
achso
wie bekommt man solche nachriten hin? also das nur ich sie sehe
ephemeral=True
Beim absenden
ging aber net
Geht nur beim responden nicht wenn sie in einem kanal sendest
mit der info kann man nicht viel anfangen
._.
await ctx.respond(f"{amount} Nachrichten wurden gelöscht.", ephermal=True)
oder wie
Schau wie du es geschrieben hast und wie ich es geschrieben habe
ephermal -> ephemeral
ist auch so ein kack wort
Hm? Find ich nicht
was heißt des eig auf deutsch
temporär oder so, xD du fragst mich sachen
Co(ck)g Hihihihiihihihiihihihi
Steht auch temporär
Timo kann man des Pagination system schnell ändern das es ein Select menu ist
also das da nicht viel code unterschied ist meine ich
weiß nicht, schau mal im guide den pycord dazu gemacht hat
ja da sehe ich nix dazu
File "<frozen importlib.util>", line 98, in find_spec
ModuleNotFoundError: __path__ attribute not found on 'blacklist' while trying to find 'blacklist.py'
code?
ich will eig nur die datei laden
die findet er wohl nd
bot.load_extension('blacklist.py')
https://youtu.be/SsY8JOzuGfQ?t=111 das hilft dir
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
EzCord Docs ► https://ezcord.readthedocs.io/
EzCord GitHub ► https://github.com/tibue99/ezcord
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot
PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https:...
bro
was hast du
ich will halt die Datei kurz mal einseln laden
weil ich möchte die danach wieder rausmachen
habs gefixt
aber danke nochmal
Nein man braucht kein Embed für ephemeral nachrichten
💀
Okay
wie kann man es machen ?
Unten ist ein Knopf wo Starten drauf steht
hab schon wie meite wie kann so ein code machen zb
Wenn du sowas für deinen eigenen Server willst musst du KeksModeration einladen und dann /quiz machen
Den Code vom System hab ich geschrieben und das ist mit dem interface wo alles eingestellt werden kann relativ aufwenig, wenn du die fragen hardcoden möchtest ist es einfacher jedoch wirst du dafür auch keinen code einfach so bekommen. Überleg doch selber mal wie man soetwas machen könnte. (Wenn du sowas für deinen eigenen Server willst musst du KeksModeration einladen und dann /quiz machen, dann musst du auch nichts dafür coden)
Hey zusammen, ich habe erfolgreich eine Willkommen Nachricht erstellen können mit Buttons. Nun mein nächster Schritt ist es ein Steam Verification System zu erstellen wodurch das Mitglied seinen Discord Account mit Steam Verifizieren musst und er nach einer Verifizierung eine Rolle erhält. Gibt es dafür Doc oder sowas weil ich konnte leider keine finden? Es geht um die Sprache Python.
Ah von steam aus dann? 😮 Dachte bei Python muss ich nachschalgen ah ok vielen Dank. 
nein das hat nichts mit der programmiersprache zu tun
Ah ok dann weiß ich bescheid danke dir 🙂
@thick forum es gibt dafür ein discord feature, das musst du gar nicht selbst coden
definitiv 

haben die das neu gemacht
ja, vor nem jahr oder so
kenne das alte design aber das man jetzt einstellen kann ist mir neu+
Sieht so aus das Discord mit Steam jetzt eine Partnerschaft haben weil diese Funktion gibt?
das gibt es nicht nur mit steam, sondern für alle dienste, die man bei discord verbinden kann
irgendwie unnötig
Oh interessant sogar Xbox und Epic 😮
spiele oder so ja aber why paypal
Für uns vielleicht unnötig aber nicht für Discord. Die machen durch die Partnerschaften eine menge Einnahmen. 😄
Ja vielleicht wenn du auf Discord eine Spende Einnahme machst brauchst du PayPal oder wenn du was auf Discord kaufen möchtest wie Nitro oder so brauchst du PayPal etc. 🙂
Die Spenden meinst du?
naja das verkaufen
Ja und Nein
Es kommt drauf an was du verkauft sowie wie viel Einnahmen du machst. Spricht es gibt ein Monatliches oder Jährliches Limit bei dem ich mir nicht sicher bin wo du bis zu einen gewissen Beitrag einnahmen machen darfst sollte du dies überschreiten gilt das nicht mehr als Privat Verkäufer sondern als Gewerbe was versteuert werden musst.
Und ja man kann durch eigene Projekte bezahlt werden wie Python etc. Es ist nämlich deine Arbeit gewesen und da wirst du auch einen Recht haben es zu verkaufen. Es handelt sich hierbei ja nicht um ein gestohlenes Projekt. 🙂
Hi kann mir da jemand helfen ich hab ein error der nicht weg geht Traceback (most recent call last):
File "C:\Users\chris\Desktop\Feuer-chris bot.py\main.py", line 1, in <module>
import discord
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord_init_.py", line 27, in <module>
from .application_role_connection import *
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\application_role_connection.py", line 27, in <module>
from typing import TYPE_CHECKING
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\typing.py", line 26, in <module>
import contextlib
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 7, in <module>
from functools import wraps
File "C:\Users\chris\AppData\Local\Programs\Python\Python311\Lib\functools.py", line 1012
class_getitem = classmethod(GenericAlias)
^
IndentationError: unindent does not match any outer indentation level
Process finished with exit code 1
so kann man besser lesen
Einrückungsfehler
Zeig mal deinen Code
-> ` <-"py". import discord
import ezcord
from discord import Option
bot = ezcord.Bot(
intents=discord.Intents.all()
)
import aiocron
import pytz
c = [
"Online",
"Idle",
"Do not disturb",
"Invisible",
]
gametype = [
"Playing",
"Streaming",
"Listening",
"Watching",
]
@bot.slash_command(name="status", description="Set the status of the bot")
async def abc(ctx, status: Option(str, "The status of the bot", choices=c), gametype: Option(str, "The gametype of the bot", choices=gametype), *, text: Option(str, "The text of the bot")):
if status == "Online":
status = discord.Status.online
elif status == "Idle":
status = discord.Status.idle
elif status == "Do not disturb":
status = discord.Status.dnd
elif status == "Invisible":
status = discord.Status.invisible
else:
status = discord.Status.online
if gametype == "Playing":
gametype = discord.ActivityType.playing
elif gametype == "Streaming":
gametype = discord.ActivityType.streaming
elif gametype == "Listening":
gametype = discord.ActivityType.listening
elif gametype == "Watching":
gametype = discord.ActivityType.watching
else:
gametype = discord.ActivityType.playing
await bot.change_presence(status=status, activity=discord.Activity(type=gametype, name=text))
await ctx.respond(content=f"Status was set to {status} {gametype} {text}", ephemeral=True)
minute = "0"
stunde = "22"
end = f"{minute} {stunde} * * *"
@aiocron.crontab(end, tz=pytz.timezone('Europe/Berlin'), start=True)
async def morning():
channel = bot.get_channel(1111799805384081588)
await channel.send("Gute Nacht Feuer-chris • Community ! :😴:")
minute = "0"
stunde = "6"
end = f"{minute} {stunde} * * *"
@aiocron.crontab(end, tz=pytz.timezone('Europe/Berlin'), start=True)
async def morning():
channel = bot.get_channel(1111799805384081588)
await channel.send("Guten Morgen Feuer-chris • Community ! :🛌:")
import random
@bot.slash_command(name="iq", description="Zeigt dir den IQ eines Users an")
async def iq(ctx, user: discord.Member = None):
if user == None:
user = ctx.author
await ctx.respond(f"{user.name}'s IQ: {random.randint(75, 150)}")
@bot.slash_command(description='Kicke ein Nutzer auf dein Server.')
async def kick(ctx, member: discord.Member, grund: str):
if not ctx.author.guild_permissions.kick_members:
embed = discord.Embed(title="⚠️ | Du hast keine Rechte dafür!", color=0xffa55c)
await ctx.respond(embed=embed, ephemeral=False)
return
guild = bot.get_guild(886328523701223504)
embed = discord.Embed(title=f"Erfolgreicher Kick!", description=f"""
Der Nutzer {member.mention} Wurde Erfolgreich Gekickt
Grund: {grund}
""", color=0x2ecc71)
embed.set_thumbnail(url=f"{ctx.guild.icon.url}")
embed.set_footer(text=f"{ctx.author.name}", icon_url=ctx.author.avatar.url)
await ctx.respond(embed=embed)
embed2 = discord.Embed(title=f'**Du Wurdest Gekickt! auf {ctx.guild.name}**', description=f"""
**Der Grund: {grund}**
""", color=0xe74c3c)
embed2.set_thumbnail(url=f"{ctx.guild.icon.url}")
embed2.set_footer(text=f"{ctx.author.name}", icon_url=ctx.author.avatar.url)
await member.send(embed=embed2)
await ctx.guild.kick(member)
if message.content.startswith("!apply"):
applyChannel = client.get_channel(729854567197704303)
@bot.slash_command(description="Überprüfe ob der Bot noch online ist!")
async def ping(ctx):
await ctx.respond(f"💡 | Pong! {ctx.author.mention}", ephemeral=True)
@bot.event
async def on_ready():
print(f"{bot.user} ist online")
if name == "main":
bot.load_cogs("cogs") # Load all cogs in the "cogs" folder
bot.run
Als Codeblock?
soll ich alle codes hier rein schicken ?
Vor allem wäre es hilfreich, wenn du deinen Code so formatierst, wie es dir hier erklärt wurde @modest obsidian
Damit können wir nämlich recht fix auch einrückungsfehler etc. erkennen.
(einfach auf die Nachricht klicken, auf die ich geantwortet habe um hin zu springen)
in #🐍・python kannst du besser lesen
print("Kekse sind lecker")
@modest obsidian bitte darun als Codeblock
```py
print("Kekse sind lecker")
```
im code oder in der nachricht?
Du stellst fragen....
ja ist halt wirklich so bin halt dumm
ok
Der Code in deiner Nachricht, hier im Raum. Die soll in der ersten und letzten Zeile 3 dieser -> ` <- Dinger (Shift + Taste links neben Backspace) haben. In Zeile 1 gefolgt von den Buchstaben "py". Nach "py" drückst du enter, also in Zeile 1 darf nur ```py stehen.
wenn es richtig gemacht wurde wird das py grün und der mittig gepostete Code nach dem senden automatisch formatiert.
Hilft das?
geht das
nein
import discord
import ezcord
import random
from discord import Option
import aiocron
import pytz
bot = ezcord.Bot(
intents=discord.Intents.all()
)
c = [
"Online",
"Idle",
"Do not disturb",
"Invisible",
]
gametype = [
"Playing",
"Streaming",
"Listening",
"Watching",
]
@bot.slash_command(name="status", description="Set the status of the bot")
async def abc(ctx, status: Option(str, "The status of the bot", choices=c), gametype: Option(str, "The gametype of the bot", choices=gametype), *, text: Option(str, "The text of the bot")):
if status == "Online":
status = discord.Status.online
elif status == "Idle":
status = discord.Status.idle
elif status == "Do not disturb":
status = discord.Status.dnd
elif status == "Invisible":
status = discord.Status.invisible
else:
status = discord.Status.online
if gametype == "Playing":
gametype = discord.ActivityType.playing
elif gametype == "Streaming":
gametype = discord.ActivityType.streaming
elif gametype == "Listening":
gametype = discord.ActivityType.listening
elif gametype == "Watching":
gametype = discord.ActivityType.watching
else:
gametype = discord.ActivityType.playing
await bot.change_presence(status=status, activity=discord.Activity(type=gametype, name=text))
await ctx.respond(content=f"Status was set to {status} {gametype} {text}", ephemeral=True)
minute = "0"
stunde = "22"
end = f"{minute} {stunde} * * *"
@aiocron.crontab(end, tz=pytz.timezone('Europe/Berlin'), start=True)
async def morning():
channel = bot.get_channel(1111799805384081588)
await channel.send("Gute Nacht Feuer-chris • Community ! ::sleeping::")
minute = "0"
stunde = "6"
end = f"{minute} {stunde} * * *"
@aiocron.crontab(end, tz=pytz.timezone('Europe/Berlin'), start=True)
async def morning():
channel = bot.get_channel(1111799805384081588)
await channel.send("Guten Morgen Feuer-chris • Community ! ::sleeping_accommodation::")
@bot.slash_command(name="iq", description="Zeigt dir den IQ eines Users an")
async def iq(ctx, user: discord.Member = None):
if user == None:
user = ctx.author
await ctx.respond(f"**{user.name}'s IQ:** {random.randint(75, 150)}")
@bot.slash_command(description='Kicke ein Nutzer auf dein Server.')
async def kick(ctx, member: discord.Member, grund: str):
if not ctx.author.guild_permissions.kick_members:
embed = discord.Embed(title=":warning: | Du hast keine Rechte dafür!", color=0xffa55c)
await ctx.respond(embed=embed, ephemeral=False)
return
guild = bot.get_guild(886328523701223504)
embed = discord.Embed(title=f"Erfolgreicher Kick!", description=f"""
**Der Nutzer {member.mention} Wurde Erfolgreich Gekickt**
Grund: {grund}
""", color=0x2ecc71)
embed.set_thumbnail(url=f"{ctx.guild.icon.url}")
embed.set_footer(text=f"{ctx.author.name}", icon_url=ctx.author.avatar.url)
await ctx.respond(embed=embed)
embed2 = discord.Embed(title=f'**Du Wurdest Gekickt! auf {ctx.guild.name}**', description=f"""
**Der Grund: {grund}**
""", color=0xe74c3c)
embed2.set_thumbnail(url=f"{ctx.guild.icon.url}")
embed2.set_footer(text=f"{ctx.author.name}", icon_url=ctx.author.avatar.url)
await member.send(embed=embed2)
await ctx.guild.kick(member)
if message.content.startswith("!apply"):
applyChannel = client.get_channel(729854567197704303)
@bot.slash_command(description="Überprüfe ob der Bot noch online ist!")
async def ping(ctx):
await ctx.respond(f"**:bulb:` | Pong! {ctx.author.mention}**", ephemeral=True)
@bot.event
async def on_ready():
print(f"{bot.user} ist online")
if name == "main":
bot.load_cogs("cogs") # Load all cogs in the "cogs" folder
bot.run("TOKEN")```
verstehe vieles an dein Code eh nd xD
@solid ingot Dein Bot sagt ich sei zu unwissend um Hier helfen zu dürfen 😂
sicher dass das mein bot ist?
Der Keks da halt
achso du hast eine frage falsch beantwortet?
"der keks da" hahah
Scheint so
Ach sorry, wollte den ping ausschalten
Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
File "C:\Users\sebas\AppData\Local\Programs\Python\Python311\Lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\sebas\AppData\Local\Programs\Python\Python311\Lib\asyncio\proactor_events.py", line 165, in _call_connection_lost
self._sock.shutdown(socket.SHUT_RDWR)
ConnectionResetError: [WinError 10054] Eine vorhandene Verbindung wurde vom Remotehost geschlossen
@app.get("/callback")
async def callback(code: str):
return RedirectResponse(url="/home")```
ich weiß nicht warum das kommt hätte jemand eine idee
sieht aus als wäre während ein thread am laufen war,dass die verbindung verschlossen wurde
das wundert mich es geht alles dann logge ich mich ein dann kommt "localhost hat eine ungültige Antwort gesendet."
hhm
es steht halt dass eine vorhandene verbindung vom remotehost geschlossen wirde und im traceback ist asyncio noch vorhanden
was kan man dagegen tun?
kannst du mal code zeigen
import uvicorn
from fastapi.responses import RedirectResponse
from discord.ext.ipc import Client
from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from starlette.templating import Jinja2Templates
CLIENT_ID = "-"
CLIENT_SECRET = "-"
REDIRECT_URL = "-"
LOGIN_URL = "-"
app = FastAPI()
app.mount("/static", StaticFiles(directory="frontend/static"), name="static")
templates = Jinja2Templates(directory="frontend")
ipc = Client(secret_key="-")
@app.get("/")
async def home(request: Request):
return templates.TemplateResponse(
"index.html",
{
"request": request,
"login_url": LOGIN_URL
}
)
@app.get("/callback")
async def callback(code: str):
return RedirectResponse(url="/home")
@app.get("/home")
async def home():
return {"success": "Erfolgreich eingeloggt!"}
if __name__ == "__main__":
uvicorn.run(app, host="localhost", port=1010)```
hhm wie lange war die verbindung schon offen befor du den request gemacht hast
weil es kann sein, dass wenn es zu lang nichts gemacht war die verbindung automatisch schliesst
mach mal direkt wenn du es gestartet hast
Immer noch
hast du irgendeine firewall aktiv die etwas blockieren könnte?
Weis nicht da ich mit Firewall kaum was mache
hhm dann weiss ich auch nicht$
Was sollte ich den im Firewall machen
ja halt deaktivieren weil die firewall halt request blockieren oder verändern kann
WARNING: Invalid HTTP request received.
WARNING: Invalid HTTP request received.
dann ist wohl der http request irgendwie korrupt$
Der andere kommt auch noch
Nop eigentlich nicht?
Ja musst aber vom Defer ein respondi machen
ok
@viscid lake hast du den Bot am laufen
wie genau kann ich jemand dmen der das ticket geöffnet hat?
wenn du einen user hast kannst du mit user.send() eine DM senden
Geht nicht der war ja an
timo hast du vielleich eine idee
@viscid lake komm mal in https://discord.com/channels/1010915072694046794/1155570131250970634
cogs ❌ co(ck)gs ✅
Ey, klau nicht meine Jokes
Haha
Mach ruhig weiter
Den Joke hat schon jeder 2te gemacht
Ja sind aber auch einfach cocks von der Aussprache her
muss man noch wenn man ezcord use muss man noch self.bot machen ?
ich glaube du kennst den Unterschied zwischen einer Library und Python Classes nicht
self.bot hat nix mit ezcord zutun
Das ist eine variable die du setzt für den bot
Kannst es auch "self.abc" nennen
Oder "self.kakficosjfj"
oder self.cock
Traceback (most recent call last):
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 827, in _do_call
return await self._callback(self.binding, interaction, **params) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/storage/emulated/0/Timo/Dev/Discord/Bot/quizBot/cogs/flagquiz.py", line 164, in _setup
await self.cursor.execute(
^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'execute'
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/app_commands/tree.py", line 1248, in _call
await command._invoke_with_namespace(interaction, namespace)
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 853, in _invoke_with_namespace
return await self._do_call(interaction, transformed_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/site-packages/discord/app_commands/commands.py", line 846, in _do_call
raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'setup' raised an exception: AttributeError: 'NoneType' object has no attribute 'execute'
<discord.interactions.Interaction object at 0xeb5ae7a8>
self.cursor ist None
Ja
Ja
Das ist dein Code
Dann hast du was falsch gemacht
Ne
Doch
Habe das mit git geclond
Schick Mal den Code, wie du ihn Grad hast
Ok
Hast du im on_ready das stehen: await connect_db()
Ja in den Klammern habe ich self
Hm?
||Edit: asso, ja richtig xD||
Lad hier mal den Code hoch, den du grad hast
Habs auch jetzt nochmal von github gecloned und bei mir geht alles
Also hast du bei dir irgendwas falsch gemacht
Ok
Habs
Ja schick link ._.
Ja
Hat jemand ne Idee, wieso ich da nichts zurückbekomme, also Fehler (Bild 2), und bei dem gleichen Code klappt es nur bei einer anderen Request (Bild 1)? Hab schon paar Sachen probiert, aber bisher keine Lösung...
Versuchs so, hab einfach eine if-abfrage eingebaut, wenns None ist, dass es connecten soll
Beim Command, on_message und beim button
Probiers mal aus
Und nur so zur info, versuch mal deine probleme selber zu lösen, bevor du direkt hier fragst
Geht immer noch nicht
Dann machst du was falsch
Ich schaue nochmal
hast du discord.py installiert?
Maschine
Habe bei
await connect_db()
Das self vergessen
._.
Mache nen Quiz bot welche Befehle sollen noch rein

Schau dir den Code an
Wenn du Code kopierst, schau's dir vorher wenigstens an...
😂
Man man man...
haste halt als activitiy festgelegt
yep
Wie
muss ich morgen schauen bin gerade nur am handy
Ok
Keine Ergebnisse für Mobile Activity gefunden. Meintest du Folgendes?
Junge schau dir den Code an, in der bot.py
Oder wie du die Datei die du startest genannt hast
Ja, da ist es
Und wenn du den Code anschaust, dann siehst du auch wo genau das gemacht wird
Vorausgesetzt: Man muss Code verstehen können
bei identify

Hahahahahaa
Guten Morgen,
Gibt es eine Möglichkeit eigene Bilder im embed so anzuzeigen das sie nicht heruntergeladen werden können.
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Links aus diesem Video
► https://media.tenor.com/epNMHGvRyHcAAAAd/gigachad-chad.gif
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
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/
D...
@timid dew
Der Teil des Codes ist kein Teil jegliches Events oder Commands soweit ich es sehen kann. Deshalb klappts auch ned
Danke. 
ich denke nicht, dass das geht. wenn leute die bilder sehen können, können sie sie auch herunterladen
Ich weiß es nicht.
Wäre halt meine Frage ob man ein embed im Bild anzeigen lassen kann ohne das jemand das Bild kopieren oder heruntergeladen kann.
nein, das geht nicht
Ah okey schlecht.
Ist ned mein Code sondern von @modest obsidian
ich checke gerade nicht, was Pycharm will
er behauptet, dass das E bei embed falsch wäre
IndentationError: expected an indented block after function definition on line 20
Code
Ist doch Python und nicht pycharm 😂
du hast eine leere funktion in zeile 20, das ist illegal
Illegale Hobbys
oh
was soll ich denn da hinschreiben, wenn ich erst danach ein Embed senden kann? also nachdem reingeschrieben habe, was da rein soll
wait
ich brauche hilfe allgemein
SyntaxError: 'await' outside function BRUUUUUUUUUUUUH
Immernoch Code
egal
Hallo ich nutze bei ein paar commands Slash command groups und dann sind die tags der commands mit einem Lehrzeichen getrennt kann ich das irgendwie zu einen Bindestrich ändern? (Ist weil die anderen commands so sind)
Du könntest statt den groups einfach normale commands machen die du dann so nennst
Ja ich bin aber über das limit von 100 commands drüber
Oder eher kurz davor
Hmm bei slash command groups kannst du eigentlich nicht das Leerzeichen ändern
Ok
Schade sieht jetzt bisschen komisch aus
wie macht man so eine Formel zum ausfüllen? Also wie bei #🎫・tickets
@raven lotus
Mein Discord Server
► https://discord.gg/zfvbjTEzv6
Code auf Github ► https://github.com/tibue99/tutorial-bot
Discord Developer Portal ► https://discord.com/developers/applications
Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord
In diesem Video stelle ich euch S...
achso ja oder das modal
Er sagt ja "zum ausfüllen" xD
Wie mache ich das Komma so wie auf dem Bild?
` Das?
shift ``
bei mir nicht
ja
ja freilli
hab 60%
wos
Copy and Paste dann? Oder Google es lol
Weiß jemand wie man sowas macht das mit eqsy pill das Banner von dem der joint angezeigt wird
Und die Abzeichen
Ja ich weiß wie man sowas macht
Wiee
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/64cc6743624ca04ea0b6bd75d27e76f3fe7bf032/Einzelvideos/Easy-PIL/space.png
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://g...
Danke
Kann ich dadurch lernen wie man welcome und goodbye message macht?
Damit lernst du Bild Manipulationen
aber keine welcome goodbye message mit bild?
Welcome / Goodbye Nachrichten schickst du mit dem Event on_member_join und on_member_remove
Doch, dann musst du das aber in den Events machen
@bot.event
async def on_member_join(member):
# Customize the welcome message
welcome_message = f"Welcome {member.mention} to the server!"
channel = bot.get_channel(channel_id)
await channel.send(welcome_message)
hab ich mir mal generieren lassen
brauche das nicht nur membercount und halt welcome und so
darf ich das nutzen?
Deshalb ist es ja in #1027677692730036294
Ja, deshalb ist es in #1027677692730036294
Eine Frage kann man slashcommands und ! Commands zsm nutzen ?
Also das man beides bei einem bot nehmen kann oder nur eins ?
.env so richtig?
AUTOROLES =
TOKEN =
WELCOME_CHANNEL =```
Ja und da halt hinter dem '=' deine ID's bzw Token und Co hinzufügen und wenn du mehr Autoroles machen willst musst du es so machen
AUTOROLES = [id 1, id 2]
```(Das mir id 1 & 2 ist nur ein Beispiel, wie du alle Rollen Id's dort eintragen musst
Wie kann ich
embed.add_field(name="", value="-Test Nachricht 1!", inline=False)
embed.add_field(name="", value="- Test Nachricht 2!", inline=False)
embed.add_field(name="", value="- Test Nachricht 3!", inline=False)```
und
```py
autoroles = os.getenv("AUTOROLES")
if autoroles:
autorole_ids = [int(role_id) for role_id in autoroles.split(",")]
for role_id in autorole_ids:
role = guild.get_role(role_id)
if role:
await member.add_roles(role)
await channel.send(embed=embed, file=file)```
löschen
einfach raus löschen?
```py
import os
from datetime import datetime
import discord
from discord.ext import commands
from easy_pil import Editor, load_image_async, Font
class Welcome(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_member_join(self, member):
if member.bot:
return
guild = member.guild
channel_id = os.getenv("WELCOME_CHANNEL")
channel = self.bot.get_channel(int(channel_id))
embed = discord.Embed(
title=f"Welcome to **{member.guild}**",
description=f"› Welcome {member.mention} to {member.guild} ",
color=discord.Color.orange(),
timestamp=datetime.now()
)
embed.add_field(name="", value="-Test Nachricht 1!", inline=False)
embed.add_field(name="", value="- Test Nachricht 2!", inline=False)
embed.add_field(name="", value="- Test Nachricht 3!", inline=False)
background = Editor("img/Welcome_Background.png").resize((500, 350))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((100, 100)).circle_image()
background.paste(circle_avatar, (190, 100))
big_text = Font.poppins(size=25, variant="bold")
small_text = Font.poppins(size=20, variant="regular")
under_text = Font.poppins(size=22, variant="regular")
user_text = Font.poppins(size=20, variant="regular")
background.text((250, 240), f"{member.display_name}", color="white", font=small_text, align="center")
background.text(
(250, 210), "Welcome", color="white", font=big_text, align="center"
)
background.text((250, 260), f"To {member.guild}", color="white", font=under_text, align="center")
background.text((250, 62), f"Member #{len(member.guild.members)}", color="white", font=user_text,
align="center")
file_path = "img/welcome.png"
background.save(file_path)
file = discord.File(fp=background.image_bytes, filename="welcome.png")
embed.set_image(url="attachment://welcome.png")
if member.guild.icon:
embed.set_footer(text=f"{member.guild}", icon_url=member.guild.icon.url)
autoroles = os.getenv("AUTOROLES")
if autoroles:
autorole_ids = [int(role_id) for role_id in autoroles.split(",")]
for role_id in autorole_ids:
role = guild.get_role(role_id)
if role:
await member.add_roles(role)
await channel.send(embed=embed, file=file)
def setup(bot):
bot.add_cog(Welcome(bot))```
Danke
@limber crow
import os
from datetime import datetime
import discord
from discord.ext import commands
from easy_pil import Editor, load_image_async, Font
class Welcome(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_member_join(self, member):
if member.bot:
return
guild = member.guild
channel_id = os.getenv("WELCOME_CHANNEL")
channel = self.bot.get_channel(int(channel_id))
embed = discord.Embed(
title=f"Welcome to **{member.guild}**",
description=f"› Welcome {member.mention} to {member.guild} ",
color=discord.Color.orange(),
timestamp=datetime.now()
)
background = Editor("img/Welcome_Background.png").resize((500, 350))
avatar = await load_image_async(member.display_avatar.url)
circle_avatar = Editor(avatar).resize((100, 100)).circle_image()
background.paste(circle_avatar, (190, 100))
big_text = Font.poppins(size=25, variant="bold")
small_text = Font.poppins(size=20, variant="regular")
under_text = Font.poppins(size=22, variant="regular")
user_text = Font.poppins(size=20, variant="regular")
background.text((250, 240), f"{member.display_name}", color="white", font=small_text, align="center")
background.text(
(250, 210), "Welcome", color="white", font=big_text, align="center"
)
background.text((250, 260), f"To {member.guild}", color="white", font=under_text, align="center")
background.text((250, 62), f"Member #{len(member.guild.members)}", color="white", font=user_text,
align="center")
file_path = "img/welcome.png"
background.save(file_path)
file = discord.File(fp=background.image_bytes, filename="welcome.png")
embed.set_image(url="attachment://welcome.png")
if member.guild.icon:
embed.set_footer(text=f"{member.guild}", icon_url=member.guild.icon.url)
await channel.send(embed=embed, file=file)
def setup(bot):
bot.add_cog(Welcome(bot))
geht das so oder nicht?
probiere es aus
hmm
Wie frage ich mit if ctx.author.guild_permissions ab ob jmd eine bestimmte perm hat
discord.Member.guild_permissions
discord.ext.commands.has_guild_permissions
discord.ext.commands.bot_has_guild_permissions
if ctx.author.guild_permissions.administrator
danke
(°<°)
mein bot will sich nicht mit den lavalink von mir verbinden obwohl mein lavalink server sagt das er bereit ist vernindungen zu akzeptieren
Schick doch mal ganzen Error und Code
import itertools
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
import wavelink
import aiosqlite
import datetime
bot = commands.Bot(intents=discord.Intents.all())
bot.remove_command("help")
@bot.event
async def on_ready():
await start_nodes()
async def start_nodes():
await bot.wait_until_ready()
node: wavelink.Node = wavelink.Node(
uri="http://localhost:2333",
password="negibtsned"
)
await wavelink.NodePool.connect(client=bot, nodes=[node])
wavelink.Player.autoplay = True
print("Nodes are ready.")```
Lässt du denn ein Lavalink Server auf deinem Pc währenddessen laufen?
Mit diesem passwort und diesem port?
@old ore
Ja
Er sagt mir auch das lavalink gestartet ist usw
@urban glen
Kurze Frage;
wo liegt der Unterschied zwischen
&
ctx.channel.send(„Beispieltext“, view=BspButton())```
Warum funktioniert das…
[```
bot.add_view(BspButton())```—> also das es nach dem Botrestart funktioniert.]
… nur beim ctx.respond?
Oder ist das nur bei mir so ?
Bei ctx.respond schickst du eine Nachricht in den Channel wo der Command ausgeführt worden ist und bei ctx.channel.send schickst du die Nachricht in einem bestimmten Channel.
Eigentlich sollte das egal sein, da es ja nur angibt, dass diese Funktion bei dem Bot Restart immer noch funktioniert und du nicht das Setup wieder machen musst
Danke ja es ich kenne den Unterschied nur wollte ich wissen ob es Unterschiede wegen den Button-Bot-Restarts gibt
Nein eigentlich nicht
3 Pings hab ich hier aber ich sehe nd wo ._.
Hier mütze @urban glen
ist die Permmision für die Berechtigung um User zu Timeouten timeout_members?
im internet steht irgendwie nichts
Nicht ganz glaube ich, bei ctx.respond antwortet man auf den / command des user wodurch da bei dem command nicht kommt Interaction Failed und ctx.channel.send schickt die nachricht einfach so in den channel indem der command ausgeführt urde ohne antwort. Also bei / commands eher ctx.respond benutzen und bei prefix command geht beides soweit ich weiß bin aber nicht sicher
Beim normalem channel.send schickt man die nachricht in den channel welcher halt in der channel variable festgelegt ist
@raven lotus hat @solid ingot gepingt.
wait
Mute ist timeout
Ah stimmt habe ich auch gesehen
es war glaube ich moderate members
Ja
discord.Member.timeout
discord.Member.timeout_for
discord.ui.View.timeout
discord.Guild.afk_timeout
discord.ui.View.on_timeout
discord.ui.Modal.on_timeout
discord.Member.remove_timeout
discord.AuditLogDiff.afk_timeout
discord.AutoModActionType.timeout
discord.ui.View.disable_on_timeout
discord.AutoModActionMetadata.timeout_duration
discord.ext.pages.Paginator.on_timeout
wie heißt der teil vom code, dass der User vom Bot getimeoutet wird?
was meinst du? ansonsten war deine suche schon richtig...
ich meine die action und die länge
discord.Member.timeout
discord.Member.timeout_for
discord.ui.View.timeout
discord.Guild.afk_timeout
discord.ui.View.on_timeout
discord.ui.Modal.on_timeout
discord.Member.remove_timeout
discord.AuditLogDiff.afk_timeout
discord.AutoModActionType.timeout
discord.ui.View.disable_on_timeout
discord.AutoModActionMetadata.timeout_duration
discord.ext.pages.Paginator.on_timeout
ich wollte ein Avatar Command machen, aber ich weiß nicht wie man den ausgewählten user als Imagine macht
code:
@slash_command()
async def avatar(self, ctx, user: Option(discord.Member, "Gib einen User an", default=None)):
if user is None:
user = ctx.author
embed = discord.Embed(
title=f"Avatar von {user.name}",)
embed.set_image(url=ctx.author.display_avatar.url)
await ctx.respond(embed=embed)
if user is True:
user2 = user
embed2 = discord.Embed(
title=f"Avatar von {user.name}", )
embed2.set_image(url=user2.author.display_avatar.url)
await ctx.respond(embed=embed2)
Wie mache ich das Avatar vom ausgewählten User rein?
Wo rein meinst du?
user.display_avatar.url
also embed.set_image(url=user.display_avatar.url)
Und why machst du 2 embeds
@slash_command()
async def avatar(self, ctx, user: Option(discord.Member, "Gib einen User an", default=None)):
if user is None:
user = ctx.author
embed = discord.Embed(
title=f"Avatar von {user.name}",)
embed.set_image(url=user.display_avatar.url)
await ctx.respond(embed=embed)
Mehr muss man nicht machen das zweite if user is True: ist unnötig

Man kann das noch verändern und einen check einbauen ob der angegebene user einen avatar hat
from discord import Embed
from discord.ext import commands
import ezcord
class GhostPing(ezcord.Cog):
@commands.Cog.listener()
async def on_message_delete(self, message):
if message.author.bot:
return
if not message.mentions:
return
for m in message.mentions:
if m.bot or m.id == message.author.id:
continue
embed = Embed(
title='Ghost-Ping erkannt!',
description=f"{message.author.mention} hat einen Ghost-Ping an {m.mention} gesendet",
colour=0xff0000,
timestamp=message.created_at
)
embed.add_field(name='Ursprüngliche Nachricht', value=message.content)
await message.channel.send(embed=embed)
def setup(bot):
bot.add_cog(GhostPing(bot))``` warum erkannt er nicht Ghost ping?
Hat wer ne Ahnung von Lavalink
Denn mein bot will sich nicht mit den lavalink von mir verbinden obwohl mein lavalink server sagt das er bereit ist vernindungen zu akzeptieren
import itertools
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
import wavelink
import aiosqlite
import datetime
bot = commands.Bot(intents=discord.Intents.all())
bot.remove_command("help")
@bot.event
async def on_ready():
await start_nodes()
async def start_nodes():
await bot.wait_until_ready()
node: wavelink.Node = wavelink.Node(
uri="http://localhost:2333",
password="negibtsned"
)
await wavelink.NodePool.connect(client=bot, nodes=[node])
wavelink.Player.autoplay = True
print("Nodes are ready.")```
Da fehlt deine def __init__ 
bei der class
muss man nicht bei ezcord
ja is halt kaka
warte ich schau nach 1 sec
mach dir mal prints
ob deine if bedingung true oder false ist
ich weiss jerzt wo ist er error danke ich
wo denn 
bot
was?
brd das ist kein korrektes deutsch
geht trzdm
jerzt geht
kk
Weil wenn ein User ausgewählt wurde der in das Bild rein soll
Mmmh
Also wird dann das Bild reingemacht, wenn ich den User ausgewählt habe?
ja
Ok, teste ich später
Ich habe noch eine Frage: wie heißt die Timeout Aktion? Weil ich finde sie auf den Seiten, wo der Bot geschickt hat, nicht
Also wie z.B. await respond("blablabla") das meinte ich als aktion
@raven lotus dies?
Und was verstehst du da nicht?
Ich brauche nur die Aktion
Oki
await member.timeout_for(Zeit)
Also Zeit kann man mit days: 0 usw. einstellen, oder?
👍🏽
Ok
Steht in den Docs
Als datetime.datetime-Objekt
Ok
Aber wenn ich halt einen User auswähle, soll das dann halt der als Avatar sein
Ich weiß nicht ob der Code geht
Hat wer ne Ahnung von Lavalink
Denn mein bot will sich mitt dem Lavalink server verbinden da kommt dann aber jedes mal dieser error in meinem Py code: py The Node <Node: id="698TrVyfDLjn", uri="http://localhost:8080", status=NodeStatus.CONNECTING> failed to authenticate properly. Please check your password and try again.
und dieser in meinem shell script:
2023-09-27 14:38:20.059 ERROR 10492 --- [ XNIO-1 task-1] l.server.io.HandshakeInterceptorImpl : Authentication failed from /[0:0:0:0:0:0:0:1]:50387```
Ich weiß leider nichts darüber, sry
dann antworte nicht
evtl weil du 'uri' und nicht 'url' geschrieben hast? xD
das heiß ja auch so
achso, sorry, das wusste ich nicht. In python ist ja eig. URL deswegen
alles jut
Kann man eigentlich mehr Bots als nur 1nen laufen lassen? Also auch extra Cogs und so erstellen.
Ich meine damit kann man eine 2. Main Datei machen
wie meinst
Mach cogs warum 2 mains
🤨
Weil ich z.B. zwei verschiedene Bots mit verschiedenen Commands laufen lassen will
Dann Pack die Commands in einen Cog. Einen neuen Bot laufen zulassen macht erst dann Sinn, wenn du z.b. was komplett anderes machst darauf
Hallo weiß einer eine Methode mit der ich bei Command groups vermeiden kann einen namen anzu geben
Oder das ich die lerzeichen irgendwie weg bekomme
da müsstest du statt command groups normale commands verwenden, groups haben immer ein leerzeichen
Timo hast du schonmal mit Lavalink bzw. Wavelink gearbeitet bzw. weißt wie es funkoniert?
nein
ok
Ignoring exception in view <manageSnippetsDropdown timeout=None children=1> for item <Select type=<ComponentType.string_select: 3> placeholder='🔔 › Was willst du verwalten' min_values=1 max_values=1 options=[<SelectOption label='Snippets' value='Snippets' description='Manage die Snippets' emoji=<PartialEmoji animated=False name='💬' id=None> default=False>, <SelectOption label='Kein Plan' value='Kein Plan' description='Kommt noch' emoji=<PartialEmoji animated=False name='⌚' id=None> default=False>] channel_types=[] disabled=False>:
Traceback (most recent call last):
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\ui\view.py", line 421, in _scheduled_task
await item.callback(interaction)
File "c:\Users\gehtd\Desktop\Important Stuff\some project\src\views\snippetViews.py", line 44, in select_callback
await interaction.edit(
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\interactions.py", line 590, in edit
return await self.response.edit_message(*args, **kwargs)
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\interactions.py", line 1021, in edit_message
payload["components"] = [] if view is None else view.to_components()
AttributeError: 'list' object has no attribute 'to_components'
if select.values[0] == 'Snippets':
menus = await snippetsDB().get_all()
if menus is None or menus == [] or menus == "[]":
return await interaction.edit(
content=None,
embed=discord.Embed(
title="➕ Füge Snippets hinzu",
description="Füge einen Snippet hinzu",
color=discord.Colour.embed_background()
), view=addSnippetButton()
)
select = deleteSnippetsDropdown()
for i in menus:
select.append_option(option=discord.SelectOption(label=i[0], description=i[1]))
view = discord.ui.View(timeout=None)
view.add_item(select)
await interaction.edit(
content=None,
embed=discord.Embed(
title="🔔 Snippets",
description="Manage die Snippets",
color=discord.Colour.embed_background()
), view=[view, addSnippetButton()]
)
kannst mehrere elemente in einen view packen
aber deleteSnippetsDropdown ist eine discord.ui.Select und addSnippetButton ist eine discord.ui.view
dann füg halt das select zum view hinzu
das geht folgend?
ohhh
aber dann funktionert das mit dem for i in menus nicht mehr oder?
weil ich eine discord.ui.select benötige
doch -_-
wenn das nicht geht 42 kekse
wenn das nicht geht hast dus falsch umgesetzt
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 777, in _load_from_module_spec
spec.loader.exec_module(lib) # type: ignore
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "c:\Users\gehtd\Desktop\Important Stuff\some project\controllers\manager.py", line 5, in <module>
from src.views.snippetViews import manageSnippetsDropdown
File "c:\Users\gehtd\Desktop\Important Stuff\some project\src\views\snippetViews.py", line 77, in <module>
class addSnippetButton(discord.ui.View):
File "c:\Users\gehtd\Desktop\Important Stuff\some project\src\views\snippetViews.py", line 90, in addSnippetButton
async def __callback(self, select, interaction):
TypeError: 'Select' object is not callable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "c:\Users\gehtd\Desktop\Important Stuff\some project\main.py", line 4, in <module>
bot = Bot()
File "c:\Users\gehtd\Desktop\Important Stuff\some project\addons\Bot.py", line 18, in __init__
self.load_all_cogs()
File "c:\Users\gehtd\Desktop\Important Stuff\some project\addons\Bot.py", line 42, in load_all_cogs
self.load_cogs("controllers")
File "c:\Users\gehtd\Desktop\Important Stuff\some project\addons\Bot.py", line 24, in load_cogs
self.load_extension(f"{directory}.{filename[:-3]}")
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 913, in load_extension
self._load_from_module_spec(spec, name)
File "C:\Users\gehtd\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\discord\cog.py", line 780, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'controllers.manager' raised an error: TypeError: 'Select' object is not callable```
```select = addSnippetButton()
for i in menus:
select.append_option(option=discord.SelectOption(label=i[0], description=i[1]))
view = discord.ui.View(timeout=None)
view.add_item(select)
await interaction.edit(
content=None,
embeds=discord.Embed(
title="🔔 Snippets",
description="Manage die Snippets",
color=discord.Colour.embed_background()
), view=view
)```
class addSnippetButton(discord.ui.View):
def init(self):
super().init(timeout=None)
@discord.ui.button(label="Drücke hierdrauf um das Snippet hinzuzufügen")
async def button_callback(self, button, interaction):
await interaction.response.send_modal(addSnippetModal(title="Erstelle ein neues Snippet"))
@discord.ui.Select(
min_values=1,
max_values=1,
placeholder="❌ › Welchen Snippet willst du löschen"
)
async def __callback(self, select, interaction):
await snippetsDB().delete(select.values[0])
await interaction.response.send_message(
f">>> ✅ {select.values[0]} wurde gelöscht!", ephemeral=True
)
jetzt versuchst du einen view zu einem view hinzuzufügen
jetzt versuchst du ein select menü als view zu benutzen
ein view muss aber immer ein view sein
aber dann muss ich ja wieder view = discord.ui.view blah blah machen und dann select angeben oder wie oder was
aber es kommt immer der fehler select object is not callable
selbst wenn ich den code auskommentier
- ich habe die lösung für den einen error
- jz habe ich einen neuen lol
hab es gefixxt
heyy frage warum ist das nicht gerade das EXP
font = Font.poppins(size=28, variant="bold")
text = f"{xp}/{await self.get_next_level_xp(xp)}"
font.getsize(text)
background.text((780, 235), text, color="white", font=font)
versuche mal eine andere Schriftart
bekomme ich wenn ich discord.Member nehme und member.banner.url nehme die url vom banner weil bei mir kommt da des nicht?
musst den member erst fetchen
geht es mit get nicht
nö
oh okay
warum leuchtet das rot?
Weil ctx nicht definiert ist
ja, aber ohne geht's nicht
Code?
@slash_command()
@commands.has_permissions(manage_roles=True)
async def add_role(self, ctx, user: Option(discord.Member, "Wähle einen User aus"), role: (discord.Role, "Welche Rolle soll ihm gegeben werden?")):
await user.add_role(role)
embed3 = discord.Embed(
title=f"{user.mention} wurden folgende Rolle erfolgreich gegeben:",
description=f"{role.name}"
)
embed3.set_author(url=user.display_avatar.url)
await ctx.respond(embed=embed3)
ja bitte?
Direkt mit Discord Bot's angefangen, bevor mit python basics? xD
ne, es lag daran, dass ich vergessen habe, dass es unter der aktion muss...
eig weiß ich ja wie es geht
Aber wenn es rot ist, kann man es sich ja schon denken xD
discord.errors.ExtensionFailed: Extension 'cogs.user_actionen' raised an error: AttributeError: 'str' object has no attribute '__name__' ganz kurz: ich checke den Error nicht ganz
was hab ich genau falsch gemacht
...
import discord
from discord.ext import commands
from discord.commands import slash_command
from discord.commands import Option
intents = discord.Intents.default()
bot = discord.Bot(
intents=intents
)
class Actionen(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def avatar(self, ctx, user: Option(discord.Member, "Gib einen User an", default=None)):
if user is None:
user = ctx.author
embed = discord.Embed(
title=f"Avatar von {user.name}", )
embed.set_image(url=user.display_avatar.url)
await ctx.respond(embed=embed)
@slash_command()
@commands.has_permissions(manage_roles=True)
async def add_role(self, ctx, user: Option(discord.Member, "Wähle einen User aus"), role: (discord.Role, "Welche Rolle soll ihm gegeben werden?")):
await user.add_role(role)
embed3 = discord.Embed(
title=f"{user.mention} wurden folgende Rolle erfolgreich gegeben:",
description=f"{role.name}"
)
embed3.set_author(url=user.display_avatar.url)
await ctx.respond(embed=embed3)
def setup(bot):
bot.add_cog(Actionen(bot))
so
dadada
So macht man keine Choices.
das hat nix mit dem code zutun
Learn all about Slash Commands and how to implement them into your Discord Bot with Pycord!
doch oops
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...
Übrigens nicht user.add_role sondern user.add_roles
.
schau das video
Actionen soll das jetzt Englisch oder Deutsch sein? ._.
das ist eine mischung
ich merks
also das ist nichteinmal ein richtiges wort soweit ich weiß
Denglish
Enutsch
😂
also, ich mache die Commands auf english und alles andere aus deutsch
Wir meinen das...
Ja klar war das nicht der Fehler.
schick deinen code
xD
bruder
wollt ihr mich jetzt triggern
da oben ist der code
Ja das war ja auch klar ._.
ich mache den nur als Test rein, um zu schauen ob der Code geht, weil dann schmeiße ich ihn in einem anderen Cog
da fehlt vor dem ( das Option
lol
sieht so aus
du fragst schon oft basic sachen und des soll man doch nicht 😐
Ist es möglich für jeden Channel auf einem Server ein Item in einem SelectMenu hinzuzufügen? Habe in den Docs nichts dazu finden können.
Danke 🙂
._.
hust EiNrÜcKuNgEn hust xD
Wie meinst du?
Das man den channel auswählen kann?
der will den User net als Embed Author bild reinschmeißen
gibt es doch schon als mentionable channel select usw.
Jop 🙂
TypeError: Embed.set_author() missing 1 required keyword-only argument: 'name'
bot error code
siehe timos video dazu
Soll kein Select sein. Soll in einer View abrufbar sein.
ich glaube ich hab was falsch gemacht
das meint er wohl nd
weil ich dumm bin
Ich hab doch gefragt, "meinst du das man den channel auswählen kann" und er hat ja gesagt
ik
ich wollte natürlich tumbnail ._.
Denkst du jemand bekommt Mitleid oder so, wenn du jedes mal sagst "Ich bin dumm"
Nope.
Ich denke, dass das was ich meine eher schwieriger wird und auch die Limits von discord überschreiten wird.
(Ich meinte die SelectMenu's 😅 )
ja, ne haha
ka was genau er meint xD
Dann sag das nd ständig, das sorgt nur dafür das dir keiner mehr helfeen will
Weiß auch nd xD
Ich mache kurz ein Screenshot was ich meine 😄
Also das du beim SelectMenu halt die Channel auswählen kannst?
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...
Richtig.
ok, ich bin schlau
._.
Top, danke euch!
habe ich doch mehrmals gefragt ob du das meinst 😐
Dann hab ich es Falsch verstanden, sorry!
alles gut
jo, das muss ich eher machen
import discord
# Channel selects (dropdowns) are a new type of select menu/dropdown Discord has added so users can select channels from a dropdown.
# Defines a simple View that allows the user to use the Select menu.
# In this view, we define the channel_select with `discord.ui.channel_select`
# Using the decorator automatically sets `select_type` to `discord.ComponentType.channel_select`.
class DropdownView(discord.ui.View):
@discord.ui.channel_select(
placeholder="Select channels...", min_values=1, max_values=3
) # Users can select a maximum of 3 channels in the dropdown
async def channel_select_dropdown(
self, select: discord.ui.Select, interaction: discord.Interaction
) -> None:
await interaction.response.send_message(
f"You selected the following channels:"
+ f", ".join(f"{channel.mention}" for channel in select.values)
)
bot: discord.Bot = discord.Bot(debug_guilds=[...])
@bot.slash_command()
async def channel_select(ctx: discord.ApplicationContext) -> None:
"""Sends a message with our dropdown that contains a channel select."""
# Create the view containing our dropdown
view = DropdownView()
# Sending a message containing our View
await ctx.respond("Select channels:", view=view)
@bot.event
async def on_ready() -> None:
print(f"Logged in as {bot.user} (ID: {bot.user.id})")
print("------")
bot.run("TOKEN")
@blissful vale
Schaue mir gerade das Tutorial von Timo an 🙂
Werde mir dann das raus schreiben, was ich brauche.
Auf jeden fall danke euch! 😄 👍
kd
jo ich hab ne Frage
wie stelle ich ein, dass dem ausgewähltem User diese Rollen gegeben werden?
class Dropdown(discord.ui.View):
@discord.ui.role_select(placeholder="Wähle Rollen aus", min_values=1, max_values=5)
async def role_callback(self, select, interaction):
mentions = [f"{roles.mention}" for roles in select.values]
role_list = ", ".join(mentions)
@slash_command()
@commands.has_permissions(manage_roles=True)
async def add_role(self, ctx, user: Option(discord.Member)):
await user.add_roles()
embed3 = discord.Embed(
title=f"{user.name} wurden folgende Rolle erfolgreich gegeben:",
description=f"{role_list}"
)
embed3.set_thumbnail(url=user.display_avatar.url)
await ctx.respond(embed=embed3)
ich verbessere den noch
await user.add_roles(die_rolle)
aber ich möchte das die ausgewählten rollen gegeben werden
ka
...
war in Timos code so
War es definitiv nicht
Abschreiben üben wir dann nochmal
weiß jemand wie man des macht das es beim namen auch nicht über des background geht also das es so wie beim avatar da nicht drüber geht
Und wo siehst du da, dass der Slash Command in der Dropdown Klasse ist?
bro ich meinte den Dropdown
Kannst ja nh balken dahin machen, in der gleichen farbe wie der background
solange es nd die dropbox ist
Ja, aber wieso hast du einen Slash command in der Dropdown View klasse??
keine ahnung
hm ändert es was wenn ich zuerst den banner mache und danach den background yk?
oder ändert des nix
damit die rollen erkannt werden
Weiß ich jetzt nicht, probiers aus
okay danke
import discord
from discord.ext import commands
from discord.commands import slash_command
class Base(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
@commands.has_permissions(manage_roles=True)
async def add_role(self, ctx, user: Option(discord.Member)):
await ctx.respond(view=Dropdown())
def setup(bot):
bot.add_cog(Base(bot))
class Dropdown(discord.ui.View):
@discord.ui.role_select(placeholder="Wähle Rollen aus", min_values=1, max_values=3)
async def role_callback(self, select, interaction):
for role in select.values:
await interaction.user.add_roles(role)
await interaction.response.send_message(f"Rollen hinzugefügt")
@raven lotus
ok
Solltest mehr Doc's lesen und mehr googlen
ok
Ich mach das über's handy ._.
Ich hätte nochmal eine Frage dazu 🙂
Ich arbeite mit Discord.py, weshalb die Funktionsnamen etwas unterschiedlich sind. Ich erhalte einen Type error: TypeError: 'ChannelSelect' object is not callable. Mir ist bewusst, was der Fehler aussagt, allerdings bringen mir wieder einmal die Wunderbaren Discord.py Docs absolut nichts 😉
discord.py -> Ich mag dich :D
Wait, ich schick den Code Abschnitt von meinem Bot
Okay danke dir. Ich schau mal ob ich da was entnehmen kann 🙂
Das freut mich ^^
Einmal als View klasse, und bei der View klasse wird die ChannelSelect klasse als item geaddet
Hab da auch Kommentare hinterlassen
wie kann ich im code einstellen, dass der User im Embed als Tumbnail und als Name hinzugefügt wird?
also das der Name und sein Avatar als Tumbnail ist
sein name nicht
name soll als Titel sein
Ah, ich verstehe, dass wird auch mein Fehler sein...
Ich habe versucht das ChannelSelect Objekt direkt in der View Classe aufzurufen. Ich probiere es einmal aus. Vielen Dank dir!
embed.set_thumbnail(url=user.display_avatar.url)
embed.set_author(name=user.display_name)
Hab ich anfangs auch so gemacht haha
Hab dann bisschen rumprobiert und die Lösung gefunden
hm?
Ja beim embed halt
Aber schade, dass das in den Docs nicht so richtig Dokumentiert wurde :/
jo
Muss man halt bisschen rumprobieren
Jap.
wie stelle ich ein, dass man nicht Leute über seiner Rolle bannen kann und auch das mit dem Rollen auswählen?
Versuch doch mal eine sache selber herauszufinden
Statt hier nh antwort zu erwarten, so lernst du ja nix
oki
Was denkst du wie es die ganzen Beruflichen Programmierer machen?
jajaja
Nix jajaja
ok
Entweder du willst richtig programmieren oder du solltest es lassen (Is meine Meinung dazu)
ich will richtig programmieren
Dann nicht immer direkt hier fragen, sondern Googlen, Lesen, Videos schauen
ok
Ich hab mit python damals angefangen, indem ich mir das Buch bestellt hab
Glauben sie diese Geschichte ist wahr?
Hat meine Schwester dann aber irgendwann als Malbuch benutzt
Ja, ich weiß es sogar 
Müsste mal gucken ob ich den noch irgendwo rumliegen hab
wie kann man schneller nach links rücken? also einen ganzen command z.B.
In vsc: Markieren -> Strg + Tab
ok
@solid ingot ?
thx
ich auch… hab det immernoch
sry4ping
isses schon beantwortet?
ne
discord.Role
discord.Role.color
discord.Role.colour
discord.Role.created_at
discord.Role.delete
discord.Role.edit
discord.Role.guild
discord.Role.hoist
discord.Role.icon
discord.Role.id
discord.Role.is_assignable
discord.Role.is_bot_managed
discord.Role.is_default
discord.Role.is_integration
discord.Role.is_premium_subscriber
discord.Role.managed
discord.Role.members
discord.Role.mention
discord.Role.mentionable
discord.Role.name
ich mache gerade ein code, der net macht was er soll
Die musste vergleichen

