import discord
from discord.ext import commands
import sqlite3
TOKEN = "YOUR_TOKEN"
intents = discord.Intents.all()
bot = commands.Bot(
command_prefix="!",
intents=intents
)
db = sqlite3.connect("activity.db")
cursor = db.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS users(
user_id INTEGER,
guild_id INTEGER,
points INTEGER
)
""")
db.commit()
@bot.event
async def on_ready():
print(f"Logged in as {bot.user}")
@bot.event
async def on_message(message):
if message.author.bot:
return
cursor.execute(
"SELECT points FROM users WHERE user_id=? AND guild_id=?",
(message.author.id, message.guild.id)
)
result = cursor.fetchone()
if result:
points = result[0] + 1
cursor.execute(
"UPDATE users SET points=? WHERE user_id=? AND guild_id=?",
(
points,
message.author.id,
message.guild.id
)
)
else:
points = 1
cursor.execute(
"INSERT INTO users VALUES (?, ?, ?)",
(
message.author.id,
message.guild.id,
points
)
)
db.commit()
# Example rank system
if points >= 100:
role = discord.utils.get(
message.guild.roles,
name="Active Member"
)
if role:
await message.author.add_roles(role)
await bot.process_commands(message)
@bo*****mmand()
async def rank(ctx):
cursor.execute(
"SELECT points FROM users WHERE user_id=? AND guild_id=?",
(
ctx.author.id,
ctx.guild.id
)
)
result = cursor.fetchone()
if result:
await ct*****nd(
f"Your activity points: {result[0]}"
)
else:
await ct*****nd(
"No activity data found."
)
bot.run(TOKEN)