Releases: zkxs/jinx
Releases · zkxs/jinx
0.8.0
Added
- Support for linking roles to specific versions of products (#2). Jinxxy lets you create multiple versions within a product with access to different subsets of files, and now Jinx can differentiate between these versions.
- The classic style of linking where products are linked to roles still works exactly the same with
/link_product
and/unlink_product
- Version-specific links can be created with
/link_product_version
and removed with/unlink_product_version
/link_product_version
lets you link a "null version". This is to handle a very specific edge-case where a customer purchased a product before you added versions. As long as your product has always had versions you should not need to worry about this.
- The classic style of linking where products are linked to roles still works exactly the same with
- Added support for a global wildcard role which is granted for any of your products. This is suitable for people with simple stores, but unsuitable for people who have a mixture of free and paid products who only want to grant roles for the paid products. Set it with
/set_wildcard_role
and unset it with/unset_wildcard_role
.
Changed
/list_links
output has been changed to improve readability if you have long, complicated product names
Removed
- An old feature where
/init
could be used to forcibly reinstall slash command has been removed. Jinx has handled this automatically for some time, so it was redundant and caused confusion as to why the api key was optional.
Known Issues
0.7.0
Added
- Count failed Gumroad activation attempts and notify guild owners if they have a Jinx/Gumcord confusion issue (#10)
- Add a invalid license heuristic for Payhip keys. This means the bot will now tell users exactly what they're doing wrong if they give it a Payhip key by mistake. (It already did this for Gumroad keys).
- Add a check for db downgrades. This prevents unusual edge cases that can occur if Jinx is downgraded to a very old version with a different db schema.
- Added a bot status message that counts how many distinct users have used the bot successfully. This message updates once every 60s.
Changed
- Improved error text (#7). This should help users understand how to proceed if a command fails.
- Improved license registration failure message. This should help users understand why registration failed and how to proceed.
Fixed
- Fixed some cases where unhandled errors during license registration would cause log to fail to send to your log channel.
- Fix an issue (#9) where product auto-completion would fail for products with names >100 characters long
- Fix an issue (#5) where the in-memory cache was able to deadlock the bot, causing a permanent hang:
Known Issues
0.6.0
Added
/init
command now shows a warning if it thinks your API key is missing any of the required scopes.
Changed
/init
command now properly verifies API keys instead of blindly accepting what the user provides (and subsequently breaking other commands later when you actually try to use a bad API key)
Fixed
- internal optimizations to how
/list_links
fetches products from Jinxxy. You should notice the command being slightly faster on average now. - Fix #1 by handling an edge case where unset log channels caused unexpected behavior
- Fix a problem where many bot actions would fail intermittently. This was caused by high Jinxxy API latency cascading and causing Jinx to miss Discord deadlines. Jinx will no longer fail unexpectedly when the Jinxxy API is running slow.
Known Issues
- If you have products with identical names then
/link_product
and/unlink_product
will be unable to handle them properly. - If
/list_links
output is more than 4096 characters it will fail
Caution
Jinx 0.6.0 is affected by #5: It will randomly deadlock when the product cache is used.
You should not use this version!
0.5.0
Added
- Add a
/stats
command. This gives some basic aggregated stats on how many licenses have been activated in your server. - Add a
/unlink_product
command. - Adds warnings for roles that can't be granted to
/list_links
Changed
- The message created by
/create_post
is now slightly more verbose and explains where license keys can be located. If you want to update an existing post you'll need to delete the original post re-run the slash command to get a new one. - Some commands have had their response text formatting slightly changed to improve readability, including
/license_info
,/list_links
, and/link_product
- Completely reworked
/link_product
to use slash command args and autocompletion. This was done to remove the 25 product/role limit in the old selection dropdowns./link_product
no longer unlinks products: that is now handled by the new/unlink_product
command. Unfortunately, as Discord does not support variadic arguments links must be created one at a time now. - All command output has been converted from messages to embeds. This was done partially to make things look cleaner and partially to get the higher 4096 character limit of embeds (normal messages have a 2000 character limit).
Fixed
- Fixed a bug where in certain
/link_product
edge cases Jinx would incorrectly warn that it might lack needed permissions. - Fixed a bug where a few redundant API requests would be sent to Discord every time the bot was added to a new guild.
- Fixed a bug preventing creation of new sqlite db
Known Issues
- If you have products with identical names then
/link_product
and/unlink_product
will be unable to handle them properly. - If
/list_links
output is more than 4096 characters it will fail
0.4.0
Added
- Jinx will now update guild-local slash commands when starting up, meaning server owners no longer need to manually use
/init
to get new commands. - Add a
/help
command. - Jinx will now log certain license registration failure cases to the bot log channel. For example, if the license has already been activated by a different user.
- Added some validation on the
/init
command to make sure the user-provided API key at least looks valid before Jinx blindly accepts it.
Changed
- Heuristic used to guess if a user-provided key is a Jinxxy long key is now slightly more strict. Previously it would accept anything that looked like a UUID: now it verifies the UUID is a valid UUIDv4. This change has no effect on the short key registration flow.
- Small improvements to the sqlite connection to follow best practices, such as periodically optimizing the DB.
- Improve error handling when Jinx is unable to send a message to a channel. This can happen in
/create_post
or/set_log_channel
.
Removed
- Buyers can no longer provide a Jinxxy license ID directly and must instead provide a Jinxxy short or long key. This shouldn't affect users, as those IDs are not normally exposed: they are only used internally in the Jinxxy API. Sellers can still use these internal IDs in the seller-only slash commands, such as
/license_info
.
0.3.0
0.2.0
0.1.1
Changed
- Increase HTTP timeouts
- Don't show license ID in
/user_info
Fixed
- Fix a bug that broke
/link_product
completely - Fix a bug where LicenseInventoryItemItemVersion was assumed to be mandatory, but is actually optional
- Fix a bug where username was assumed to be mandatory, but is actually optional
- Partially work around a Jinxxy API bug where license activations still linger after being deleted
Known Issues
- Jinxxy API has a bug with license deactivation, which prevents Jinx from activating licenses if the license was locked and unlocked, or if the license was moved from one discord user to another.