如何用JS/Python机器人统计DISBOARD用户Bump命令使用次数?
如何用JS/Python机器人统计DISBOARD的Bump命令使用次数
完全可以通过JS或Python的Discord机器人实现这个需求,核心思路是监听Discord消息,识别DISBOARD机器人的Bump成功回复,关联发起命令的用户并统计次数。以下是具体实现方案:
用Discord.js实现(JavaScript)
- 前提准备:确保机器人在Discord开发者门户开启
MessageContent意图,且在目标服务器拥有读取消息的权限。 - 核心逻辑:监听所有消息,筛选DISBOARD机器人(ID:
302050872383242240)发送的Bump成功通知,提取@的发起用户并更新计数。
const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent ] }); // 内存存储计数,重启会丢失,建议改用数据库持久化 const bumpCounts = {}; client.on('messageCreate', (message) => { // 过滤非DISBOARD机器人的消息 if (message.author.id !== '302050872383242240') return; // 判断是否为Bump成功的通知(可根据DISBOARD最新消息调整关键词) if (message.content.includes('Bump done!')) { const user = message.mentions.users.first(); if (!user) return; bumpCounts[user.id] = (bumpCounts[user.id] || 0) + 1; console.log(`${user.tag} 累计Bump ${bumpCounts[user.id]} 次`); } }); client.login('你的机器人Token');
用discord.py实现(Python)
- 前提准备:安装依赖
pip install discord.py,开启机器人的MessageContent意图,确保服务器权限正常。 - 核心逻辑与JS版本一致,通过监听消息统计有效Bump次数。
import discord from discord.ext import commands intents = discord.Intents.default() intents.message_content = True bot = commands.Bot(command_prefix='!', intents=intents) # 内存存储计数,建议改用SQLite/MySQL持久化 bump_counts = {} @bot.event async def on_message(message): if message.author.bot: # 定位DISBOARD机器人 if message.author.id == 302050872383242240: # 判断Bump成功通知 if 'Bump done!' in message.content: user = message.mentions[0] if message.mentions else None if user: bump_counts[user.id] = bump_counts.get(user.id, 0) + 1 print(f"{user.name}#{user.discriminator} 累计Bump {bump_counts[user.id]} 次") await bot.process_commands(message) bot.run('你的机器人Token')
注意事项
- 持久化存储:示例用内存对象计数,重启机器人后数据会丢失,建议结合SQLite、MongoDB等数据库保存数据。
- 关键词适配:DISBOARD的成功通知文案可能更新,需要根据实际消息内容调整判断条件。
- 权限验证:确保机器人拥有读取频道消息的权限,且已开启消息内容意图,否则无法正常监听消息。
内容的提问来源于stack exchange,提问作者Kuma
相关产品推荐
相关产品推荐

