github SkriptLang/Skript 2.9.0-beta1
Beta Release 2.9.0-beta1

pre-release11 days ago

Skript 2.9.0 Beta 1

Skript 2.9.0 Beta 1 is here, ready for testing! This beta contains many new features, major changes, and bug fixes to improve the Skript experience, but we need to be sure they all work properly!

Below, you can familiarize yourself with the changes. As always, report any issues to our issues page! You can also use the #2-9-0-beta1 channel in the SkriptLang Testing Guild to talk about this beta.

⚠ BETA Release Warning

This is a BETA release, which means it is not yet meant for production servers. It may contain bugs or unexpected behaviors in its current state.
We recommend you extensively test this release on a local server before taking the risk of using it on a production server (if you truly wish to).
We do have many tests in place to ensure the integrity of Skript remains stable to some degree.

Happy Skripting!

Major Changes

  • Skript can now listen to events cancelled by other plugins! Your current scripts will behave the same as they always have, but there's now the option to listen to cancelled, uncancelled, or both kinds at once:
on break of stone:
    # Normal behavior, only listens to uncancelled break events.

on uncancelled break of stone:
    # Same as `on break of stone`, only uncancelled.
    
on cancelled break of stone:
    # Will only listen to cancelled events. For example, 
    # when Worldguard prevents a block break in a protected region.

on any break of stone:
    # Will listen to both cancelled and uncancelled events.
    # Finally, `event is cancelled` will be useful!
    
on all break of stone:
    # Same as `on any break of stone`.
  • Added a config option to allow case-insensitive commands, so your accidental capslock won't mess you up as much!
# default: only /test
# insensitive: /test, /TEST, /tEsT...
command /test:
    trigger:
        broadcast "test!"
  • Adds multi-line comments. Comments are opened and closed with three hashtags ### alone on a line.
    This is code
    ###
    |
    This is a comment
    |
    ###
    This is code (again)
    • Triple-hashtags in the middle of a line (e.g. hello ### there) will not start or end a comment.
  • Support for string 'concatenation'!
    • Text can be appended to other text (e.g. set {text} to "hello" + "there") with the addition operator.
    • The concat(...) function joins any text or objects together into a single text.

⚠ Breaking Changes

  • Timespans will now show the weeks and years instead of stopping at days:
broadcast "%{_timespan}%"
- "378 days and 20 minutes"
+ "1 year and 1 week and 6 days and 20 minutes"
  • The names of function parameters can no longer include the following characters: (){}\",.

Changelog

Additions

  • #4661 Adds syntax to get the second, minutes, hours, etc of a timespan.
  • #6105 Adds support for is connected pattern in the is online condition.
  • #6272 Adds Russian translation.
  • #6334 Adds support for character codepoints.
  • #6422 Adds a new use for the 'actual' target block option.
  • #6549 Adds a suppressible warning type for deprecated syntaxes.
  • #6558 Adds ### multi-line comment support.
  • #6576 Adds support string 'concatenation'.
  • #6639 Adds fire-resistant item property support.

Bug Fixes

  • #5422 Fixes bugs with the whitelist condition.
  • #6573 Fixes is connected pattern to support only Paper server.

Removals

  • #5606 Removes the warnings in the default variable test.
  • #6505 Removes Player name/UUID in variables warning.
  • #6673 Removes old deprecated vector arithmetic syntax in favour of regular arithmetic.

Changes

  • #4661 Adds timespan details expression & improvements.
  • #5676 Changes uuid in variable names default setting.
  • #6160 Adds the option of 'breakable' to the existing unbreakable syntaxes.
  • #6207 Adds ability to listen to cancelled events.
  • #6275 Ignore cleanup lang in git blame.
  • #6306 Adds a more flexible static parse method.
  • #6307 Throw an exception when attempting to register an abstract class.
  • #6349 Creates SectionExitHandler interface.
  • #6361 Make function parameter name rules stricter.
  • #6389 Allows element-wise comparision when checking if two "and" lists are equal.
  • #6393 Adds "invincible" as a synonym of "invulnerable" in related syntaxes.
  • #6456 Adds syntax for bells and bell events.
  • #6506 Adds pathfinding condition.
  • #6550 Enhances pattern keywords for faster parsing speed.
  • #6577 Adds a config option to allow case-insensitive Skript commands
  • #6627 Allows usage messages to contain expressions.

API Changes

  • #6291 Adds parse result structure for testing scripts.
  • #6531 Adds ClassInfoReference system.
  • #6551 Allows simple root-level structures.
  • #6556 Allows look-behind for headless effect sections during init.
  • #6568 Adds function contracts, allowing functions to modify their return type/plurality based on their arguments.

Click here to view the full list of commits made since 2.8.5

Notices

Thank You

Special thanks to the contributors whose work was included in this version:

As always, if you encounter any issues or have some minor suggestions, please report them at https://github.com/SkriptLang/Skript/issues.
If you have any bigger ideas or input for the future of Skript, you can share those too at https://github.com/SkriptLang/Skript/discussions.

Don't miss a new Skript release

NewReleases is sending notifications on new releases.