diff --git a/CHANGELOG.md b/CHANGELOG.md index b3d684c..be5b7da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,14 @@ ## To Be Released... ## 5.X.Y -* Fix branding for alt:V Multiplayer (By @xCausxn #600) -* Fix the `name` field on Minecraft servers running Velocity with multiple layers of color encoding (#595) -* Added [Bun](https://bun.sh/) runtime support (#596) -* Added a rules bytes return for valve protocol (By @blackwaterbread #597) * Lock dependencies to fix problems with cheerio's `1.0.0` release and update punycode to `2.3.1` to mitigate a vulnerability (#604) +* Fix the `name` field on Minecraft servers: +* * running Velocity with multiple layers of color encoding (#595) +* * the top-level text of the description is a string composed of empty characters (#599) +* Fix branding for alt:V Multiplayer (By @xCausxn #600) +* Added [Bun](https://bun.sh/) runtime support (#596) +* Added a rules bytes return for valve protocol (By @blackwaterbread #597) ## 5.1.0 * FOUNDRY - Added support (#585) diff --git a/protocols/minecraft.js b/protocols/minecraft.js index 0d5eeab..0f7d363 100644 --- a/protocols/minecraft.js +++ b/protocols/minecraft.js @@ -60,22 +60,20 @@ export default class minecraft extends Core { const description = vanillaState.raw.description if (typeof description === 'string') { name = description - } - if (!name && typeof description === 'object' && description.text) { - name = description.text - } - if (!name && typeof description === 'object' && description.extra) { - let stack = [description]; + } else if (typeof description === 'object') { + name = description?.text || '' + + const stack = [description] while (stack.length) { - let current = stack.pop(); + const current = stack.pop() if (current.text) { - name += current.text; + name += current.text } if (Array.isArray(current.extra)) { - stack.push(...current.extra.reverse()); + stack.push(...current.extra.reverse()) } } }