You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Discord Bot将用户ID添加至代码或文件?(Replit Python)

实现Discord Bot的/add_admin命令(Replit Python环境)

1. 基础环境配置

  • 在Replit新建Python项目,打开shell执行pip install discord.py安装依赖库。
  • 去Discord开发者平台创建Bot并获取Token,在Replit的「Secrets」面板添加DISCORD_BOT_TOKEN,值填你的Bot Token(避免明文泄露)。

2. 核心代码实现

用JSON文件存储管理员ID(比存在代码里更靠谱,重启Bot不会丢失数据),完整代码如下:

import discord
from discord.ext import commands
import json
import os

# 开启消息内容权限,否则Bot读不到用户命令
intents = discord.Intents.default()
intents.message_content = True

# 设置Bot命令前缀为!,初始化Bot
bot = commands.Bot(command_prefix='!', intents=intents)

# 管理员存储文件路径
ADMIN_FILE = "admins.json"

def load_admins():
    # 读取已有的管理员列表
    if os.path.exists(ADMIN_FILE):
        with open(ADMIN_FILE, 'r') as f:
            return json.load(f)
    # 首次运行时初始化管理员(填你的用户ID)
    initial_admins = ["你的用户ID"]
    save_admins(initial_admins)
    return initial_admins

def save_admins(admins):
    # 将管理员列表写入JSON文件
    with open(ADMIN_FILE, 'w') as f:
        json.dump(admins, f, indent=2)

# 加载管理员列表
admins = load_admins()

# /add_admin命令实现
@bot.command(name='add_admin')
async def add_admin(ctx, user_id: str):
    # 校验命令发起者是否为管理员
    if str(ctx.author.id) not in admins:
        await ctx.send("你没有权限执行这个命令!")
        return
    
    # 检查用户ID是否已在管理员列表中
    if user_id in admins:
        await ctx.send(f"用户ID {user_id} 已经是管理员了!")
        return
    
    # 添加并保存新管理员
    admins.append(user_id)
    save_admins(admins)
    await ctx.send(f"已成功添加用户ID {user_id} 为管理员!")

# Bot启动提示
@bot.event
async def on_ready():
    print(f'已登录为 {bot.user}')
    print('------')

# 从Secrets读取Token并启动Bot
bot.run(os.getenv('DISCORD_BOT_TOKEN'))

3. 关键说明

  • 权限控制:只有已存在的管理员才能执行!add_admin命令,避免权限滥用。
  • 使用方式:在Discord聊天里输入!add_admin 目标用户ID即可完成添加(用户ID是Discord用户的数字ID,可在设置里开启开发者模式后右键用户复制)。
  • Replit注意事项:Replit会自动保存admins.json文件,但Bot长时间闲置会休眠,如需保持在线可额外添加定时请求的脚本(非核心需求,按需添加)。

内容的提问来源于stack exchange,提问作者Jonoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:35:25