Wolf_Yout
@Wolf_Yout

Как создать несколько команд?

Не понимаю, как сделать несколько команд моему боту:

import discord
import asyncio
from asyncio import sleep

client = discord.Client()

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

@client.event
async def on_ready():
     while True:
          await client.change_presence(status=discord.Status.online, activity=discord.Game("$help"))
          await sleep(5)
          await client.change_presence(status=discord.Status.online,activity=discord.Game(f'{len(client.guilds)} серверов.'))
          await sleep(5)

@client.event
async def on_message(message):
    embed = (discord.Embed(title='Страница хелп!',description='$help - Увидеть этот список'))
    if message.content.startswith('$help'):
        await message.reply(embed = embed)

client.run('ODc0MzkxMzQ4NDQ5NTM4MTI4.YRGSZg.lL7DwCEfbtb3BbXH8GGiwWvXssc')

И после того как я создал ещё одну команду:

import discord
import asyncio
from asyncio import sleep

client = discord.Client()

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

@client.event
async def on_ready():
     while True:
          await client.change_presence(status=discord.Status.online, activity=discord.Game("$help"))
          await sleep(5)
          await client.change_presence(status=discord.Status.online,activity=discord.Game(f'{len(client.guilds)} серверов.'))
          await sleep(5)

@client.event
async def on_message(message):
    embed = (discord.Embed(title='Страница хелп!',description='$hello - Заставить бота сказать вам привет!\n$help - Увидеть этот список'))
    if message.content.startswith('$help'):
        await message.reply(embed = embed)

@client.event
async def on_message(message):
    embed = (discord.Embed(title='инфо',description='Я ТОКСИК!'))
    if message.content.startswith('$toxic'):
        await message.reply(embed = embed)

client.run('ODc0MzkxMzQ4NDQ5NTM4MTI4.YRGSZg.lL7DwCEfbtb3BbXH8GGiwWvXssc')

Команда $help Перестала работать.
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
@UberPool
Python/JS coder
Используй декоратор client.command()
Пример команды:
@client.command()
async def send_text(ctx):
     await ctx.send('test')
     #...more
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Vindicar
@Vindicar
RTFM!
Потому что делаешь через задницу. Вместо того чтобы использовать существующий механизм команд, ставишь реакцию на любое сообщение и пытаешься выдернуть из него текст команды самостоятельно. Собственно, проблема в том, что ты объявил два метода с одним именем. Один из них всегда будет перекрыт другим.
Я так понимаю, Quickstart ты прочитал, молодец. А как насчет почитать дальше?
Ответ написан
@saico
Используй @client.command()
Ответ написан
@Bot-Developer
Начинающий разработчик ботов
Используй @client.command()
Код:
import discord
from discord.ext import commands
import asyncio
from asyncio import sleep

client = discord.Client()

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

@client.event
async def on_ready():
     while True:
          await client.change_presence(status=discord.Status.online, activity=discord.Game("$help"))
          await sleep(5)
          await client.change_presence(status=discord.Status.online,activity=discord.Game(f'{len(client.guilds)} серверов.'))
          await sleep(5)

@client.command()
async def help (ctx):
    embed = (discord.Embed(title='Страница хелп!',description='$hello - Заставить бота сказать вам привет!\n$help - Увидеть этот список'))
    await ctx.reply(embed = embed)

@client.command()
async def toxic (ctx):
    embed = (discord.Embed(title='инфо',description='Я ТОКСИК!'))
    await ctx.reply(embed = embed)

@client.run('Токен бота')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы