N0VA
N0VA

Reputation: 5

How to stop repetitive messages, and the token is changed, but it doesn't run

I started learning python today and made a Discord bot. I have a few problems:

  1. If message.author == was used in the on_message, but the bot continued to reply to itself.
  2. Afterwards, a new bot was created with a new token and the code didn't work.

I searched a lot on this site and Google. I didn't find any solution. It's okay to modify my code. Everything is from the internet, so it can be a mess. Please help me.

import discord
import asyncio
from discord.ext import commands

client = discord.Client()


bot = commands.Bot(command_prefix="!")

@bot.event
async def on_ready():
    print('Loggend in Bot: ', bot.user.name)
    print('Bot id: ', bot.user.id)
    print('connection was succesful!')
    print('=' * 30)


@client.event
async def on_message(message) :
    
    if on_message.content.startswith('!의뢰'):
        msg = on_message.channel.content[3:]
        embed = discord.Embed(title = "브리핑", description = msg, color = 0x62c1cc)
        embed.set_thumbnail(url="https://i.imgur.com/UDJYlV3.png")
        embed.set_footer(text="C0de") 
        await on_message.channel.send("새로운 의뢰가 들어왔습니다", embed=embed)
        await client.process_commands(message)


client.run("My bot's token.")

Upvotes: 0

Views: 43

Answers (1)

RiveN
RiveN

Reputation: 2653

Your code was messy, but it should work now. I included comments to let you know how everything works. I think the good starting point to making your own bot is reading documentation. Especially Quickstart that shows you a simple example with explanation.

Write !example or hello to see how it works.

import discord
import asyncio
from discord.ext import commands

# you created 'client' and 'bot' and used them randomly. Create one and use it for everything:
client = commands.Bot(command_prefix="!") # you can change commands prefix here

@client.event
async def on_ready(): # this will run everytime bot is started
    print('Logged as:', client.user)
    print('ID:', client.user.id)
    print('=' * 30)

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('hello'): # you can change what your bot should react to
        await message.channel.send("Hello! (This is not a command. It will run everytime a user sends a message and it starts with `hello`).")

    await client.process_commands(message)

@client.command()
async def example(ctx): # you can run this command by sending command name and prefix before it, (e.g. !example)
    await ctx.send("Hey! This is an example command.")


client.run("YOUR TOKEN HERE")

Upvotes: 1

Related Questions