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

Сделать бота для дискорда и подключить к нему бд

27.10.2023, 18:10. Показов 736. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста! Нам нужно по заданию сделать бота для дискорда и подключить к нему бд.

вот код:

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import discord
import sqlite3
from discord import app_commands
from discord.ui import Button, View
 
 
class aclient(discord.Client):
    def __init__(self):
        super().__init__(intents=discord.Intents.default())
        self.synced = False
 
    async def on_ready(self):
        await self.wait_until_ready()
        if not self.synced:
            await tree.sync(guild=discord.Object(id=1095707448813306006))
            self.synced = True
        print(f"We have logged in as {self.user}.")
 
    async def on_voice_state_update(self, member, before, after):
        if after.channel:  # Пользователь присоединился к голосовому каналу
            save_points(member.id, 1)  # Увеличить баллы пользователя на 1
 
    async def on_message(self, message):
        if not message.author.bot:  # Игнорировать сообщения от ботов
            save_points(message.author.id, 1)  # Увеличить баллы пользователя на 1
 
 
def save_points(user_id: int, points: int):
    connection = sqlite3.connect('my_database.db')
    cursor = connection.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS points (user_id INTEGER PRIMARY KEY, points INTEGER)")
    cursor.execute("INSERT INTO points (user_id, points) VALUES (?, ?) ON CONFLICT(user_id) DO UPDATE SET points = points + excluded.points", (user_id, points))
    connection.commit()
    cursor.close()
    connection.close()
 
 
class SukaButton(discord.ui.Button):
    def __init__(self, interaction, user_id):
        super().__init__(style=discord.ButtonStyle.primary, label="Suka")
        self.interaction = interaction
        self.user_id = user_id
 
    async def callback(self, interaction: discord.Interaction):
        user_id = self.user_id
 
        connection = sqlite3.connect('my_database.db')
        cursor = connection.cursor()
        cursor.execute("SELECT points FROM points WHERE user_id = ?", (user_id,))
        result = cursor.fetchone()
        if result is not None:
            points = result[0]
            await interaction.user.send(f"У вас {points} баллов!")
        else:
            await interaction.user.send("У вас нет баллов.")
 
        cursor.close()
        connection.close()
 
 
client = aclient()
tree = app_commands.CommandTree(client)
 
 
@tree.command(name="test", description="testing", guild=discord.Object(id=1095707448813306006))
async def self(interaction: discord.Interaction, name: str):
    await interaction.response.send_message(f"Hello {name}! I was made with Discord.py!")
 
 
@tree.command(name="suka", description="Показывает количество баллов", guild=discord.Object(id=1095707448813306006))
async def suka(interaction: discord.Interaction):
    user_id = interaction.user.id
 
    view = discord.ui.View()
    view.add_item(SukaButton(interaction, user_id))
 
    await interaction.response.send_message("Нажмите кнопку 'Suka', чтобы узнать количество баллов.", view=view)
 
client.run('')
Вот ошибки:

[2023-10-27 22:00:05] [INFO ] discord.client: logging in using static token
[2023-10-27 22:00:06] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: a47c60a36b207673dffad6c0fbea4c7e).
[2023-10-27 22:00:08] [ERROR ] discord.client: Ignoring exception in on_ready
Traceback (most recent call last):
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "C:\Users\volod\PycharmProjects\pythonPr oject1\main.py", line 15, in on_ready
await tree.sync(guild=discord.Object(id=109570 7448813306006))
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\app_commands\tree.py", line 1069, in sync
data = await self._http.bulk_upsert_guild_commands(se lf.client.application_id, guild.id, payload=payload)
File "C:\Users\volod\PycharmProjects\pythonPr oject1\venv\lib\site-packages\discord\http.py", line 739, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access


Если ещё можно подскажите как добавить функцию по типу "магазина"
Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2023, 18:10
Ответы с готовыми решениями:

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

Как сделать сервер, и к нему подключить мобильное приложение?
Всем привет, мне нужно сделать сервер и к нему подключить мобильное приложение , при помощи каких компонентов можно это сделать и как будет...

Нужно сделать меню и подключить к нему 4 программы с процедурами
Есть 4 программы(если нужно скину), нужно написать меню, в котором с помощью процедур можно будет вызвать любую из этих 4 программ. Скажем...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2023, 18:10
Помогаю со студенческими работами здесь

есть проект на С#(программа для помощи создания школьного расписания), к нему нужно подключить БД
Здравствуйте. У меня такая проблема: есть проект на С#(программа для помощи создания школьного расписания), к нему нужно подключить БД. ...

Для ТГ бота нужно сделать вызывающийся список дат , чтобы юзер по команде получал список дат с мероприятиями у бота
Для ТГ бота нужно сделать вызывающийся список дат , чтобы юзер по команде получал список дат с мероприятиями у бота, как это реализовать?...

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

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

Сделать бота для ставок
Всем привет. Мне нужно сделать бота для ставок на настольный теннис ( нужно, чтоб он сигнализировал об определенных результатах партий)....


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

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

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru