0 / 0 / 0
Регистрация: 20.07.2021
Сообщений: 16
Discord Bot

Бот дискорда не выводит текст команды

10.10.2021, 19:22. Показов 3042. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал бота для развлекухи, создан для виртуальной валюты дискорд сервера, что бы участникам не было скучно...
Он работает вроде как, в дискорде в сети, показывает статус из кода, но получилось так, что он не выводит текст при вводе команды !card и всех её альтернатив, код предоставлен ниже.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import discord
from discord.ext import commands
import sqlite3
from config import settings
from asyncio import sleep
 
client = commands.Bot(command_prefix = settings['PREFIX'], intents = discord.Intents.all())
client.remove_command('help')
 
connection = sqlite3.connect('server.db')
cursor = connection.cursor()
 
@client.event
async def on_ready():
    cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        name TEXT,
        id INT,
        cash BIGINT,
        rep INT,
        lvl BIGINT,
        server_id INT
    )""")
    print('+-----------------------+')
    print('|   bot ready for work  |')
    print('|   dev by qoooki       |')
    print('|   fixes by oxxxf0rd   |')
    print('|      ver. 1.0         |')
    print('+-----------------------+')
    while True:
        await client.change_presence(status=discord.Status.online, activity=discord.Game("!help | Справка"))
        await sleep(15)
        await client.change_presence(status=discord.Status.online,activity=discord.Game("qoooki & ox"))
        await sleep(15)
 
 
 
@client.event
async def on_member_join(member):
    if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:
        cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 0, 0, 0, {member.guild.id})")
        connection.commit()
    else:
        pass
 
@commands.has_any_role(889434565184221205)
@client.command(aliases = ['stats', 'stat', 'balance', 'bal', 'rp', 'roleplay', 'pass', 'card'])
@commands.cooldown(1, 5, commands.BucketType.user)
async def __roleplay(ctx, member: discord.Member = None):
    if member is None:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  Ваша cтатистика\n\n<:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]}**\n<:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]}**\n<:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]}** ар.""", color=0x1abc9c)) 
    else:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  **{member}** cтатистика\n\n<:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n<:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n<:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]}** ар.""", color=0x1abc9c))
 
client.run(settings['TOKEN'])
Если что, токен в файле, в папке вместе с ботом.
Скрин базы данных тоже есть, надо сделать так, что бы при вводе команды !card и всех её альтернатив выводился текст со статистикой участника, и что бы значения в статистике были взяты из базы данных.
ПОЖАЛУЙСТА, помогите, очень долго ломаю голову...
Миниатюры
Бот дискорда не выводит текст команды  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2021, 19:22
Ответы с готовыми решениями:

Бот для дискорда на питоне
Добрый день и всех с наступающим! Немного начала разбираться с написание бота для дискорда, написал и запустил. Этого было мало и я...

Когда я пишу в консоль, бот должен выводил это в чат дискорда
Помогите сделать так, чтобы когда я писал в консоль бот выводил это в чат дискорда. import discord class...

Бот для дискорда
Здраствуйте. Задача сделать бота для дискорда. Подскажите хотя бы библиотеку.

1
16 / 10 / 6
Регистрация: 15.08.2021
Сообщений: 60
10.10.2021, 23:30
Лучший ответ Сообщение было отмечено MaksymTer как решение

Решение

Попробовал запустить вашего бота, но пед этим решил кое что подправить
1.Убрал from config import settings (4 строка) и всё с этим связанное.

2. хз что такое intents = discord.Intents.all() (7 строка), но у меня с этим вообще бот не запускается!

3. Решил не удалять строку client.remove_command('help') (8 строка).
Позволяет увидеть доступные команды у бота

4. Не знаю к какой роли принадлежат цифры @commands.has_any_role(88943456518422120 5) (45 строка), но буду рад узнать. Решил взять свою роль @commands.has_any_role("wc").
Если вам эта роль не присвоена, то и команда не будет срабатывать

5.Можно сделать строки 51 и 54 более читабельными.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@commands.has_any_role("wc")
@client.command(aliases = ['stats', 'stat', 'balance', 'bal', 'rp', 'roleplay', 'pass', 'card'])
@commands.cooldown(1, 5, commands.BucketType.user)
async def __roleplay(ctx, member: discord.Member = None):
    if member is None:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  Ваша cтатистика\n\n
                                <:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = 1111").fetchone()[0]}**\n
                                <:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = 1111").fetchone()[0]}**\n
                                <:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = 1111").fetchone()[0]}** ар.""", color=0x1abc9c))
    else:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  **{member}** cтатистика\n\n
                                <:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n
                                <:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n
                                <:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]}** ар.""", color=0x1abc9c))
6. В БД добавил свои данные и обращался к ним напрямую.


7. Возможно .format(ctx.author.id) не будет работать. (не проверял и не знаю)

8. Возможно значение id пользователя в дискорд слишком большое для sqlite3

Весь мой код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import discord
from discord.ext import commands
import sqlite3
from asyncio import sleep
 
client = commands.Bot(command_prefix = "^^", intents = discord.Intents.all())
 
connection = sqlite3.connect('server.db')
cursor = connection.cursor()
 
@client.event
async def on_ready():
    cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        name TEXT,
        id INT,
        cash BIGINT,
        rep INT,
        lvl BIGINT,
        server_id INT
    )""")
    print('+-----------------------+')
    print('|   bot ready for work  |')
    print('|   dev by qoooki       |')
    print('|   fixes by oxxxf0rd   |')
    print('|      ver. 1.0         |')
    print('+-----------------------+')
    while True:
        await client.change_presence(status=discord.Status.online, activity=discord.Game("!help | Справка"))
        await sleep(15)
        await client.change_presence(status=discord.Status.online,activity=discord.Game("qoooki & ox"))
        await sleep(15)
 
 
 
@client.event
async def on_member_join(member):
    if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:
        cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 0, 0, 0, {member.guild.id})")
        connection.commit()
    else:
        pass
 
@commands.has_any_role("wc")
@client.command(aliases = ['stats', 'stat', 'balance', 'bal', 'rp', 'roleplay', 'pass', 'card'])
@commands.cooldown(1, 5, commands.BucketType.user)
async def __roleplay(ctx, member: discord.Member = None):
    if member is None:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  Ваша cтатистика\n\n
                                <:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = 1111").fetchone()[0]}**\n
                                <:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = 1111").fetchone()[0]}**\n
                                <:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = 1111").fetchone()[0]}** ар.""", color=0x1abc9c))
    else:
        await ctx.send(embed = discord.Embed(
            description = f"""<:papers:879334221297090590>  **{member}** cтатистика\n\n
                                <:RPcoins:879335435900440587> РП очки **{cursor.execute("SELECT cash FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n
                                <:golden_cup:879333232758382652> Репутация: **{cursor.execute("SELECT rep FROM users WHERE id = {}".format(member.id)).fetchone()[0]}**\n
                                <:money:879345981206953996> Банковский баланс: **{cursor.execute("SELECT lvl FROM users WHERE id = {}".format(member.id)).fetchone()[0]}** ар.""", color=0x1abc9c))
        
client.run('ТУТ БЫЛ ТОКЕН')
БОТ РАБОТАЕТ

ВНИМАНИЕ!
НЕ ФАКТ ЧТО ВЕСЬ!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2021, 23:30
Помогаю со студенческими работами здесь

Бот который записывает все сообщения с канала в группе дискорда, изменяет их, и отправляет обратно
Как сделать запись всех сообщений в файл, изменение только определенной части сообщений (к примеру все числа разделить на 2, не затронув...

Пишу простого бота для дискорда, но при использовании команды выдаёт ошибку
Пишу простого бота, для того, чтобы просто проверить как он отвечает на команды. При запуске все хорошо import discord from discord.ext...

Не выводит текст с использованием условия if-else и команды print
Как вывести? print('Нагрузка которая действует вниз пишется со знаком МИНУС') L=float(input('Длинна балки:')) ...

Дискорд бот: кликабельные команды
Как выводить кликабельные команды? mess.channel.send('Пример_команды - нажмите на команду')

Discord Бот игнорирует команды
Добрый день, я хочу написать бота для сервера кое-какого. Но когда я ввожу команды на сервере, бот ничего не делает. Код Program.cs: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru