
投票管道
Hytale投票奖励插件——支持多个服务器列表网站,兼容Webhook和Votifier。可视化奖励构建器,自动发放奖励,无需开放端口。
VotePipe - Hytale 统一投票奖励系统
唯一一个通过统一管道同时处理 Webhook 和 Votifier 网站的 Hytale 投票插件。 使用单个插件连接所有 7 个主流服务器列表网站——无需开放端口,无需为每个协议额外设置,无需同时管理多个投票插件。
- 同一插件支持 Webhook + Votifier —— 原生支持 V1 RSA、V2 HMAC 和 HTTPS Webhook
- 无需端口转发 —— 仅出站连接保障服务器安全
- 可视化奖励构建器 —— 通过网页仪表盘配置奖励,无需编写代码
- 提供免费套餐 —— 几分钟内即可开始使用,无需承诺
支持的提供商
所有提供商的数据都汇入同一个奖励系统——无需额外插件。
Webhook 提供商
| 提供商 | 接收的数据 |
|---|---|
| Hytale-Servers.pro | Hytale 用户名、投票 ID、服务器标识 |
| HytaleCharts | Discord ID 和用户名、服务器统计 |
| Hylist.io | 用户名、服务器 ID、总票数 |
投票通过 HTTPS 到达。您从仪表盘获取一个 Webhook URL 和密钥——将其粘贴到投票网站设置中。
Votifier 提供商
| 提供商 | 支持的协议版本 |
|---|---|
| HytaleLobby | V1 (RSA) + V2 (HMAC) |
| HytaleServer.xyz | V1 (RSA) + V2 (HMAC) |
| HytaleOnlineServers | V1 (RSA) + V2 (HMAC) |
| ServeurHytale.fr | V1 (RSA) + V2 (HMAC) |
投票通过 TCP 使用 Votifier 协议到达。VotePipe 会自动生成您的 RSA 密钥和 HMAC 令牌——只需将仪表盘中的连接信息复制到投票网站即可。必要时支持一键密钥轮换。
快速开始
- 下载
VotePipe.jar并将其放入服务器的plugins/文件夹 - 启动服务器 —— 默认配置文件会自动生成
- 在 app.votepipe.com 创建一个账户 并添加您的服务器
- 从仪表盘的“设置 > 插件”中复制您的插件令牌
- 在游戏中设置令牌,使用
/votepipe token vpt_your_token或编辑plugins/votepipe/config.json - 在仪表盘中添加提供商 —— 您将获得 Webhook URL 或 Votifier 连接信息,用于粘贴到每个投票网站
投票将在数秒内开始流动。您的服务器仅发起出站请求——无需开放端口,无需防火墙规则。失败的投递将自动重试。
工作模式
自动模式
在仪表盘中配置所有内容。无需代码。
- 在仪表盘中进入“设置 > 奖励”
- 将“插件模式”设置为 自动
- 使用可视化构建器创建奖励配置
- 插件自动处理执行、重试和领取跟踪
开发者模式
使用自定义代码实现完全控制。注册一个 VoteReceivedEvent 的处理器,并实现您自己的奖励逻辑。
- 在仪表盘中,将“插件模式”设置为 开发者
- 注册一个事件处理器(参见下方的 插件 API)
- 调用
event.success()或event.fail(reason)来报告投递状态
奖励类型
| 类型 | 描述 | 免费版 | Pro+ |
|---|---|---|---|
| 基础奖励 | 每次投票给予 | 是 | 是 |
| 连续投票奖励 | 连续投票天数奖励(3、7、14、30天) | - | 是 |
| 幸运投票 | 具有可配置层次的随机几率奖励 | - | 是 |
| 里程碑奖励 | 达到投票数量阈值时的奖励(10、50、100、500票) | - | 是 |
可用动作
动作是奖励的构建块。您可以在每个奖励配置中自由组合它们。
| 动作 | 描述 | 适用套餐 |
|---|---|---|
| 指令 | 执行服务器指令(支持 {player} 变量替换) |
所有 |
| 广播 | 向所有在线玩家发送消息 | 所有 |
| 玩家消息 | 向投票者发送私密消息 | 所有 |
| 音效 | 为投票者播放音效 | 所有 |
| 物品 | 将物品放入投票者的背包 | 所有 |
| 标题 | 在屏幕上显示标题/副标题 | Pro+ |
| UI 通知 | 显示游戏内通知弹窗 | Pro+ |
动作中可用的变量:
| 变量 | 描述 |
|---|---|
{player} |
玩家用户名 |
{service} |
提供商名称 |
{vote_count} |
玩家的总投票数 |
{streak} |
当前连续投票天数 |
{provider_server_url} |
提供商的服务器/投票页面 URL |
文本格式化标签:
| 标签 | 效果 |
|---|---|
<#RRGGBB> |
设置十六进制颜色 |
<BOLD> |
粗体文本 |
<ITALIC> |
斜体文本 |
<MONO> |
等宽文本 |
<RESET> |
重置格式 |
示例:
<#FFD700><BOLD>{player}<RESET> 在 <#00BFFF>{service}<RESET> 上投票了!
配置
配置文件位置:plugins/votepipe/config.json
{
"token": "vpt_your_token_here",
"api_base_url": "https://api.votepipe.com/v1",
"poll_interval_ms": 5000,
"claim_timeout_ms": 5000,
"enabled": true,
"debug": false
}
| 设置项 | 默认值 | 描述 |
|---|---|---|
token |
必填 | 来自仪表盘的插件令牌(设置 > 插件) |
api_base_url |
https://api.votepipe.com/v1 |
API 端点地址 |
poll_interval_ms |
5000 |
检查新投票的频率(最小 5000 毫秒) |
claim_timeout_ms |
5000 |
开发者模式奖励处理器的超时时间 |
enabled |
true |
启用或禁用插件 |
debug |
false |
启用详细日志以进行故障排除 |
指令
| 指令 | 描述 |
|---|---|
/votepipe |
显示可用指令列表 |
/votepipe status |
显示连接状态、令牌信息和投票统计 |
/votepipe reload |
从磁盘重新加载配置 |
/votepipe token <token> |
在无需重启服务器的情况下设置插件令牌 |
插件 API
对于需要完全控制的开发者,VotePipe 同时提供了事件系统和静态 API。
开发者模式事件处理器
import com.mythlane.votepipe.event.VoteReceivedEvent;
public class MyPlugin extends JavaPlugin {
@Override
public void setup() {
getEventRegistry().register(VoteReceivedEvent.class, event -> {
Player player = server.getPlayer(event.getVoterName());
if (player != null && player.isOnline()) {
player.getInventory().add(new ItemStack(Items.DIAMOND, 5));
player.sendMessage("感谢您在 " + event.getProviderName() + " 上投票!");
event.success();
} else {
event.fail("玩家离线");
}
});
}
}
事件字段:
| 字段 | 类型 | 描述 |
|---|---|---|
voteId |
String | 投票 ID(UUID) |
voterName |
String | 玩家用户名 |
provider |
String | 提供商键值 |
providerName |
String | 提供商显示名称 |
receivedAt |
Instant | 投票时间戳 |
静态 API
将 VotePipe 添加为仅编译依赖:
dependencies {
compileOnly("com.mythlane:votepipe:1.0.1")
}
import com.mythlane.votepipe.api.VotePipe;
// 检查连接状态
boolean connected = VotePipe.isConnected();
// 获取排行榜
VotePipe.getLeaderboard().thenAccept(leaderboard -> {
for (LeaderboardEntry entry : leaderboard.getEntries()) {
System.out.println(entry.getRank() + ". " + entry.getPlayerName());
}
});
// 使用选项获取排行榜
VotePipe.getLeaderboard(new LeaderboardOptions()
.period(Period.WEEKLY)
.limit(20)
.provider("hytalecharts")
);
// 触发手动轮询
VotePipe.triggerPoll();
从 Votifier / NuVotifier 迁移
VotePipe 现在原生支持 Votifier 协议(包括 V1 RSA 和 V2 HMAC),使迁移比以往更简单。您无需更改投票网站发送投票的方式——VotePipe 可以直接接收它们。
迁移步骤
安装 VotePipe,同时保留您现有的 Votifier 插件
- 下载
VotePipe.jar并将其放入您的plugins/文件夹 - 通过
/votepipe token <token>设置您的插件令牌
- 下载
在 VotePipe 仪表盘中 将您的投票网站添加为 Votifier 提供商
- VotePipe 会为每个提供商自动生成 RSA 密钥和 HMAC 令牌
- 将生成的主机、端口和公钥复制到每个投票网站的 Votifier 设置中
- 对于兼容 V2 的网站,还需复制 HMAC 令牌
配置奖励
- 自动模式: 在仪表盘的可视化构建器中设置奖励配置
- 开发者模式: 将您现有的奖励逻辑移植为使用
VoteReceivedEvent
在投票通过 VotePipe 正常流转后,移除旧插件
- 从
plugins/中删除 Votifier/NuVotifier - 清理旧的配置文件
- 从
有哪些变化
| 迁移前 (Votifier) | 迁移后 (VotePipe) |
|---|---|
| 需要开放服务器 8192 端口 | 无需入站连接 |
| 投票直接发送到您的服务器 | 投票发送到 VotePipe 云端,插件轮询获取 |
| 服务器离线时无重试 | 自动重试直至投递成功 |
| 无分析功能 | 完整仪表盘,包含投票历史、连续天数、排行榜 |
| 仅配置文件 | 可视化奖励构建器 + 配置文件 |
| 无 Discord 通知 | 内置 Discord 通知 |
套餐对比
| 功能 | 免费版 | Pro 版 | Network 版 |
|---|---|---|---|
| 自动奖励 | 是 | 是 | 是 |
| 奖励配置数 | 3 | 5 | 无限制 |
| 每个配置的动作数 | 5 | 10 | 无限制 |
| 连续奖励层级 | - | 5 | 无限制 |
| 幸运投票层级 | - | 3 | 无限制 |
| 里程碑奖励 | - | 5 | 无限制 |
系统要求
- Hytale 服务器
- Java 25 或更高版本
- VotePipe 账户(免费注册)
插件 API 调用(轮询、领取、排行榜)不计入您的速率限制。
支持
- 仪表盘:app.votepipe.com
- 文档:votepipe.com/docs
- API 文档:api.votepipe.com/docs
许可证
MIT 许可证
还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。