使用 Minecraft 1.19 的最新开发版本
1.19最新开发版本在这里
你还可以在GitHub获取最新的ProtocolLib[随时],他在这里
如果您喜欢 ProtocolLib 或者它使您的生活变得更加轻松,请考虑一次性捐赠、赞助项目或在下面留下正面评价。这真的意味着很多!
某些任务无法使用标准 Bukkit API 执行,可能需要直接使用甚至修改 Minecraft。一种常见的技术是修改传入和传出数据包,或将自定义数据包注入流中。然而,这非常麻烦,大多数实现会在新版本的 Minecraft 发布后立即中断,主要是由于混淆。
ProtocolLib 是一个允许对 Minecraft 协议进行读写访问的库。它处理反射和通道注入所需的大部分开销,并提供包装器来简化数据包修改。它使用大多数 Minecraft 更新进行更新,因此理想情况下,单个插件不必更新。ProtocolLib 通常不需要为次要更新进行更新,尤其是在代码更改很少的情况下(即 1.8 安全更新)
有用的链接
报告错误前的支持
:
- 寻找ProtocolLib的更新,您的错误或错误很可能已经修复。
- 阅读堆栈跟踪并确保它是 ProtocolLib 的错误。ProtocolLib的软件包是com.comphenix.protocol。如果你在任何地方都看不到,那就不是ProtocolLib。
- 查看常见错误 wiki 页面。
- 使用问题跟踪器!不要在评论中报告错误。请在报告新问题之前搜索重复项!
- 提供尽可能多的信息。提供您的 ProtocolLib 版本和 Spigot 版本。
- 使用 pastebin 提供任何堆栈跟踪或“错误”。
只需从上面的链接下载ProtocolLib。它自己不做任何事情,它只是允许其他插件运行。
对于开发人员
可以在此处找到一个有点过时的教程。维基上正在开发一个新教程。
TinyProtocol Protocol有一个轻量级的ProtocolLib替代品,称为TinyProtocol
。它本质上是一种发送和接收原始数据包的机制,无需结构修饰符或包装器。可以在这里找到它。
Maven 存储库 如果您使用的是 Maven,您将能够从以下存储库
自动下载 jar、JavaDoc 和相关源代码:
.HTML:
<存储库>
<存储库>
<id>dmulloy2-repo</id>
<url>repo.dmulloy2.net</url>
</repository>
<!– 等等 –>
</存储库>
格拉德尔:
代码(爪哇):
Repository {
maven { URL “https://repo.dmulloy2.net/repository/public/” }
}
然后将其添加为依赖项,如下所示:
.HTML:
<dependencies>
<dependency>
<groupId>com.comphenix.protocol</groupId> <artifactId>ProtocolLib</artifactId> <version>4.8.0</version> </dependency> <!– 等等 –></依赖关系>
格拉德尔:
代码(爪哇):
dependencies {
compileOnly group: “com.comphenix.protocol”, name: “ProtocolLib”, version: “4.8.0”;
}
命令协议主
管理命令
。支持以下子命令:
- 配置:重新加载配置文件。
- 检查:在 BukkitDev 上检查新版本。
- 版本:显示当前运行的 ProtocolLib 版本。
- 计时:切换测量每个插件花费的 CPU 时间。
- 侦听器:显示哪些插件正在使用 ProtocolLib,以及它们正在拦截的数据包类型。
将提供的数据包的十六进制表示形式记录到文件或控制台 语法:/packetlog <protocol> <sender> <packet> [文件/控制台
]
可以在此处找到接受的数据包。
所有这些命令都需要权限协议.admin。
配置 有一小部分配置
选项可用:
全局部分
代码 (YAML):
auto updater.notify:true #Inform任何具有权限的播放器 protocol.info 新版本的 ProtocolLib 发布时。
auto updater.download:false #Automatically下载并安装最新版本的 ProtocolLib。安装将在服务器重新启动时生效。
自动更新程序.延迟:43200 #The每次检查新更新之间的秒数。
自动更新程序.last: 0 #This仅记录上次执行更新检查的时间(以自 1970 年 1 月 1 日以来的秒为单位)。将其设置为 0 以强制进行新的更新检查。
指标:真 #If 真,ProtocolLib 将向 mcstats.org 发布匿名使用数据。将其设置为 FALSE 以选择退出。
后台编译器:真 #If TRUE,ProtocolLib 将尝试通过动态用编译代码替换反射来提高性能。
忽略版本检查:没有 #Force ProtocolLib 为指定的 Minecraft 版本启动,即使它不兼容。
兼容性
该项目的主要目标之一是实现与不同版本的 Minecraft 的最大兼容性。最终结果非常灵活。除了包更改之外,它还应该能够抵御未来的更改。除了错误修复和新功能之外,我可能不必更新 ProtocolLib。
这怎么可能?最终,这一切都归结为反思。本质上,没有名称是硬编码的 – 每个字段、方法和类都是通过查看字段类型、包名称或参数类型来推断的。它在不同版本中非常一致。
示例插件 一些制作精良的插件
,使用 ProtocolLib 做有趣的事情。查看他们的来源(如果有的话)以获得一些灵感。
DM 我,如果你也使用ProtocolLib并希望在名单
上 统计
协议库通过BStats匿名收集统计数据。参与是完全可选的,您可以随时选择退出,尽管它对于确定插件在哪些环境中运行(即 Spigot、Java 和 ProtocolLib 的版本)非常有帮助,因此我可以相应地调整开发。
赞助商
如果 ProtocolLib 让你的生活变得更容易,或者你觉得特别慷慨,请考虑赞助这个项目!这是支持我花了很多时间维护这个插件并保持我的动力的好方法。如果您负担不起,请不要赞助。
github.com 非常感谢我的赞助商:
- 杰克1424
- 普鲁托伦
- 卵石主机
- 安达留斯68
- 阿特诺索格
- 氰新
- 光子
- 伊芙