Skip to content
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.

Releases: LifeMC/LifeSkript

2.2.18 | An update about the long awaited version

29 Dec 21:31
9d8368b
Compare
Choose a tag to compare

I was very busy lately. I can't keep up with this project anymore. I did many things unfinished and now I can't finish anything on this project. So, the 2.2.17 remained the latest stable version for a long time.. Current 2.2.18 has some parser bugs and MANY unfinished stuff. However I have a 2.2.18 stable JAR that I gave to some people and they are using for a long time, they had no issues so I decided to release that. Keep in mind that this JAR is not the real 2.2.18 and BEHIND the current master code, by behind I mean A LOT.

As it seems 2.2.18 will not be released anytime soon, I decided to release this as 2.2.18. Not 2.2.18-alpha, beta or pre, but just 2.2.18. But if the real 2.2.18 come one day, this will be named 2.2.18-alpha1 or such and marked as a pre-release.

I'm only doing this because 2.2.17 had some critical bugs that is fixed on this new 2.2.18 stable version.

LifeSkript v2.2.17 - Bugfix Release

18 Sep 00:56
Compare
Choose a tag to compare

Bugfix Release

This version (2.2.17) is a bug-fix and improvement release over 2.2.16. The 2.2.16 update is big and contains so much things, we tested, pushed pre-releases, etc. but we can't fix all bugs without testing on production.

We've now fixed all bugs found in the 2.2.16 release, including performance and memory bugs, and improved over-all code quality and performance. We recommend upgrading to all users running 2.2.16.

Also make sure you have -ea argument before -jar option in your launch script if you want to test and find errors, bugs, issues etc.

Custom Tab Completers

Though this planned as a bugfix release, we also added and improved many things. Here is the custom tab completers for your own very special script commands.

Example showcase of the feature:

function onTabComplete(sender: command sender, command: string, alias: string, args: strings) :: strings:
	if {_command} is "testTabComplete":
		if size of {_args::*} is 1:
			return "true" and "false" # Skript automatically sorts the completions for the argument, for example if you do /testTabComplete fa and then press tab, then the list will become "false" and "true"
		else if size of {_args::*} is 2:
			return "1", "2" and "3"
		else if size of {_args::*} is 3:
			return empty list of the type strings # Returning an empty list means no tab completion
	return none value of the type strings # Will fallback to default tab completion (player names?)
command /testTabComplete <boolean> <number> <player>:
	tab completer: onTabComplete
	trigger:
		send "&eYou entered&f: &9%arg-1% %arg-2% %arg-3%"

In this example, you can do /testTabComplete fa and then press tab, which results in /testTabComplete false.

For the second parameter, you can do /testTabComplete false and then press tab, which results in 1.

And then you can also do /testTabComplete false 1 and press tab, but this time since we returned an empty list, no completion will be available.

Full Compare View

You can view full differences at 2.2.16...2.2.17

Full Commit Notes

  • Changes from commit 470dc41, 63df494, 4a625e8 and bcc8950:

    • Updated Kotlin version from 1.3.40 to 1.3.50
  • Changes from commit 2a52bb0:

    • Added run configurations to Git
  • Changes from commit 928c40d:

    • Fixed move events not triggering on high player counts
  • Changes from commit b7bee1a:

    • Fixed inventory bug with contains condition
  • Changes from commit 3f10a68:

    • Allow ops to bypass permission checks (configurable)
  • Changes from commit 56ccf73:

    • Added/allowed minecraft style alias names - e.g: mossy_cobblestone instead of mossy cobblestone
  • Changes from commit 9b304c1:

    • [Critical] Fixed thread priority performance issue
  • Changes from commit 6dca9b3:

    • Fixed errors not being written (in some cases), also fixed a potential error
  • Changes from commit 53f751a:

    • Improved minecraft style alias compatibility - e.g: minecraft:mossy_cobblestone
  • Changes from commit 78d393a:

    • Maked netty optimizer async, speeded up player logins
    • Fixed spike detector not working in some cases
  • Changes from commit d98299d:

    • Also allowed command permission bypass for ops
  • Changes from commit 9680b39:

    • Fixed projectile comparision not working at all
  • Changes from commit dd6ccea:

    • Fixed teleport effect sometimes teleport underground and make player bugged
    • Fixed teleport effect causes fall damage if player is falling when teleporting
  • Changes from commit ecf329f:

    • Fixed color based load times not working
  • Changes from commit 0736dd0:

    • Small improvement, used shortcut method from standard library
  • Changes from commit ea3584e:

    • Fixed updater system always reporting custom version even when using an official one
    • Fixed some system properties not working due to a simple mistake
  • Changes from commit 178d771:

    • Various small changes for the release, making everything better
  • Changes from commit b56b4c8:

    • Make some things configurable by specifying system properties
    • Fixed spike detector not always working in some specific cases
  • Changes from commit ec269fd:

    • Reduce method call chaining on equipment slot, fix code duplication
  • Changes from commit 1c91e17:

    • [Critical] Fixed another memory leak with functions existing in all forks
    • Added a raw type of expression to get raw type of something
    • Exposed parameter's single information via a getSingle method
  • Changes from commit dd76e92:

    • Maked functions execute even with null values by default
    • Deprecated the agents system, will be removed in future due to maintainability issues
  • Changes from commit cfc9a2c:

    • Fixed none expression not working correctly and also giving errors when used as function arguments.
  • Changes from commit 34c8dd6:

    • Fixed comparisions always returning false when using as not, e.g if true is not false returns true now
  • Changes from commit ca4e0da:

    • Reduced casting and memory usage of the inventory changer
  • Changes from commit 5a1a66a:

    • More fixes into spike detector, allowing for truer and stricter detections
  • Changes from commit 4582b08:

    • [Critical] Actually fixed the memory leak, the other one is just clears return value before executing the function, but this one clears after executing the function.
  • Changes from commit 1a2a849:

    • Synchronize on a constant serializable object array instead of the raw object
  • Changes from commit d235160:

    • Added a warning for unqouted whitespace strings in function parameters
  • Changes from commit 10bc4b5:

    • Show exception stack traces also on speed builds for debugging purposes
  • Changes from commit 5761155:

    • Fixed sonar lint issues and speeded up the server shutdown performance
  • Changes from commit 955993e:

    • Tried to fix build failing, fixed move event not triggering/triggering rarely
  • Changes from commit ee90192:

    • Added an utility method for sneaky throwing the exceptions
  • Changes from commit 00944ea:

    • Fixed build failing, added cache for spigot config fields for performance
    • Added and used sneaky throws in various places to not lose original error
  • Changes from commit 9baa2f4:

    • Fixed development builds showing as latest version in the /skript version command
  • Changes from commit d1eb3cb:

    • Fixed and improved various things in the main Skript command
  • Changes from commit eeb03eb:

    • [Medium Priority] Optimized aliases memory usage to lower memory footprint
  • Changes from commit f9a0108:

    • [High Priority] Fixed console freezes due to thread priority system
  • Changes from commit e8f36bb:

    • Fixed almost all issues with Skript field cleaner for safer and cleaner shutdowns
  • Changes from commit 528298a:

    • Added is ground condition for anti cheats etc., optimized some other things
  • Changes from commit cde2c04:

    • Removed /skript update command from help for now, will be added later
      (you can use /skript version for now to show version and check updates)
  • Changes from commit 7da1f8c:

    • Removed the correct usage prefix in the usage message, it's useless
  • Changes from commit b145685:

    • Added an example to proguard config for compiling with newer Java versions
  • Changes from commit a1286ea:

    • Improved the variable save performance in the shutdown for fast shutdown
  • Changes from commit bbf92a1:

    • Also added encoding option to kotlin compiler for guaranteening Unicode
  • Changes from commit bf76b96:

    • Added an empty expression, works like none expression, returns an empty array/list
  • Changes from commit 74b18e5:

    • Removed the correct usage field also from the commands class, it's unrequired
  • Changes from commit 34de477:

    • Maked command map store commands with lowercase keys, avoids some bugs
  • Changes from commit 11761b7:

    • Backup files before modifying them in case of failure, or user just wants to rollback
  • Changes from commit f6f0394:

    • Use operating sytems temp folder for temporary folders, fix server jar patcher
  • Changes from commit d3bb8ac:
    ...

Read more

LifeSkript v2.2.16

19 Aug 13:39
Compare
Choose a tag to compare

Full Changes

You can view full changes since 2.2.16-pre2 here: 2.2.16-pre2...2.2.16
You can view full changes since 2.2.15 here: 2.2.15...2.2.16

Highlights

  • Spike Detector

    • It will warn you when your server freezes. If your server freezes longer than 5 seconds, it will print some warnings and useful information for finding the freeze/spike cause.
  • Tab Completion for Skript Command

    • Added tab completion for the main /skript command. You can now tab complete arguments and also script names in the /skript command.
  • Optimized Thread Priorities

    • Your TPS value will increase and you will not see random timed out disconnects now! If you still get random timed out disconnects, i suggest you a plugin named AsyncKeepAlive, available on SpigotMC.
  • Local Variable Type Hints

    • Added local variable type hints, will help you find issues with local variables. It is not so much effective, but it helped me find like two issues in my scripts. I'm tested for any false positives, found some, and fixed them.

More Highlights

  • No more "parsing text as text is useless" errors; they are warnings now.
  • Speeded up the server shutdown; daemon threads and variable save performance improvements.
  • Added automatic deleting of the old aliases, material file and features file.
  • Highly improved the variable performance - may fix random server freezes.
  • Fixed NoCheatPlus hook not functioning correctly in the push effect added in 2.2.15.
  • Improved loaded scripts message to include more information for better understanding
  • Fixed all command and argument bugs that are added in V13b, 2.2.15 is also infected.
  • Maked Skript errors appear red in console, and warnings appear yellow in the console.
  • Fixed Timings and TuSKe compatibility, it's compatible with all versions now.
  • Replaced legacy code for projectiles and shooters - runtime performance may boost.
  • Added a load after configuration option for requiring a script as a dependency.

Commits & Changes Since Last Pre-Release

  • Changes from commit fd277f5:

    • Updated the sonar lint issue store
  • Changes from commit 254cd0f:

    • Eclipse cleanup and other small changes
  • Changes from commit 4f93411:

    • Fixed exit effect in nested loops, may improve loop performance
  • Changes from commit 3a14b75:

    • Used true timings dependency, sealed the whole JAR
  • Changes from commit f1cbf1a:

    • Added config option for disabling deprecated pattern warnings
  • Changes from commit ffafc4f:

    • Fixed ancient bugs, added summon alias to spawn effect
  • Changes from commit 6a7289e:

    • Ignored the sonar lint issue store in the repo
  • Changes from commit 375040f:

    • Fixed compiler version overhaul, upgraded annotations version
  • Changes from commit 6a6c9f5:

    • Fix functions memory leak, not so much critical if you not use functions frequently
  • Changes from commit 71c9c58:

    • Allow getting materials from item type and item datas
  • Changes from commit f56fcee:

    • Added a config option for disabling namespaced commands
  • Changes from commit 199791a:

    • Fixed unknown return types in functions throwing null pointer
  • Changes from commit 3d6bf97:

    • Added /sk version command that displays current Skript version
    • Fixed /sk reload all crashing Spigot servers if script takes too long to parse
  • Changes from commit 181b3c0:

    • Fixed hopper and physics event causing lag if used in scripts
  • Changes from commit 527d087:

    • Fixed Linux compatibility in the log effect
  • Changes from commit 86e46ea:

    • Improved the hook system, added some utility methods
  • Changes from commit b0ba244:

    • Fixed performance of the log entry class
  • Changes from commit 136ce87:

    • Added local variable type hints
    • Added script load tracker
    • Fixed aliases and options issues with load after
    • Added new requires addon and requires hook configuration settings
    • Deprecated the requires plugin if requested plugin is a addon or hook, use
      newly added settings instead.
  • Changes from commit e7dc577:

    • Maked logger thread-safe
    • Fixed performance issues of logger and inventory effects
    • Prepared for the 2.2.16 release

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.16 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript v2.2.16-pre2

08 Aug 02:01
Compare
Choose a tag to compare
Pre-release

Quick Note:

Things are looking pretty stable for now. We highly recommend upgrading to latest release since critical fixes are made after the 2.2.15 release.

You can see full changes in the diff view: 2.2.16-pre1...2.2.16-pre2

If you're upgrading from the - not so much - stable 2.2.15 release, you can view the full changes since 2.2.15 from this link: 2.2.15...2.2.16-pre2

  • Changes from commit bad5ade:

    • Added lower than variant as less than / smaller than alternative
  • Changes from commit 04384cc:

    • Upgraded proguard version to newly released latest version
  • Changes from commit dda4023:

    • Fixed async events by overriding async status
    • Removed some legacy code regarding old versions
  • Changes from commit be0183c:

    • Fixed eclipse compiler warnings
    • Deprecated sub classes of deprecated classes too
  • Changes from commit f25705a, f89bcb9, aefb461 and 97046be:

    • Upgraded kotlin to 1.3.40 (from 1.3.31)
  • Changes from commit c8189e8:

    • Upgraded spotbugs annotations to 4.0.0-beta3 (from 4.0.0-beta2)
  • Changes from commit ab5a1bc:

    • Skript now warns for deprecated materials inside aliases files
  • Changes from commit a550353:

    • Fixed build failing, added missing reflection method
  • Changes from commit d795bda:

    • Fixed some small unseen typos
  • Changes from commit 2a7b1ce:

    • Added new warnings regarding command event bugs (not really bugs, but misconfiguration)
  • Changes from commit 0f44dce:

    • Added command sender to block converter
  • Changes from commit 505808c, 54cf005, f59b80d, 5333e64:

    • Upgraded kotlin to 1.3.41 (from 1.3.40)
  • Changes from commit fabcc6d:

    • Tried to fix build failing issue, and a compiler warning
    • Fixed the timings error on 1.8, this may break timings in other versions
  • Changes from commit bee9ddd:

    • Actually fixed the build failing issue this time
  • Changes from commit dda6d5c:

    • Fixed a compilation error and wrong vault jar, improved 1.8 compatibility with vault as a result
  • Changes from commit f63c1f9, d0bcccd:

    • Fixed proguard errors, the optimized version maybe a bit more stable than last release, but still not production ready
  • Changes from commit 0295912:

    • Fixed command errors, added spectator target support
  • Changes from commit 734a4e4:

    • Fixed stack over flow error in teleport effect
  • Changes from commit 3983e3e:

    • Fixed random spammy unsupported operation exception
    • Corrected the path of language files
  • Changes from commit b142bc7:

    • Used plugin instead of javaplugin in skriptaddon class, which is more compatible
  • Changes from commit 6a05070:

    • Fixed build warnings and add-on incompatibilities
  • Changes from commit 680b718:

    • Fixed a small typo in the proguard config file
  • Changes from commit 37e8635:

    • Corrected the aliases files jar name path
  • Changes from commit 7f15499:

    • Tried to fix more eclipse build warnings
  • Changes from commit 6396e34:

    • Fixed build issues with vault pom file being invalid
  • Changes from commit 477f89c:

    • Fixed wrong javadoc comment on agent event
  • Changes from commit c31cafe:

    • Fixed space w/ tab issues from latest commits
  • Changes from commit 8805701:

    • Upgraded maven site plugin to 3.8.2 (from 3.7.1)
  • Changes from commit edde4d1

    • Removed deprecated material warnings for now
  • Changes from commit 5d4072d

    • Fixed spammy move event causing lag
  • Changes from commit e132f19

    • Improved the main Skript class
  • Changes from commit 133715d

    • Fixed typos and such
  • Changes from commit f22c5d8

    • Reverted an accidental change introduced in last commit
  • Changes from commit ce63968

    • Maked warnings appear yellow in the console, of course this includes only Skript warnings
  • Changes from commit 7e41695

    • Fixed the player move event causing lag, leaks and spikes
  • Changes from commit c669032

    • Fixed console colors stucking to one color
  • Changes from commit 5ee7ada

    • Parser regex and other improvements, not tested too much
  • Changes from commit 22e4bda

    • Spike detector! It will warn you when server freezes 5 seconds or more. It includes useful information for finding the cause. If it's the Skript, you can report it to us.
    • Tab completion for skript command! You can now type /sk, press space + tab and select reload, press space one more time, type your scripts first one or two characters until it pops out, and then send the command. This allows for faster typing (and of course reloading & coding)
    • Fixed the server JAR patcher! Your server will not close upon first install/open, it patches after your server is closed. Nice job!
    • Optimized thread priorities - Your TPS value will increase and you will not see random timed out disconnects now! If you still get random timed out disconnects, i suggest you a plugin named AsyncKeepAlive, available on SpigotMC
    • Fixed wrong motd from AntiJoinBot - This not a Skript issue but i'm experiencing this on my server - too lazy to create a new project, and i decided to put this into Skript. Big brain.
  • Changes from commit 2e7a8f2

    • Fixed tests and build failing. It's always some failure/bug/error after i push some long waiting code, this bad.
    • Used https - it's more secure, if the site supports, then why not we are using it?
  • Changes from commit 70d9290

    • Disable the spike detector by default, only enable when timings is running by default
  • Changes from commit 48bed75

    • Prepare for the release v2.2.16-pre2

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.16-pre2 and compiled from this repo with same source codes, but ...

Read more

LifeSkript v2.2.16-pre1

07 Jun 21:31
Compare
Choose a tag to compare
Pre-release

Quick Note:

Things are looking pretty stable for now. We highly recommend upgrading to latest release since critical fixes are made after the 2.2.15 release.

Warning

If your server closes after upgrading for first time, just re-open it. This version has an automatic server JAR patcher that changes your server JAR file to fix some bugs. What it does:

  • Fixes console colors showing up as strange characters in log
  • Upgrades the mojang certificate to one used by the latest version

The certiciate is named as yggdrasil_pubkey.der (or something like that) in the JAR. It has updated in 1.9+ versions, this version backports this change.

You can see full changes in the diff view: 2.2.16-beta2...2.2.16-pre1

  • Changes from commit 37e93d5:

    • Excluded sun classes from auto import in IntelliJ
  • Changes from commit 5fedcb6:

    • Replaced legacy reflection code for shooters, performance may boost
  • Changes from commit 2a648c1:

    • Fixed not-null annotations for some methods in IntelliJ
  • Changes from commit d295512:

    • Fixed kick effect tries to kick player when it's already logged out
  • Changes from commit f30cc1c:

    • Optimized some hotspot events, they are mostly used events
  • Changes from commit 063202b:

    • Improved the chat reciepents expression added by mirreski
  • Changes from commit 5c7bbdc:

    • Fixed timings always enabling and causing performance drop
  • Changes from commit 5dfaa55:

    • Changed some default config values to improve user experience
  • Changes from commit 54f0256:

    • Fixed property expression returning wrong values for some properties
  • Changes from commit d6b918d:

    • Changed to use non-deprecated method in some places to fix compiler warnings
  • Changes from commit ceb103c:

    • Fixed incompatibility with patched TuSKe versions
  • Changes from commit c4b90be:

    • Fixed a function error, improved timings and log effect performance
  • Changes from commit 9d95b09:

    • Fixed tests failing hardly when there is no internet connection
  • Changes from commit e9f67fd:

    • Changed version to 2.2.16-pre1 for the 2.2.16-pre1 release
  • Changes from commit 7d08ad2:

    • Added load after configuration setting to load a specific script after another script

    For example, if we put this code to very very first lines of the test.sk, then the test.sk will load after test-2.sk:

    configuration:
        load after: test-2.sk

    The .sk prefix can be ommitted. This feature is tested and it's working, but it may cause unexpected bugs.

  • Changes from commit 07843ce:

    • Re-enabled the timings by default, but actually use it only when timings is enabled (by typing /timings on)
  • Changes from commit e8eb479:

    • Fixed intellij warnings on database storage class - this may break sql / mysql databases
  • Changes from commit c50efe6:

    • Fixed timings no class def found error on bukkit / spigot servers
  • Changes from commit 949f3c7:

    • Added a is block condition, fixed variable count showing wrong
  • Changes from commit 6ae5efb:

    • Speeded up variable saving, updated sonar lint issue store
  • Changes from commit b1292d5:

    • Tried to fix some more assertion errors
    • Fixed no such field error with chat color on ancient versions
    • Fixed errors showing up as "{0}" on console
    • Fixed disable backups completely option not working
    • Fixed errors caused by SkriptConfig class
    • Slightly improved loop all players performance
    • Fixed permission checks failing when using command from console
    • Added non-living entity support to is alive condition
    • Fixed errors caused by replace effect about getSingle
    • Improved performance of the grief prevention hook
    • Fixed sk mirror compatibility
  • Changes from commit 0df0c89:

    • Fixed build failing and upgraded the eclipse java compiler version
  • Changes from commit ae48460:

    • Added missing override annotations to all methods that misses it
  • Changes from commit 18ff447:

    • Fixed false positive errors on intellij complaining about diamond type inference
  • Changes from commit 78c136d:

    • Cache the plugin command constructor, optimize variable stack of execute methods
  • Changes from commit d0206e9:

    • Fixed is craft bukkit method always returning false
    • Fixed colored console messages showing up strange characters on logs
  • Changes from commit a81965c:

    • Fixed utf-8 problems on log effect and slightly improved logging performance
  • Changes from commit b32b402:

    • Added a condition to check if a command is exists or not
  • Changes from commit cc478c9:

    • Fixed wrong name of registered entity datas, may break older things
  • Changes from commit e552951:

    • Deprecated the shortcut boolean conditions. It will give warnings for now.

    We plan refusing these conditions on future. Warning is not supressible for now, but will be added before the full 2.2.16 release.

    How to fix this warning?

    Replace all lines like this:

    if {x}:

    With this:

    if {x} is true:

    These conditions are not from Skript, they are from add-ons and they are slowing down the skript parser, so you should not use them.

  • Changes from commit 8a83d4b:

    • Possibly fixed the stack over flow error when using contains with very long strings (#26)
  • Changes from commit 9bedc5a:

    • Fixed final bugs and errors for the v2.2.16-pre1 release. I hope it's a stable release.
  • Changes from commit 0a782f3:

    • Prepared for the v2.2.16-pre1 release. This a stable release in fact. But we can't guarantee stability even we tested it, so this is a pre-release.

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.16-pre1 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript v2.2.16-beta2

30 May 13:59
Compare
Choose a tag to compare
Pre-release

You can see full changes in the diff view: 2.2.16-beta1...2.2.16-beta2

  • Changes from commit 6fda1ec:

    • Maked some small corrections, fixed some typos
  • Changes from commit aa222ce:

    • Fixed variable counts showing wrong, maked more small corrections
  • Changes from commit 2e2c056:

    • Added configuration option for suppressing the newly added warning
    • Tried to fix strange command bug that prevents script commands from running
  • Changes from commit c09c851:

    • This the actual fix of the strange command bug, i forgot in the previous commit
  • Changes from commit e862f99:

    • Fixed typos, includes a aliases typo, we recommend upgrading to this release
  • Changes from commit 8a5b04a:

    • Added some debug messages to unresolved offline player class
  • Changes from commit bca8ab9:

    • Added the missing armor stand comparator; as i said above, we recommend upgrading
  • Changes from commit cc66da7:

    • Disabled the newly added warning by default because it is a common warning and warning
      appears on runtime
  • Changes from commit 47aeddf:

    • Increased the version number for the 2.2.16-beta2 release
    • Added a log spam property to print registered syntax elements
    • Improved duplicate pattern checking system
    • Added missing methods for the newly added annotations
    • Added property to control variable changes required for saving
    • Fixed saving variables multiple times
    • Added a time limiter for variable saves to fix tps drops
    • Fixed changing thread priority outside of shutdown causes strange issues
    • Fixed saved x variables so far message also printing outside of server shutdown
    • Added missing normal villager to english language file (german added in another commit)
    • Fixed and improved the example scripts, they are better now
  • Changes from commit 564f6f6:

    • Fixed date function returning weird values
    • Fixed contains condition when checking inventory contains an item
    • Fixed the drop effect pattern to accept multiple values
    • Fixed wrong clicked entity error; improved 1.8 compatibility
    • Also allow use of player's ip expression on connect and ping events
    • Fixed add & remove speed from player effect not working
    • Enchanced the type of expression to accept inventories end blocks
    • Enchanced uuid expression to be able to get uuids of entities
    • Fixed world expressions single method, maked constant
    • Fixed a null pointer exception error with grief prevention hook
    • Improved date handling and the date class
  • Changes from commit fbfce9b:

    • Maked errors appear red when viewed from console, only works with jline 2
  • Changes from commit df0f0ea:

    • Maked disable byte short float option a constant for better performance
  • Changes from commit cc85602:

    • Reverted the no alias message change, it is made because of misunderstanding
  • Changes from commit 365f8b1:

    • Fixed newly added warning gives false positive when using to all players
  • Changes from commit 8144d96 :

    • Also added normal villager to german language file. While we are still supporting and updating
      german language and aliases, it is hard to track multiple files in different languages and thus we don't recommend using german language or aliases.
  • Changes from commit 853215e:

    • Removed redundant charset fields, keeped the public ones, but they are deprecated.
  • Changes from commit 622f2de:

    • Also added a debug message for the console commands
  • Changes from commit 1850f20:

    • Used buffered input stream for more performance when loading scripts
    • Added configurable buffer length, configurable to increase performance
  • Changes from commit dee82a5:

    • Fixed variable saving issues appeared on beta1 release, it is stable now
  • Changes from commit 06e7273:

    • Small enchancement: Replaced getId with getType in one location and compared directly with Material instead of id
  • Changes from commit e78dce5:

    • Fixed a command argument NPE error
  • Changes from commit a82d86d:

    • Fixed function return values never resetting and causing issues
  • Changes from commit 126954e:

    • Fixed list and normal variables with the same name causing issues
  • Changes from commit 94282e7:

    • Used more buffered input streams to speed up performance
  • Changes from commit 2f9f9df:

    • Fixed binary compatibility with TuSKe, should be compatible now
  • Changes from commit 53d9557:

    • Fixed spam errors about timings in 1.8.8, won't appear if you disabled timings
  • Changes from commit 27c474d:

    • Improved the performance of the get file method, can imrpove performance

    • Added colored loaded script message based on load times, you can enable it via a system property

    • Fixed Can't get Skript version because it was null! error when exceptions thrown before Skript is enabled

    • Fixed upgrading from V7 or V9 not deletes the aliases files, i don't see anyone using them but anyway

    • Added debug messages for the load times of config, aliases and language files

    • Fixed always generating the config and fixed the line separators on some operating systems

    • Skript now does not copy aliases to plugins/Skript folder. Instead it uses ones in the JAR file by default, meaning if you have aliases in plugins/Skript folder, it will override ones in the JAR, but if not, it just uses ones in the JAR. We recommend deleting aliases files in the plugins/Skript folder to keep updated with the ones in the JAR file

    • Fixed all errors caused by workarounds class, used close on enable and checked bukkit before doing anything when Skript is not enabled at the time

    • Prepared for the 2.2.16-beta2 release. We recommend upgrading, but this is a pre-release,
      so if you have issues, we recommend reporting and downgrading

    • Also changed the latest version to enforce update notifier to notify update of this release

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.16-beta2 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript v2.2.16-beta1

25 May 08:49
Compare
Choose a tag to compare
Pre-release

Note: This release includes some experimental changes, we tested the changes, but anyway, take backups or read the changelog fully to understand what we done.

You can see full changes in the diff view: 2.2.15...2.2.16-beta1

  • Changes from commit 7cd91f9:

    • Maked "parsing as text is useless" a warning, it's an error before, but it's not a error
  • Changes from commit abd90b4:

    • Changed some parts of parser to use switch for better performance
  • Changes from commit c572977

    • Fixed last release blocks server stop more than usual, daemon threads don't block the shutdown
  • Changes from commit 6cbdb74:

    • Added detecting of old alias files and deleting them, it is better now
  • Changes from commit 30fa60a:

    • Added support for NetBeans (kotlin does not work for now)
  • Changes from commit 6df0499:

    • Fixed guardian and rabbit entities giving class loading errors on 1.7.10
    • Fixed Kotlin annotations to include @JvmField for avoiding get/set methods
    • Added documentation to some undocumented classes
    • Changed the lock system used in variables (experimental), may or may not improve performance, but for my testing it improves performance
  • Changes from commit db3030d:

    • Upgraded spotbugs annotations version, does not have any impact outside of compilation, but anyway, it's always good to use latest releases
  • Changes from commit 4150b88:

    • Fixed the NoCheatPlus hook, don't use the 2.2.15 if you need NoCheatPlus hook for EffPush
  • Changes from commit da04e6f:

    • Fixed some random errors by scheduling tasks only when Bukkit is running
  • Changes from commit 68b5bb7:

    • Fixed saved variables are not resetting after multiple saves
  • Changes from commit 0e8372c:

    • Improved loaded scripts message to include more information
  • Changes from commit e169453:

    • Fixed another strange random errors and bugs
    • Added sharp sk compatibility back, it just downloads the fixed one
    • Improved update notifier to be able to detect beta versions.
  • Changes from commit a7b2da9:

    • Lowered verbosity requirement for some messages to high verbosity
  • Changes from commit c9a1385:

    • Updated the eclipse java compiler version
  • Changes from commit e37f5ff:

    • Fixed Skript always generates example scripts when aliases is deleted
  • Changes from commit 4e791a7:

    • Added a new warning to warn users about explicit 'to player' use when
      console uses the command.
    • Final adjustments and fixes for the 2.2.16-beta1 relase.
    • This the 362th commit. Great number for a great release. Yey.

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.16-beta1 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript v2.2.15

20 May 02:30
Compare
Choose a tag to compare

Note: All users running V13b or 2.2.14 should upgrade to 2.2.15 due to some strange issues & bugs in V13b that not fixed in 2.2.14, due to lack of testing.

These strange issues are related to latest command system changes in V13b, they don't exist in V13 or V12 or 2.2.15, so using these versions are safe.

You can see full changes in the diff view: 2.2.14...2.2.15

  • Changes from commit 6ff113a:

    • Updated maven JAR plugin to newly released latest version
  • Changes from commit 0acbe48:

    • Updated readme to use new versioning system
  • Changes from commit eb98508:

    • Added add-on versions to exception message, instead of just names
  • Changes from commit dcf73e8:

    • Reformatted code, fixed indention and fixed build failing caused by previous commit
  • Changes from commit e70e01e:

    • Fixed illegal argument exception with property expression (#43)
  • Changes from commit 4a0c218:

    • Upgraded ProGuard to the newly released 6.1.0 stable release, also fixed a few typos
  • Changes from commit 7053ac2:

    • Enchanced proguard config and the default skript config
  • Changes from commit 83517c7:

    • Moved empty arrays to a separate class and maked them constants
  • Changes from commit 6e9db87:

    • Fixed mixed spaces and tabs in files; causing undefined behaviour
  • Changes from commit e0a56ff:

    • Added update inventory effect to override some add-ons, the update inventory method in bukkit causes issues, this newly added one uses skript's internal update method instead to fix such issues
  • Changes from commit a45c9b6:

    • Added functional interface annotation to more interfaces
  • Changes from commit 9adea8d:

    • Maked static methods final; final methods have better chance of inlining / optimizing by JIT
  • Changes from commit fa3654b:

    • Removed unnecessary exception object creation for getting current stack trace
  • Changes from commit 6f6c98b:

    • Fixed stack trace of StackOverflowError; it no longer show methods called after the error
  • Changes from commit fa15f59:

    • Fixed Bukkit compatibility when Jansi is not available, also added a duplicate pattern checker
  • Changes from commit 50b9944:

    • Maven test plugin now shows full stack trace in case of a test failure - this helps fixing test errors
  • Changes from commit 0c49c15:

    • Fixed wrong caller in SkriptLogger that appeared after the commit fa3654b
  • Changes from commit 7baa68c:

    • Separated listeners for chat and command events, this may improve performance and fix some issues
  • Changes from commit 287aacc:

    • Fixed the updater error when joining the server (#47)
    • Updater now uses GitHub to check updates in case web server is down (#42)
    • Added a configuration section like Java's manifest to skript (#46)
    • Improved delays to reject negative delays and handle zero delays better
    • Enchanced Version class to handle malformed versions better
    • Added new tests for recently added stuff
  • Changes from commit 0500d9c:

    • Added config option for disabling backups
    • Also added another config option to set default source version of scripts
  • Changes from commit b18f7d8:

    • Removed unnecessary entries from gitignore
    • Fixed proguard aggressive optimization causes issues with add-ons
    • Fixed a random GroupManager error from appearing
    • Added new config options for disabling the empty script and empty configuration section warnings
    • Skript now gives error when trying to execute a empty command
    • Fixed variable conflict warning with joker list variables (e.g {x::player} and {x::*} is not a conflict now)
    • Increased GitHub version number for the release
  • Changes from commit 5c45a08:

    • Fixed not detecting optimized version in the exception message
  • Changes from commit bbdacd1:

    • Fixed indention issues appeared on the last commit
  • Changes from commit 313682f:

    • Added source code of the simple java analyzer i wrote
    • Prepared for the release 2.2.15, maked some more methods final
  • Changes from commit d48fe3e:

    • Fixed missed space and re-added cancelled debug message
  • Changes from commit 6613803:

    • Added more debugging info for more easier debugging and understanding
  • Changes from commit 2a40bbc:

    • Fixed strange argument, command and variable bug first started in V13b, also exists in 2.2.14 and early 2.2.15. It's finally fixed now. You can now use Skript v2.2.15 without any worries.
  • Changes from commit fab0deb:

    • Added variable save tracker for analyzing slow server shutdowns, and slightly improved performance of variable saves.
  • Changes from commit a37db37:

    • Fixed some issues with the agents system, still not fully supported and in a experimental state though.

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.15 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript v2.2.14

12 May 10:33
Compare
Choose a tag to compare
LifeSkript v2.2.14 Pre-release
Pre-release

Warning: This version contains some strange bugs due to changes in command system, commands may not work, variables can cause strange issues!

Please update to 2.2.15 or use/downgrade to something like V13 or V12.

Note: Also, don't use optimized version as it has some issues with add-ons, if you really want it, use the optimized version in the 2.2.15, it has fixed this problem, but it's still experimental.

  • Changes from commit b3d11e5:

    • Fixed all eclipse build warnings and converted log filter to lambda
  • Changes from commit f0bfcc4:

    • Further optimized the proguard config, ran clean up with eclipse
  • Changes from commit d1e7e28:

    • You can now get group of a player! No more parsing prefixes! You just need vault and a compatible permission plugin, such as LuckPerms or GroupManager. You can even get group of offline players! Example: if group of player is "owner"

    • Changed the version format from 2.2-Vx to 2.2.x, so this release has version number 2.2.14

    • You can now throw real java errors (pls don2t abuse them thx), e.g: throw new java error "ooh! i see.. something is really really bad!"

  • Changes from commit 1e0bece:

    • Added a standard base64 encoder and decoder, e.g: encoded "hello world" gives aGVsbG8gd29ybGQ= and decoded "aGVsbG8gd29ybGQ=" gives hello world
  • Changes from commit 6a7630f:

    • Maked a variable private, and updated configuration files
  • Changes from commit bcf4ce9:

    • Timings support added to Skript! You can now see scripts in your timing results! This makes easy to spot lags and fix them. You need Paper or LifeSpigot for the TimingsV2. Change the enable timings: false option in config to true, and then type /timings on to enable the timings. After that you can type /timings paste to get results anytime

    • Also changed the proguard config to add more libraries that skript uses, may enchance proguard detection

  • Changes from commit a2115c2:

    • Skript now gives a warning when you use eco give 1000 %player% etc. instead of using native vault hook of Skript, e.g: add 1000 to player's balance
  • Changes from commit 2b1adfe:

    • Added conditions to check if a number is NaN or infinity, nan means that number is not a valid number and infinity means the number is overflowed, i.e not supported by java limits
  • Changes from commit ec3ddf9:

    • Removed unnecessary else statements, code maybe faster and better readable now
  • Changes from commit b136437:

    • Added NoCheatPlus exception to EffPush - Now you should not get survival fly messages when using push effect
  • Changes from commit 55f56fb:

    • Fixed targeted block always uses old deprecated method in 1.8.8
  • Changes from commit 3311976:

    • Added is script loaded condition to check whatever a script is loaded
  • Changes from commit 2bc0551:

    • Fixed is script loaded condition and added config options for disabling the newly added warnings
  • Changes from commit 9669121:

    • Added config option to be able to disable "using an id instead of an alias is discouraged" warnings
  • Changes from cmmit ce19c1a:

    • Replaced all wrongly typed "whether" with "whatever" in every file
  • Changes from commit 83b9df0:

    • Removed redundant string concenations, might cause issues because it has no null-safety, but it should not cause issues, report them if you encounter any issues
  • Changes from commit 1711c08:

    • Added maven wrapper to be able to build project without installing maven
    • Also fixed all the new eclipse warnings, and updated the eclipse configs
  • Changes from commit 62bd6d5:

    • Fixed the build failure errors and warnings
    • This also the 300th commit and the last commit before this release

It is highly recommended to update to the latest Skript version.

                          What to download?
  • Skript.jar = Download this if you just want the plugin
  • Skript-optimized.EXPERIMENTAL.jar = Download this if you want powerful performance

The optimized version is still in a experimental state and might cause issues and/or data loss, please use it only if you have performance problems or you know what you're doing.

Note: The optimized version is actually same as the normal one, both of them has version 2.2.14 and compiled from this repo with same source codes, but the optimized one is optimized by ProGuard automatically.

LifeSkript V13b (Preview)

10 May 12:00
Compare
Choose a tag to compare
Pre-release

Warning: This version contains some strange bugs due to changes in command system, commands may not work, variables can cause strange issues!

Please update to 2.2.15 or use/downgrade to something like V13 or V12.

Note: Also, don't use optimized version as it has some issues with add-ons, if you really want it, use the optimized version in the 2.2.15, it has fixed this problem, but it's still experimental.

The V13b version is mainly targeted at:

  • Optimizing the parser and over-all performance
  • Adding more customization and debugging options

Change list:

  • Finished:
    • Implemented the ProGuard optimization and shrinking algorithm
    • Changed the number parsing algorithm: checks validity instead of relying on catching exceptions
    • Changed the way that events handled, it no longer uses reflection, so it's faster now
    • Added config options for disabling the new updater and enabling the new none tracker
    • Added some system properties for controlling some experimental & testing features
    • Fixed aliases and language bugs, added missed enchantment in 1.8
    • Changed the version format: 2.2-V13b instead of 2.2-Fixes-V13b
    • Fixed functions on on load: event not gives the right error and causes silent errors
    • Added config option for enabling on command for skript commands
    • Added condition to check if a command is a script or a plugin command
    • Allowed arg-1, arg-2 etc. in on command events. Uses String#split internally
  • Work in progress:
    • Debugger agents are included with this release, but not finished yet. (#28)
    • There is also maybe some debugging / testing and unfinished code, because this is a pre-release.
  • Experimental:
    • Experimental features are not supported (in production) until officially added in a later release. However, you can still use it (for testing) and report bugs, errors, etc.
    • Added system property for disabling the byte, short and float types. These types are not generally used in scripts and it generates unrequired parser overhead when parsing scripts. You can disable byte, short and float types via adding this argument to your startup script, before -jar and after java: -Dskript.disableByteShortFloat=true

We recommend all users using V13 to updating this release, though it is currently preview, not the full V13b release.

  • Future plans:

    • We are planning to change versioning again to something like 2.2.14 in V14 release. We do not planning to release something like 2.3 or 3.0 though. We are planning to continue like 2.2.13b, 2.2.14, 2.2.15 etc.
  • Other recommendations:

    • Eclipse OpenJ9 JVM: The OpenJ9 is the same as java runtime, but it's more optimized and performance friendly. It also eats less RAM and speeds up application execution. You can download OpenJ9 from here
  • Softwares used:

    • Eclipse Java Compiler 4.12M1
    • ProGuard 6.1.0 beta2
    • Apache Maven 3.6.1
    • Java Development Kit 8_212
  • What to download:

    • Skript.jar: The supported normal plugin without ProGuard applied to
    • Skript-optimized (EXPERIMENTAL).jar: The experimental optimized plugin with ProGuard applied to

Please keep in mind that optimized version may not work correctly or stop working at any time, we recommend using it only if you have performance problems.

The optimized version can be the main stable version after it's tested and maked non-experimental in a later release, such as 2.2.16 (2.2.15 should be a stable release, so 2.2.16 is the target).

Thanks for reading through here! :)