Components V2 with modals are here!
on Sep 16, 2025Hi there! This is a rather small, yet useful update, that brings text display, labels, and select menus into modals! You may now mix those new components when opening modals, and gather the input easily!
[!CAUTION] Breaking Changes: DiSky v4.25.0 requires an update to the way you previously created text inputs for your modals. Refer to the new documentation page about modals for examples and more information.
I've also launched Projects! This will help me (and you!) keep track of what should/must be done until the next release. You may add your review anytime to any idea already inside the [DiSky v4 Project)(https://github.com/orgs/DiSkyOrg/projects/1)!
Bugfixes & new retrieve pinned message effect!
on Aug 12, 2025Hi there! I'm back from vacation :P Here's another small update that brings some bugfixes, QoL things, but mainly fixes attachments issue with file uploads!
- Added
retrieve pinned messages
effect, with its newpinnedmessage
class; it can be used as a normal message, but has one more property:pin date of %pinnedmessage%
. - Enhanced
new separator
syntax:large
/small
is now optional; it'll default tolarge
if none is specified. post
effect may now be givenfile uploads
directly (so you may upload only files this way)- The
inline message builder
expression has been reworked to work with the new file upload system; you cannot give strings for its files anymore.
Every effect/expression that previously used attachments (= accepted strings or images, DiSky had to hint its source anyway) will now require a file upload instead, you'll have to create according to this doc page!
⚠️ You can find more info about it in the Migration page, from v4.23 (or older) to v4.24
Message/User Commands now finally work!
on Jul 31, 2025This is a late night release, I know. This comes with a much needed release, and much needed features.
🎉 Message/User Commands now finally work!
Thanks to Sovde on the SkriptLang team, he has helped me fix the issue with message commands/user commands, so they should properly enable and register now! Check the docs for more information!
🤫 Suppress Link Embeds!
You can now suppress (or hide) link embeds from either a bot or a certain user! If its in dms, you can only suppress link embeds from the bot in the dms, not the user. Documentation for this will come tomorrow as I need much needed sleep. Right now, the syntax is the following:
(suppress|hide) [the] [discord] [link] embed[s] [message] (of|from) [the] [discord] [message] %message%
()
means its required, and []
means its optional, and %message%
is obviously required to specify the exact message.
❓ Why beta?
Now I know you all are going to be asking this, so I am going to explain while taking snippets from JDA's (Java Discord API's) message. We are in beta considering this a huge new update with a heck ton new features for you all to mess around with and also find anymore bugs/issues that may arise. Now for the 2nd part. JDA (Java Discord API) is what we use to make DiSky work, and with that comes it's own issues. As from JDA, "For now, this [6.0.0-rc.1] is just a release candidate, since we might want to do some more breaking changes before the stable release of 6.0.0." This is obviously a beta build of JDA which can lead to even more issues. the next release candidate might include more breaking changes, potentially with components or other parts of JDA." This is why this is a beta.
⚠️ Known Issues
We are aware attachments aren't in the best of shape right now, I am waiting on Sky to get back to investigate further. Resources site is down. We are aware. Sky is not home so there is not much we can do. Sorry.
Components V2 is here!
on Jul 24, 2025It's been awhile since the last update! This is finally announcing the release of DiSky 4.24.0-beta1. I will try to keep this short and sweet and explain why this is in beta, so please take some time to read this as this is extremely important.
🎉 Components V2/Containers Update!
Yes, you heard it here, DiSky now supports the new Components v2/Containers. Discord has introduced a completely new component system (which is not compatible with the old one!) meant to replace embeds and components within messages. It allows you to create customizable layouts with sections, galleries, files, and much more, all within one component called a "Container". You can find the documentation for containers here, although this is a beta and you should expect bugs. We have actively tested with our @👑 - Platinum members and have hopefully ironed out most bugs/problems!
🛠 File Upload enhancements
We have made some changes as to how File Uploading is now handled, so this should hopefully be better now!
❓ Why beta?
Now I know you all are going to be asking this, so I am going to explain while taking snippets from JDA's (Java Discord API's) message. We are in beta considering this a huge new update with a heck ton new features for you all to mess around with and also find anymore bugs/issues that may arise. Now for the 2nd part. JDA (Java Discord API) is what we use to make DiSky work, and with that comes it's own issues. As from JDA, "For now, this [6.0.0-rc.1] is just a release candidate, since we might want to do some more breaking changes before the stable release of 6.0.0." This is obviously a beta build of JDA which can lead to even more issues. the next release candidate might include more breaking changes, potentially with components or other parts of JDA." This is why this is a beta.
We hope you enjoy this update, and thank you for using DiSky! ❤
New event system, stickers & emojis events, and more!
on May 14, 2025Hello there! It's been a while, right :)
This update reworks the whole event system DiSky was originally using (inspired by Vixio back then, but it's not scalable at all, and a real mess to maintain and add new events). Now, not only do all events support better custom event-expression (e.g., the target user
in a user command event), but also support for better timed event expressions (pattern would be like new channel region
in a channel region update event).
🎫 You may find the new event documentation here!
DiSky v4.23 brings tons of new missing events, related to updates (channel, guild, role, ... updates) and every event related to the guild's emojis and stickers! We'll also be able to add new events very easily, while keeping the syntax for you, very intuitive :)
And that's pretty much all! DiSky starts to include almost everything from JDA/Discord, so it's hard to make a "big" release; not to mention my personal time is beginning to limit my time working on DiSky :<
What's Changed
- Fix Modrinth publish workflow by @zefir-git in https://github.com/DiSkyOrg/DiSky/pull/243
New Contributors
- @zefir-git made their first contribution in https://github.com/DiSkyOrg/DiSky/pull/243
Full Changelog: https://github.com/DiSkyOrg/DiSky/compare/4.22.1...4.23.0
DiSky 4.23.0-alpha3
on Apr 9, 2025DiSky v4.23.0 is still in alpha; this third (and, I hope, final) version general bugfixes, as well as enhancement on existing new events. Some QoL changes are also included.
- All events now uses an expression-based time value. For insta,ce instead of
past/future event-value
, a user-friendly expression exists, such asthe new voice channel
in a channel move event! - Slash command permissions were fixed, when specifying
enabled for
entry in groups or subcommands. - The usage of cache flags has been greatly enhanced! Take a look at the revamped wiki page about that :)
:warning: Again, this is an ALPHA! Don't use in a production server as it may break things :P
Thanks for your support & feedback, and have a nice day :love_rainbow:
:modrinth~1: Download: https://modrinth.com/plugin/disky/version/4.23.0-alpha3 :gift: Donations: (if you like my hard work): #🎁・donations (you can also star the GitHub repo!)
DiSky 4.23.0-alpha2
on Mar 29, 2025DiSky v4.23.0 is still in alpha; this second version brings bugfixes on event-value usage, and also introduces a lot of new events!
- The new events include, but are not limited to, guild voice events, self events, scheduled events, ... (in total, there's ~40 new events!)
- The documentation page for events has been reworked into categories! Take a look yourself here!
Again, this is an ALPHA! Don't use in a production server as it may break things :P
Thanks for your support & feedback, and have a nice weekend
The event-rework update is here!
on Mar 28, 2025DiSky v4.23.0 is finally out, in early alpha, as it contains tons of internal breaking changes; scripts themselves should not be affected (that's my goal at least), and I'll do everything to not introduce breaking changes on your end! :P
:sparkles: Event Rework
The whole event system has been reworked! All events have description, better event values, and it'll be much, much easier for me to add new events with tons of quality of life features (for instance, every update-related event like
on channel name update
will now useold [channel] name
/[new|current] [channel] name
expressions instead of the weirdpast/future event-string
!)
First, I want to make sure my changes are not breaking any scripts, but once that's done, I'll be able to quickly add literally every remaining events from JDA!
:paper: You can find the new documentation for the event rework here!
:zap: Custom Slash Structure Args
I've added a sort of testing version for the custom argument system for the slash structures: it'll let you put non-discord argument type (e.g.
offlineplayer
), and DiSky will then take care of the rest! Not only it'll parse the input correctly, but DiSky will also provide the most UI-efficient way for this type: in case ofplayer
, it'll display a choice with the currently connected players!
Available custom types are:
- Any Skript enumeration (enums smaller than 25 constants will use a choice argument, enums with more will use auto autocompletion)
player
andofflineplayer
member
(argument will be none if the command is not within a Guild)color
(accepts Skript's constants, RGB and hexadecimal colors)
If you have an idea for a custom argument type, let me know in #💬・chatting!
That's all for now! As said above,
:warning: This is an ALPHA build! It is NOT recommended to use within a production server! Any feedback is appreciated as always :slight_smile:
Command Registration & Message Handling
on Mar 9, 2025Hello everyone! Here's a small but useful update for DiSky:
✨ New Features & Enhancements
- Fixed command registration by enhancing
BotReadyWaiter
to register commands immediately if the bot is already connected - Added guild readiness handling in
SlashManager
andContextCommandManager
for better command registration - Improved
ChannelOf
to properly handle messages in guild text channels - Enhanced
CreateMessage
to support creating messages based on existing ones
🐛 Bugfixes
- Added error handling for invalid channels
- Fixed issues with command registration timing
Full Changelog: https://github.com/DiSkyOrg/DiSky/compare/4.22.0...4.22.1
DiSky 4.22.0
on Feb 23, 2025Hello there! It's been a while :P Here's DiSky v4.22.0 update: relatively small, yet useful and comes with bugfixes! Thanks to @Equip for making the auto-mod support!
🚀 New Features
-
AutoMod Support!
- Added bunch of properties & expressions around automod
- Added events to listen to automod triggering & update
-
Added support for Face Holding Back Tears emoji
-
Added support for voice message
-
Added better support for modules! A new OAuth2 module will soon come out (docs can be found here) as I have to finish another secret project before :>
🛠️ Improvements
- Updated UnbanMember effect to support user ID as string format with validation
- Implemented proper shutdown method for DiSkyModule
- Added module shutdown handling in onDisable
- Updated JDA dependency to version 5.2.3
🐛 Bug Fixes
- Fixed issue where Skript code inside slash commands wouldn't update correctly
- Resolved 'enabled for' entry problems in slash commands
- Documentation fixes in README.md
- Fixed the
move role
effect that threw an exception when moving a role above/under another - Enhanced the
has permission
condition: it now takes the place of Skript's condition to avoid the direct conflict
The quickest update ever?
on Jan 18, 2025Well ... it's been some hours since 4.21.0 xD
Anyway, this very small update fixes the usage of underscore in slash commands (+ gorups and sub-commands). If you do not use any _
in your commands, then you don't really need to update for now.
The biggest update yet?
on Jan 18, 2025New Infrastructure
- We're excited to announce that DiSky now has its own Maven repository (although only DiSky is available for now).
- The project has been updated to fully support Skript 2.10, including comprehensive updates to the module system
:warning: From now on, DiSky will only support Skript 2.10 and above!
- Introduced DiSkyMetrics with bStats integration for better usage tracking and analytics (https://bstats.org/plugin/bukkit/DiSky/)
:rocket: Major Feature Additions
:control_knobs: Command Structures Overhaul
- Implemented a new system for User & Message Command Structures
- Added support for slash command groups and sub commands
- Fixed building issues related to slash commands with integer/double arguments that have choices
- Enhanced the slash command un-registration system
:construction: Data Structures!
Launched a new comprehensive data structures system! This is meant to be a more easy-to-use and powerful way to create discord objects, similar to YAML. It's a more user-friendly way to create and manage Discord objects, such as embeds, buttons (and soon, more!). Here's a quick example:
set {_e} to a new embed:
title: "Hello, World!"
description: "This is a test embed!"
color: red
field:
name: "Also support complex expressions!"
value: "%event-user%"
reply with {_e}
:gear: Module System Improvements
- Introduced a new module API
- Added validation to prevent loading of outdated modules
- Removed the feature to enable/disable/reload modules as it was broken asf
:warning: See this page to update your modules accordingly! All of them are now BROKEN with v4.21.0 if you DON'T UPDATE THEM!
:zap: Quality of Life Improvements
- Enhanced the private channel effect with better error logging
- Added the ability to move roles for a specified duration
- Implemented pre-filled values for text inputs
- Added a new section system to the debug file with listener debugging (
/disky debug listener
) - (Finally) Made every expressions asynchronously changeable & gettable
:bug: Bug Fixes
- Fixed unban effect functionality
- Resolved issues with the ban effect not completing rest actions
- Updated all deprecated Skript methods to their modern equivalents
- Various performance optimizations and code refactoring
The Improvement Update
on Dec 20, 2024Hi there! This release mainly fixes some previously reported issues in DiSky. This is not a major release, but with Sky being busy with his personal life, I have decided to release this version for him.
✨ New Features
- Added
is timed out
condition for checking if a member is or isn't timed out.
🐛 Bug Fixes
- Fixed an issue with stuff being duplicated (hopefully).
- Fixed an issue where Transkript module would crash your server due to pink heart emoji if generating a transcript.
I encourage all users to update to this latest version to take advantage of these improvements and new features. As always, please report any issues you encounter on the GitHub repository.
Hotfix: delayed bot initialization
on Oct 14, 2024Hi there! This version is a hotfix for using the bot's name while it has not loaded yet.
As of 4.20.0, the bot's definition structure is being loaded async, thus Skript loading other structures may be parsed before the bot is fully loaded.
The Async Acceleration Update
on Oct 13, 2024I'm excited to announce the release of DiSky v4.20.0! This update brings several new features, performance improvements, and bug fixes.
🚀 Performance Improvements
- Bot initialization is now performed in an asynchronous task for improved responsiveness
- Many elements are now asynchronously changeable, including guild/bot avatars, member nicknames, and scheduled event properties
- Enhanced bot shutdown system for smoother termination
✨ New Features
- Added
retrieve webhook
effect - New
forward message
effect with ability to store the forwarded message - Added
is forwarded
condition for messages - Introduced ability to specify the desired bot in the
post message
effect - Added support for changing guild verification levels
- Ban effect now accepts plain user IDs
🐛 Bug Fixes
- Fixed exception when changing permissions of an entity with empty actions
- Resolved issue where DiSky interfered with the "is text" condition (#223)
- Corrected pattern for the second
move member
effect
⚡ Enhancements
- Deprecated error handler now supports node information
- DiSky exceptions will show the full stack trace when debug mode is active
- Improved scheduled event location return types
- Embed and role colors can now be reset (and are async changeable)
I encourage all users to update to this latest version to take advantage of these improvements and new features. As always, please report any issues you encounter on the GitHub repository.
Thank you for your continued support and happy coding :P
Listen once section, bugfixes and more!
on Sep 4, 2024Hi there! I'm finally back from vacation, with this wonderful update :)
✨ New Features
- You can now listen one time to a specific event, right from any code. More information on the wiki
- Added user-friendly error messages a bit everywhere. A lot are still missing tho, but it's better than nothing!
🐛 Bugfixes
- Fixed null checking in the CommandFactory class (when the args won't parse correctly)
- "Fixed" (more likely enhanced) the
on shutdown
section in a bot definition structure. The code running inside of it can now communicate with Discord's API right before the bot instance is actually shut down. - Fixed parsing exception when creating a post in a thread without specifying a storing variable.
- Fixed incompatible cast in every channel action expression (when passing a channel action)
Thank you for your support and happy coding!
Full Changelog: https://github.com/DiSkyOrg/DiSky/compare/4.18.0...4.19.0
The 'long time no see' update
on Aug 3, 2024DiSky v4.18.0
We're excited to announce the release of DiSky v4.18, which includes an update to JDA v5.0.1 and introduces several new features, improvements, and bug fixes.
🚀 New Features
- Runtime Error Handler: Added a new runtime error handler with try/catch functionality. (see here)
- Bot Leave Guild Effect: You can now programmatically make a bot leave a guild.
- Thread Creation Enhancement: Made the storing part of the create thread effect optional.
- Bot Name Customization: Added a way to change the name of the logged-in bot.
- Bot Banner Editing: Introduced the ability to edit the banner of the logged-in bot.
⚡ Improvements
- Enhanced Configuration System: Implemented a better and more efficient configuration system.
- Snowflake Validation: Added improved snowflake validation with more user-friendly messages and references.
- Message Editing and Destroying: These actions now check if they originate from a webhooks.
- Discord Name Expression: Moved the bot name expression into 'discord name' for better organization. (see here)
🐛 Bug Fixes
- Fixed usage of poll in rich messages.
- Corrected the order of arguments in slash command structures.
- Resolved issues with event-bots in DiSky-related events.
- Fixed slash command execution on Minecraft 1.21+.
🔥 Removals
- Removed the avatar decoration expression as it's not yet officially released.
📝 Notes
- Post effect exceptions are now handled by the runtime error handler.
- This release includes all changes from the previous (unreleased) v4.17.3 update.
📦 New Wiki Pages
- Added Error Handling
- Added Asynchronous Operations (you should really read this one :P)
We encourage all users to update to this latest version to take advantage of these new features and improvements. As always, please report any issues you encounter on our GitHub repository.
Thank you for your continued support and happy coding!
The "Mixed Additions" update!
on May 17, 2024Hi there! This release mainly "converts previous stuff to new systems (you'll see what I mean below). It also comes with some additions and many bug fixes around the new slash command structure system!
🗝️ "Rework"
- More expressions now supports async gettable via the
await
effect. Some still need their migration, see the list here: #207 - The member ban, kick, and timeout (new) events are now using a new event system and thus provide more event-values (and they are more accurate)
- Enhanced the slash command system when updating a command (it may only update the Skript code, not the whole command over Discord, only if no changes to the name/description/args happened)
✨ New Features
- Added
on member timeout
event - Added
logged reason
property for alogentry
(works for bans, kicks, ...) - Added
retrieve start message
effect to retrieve the start message of a thread - Added a user-friendly warning when using a non-message channel with the
retrieve message
effect
🐛 Fixes
- Fixed a lot of conflicts, and non-registering bugs about the new slash structure system (I'm too lazy to list them all lmao)
- Fixed property
poll
of message builder (it used the wrong type)
Thanks for reading!
Hot & bug fixes Latest
on May 14, 2024Hi there! This minimal release fixes several bugs with the new slash command system and the on shutdown
entry of the define bot structure.
It also introduces a new async system for expressions and changer, although it's only available for the member with id
expression (keep information of it over #207), planned to release for DiSky v4.18.0 (*a smalle xample can be found here)
Slash Structure, QoL enchantements and bug fixes!
on May 12, 2024Hello there! This new release introduces many new features (mainly QoL) and bug fixes. It also adds a new slash command structure system, that's still in beta.
🐛 Bug Fixes
- Fixed/enhanced
create invite
effect as it doesn't support a Guild anymore - Fixed the
emoji url
property's pattern to[the] emo(te|ji) image [url]
(#196) - Fixed arguments type parsed in the slash command event
✨ New Features
- Added
event-channel
in theuser typing
event - Added
on poll vote add
andon poll vote remove
events (#192) - Added
on member kick
andon member ban
events (read the docs for more info!) - Added
author
retrieve value of theon guild log entry create
event
🚀 Slash Command Structure!
⚠️ This feature is still in beta, I don't recommend using it in production yet!
You can now create, register, and handle slash commands directly via a single structure! Here's a quick example:
slash command ban <user="target"> [<string="reason">]:
description: Ban a user
arguments:
target: The user to ban
reason: The reason of the ban lmao
cooldown: 30 seconds
on cooldown:
if arg-2 is "cheatcode":
cancel event
stop
reply with "You still have to wait %remaining time% before using this command again!"
bot: disky
guilds: 937001799896956988
enabled for: manage server
trigger:
reply with "Banning %mention tag of arg-1% for `%arg-2%`"