ProtocolLib
使用 1.8 到 1.19.4
的最新版本 感谢大家超过 200 万次下载!
如果您喜欢 ProtocolLib 或它使您的生活变得更加轻松,请考虑一次性捐赠、赞助该项目或在下面留下正面评价。这真的意义重大!
某些任务无法使用标准 Bukkit API 执行,可能需要直接使用 Minecraft,甚至修改 Minecraft。一种常见的技术是修改传入和传出数据包或将自定义数据包注入流中。然而,这样做非常麻烦,而且大多数实现都会在新版本的 Minecraft 发布后立即中断,主要是由于混淆。
ProtocolLib 是一个允许对 Minecraft 协议进行读写访问的库。它处理反射和信道注入所需的大部分开销,并提供包装器以简化数据包修改。它更新了大多数 Minecraft 更新,因此理想情况下,单个插件不必更新。ProtocolLib 通常不需要为次要更新进行更新,尤其是在代码更改很少的情况下(即 1.8 安全更新)
相关链接
支持
在报告错误之前:
- 查找 ProtocolLib 的更新,您的错误或错误很可能已经修复。
- 读取堆栈跟踪,并确保 ProtocolLib 出错。ProtocolLib 的软件包是 com.comphenix.protocol。如果你在任何地方都看不到它,它就不是 ProtocolLib。
- 查看常见错误 wiki 页面。
报告错误时:
- 使用问题跟踪器!不要在评论中报告错误。在报告新问题之前,请搜索重复项!
- 提供尽可能多的信息。提供 ProtocolLib 版本和 Spigot 版本。
- 使用 pastebin 提供任何堆栈跟踪或“错误”。
对于服务器操作员
,只需从上面的链接下载 ProtocolLib。它本身不做任何事情,它只是允许其他插件运行。
对于开发人员
可以在此处找到一个有点过时的教程。wiki 上正在制作一个新教程。
TinyProtocol Protocol 有一个轻量级的 ProtocolLib 替代品,称为 TinyProtocol
。它本质上是一种发送和接收原始数据包的机制,无需结构修饰符或包装器。可以在这里找到它。
Maven 存储库
如果您使用的是 Maven,您将能够从以下存储库自动下载 jar、JavaDoc 和相关源:
<存储库>
<id>dmulloy2-repo</id>
<url>https://repo.dmulloy2.net/repository/public/</url>
</repository>
<!– 等等 –>
</存储库>
Gradle:
maven { url “https://repo.dmulloy2.net/repository/public/” }
}
然后将其添加为依赖项,如下所示:
<依赖项>
<groupId>com.comphenix.protocol</groupId> <artifactId>ProtocolLib</artifactId> <version>4.8.0</version> </dependency> <!– 等等 –>
</依赖项>
Gradle:
compileOnly group: “com.comphenix.protocol”, name: “ProtocolLib”, version: “4.8.0”;
}
命令 协议
主管理命令
。支持以下子命令:
- config:重新加载配置文件。
- check:检查 BukkitDev 上的新版本。
- version:显示当前正在运行的 ProtocolLib 版本。
- timings:切换测量每个插件花费的 CPU 时间。
- listeners:显示哪些插件正在使用 ProtocolLib,以及它们正在拦截的数据包类型。
PacketLog
将所提供数据包的十六进制表示记录到文件或控制台
语法:/packetlog <protocol> <sender> <packet> [file/console]
可以在此处找到接受的数据包。
所有这些命令都需要权限 protocol.admin。
配置
提供了一小组配置选项:
全局部分
auto updater.download: false #Automatically 下载并安装最新版本的 ProtocolLib。安装将在服务器重新启动时生效。
Auto Updater.delay:43200 #The 每次检查新更新之间的秒数。
Auto Updater.last:0 #This 仅记录上次执行更新检查的时间(自 1970 年 1 月 1 日以来的秒)。将其设置为 0 可强制进行新的更新检查。
metrics: true #If TRUE,ProtocolLib 会向 mcstats.org 发布匿名使用数据。将其设置为 FALSE 以选择退出。
后台编译器:true #If TRUE,ProtocolLib 将尝试通过动态将反射替换为编译代码来提高性能。
ignore version check: None #Force ProtocolLib 启动指定的 Minecraft 版本,即使它不兼容。
兼容性 该项目的主要目标
之一是实现与不同版本的 Minecraft 的最大兼容性。最终结果非常灵活。除了软件包更改之外,它还应该能够抵御未来的更改。除了错误修复和新功能外,我可能不必更新 ProtocolLib 的任何内容。
这怎么可能?归根结底,这一切都归结为反思。从本质上讲,没有名称是硬编码的 – 每个字段、方法和类都是通过查看字段类型、包名称或参数类型来推导的。它在不同版本之间非常一致。
示例插件 一些制作精良的插件
,它们使用 ProtocolLib 做一些有趣的事情。查看他们的来源(如果有)以获得一些灵感。
如果您也使用 ProtocolLib 并希望在统计列表中,请私信我 ProtocolLib 通过 BStats 匿名收集统计
信息。参与是完全可选的,您可以随时选择退出,尽管它对于确定插件运行的环境(即 Spigot、Java 和 ProtocolLib 的版本)非常有帮助,因此我可以相应地调整开发。
赞助商
如果 ProtocolLib 让您的生活变得更加轻松,或者您感到特别慷慨,请考虑赞助该项目!这是支持我花在维护这个插件上的许多时间并保持我的动力的好方法。如果您负担不起,请不要赞助。
https://github.com/sponsors/dmulloy2 非常感谢我的赞助商:
恭喜 5个月前1
换一个浏览器,有的浏览器会限速,可以用火狐,谷歌这种浏览器zzzz 5个月前1
哥们你可以进去吗?zzzz 5个月前0
不支持正版吗?为什么显示出现错误阿宇锅 5个月前1
联机教程在售后群 群文件了zzzz 5个月前0
可以联机不?阿宇锅 5个月前0
一体化安装的,自带启动器zzzz 5个月前0
是使用pcl2导入不阿宇锅 5个月前0
这个是通过当前下载人数进行宽带分配的,因为大家都是共用一个宽带网络,所以人多下载的话会慢一点,可以选择在半夜凌晨这种没什么人的节点进行下载,会快一点