https://github.com/2008choco/networking
A platform-agnostic networking framework for Minecraft
https://github.com/2008choco/networking
bukkit fabric java minecraft networking packets
Last synced: 2 months ago
JSON representation
A platform-agnostic networking framework for Minecraft
- Host: GitHub
- URL: https://github.com/2008choco/networking
- Owner: 2008Choco
- License: mit
- Created: 2024-02-02T02:40:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-02T15:12:19.000Z (about 1 year ago)
- Last Synced: 2025-02-13T16:59:42.302Z (11 months ago)
- Topics: bukkit, fabric, java, minecraft, networking, packets
- Language: Java
- Homepage:
- Size: 154 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Networking
Born from [VeinMiner (Bukkit)](https://github.com/2008Choco/VeinMiner/)'s networking code to facilitate communication between a Bukkit server plugin and Fabric client mod, Networking aims to provide a platform-independent framework for modded Minecraft client-server communication. With an object-friendly API in mind, developers are able to create a protocol that may be shared between client and server codebases without having to copy and paste the same packet contents.
While Networking does support any platform, its usefulness shines through especially in projects that do not share a common library. For instance, a Bukkit plugin wanting to communicate with a Fabric mod. Or a Sponge server wanting to communicate with a Forge client. Networking may be used in a modded environment with shared libraries, but often their in-built APIs for client-server communication tend to be sufficient and more accustomed to their own types.
## Dependency Information
Currently supported platforms are `bukkit`, and `fabric`. If your platform is not listed, you may use `common` as a platform, you will just need to implement the `ChannelRegistrar` implementation for yourself. Or [contribute it here](https://github.com/2008Choco/Networking/pulls)! Pull requests are welcomed.
Support for Forge and NeoForge are planned. Sponge is not planned, but feel free to contribute.
**Maven:**
```xml
choco-repo
https://repo.choco.wtf/releases
wtf.choco
networking-{PLATFORM}
{VERSION}
```
**Gradle (Groovy):**
```groovy
repositories {
maven { url = "https://repo.choco.wtf/releases" }
}
dependencies {
implementation 'wtf.choco:networking-{PLATFORM}:{VERSION}'
}
```
**Gradle (Kotlin DSL):**
```kotlin
repositories {
maven { url = "https://repo.choco.wtf/releases" }
}
dependencies {
implementation("wtf.choco:networking-{PLATFORM}:{VERSION}")
}
```
## Usage/Examples
For usage information and examples on how to use Networking, please refer to [the wiki](https://github.com/2008Choco/Networking/wiki) which will go more in-depth about how to create a protocol, defining packets (messages), protocol configurations, and ChannelRegistrars for supported platforms.
## Used By
If you would like to see this library in action, [VeinMiner (Bukkit)](https://github.com/2008Choco/Networking) uses it heavily to communicate with its client-sided mod.