PluginHooker 是一个 Bukkit 插件,它能够为开发者提供一种便捷的方式来控制玩家的各种监听器。 Discord QQ群
- Hook Bukkit 事件
- Hook ProtocolLib 事件
- Hook Netty pipeline (支持PacketEvents)
- 为每个玩家独立控制监听器
- Spigot: 1.8.8/1.19.4
- Netty: 4.0/4.1
- ProtocolLib: 5.3
- PacketEvents: 1.0/2.0
将以下repository添加到你的pom.xml文件内:
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
然后添加以下依赖
<dependency>
<groupId>com.github.DionaMC</groupId>
<artifactId>PluginHooker</artifactId>
<version>1.3.1</version>
</dependency>
将以下repository添加到你的build.gradle文件内:
maven {
url = uri('https://jitpack.io')
}
然后添加以下依赖
compileOnly 'com.github.DionaMC:PluginHooker:1.3.1'
为玩家启用/禁用指定的插件
public void enablePluginForPlayer(Player player) {
DionaPlayer dionaPlayer = PluginHooker.getPlayerManager().getDionaPlayer(player);
if (dionaPlayer == null) {
return;
}
dionaPlayer.enablePlugin(pluginToHook);
}
public void disablePluginForPlayer(Player player) {
DionaPlayer dionaPlayer = PluginHooker.getPlayerManager().getDionaPlayer(player);
if (dionaPlayer == null) {
return;
}
dionaPlayer.disablePlugin(pluginToHook);
}
如果要拦截或在事件被执行前执行自定义的操作,请添加一个事件监听器:
public class ExampleListener implements Listener {
@EventHandler
public void onBukkitEvent(BukkitListenerEvent event) {
// do something
}
@EventHandler
public void onProtocolLibEvent(ProtocolLibPacketEvent event) {
// do something
}
}
- Poke 提供了hook事件相关的帮助和需要hook的事件列表