检测到手机访问,点击可直接唤醒 App,体验更流畅。
返回 / 社区 / 我的世界 / ProtocolLib 运行库
我的世界

ProtocolLib 运行库

LT-YHC
2026-09-02 23:13:42 · 更新于 2026-09-14 02:21:10 · 33 浏览 · 2 回复

ProtocolLib 插件介绍
概述

ProtocolLib 是一款面向 Bukkit、Spigot、Paper 服务端的协议操作库插件,由 Kristian Strangeland(aadnk)创立,目前由 Dan Mulloy(dmulloy2)维护。它为开发者提供了对 Minecraft 网络协议的读写访问能力——通过干净、事件驱动的 API 拦截、修改、取消和注入原始数据包,而无需接触混淆的 NMS 内部代码或直接操作 Netty。

作为 Minecraft 服务器生态的"基础设施型"库插件,ProtocolLib 是绝大多数反作弊、全息图、NPC 框架、Tab 列表定制、聊天格式化等高级插件的基础依赖。Spigot 资源页累计下载已超过 300 万次。
说明:ProtocolLib 在 Modrinth 平台并无官方项目页(多个第三方"Modrinth"页面均为非官方镜像)。其官方发布渠道为 SpigotMC(资源 ID 1997)、GitHub 仓库与官方网站 protocollib.net。本文信息均基于上述官方渠道核实。
插件名称:ProtocolLib
创建者:Kristian Strangeland (aadnk)
当前维护者:Dan Mulloy (dmulloy2)
最新稳定版:5.4.0(2025-08-09)
许可协议:GPL-2.0
源码:https://github.com/dmulloy2/ProtocolLib
项目地址:
官方网站:https://protocollib.net
SpigotMC:https://www.spigotmc.org/resources/protocollib.1997
GitHub Releases:https://github.com/dmulloy2/ProtocolLib/releases
兼容性

| 项目 | 说明 |
|---|---|
| 游戏版本(稳定版 5.4.0) | Minecraft Java Edition 1.8 – 1.21.8 |
| 游戏版本(开发构建) | 1.21.9 – 26.1 |
| 服务端平台 | Bukkit、Spigot、Paper |
| Java 版本 | 5.4.0+ 需 Java 17+(推荐 Java 21 LTS)|
注意:5.4.0 是支持 1.8 至 1.21.8 的最新稳定版本;若服务端运行在 1.21.9 至 26.1,需使用 GitHub Releases 上的开发构建(dev-build),遇到问题时可尝试 5.4.1。
核心特性
数据包拦截与修改
ProtocolLib 在 Minecraft 服务端的 Netty pipeline 中注入自定义 channel handler,以事件驱动的方式暴露所有收发数据包。开发者通过 PacketContainer 以类型安全的方式读写协议字段,无需处理字节数组或反射 hack。
跨版本兼容抽象
通过模糊反射(fuzzy reflection)定位不同 MC 版本中的 NMS 类与方法,将版本差异抽象在统一 API 之下。插件开发者不再需要为每个 MC 版本硬编码 NMS 引用,极大降低了版本升级的维护成本。
自定义数据包注入
除了监听和修改现有数据包,开发者还可以通过 ProtocolLib 向客户端注入全新的数据包——这为假实体、自定义粒子效果、个性化动画等超越原版机制的功能打开了大门。
极低性能开销
数据包监听器每次处理仅增加微秒级延迟(而非毫秒级),ProtocolLib 直接挂钩底层 Netty pipeline,即使在重负载流量下也能保持服务端 TPS 稳定。内置 /protocol timings 性能剖析与 /protocol listeners 监听器清单等诊断能力,可在线上服务器快速排查数据包相关问题。
内置反射工具
提供 MinecraftReflection 等工具类,便于访问 Bukkit 公共 API 未暴露的私有字段与方法。
Maven Central 分发
5.4.0 起,ProtocolLib 已发布至 Maven Central,groupId 由旧的 com.comphenix.protocol 变更为 net.dmulloy2,开发者只需一行 Maven/Gradle 依赖声明即可引入,构建可复现。
典型应用场景
反作弊系统(检测移动、交互、战斗包)
全息图与 NPC 框架(通过数据包创建假实体)
Tab 列表定制与聊天格式化
客户端-服务端间的自定义通信协议
数据包级分析与审计
安装方法
作为服务端库使用(服主)
从官方网站、SpigotMC 资源页或 GitHub Releases 下载 ProtocolLib-5.4.0.jar。
将 JAR 文件放入服务端的 plugins/ 目录。
启动或重启服务器,无需额外配置即可生效。
建议:使用现代 Paper 服务端以获得最佳的 API 支持与性能表现;Java 环境需 17 及以上。ProtocolLib 本身不提供玩家可见功能,仅作为其他插件的依赖运行于后台。
作为依赖引入(开发者)
在 plugin.yml 中声明依赖:

depend: [ ProtocolLib ]

Maven 项目在 pom.xml 中添加(注意 5.4.0+ groupId 已变更):

<dependency>
<groupId>net.dmulloy2</groupId>
<artifactId>ProtocolLib</artifactId>
<version>5.4.0</version>
<scope>provided</scope>
</dependency>

Gradle 项目在 build.gradle 中添加:

repositories { mavenCentral() }
dependencies { compileOnly 'net.dmulloy2:ProtocolLib:5.4.0' }

在插件中通过 ProtocolLibrary.getProtocolManager() 获取 ProtocolManager 实例后即可注册数据包监听器。
适用场景
需要使用反作弊、全息图、NPC、Tab 定制等高级插件的服务器(ProtocolLib 多为这些插件的软/硬依赖)
开发需要数据包级读写能力的高级插件
希望在 Minecraft 版本升级时降低插件维护成本的开发团队
运行 Bukkit / Spigot / Paper 服务端、Java 17+ 环境的各类服务器
相关链接
官方网站:https://protocollib.net
SpigotMC 资源页:https://www.spigotmc.org/resources/protocollib.1997
GitHub 源码:https://github.com/dmulloy2/ProtocolLib

评论 (0)

分享帖子
或复制链接

使用微信扫描二维码分享给好友

打赏支持

选择打赏积分
5
积分
10
积分
20
积分
50
积分
100
积分
我的积分余额 -

打赏记录

加载中...

举报内容

确认下载
平台-
消耗积分0
当前积分-

编辑版本