Skip to content

Instantly share code, notes, and snippets.

@Dinnerbone
Last active May 14, 2020 12:41
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Dinnerbone/5631634 to your computer and use it in GitHub Desktop.
Save Dinnerbone/5631634 to your computer and use it in GitHub Desktop.
New chat system for Minecraft. The server won't translate any text for the client, and there'll be a proper stack based colouring/formatting system, so no more leaking colours, english-only messages, or out of date translations.
{
"color": "yellow",
"translate": "multiplayer.player.joined",
"using": [
"Dinnerbone"
]
}
{
"color": "gray",
"italic": true,
"text": [
"[",
"Dinnerbone",
": ",
{
"translate": "commands.give.success",
"using": [
"Stone",
"1",
"1",
"Dinnerbone"
]
},
"]"
]
}
{
"translate": "death.attack.outOfWorld",
"using": [
"Dinnerbone"
]
}
{
"translate": "death.attack.explosion.player",
"using": [
"Dinnerbone",
"Creeper"
]
}
{
"translate": "chat.type.chat",
"using": [
"Dinnerbone",
"Hello, world!"
]
}
{
"translate": "chat.type.emote",
"using": [
"Dinnerbone",
"dances"
]
}
{
"color": "red",
"translate": "commands.generic.usage",
"using": [
{
"translate": "commands.time.usage"
}
]
}
@oloflarsson
Copy link

This looks like a wonderful change. Keep up the good work @Dinnerbone :)

To those complaining: Please consider that all change is uncomfortable to humans. It's a part of the human nature. You must exercise embracing change. Right now your brains are producing imaginary issues as a way of interpreting your primal reluctance towards change. After using the new system for a couple of weeks you will see none of the issues were real and that in fact the change was an improvement.

@coelho
Copy link

coelho commented Jul 1, 2013

@oloflarsson

So you believe that a server using an extra 1gbit pipe on chat online is okay?

It's not.

@Dav1dde
Copy link

Dav1dde commented Jul 1, 2013

@coelho
There is hope to get UTF-8, we spoke with Grum and provided a POC implementation, it might make it into Minecraft, there is hope! So at least a bit less bandwith is used (Still JSON overhead is bigger than UTF-8 uses less than UCS-2).

@arjunyg
Copy link

arjunyg commented Jul 23, 2013

@Dinnerbone
I am currently writing a custom client for mobile devices and I am certainly not looking forward to explaining to a frustrated user why his chat is so slow on 3G data. The protocol if recall correctly went for ~20-50 kbps for a single client (confirmed-ish by some brief not very well controlled tests involving me running around and spamming /say commands to mimick chat on a 1.5.2 client). Then doing the same test on a 1.6 client I got 90-100 kbps, not to mention that actual colored chat from a real server would have 6-8 colors per message, not just 1 like /say. Going on an actual 1.6.2 server with a nice chat going gave me 200 kbps. So while my test might not have been perfectly orchestrated, although I was careful to filter out non-minecraft traffic for my graphs, it seems that the protocol data usage has literally been doubled just from throwing around some JSON structures. People will be spending double/triple an already ridiculous amount of data, which is limited by most cell carriers (in the US at least), just to have chat that is colored Slightly better.

Now the question for Dinnerbone, why do we need JSON? Wouldn't a NBT work just fine?

Thats my take on this.
Thanks for reading,
Arjun

PS: Those entity position updates that everyone was talking about fixing last year never did get fixed did they...? (Probably explains the 100 kbps on the real server test....)

@tigerw
Copy link

tigerw commented Sep 14, 2013

Aw man, I did like my "[INFO] Something" in http://GitHub.com/MC-Server

Now the client will make us colour the whole chat yellow, instead of just the [INFO] bit.

@pittersnider
Copy link

Shit '='

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment