skript-yaml

Addon skript-yaml v1.3.2

  • 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!

Backwards compatibility and more, info at github page (https://github.com/Sashie/skript-yaml/releases/tag/v1.3)
  • Like
Reactions: Uzumaki
1.13 support

  • Fixed issue with stuff not saving properly due to 'NoSuchMethod' error
**EDIT**: At the moment this version doesn't work with some older versions of spigot(1.8 etc.), you can safely use 1.2.4 if you get a 'NoSuchMethod' error
  • Fixed issue with files not loading if some keys contained integers
    • They now get converted into characters, keep this in mind when fetching data from those nodes
  • Fixed issue with elements not saving in the same order they were set
  • Fixed error when loading a file with empty nodes
  • Fixed a casting issue with lists
  • Like
Reactions: AlvianMinecraft
  • Fixed issue #6 before it was reported <3
    • Moved serialization method to better location to address an issue where certain serialization didn't happen if the file was loaded and saved again(without setting the value)
  • Added more skript classes to the representer
    • Date, Time, Timespan, Color and WeatherType
      • Date is parsed the same way snakeyaml would have converted 'java.util.Date'
      • The rest use skript methods to convert back and forth
Bugfixes

  • Added Skripts ItemType and Slot class to the yaml representer
    • This fixes certain items not being saved as ItemStack
  • Fixed stacktrace when saving empty yaml
  • Updated the Yaml expression to filter color codes back and forth
    • Use the 'without string checks' option to disable it
Bugfixes and more
  • Updated how de/serialization works using Snakeyamls built in methods
    • This means you will see a change in how Skript serialized classes look removing the map node 'skriptclass' to a tag '!skriptclass' that Snakeyaml uses to parse data types
    • Vector and Location also have a tag and removal of the map node representing the data type
    • Bukkits ConfigurationSerializable data types are also de/serializable using the same method bukkit feeds to snakeyaml
      • These types have their own serialized structure
    • It will update any previously saved data types
  • Added Effect to delete all yaml or any loaded yaml from a directory
  • 'delete all [y[a]ml] from [(1¦non[(-| )]relative)] director(y|ies) %strings%'
  • 'delete (all|any) loaded [y[a]ml] from [(1¦non[(-| )]relative)] director(y|ies) %strings% [using [the] filename as [the] id]'
  • Re-added 'Does yaml path exist' condition since the built in skript version was returning the wrong result (check docs for more info)
  • Changed 'Yaml' expression to [[skript-]y[a]ml] (1¦value|2¦(node|path) list|3¦(node|path)[s with] keys|4¦list) %string% (of|in|from) %string% [without string checks]
    • Using '(node|path) list' only gets a list of nodes at that path (full names like 'rootnode.subnode' are returned)
  • Fixed comments and header not loading into memory during a fresh load (causing them to not be saved as a result)
  • Snakeyaml loads asynchronously already so i changed loading 'Effect' instead of 'AsyncEffect' (it fixes an error that happens sometimes)

Skript serialized classes now look like...
Code:
nodeName: !skriptclass
   type: someclasstype
   data: bGF3bHMgZ2V0IHJla3QgPDMgdGhpcyBpcyBvbmx5IGZvciBleGFtcGxl
Code:
Added even more things to make the addon more feature complete

  - Added effect `[re]load all [y[a]ml] from [(1¦non[(-| )]relative)] director(y|ies) %strings% [using [the] filename as [the] id]` (loads all .yml from a directory thx pikachu for the idea)
  - Files are now saved with additional lines between each node
    - Updated 'Save yaml' effect to...
      - `save [y[a]ml] %string% [(1¦without extra lines between nodes)]`
  - Comments and header no longer add additional lines by default
    - Updated 'Yaml comment/header' expressions to...
      - `[the] comment[s] (of|from) [y[a]ml] node[s] %strings% (of|in|from) %string% [(1¦with [an] extra line)]`
      - `[the] (comment[s] (at|on) [the] top of |header (of|from)) %string% [(1¦with [an] extra line)]`
  - Updated 'Yaml' expression return type now stuff like this works...
    - broadcast yaml value "location" from "plugins/skript-yaml/teleport.yml"
    - teleport player to yaml value "location" from "plugins/skript-yaml/teleport.yml"
  • Like
Reactions: KingAlterIV
Removed AsyncEffect from save effect due to issues

To reproduce said issue...

code_language.skript:
On script load:
   load yaml "plugins/skript-yaml/test/test.yml" as "test"

command /test:
   trigger:
       loop 100 times:
           set yaml value "node1.node2.node3" from "test" to 1
           save yaml "test"
  • Like
Reactions: KingAlterIV