PlaceholderLib

PlaceholderLib

所有正在制作中的Hytale模组的占位符解决方案。我们团结一致。

实用

ko-fi

PlaceholderLib

一个适用于 Hytale 插件的轻量级占位符 API。提供简单的注册系统,用于动态文本替换。

快速开始

1. 添加依赖

dependencies {implementation(files("libs/PlaceholderLib.jar"))}

2. 注册占位符

public class MyPlugin extends JavaPlugin {
    @Override
    public void setup() {
        // 静态占位符
        PlaceholderLib.getRegistry().register(
            new SimplePlaceholder("server_name", "MyServer")
        );

        // 动态占位符
        PlaceholderLib.getRegistry().register(
            new Placeholder() {
                @Override
                public String getIdentifier() { return "online_count"; }

                @Override
                public String resolve(PlaceholderContext ctx) {
                    return String.valueOf(getServer().getOnlinePlayers().size());
                }
            }
        );
    }
}

工作原理

  1. 注册:插件使用唯一标识符(不带 % 符号)注册占位符
  2. 模式匹配:PlaceholderLib 自动在文本中查找 %占位符id% 模式
  3. 解析:已注册的占位符将其模式替换为实际值
  4. 备用方案:未注册的占位符在文本中保持原样

占位符规则

  • 命名空间: 插件id_标识符(例如 rpg_foodlevel
  • 允许的字符: a-z0-9_
  • 区分大小写: %rep_eat_food_level%%Rep_Eat_Food_Level%
  • 使用时包裹在 % 中: %插件id_标识符%

示例实现

public class CustomPlaceholder implements Placeholder {
    @Override
    public String getIdentifier() {
        return "my_custom_value";
    }

    @Override
    public String resolve(PlaceholderContext context) {
        // 通过 context 访问玩家、世界等
        return "custom_value";
    }
}

内置支持的占位符:

玩家 %player_name% %player_uuid% %player_x% %player_y% %player_z% %player_language%

服务器 %server_name% %server_max% %server_default_world% %server_gamemode%

LuckPerms %luckperms_prefix% %luckperms_suffix% %luckperms_group%

📚 需要帮助?