GitHub — Discord
PAPIProxyBridge 是一个库桥接插件,您需要在后端和代理服务器上安装,以便允许代理插件使用 PlaceholderAPI 占位符格式化文本。
## 对于服务器所有者
这是一款旨在与实现其 API 的插件配合使用的库插件。无需进行任何配置。
在您的 Spigot (1.16.5+) 或 Fabric (1.19.3+) 服务器上安装最新版本的插件以及 [PlaceholderAPI 插件](https://www.spigotmc.org/resources/placeholderapi.6245/) 或您的 Fabric 服务器上的 [PlaceholderAPI mod](https://placeholders.pb4.eu/),然后在您的 BungeeCord 或 Velocity 代理服务器上安装该插件。
请注意,此插件不是 PlaceholderAPI 的替代品。您仍然需要在您的 Spigot/Fabric 服务器上安装 PlaceholderAPI。
## 对于开发者
PAPIProxyBridge 暴露了一个跨平台 API,让您可以使用 PlaceholderAPI 占位符格式化文本。
将库添加到您的项目
PAPIProxyBridge 可以在 `repo.william278.net` 上找到 ([在此查看 javadocs](https://repo.william278.net/javadoc/releases/net/william278/papiproxybridge/latest))。首先,将 Maven 仓库添加到您的 `build.gradle`:
```groovy
repositories {
maven { url 'https://repo.william278.net/releases/' }
}
```
然后添加依赖项:
```groovy
dependencies {
implementation 'net.william278:papiproxybridge:1.6'
}
```
使用示例
`PlaceholderAPI` 类暴露了用于格式化占位符的 API。目前,仅支持单例非括号占位符(未来会有更多)。
使用 `PlaceholderAPI.getInstance()` 获取类的实例,然后使用 `#formatPlaceholders` 方法使用占位符格式化字符串,针对玩家(使用 UUID 确保跨平台兼容性)。
该方法返回一个 [CompletableFuture](https://www.baeldung.com/java-completablefuture)(因为我们不想在代理网络与后端玩家交互时锁定线程),您可以将其用于接收格式化的字符串。
```java
// 格式化带有占位符的字符串
final PlaceholderAPI api = PlaceholderAPI.createInstance();
final UUID player = player.getUniqueId();
api.formatPlaceholders("Hello %player_name%!", player).thenAccept(formatted -> {
player.sendMessage(formatted);
});
```
切勿在对 `#formatPlaceholders` 的调用上调用 `#join()`;这是不安全的。
PAPIProxyBridge 将解析的请求缓存 30000 毫秒(30 秒),以避免在服务器的网络信道上造成过多的流量。您可以使用 `PlaceholderAPI#setCacheExpiry(long)` 方法调整缓存请求的时间。
还存在 `#formatComponentPlaceholders`。 此方法允许您提供一个包含占位符的字符串,并接收一个冒险组件,其中包含格式化的文本,其中可能包含格式和聊天事件。