Skip to content

The 1.17 Update

Pre-release
Pre-release
Compare
Choose a tag to compare
@APickledWalrus APickledWalrus released this 29 Jun 19:39
· 1025 commits to master since this release
7a130c6

WARNING: This is the first beta release of Skript 2.6. It will likely contain some bugs, and it is not recommended to run these releases on a live/production server. If you choose to, please ensure you backup any important data beforehand.

NOTICE: After a lot of discussion, we have decided to drop support for 1.12 and lower, as it stops us from adding a lot of features and focusing on other parts of Skript. 2.6.x will be the last version working with 1.12 and lower. Security patches and other kind of fixes might be ported to this version, but keep in mind that features won't be added.

NOTICE (as per Skript 2.6-alpha1): due to the merge of #3924, many addons might be broken by this release. If you want to make them compatible, you may use SkriptAddonPatcher or its plugin version

Welcome back to yet another release!

We know it's been a while, but we are still working hard to bring brand new features and fixes to Skript. This update brings support for Minecraft 1.17 and all of its new features. As such, the aliases have been updated to include the new 1.17 blocks and items. You can see the full list of changes below.

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

Anyways, with that out of the way, off to the change log!

Additions

  • Add creation of temporary aliases when aliases for materials are missing (#4034)

If you were missing an alias for minecraft:basalt, the alias basalt (plural form just has s on the end) would be created.

  • Display the name of the function involved in a nonexistent function warning (#3978)
  • Updated the aliases for 1.17 (SkriptLang/skript-aliases#69)
  • Add support for using BlockData in the block events (#4033)
  • Add an expression to determine the hardness of a block (#4058)
  • Merge ExprTool with ExprOffTool (#4002) (should fix documentation issues too)

Section API (Experimental)

  • This release adds a long-awaited Section API. Many addon developers are familiar with the somewhat hacky sections provided by Tuke_Nuke (we are of course still grateful to have had this!) Addon developers are welcome to upgrade their addons to use this new system, along with providing feedback, suggestions, and reporting any issues you may find. There is no official wiki/tutorial for this API yet, but you may find it useful to reference the existing sections at https://github.com/SkriptLang/Skript/tree/master/src/main/java/ch/njol/skript/sections (#4020)

  • Removed JUnit tests as we have a better testing system now (#4091)
  • Add 1.17 features (#4070)

Please note that the dust_color_transition and vibration particles are currently missing and will be added in a future update.

  • Only print stacktrace in debug mode for missing blockstates (#4124)
  • Added a new type of conditional: parse if conditional (#4121, closes #2037, #1449)

This condition is just like the if statement, but it is prefixed with the word parse. If the condition does not pass in a parse if statement, the code in its section will not be loaded. Example:

on load:
	parse if plugin "SkBee" is enabled:
		# SkBee addon stuff here
  • Added a new type of while loop: do while loop (#4122)

This is just like the while loop, but it will always run at least one time. Example:

on load:
	set {_x} to 0
	while {_x} > 5:
		add 1 to {_x}
	# {_x} = 0

	set {_x} to 0
	do while {_x} > 5:
		add 1 to {_x}
	# {_x} = 1

Fixes

  • Fix not being able to set the world of a location (#4043, closes #2709)
  • Fix issues with teleporting asynchronously (#4026, closes #3816)

This also [re]adds the ability to teleport synchronously by prefacing the effect with force (e.g. force teleport the attacker to the victim)
Please note that the keyword 'force' indicates that the effect will not be delayed. This may cause lag spikes or server crashes when teleporting entities to unloaded chunks.

  • Fix an issue with using 'or' in CondContains (#4048, closes #4046)
  • Fix an issue with variable parsing in variables/effects (#3966, closes #837) (hooray for this fix!)
  • Fix issues with the damage effect (#4003, closes #3997)

Please note that this fix removes the ability to damage an entity with a custom damage cause. This only worked because of a bug that has been fixed for a long time. If you still wish to use a custom damage cause (retain this functionality) you can use the last damage cause expression (https://github.com/SkriptLang/Skript/blob/master/src/main/java/ch/njol/skript/expressions/ExprLastDamageCause.java - https://skriptlang.github.io/Skript/expressions.html#ExprLastDamageCause)

  • Fix an issue with setting the yaw or pitch of a location stored in a variable (#4064)
  • Fix an issue with errors on server stop by disabling scripts before addons are disabled (#4092)
  • Removed some older code that caused more issues than it solved (#4101)
  • Removed some older commented out code and fixed potential logging issues (#4104)
  • Added config options to disable the registration of hooks (#4093)

Addons may also choose to disable hooks in JavaPlugin#onLoad by calling Skript#disableHookRegistration. They may also check whether a hook is enabled through Skript#isHookEnabled.

  • Fix replace effect escaping characters when not needed (#4110, closes #1226)
  • Fix an issue where EffContinue would cause a stack overflow (#4111, closes #4096)
  • Fix an issue where the slime chunk condition was not always correct (#4115, closes #4106)