Votifier

Votifier

一款适用于Hytale的Votifier风格插件,通过网络服务器接收投票网站的通知,并触发事件供其他插件处理奖励。

实用



HytaleVotifier Banner

HytaleVotifier

奖励你的玩家,支持你的服务器!

最新版本 许可证 Java 25+


HytaleVotifier 是一个强大的 Hytale 服务器投票 (Votifier) 插件,可以轻松追踪投票、奖励玩家,并提升服务器的活跃度。兼容所有支持 Votifier 协议(V1 和 V2/NuVotifier)的主流投票网站!


功能特性

  • 双协议支持 — V1(RSA 加密)和 V2(HMAC-SHA256),实现最大兼容性
  • V2 Socket 服务端 — 专用 TCP Socket,包含挑战-响应式身份验证
  • 自定义聊天消息 — 玩家投票后,发送个性化的感谢消息
  • 服务器广播 — 当有玩家投票时,向全服广播
  • 自动奖励 — 收到投票时自动执行命令
  • 屏幕通知 — 精美的 Toast 弹窗,即时反馈
  • 可点击的投票链接/vote 命令显示可点击的投票站点链接
  • 分层奖励 — 设置基于概率的奖励(普通、稀有、传说级掉落!)
  • 投票提醒 — 若玩家近期未投票,在其加入时进行提醒
  • 投票追踪 — 使用持久化 SQLite 存储追踪玩家的最后投票时间
  • 自动更新 — 新版本可用时收到通知

快速入门

  1. 下载 最新 JAR 文件从此页面或 GitHub Releases
  2. 放入 JAR 文件 到服务器 mods/ 文件夹
  3. 启动服务器 — 首次运行时会自动生成 RSA 密钥
  4. 配置你的投票站点 — 与投票站点分享你的 public.key(V1)或交换令牌(V2)
  5. 自定义奖励 — 编辑 config.json 来设置消息和奖励

大功告成!你的服务器已准备好接收投票。


颜色格式

HytaleVotifier 使用 TaleMessage 实现精美的彩色消息。

可用颜色:

<black>, <dark_blue>, <dark_green>, <dark_aqua>, <dark_red>, <dark_purple>, <gold>, <gray>, <blue>, <green>, <aqua>, <red>, <yellow>, <white>, <orange>

示例:

<gray>感谢你在 <orange>{from}</orange> 上的投票。<green>请享受你的奖励!</green>

可点击文本:

<click:https://example.com&gt;点击这里!</click>

配置

你的配置文件位于 mods/Hyvote_HytaleVotifier/config.json

示例设置

{
  "debug": false,
  "keyPath": "keys",
  "voteMessage": {
    "enabled": true,
    "titleMessage": "收到投票!",
    "descriptionMessage": "感谢你在 {from} 上的投票!",
    "iconItem": "Ore_Gold"
  },
  "broadcast": {
    "enabled": true,
    "message": "{username} 在 {from} 上投了票!"
  },
  "rewardCommands": [
    {
      "enabled": true,
      "command": "give {username} Ingredient_Stick",
      "chance": 1.0
    },
    {
      "enabled": true,
      "command": "give {username} Ingredient_Bar_Gold",
      "chance": 0.25
    },
    {
      "enabled": true,
      "command": "give {username} Weapon_Longsword_Adamantite_Saurian",
      "chance": 0.05
    }
  ],
  "voteSites": {
    "tokens": {
      "TopHytaleSites": "your-secret-token-here",
      "Hyvote": "another-secret-token"
    }
  },
  "socketServer": {
    "enabled": true,
    "port": 8192
  },
  "internalHttpServer": {
    "enabled": true,
    "port": 8080
  },
  "protocols": {
    "v1Enabled": true,
    "v2Enabled": true
  },
  "voteCommand": {
    "enabled": true,
    "header": "★★★ 为我们的服务器投票! ★★★",
    "siteTemplate": "➤ {name}",
    "footer": "感谢你的支持!",
    "sites": [
      {
        "name": "Hyvote.org",
        "url": "https://hyvote.org/servers/my-server"
      },
      {
        "name": "TopHytaleSites",
        "url": "https://tophytalesites.com/vote/my-server"
      }
    ]
  },
  "voteReminder": {
    "enabled": true,
    "sendOnJoin": true,
    "voteExpiryInterval": 24,
    "delayInSeconds": 60,
    "storage": {
      "type": "sqlite",
      "filePath": "votes.db",
      "cleanupIntervalHours": 6
    },
    "message": {
      "enabled": true,
      "text": "你今天还没有投票!你可以每天 '/vote' 获取免费奖励!"
    },
    "notification": {
      "enabled": true,
      "titleMessage": "你今天还没有投票",
      "descriptionMessage": "你可以每天 /vote 获取免费奖励!",
      "iconItem": "Upgrade_Backpack_2"
    }
  }
}

配置选项

选项 描述
debug 启用详细的调试日志
keyPath RSA 密钥的子目录(相对于插件数据目录)
voteMessage 投票者的 Toast 通知设置
broadcast 服务器范围的公告设置
rewardCommands 收到投票时执行的命令
voteSites V2 协议的服务令牌(服务名称 → 共享密钥)
socketServer V2 TCP Socket 服务器设置(默认端口 8192)
internalHttpServer 备用 HTTP 服务器设置(当 Nitrado:WebServer 不可用时使用)
protocols 启用/禁用 V1(基于 HTTP 的 RSA)和 V2(HMAC-SHA256)协议
voteCommand /vote 命令的设置,包含可点击的站点链接
voteReminder 提醒玩家加入时投票的设置

占位符

占位符 描述
{username} 玩家的游戏内名称
{from} 投票站点的名称
{name} 投票站点的显示名称(在投票命令中)
{link} 投票站点的 URL(在投票命令中)

分层奖励

chance 设置在 0.0 到 1.0 之间,创建令人兴奋的分层奖励:

  • 1.0 = 100% 概率(必得)
  • 0.25 = 25% 概率(稀有)
  • 0.05 = 5% 概率(传说)

投票提醒

HytaleVotifier 可以在玩家加入服务器时提醒他们投票。提醒系统包括:

  • 聊天消息 — 直接发送给玩家的消息
  • 标题显示 — 屏幕上的大号文字
  • Toast 通知 — 弹窗通知
  • 音效 — 音频提示

配置 voteExpiryInterval 来设置投票在多少小时后“过期”并恢复提醒(默认:24 小时)。


投票协议

HytaleVotifier 支持两种协议以实现最大兼容性:

协议 身份验证 传输方式 用例
V1 RSA 2048 位加密 HTTP 经典 Votifier 兼容性
V2 HMAC-SHA256 签名 HTTP 或 TCP Socket 现代 NuVotifier 兼容性

V1 设置: 与投票站点共享你的 public.key 文件。

V2 设置: 与投票站点交换共享密钥令牌,并将其添加到配置中的 voteSites.tokens

有关详细的协议文档,请参阅 GitHub README


测试你的设置

使用 /testvote 命令测试你的配置,无需实际投票:

/testvote PlayerName
/testvote PlayerName MySite

权限: votifier.admin.testvote


权限

权限 描述
votifier.admin.testvote 使用 /testvote 命令
votifier.admin 加入时接收更新通知
votifier.admin.update_notifications 仅限更新通知的替代权限

文件位置

mods/Hyvote_HytaleVotifier/
├── config.json       # 你的配置
├── votes.db          # 投票追踪数据库 (SQLite)
└── keys/
    ├── public.key    # 📤 与投票站点共享 (V1)
    └── private.key   # 🔒 请保密!

💬 支持

配置遇到问题?在 hytaletools.org 验证你的 JSON。