Код, я конечно, взял из интернета, поэтому и туплю по этому поводу.
Бот - экономический. Сама проблема в занесении данных о пользователе(ник, айди и т.д.) в базу данных.
Других ошибок нет - если занести вручную участника, то у него всё будет работать.
Мне нужна помощь в том, как сделать, чтобы автоматически заносились данные пользователя в базу данных.
Помогите пожалуйста :(
Вот код:
import discord
from discord.ext import commands
import sqlite3
from config import settings
intents = discord.Intents.default()
intents.members = True
client = commands.Bot(command_prefix = settings['PREFIX'])
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 INT,
server_id INT
)""")
cursor.execute("""CREATE TABLE IF NOT EXISTS shop(
role_id INT,
id INT,
cost BIGINT
)""")
for guild in client.guilds:
for member in guild.members:
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, 1, {guild.id})")
connection.commit()
else:
pass
connection.commit()
print('готов служить на благо Империи')
@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, 1, {member.guild.id})")
connection.commit()
else:
pass