
ServerVariables | 玩家的自定义数据和变量
[服务器端] 此模组允许您为服务器和玩家创建自己的变量,这意味着您可以完全控制设置哪些数值
查看大图ServerVariables
基于 Ajneb97 的 Minecraft ServerVariables 插件
简介
这是一个 Hytale 模组,允许在 MySQL 中存储和管理玩家变量,并具有可配置的验证和限制功能。
作者: DonKolia 版本: 1.0.0
功能特性
- ✅ 在 MySQL 中持久化存储变量
- ✅ 支持数据类型的验证系统(INTEGER、DOUBLE、TEXT)
- ✅ 可配置的限制(最小值/最大值、最大字符数)
- ✅ 自动处理超出范围的值
- ✅ 为其他插件提供公共 API
- ✅ 通过 YAML 文件进行配置
- ✅ 完整的命令系统,支持静默模式
- ✅ 自动推导初始值
安装方法
- 将
ServerVariables.jar放入 Hytale 服务器的mods/文件夹中 - 启动服务器以自动生成配置文件
- 编辑
plugins/DonKolia_ServerVariables/config.json,填入你的 MySQL 凭据 - 在
plugins/DonKolia_ServerVariables/variables/目录下配置你的变量 - 重启服务器或使用
/svar reload命令
配置
config.json
config.json 文件会自动生成在 plugins/DonKolia_ServerVariables/ 目录下:
{
"databaseHost": "localhost",
"databasePort": 3306,
"databaseName": "hytale_vars",
"databaseUser": "root",
"databasePassword": "password"
}
数据库
插件会自动创建 server_variables 表:
CREATE TABLE server_variables (
uuid VARCHAR(36) NOT NULL,
player_name VARCHAR(16),
var_key VARCHAR(64) NOT NULL,
var_value TEXT,
PRIMARY KEY (uuid, var_key)
);
字段说明:
uuid- 玩家的 UUIDplayer_name- 玩家名称(方便查询)var_key- 变量名称var_value- 存储的值
变量配置
变量定义在 plugins/DonKolia_ServerVariables/variables/ 目录下的 YAML 文件中。
示例文件
首次启动时,会创建两个示例文件:
variables_numerales.yml
variables:
oro:
value_type: INTEGER
limitations:
max_value: 999999
min_value: 0
manage_out_of_range: true
nivel:
value_type: INTEGER
limitations:
max_value: 100
min_value: 1
manage_out_of_range: true
experiencia:
value_type: INTEGER
limitations:
max_value: 1000000
min_value: 0
manage_out_of_range: true
puntos-habilidad:
value_type: INTEGER
limitations:
max_value: 500
min_value: 0
manage_out_of_range: true
reputacion:
value_type: DOUBLE
limitations:
max_value: 100.0
min_value: -100.0
manage_out_of_range: true
variables_tipo_texto.yml
variables:
rango:
value_type: TEXT
limitations:
max_characters: 20
titulo:
value_type: TEXT
limitations:
max_characters: 30
clan:
value_type: TEXT
limitations:
max_characters: 16
prefijo:
value_type: TEXT
limitations:
max_characters: 10
sufijo:
value_type: TEXT
limitations:
max_characters: 10
变量结构
variables:
variable-name:
value_type: INTEGER|DOUBLE|TEXT
limitations:
# 对于 INTEGER 和 DOUBLE 类型:
max_value: 100
min_value: 0
manage_out_of_range: true
# 对于 TEXT 类型:
max_characters: 50
值类型
value_type:
INTEGER- 整数(例如:1、100、-5)DOUBLE- 小数(例如:1.5、99.99、-10.25)TEXT- 自由文本
限制选项
对于数值型变量(INTEGER/DOUBLE):
max_value- 允许的最大值min_value- 允许的最小值(同时也是初始值)manage_out_of_range- 如果设置为true,会自动将超出范围的值调整为最接近的限制值
对于文本型变量(TEXT):
max_characters- 允许的最大字符数
初始值
初始值是自动推导得出的:
- INTEGER/DOUBLE:取
min_value的值 - TEXT:空字符串
""
重载变量
在创建或修改 YAML 文件后:
/svar reload
命令
所有命令都使用 /svar <子命令> <参数> 的格式。
/svar set <变量名> <值> <玩家名> [silent:true]
设置变量的值。
验证规则:
- 变量必须在 YAML 文件中定义
- 值必须与变量的类型匹配
- 会应用已配置的限制
示例:
/svar set oro 1000 DonKolia
/svar set nivel 5 DonKolia
/svar set rango "Guerrero" DonKolia
/svar set reputacion 75.5 DonKolia silent:true
/svar get <变量名> <玩家名>
获取变量的值。
行为:
- 如果数据库中没有该变量,则返回初始值
- 验证变量是否已在 YAML 中定义
示例:
/svar get oro DonKolia
/svar get nivel DonKolia
/svar add <变量名> <值> <玩家名> [silent:true]
向数值型变量(INTEGER 或 DOUBLE)增加值。
验证规则:
- 仅适用于 INTEGER 或 DOUBLE 类型的变量
- 增加值后会应用限制
示例:
/svar add oro 100 DonKolia
/svar add reputacion 5.5 DonKolia silent:true
/svar reduce <变量名> <值> <玩家名> [silent:true]
减少数值型变量(INTEGER 或 DOUBLE)的值。
验证规则:
- 仅适用于 INTEGER 或 DOUBLE 类型的变量
- 减少值后会应用限制
示例:
/svar reduce oro 50 DonKolia
/svar reduce reputacion 10.0 DonKolia silent:true
/svar reset <变量名> <玩家名> [silent:true]
将变量重置为初始值。
行为:
- INTEGER/DOUBLE:重置为
min_value - TEXT:重置为空字符串
示例:
/svar reset oro DonKolia
/svar reset nivel DonKolia silent:true
/svar reload
重新加载插件配置和 YAML 变量。
示例:
/svar reload
silent:true 参数
在命令末尾添加 silent:true 可以抑制确认消息。
示例:
/svar set oro 1000 DonKolia silent:true
限制管理
manage_out_of_range: true
启用后,超出范围的值会被自动调整:
oro:
value_type: INTEGER
limitations:
max_value: 1000
min_value: 0
manage_out_of_range: true
示例:
/svar set oro 1500 DonKolia→ 保存为1000/svar set oro -50 DonKolia→ 保存为0
manage_out_of_range: false
禁用后,操作会被拒绝:
nivel:
value_type: INTEGER
limitations:
max_value: 100
min_value: 1
manage_out_of_range: false
示例:
/svar set nivel 150 DonKolia→ 错误:"值 150 超过了最大值 100"
常见错误信息
"变量 'X' 未在配置文件中定义" 该变量在任何 YAML 文件中都不存在。请先创建它。
"变量 'X' 的值类型无效。应为:INTEGER" 提供的值与变量的类型不匹配。
"值 X 超过了最大值 Y"
该值超过了允许的最大值,并且 manage_out_of_range 设置为 false。
"文本超过了最大长度 X 个字符" 文本对于 TEXT 变量来说太长了。
许可
由 DonKolia 为 Hytale 创建
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。