-
Notifications
You must be signed in to change notification settings - Fork 29
Message Channels
Noxesium communicates with the server over the plugin messaging channel, but through the use of Fabric Packets. This implementation means packets are defined in Noxesium's code as they would be in Minecrafts source code. Clientbound and
serverbound packets are implemented separately since both only need to be handled on the client-side. Noxesium sends and receives all packets on the noxesium-v1
namespace. This version identifier is not intended to change, it has changed
once for Noxesium 1.0.0 but should not change again unless the entire packet system is redone. Instead, each packet starts with its own version integer. This version integer can be used to change individual packets. As Noxesium is intended
to be used between clients on servers on both different Minecraft versions and different Noxesium versions it is necessary to strongly support backwards compatibility. For this purpose the version integer in each packet can be
individually tweaked. Packets will both attempt to send in an older format and parse from an older format if the server is outdated. It is left up to the developer to build similar compatibility on the server-side.
If you are interested in understanding what packets Noxesium can receive and which it can send, feel free to look through the network.clientbound
and network.serverbound
packages. Packets are documented in their respective classes and
should offer insights into their capabilities through the variable names and constructor arguments.
Server Rules are a special system similar to Game Rules but able to be modified whenever desired. Server Rule settings are cleared whenever a player disconnects from a server. These values allow a server to affect the client's state easily. Below is a list of every server rule currently available and their data format. While server rules have packets for setting each individual server rule can decide how the packet is decoded. As such, a detailed breakdown is provided for each individual rule and how it interprets the incoming packet.
Disable Auto Spin Attack. Disables colliding with other entities while riptiding. This also prevents the spin attack from dealing any damage to entities moved through.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 0 |
Value | Boolean |
false by default. |
Global Can Place On. Makes client in adventure able to build on blocks provided. Similar to the per-item Place On but applies to all items including the empty hand.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 1 |
List | List of Blocks | Example: minecraft:grass_block will make the client think it can place blocks on grass blocks in adventure. |
Global Can Destroy. Makes client in adventure able to break blocks provided. Similar to the per-item Can Destroy but applies to all items including the empty hand.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 2 |
Blocks | List of Blocks | Example: minecraft:grass_block will make the client think it can break grass blocks in adventure. |
Held Item Name Offset. Moves the item tooltip text in the action bar vertically. Positive values move it up.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 3 |
Offset | VarInt |
0 by default. |
Camera Lock. Makes the client unable to move their camera.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 4 |
Locked | Boolean |
false by default. |
Custom Music. Disables vanilla music and adds two new sound categories: Core Music and Game Music.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 5 |
Enabled | Boolean |
false by default. |
Disable Boat Collisions. Disables boats colliding with other entities. Similar modification is recommended on the server side to ensure behaviour congruity.
Field Name | Field Type | Notes |
---|---|---|
Index | VarInt | 6 |
Value | Boolean |
false by default. |