Hello there! Long time no see since the last update ;)
This one brings **a lot** of content here and there, so please read the **whole message below** to be sure to miss nothing.
# Async Rework
> Most DiSky effects, because of HTTP requests, require asynchronous execution to avoid lag spikes (especially when retrieving a value for instance). Although I made my own "waiter effect" to handle those timings, it was not built-in Skript and thus weird synchronization bugs appeared, especially when dealing with local variables.
All retrieve effects, and most asynchronous effects are now using a completely new method, where the code is **completed** in **another thread** (thus it'll make that other thread lag, but since Minecraft is mainly single-threaded, it does not matter at all).
:bookmark_tabs: __To put it simply, most effects in DiSky are **now faster** and can be handled much easier by Skript, e.g. when using those effects in **loops or functions**__
# Embed section optimization (#155)
> Previously, to create an embed, you had to go through `make new embed` and use the expression `last embed`, which sometimes caused conflicts when creating several embeds simultaneously. Moreover, the sole `last embed` expression slowed down the Skript's parser as it was overcomplicated with too many patterns.
:bookmark_tabs: __While the previous embed section is still available, it has been reworked so you can provide a **variable** at the end of the section that'll handle your embed **at the end** (basically like the message builder & components row builder).__
For instance:
```applescript
make new embed and store it in {_embed}:
set title of embed to "Hello there"
set embed color of embed to red
reply with {_embed} # 'embed' is not accessible outside the section anymore, releasing a lot of work for Skript's parsing
```
# :bar_chart: Polls!
> While they are waiting to be approved on Discord's docs, poll syntaxes are already in DiSky!
:bookmark_tabs: __You can already use the syntax, but no polls will be sent over Discord yet. Take a look at the wiki page about polls for more information: https://disky.me/docs/basic-stuff/polls/__
# Syntax Changes
> As I reworked some parts of DiSky, I ended up optimizing/adding existing syntax, so here they are:
- You can now use both **strings** and **tags** when adding/removing them from forum channels
- Added `retrieve start/original message from %threadchannel%` effect
- Added type checking for the `updating commands` effect (e.g. giving guild when updating globally, and vice-versa)
- Added `event-long` in `reaction add` event to get the message author's ID
- Fixed `mention tag` with emotes, for custom and animated emojis
# :warning: JAR & Version Support
- Only **Skript 2.8+** is supported, going forward.
- shadowJar minimizer is now used on DiSky's final JAR, **reducing its size from ~20MB to ~15MB**
- The **minimal required version of Java** will soon (v4.15 or v4.16, no ETA yet) become **Java 11**
Whoa, I've never had an update this big, apart from the reworks! I hope you have fun, and I'll be on the lookout if you have any new ideas or optimizations to suggest
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }