• Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

SkJson 5.0

Core Features
  • Support for Java 21+
  • Compatible with Minecraft 1.16.5+
  • Integration with Skript 2.9.2+

Key Improvements
• Enhanced MemoryCache System
  • Read/Write speed: 100–1000 μs
  • Optimized in-memory storage

• Extended Format Support
  • Native support for `.json` files
  • Preparation for `.jsonc` (JSON with comments)

• Advanced Serialization
  • Full NBT support via NBT-API
  • Extended Bukkit object serialization:
    • Location
    • Player
    • Entity
    • Inventory
    • and more...

Rewritten Features
• FileWatcher System
  • Automatic JSON file change monitoring
  • Instant cache updates on file change
  • Perfect for dynamic files (e.g., `ops.json`)

• VirtualCachedJson
  • Dynamic storage for script variables
  • Flexible in-memory data management

• HTTP Integration
  • HTTP request support
  • JSON response encoding
  • Enhanced API communication capabilities

️ Technical Improvements
  • Optimized build system
  • Improved documentation
  • Extended server support: Spigot, Paper, Purpur

Documentation
  • Updated Wiki
  • New usage examples
  • Extended tutorials

Fixes
  • Performance optimizations
  • Improved stability
  • Resolved known issues


What's Changed
* Updated documentation by @EnolaK64 in https://github.com/cooffeeRequired/skJson/pull/105
* feat: finish json handler/serializer - remover, changer, setter, getter, counter by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/111
* Features/skript syntaxes 4.1 by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/113
* Features/skript syntaxes 4.1 by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/114
* feat: finish changer. by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/116
* 4.5/requests by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/117
* feat: testing edge by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/118
* 4.5 long term changes by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/119
* Tests by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/121
* Features/new logger by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/120

Skript syntax's changes for few nodes

Key notes
- rewriten whole skJson
- new features as like configuration for file

New Contributors
* @EnolaK64 made their first contribution in https://github.com/cooffeeRequired/skJson/pull/105

Full Changelog: https://github.com/cooffeeRequired/skJson/compare/4.0.1...4.5
>[!IMPORTANT]
>Fixed mapping of nested variables

image


What's Changed
* Updated documentation by @EnolaK64 in https://github.com/cooffeeRequired/skJson/pull/105

New Contributors
* @EnolaK64 made their first contribution in https://github.com/cooffeeRequired/skJson/pull/105

Full Changelog: https://github.com/cooffeeRequired/skJson/compare/4.0.1...4.0.1-HOT-PATCHED

Big thanks to @rudde0, for reporting that issue and informing us
[!IMPORTANT]
## NEW FEATURES
All keys from json object by given path
>`coffeescript
>on script load:
set {_j} to json from "{data: {A: 'B', C: 'C', 'G': G}}"
send {_j}
set {keys::*} to all keys of "data" of {j}
send "&aKeys: %{_keys::*}%"
>`
>
Get filename from loopped file
>`coffeescript
>on script load:
loop all json files in dir "..." as files:
send "Filename: %loop-filename%"
send "File: %loop-file%"
>`

What's Changed
* Dev/fix api by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/102
* new features #1 by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/103


Full Changelog: https://github.com/cooffeeRequired/skJson/compare/4.0...4.0.1
[!NOTE]
Huge thanks to the guys who continue to diligently report bugs and test limits to the world of json - SkJson
@ExCorde
>
Big Shout Out to Them!

What's Changed
* Update 4.0 by @cooffeeRequired in https://github.com/cooffeeRequired/skJson/pull/98


Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.91...4.0
Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.7...3.0.91

[!IMPORTANT]
## BugFixes

[!NOTE]
Huge thanks to the guys who continue to diligently report bugs and test limits to the world of json - SkJson
@TrasonCo
@Val-K
@RlmUwU
>
Big Shout Out to Them!
Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.6...3.0.7

[!IMPORTANT]
## BugFixes
##### 1. Bug regarding bad parsing of nbt https://github.com/cooffeeRequired/skJson/issues/90
Code:
[quote][/quote]command /addtrade:
[quote][/quote]   permission: OP
[quote][/quote]   trigger:
[quote][/quote]      set {_jt} to json from file "plugins/SkJson/test.json" # this is my json file
[quote][/quote]       set {_slot0} to full nbt compound of slot 0 of player
[quote][/quote]       set {_slot1} to full nbt compound of slot 1 of player
[quote][/quote]       set {_slot2} to full nbt compound of slot 2 of player
[quote][/quote]       set {_n} to 0
>
[quote][/quote]       send {_jt} with pretty print to console
>
[quote][/quote]       write {_jt} to json file "plugins/SkJson/trader.json"
[quote][/quote]       loop values "trade::%{[i]n}%" of {[/i]jt}:
[quote][/quote]           send json-key to console
[quote][/quote]           set value of json object "trade::0::%{[i]n}%::0::nbt" in {[/i]jt} to {_slot0}
[quote][/quote]           set value of json object "trade::0::%{[i]n}%::1::nbt" in {[/i]jt} to {_slot1}
[quote][/quote]           set value of json object "trade::0::%{[i]n}%::2::nbt" in {[/i]jt} to {_slot2}
[quote][/quote]       write {_jt} to json file "plugins/SkJson/trader.json"
[quote][/quote]
>
At this point the nbt are converted successfully to the Object
Code:
[quote][/quote]         "nbt": {
[quote][/quote]          "..": "com.shanebeestudios.skbee.api.nbt.NBTContainer",
[quote][/quote]           "nbt": "{Count:1b,id:\"minecraft:stone\",tag:{CustomModelData:222,Damage:222,Enchantments:[{id:\"aqua[i]affinity\",lvl:1},{id:\"binding[/i]curse\",lvl:1},{id:\"vanishing_curse\",lvl:1}],RepairCost:2222,Tags:[\"Test\",\" test2\",\" test\"],display:{Lore:['[{\"text\":\"asdasdasdasd\",\"italic\":false}]'],Name:'[{\"text\":\"asdasdasd\",\"italic\":false}]'}}}"
[quote][/quote]         }
[quote][/quote]
##### 2. Bug regarding to wrong parsed http headers
Sometime could happen the Content-Type headers was broken, missing space or basically sending body to the GET request
That is already fixed, all headers could be used no matter what.
>
##### 3. Bug regarding to response types (JsonArray or Plain/Text)
The response of type JsonArray or Plain/Text was ignored, that's already fixed and sanitized!


[!NOTE]
## Add
##### ~ as path identifier of plugins/Skript/scripts
#### Example
Code:
[quote][/quote]on load:
[quote][/quote]   set {_file} to json from file "~/test.json"
[quote][/quote]   new json file "~/raw.json"
[quote][/quote]   send {_file}
[quote][/quote]
>
So the file will be created in the plugins/Skript/scripts

[!NOTE]
Huge thanks to the guys who continue to diligently report bugs and test limits to the world of json - SkJson
@PEX666
@kubaczak
@Boxic
@kitoxis
@DRAGNIL68
>
Big Shout Out to Them!
Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.5...3.0.6
[!IMPORTANT]
Fix reading json arrays from web requests.
Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.4...3.0.5

[!IMPORTANT]
Fix permission escalation for skjson command, now you need to have permission node skjson.use or op
Full Changelog: https://github.com/cooffeeRequired/skJson/compare/3.0.3...3.0.4

[!IMPORTANT]
## BugFixes
### 1. Bug regarding on editing files. with effect edit
>
Code:
[quote][/quote]command changefile:
>	trigger:
>		edit value "type" of json file "plugins/Skript/scripts/test.json" to "DIAMOND"
[quote][/quote]`
###### Before
Code:
[quote][/quote]changefile
[quote][/quote][08:28:42 INFO]: [SkJson] WARN Cannot create a file plugins/Skript/scripts/test.json cause the file already exists.
[quote][/quote]
#### 2. Bug regarding on sending web request on authorized apis (google, icloud, crypto stuff, and more)