- Java 100%
|
Some checks failed
Build / build (push) Has been cancelled
* refactor: replace magic numbers with named constants in ServerListener.keepAlive Replace unexplained numeric literals 15000L and 50 with named constants KEEPALIVE_TIMEOUT_MS and KEEPALIVE_TICK_INTERVAL_MS for improved readability. * refactor: introduce explaining variables for URI construction in SessionService Extract inline URI.create(String.format(...)) calls into named local variables hasJoinedUri and profileUri for improved readability and debuggability. * refactor: extract state handler methods in ServerListener.packetReceived Split the 100+ line packetReceived method into five private helper methods: handleHandshakePacket, handleLoginPacket, handleStatusPacket, handleGamePacket, and handleConfigurationPacket, improving readability and adhering to the Extract Method refactoring technique. * Refactor (Set II-1): Extract Texture classes from GameProfile * Refactor (Set II-2): Move keep-alive logic into KeepAliveState class * Refactor (Set II-3): Replace Conditional with Polymorphism (ContainerActionType) * style: revert automatic javadoc and line-length formatting * style: revert automatic formatting in several files * style: revert formatting of setCompression call * style: revert formatting changes, move Texture classes to auth/texture package - Revert Javadoc alignment in GameProfile.java - Revert comment line wrapping in ResolvableProfile.java - Revert all line-length/indentation changes in MinecraftTypes.java - Move Texture, TextureModel, TextureType to auth/texture/ package - Update imports in GameProfile.java, MinecraftTypes.java, ResolvableProfile.java |
||
|---|---|---|
| .github/workflows | ||
| buildSrc | ||
| example | ||
| gradle | ||
| protocol | ||
| .editorconfig | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradlew | ||
| gradlew.bat | ||
| jitpack.yml | ||
| LICENSE.txt | ||
| lombok.config | ||
| README.md | ||
| settings.gradle.kts | ||
MCProtocolLib
MCProtocolLib is a simple library for communicating with Minecraft clients and servers. It allows developers to build custom bots, clients, or servers for Minecraft with ease.
Example Code
See the example folder for sample usage.
Adding as a Dependency
MCProtocolLib builds are published to the Open Collaboration repository. Follow the below steps to add MCProtocolLib as a dependency to your project.
Maven
Add the Repository
<repositories>
<repository>
<id>opencollab</id>
<url>https://repo.opencollab.dev/main/</url>
</repository>
</repositories>
Add the Dependency
<dependency>
<groupId>org.geysermc.mcprotocollib</groupId>
<artifactId>protocol</artifactId>
<version>(version here)</version>
</dependency>
Gradle (Groovy DSL)
Add the Repository
repositories {
maven {
name 'opencollab'
url 'https://repo.opencollab.dev/main/'
}
}
Add the Dependency
dependencies {
implementation 'org.geysermc.mcprotocollib:protocol:(version here)'
}
Gradle (Kotlin DSL)
Add the Repository
repositories {
maven("https://repo.opencollab.dev/main/") {
name = "opencollab"
}
}
Add the Dependency
dependencies {
implementation("org.geysermc.mcprotocollib:protocol:(version here)")
}
Snapshots
To use snapshot builds, switch the URL to https://repo.opencollab.dev/maven-snapshots/.
Javadocs
You can find the Javadocs for MCProtocolLib on opencollab.
Building the Source
MCProtocolLib uses Gradle to manage dependencies. To build the source code, run ./gradlew clean build in the project root directory.
Support and Development
Please join the GeyserMC Discord server and visit the #mcprotocollib channel for discussion and support for this project.
License
MCProtocolLib is licensed under the MIT license.