如何设置投票奖励(Votifier、VotingPlugin 等)
安装配套插件,配置 Votifier 实现即时发放,或者改为将 VotingPlugin、SuperVotes 或 SuperbVote 对接到本站 - 使用本站实际期望的确切数值。

每一款奖励插件都需要您做两件事:一是知道有人投了票,二是投票发生时要执行的动作。本文将介绍这两方面 - 本站提供的配套插件、用于即时发放的 Votifier,以及如果您已经在使用 VotingPlugin、SuperVotes 或其他奖励插件该怎么办。
方案 A:VoxelRank 插件(推荐)
配套插件直接与本站的 API 通信。不需要 Votifier - 它通过定期轮询未领取的投票来工作,因此即使在 NAT 后面也能正常运行,并会在服务器关闭期间补齐所有遗漏的投票。Votifier 同样可用,作为即时发放的可选附加项(见方案 B)。
- 从您的仪表板下载 jar 文件(一旦构建完成,您的服务器卡片上就会出现下载按钮),或直接从 /download/plugin 下载。
- 将其放入
plugins/,启动服务器一次。这会生成plugins/VotingSite/config.yml。 - 打开您服务器的编辑页面 → 奖励和投票标签,复制那里显示的 API 密钥。
- 将其粘贴到
config.yml中的site.api-key(同时确认site.url指向本站),然后运行/votingsite reload。 - 通过设置
config.yml中的mode来决定投票该如何送达您:poll(默认)- 插件自行拉取未领取的投票。无需再安装其他任何东西。votifier- 投票一经产生,本站就立即推送。需要 NuVotifier 或其他 Votifier 监听器(见下方方案 B)。both- 以 Votifier 推送为主,轮询作为保底,凭投票 id 去重,不会重复发放。
- 在
rewards.commands(如果需要,还有milestones和vote-party)中填入投票时应触发的控制台命令。 - 测试一下:
/votingsite testvote <player>可以模拟一次投票,无需等待真实投票。/votingsite status会显示当前模式、API 密钥是否被接受,以及目前已发放了多少票的奖励。
玩家使用 /voxelrank vote 获取自己的投票链接和票数统计 - 而不是 /vote,本插件刻意从不占用这个命令(两个插件争抢同一个命令,正是奖励在悄无声息中失效的典型原因 - 参见 config.yml 中对此的说明)。
方案 B:通过 NuVotifier 实现即时发放
如果 poll 模式对您来说已经够用,可以跳过这部分 - 它并非必需。当轮询带来的那几分钟延迟确实成为问题,或者您更想运行一个专门的奖励插件而不是本站自带的插件时,再来配置它。
NuVotifier 是原版 Votifier 目前仍在积极维护的分支 - 原始项目如今基本已无人维护,因此"安装 Votifier"在实际操作中就是指安装 NuVotifier(或 VotifierPlus 等兼容分支)。
- 将 NuVotifier 的 jar 文件放入
plugins/,重启服务器。在 Bukkit/Spigot/Paper 服务器上,出于向后兼容,它仍沿用经典的文件夹名plugins/Votifier/- 这是 NuVotifier 自己的文件夹,并不是旧插件的残留 - 首次启动时会在其中生成一个config.yml以及rsa/文件夹中的一对密钥。 - 从
plugins/Votifier/config.yml中获取您的凭证:v2 令牌(推荐)会在tokens:部分的default键下自动生成 - 原样复制即可。如果您更倾向于旧方法,v1 公钥位于plugins/Votifier/rsa/public.key;对应的private.key请保留在服务器同一文件夹中,切勿分享给任何人。 - 检查 NuVotifier 正在监听的
port(默认为8192),确保它已在您的防火墙或主机面板中开放 - 这是与普通 Minecraft 端口不同的独立端口,大多数主机不会自动开放它。 - 在您服务器的编辑页面 → 奖励和投票标签中,填入 Votifier 主机(您服务器的地址)和该端口,然后粘贴第 2 步中的 v2 令牌或 v1 密钥。如果两者都填写,只会使用其中一个 - v2 优先。
- 直接在该标签页上点击发送测试投票。这会向表单中当前填写的主机/端口/密钥/令牌发送一个真实的 Votifier 数据包 - 无需事先保存 - 并立即反馈 NuVotifier 是否接受了它。如果失败,NuVotifier 自身的控制台日志(默认
debug: true)会显示连接是否至少到达了插件,从而快速区分是"密钥错误"还是"端口被阻断"。 - 保存后投出一次真实的票,确认奖励是立即到账,而不是等到下一次轮询。
在底层,当设置了 v2 令牌时,本站会发送一个标准的 VOTIFIER 2 握手,携带经 HMAC 签名的 JSON 负载;否则会回退到经典的、经 RSA 加密的 v1 数据块 - 这与任何兼容 Votifier 的监听器早已使用的协议完全相同,没有任何本站专属的内容。
已经在使用 VotingPlugin 了吗?
如果您的服务器已经运行了 VotingPlugin,就不需要再安装我们的插件了 - 也不需要手动把本站添加进去,因为 VotingPlugin 已经为它维护了一个预设。
以管理员身份(或拥有 VotingPlugin.Commands.AdminVote.VotePresets 权限)在游戏内运行:
/av VotePresets
VotingPlugin 会从其自身的 VotingPlugin-Presets 仓库下载当前的预设列表,让您从中选择一个 - VoxelRank 也在其中 - 然后询问该预设所需的值:显示名称、您列表的投票 URL、投票间隔等等。或者直接使用您自己的投票链接跳过选择:
/av VotePresets https://voxelrank.com/server/your-slug/vote
请包含 https://;VotingPlugin 会自动将主机名与正确的预设匹配,而不必让您在列表中查找。
无论哪种方式,它都会在 VoteSites.yml 的 VoteSites: 下写入或更新对应条目 - ServiceSite、VoteURL、合理的默认间隔,以及如果站点还没有的话,一个占位的显示物品或感谢消息 - 然后自动为您重新加载投票站点。文件中已有的其他内容都不会被改动。如果您是在修改一个已经建立的设置,而不是新增一个,请先备份 VoteSites.yml,并在向玩家宣传之前检查写入的内容 - 尤其是奖励部分,因为预设只是一个起点,而不是一份完成的配置。
VotingPlugin 仍然需要自己的 Votifier 连接才能真正接收投票 - 请将它指向与上方方案 B 相同的 NuVotifier 配置。它还需要服务器能够访问 GitHub(raw.githubusercontent.com)才能获取预设;如果 /av VotePresets 报告没有可用的预设,那是服务器上的网络或防火墙问题,而不是预设缺失。作为备用方案,/av gui 或直接编辑 VoteSites.yml 仍然有效 - ServiceSite 必须精确匹配 VoxelRank.com,您可以在一次真实投票或管理员测试投票之后,用 /av servicesites 来确认。
其他奖励插件
在使用比 VotingPlugin 更轻量的插件吗?SuperVotes 和 SuperbVote 都是轻量级的 Votifier 监听器,各自拥有自己的 vote-party 和奖励命令系统。它们都不像 VotingPlugin 那样按站点维护预设 - 将其中任意一个指向上方"奖励和投票"标签中相同的 Votifier 主机、端口和 v2 令牌(或 v1 密钥),然后像配置任何其他投票一样配置它的奖励即可。
故障排查
- 运行
/votingsite testvote没有任何反应。 先检查/votingsite status- 如果 API 密钥未被接受,投票(无论真实还是测试)就无处可去。请从编辑页面重新复制,并确认末尾没有多余的空格。 - Votifier 推送始终没有到达,但轮询正常工作。 通常被阻断的是 Votifier 端口,而不是 API - 大多数主机默认开放出站 HTTP 流量,但不会开放任意的额外入站端口。与其和防火墙死磕,不如把
mode: both(或单独运行另一个奖励插件的监听器)作为合理的长期备用方案。 - 奖励已触发,但游戏内什么都没出现。 奖励命令是在控制台执行的,因此只有玩家亲自输入才能生效的命令(没有权限、没有
op)会悄悄失败。请先在控制台测试完全相同的命令。 - VotingPlugin 日志记录 "invalid service site",或始终无法匹配投票。
ServiceSite的值必须逐字符匹配(大小写除外)。请用/av servicesites核实,而不是根据本站的域名去猜测。 /av VotePresets提示没有可用预设,或某个 URL 无法匹配任何内容。 它是在运行时从 GitHub 下载预设列表的,所以几乎总是服务器自身的网络 - 防火墙、代理、DNS,或 GitHub 出现故障 - 阻断了raw.githubusercontent.com,而不是 VoxelRank 被从列表中移除的信号。按 URL 匹配还需要包含https://的完整地址;仅有主机名是无法识别的。- "奖励和投票"标签中的设置似乎没有保存。 这些设置只对已认领的列表生效 - 参见服务器列表中的"声称"筛选项。已导入但未被认领的条目还没有所有者可以为其配置奖励;请先认领它。
快速问答
我到底需不需要 Votifier?
不需要。poll 模式(VoxelRank 插件的默认模式)不用安装任何其他东西就能工作 - Votifier 只是缩短了投票与奖励之间的延迟,并且如果您更想改用 VotingPlugin、SuperVotes 或 SuperbVote,它是唯一的接入方式。
我可以同时使用我们的插件和 VotingPlugin 吗?
同一份奖励不行 - 请选择其中一个来真正执行奖励命令,否则一次投票可能会被支付两次。Votifier 本身可以同时通知多个监听器,所以这属于"不要为同一份奖励配置两次"的规则问题,而不是技术上的限制。
我的主机不允许我为 Votifier 开放额外的端口。
请使用 VoxelRank 插件的 poll 模式。它只会发起出站请求,因此没有任何端口需要开放。VotingPlugin 以及类似的奖励插件没有对应的轮询模式 - 它们需要一个入站的 Votifier 端口。
需要帮助吗?
在上面的某个步骤卡住了,或者有些地方和您的服务器实际发送的内容对不上?联系我们 - 关于投票/奖励问题最快的联系方式就列在那里。