投票监听器

投票监听器

一个用于Hytale服务器的投票奖励插件。监听来自HytaleVotifier的投票,并使用可配置的命令奖励玩家。

实用

HytaleVoteListener

一个用于 Hytale 服务器的投票奖励插件。监听来自 HytaleVotifier 的投票,并通过可配置的命令奖励玩家。你必须安装 HytaleVotifier 才能让此插件正常工作!

安装

  1. Releases 下载最新的 hytale-votelistener-1.0.0-SNAPSHOT.jar
  2. 将 JAR 文件放入服务器的 mods/ 文件夹中
  3. 如果尚未安装,请安装 HytaleVotifier
  4. 启动你的服务器 - 将自动生成默认的 config.json 文件
  5. plugins/HytaleVoteListener/config.json 中配置你的奖励
  6. 重启服务器或重新加载插件

配置

插件会在 plugins/HytaleVoteListener/ 目录下创建一个包含以下选项的 config.json 文件:

基础设置

{
  "commands": [
    "say %player% 在 %service% 上投了票",
    "give %player% Weapon_Staff_Onyxium"
  ],
  "broadcastVote": false,
  "debugMode": false
}
选项 类型 描述
commands 数组 当玩家投票时执行的命令列表。支持占位符(见下文)。
broadcastVote 布尔值 当前未使用。请在命令列表中使用 say 命令来代替。
debugMode 布尔值 启用详细日志以进行故障排除。

占位符

在命令中使用以下占位符,它们将被替换为实际值:

占位符 描述
%player% 投票玩家的用户名
%service% 投票网站的名称
%uuid% 玩家的 UUID(如果可用)
%timestamp% 投票接收的时间
%streak% 玩家当前的连续投票天数
%totalvotes% 玩家的历史总投票数
%reward% 所获随机奖励等级的名称

随机奖励

给予玩家基于权重概率获得额外奖励的机会。

{
  "randomRewardsEnabled": true,
  "randomRewards": [
    {
      "name": "common",
      "chance": 70.0,
      "commands": ["give %player% Consumable_Apple 5"]
    },
    {
      "name": "rare",
      "chance": 25.0,
      "commands": ["give %player% Armor_Leather_Chest"]
    },
    {
      "name": "legendary",
      "chance": 5.0,
      "commands": [
        "give %player% Weapon_Sword_Legendary",
        "say %player% 获得了一份传奇投票奖励!"
      ]
    }
  ]
}
选项 类型 描述
randomRewardsEnabled 布尔值 启用或禁用随机奖励。
randomRewards 数组 具有权重概率的奖励等级列表。
name 字符串 奖励等级的显示名称。
chance 数字 此等级的权重(不需要总和为 100)。
commands 数组 如果选中此等级则执行的命令。

概率如何工作: 这些概率是权重,而非百分比。如果奖励的权重分别为 70、25 和 5,总和为 100,因此它们对应 70%、25% 和 5%。但如果你设置的权重为 7、2.5 和 0.5,其工作方式相同。

连续投票奖励

奖励连续多天投票的玩家。

{
  "streakBonusEnabled": true,
  "streakBonuses": [
    {
      "streakDays": 3,
      "name": "3-day",
      "commands": ["give %player% Consumable_Potion_Health"]
    },
    {
      "streakDays": 7,
      "name": "weekly",
      "commands": [
        "give %player% Tool_Pickaxe_Iron",
        "say %player% 已连续投票 %streak% 天!"
      ]
    },
    {
      "streakDays": 30,
      "name": "monthly",
      "commands": ["give %player% Armor_Set_Rare"]
    }
  ]
}
选项 类型 描述
streakBonusEnabled 布尔值 启用或禁用连续投票奖励。
streakBonuses 数组 连续投票里程碑列表。
streakDays 数字 触发此奖励的确切连续天数(例如,7 = 在他们连续投票的第 7 天)。
name 字符串 此连续奖励的显示名称。
commands 数组 当玩家达到此连续天数时执行的命令。

注意: 连续奖励仅在玩家的连续天数与 streakDays 完全匹配时触发。一个拥有 7 天连续记录的玩家将获得第 7 天奖励,但不会在这次投票中获得第 3 天奖励。

里程碑奖励

奖励达到总投票数里程碑的玩家。

{
  "milestoneBonusEnabled": true,
  "milestoneBonuses": [
    {
      "votesRequired": 10,
      "name": "first-ten",
      "commands": ["give %player% Consumable_Potion_Health 3"]
    },
    {
      "votesRequired": 50,
      "name": "fifty",
      "commands": ["give %player% Weapon_Bow_Rare"]
    },
    {
      "votesRequired": 100,
      "name": "century",
      "commands": [
        "give %player% Mount_Horse_Rare",
        "say %player% 达到了 %totalvotes% 总投票数!"
      ]
    }
  ]
}
选项 类型 描述
milestoneBonusEnabled 布尔值 启用或禁用里程碑奖励。
milestoneBonuses 数组 投票数量里程碑列表。
votesRequired 数字 触发此奖励的确切总投票数。
name 字符串 此里程碑的显示名称。
commands 数组 当玩家达到此里程碑时执行的命令。

完整配置示例

{
  "commands": [
    "say %player% 在 %service% 上投了票",
    "give %player% Weapon_Staff_Onyxium"
  ],
  "broadcastVote": false,
  "debugMode": false,
  "randomRewardsEnabled": true,
  "randomRewards": [
    {
      "name": "common",
      "chance": 70.0,
      "commands": ["give %player% Consumable_Apple 5"]
    },
    {
      "name": "rare",
      "chance": 25.0,
      "commands": ["give %player% Armor_Leather_Chest"]
    },
    {
      "name": "legendary",
      "chance": 5.0,
      "commands": ["give %player% Weapon_Sword_Legendary"]
    }
  ],
  "streakBonusEnabled": true,
  "streakBonuses": [
    {
      "streakDays": 7,
      "name": "weekly",
      "commands": ["give %player% Tool_Pickaxe_Iron"]
    }
  ],
  "milestoneBonusEnabled": true,
  "milestoneBonuses": [
    {
      "votesRequired": 100,
      "name": "century",
      "commands": ["give %player% Mount_Horse_Rare"]
    }
  ]
}

离线投票

如果玩家在离线时投票,其奖励将被存储,并在他们下次加入服务器时自动发放。玩家也可以使用 /claimvotes 命令手动领取任何待处理的奖励。

数据文件

插件将数据存储在 plugins/HytaleVoteListener/ 文件夹中:

文件 描述
config.json 插件配置
vote_data.json 玩家投票统计(连续天数、总投票数)
pending_rewards.json 为离线玩家排队的奖励

命令

命令 权限 描述
/claimvotes hyvote.claimvotes 手动领取待处理的投票奖励

需求

支持

如果你遇到问题或有功能请求,请在 GitHub 上提交 issue,或通过 https://hyvote.org 联系我们。

许可证

MIT 许可证

版权所有 (c) 2026 Hyvote

特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人员在满足以下条件的情况下这样做:

上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而引起的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼还是其他诉讼中。