Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List of supported packets #19

Open
BomBardyGamer opened this issue Apr 11, 2021 · 1 comment
Open

List of supported packets #19

BomBardyGamer opened this issue Apr 11, 2021 · 1 comment
Assignees
Labels
area: server informative Issues that provide information rather than describe problems

Comments

@BomBardyGamer
Copy link
Member

BomBardyGamer commented Apr 11, 2021

Packet support

This is a complete list of all the packets in the Minecraft Protocol, and their status in Krypton (how much support they have)
Feel free to let me know if I missed anything!

Status meanings:

✔️ = Fully supported - everything, or mostly everything, is supported for this packet
🟠 = Partially supported - parts of this packet are supported, but others aren't
❌ = Not supported - nothing in this packet is supported

Handshake

Assume these are all serverbound, there are no clientbound packets in this state

Name Status
Handshake ✔️
Legacy Server List Ping ✔️

Status

Clientbound

Name Status
Response ✔️
Pong ✔️

Serverbound

Name Status
Request ✔️
Ping ✔️

Login

Clientbound

Name Status Notes
Disconnect (login) ✔️
Encryption Request ✔️
Login Success ✔️
Set Compression ✔️
Login Plugin Request ✔️ Only used for Velocity modern forwarding

Serverbound

Name Status Notes
Login Start ✔️
Encryption Response ✔️
Login Plugin Response ✔️ Only used for Velocity modern forwarding

Play

Clientbound

Name Status Notes
Spawn Entity ✔️
Spawn Experience Orb ✔️
Spawn Living Entity ✔️
Spawn Painting ✔️
Spawn Player ✔️
Sculk Vibration Signal
Entity Animation 🟠 Only swing main arm/offhand supported
Statistics ✔️
Acknowledge Player Digging 🟠 Always allows the dig since we only allow breaking in creative
Block Break Animation ✔️
Block Entity Data
Block Action
Block Change ✔️
Boss Bar ✔️
Server Difficulty ✔️
Chat Message ✔️
Clear Titles ✔️ Sent when clearTitle or resetTitle is called from the API, not used internally
Tab-Complete ✔️
Declare Commands ✔️
Close Window
Window Items 🟠 Currently only used for player inventories
Window Property
Set Slot ✔️
Set Cooldown ✔️
Plugin Message ✔️
Named Sound Effect ✔️
Disconnect (play) ✔️
Entity Status 🟠 Only used for the reduced debug screen gamerule
Explosion
Unload Chunk ✔️
Change Game State 🟠 Only used for weather and game mode changes
Open Horse Window
Initialize World Border ✔️
Keep Alive ✔️
Chunk Data ✔️
Effect ✔️
Particle ✔️
Update Light ✔️
Join Game ✔️
Map Data
Trade List
Entity Position ✔️
Entity Position And Rotation ✔️
Entity Rotation ✔️
Vehicle Move
Open Book ✔️
Open Window
Open Sign Editor
Craft Recipe Response
Player Abilities ✔️
Death Combat Event No respawn mechanic yet
Player Info ✔️
Face Player
Player Position And Look ✔️
Unlock Recipes 🟠 Recipe book doesn't persist yet, so not counting this, but it is sent
Destroy Entities ✔️
Remove Entity Effect
Resource Pack Send ✔️
Respawn
Entity Head Look ✔️
Multi Block Change
Select Advancement Tab
Action Bar ✔️ Sent when sendActionBar is called from the API, not used internally
World Border Center
World Border Lerp Size
World Border Size
World Border Warning Delay
World Border Warning Reach
Camera ✔️
Held Item Change ✔️
Update View Position ✔️
Spawn Position ✔️
Display Scoreboard ✔️
Entity Metadata ✔️ Currently only used for player metadata
Attach Entity
Entity Velocity ✔️
Entity Equipment
Set Experience
Update Health ✔️
Scoreboard Objective ✔️
Set Passengers ✔️
Teams ✔️
Update Score ✔️
Set Title SubTitle ✔️ Sent when showTitle is called from the API, not used internally
Time Update ✔️
Set Title Text ✔️ Sent when showTitle is called from the API, not used internally
Set Title Time ✔️ Sent when showTitle is called from the API, not used internally
Entity Sound Effect ✔️
Sound Effect ✔️
Stop Sound ✔️
Player List Header And Footer ✔️ Same as title
NBT Query Response ✔️
Collect Item
Entity Teleport ✔️
Advancements
Entity Properties ✔️
Entity Effect
Declare Recipes 🟠 Currently always empty, but still sent to the client
Tags ✔️

Serverbound

Name Status Notes
Teleport Confirm 🟠 Received, but always ignored
Query Block NBT
Query Entity NBT ✔️
Chat Message ✔️ Both messages and commands supported, no filtering yet though
Client Status 🟠 Only for requesting statistics
Client Settings ✔️
Tab-Complete ✔️
Click Window Button
Click Window
Close Window
Plugin Message ✔️
Edit Book
Interact Entity ✔️
Generate Structure
Keep Alive ✔️
Player Position ✔️
Player Position And Rotation ✔️
Player Rotation ✔️
Player Movement ✔️
Vehicle Move
Steer Boat
Pick Item I assume this is for pick block in survival, as creative uses Creative Inventory Action
Craft Recipe Request
Player Abilities ✔️
Player Digging ✔️
Entity Action 🟠 Events are fired for all of these, though only a few are used
Steer Vehicle ✔️
Set Recipe Book State
Set Displayed Recipe
Name Item
Resource Pack Status ✔️
Advancement Tab
Select Trade
Set Beacon Effect
Held Item Change ✔️
Update Command Block
Update Command Block Minecart
Creative Inventory Action ✔️ Might still be a few bugs with this, but it's handled correctly
Update Jigsaw Block
Update Structure Block
Update Sign
Animation ✔️
Spectate
Player Block Placement ✔️
Use Item ✔️

Note: the packets "Set Difficulty", "Lock Difficulty" and "Update View Distance" have been omitted from this list, as they are single player only and will never be supported in Krypton.

In addition, the following packets will not be implemented in Krypton as they are not used by the Notchian client/server (unless there becomes a want/need to use them):

  • Ping (PLAY state)
  • Pong (PLAY state, response to Ping)
  • End Combat Event
  • Enter Combat Event
@BomBardyGamer
Copy link
Member Author

I realise that this isn't always the best metric for tracking overall progress, as most of the backend work actually isn't networking, but internal processing (ticking). Therefore, I need to come up with a better way of tracking progress than this.

@BomBardyGamer BomBardyGamer removed this from the Stable release milestone Dec 25, 2022
@BomBardyGamer BomBardyGamer added informative Issues that provide information rather than describe problems and removed enhancement New feature or request priority: high labels Dec 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: server informative Issues that provide information rather than describe problems
Projects
None yet
Development

No branches or pull requests

3 participants