SpigotMC中文版
关于

资源详情

ProtocolLib

前往SpigotMC 翻译(Beta) 下载资源

Provides read/write access to the Minecraft protocol

作者: dmulloy2 / 下载量: 2815658 / 0.00元

ProtocolLib

Use the latest dev builds for 1.21.3
Use the latest release for 1.8 through 1.21.1

Thanks for over 2 million downloads everyone!

If you love ProtocolLib or it has made your life significantly easier, consider a one-time donation, sponsoring the project or leaving a positive review below. It really means a lot!

Certain tasks are impossible to perform with the standard Bukkit API and may require working with and even modifying Minecraft directly. A common technique is to modify incoming and outgoing packets or to inject custom packets into the stream. This is quite cumbersome to do, however, and most implementations will break as soon as a new version of Minecraft has been released, mostly due to obfuscation.

ProtocolLib is a library that allows read and write access to the Minecraft protocol. It handles most of the overhead required with reflection and channel injection and provides wrappers to simplify packet modification. It is updated with most Minecraft updates so, ideally, individual plugins don't have to. ProtocolLib often doesn't need to be updated for minor updates, especially if there are few code changes (i.e. the 1.8 security updates)

Useful Links

    [*]Dev Builds
    [*]Source Code
    [*]Issue Tracker
    [*]JavaDoc
    [*]PacketWrapper

Support
Before reporting a bug:

    [*]Look for an update for ProtocolLib, there's a good chance your error or bug has already been fixed.
    [*]Read the stack trace and make sure it's an error with ProtocolLib. ProtocolLib's package is com.comphenix.protocol. If you don't see that anywhere, it's not ProtocolLib.
    [*]Check the common errors wiki page.

When reporting a bug:

    [*]Use the issue tracker! Don't report bugs in the reviews. Please search for duplicates before reporting a new issue!
    [*]Provide as much information as possible. Provide your ProtocolLib version and Spigot version.
    [*]Provide any stack traces or "errors" using pastebin.

For server operators
Just download ProtocolLib from the link above. It doesn't do anything on its own, it simply allows other plugins to function.

For developers
A somewhat dated tutorial can be found here. A new tutorial is in progress on the wiki.

TinyProtocol
There is a lightweight alternative to ProtocolLib called TinyProtocol. It is essentially a mechanism to send and receive raw packets without structure modifiers or wrappers. It can be found here.

Maven repository
If you're using Maven, you'll be able to automatically download the jar, JavaDoc and associated sources from the following repository:


dmulloy2-repo
https://repo.dmulloy2.net/repository/public/




Gradle:
Java



Then add it as a dependency like so:


com.comphenix.protocol
ProtocolLib
4.8.0




Gradle:
Java


Commands
Protocol
Main administrative command. Supports the following sub-commands:

    [*]config: Reload the configuration file.
    [*]check: Check for new versions on BukkitDev.
    [*]version: Displays the currently running version of ProtocolLib.
    [*]timings: Toggle measuring the amount of CPU time spent by each plugin.
    [*]listeners: Display what plugins are using ProtocolLib, and the packet types they are intercepting.

PacketLog
Logs hex representations of the provided packets to a file or to console
Syntax: /packetlog [file/console]
Accepted packets can be found here.

All of these commands require the permission protocol.admin.

Configuration
A small set of configuration options are available:
Global section
yaml


Compatibility
One of the main goals of this project was to achieve maximum compatibility with different versions of Minecraft. And the end result is quite flexible. Aside from package changes, it should be resilient against future changes. It's likely that I won't have to update ProtocolLib for anything but bug fixes and new features.

How is this possible? It all comes down to reflection in the end. Essentially, no name is hard coded - every field, method and class is deduced by looking at field types, package names or parameter types. It's remarkably consistent across different versions.

Example Plugins
Some well-made plugins that do interesting things with ProtocolLib. Check out their source (if available) for some inspiration.

    [*]Lib's Disguises
    [*]Holographic Displays
    [*]Advanced Anti Cheat
    [*]Server List Plus
    [*]FurnitureLib
    [*]AntiAura
    [*]PremiumVanish

DM me if you also use ProtocolLib and want to be on the list

Statistics
ProtocolLib collects statistics anonymously through BStats. Participation is completely optional and you can opt-out at any time, although it is really helpful in figuring out what environments the plugin is running in (i.e. versions of Spigot, Java, and ProtocolLib), so I can adjust development accordingly.

Sponsors
If ProtocolLib has made your life significantly easier or you're feeling particularly generous, consider sponsoring the project! It's a great way to support the many hours I've spent maintaining this plugin and keeps me motivated. Please don't sponsor if you can't afford it.

https://github.com/sponsors/dmulloy2


Huge thanks to my sponsors:

    [*]Jack1424
    [*]Plutoren
    [*]pebblehost
    [*]Andarius68
    [*]aternosorg
    [*]CyanNex
    [*]Photon
    [*]Yive


Donations
You can also make a one-time donation via PayPal (or sponsors, see above)



Huge thanks to those who have donated! :)
(If I missed you or you want to remain anonymous, shoot me a PM)


    [*]nathan818 - $1000
    [*]InstaAE - $150
    [*]MineCove - $100
    [*]Lael - $100
    [*]joehot200 - $75
    [*]Techcable - $30
    [*]VintageDon - $25
    [*]games647 - $25
    [*]Photon - $15
    [*]Ltd-Net - $11
    [*]CultivateMC - $10
    [*]Axzial - $10
    [*]snapsi - $5
    [*]Aberzhulan - $5
    [*]Art in the Shade - $5

Please don't leave bug reports in the reviews section. It's the worst place to get support and I won't respond. Use the issue tracker (after checking the common errors page and searching for duplicates), where I can actually diagnose and fix your issue.