Releases: DiSkyOrg/DiSky
Oh my god, too much update?!
Whoa, I guess I'm in a rush now? Anyway, this update brings tons of new features and tweaks. Here's a recap:
🚀 Find Members!
Discord recently added a way to bulk-find members, thus even with thousands of members, you'll still be able to retrieve the one you want. There are two "simple" find
effects available already (find members with roles %roles%
and find members with nickname %string% in guild %guild%
), but a brand new one is also added ... Find member filter! It's a section that lets you filter by yourself the members you want to retrieve. Wants only members with a role, or specific nickname, that are not connected to a channel? You've got it!
⚠️ It's an experimental feature, and feedback is appreciated, while I don't recommend using this in production yet!
find members in event-guild and store them in {_members::*} with filter var {_m}:
# {_m} now contains the member to apply the filter to. For instance:
{_m} has discord role with id "XXX"
{_m} is muted
return true
reply with "I have found %size of {_members::*}% that has the role and is muted!"
💻 Bot Application Info
You can now retrieve your bot's application info! This includes, but is not limited to, its avatar/id/name/owner, the Term Of Service/Privacy Policy URLs, and more! If you are interested in how it works, take a look at the wiki page!
✨ New Features!
- Added
pin/unpin %message%
effect - Added
is muted
andis deafened
conditions - Added way to reference message in the post effect
- Added way to create disabled entity/string dropdown (by adding
disabled
when creating the component)
And yet another update!
I'm sure I'll get blamed if I continue to make updates that fast 😂
Anyway, here's yet another update for DiSky! Here's what changed:
📊 Polls Hotfix
JDA has an internal bug with their latest release (beta23), thus I fixed it on my side for DiSky. Although polls were created, they were not attached to the desired message and thus, not sent. You can also now send polls alone, without any other message value (content, components, etc..) using the reply with
and post
effect.
✏️ New edit components
effect!
For button & dropdown clicks, you can now directly edit the clicked component with one line of code, instead of re-editing the whole message like before. You can find more information about how it works for buttons here and dropdown here!
🐛 Bugfixes
- Fixed SelectMenu couldn't be added to the inline message's builder
edit
andreply
effects now impact the interaction (if in an interaction event of course) instead of the message.- Fixed polls being not set correctly using the rich message builder
- Fixed
interaction
type for button/dropdown click event
✨ New Features
- Added a way to disconnect a connecter member from its voice channel (reference)
- Update some old WaiterEffect to the new AsyncEffect system
Better polls and optimizations
- This small release introduces a lot of new polls-related stuff, such as ending existing polls and getting votes for finished polls (more information can be read here.
- In addition, the
define bot
scope was converted to Skript's new Structure system, meaning it's faster, more efficient, and less laggy (e.g. you can now use function/custom expressions inside ready/guild ready events). - You can also set default selected values for entities dropdown, supporting roles, channels, and users. The added values will be selected once the component is sent!
Full Changelog: 4.14.0...4.14.1
The "Asynchronous" Update
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).
📑 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 expressionlast embed
, which sometimes caused conflicts when creating several embeds simultaneously. Moreover, the solelast embed
expression slowed down the Skript's parser as it was overcomplicated with too many patterns.
📑 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:
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
📊 Polls!
While they are waiting to be approved on Discord's docs, poll syntaxes are already in DiSky!
📑 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
inreaction add
event to get the message author's ID - Fixed
mention tag
with emotes, for custom and animated emojis
⚠️ 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. As always, you can download the new version on Modrinth
The cleanup update!
Hello there!
This small release introduces a new feature alongside bugfixes and code cleanup:
✨ •
You can now serialize embeds into JSON, and vice-versa! Check here for more info!
⚡ •
I'm trying to clean up annoying user-side errors little by little, and today it's hierarchy nickname! A proper and more user-friendly error message will be sent if the bot cannot modify a user's nickname!
🚀 •
We bumped to JDA v5-beta13, which brings some optimizations and bugfixes on the WebSocket server!
⬇️ Download: https://modrinth.com/plugin/disky/
The 'I don't have any title' update is here!
Hello there! DiSky v4.12.0 is here, and fix/add things here and there, without a main idea to follow. Here are the main changes:
🚀 Changes
⚡ •
We added null
checks for emojis, roles, and permissions expressions. DiSky will not throw an ugly exception anymore!
⚡ •
It has been requested for a pretty long time now, but you can now use options inside entries! (such as the bot's token)
✨ •
Deferred and waited interactions can now be replied to correctly using the reply with
effect!
🐛 •
A lot of conflicts came from the permissions of
property from DiSky and Skript. Now, DiSky will try to unregister the Skript's property to make its own, while keeping normal Skript's behaviors!
🐛 •
Fixed some uncatched exceptions around the project.
🚀 •
Skript v2.7-beta3 is now supported! Any 2.7.X version should be tho, while keeping 2.6.X supported too!
ℹ️ Important Information
I'm taking a two-week off vacation starting tomorrow. I'll come back ~27 august and won't be available during this period of time! There's no big deal with DiSky or Discord making big updates right now anyway 😂. Thanks for your understanding :p
Have a nice evening everyone!
AutoMod Creation is here!
Hello there 👋
This pre-release update introduces support for creating and editing auto-moderation rules, supporting triggers, filters, and more!
⚠️ I am a bit overbooked lately, so the second part of this update (including managing already-created rules) will come later, sorry!
📜 AutoMod Documentation: https://disky.me/wiki/basic-stuff/automod/
⬇️ Download: https://disky.me/resources/index.php?resources/5/
Updated message wrappers, conflict fix
Hello there!
DiSky v4.12.0-beta3 is here!
This minor release fixes conflicts with the attachments
property. The same expression can now be used for messages & message-builders!
For those who had some issues with the message wrapper system, I updated/optimized it a bit so it should work even better.
More info about the message caching system here: https://disky.me/wiki/basic-stuff/message-wrapper/
Future plan
Although that release is pretty small, I plan to fully release v4.12.0 soon, including new features such as:
- AutoMod supports (manage rules/punishments)
- Supports the new username system
Stay tuned!
Have a nice evening everyone :)
Full Changelog: 4.12.0-beta2...4.12.0-beta3
Download: https://disky.me/resources/index.php?resources/5/
Voice message & member flags supports!
Hey there! Another update of DiSky that brings some interesting new features :)
Voice messages
- Added
attachment is audio
condition (https://disky.me/wiki/docs/conditions/#is-attachment-audio) - Added
attachment duration
expression (https://disky.me/wiki/docs/expressions/#attachment-duration)
You can also directly download *voice message as an audio file!
Member Flags
- Added
member flags
expression (https://disky.me/wiki/docs/expressions/#attachment-duration) - Added
memberflag
type (📜 https://disky.me/wiki/docs/types/#memberflag)
Misc
- Added
embed url
expression (https://disky.me/wiki/docs/expressions/#embed-url) - Increased max file upload size to 25 MiB
- Added more developer-debug message
Download: https://disky.me/resources/index.php?resources/5/
Have a lovely afternoon everyone ^^
Developer debug mode and improvements.
The developer release
⚠️ Because this version has a lot of internal behaviors changed, it's still in beta!
This new update brings a whole new way for developers to debug their code: the developer debug mode!
It can be enabled in the configuration file (developer-debug: true
) and will print useful information such as:
- Null/not set values
- Wrong type
- Errors not handled by the default error handler
It'll also contain the exact file and line on where the error happened! I'd love to hear your feedback on that :)
I also updated JDA to alpha9, and will implement the small new features within the month!
⬇️ Download: https://disky.me/resources/index.php?resources/5/
Full Changelog: 4.11.1...4.12.0-beta1