在使用discord.js进行投票功能的开发中,可以通过以下步骤来查看用户是否已经进行了投票,并停止计票:
以下是一个简单的示例代码,展示了如何使用discord.js实现投票功能:
const Discord = require('discord.js');
const client = new Discord.Client();
// 创建投票对象
const vote = {
question: '你喜欢哪种颜色?',
options: ['红色', '蓝色', '绿色'],
votedUsers: [],
isStopped: false
};
client.on('message', message => {
// 解析用户消息
const content = message.content.toLowerCase();
// 处理投票指令
if (content.startsWith('投票')) {
const option = content.substring(2).trim();
// 检查是否已经投票
if (vote.votedUsers.includes(message.author.id)) {
message.reply('你已经投过票了!');
return;
}
// 检查是否停止计票
if (vote.isStopped) {
message.reply('投票已经结束!');
return;
}
// 检查选项是否有效
if (!vote.options.includes(option)) {
message.reply('无效的选项!');
return;
}
// 添加用户到已投票列表
vote.votedUsers.push(message.author.id);
message.reply('你的投票已经成功!');
}
// 查看投票结果
if (content === '投票结果') {
if (vote.isStopped) {
message.reply('投票已经结束!');
return;
}
const result = {};
for (const option of vote.options) {
result[option] = 0;
}
for (const userId of vote.votedUsers) {
const user = message.guild.members.cache.get(userId);
const userVote = user.nickname || user.user.username;
result[userVote]++;
}
let resultMessage = '投票结果:\n';
for (const option of vote.options) {
resultMessage += `${option}: ${result[option]}票\n`;
}
message.channel.send(resultMessage);
}
// 停止计票
if (content === '停止计票') {
if (vote.isStopped) {
message.reply('投票已经结束!');
return;
}
vote.isStopped = true;
message.reply('计票已经停止!');
}
});
client.login('YOUR_DISCORD_TOKEN');
请注意,上述代码仅为示例,可能需要根据实际需求进行修改和完善。同时,该示例代码并未涉及腾讯云相关产品,如有需要,你可以根据自己的实际情况选择适合的腾讯云产品进行集成。
领取专属 10元无门槛券
手把手带您无忧上云