Skip to content

Releases: zkxs/jinx

0.8.0

30 Jan 07:41
Compare
Choose a tag to compare

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.
  • 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

  • If you have products with identical names then /link_product and /unlink_product will be unable to handle them properly. (#4)
  • If /list_links output is more than 4096 characters it will fail. This should be very hard to do. (#3)

0.7.0

28 Jan 23:18
Compare
Choose a tag to compare

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

  • If you have products with identical names then /link_product and /unlink_product will be unable to handle them properly. (#4)
  • If /list_links output is more than 4096 characters it will fail. (#3)

0.6.0

04 Dec 05:36
Compare
Choose a tag to compare

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

11 Oct 13:56
Compare
Choose a tag to compare

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

01 Oct 00:42
Compare
Choose a tag to compare

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

20 Sep 11:12
Compare
Choose a tag to compare

Added

  • Add /set_log_channel command, allowing server owners to set/unset a bot log channel. When set, this channel is used to log events such as license activations and important bot announcements.

0.2.0

16 Sep 06:31
Compare
Choose a tag to compare

Added

  • Add owner-only /restart command that restarts the bot if it was invoked via the included run.sh script.

Fixed

  • Fix /deactivate_license documentation

0.1.1

14 Aug 12:14
Compare
Choose a tag to compare

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.

0.1.0

12 Aug 16:11
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

Initial release!

Caution

Jinx 0.1.0 was not validated against the Jinxxy API because I did not have access to the Jinxxy API yet. It contains many bugs.

You should not use this version!