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

能否实现Discord单用户单次使用指令?求对应实现代码

实现Discord用户单次使用指令的方案

当然可以实现仅允许Discord用户单次使用的指令啦!核心逻辑其实很简单——只要记录下已经用过这个指令的用户ID,每次有人触发指令时先做个检查:如果是第一次用,就执行指令功能并把用户ID存起来;如果已经用过了,就提示无法重复使用。

核心实现思路

  • 选个存储方式:小型机器人用JSON文件就足够方便,要是用户量较大,推荐用SQLite/PostgreSQL这类数据库来提升性能
  • 指令触发流程:
    1. 用户发送指令后,机器人先读取已使用用户的记录
    2. 检查当前用户ID是否在记录里
    3. 不在记录里 → 执行指令的核心功能,然后把用户ID加入记录
    4. 已经在记录里 → 给用户发送无法重复使用的提示

具体代码实现(基于discord.py v2.x)

首先确保你已经安装了discord.py:

pip install discord.py

下面是完整的机器人代码,用JSON文件存储已使用用户:

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

# 初始化机器人,开启消息内容权限
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)

# 存储已使用用户ID的文件
USED_USERS_PATH = "single_use_users.json"

# 加载已使用用户列表
def load_used_users():
    if os.path.exists(USED_USERS_PATH):
        with open(USED_USERS_PATH, "r", encoding="utf-8") as f:
            return set(json.load(f))
    return set()

# 保存已使用用户列表到文件
def save_used_users(users_set):
    with open(USED_USERS_PATH, "w", encoding="utf-8") as f:
        json.dump(list(users_set), f)

# 全局变量存储已使用用户
used_users = load_used_users()

@bot.event
async def on_ready():
    print(f"机器人已登录:{bot.user.name}(ID:{bot.user.id})")
    print("------------------------")

@bot.command(name="one_time_reward")
async def single_use_reward(ctx):
    # 检查用户是否已使用过指令
    if ctx.author.id in used_users:
        await ctx.send(f"{ctx.author.mention} 抱歉,你已经领取过这个奖励啦,无法重复使用哦!")
        return
    
    # 这里是指令的核心功能,比如发送专属奖励内容
    await ctx.send(f"{ctx.author.mention} 恭喜你领取到单次专属奖励!🎉")
    
    # 将用户ID加入已使用列表并保存
    used_users.add(ctx.author.id)
    save_used_users(used_users)

# 替换成你的机器人Token
bot.run("YOUR_BOT_TOKEN")

额外说明

  • 如果你的机器人用户较多,建议把JSON替换成SQLite数据库,避免频繁读写文件导致的性能问题。比如用sqlite3模块创建一个used_users表,存储用户ID即可。
  • 记得在Discord开发者门户的Bot设置里开启Message Content Intent,否则机器人无法读取用户发送的指令。
  • 要是需要重置所有用户的使用权限,直接删除single_use_users.json文件就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:07:08