Skript 2.7.0-beta3
⚠ 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.
⚠ Compatibility Warning
Due to the major API changes within the 2.7.X updates, some addons may no longer work properly. Please be patient as addon developers work to update their addons. We expect to publish a new release of our AddonPatcher in the near future, but be aware that it cannot fix all issues.
📢 End of 1.12.2 Support
Yet again we mention that we have dropped support for 1.12 and lower (legacy versions) since Skript 2.7.
This means that this (and any 2.7.X) version will only work on Minecraft versions 1.13 and higher.
Only critical fixes will be backported to 2.6.X -- Report any if found.
⭐️ 2.7.0-beta3 Changelog
Click below to view the entire changelog for this release.
Full changelog
Additions
- Implements proper support for serial (Oxford) comma in lists. (Thanks @Mr-Darth)
Bug Fixes
- Fixed an issue with the random number expression throwing an ArithmeticException when trying to get a random integer between two numbers with the same whole number but a different decimal.
- Fixed a bug where Spigot would throw an exception in 1.16+ when a vector of zero attempts to grab blocks with the BlockIterator.
- Fixed a bug when using a direction with a number, the ExprBlocks expression would not respect the value. So for example loop blocks 5 above the player would loop blocks between the player and 100 blocks above because that was the max target block distance. It now properly loops 5 blocks. (Details at #5566)
- Fixed ExprVectorRandom to be strictly returning vectors with magnitude of 1 (Thanks @DelayedGaming)
- Fixed the delete changer on target entity and added a reset changer. (Closes #2695)
- Fixed an issue where condition CondIsPreferredTool would return true when provided with null values like an unset variable. (Thanks @Fusezion)
- Fixed a bug where variables that weren't involved with default variables of a script would error while having default variables for that script. (Closes #5647)
- Fixed the
on falling block land:
event being called whenever a block turns into a falling block, when it shouldn't. Only when it lands.
On top of this; on falling block falling
has been added, so you can now properly get both falling block state events. (Thanks @DelayedGaming)
- Fixed logger level color for messages that don't have a node.
- Fixed an IllegalArgumentException from being thrown when attempting to serialize a location with a world that is unloaded.
- Fixed an issue where the ExprVersionString expression couldn't be used in the 'server list ping' event. (Closes #5597) (Thanks @DelayedGaming)
- Fixed an issue where EventValueExpression classes were checking for super classes of the provided type. They now are minimum class level supertype to the type registered. Example being Egg.class was looking for Entity.class when it should have been just Egg or anything that extends Egg. (Closes #5539)
- Fixed a bug where an EntityData's details would not be applied before calling the consumer of a section in EffSecSpawn. (Closes #5711)
- Fixed some item comparisons for ItemTypes created through
type of <itemtype>
(Closes #5693)
- Fixed a big issue where Skript would not select the correct type enum. For example Skript would parse
fire
as a visual effect and due to this, it would not be allowed to be used as an entity or a block. (Closes #2711, #4773, #5497, #5557 and #5675)
Removals
- Removed
id of %itemtypes%
Skript has since supported 1.13+ and we don't use ID values anymore.
- Remove hidden files from tab complete. Example being .git/ folder displaying in the tab complete when using git for scripts source control. This was extremely annoying for those that have hidden files but don't want them to display in the tab complete.
Changes
- In versions previous to this 2.7.0-beta3 version, the syntax
(damage[s] [value[s]]|durabilit(y|ies)) of %itemtypes/slots%
would treat damage and durability the same. Now durability is how much durability is left on the tool, and damage is how damaged the tool is, so you can get both sides of the slider now rather than them being the same. (Closes #4692).
- Deprecated and marked Math2 class as internal, addons should not be using this class. Math2 is an old class that used to be provided to improve some mathematical calculations, but Java's Math class has since gotten better. (Thanks @kiip1)
- Clarified the error about left clicking on an entity which should be a damage event. (Thanks @oskarkk)
- Improved performance by switching event triggers to be using Multimap instead of Skript's Pair. (Thanks @sovdeeth)
- Switched
AliasesProvider.materials
set implementation from Java SE HashSet to FastUtil ObjectOpenHashSet, which improved Aliases loading time by ~40%. (Thanks @bluelhf)
Skript API (Addon Developers)
- Removed the final modifier on PropertyExpressions. This means you can now properly return multiples when isSingle is to return false. (Closes #5521)
- Added the ability to register custom VariableStorage classes. API changes coming in the future with #5646 so the API currently is subject to change. API documentation will be written when that pull request is merged.
Credit to the team on this release: @AyhamAl-Ali @UnderscoreTud @TheLimeGlass @APickledWalrus
📝 Help Us Test
We have an official Discord community for beta testing Skript's new features and releases.