#discord-bots

1 messages · Page 634 of 1

slate swan
#

im having massive trouble

#

it doesnt work

#

the button either doesnt shot, or it shows like ((function etc...

#

show*

maiden fable
#

Do view=self

slate swan
#

ight

maiden fable
#

Wait nvm

#

What do u wanna do?

slate swan
#

the message

#

that was sent by clicking on a button

#

to have a button too

maiden fable
#

O

slate swan
#

but the second time its going to send an embed

#

Whats the code to add buttons on the bots status. I forgot lol

maiden fable
#

!d discord.Interaction.original_message

unkempt canyonBOT
#

await original_message()```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Fetches the original interaction response message associated with the interaction.

If the interaction response was [`InteractionResponse.send_message()`](https://discordpy.readthedocs.io/en/master/api.html#discord.InteractionResponse.send_message "discord.InteractionResponse.send_message") then this would return the message that was sent using that response. Otherwise, this would return the message that triggered the interaction.

Repeated calls to this will return a cached value.
maiden fable
slate swan
#

wait

#

let me show u an image

maiden fable
#

Hm?

#

Wait u mean add to server button?

slate swan
slate swan
#

this button. whats the code to add it

maiden fable
hollow agate
#
class PersistentViewBot(slash_util.Bot):
    def __init__(self):
        super().__init__(command_prefix=commands.when_mentioned_or('.'), owner_id=503641822141349888, intents=intents)
        self.persistent_views_added = False

    async def on_ready(self):
        if not self.persistent_views_added:
            self.add_view(PersistentView())
            self.persistent_views_added = True
            activity = discord.Game(name="fc.coolmcgames.xyz", type=3)
            await self.change_presence(status=discord.Status.online,
                                        activity=activity)

        print(f'Signed in as {self.user}')

bot = PersistentViewBot()

class SlashCog(slash_util.ApplicationCog):
    def __init__(self, bot):
        super().__init__(bot)
        self.bot = bot

    @slash_util.slash_command(guild_id=774501063557382155)
    async def hello(self, ctx):
        await ctx.send('hi')

bot.add_cog(SlashCog(bot))```  Anyone know why the slash command doesn't appear?
slate swan
# maiden fable Well, sorry bruv. I never used nextcord

Traceback (most recent call last):
File "C:\Users\Windows\AppData\Local\Programs\Python\Python39\lib\site-packages\nextcord\ui\view.py", line 359, in _scheduled_task
await item.callback(interaction)
File "c:\Users\Windows\OneDrive\Desktop\Bot\cogs\mainhelp.py", line 35, in helpb
view = Sbdrugs()
TypeError: Sbdrugs() missing 1 required positional argument: 'ctx'

#

basically the same tbh

sage otter
#

You go to the dev portal and add it.

slate swan
#

where

#

in dev portal

maiden fable
slate swan
#

@maiden fable

sage otter
#

oAuth

slate swan
#

and where after

maiden fable
maiden fable
maiden fable
#

General

slate swan
maiden fable
#

Yea

slate swan
#

where do I press

maiden fable
#

None

slate swan
#

is there any way the bot can somehow save the transcript of the dms and send it? or is that not possible?

maiden fable
#

At the bottom

slate swan
#

custom url?

maiden fable
maiden fable
unkempt canyonBOT
#

async for ... in history(*, limit=100, before=None, after=None, around=None, oldest_first=None)```
Returns an [`AsyncIterator`](https://discordpy.readthedocs.io/en/master/api.html#discord.AsyncIterator "discord.AsyncIterator") that enables receiving the destination’s message history.

You must have [`read_message_history`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.read_message_history "discord.Permissions.read_message_history") permissions to use this.

Examples

Usage...
slate swan
#

in app authorization?

quick gust
#

set it to the in app auth so that people can invite the bot without leaving discord

maiden fable
slate swan
maiden fable
slate swan
maiden fable
unkempt canyonBOT
#

property dm_channel: Optional[DMChannel]```
Returns the channel associated with this user if it exists.

If this returns `None`, you can create a DM channel by calling the [`create_dm()`](https://discordpy.readthedocs.io/en/master/api.html#discord.User.create_dm "discord.User.create_dm") coroutine function.
maiden fable
#

So this

slate swan
#

umhmm

#

so how does this work? Does it send back a transcript of the conversation it had w the person?

maiden fable
#

U can do,

async for msg in user.dm_channel.history(...):
    print(msg) 
#

Now it's a for loop and the list it's looping is the list of messages in the DM

slate swan
#

oh, so the entire thing will have to go in the for loop?

maiden fable
#

Wym

slate swan
#

I'll show you my code

maiden fable
#

I edited the above code, @slate swan try running that once. It will print every messages in that channel

slate swan
#

pretty long lol

#

in short, its basically a help bot that dms you if your message anywhere includes 'help' or 'staff'

#

like automated bestbuy or amazon customer service bot

#

@maiden fable im still typing the elif statements if the user replies with 'yes'

slate swan
#

@maiden fable ?

#

use a pastebin please

#

!paste

unkempt canyonBOT
#

Pasting large amounts of code

If your code is too long to fit in a codeblock in discord, you can paste your code here:
https://paste.pythondiscord.com/

After pasting your code, save it by clicking the floppy disk icon in the top right, or by typing ctrl + S. After doing that, the URL should change. Copy the URL and post it here so others can see it.

slate swan
#

no problem

#

Can someone tell me how i can possibly get the transcript of the dms the bot has with people?

#

?rtfm channel.history

#

!d discord.User.dm_channel

unkempt canyonBOT
#

property dm_channel: Optional[DMChannel]```
Returns the channel associated with this user if it exists.

If this returns `None`, you can create a DM channel by calling the [`create_dm()`](https://discordpy.readthedocs.io/en/master/api.html#discord.User.create_dm "discord.User.create_dm") coroutine function.
slate swan
#

someone gave me this

#

thanks brother

#

read up

slate swan
#

or would it give both bot and the user in the dms?

#

both

#

perfect, I'll read it thanks

#

just remove this check ya? if message.author == client.user:

slate swan
#

ok thanks

tiny ibex
#

Is it possible to get the banner of the user??

slate swan
#

Eyyo help me

#

if ctx.reference is not None:
print()

#

When someone replied to anyone's msgs it prints but I only want someone to reply to my bot,then it will print

silver wolf
#

U have to use a fork that has implemented it

slate swan
#

Wow,I'm sure he has solved it

#

Now help me please

tiny ibex
tiny ibex
slate swan
#

Oh

silver wolf
slate swan
#

Wow what a cool name

tiny ibex
#

And pycord still have bugs in their Slash branch

#

I am using disnake rn

silver wolf
#

And double check disnake docs, they might have it

tiny ibex
slate swan
#

And they lived happily ever after.

#

if ctx.reference is not None:
print()
When someone replied to anyone's msgs it prints but I only want someone to reply to my bot,then it will print
How do I do it?

wild oak
#

thats so cool

slate swan
#

Would the if statements inside the yes if statement work?

#

why is :

#

not working?

#

what's the dm variable?

#

alright

solemn citrus
#

uh why?

arctic gyro
#

bot = commands.Bot(command_prefix = ';')

from discord.ext import commands

@bot.command()
async def clear(ctx, amount):
await ctx.channel.purge(limit=int(amount)+1)

Can anybody tell me if somethinge's wrong with this code cuz my bot aint deleting a message..

slate swan
#

did you Add a Bot from the bot option?

solemn citrus
#

yes

slate swan
arctic gyro
#

it aint deleting the message idk why

slate swan
slate swan
arctic gyro
#

nope

#

ill send the full code

reef shell
arctic gyro
#

import discord
import random
from keep_alive import keep_alive
client = discord.Client()

@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
mention = f'<@!{client.user.id}>'
if mention in message.content:
await message.channel.send("Hey There! I am made by BeeJar. If you need support please contact BeeJar")

bot = commands.Bot(command_prefix = ';')

from discord.ext import commands

@bot.command()
async def clear(ctx, amount):
await ctx.channel.purge(limit=int(amount)+1)
keep_alive()
client.run(TOKEN)

reef shell
#

then check the console

slate swan
#

add await bot.process_commands(message) at the end of your on_message event

solemn citrus
#

thanks fixed it!

reef shell
#

await bot.process_commands(message)

sullen ermine
#

how to make a discord bot 24/7 ?

slate swan
reef shell
slate swan
#

or selfhost it yourself

reef shell
sullen ermine
arctic gyro
reef shell
arctic gyro
reef shell
#

follow this tutorial

arctic gyro
sullen ermine
#

ok.

slate swan
slate swan
arctic gyro
slate swan
#

and at last , replace client.run with bot.run

reef shell
#

freecodecamp and lucas and any other yt tutorials are extremely horrible or outdated

#

it's better if you don't follow them

slate swan
#

especially ones using .Client 😶

#

hey @slate swan

#
counter = 0
async for message in dm.history():
    if message.author == client.user:
        counter += 1
messages = await dm.history().flatten()
#send history in channel?
slate swan
#

And there isn't enough info on the internet either surprisingly

slate swan
brave flint
#

Can anyone tell me the docs?

slate swan
#

I haven't even tried yet, I'm still trying to understand how this works

#

So does this make a for loop and goes through every message?

slate swan
slate swan
slate swan
#

if ctx.reference is not None:
print()
When someone replied to anyone's msgs it prints but I only want someone to reply to my bot,then it will print
How do I do it?

solemn citrus
#

why is this 😭

slate swan
slate swan
slate swan
slate swan
slate swan
solemn citrus
slate swan
solemn citrus
slate swan
slate swan
solemn citrus
slate swan
#

i think i got it

obsidian ledge
#

how do i make my bot ping the user who interacted with a button?

#

or alteast show the user who interacted with it in a footer

slate swan
#

footer?

#

embed footer?

obsidian ledge
#

yep

slate swan
#

im sorry i cant link to the documentation for it, i dont know how the rtfm works here

obsidian ledge
#

alr

unkempt canyonBOT
#

set_footer(*, text=Embed.Empty, icon_url=Embed.Empty)```
Sets the footer for the embed content.

This function returns the class instance to allow for fluent-style chaining.
reef shell
#

set_author*

slate swan
#

i never remember the capitals properly blobpain

#

they are the class names~

wary ice
#

good evening the code what sends you your image image how is the code?

dusk pumice
#

?

visual island
#

!d discord.Embed.set_author

unkempt canyonBOT
#

set_author(*, name, url=Embed.Empty, icon_url=Embed.Empty)```
Sets the author for the embed content.

This function returns the class instance to allow for fluent-style chaining.
graceful mulch
#

hello

wary ice
#

prob why ?

graceful mulch
#

before name

#

and name shouldnt be empty

wary ice
#

now 4 prob del comma

graceful mulch
wary ice
graceful mulch
#

like

wary ice
#

that in the settings what is meant

graceful mulch
#
embed=discord.Embed(title="Blah",description="Lorem Ipsum")
embed.set_author(name="blah")
graceful mulch
quick gust
# wary ice

why are u copying the whole thing? That's not how it's supposed to be....

velvet tinsel
#

Hello

velvet tinsel
#

can you do a set_author()? sweet

#

😭

obsidian ledge
#

how do i make the bot like count how many times this user has pressed the button each time the button gets sent??

like if the button has been sent 5 times and this user has pressed it 3 times and the other use has pressed it 2 times, do how i make that?

slate swan
#

Whats that error

dusky pine
#

Show us your code

slate swan
dusky pine
#

Unindent that line

slate swan
dusky pine
#

Remove the extra 4 spaces before that line

slate swan
#

Indent *

dusky pine
#

screenshot the error again

slate swan
dusky pine
#

Unindent again

slate swan
#

Means?

slate swan
dusky pine
#

Again

slate swan
slate swan
dusky pine
#

bruh

#

Indent lines 63 and 64

slate swan
#

Outsite function

dusky pine
#

You didn't indent line 64

slate swan
dusky pine
#

Put 4 spaces before line 64

slate swan
dusky pine
#

what the fuck

slate swan
#

4 spaces

#

Before line 64

dusky pine
#

atp just invite me to your repl

slate swan
dusky pine
#

ok

solemn citrus
wary ice
#
At line:1 char:6
+  c:; cd 'c:\Users\user\OneDrive\πολογιστής\Bots'; & 'C:\Users\user\Ap ...
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\user\OneDrive\πολογιστής\Bots:String) [Set-Location], ItemNotFoundException       
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
 
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "c:\Users\user\.vscode\extensions\ms-python.python-2021.11.1422169775\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
    cli.main()
  File "c:\Users\user\.vscode\extensions\ms-python.python-2021.11.1422169775\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
    run()
  File "c:\Users\user\.vscode\extensions\ms-python.python-2021.11.1422169775\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
    runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 268, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 237, in _get_code_from_file
    with io.open_code(decoded_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'c:\\Users\\user\\OneDrive\\πολογιστής\\Bots\\main.py'
PS C:\Users\user\OneDrive\Υπολογιστής\Bots> ``` error
slate swan
#

How to make buttons help menu in py ?? Source code ??

wary ice
vague grove
#

so, I currently have code to get all pins in a channel and repost + pin in another location for a coming server move

discord.py grabs pins from NEWEST to OLDEST, can i make it oldest to newest?

code here:

@client.command()
async def pins(ctx):
    pins = await ctx.channel.pins()
    await ctx.channel.purge(limit=1)
    print(pins)
    channel = client.get_channel(876290314036461569)
    y = 0
    for rePin in pins:
        y +=1
        if y == 5:
            break
        mat = rePin.attachments
        if len(mat) == 0:
            message = await channel.send(rePin.content)
            await message.pin()
        else:
            message = await channel.send(mat[0].url)
            await message.pin()
#

I thought to make it all into a list and reverse it, but im not sure how to do that.

slate swan
#

Why client.get_guild returning none??

hollow agate
#

So, I have a cog folder with a file named slash.py and outside of that folder I have two files. One named main.py that handles most of my stuff and slash_utils.py that is for slash commands. How would I import the slash_utils.py folder to my slash.py cog file?

sage otter
slate swan
tawdry perch
sage otter
sage otter
upbeat otter
#

Guys, is there a way to read messages in a text channel and get their authors?

keen talon
sage otter
#

Yes

#

Channel.history()

#

!d discord.TextChannel.history

unkempt canyonBOT
#

async for ... in history(*, limit=100, before=None, after=None, around=None, oldest_first=None)```
Returns an [`AsyncIterator`](https://discordpy.readthedocs.io/en/master/api.html#discord.AsyncIterator "discord.AsyncIterator") that enables receiving the destination’s message history.

You must have [`read_message_history`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.read_message_history "discord.Permissions.read_message_history") permissions to use this.

Examples

Usage...
keen talon
vague grove
keen talon
sage otter
#

Once you iterate over that you’ll get message objects. Which you can of course use the .author attr.

sage otter
keen talon
#

Or they can use discord.utils.get

tawdry perch
#

I use purge so some snipe commannds can't get the message content thing

tawdry perch
#

Normally when you delete message and someone wants to find out what you deleted, purge somehow works so they can't view it

sage otter
#

Message.pins() returns a list of message objects

#

and reverse it with pythons reverse function.

keen talon
#

Function 👀

slate swan
tawdry perch
#

Nope

sage otter
velvet tinsel
#

Hi @sage otter @tawdry perch @slate swan

tawdry perch
#

Hello 👋

velvet tinsel
#

Hai

#

😄

tawdry perch
velvet tinsel
velvet tinsel
tawdry perch
#

Json 😮‍💨

cedar stream
#

Well, you have channel with that id only in one guild

slate swan
#

@slate swan

sage otter
#

Too many people use json for things it’s not meant to be used for.

tawdry perch
#

Sadly

slate swan
#
channel = client.get_channel(914409887948222494)
            messages = await dm.history().flatten()

            with open(f'{channel}_messages.txt', 'a+', encoding='utf-8') as f:
                print(f"\nTranscript Saved.\n\n", file=f)
                for message in messages:
                    embed = ""
                    if len(message.embeds) != 0:
                        embed = message.embeds[0].description
                        print(f"{message.author.name} - {embed}", file=f)
                    print(f"{message.author.name} - {message.content}", file=f)
            await channel.send(f"{message.author.mention}, Transcript saved.")
            history = discord.File(fp=f'{channel}_messages.txt', filename=None)
            await channel.send(file=history)
#

does anyone know why this saves a copy of the transcript on my computer as well?

velvet tinsel
#

Goddammit tylerr
I can exploit json however I like

slate swan
velvet tinsel
slate swan
#
channel = client.get_channel(914409887948222494)
            messages = await dm.history().flatten()

            with open(f'{channel}_messages.txt', 'a+', encoding='utf-8') as f:
                print(f"\nTranscript Saved.\n\n", file=f)
                for message in messages:
                    embed = ""
                    if len(message.embeds) != 0:
                        embed = message.embeds[0].description
                        print(f"{message.author.name} - {embed}", file=f)
                    print(f"{message.author.name} - {message.content}", file=f)
            await channel.send(f"{message.author.mention}, Transcript saved.")
            history = discord.File(fp=f'{channel}_messages.txt', filename=None)
            await channel.send(file=history)
velvet tinsel
#

I’m in a lesson

#

😫

sage otter
#

What are you even trying to do?

slate swan
#

This basically saves a file on my compuyer first and then exports it from there onto the specific channel. Is there no way to avoid saving it onto my computer?

velvet tinsel
#

I think something is saved

tawdry perch
sage otter
#

saves a computer on my file

slate swan
velvet tinsel
sage otter
slate swan
#

I dont want it to save on my computer, however

#

Just want to directly send it to the channel

sage otter
#

Find a way to format all of those messages into a string.

#

Use io.BytesIO() on the string and make sure the encoding is utf-8

#

This is kinda confusing so I’ll give an example

slate swan
slate swan
# slate swan yes?

i figured it out, but it saves file computer first and then prints it in chat

slate swan
slate swan
# slate swan file is text or image?
channel = client.get_channel(914409887948222494)
            messages = await dm.history().flatten()

            with open(f'{channel}_messages.txt', 'a+', encoding='utf-8') as f:
                print(f"\nTranscript Saved.\n\n", file=f)
                for message in messages:
                    embed = ""
                    if len(message.embeds) != 0:
                        embed = message.embeds[0].description
                        print(f"{message.author.name} - {embed}", file=f)
                    print(f"{message.author.name} - {message.content}", file=f)
            await channel.send(f"{message.author.mention}, Transcript saved.")
            history = discord.File(fp=f'{channel}_messages.txt', filename=None)
            await channel.send(file=history)
sage otter
#

discord.File(io.BytesIO(transcriptstring.encode("utf-8")), "transcript.txt")

slate swan
#

they can just append it to a list (store it in memory) in whatever format they want and send that

sage otter
#

that’s not what he wants….

#

He wants a visible transcript file on discord.

sage otter
slate swan
twin moon
#

users[str(user)]["economy"]["money"] -= amount users[str(member1)]["economy"]["money"] += amount doesent work

cedar stream
#

It’ s hard to read codeblocks on mobile

twin moon
# cedar stream Can usend ss of whole function
@client.command()
@commands.cooldown(1,30,commands.BucketType.user)
async def give(ctx,member:nextcord.Member,amount:str,what:str="money"):
    user = await check_account(ctx,ctx.author)
    member1 = await check_account(ctx,member)
    with open("users.json","r") as f:
        users = json.load(f)
    try:
        amount = int(amount)
        insideuserbank = users[str(user)]["economy"]["money"]
        if amount >= insideuserbank:
            amount = insideuserbank
        if what == "money":
            users[str(user)]["economy"]["money"] -= amount
            users[str(member1)]["economy"]["money"] += amount
        await ctx.send(f"Gave {member1} {amount} {what}")
    except:
        pass```
twin moon
#

no error

cedar stream
#

Take a screen shot of the function in ide and send it here

brisk helm
#

swas tutorials are not good

#

HE use only json

smoky olive
#

How do I access only the text written by a user? I want to save all messages in a text file but this won't save the message itself:

@bot.event
async def on_message(message):
    f = open("d.txt", "w+")
    f.write(str(message))
    f.close()
  await bot.process_commands(message)
twin moon
# cedar stream Take a screen shot of the function in ide and send it here
async def check_user(ctx,user):
    with open("logins.json","r") as f:
        logins = json.load(f)
    if not str(user.id) in logins:
        msg = f"{user.mention} Make an account or log in."
        await ctx.send(msg)
        return 0
    else:
        User = logins[str(user.id)]
        return User

async def check_account(ctx,user):
    with open("logins.json","r") as f:
        logins = json.load(f)
    user = await check_user(ctx,user)
    if user == 0:
        return
    else:
        return user```
cedar stream
#

Print screen

#

Idk how u call it

twin moon
#

why should I?

cedar stream
#

Cus It’ s easier for me to read on mobile

twin moon
cedar stream
#

That doesn’t matter

#

I need it to read the code easier

slate swan
cedar stream
#

Ty

slate swan
smoky olive
#

Could someone help me? I think it's a very basic problem

cedar stream
slate swan
#

which file pd_athonking

cedar stream
cedar stream
slate swan
smoky olive
slate swan
cedar stream
#

@twin moon is ur json a list of dicts?

cedar stream
smoky olive
twin moon
cedar stream
#

U need to do message.content

cedar stream
#

It should be a list of dicts

slate swan
#

Someone help to fix a code??

cedar stream
cedar stream
twin moon
cedar stream
#

It should be [] full of {}

slate swan
cedar stream
#

I’ m on mobile and It’ s easier that way

slate swan
cedar stream
#

Not whole

slate swan
#

Help cmd

cedar stream
#

Is it multi page?

slate swan
smoky olive
#

Unfortunately my code still doesn't work, I don'get why. with !newdate [date] a textfile should be created and every message written in a specific channel should be saved in that text file. It creates the text file but it doesn't save the messages:

bot = Bot("!")
bot.remove_command('help')
global f
global enabled
enabled = 0

@bot.command()
async def newdate(ctx, text):
    global f
    global enabled
    f = open(text + ".txt", "w+")
    enabled = 1
    await ctx.send("New textfile created.")

@bot.event
async def on_message(message):
  global f
  global enabled
  if(enabled == 1):
    f.write(str(message.content))
  await bot.process_commands(message)
cedar stream
slate swan
cedar stream
twin moon
cedar stream
twin moon
cedar stream
#

If you rly insist on using json, that is how It’ s done

sage otter
twin moon
sage otter
#

That’s not what that says in the code block

smoky olive
#

How do I tell

@bot.event
async def on_message(message):

to only listen to a specific channel?

sage otter
#

with open("users.json", "r")

smoky olive
#

👍 thanks mate

cedar stream
#

Np

sage otter
upbeat otter
sage otter
#

on_message() gets fired every time a message is sent anywhere the bot can see.

smoky olive
sage otter
#

You can’t change that

smoky olive
sage otter
cedar stream
sage otter
#

Yeah that’s partly what I said oogh

sage otter
cedar stream
# sage otter .

It took me too long to write, so b4 I was done u alr wrote that 😂

opal skiff
#

how do i send a message with buttons?

lament mesa
#

!d discord.abc.Messageable.send

unkempt canyonBOT
#

await send(content=None, *, tts=None, embed=None, embeds=None, file=None, files=None, stickers=None, delete_after=None, nonce=None, allowed_mentions=None, reference=None, mention_author=None, view=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Sends a message to the destination with the content given.

The content must be a type that can convert to a string through `str(content)`. If the content is set to `None` (the default), then the `embed` parameter must be provided.

To upload a single file, the `file` parameter should be used with a single [`File`](https://discordpy.readthedocs.io/en/master/api.html#discord.File "discord.File") object. To upload multiple files, the `files` parameter should be used with a [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.9)") of [`File`](https://discordpy.readthedocs.io/en/master/api.html#discord.File "discord.File") objects. **Specifying both parameters will lead to an exception**.

To upload a single embed, the `embed` parameter should be used with a single [`Embed`](https://discordpy.readthedocs.io/en/master/api.html#discord.Embed "discord.Embed") object. To upload multiple embeds, the `embeds` parameter should be used with a [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.9)") of [`Embed`](https://discordpy.readthedocs.io/en/master/api.html#discord.Embed "discord.Embed") objects. **Specifying both parameters will lead to an exception**.
lament mesa
#

the view parameter

opal skiff
#

ok

#

how do i define a button?

maiden fable
unkempt canyonBOT
#

class discord.ui.Button(*, style=<ButtonStyle.secondary: 2>, label=None, disabled=False, custom_id=None, url=None, emoji=None, row=None)```
Represents a UI button.

New in version 2.0.
opal skiff
#

ok ty

cedar stream
maiden fable
cedar stream
#

Never noticed

sage otter
#

only on the master branch tho 👌

cedar stream
#

Ohhh

sage otter
#

Not accessible through any of the versions you can get on pip.

opal skiff
#

what is button row?

cedar stream
opal skiff
cedar stream
opal skiff
#

ok ty

cedar stream
#

It’ s probably just which row the button will be

cedar stream
opal skiff
#

await message.channel.send(view=discord.ui.Button(custom_id="testid",row=1)) this doesnt work it tells me module 'discord' has no attribute 'ui'

sage otter
#

And that’s not even how you do it man.

#

Consider looking at these

cedar stream
#

If u want support for components use disnake or master branch of dpy

opal skiff
#

how do i do that?

sage otter
#

switching to fork seems like a drastic measure compared to just using the repos master branch

#

but if he doesn’t have git then that’s whatever then

cedar stream
lament mesa
#

all wrappers use the same api

cedar stream
lament mesa
#

the version might differ

visual island
sage otter
#

Are any of the forms actually keeping up with discords changes?

#

like role icons.

cedar stream
sage otter
#

Those came out after Danny stepped down.

cedar stream
#

Idk, mby they will add em

unkempt canyonBOT
velvet tinsel
#

Hi

cedar stream
#

Hi

sage otter
#

Ayo it does have it.

#

That’s pretty cool.

cedar stream
#

All new stuff?

lament mesa
velvet tinsel
#

What happened to Danny?

cedar stream
velvet tinsel
sage otter
#

He stepped down

#

Fed up with discords shit.

velvet tinsel
#

Oh lmao

slate swan
velvet tinsel
#

Well at least he gave us the privilege of an amazing API

cedar stream
#

Fr, they rly fucking with stuff by adding message content intent

sage otter
#

Revolt already has an open one.

#

However the app itself is in really really early release.

cedar stream
#

The library does have a great api

opal skiff
#

await message.channel.send(view=discord.ui.button(custom_id="testid",row=1)) how do i fix this error discord.errors.InvalidArgument: view parameter must be View not <class 'function'> ?

sage otter
#

Are you reading any of the things we sent you earlier

#

Most notably the examples.

#

Also it’s Button()caps matter

opal skiff
velvet tinsel
#

Hi

opal skiff
#

oh

velvet tinsel
#

How is everyone

sage otter
#

sleepy… 5:30 in the morning and out of all things I could be doing right now I decided to come help in this server

velvet tinsel
#

I woke up at 7 and hopped on my laptop

#

Like I should be doing that

#

It’s 10:34

slate swan
#

Hello guys, why cant i add a button to a message that comes from a button?

velvet tinsel
slate swan
#

how its an error wtf

velvet tinsel
#

And you can just do client.remove_command() instead of making your own help

velvet tinsel
slate swan
#

wjat

velvet tinsel
#

I’m not even going to bother explaining it

#

It’s simple python

slate swan
#

i thgink my python broke

velvet tinsel
slate swan
slate swan
velvet tinsel
velvet tinsel
slate swan
velvet tinsel
#

You mean it doesnt show up?

velvet tinsel
slate swan
#

heres fine

velvet tinsel
#

And your bio is very toxic/rude

#

I mean if they DM spam you I get it

velvet tinsel
#

Show me line…940….

#

On the roll function

slate swan
velvet tinsel
#

I think there is a space behind async

#

Delete the space behind async

#

You’re supposed to use tabs

#

Like this

#

From about here to here

#

the space in between is a tab

#

however this is a normal Space

slate swan
#

theres no space

velvet tinsel
#

#

Show me the entire piece of code

slate swan
velvet tinsel
tidal hawk
# slate swan

is there supposed to be only 2 spaces behind rollmsg?

#

usually there's 4?

velvet tinsel
#

Supposed to be a tab

tidal hawk
#

correct

velvet tinsel
#

I dont think they have a tab on their keyboard

tidal hawk
#

sucks to be them

velvet tinsel
#

😆 correct

#

Cant code without tabs

#

People dont read my name

slate swan
#

bro

velvet tinsel
#

DM_help=False

tidal hawk
#

i wonder what it means

slate swan
#

i legit just entered

velvet tinsel
#

They still DM me

slate swan
#

and i see error

#

like out of nowhere

velvet tinsel
velvet tinsel
#

I guess they cant read or smth

tidal hawk
#

They don't know what bools are

slate swan
#

i think my python broke ig

velvet tinsel
#

No

#

Your python did not break

#

Python ||almost|| never breaks
Not in my experience

slate swan
#

bro there was no error yesterday

#

today it just out of nowhere

#

and i never touched that command

tidal hawk
#

You have to rewrite your code, maybe it works then

slate swan
#

i removed roll

#

now other command has error

tidal hawk
#

what error

velvet tinsel
#

Lmao

#

Imagine not knowing how to code

tidal hawk
#

we all start somewhere xd

velvet tinsel
#

🤷‍♂️

slate swan
opal skiff
#

I still cant figure it out how to use buttons.

slate swan
#

even tho i didnt touched that code

velvet tinsel
velvet tinsel
tidal hawk
velvet tinsel
slate swan
velvet tinsel
#

Well that’s impossible for your code to break

opal skiff
slate swan
velvet tinsel
#

Disnake

velvet tinsel
#

Send code

#

!code

unkempt canyonBOT
#

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

slate swan
#

k fine but its poor quality xdd

@bot.command()
async def roll(ctx, minnumb:int, maxnumb:int):
  rollmsg = random.randint(minnumb, maxnumb)

  if minnumb<0:
        Er1 = discord.Embed(title = "Roll Error", description = f"Amount must be positive!")
        await ctx.reply(embed = Er1)
        return
  if maxnumb<0:
        Er2 = discord.Embed(title = "Roll Error", description = f"Amount must be positive!")
        await ctx.reply(embed = Er2)
        return


  Roll1 = discord.Embed(title = "Rolling.")
  editmsg = await ctx.reply(embed = Roll1)
  await asyncio.sleep(0.75)
  Roll2 = discord.Embed(title = "Rolling..")
  await editmsg.edit(embed = Roll2)
  await asyncio.sleep(0.75)
  Roll3 = discord.Embed(title = "Rolling...")
  await editmsg.edit(embed = Roll3)
  await asyncio.sleep(0.75)
  Roll4 = discord.Embed(title = f"Rolled {rollmsg}")
  await editmsg.edit(embed = Roll4)```
tidal hawk
#

dude still doesn't know how to use ducking tabs

slate swan
#

i legit use tabs

tidal hawk
#

i see half a tab in 3rd row

slate swan
#

wdym

#

its auto indented by the : if im not wrong

#

i press tab and its 2 spaces

velvet tinsel
#

It’s supposed to be 4 I think

slate swan
#

but how tf it can break out of nowhere even tho i didnt touched it

velvet tinsel
#

Or 8

slate swan
velvet tinsel
#

Indent error

#

Is there any more errors?

slate swan
#

you copy pasted it from somewhere?

velvet tinsel
slate swan
#

still error even tho 4 spaces (2 tabs)

#

even if it was your own code.

slate swan
velvet tinsel
#

What does the error say

#

It shouldn’t be a indent error

slate swan
#

SyntaxError: invalid syntax

velvet tinsel
#

Maybe it’s in the wrong place

#

Send the entire piece of code as a screenshot

#

It looks like it’s been indented

slate swan
velvet tinsel
#

Yep

#

You shouldn’t have two tabs

#

😂

slate swan
#

bro

velvet tinsel
#

Problem solved

slate swan
#

alr bet

velvet tinsel
#

*1 tab

slate swan
velvet tinsel
#

slate swan
#

ONLY 1 tab

#

man

velvet tinsel
#

Delete the tab

#

You shouldn’t have two tabs

#

By the looks of it you have two

slate swan
#

950+ lines of code , cogs be like : shipit

velvet tinsel
#

*one

#

My maths

#

I was looking at the code beneath the function

shadow wraith
#

how do i make it so that my command is usable to a specific role

slate swan
unkempt canyonBOT
#

@discord.ext.commands.has_role(item)```
A [`check()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.check "discord.ext.commands.check") that is added that checks if the member invoking the command has the role specified via the name or ID specified.

If a string is specified, you must give the exact name of the role, including caps and spelling.

If an integer is specified, you must give the exact snowflake ID of the role.

If the message is invoked in a private message context then the check will return `False`.

This check raises one of two special exceptions, [`MissingRole`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.MissingRole "discord.ext.commands.MissingRole") if the user is missing a role, or [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage") if it is used in a private message. Both inherit from [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure").

Changed in version 1.1: Raise [`MissingRole`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.MissingRole "discord.ext.commands.MissingRole") or [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage") instead of generic [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure")
shadow wraith
#

yea ok thanks

velvet tinsel
#

Yes

slate swan
#

it can be the role name or the id

velvet tinsel
#

I mean ah ah tabbed it wrong I guess

shadow wraith
slate swan
#

I PRESSED TAB ONCE

velvet tinsel
#

Delete the tab

#

I don’t think you need it

tidal hawk
slate swan
#

: : i am joke to u?

shadow wraith
#

o

velvet tinsel
#

Unless it’s in a class

slate swan
velvet tinsel
#

😂

#

The function shouldn’t be tabbed

velvet tinsel
#

Unless your IDE is weird

shadow wraith
#

well how do i make my event on_message so theres an if message.content but it can only be triggered by a specific role

shadow wraith
#

no it's on_messae

velvet tinsel
#

I’m on a phone 😭

shadow wraith
#

message*

slate swan
#

i rewrited the function and uhh

slate swan
#

still same crap

velvet tinsel
velvet tinsel
shadow wraith
#

oh wait

slate swan
velvet tinsel
#

Delete the tab

#

Behind the function

#

And everything in the function

#

The tab

slate swan
#

the red line keeps moving down until your bot.run , bet

velvet tinsel
#

😭 can you understand

velvet tinsel
#

I can do more productive things

#

Than help a beginner with indent errors

tidal hawk
#

atleast it's entertaining

tawdry perch
#

how can I view audit log with bot, I forgot

velvet tinsel
velvet tinsel
tidal hawk
#

homework @slate swan

slate swan
#

what

#

yall dont understand?

slate swan
unkempt canyonBOT
#

async for ... in audit_logs(*, limit=100, before=None, after=None, oldest_first=None, user=None, action=None)```
Returns an [`AsyncIterator`](https://discordpy.readthedocs.io/en/master/api.html#discord.AsyncIterator "discord.AsyncIterator") that enables receiving the guild’s audit logs.

You must have the [`view_audit_log`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.view_audit_log "discord.Permissions.view_audit_log") permission to use this.

Examples

Getting the first 100 entries:

```py
async for entry in guild.audit_logs(limit=100):
    print(f'{entry.user} did {entry.action} to {entry.target}')
```...
velvet tinsel
#

Yes

#

I do understand

slate swan
#

i said that error came out of nowhere even tho i didnt touched it

velvet tinsel
#

You don’t want to delete the tab behind the function

tawdry perch
slate swan
#

yesterday it was fine but today it doesnt wanna work

velvet tinsel
slate swan
tidal hawk
#

Hahhaa

velvet tinsel
#

Delete the tab

slate swan
#

theres no tab

velvet tinsel
#

Please 😭

velvet tinsel
slate swan
#

ah , ah
you didnt answered if you copy pasted something :)

#

if you just remove it , the code gets fixed

velvet tinsel
#

😭😭please

#

I mean like this is funny af

slate swan
#

or typed

#

whatever

#

LMFAO

velvet tinsel
#

Doesn’t want to delete a tab

#

🤷‍♂️

slate swan
#

theres no freaking tab

#

i checked myself like 10 times

velvet tinsel
#

Space

#

Or whatever there seems to be a space

#

What is that

#

Is there a tab or something

#

😭

slate swan
#

uhh wat

slate swan
velvet tinsel
#

roll invalid now?

slate swan
#

no

#

same error

#

bro i bet my python broke

velvet tinsel
#

No

slate swan
#

whats the parameter for member leave

velvet tinsel
#

Is there tab at rollmsg?

maiden fable
velvet tinsel
slate swan
maiden fable
slate swan
#

ah

velvet tinsel
maiden fable
#

!d discord.on_member_remove

unkempt canyonBOT
#

discord.on_member_join(member)``````py

discord.on_member_remove(member)```
Called when a [`Member`](https://discordpy.readthedocs.io/en/master/api.html#discord.Member "discord.Member") leaves or joins a [`Guild`](https://discordpy.readthedocs.io/en/master/api.html#discord.Guild "discord.Guild").

This requires [`Intents.members`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.members "discord.Intents.members") to be enabled.
slate swan
maiden fable
maiden fable
slate swan
#

us trying to solve the problem :

velvet tinsel
slate swan
#

i am dying from laughing

maiden fable
#

I hope I fixed your Python after it broke? @slate swan

slate swan
#

probs because its updated now

velvet tinsel
#

Haha close bracket go brrrr

maiden fable
unkempt canyonBOT
#
Out of the question.

No documentation found for the requested symbol.

slate swan
#

how i didnt noticed broh

maiden fable
#

Well 🤷‍♂️

slate swan
#

skill issue? well yeah...

velvet tinsel
#

Bruh

#

When I said full code 😭

maiden fable
#

Common mistakes

velvet tinsel
maiden fable
#

😐

velvet tinsel
#

#

Right, moving on…

maiden fable
#

Against this server rules ngl

#

Delete the message lol

velvet tinsel
#

Moving on…

proven ore
velvet tinsel
#

How are you HTH?

maiden fable
#

?

#

O, u talking to me

velvet tinsel
#

Yes

#

How are you?

maiden fable
#

Fine 😶

velvet tinsel
#

If you sat !ot my god I will make you pay

maiden fable
unkempt canyonBOT
slate swan
#

alr thanks for help but it was actually funny xdd

maiden fable
#

(:

velvet tinsel
maiden fable
#

(:

velvet tinsel
#

🤬

#

Hunter..

dire folio
#

So i have a this:

    forward = True
    general_channel = client.get_channel(914302945351311360)
    if message.content.startswith('$uuhc'):
        await message.channel.send('Which scenarios?')
        def check(message:message):
              return message.author == message.author and message.channel == message.channel
        response = await client.wait_for('message', check=check)
        
        try:
              response = await client.wait_for('message', check=check, timeout=90) #90 seconds timeout before the response errors)
        except asyncio.TimeoutError: #captures the error
            await message.channel.send('Oh no! You did not respond in time')
            forward = False

        if response.content == '':
              forward = False
        else:
            scenarios = Convert(response.content)

but it makes me give a response twice for it to work

opal skiff
#
await message.channel.send(embed=discord.Embed(description="test"),view=View().add_item(Button(label="test")))```the bot sends the embed but there isnt a button or an error message
tawdry perch
slate swan
#

hay how to make warn command?

tidal hawk
#

Can the discord bot check, if the message was sent from Mobile or Computer?

slate swan
tidal hawk
#

def is_on_mobile

slate swan
#

hey how to make warn command?

tawdry perch
#

Remove the wait for message from check function

tawdry perch
tidal hawk
slate swan
#

em

slate swan
dire folio
tawdry perch
#

sql is a language to communicate with database

radiant horizon
radiant horizon
dire folio
tidal hawk
#

there's one under def check() and another one in try except block

slate swan
slate swan
tawdry perch
tawdry perch
radiant horizon
slate swan
slate swan
#

a = int
a: int

radiant horizon
#

ok that makes sense now

slate swan
slate swan
#

etd

tawdry perch
#

well... do you know sql at all?

#

if yes, I can easily help you. If no, I can try to find resources for you

rare saddle
slate swan
#

but i just wonna make only warm command thats only warn sameone

tawdry perch
#

what do you want it to do?

#

just say "Warned <user>"?

slate swan
#

+warn @slate swan resson and it says warned user resson

#

but the with mentioned user and with the resson

#

adn the admin or somethhing like that can use the command

tawdry perch
#

start by making a simple command with parameters of ctx, member: discord.Member, *, reason: str

#

then send a message with mention of member & reason

#

and after you done with that ping me, I will be looking for docs to limit the command for admins

slate swan
#

ok

slate swan
#

tho there's no need to typehint to str

tawdry perch
#

I'm just used to it

slate swan
tawdry perch
#

without that I would get confused for no reason

slate swan
#

but witch permenesions i need to add to the code for warn command

#

oh god

tawdry perch
#

you don't usually do that

slate swan
#

kick member or ban member or something like

#

I'd make it based on roles

#

a warn won't kick members

tawdry perch
slate swan
#

maybe if a second warn kicks the member, I'd probably check for kick_members permission

tawdry perch
#

first warn = ban

slate swan
#

wat

tawdry perch
#

nothing

slate swan
#

await self.bot.db.execute("INSERT INTO messages VALUES (%s , %s)",ctx.author.id,message)

#

is it something like that ?

#
    @commands.command(aliases=['store_messages'])
    async def store(self,ctx,message=None):
        if message is None : return await ctx.send('add a message to store')
        await self.bot.db.execute("INSERT INTO messages VALUES (%s , %s)",ctx.author.id,message)
        await ctx.send(f'Done inserting {message} into the database')        ```
tawdry perch
#

seems good to me

slate swan
#

its more related to dpy since i'm using bot.db i've defined it , not sure if this is how it works

tawdry perch
#

me neither, give it a try. The syntax of sql looks good tho

slate swan
#
async def create_db_pool():
    bot.db = await asyncpg.create_pool(database="Test_database", user="postgres", password="password")
bot.loop.run_until_complete(create_db_pool())```
#

Just because you're doing whatever this is inside of a bot does not make it dpy related.
"i have a toaster in my house, do i ask a carpenter how to fix it?" - Laggy

#

oh alright , is it really worth it to hide my db password ?

#

yes

#

fair

#

showing information of databases is bad

#

people could just delete the whole db
yes, nvm

#

huh its not even working ?

tawdry perch
#

add print before doing anything else

slate swan
opal skiff
#

how do i fix my code to display a button? py if message.content == "T!tiktaktoe": await message.channel.send(embed=discord.Embed(description="test"),view=View().add_item(discord.ui.Button(label="test",custom_id="testid")))

tawdry perch
#

oh wait

velvet tinsel
#

My most used word today is “Alexa skip”

#

I swear to god the taste in music of other people

tawdry perch
#

inserts !ot

velvet tinsel
#

😭

#

I mean like you can add music commands ig

#

How long is your code?

tawdry perch
#

whos code?

slate swan
#

it was my sql prob

tawdry perch
#

mayhaps

velvet tinsel
tawdry perch
#

I don't want to count the total of lines

#

but I would guess it's somehwere cloe to 2k lines or smth

#

here are most of commands

supple thorn
#

What does nitro do

tawdry perch
#

👀

supple thorn
tawdry perch
#

just sends a fake nitro gift image

supple thorn
#

Sadge

#

Source

tawdry perch
#

of my bot?

supple thorn
#

No the command

tawdry perch
#

I will maybe find it later

supple thorn
#

Just interested in commands that arent common

#

I keep forgetting to not be bored to make button commands

tawdry perch
velvet tinsel
tawdry perch
#

whhy

velvet tinsel
#

Because yes

tawdry perch
#

sad

velvet tinsel
#

Goddammit cyberweapon just put a buckettype please

tawdry perch
#

no

velvet tinsel
#

But

tawdry perch
#

if it has worked so far, it will work later as well

velvet tinsel
#

💀 ok

tough lance
#

Lmao

tawdry perch
#

it would take me like 15 seconds to find it again

#

way too long

tough lance
#

Indeed

supple thorn
velvet tinsel
opal skiff
#

can someone please give me an code example of how to send an embed with multiple buttons using master branch of discord py

supple thorn
opal skiff
#

yes because i cant get it to work

velvet tinsel
#

Well

#

There is disnake

opal skiff
#

i dont understand how disnake works

velvet tinsel
#

There are docs

#

And tutorials

opal skiff
#

ok

radiant horizon
#

guys

#

wait

#

how do i run a fuction in another function with discord.py

tawdry perch
#

oh

radiant horizon
#

as its not working properly

tawdry perch
upbeat otter
radiant horizon
upbeat otter
radiant horizon
#

ok

#

there is a problem

#

when someone does the command

#

it stores the ID ina a db

upbeat otter
radiant horizon
#

then it also needs to send them a dm

#

but thats not working

upbeat otter
tough lance
radiant horizon
velvet tinsel
radiant horizon
#

im trying it on myself

velvet tinsel
#

I have never tried that

#

Maybe an error would occur

velvet tinsel
#

Nesting functions don’t work I think

upbeat otter
#

you've labeled dmkey as a command using a command decorator

slate swan
velvet tinsel
#

Or maybe it will

velvet tinsel
#

Error handlers

tough lance
#

Will do

velvet tinsel
#

I don’t trust try except anymore

slate swan
velvet tinsel
#

It doesn’t work on discord py for cool down

radiant horizon
velvet tinsel
#

So I have to use an error handler

slate swan
# slate swan k fine but its poor quality <:xdd:744847702399123528> ```py @bot.command() asyn...

dude...

@bot.command() 
async def roll(ctx,mnnumb:int,maxnumb:int):
    rollmsg = random.randint(minnumb, maxnumb)

    if minnumb<0:
        Er1 = discord.Embed(title = "Roll Error", description = f"Amount must be positive!")
        await ctx.reply(embed = Er1)
        return
    if maxnumb<0:
        Er2 = discord.Embed(title = "Roll Error", description = f"Amount must be positive!")
        await ctx.reply(embed = Er2)
        return


    Roll1 = discord.Embed(title = "Rolling.")
    editmsg = await ctx.reply(embed = Roll1)
    await asyncio.sleep(0.75)
    Roll2 = discord.Embed(title = "Rolling..")
    await editmsg.edit(embed = Roll2)
    await asyncio.sleep(0.75)
    Roll3 = discord.Embed(title = "Rolling...")
    await editmsg.edit(embed = Roll3)
    await asyncio.sleep(0.75)
    Roll4 = discord.Embed(title = f"Rolled {rollmsg}")
    await editmsg.edit(embed = Roll4)
radiant horizon
velvet tinsel
#

Yes?

#

You have to pass an argument

tough lance
radiant horizon
upbeat otter
velvet tinsel
#

I have

velvet tinsel
upbeat otter
velvet tinsel
#

Is what I’m trying to say

radiant horizon