-
Notifications
You must be signed in to change notification settings - Fork 251
Description
Minecraft Version
1.21.1
Version
1.116.0
Details
On CraftOs 1.9
When using textutils.unserialiseJSON(s, {nbt_style=true}) not all valid nbt strings are parsed as valid, some causing errors in textutils.lua instead of returning nil and an error message.
Examples will show the return values of textutils.unserialiseJSON(s, {nbt_style=true}) where s is the value specified in the example.
According to the wiki valid characters for unquoted keys are 0-9, A-Z, a-z, _, -, ., and + however not all of these are parsed correctly:
Completely unsupported
-, . and + are not parsed at all and will cause nil and an error message to be returns
Examples
s = '{entity-name:"james"}' returns nil and Malformed JSON at position 8: Unexpected "-", expected ':'.
s = '{silentlib.SpawnItemsGiven: {}}' returns nil and Malformed JSON at position 11: Unexpected ".", expected ':'.
s = '{bank+wallet: 139}' returns nil and Malformed JSON at position 6: Unexpected "+", expected ':'.
Unsupported at beginning of key
0-9, _, -, ., and + cause errors within textutils.lua when at the beginning of the key. All of the following examples cause the following error:
...rom/apis/textutils.lua:620: attempt to preform arithmetic on local 'last' (a nil value)
(Providing no key also gives this error instead of returning nil and an error message)
Examples
s = '{0of10: true}'
s = '{_broken: 5}'
s = '{-s: true}'
s = '{.james: []}'
s = '{+majo: true}'
Note
All example nbt has been checked and is valid when used in minecraft.