@Snow-Pyon Snow-Pyon released this Jan 5, 2019 · 18 commits to master since this release

Assets 3

A first stable release of Skript for years is here!

Main good news since Skript 2.2:

  • Added support for Minecraft 1.9, 1.10, 1.11, 1.12 and 1.13 (latest revisions only)
  • Rewrote item and block alias system and the aliases
  • Reworked Skript documentation, since Njol's docs website was not open source
  • Added vector support (was previously an addon)
  • Added support for advanced chat formatting features (known as "JSON chat")
  • Added support for particles (not just legacy effects)
  • Added support for playing sounds
  • Added ability to place function calls before function definitions
  • Added item with lore expression
    • You have probably used the with lore expression from skQuery addon, now it is added to Skript itself, but it uses text lists instead of || for new lines. So you will have to update your scripts using this format. The same goes for the item lore expression, so it returns a text list.
       a diamond sword named "name" with lore "lore"
       a diamond sword with lore "line 1" and "line 2"
       a diamond sword with lore "line 1", "" and "line 3"
      
       set {_lore::*} to the lore of player's tool
      
  • Fixed some ancient bugs

Additions / Improvements

Note: some additions may be missing from the list below. Please read the docs
for complete reference of Skript features.

General

⭐ Vector support

  • Vector arithmetics expression
  • Rotate vector around effect
  • Rotate vector around XYZ effect
  • Location from vector expression
  • Location offset by vector expression
  • Angle between vectors expression
  • Vector between locations expression
  • Cross product between vectors expression
  • Dot product between vectors expression
  • New cylindrical vector expression
  • New spherical vector expression
  • Vector from X, Y, Z expression
  • Vector from yaw, pitch expression
  • Vector length expression
  • Normalized vector expression
  • Vector from location expression
  • Random vector expression
  • Squared vector length expression
  • Vector coordinates expression
  • Vector yaw, pitch expression
  • Entity velocity expression (changeable)

⭐ Full server list control

Now you can fully modify info of the server in the server list, but some of these features requires Paper 1.12.2 or newer

  • Server list ping event
  • Changeable MOTD expression
  • Max players expession (changeable in the ping event)
  • Online players count expression (changeable in the ping event)
  • Changeable protocol version expression
  • Changeable version string expression
  • Changeable hover list expression
  • Load server icon from file effect
  • Last loaded server icon expression
  • Server icon expression (changeable in the ping event)
  • Hide/show player info in server list effect
  • Hide player from server list effect
  • Ability to the get IP address of the pinger in the server ping event

⭐ Easy to use command cooldown system

These entries can be used in command creations:

cooldown: <timespan>
cooldown message:
cooldown bypass: <permission>
cooldown storage: <variable>

⭐ Player visibility controls

  • Effect to hide specified players from the other specified players
  • Effect to reveal specified players to the other specified players
  • Expression to get hidden players of a player
  • Condition to check whether specified players can see the other specified players

Mixed

  • Client side weather support
    • Expression to get/change client weather of players
    • Condition to check whether a player has client weather
  • Scoreboard tags support
    You can visit Minecraft Wiki for more info about scoreboard tags
    • Expression to get/change scoreboard tags of entities
    • Condition to check whether an entity has a scoreboard tag
  • Support for more tree types
  • A sample script for inventory clicks (equip anything.sk)
  • Support for parsing UUID as player and offline player
  • Support for Residence regions
  • Support for PreciousStones regions
  • Support for glowing and bad luck potion effects
  • Support for multiple vehicle passengers
  • Support for ambient and particle-less potion effects
  • Used BStats for metrics
  • Support for moved blocks in piston events
  • A way to get documentation exported from Skript in JSON format
  • A warning if some ridiculous function signatures are used
  • A warning when used delays with less than 1 tick, as they have never worked
  • Plants support for the grow event
  • Support for multiple texts in the replace effect
  • Possibility to replace items with another item in inventories
  • Support for boat types
  • direction event value in certain events
  • Support for entity UUIDs
  • Support for zero-argument functions
  • world event value for the portal creation event
  • Support for coloring potions and maps in Minecraft 1.11
  • Condition to check if an entity is on ground
  • Support for silverfish in the block form event
  • Support for configuring variable storage table name
  • Added configuration options to disable certain warnings
  • Support for forcing players to fly
  • A warning for unnecessary text conversions
  • A function to calculate experience needed to achieve the given level in Minecraft.
  • Support for using expressions in command permission message
  • Support for looping an inventory, that means looping items in the inventory
  • Support for manipulating balances of offline players
  • Local variable type hints
  • A warning for using only single : in a variable name
  • Ability to change inventory names

Effects

  • Effect to force players to respawn
  • Ability to drop items without velocity
  • Anvil support for the open inventory effect
  • Make player start/stop flying effect
  • continue effect which skips the current loop
  • Effect for sending fake block changes to players
  • Effect to force a player to say something
  • Effect to execute another effect conditionally
  • Effect to send action bars
  • Effect to leash an entity to a leash holder entity
  • Effect to suppress some warnings locally to the current script
  • Effect to send titles and subtitles

Expressions

  • ⭐ Default value expression
  • ⭐ Ternary expression
  • ⭐ List Filter
  • Off hand tool expression
  • Raw Minecraft item name expression
  • Last damage cause expression
  • Saturation expression
  • Cursor slot expression
  • Elytra gliding state expression (changeable)
  • Unbreakable item expression
  • Expressions to convert texts to lower/upper case
  • Expression to get sorted and shuffled form of a list
    (Note: a sorted/shuffled variable list doesn’t keep its indexes)
  • Expression to get the final damage in a damage event
  • Expression to get amount of an item stack
  • Glowing effect expression (can be set and reset)
  • Ability to specify the fake damage cause for the damage effect
  • Inventory support for the name expression
  • Gravity expression for Minecraft 1.10+
  • Inventory slot expression
  • Inventory action expression
  • Expression to get the currently open inventory of a player
  • Expression to get the last dropped item
  • Tamer expression for the tame event
  • Chat message format expression for the chat event
  • Book related expressions
  • Unix timestamp expression
  • ⭐ Expression to format dates
  • Expression to get type of an inventory
  • Expression to get all permissions of a player
  • 'date ago/later' expression, which increments/reduces a date by the given timespan
  • Expression to allow survival players to fly when they want to
  • Expression to create custom chest inventories
  • Expression to get holder, viewers and rows of an inventory
  • Expression to get the highest block at a location
  • Player exhaustion expression
  • Expression to get all online and offline players
  • World seed expression
  • Block humidity expression
  • Block temperature expression
  • Expression to get item of an item frame or a dropped item
  • Expression to get/change enchantments of an item
  • Player ping expression
  • Server TPS expression
  • Player hotbar slot expression (changeable)
  • ⭐ Metadata expression
  • Expression to get Minecraft language of a player
  • Spectator target expression
  • ⭐ Expression to get the spawn reason in the spawn event
  • ⭐ Expression to get the teleport cause in the teleport event
  • Expression to get leash holder of an entity
  • Expression to get/change difficulty of worlds

Conditions

  • Is script is loaded condition
  • Is block is solid condition
  • Is block flammable condition
  • Is block transparent condition
  • Is item edible condition
  • Text starts/ends with text condition
  • Is chunk loaded condition
  • Is world loaded condition
  • Is slime chunk condition
  • Is swimming condition

Events

  • Prepare crafting event
  • Inventory open and close events
  • Inventory click event
  • Entity mount/dismount events
  • Elytra glide state change event (cancellable)
  • Area effect cloud event
  • Player world change event
  • Resurrect event for 1.11+
  • Item item despawn event
  • Item merge event
  • Flight toggle event
  • Player language change event
  • Jump event
  • Hand item swap event
  • Swim toggle event

Also, there are some breaking changes:

  • Skript now requires Java 8
  • Skript also requires Spigot/Paper and Minecraft 1.9 or newer
    • CraftBukkit does not work, Glowstone might work but is not tested
  • Old aliases in scripts are not compatible
  • Numeric item ids are not supported anymore
  • Syntax for hashing was changed, MD5 is not a secure hashing algorithm. See the docs for the new syntax
    • Consider using SHA instead or better, not dealing with passwords with Skript
  • Slots now work as specified in the documentation (i.e. they're not passed to variables)
  • Some new bugs might break your scripts

For people updating from the previous beta release, a few things were changed:

  • Added back WorldGuard 6 support
  • Fixed exceptions when setting empty slots to variables
  • Fixed facing expression not working on 1.13
  • Fixed lore expression not being plural
  • Added some charts to bStats metrics

What exactly should I download for Minecraft <insert version>?

We publish one .jar for all supported Minecraft versions. Unless you're
running Minecraft 1.8 or older, just download this release and you're good
to go!

For Minecraft 1.8 and older, you'll have to try older release. Skript 2.1.2 is probably the most stable, but old development releases like 2.2-dev36 might also work. We support neither and recommend that you upgrade to Minecraft 1.9.4 or newer version.

But 1.12 and 1.13 Spigot APIs are "not compatible"! How does it work?

Skript targets 1.13 API and does not rely on Spigot-provided compatibility
layer. This means we're free to support as many Minecraft versions as we
want... with the caveat that we basically need our own compatibility layer.

What is a 'stable release'?

We'll release subsequent bug fix patches for stable releases, if they are
needed. The patches will not contain new major features, so updating to them
is very unlikely to break your scripts.

Documents describing how Skript releases work are pending merge with other changes in a pull request.

If you'd like to receive update notifications only about future stable releases, consider setting release channel: stable in your config.sk.

Hotfix 2.3.1 has been released:
Apparently, 2.3 was not so stable in the end. In particular, one critical bug (#1795) was found and fixed by @Snow-Pyon. 2.3.1 contains no new features and shouldn't break anything that worked in 2.3. Please update as soon as possible.

We (especially @bensku) are sorry for missing so obvious bug in testing.

2.3

@bensku bensku released this Jan 4, 2019 · 20 commits to master since this release

Assets 2

See hotfix 2.3.1 for release notes.

@bensku bensku released this Dec 31, 2018 · 29 commits to master since this release

Assets 3

Skript is starting to look quite stable already. If everything goes well, the next stable release will be very similar to this beta build.

  • Fixed slots not always working as the documentation claims they're supposed to work (closes #1761)
  • Fixed a potential memory leak with addons (AsyncEffect)
  • Fixed X of expression sometimes producing exceptions (closes #1774)
  • Fixed updating item variables to new Minecraft versions
Pre-release

@bensku bensku released this Dec 23, 2018 · 37 commits to master since this release

Assets 3

The last release apparently broke something; here's a fix. In addition to that, Skript's update checker (initially planned for previous release) is now available. User-facing changes should be minimal.

  • Fixed block place event working wrong with buckets (closes #1764)
  • Possibly fixed a memory leak
Pre-release

@bensku bensku released this Dec 22, 2018 · 55 commits to master since this release

Assets 3

Yet another bug fix release is here! As always, test before putting it to a public server - we might've broken something.

  • Fixed growth event being triggered by other events
  • Fixed some syntaxes not working in effect commands
  • Fixed changes applied a bit before 1.13 being missing
  • Fixed hanging events causing exceptions (#1689)
  • Fixed updating item variables to new aliases - in most cases, at least (#1697)
  • Fixed a bug that caused all growth events to trigger every time something grew (#1699, #865)
  • Fixed the expression to get player skulls not working at all (#1715)
  • Fixed a bug that caused getting enchantments from air to throw exceptions (#1732)
  • Fixed some visual effects on Minecraft 1.13 (closes #1741)
  • Fixed a few type conversion bugs (#1747)
  • Improved money hook to tolerate Vault and economy plugin bugs better
  • Fixed 'named' expression also modifying the item that was given to it
  • Updated to latest Paper API
Pre-release

@bensku bensku released this Nov 28, 2018 · 75 commits to master since this release

Assets 3

There were some quite serious issues with the previous release. They're probably fixed now.

  • Fixed some block comparison issues (#1709)
Pre-release

@bensku bensku released this Nov 27, 2018 · 76 commits to master since this release

Assets 3

Moving towards a stable release, this one contains mostly bugfixes. Hopefully we managed not to introduce any regressions this time.

  • Added back support for script aliases (closes #1504)
  • Fixed volume and pitch defaulting to 0 (closes #1677)
  • Fixed a documentation issue with broadcast effect (closes #1650)
  • Fixed startup errors on Minecraft 1.9, 1.10 and 1.11
  • Fixed a regression that caused material names not to work reliably (closes #1696)
  • Fixed a documentation issue with enchantments expression
  • Fixed item supertypes not working reliable (closes #1567, #1706)
  • Fixed SQLibrary download link leading to nonexistent page (#1676)
  • Fixed enchantment expressions and effects not working reliably (closes #1673, #1693)
  • Fixed comparison issues that occurred with some blocks
  • Updated regions hook to work with new WorldGuard versions (well, before they break API compatibility again)
  • Updated the aliases

@Snow-Pyon Snow-Pyon released this Nov 6, 2018 · 100 commits to master since this release

Assets 3

A lot of bugs regarding the aliases have been fixed! I'd like to thank @ShaneBeee, @Efnilite and @Blueyescat as they have been of a lot of help by testing the fixes we've made. This release wouldn't have happened without your help guys.

Remember that even if many bugs have been fixed, this is a beta release, not a stable one. Please don't run this on a production server until you have tested that everything works as expected.

That being said, here are the changes:

  • Updated WorldGuard hook (make sure to have WG 7.x or Skript may not work properly).
  • Added a connect effect for teleporting players through BungeeCord servers
  • Enhanced the tab-completion of command arguments (Closes #1600)
  • Added 1.13 particles and potion effects (Thanks to @ShaneBeee)
  • Added support for all 1.13 entities (thanks to @ShaneBeee, closes #1635)
  • Added an effect for sending titles and subtitles (thanks to @ShaneBeee, closes #1213)
  • Added swim related events and condtions (1.13 only, thanks to @ShaneBeee)
  • Added the ability to change inventory names (thanks to @TheLimeGlass)
  • Added the ability to change difficulty of a world (thanks to @TheLimeGlass)
  • Improved englishness of documentation (thanks to @Efnilite and @JRoy)
  • Re-added the block change effect that got lost in a merge (Closes #1626)
  • Fixed the kill effect having a strange behaviour with players (thanks to @TheLimeGlass)
  • Fixed block events firing when they had a common alias group (Closes #1567)
  • Fixed the break event having a different entity event-value in some cases (Closes #1561)
  • Fixed the place event not firing in cases where it should (Closes #1614)
  • Fixed a bug with item's durability making it not run on 1.12 and older (Closes #1617 and #1608)
  • Fixed the item with lore expression removing previous meta from items (Closes #1620)
  • Fixed a bug where entities would be treated as item types (Closes #1631)
  • Fixed item names not being always the same (Closes #1658)

@bensku bensku released this Oct 17, 2018 · 174 commits to master since this release

Assets 3

Everything is finally starting to look stable! 1.12 and older Minecraft versions might be not so stable with this build, but this is (hopefully) quite usable on 1.13.

Also, this is a beta release, not stable one. Except bugs, and don't run this outside of a test server until you have tested whether there are critical bugs or not.

  • Added a warning for using only single ':' in variable name (closes #1440)
  • Added support for 1.13 mobs (related #1385, thanks @ShaneBeee)
  • Added an event for jumping (closes #444, thanks @jaylawl)
  • Added an event for hand-switching items (closes #1445, thanks @jaylawl)
  • Added 1.13 enchantment support (related #1385, thanks @ShaneBeee)
  • Added an effect to execute an effect conditionally (thanks @OfficialDonut)
  • Added support for server list ping (thanks @Blueyescat)
  • Added expressions for player count shown in server list (thanks @Blueyescat)
  • Added an expression for protocol version (thanks @Blueyescat)
  • Added support for setting shown protocol version and version string (thanks @Blueyescat)
  • Added an expression for controlling player information visibility in server list (thanks @Blueyescat)
  • Added support for server list icon manipulation
  • Added support for tab-completing comments on 1.13 (closes #1548)
  • Added ability to send action bar messages (closes #1351, thanks @JRoy)
  • Added support for manipulating leashes
  • Added an effect for suppressing some warnings (closes #1260)
  • Improved code quality of conditions
  • Fixed a memory leak with local variables (closes #1570)
  • Fixed a bug that would freeze the server when reading a variable (closes #1591)
  • Fixed a bug with nothing as zero arithmetic (closes #1437)
  • Fixed 'raw name' expression not working reliably
  • Fixed a serious issue with plurality of aliases (closes #1592)
  • Improved documentation website (experimental, old version is still available)
Pre-release

@bensku bensku released this Oct 7, 2018 · 270 commits to master since this release

Assets 3

Warning: this is an unstable release. It will likely break your server. Use it only if you're interested in helping us find and fix bugs.

Might be time for beta build after this; testing might even prove 1.13 to be perfectly usable. 1.12 has also got some bug fixes; 1.11 and earlier are untested, and will likely be tested once we're in beta.

  • Added support for WorldGuard 7 (closes #1537)
  • Fixed 'starts with' condition parse-time checking (thanks @Blueyescat)
  • Fixed variable locking related server crashes (closes #1558)
  • Fixed item equality checks not working reliably with damaged items (closes #1563)
  • Fixed item names not working on 1.12 (closes #1554)
  • Fixed endermen not working on 1.13 (closes #1557)
  • Fixed delayed change block exceptions
  • Fixed 'on flight toggle' event syntax (closes #1541)
  • Removed, for now, support for WorldGuard 6