Skip to content

Latest commit

 

History

History
98 lines (76 loc) · 2.16 KB

README_zh_CN.md

File metadata and controls

98 lines (76 loc) · 2.16 KB

PluginHooker

PluginHooker 是一个 Bukkit 插件,它能够为开发者提供一种便捷的方式来控制玩家的各种监听器。 Discord QQ群

English

功能

  • 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

用法

Maven

将以下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>

Gradle

将以下repository添加到你的build.gradle文件内:

    maven {
        url = uri('https://jitpack.io')
    }

然后添加以下依赖

    compileOnly 'com.github.DionaMC:PluginHooker:1.3.1'

API 用法

为玩家启用/禁用指定的插件

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的事件列表