Changelog

Experimental changelog. Mostly based on keepachangelog except date format. a-c-f-r-o

[4.3.22] - 25.04.2024

Added

  • Added .setbanner command (thx cata)

Fixed

  • Fixed pagination error due to a missing emoji

[4.3.21] - 19.04.2024

Fixed

  • Possible fix for a duplicate in .h bank

  • Fixed .stock command

  • Fixed .clubapply and .clubaccept

  • Removed some redundant discriminators

[4.3.20] - 22.01.2024

Fixed

  • Fixed .config searches followedStreams.maxCount not working

[4.3.19] - 22.01.2024

Added

  • Added followedStreams.maxCount to searches.yml which lets bot owners change the default of 10 per server

Changed

  • Improvements to GPT ChatterBot (thx alexandra)

  • Add a personality prompt to tweak the way chatgpt bot behaves

  • Added Chat history support to chatgpt ChatterBot

  • Chatgpt token usage now correctly calculated

  • More chatgpt configs in games.yml

[4.3.18] - 28.12.2023

Added

  • Added .cacheusers command (thx Kotz)

  • Added .clubreject which lets you reject club applications

Changed

  • Updated discord lib, there should be less console errors now

Fixed

  • Fixed icon_url when using .showembed

  • Fixed .quoteshow not showing sometimes (thx Cata)

  • Notifications will no longer be sent if dms are off when using .give

  • Users should no longer be able to apply to clubs while in a club already (especially not to the same club they're already in)

Removed

  • .revimg and .revav as google removed reverse image search

[4.3.17] - 07.09.2023

Fixed

  • Fix to waifu gifts being character limited

  • Fixes UserUpdated and UserPresence not correctly ignoring users that are logignored

  • Added Trim() to activity names since apparently some activities have trailing spaces.

[4.3.16] - 27.05.2023

Fixed

  • Fixed missing events from .logevents

  • Fixed .log thread deleted and thread created events not working properly

[4.3.15] - 24.05.2023

Fixed

  • Fixed -w 0 in trivia

  • Fixed .rps amount field in the response

  • Fixed .showembed output

  • Fixed bank award's incorrect output message

[4.3.14] - 02.04.2023

Fixed

  • Fixed voice hearbeat issue

  • .banktake had ok/error responses flipped. No functional change

  • PermRole should deny messages in threads todo

  • Fixed chucknorris jokes

  • .logserver will now

[4.3.13] - 20.02.2023

Fixed

  • Fixed .log userpresence

  • .q will now use yt-dlp if anything other than ytProvider: Ytdl is set in data/searches.yml

  • Fixed Title links on some embeds

[4.3.12] - 12.02.2023

Fixed

  • Fixed .betstats not working on european locales

  • Timed .ban will work on users who are not in the server

  • Fixed some bugs in the medusa system

[4.3.11] - 21.01.2023

Added

  • Added .doas Bot owner only command

  • Added .stickeradd command

Changed

  • .waifuinfo optimized

  • You can now specify an optional custom message in .feed and .yun which will be posted along with an update

  • Greet/bye messages will now get disabled if they're set to a deleted/unknown channel

  • Updated response strings

  • .translate now supports many more languages

  • .translangs prettier output

Fixed

  • Added logging for thread events

  • Fixed a bug for .quotedeleteauthor causing the executing user to delete own messages

  • Fixed TimeOut punishment not allowing duration

  • Fixed a nullref in streamrole service

  • Fixed some potential causes for ratelimit due to default message retry settings

  • Fixed a patron rewards bug caused by monthly donation checking not accounting for year increase

  • Fixed a patron rewards bug for users who connected the same discord account with multiple patreon accounts

  • .deletecurrency will now also reset banked currency

  • Fixed DMHelpText reply

  • .h command show now properly show both channel and server user permission requirements

  • Many fixes and improvements to medusa system

  • Fixed trivia --nohint

  • .joinrace will no longer fail if the user isn't in the database yet

[4.3.10] - 10.11.2022

Added

  • .filterlist / .fl command which lists link and invite filtering channels and status

  • Added support for %target% placeholder in .alias command

  • Added .forwardtochannel which will forward messages to the current channel. It has lower priority than fwtoall

  • Added .exprtoggleglobal / .extg which can be used to toggle usage of global expressions on the server

Changed

  • .meload and .meunload are now case sensitive. Previously loaded medusae may need to be reloaded or data/medusae/medusa.yml may need to be edited manually

  • Several club related command have their error messages improved

  • Updated help text for .antispam and .antiraid

  • You can now specify time and date (time is optional) in .remind command instead of relative time, in the format HH:mm dd.MM.YYYY

  • OwnerId will be automatically added to creds.yml at bot startup if it's missing

Fixed

  • Fixed .cmdcd console error

  • Fixed an error when currency is add per xp

  • Fixed an issue preventing execution of expressions starting with @Bot when cleverbot is enabled on the server

  • Fixed .feedadd

  • Fixed .prune @target not working

  • Medusa modules (sneks) should now inherit medusa description when listed in .mdls command

  • Fixed command cooldown calculation

[4.3.9] - 12.10.2022

Added

  • .betstats shows sum of all bets, payouts and the payout rate in %. Updates once an hour

Changed

  • .betstats looks way better (except on Mac)

  • .feedadd errors clarified and separated in individual error messages for each issue.

  • .clubban and .clubunban errors clarified and separated in individual error messages for each issue.

  • .clubapply better error messages

Fixed

  • .timely 'Remind' button fixed in DMs

  • .cmdcd database bugs fixed

  • Fixed bugged mysql and postgresql migrations

  • Fixed issues with loading medusae due to strict versioning

Removed

  • .slotstats Superseded by .betstats

[4.3.8] - 02.10.2022

Added

  • Added .autopublish command which will automatically publish messages posted in the channel.

  • Added --after <messageid> option to prune which will make prune only delete messages after the specified message id.

Changed

  • .prune options --after and --safe are now proper command options, and will show in .h help

  • .cmdcd code mostly rewritten, slight QoL improvements.

  • Clarified .remind permission requirements in help text

  • .cmdcds looks a little better, and is paginated

Fixed

  • Fixed trivia bugs

  • Fixed .yun not working with channels with underscore in the name

[4.3.7] - 14.09.2022

Added

  • Added .exprdelserv (.exds) to completement .exas. Deletes an expression on the current server and is susceptible to .dpo, unlike .exd

  • Added .shopreq which lets you set role requirement for specific shop items

  • Added .shopbuy alias to .buy

Fixed

  • Fixed .convertlist showing currencies twice (this may not apply to existing users and it may require you to manually remove all currencies from units.json)

Removed

  • Removed Viewer field from stream online notification as it is (almost?) always 0.

[4.3.6] - 08.09.2022

Added

  • Added .expraddserver (.exas) which will server as a server-only alternative to .exa in case users want to override default Admin permissions with .dpo

  • Added .banprune command which sets how many days worth of messages will be pruned when bot (soft)bans a person either through a command or another punishment feature.

  • Added .qdelauth - Delete all quotes by the specified author on this server. If you target yourself - no permission required

  • Added .timeout command

  • Added an option to award currency based on received xp

Changed

  • Reminders now have embed support, but plaintext field is not supported.

  • User friendlier errors when parsing a number in a command fails

Fixed

  • Awarded xp is now correctly used in level up calculations

[4.3.5] - 17.08.2022

Added

  • Added a 'Use' button when a user already owns an item

  • Added a 'Pull Again' button to slots

  • Added .roleinfo command

  • Added .emojiremove command

  • Added .threadcreate and .threaddelete commands

  • Added .bank seize / .bank award owner only commands

Changed

  • Running a .timely command early now shows a pending color

  • .xp system is once again no longer opt in for servers

    • It's still opt-in for global and requires users to run .xp at least once in order to start gaining global xp

Fixed

  • Fixed users not getting club xp

[4.3.4] - 07.08.2022

Fixed

  • Fixed users getting XP out of nowhere while voice xp is enabled

[4.3.3] - 06.08.2022

Added

  • Added betroll option to .bettest command

  • Added .xpshopbuy and .xpshopuse convenience commands

  • Added an optional preview url to teh xp shop item config model which will be shown instead of the real Url

Changed

  • Updated position of Username and Club name on the .xp card

  • Improved text visibility on the .xp card

Fixed

  • Possibly fixed .trivia not stopping bug

  • Fixed very low payout rate on .betroll

  • Fixed an issue with youtube song resolver which caused invalid data to be cached

  • Added client id to the cache key as a potential fix for VoiceXp 'bug'. The solution may be to use different redis instances for each bot, or to switch from botCache: from 'redis' to 'memory' in creds.yml

  • Bot owner should now be able to buy items from the xpshop when patron requirement is set

  • Fixed youtube-dl caching invalid data. Please use yt-dlp instead

[4.3.2] - 28.07.2022

Fixed

  • Fixed Reaction Roles not working properly with animated emojis

  • Fixed .slot alignment

  • Fixed mysql and postgresql reactionrole migration

  • Fixed repeat loop with postgresql db provider

  • Fixed .bank withdraw <expression> will now correctly use bank amount for calculation

  • [dev] Fixed medusa Reply*LocalizedAsync not working with placeholders

[4.3.1] - 27.07.2022

Changed

  • Check for updates will run once per hour as it was supposed to

[4.3.0] - 27.07.2022

Added

  • Added .bettest command which lets you test many gambling commands

    • Better than .slottest

    • Counts win/loss streaks too

    • Doesn't count 1x returns as neither wins nor losses

    • multipliers < 1 are considered losses, > 1 considered wins

  • Added .betdraw command which lets you guess red/black and/or high/low for a random card

    • They payouts are very good, but seven always loses

  • Added .lula command. Plays the same as .wof but looks much nicer, and is easily customizable from gambling.yml without any changes to the sourcecode needed.

  • Added .repeatskip command which makes the next repeat trigger not post anything

  • Added .linkonly which will make the bot only allow link posts in the channel. Exclusive with .imageonly

  • Added release notifications. Bot owners will now receive new release notifications in dms if they have checkForUpdates set to true in data/bot.yml

    • You can also configure it via `.conf bot checkfor

    • updates <true/false>`

  • Added .xpshop which lets bot owners add xp backgrounds and xp frames for sale by configuring data/xp.yml

    • You can also toggle xpshop feature via .conf xp shop.is_enabled

Changed

  • .t Trivia code cleaned up, added ALL pokemon generations

  • .xpadd will now work on roles too. It will add the specified xp to each user (visible to the bot) in the role

  • Improved / cleaned up / modernized how most gambling commands look

    • .roll

    • .rolluo

    • .draw

    • .flip

    • .slot

    • .betroll

    • .betflip

    • Try them out!

  • .draw, .betdraw and some other card commands (not all) will use the new, rewritten deck system

  • Error will be printed to the console if there's a problem in .plant

  • [dev] Split Wiz.Common into a separate project

    • [dev] It will contain classes/utilities which can be shared across different WizBot related projects

  • [dev] Split Wiz.Econ into a separate project

    • [dev] It should be home for the backend any gambling/currency/economy feature

    • [dev] It will contain most gambling games and any shared logic

  • [dev] Compliation should take less time and RAM

    • [dev] No longer using generator and partial methods for commands

Fixed

  • .slot will now show correct multipliers if they've been modified

  • Fix patron errors showing up even with permissions disabling the command

  • Fixed an issue with voice xp breaking xp gain.

Removed

  • Removed .slottest, replaced by .bettest

  • Removed .wof, replaced by .lula

  • [dev] Removed a lot of unused methods

  • [dev] Removed several unused response strings

[4.2.15] - 12.07.2022

Fixed

  • Fixed .nh*ntai nsfw command

  • Xp Freezes may have been fixed

  • data/images.yml should once again support local file paths

  • Fixed multiword aliases

[4.2.14] - 03.07.2022

Added

  • Added .log userwarned (Logging user warnings)

  • Claiming .timely will now show a button which you can click to set a reminder

  • Added %server.icon% placeholder

  • Added warn punishment action for protection commands (it won't work with .warnp)

Changed

  • .log userbanned will now have a ban reason

  • When .die is used, bot will try to update it's status to Invisible

Fixed

  • Fixed elipsis character issue with aliases/quotes. You should now be able to set an elipsis to be an alias of .quoteprint

[4.2.13] - 30.06.2022

Fixed

  • Fixed .cash bank interaction not being ephemeral anymore

[4.2.12] - 30.06.2022

Fixed

  • Fixed .trivia --pokemon showing incorrect pokemons

[4.2.11] - 29.06.2022

Fixed

  • Fixed .draw command

[4.2.10] - 29.06.2022

  • Fixed currency generation working only once.

[4.2.9] - 25.06.2022

Fixed

  • Fixed creds_example.yml misssing from output directory

[4.2.8] - 24.06.2022

Fixed

  • .timely should be fixed

[4.2.7] - 24.06.2022

Changed

  • New cache abstraction added

    • 2 implemenations: redis and memory

    • All current bots will stay on redis cache, all new bots will use in-process memory cache by default

    • This change removes bot's hard dependency on redis

    • Configurable in creds.yml (please read the comments)

    • You MUST use 'redis' if your bot runs on more than 1 shard (2000+ servers)

  • [dev] Using new non-locking ConcurrentDictionary

Fixed

  • .xp will now show default user avatars too

Removed

  • Removed .imagesreload as images are now lazily loaded on request and then cached

[4.2.6] - 22.06.2022

Fixed

  • Patron system should now properly by disabled on selfhosts by default.

[4.2.5] - 18.06.2022

Fixed

  • Fixed .crypto, you will still need coinmarketcapApiKey in creds.yml in order to make it run consistently as the key is shared

[4.2.3] - 17.06.2022

Fixed

  • Fixed .timely nullref bug and made it nicer

  • Fixed .streamrole not updating in real time!

  • Disabling specific Global Expressions should now work with .sc (and other permission commands)

[4.2.2] - 15.06.2022

Fixed

  • Added missing Patron Tiers and fixed Patron pledge update bugs

  • Prevented creds_example.yml error in docker containers from crashing it

Changed

  • Rss feeds will now show error counter before deletion

[4.2.1] - 14.06.2022

Added

  • Localized strings updated

Fixed

  • Fixed .exexport, .savechat, and .quoteexport

  • Fixed plaintext-only embeds

  • Fixed greet message footer not showing origin server

[4.2.0] - 14.06.2022

Added

  • Added data/searches.yml file which configures some of the new search functionality The file comments explaining what each property does. Explained briefly here:

    # what will be used for .google command. Either google (official api) or searx
    webSearchEngine: Google
    # what will be used for .img command. Either google (official api) or searx
    imgSearchEngine: Google
    # how will yt results be retrieved: ytdataapi or ytdl or ytdlp
    ytProvider: YtDataApiv3
    # in case web or img search is set to searx, the following instances will be used:
    searxInstances: []
    # in case ytProvider is set to invidious, the following instances will be used
    invidiousInstances: []
  • Added new properties to creds.yml. google -> searchId and google -> searchImageId.

  • These properties are used as cx (google api query parameter) in case you've setup your data/searches.yml to use the official google api. searchId is used for web search searchimageId is used for image search

    google:
        searchId: ""
        searchImageId: ""
  • Check creds_example.yml for comments explaining how to obtain them.

Patronage system added

  • Added data/patron.yml for configuration

  • Implemented only for patreon so far

  • Patreon subscription code completely rewritten

  • Users who pledge on patreon get benefits based on the amount they pledged

  • Public wizbot only. But selfhosters can adapt it to their own patreon pages by configuring their patreon credentials in creds.yml and enabling the system in data/patron.yml file.

    • Most of the patronage system strings are hardcoded atm, so if you wish to use this system on selfhosts, you will have to modify the source

  • Pledge amounts are split into tiers. This is not configurable atm.

    • Tier I - 1$ - 4.99$ a month

    • Tier V - 5$ - 9.99$ a month

    • Tier X - 10$ - 19.99$ a month

    • Tier XX - 20$ - 49.99$ a month

    • Tier L - 50$ - 99.99$ a month

    • Tier C - 100$+ a month

  • Rewards and command quotas for each of the tiers are configurable

  • Limitations to certain features are also configurable. ex:

quotas:
    features:
        "rero:max_count":
            x: 50
  • ^ this setting would set the maximum number of reaction roles to be 50 for a user who is in Patron Tier X

  • Read the comments in the .yml file for (much) more info

  • Quota system allows the owner to set up hourly, daily and monthly quota usage for each tier

  • Quota system applies to entire server owner by a patron

    • Patron spends own quota by using the commands on any server

    • Any user on any server owned by a patron spends that patron's quota

  • When users subscribe to patreon they will receive a welcome message

    • If you're enabling patron system for a selfhost, you will want to edit it

Added .patron and .patronmessage commands

  • .patron checks your patronage status, and quotas. Requires patron system to be enabled.

  • .patronmessage (owner only) sends message to all patrons with the specified tier or higher. Supports embeds

  • Added a fake .cmdcd command cleverbot:response which can be used to limit how often users can talk to the cleverbot.

Changed

  • CurrencyReward now support adding additional flowers to patrons.

  • .donate command completely reworked.

    • Works only on public bot (OnlyPublicBotAttribute)

    • Guides user on how to donate to support the project

    • Added interaction explaining selfhosting

  • .google reimplemented. It now has 2 modes configurable in data/searches.yml under the webSearchengine property

    • If set to google, official custom search api will be used. You will need to set googleapikey and google.searchId in creds.yml

    • if set to searx one of the instances specified in the searxInstances: property will be randomly chosen for each request

      • instances must have format=json allowed (public ones usually don't allow it)

      • instances are specified as a fully qualified url, example: https://my.cool.searx.instance.io

  • .image reimplemented. Same as .google - it uses either google official api (in which case it uses google.searchImageId from creds.yml) or searx

  • .youtube reimplemented. It will use a ytProvider: property from data/searches.yml to determine how to retrieve results

    • ytdataapi will use the official google api (requires GoogleApiKey specified in creds.yml) and YoutubeDataApi enabled in the dev console

    • ytdl will use youtube-dl program from the host machine. It must be downloaded and it's location must be added to path env variable.

    • ytdlp will use yt-dlp program from the host machine. Same as youtube-dl - must be in path env variable.

    • invidious will use one of invidious instances specified in the invidiousInstances property. Very good.

  • .google, .youtube and .image moved to the new Search group

Note: Results of each .youtube query will be cached for 1 hour to improve perfomance

  • Removed 30 second .ping ratelimit on public wizbot

  • xp image generation changes

    • In case you have default settings, your xp image will look slightly different

    • If you've modified xp_template.json, your xp image might look broken. Your old template will be saved in xp_template.json.old

    • Xp number outline is now slightly thicker

    • Xp number will now have Center vertical and horizontal alignment

    • LastLevelUp no longer supported

  • Some commands will now use timestamp tags for better user experience

  • .prune was slightly slowed down to avoid ratelimits

  • .wof moved from it's own group to the default Gambling group

  • .feed urls which error for more than 100 times will be automatically removed.

  • .ve is now enabled by default

  • [dev] wizbot interaction slightly improved to make it less nonsense (they still don't make sense)

  • [dev] RewardedUsers table slightly changed to make it more general

  • [dev] renamed // todos which aren't planned soon to // FUTURE

  • [dev] currency rewards have been reimplemented and moved to a separate service

Fixed

  • .rh no longer needs quotes for multi word roles

  • .deletexp will now properly delete server xp too

  • Fixed .crypto sparklines

  • [dev] added support for configs to properly parse enums without case sensitivity (ConfigParsers.InsensitiveEnum)

  • [dev] Fixed a bug in .gencmdlist

  • [dev] small fixes to creds provider

Removed

  • .ddg removed.

  • [dev] removed some dead code and comments

[4.1.6] - 14.05.2022

Fixed

  • Fixed windows release and updated packages

[4.1.5] - 11.05.2022

Changed

  • .clubdesc <msg> will now have a nicer response

Fixed

  • .give DM will once again show an amount

  • Fixed an issue with filters not working and with custom reactions no longer being able to override commands.

  • Fixed .stock command

[4.1.4] - 06.05.2022

Fixed

  • Fixed .yun

[4.1.3] - 06.05.2022

Added

  • Added support for embed arrays in commands such as .say, .greet, .bye, etc...

    • Website to create them is live at wizbot.cc/embedbuilder (old one is moved to wizbot.cc/old-embedbuilder)

    • Embed arrays don't have a plainText property (it's renamed to 'content')

    • Embed arrays use color hex values instead of an integer

    • Old embed format will still work

    • There shouldn't be any breaking changes

  • Added .stondel command which, when toggled, will make the bot delete online stream messages on the server when the stream goes offline

  • Added a simple bank system.

    • Users can deposit, withdraw and check the balance of their currency in the bank.

    • Users can't check other user's bank balances.

  • Added a button on a .$ command which, when clicked, sends you a message with your bank balance that only you can see.

  • Added .h <command group>

    • Using this command will list all commands in the specified group

    • Atm only .bank is a proper group (.h bank)

  • Added "Bank Accounts" entry to .economy

Changed

  • Reaction roles rewritten completely

    • Supports multiple exclusivity groups per message

    • Supports level requirements

    • However they can only be added one by one

    • Use the following commands for more information

      • .h .reroa

      • .h .reroli

      • .h .rerot

      • .h .rerorm

      • .h .rerodela

  • Pagination is now using buttons instead of reactions

  • Bot will now support much higher XP values for global and server levels

  • [dev] Small change and generation perf improvement for the localized response strings

Fixed

  • Fixed .deletexp command

  • .give command should send DMs again

  • .modules command now has a medusa module description

[4.1.2] - 18.04.2022

Fixed

  • Fixed an issue with missing .dll files in release versions

[4.1.0] - 18.04.2022

Added

  • WizBot now supports mysql, postgresql and sqlite

    • To change the db wizbot will use, simply change the db type in creds.yml

    • There is no migration code right now, which means that if you want to switch to another system you'll either have to manually export/import your database or start fresh

    • Medusa system

      • A massive new feature which allows developers to create custom modules/plugins/cogs

      • They can be load/unloaded/updated at runtime without restarting the bot

Changed

  • Minor club rework

    • Clubs names are now case sensitive (owo and OwO can be 2 different clubs)

    • Removed discriminators

      • Current discriminators which are greater than 1 are appended to clubnames to avoid duplicates, you can rename your club with .clubrename to remove it

      • Most of the clubs with #1 discriminator no longer have it (For example MyClub#1 will now just be MyClub)

  • [dev] A lot of refactoring and slight functionality changes within WizBot's behavior system and command handler which were required in order to support the medusa system

Removed

  • Removed .clublevelreq command as it doesn't serve much purpose

[4.0.6] - 21.03.2022

Fixed

  • Fixed voice presence logging

  • Fixed .clubaccept, .clubban, .clubkick and .clubunban commands

[4.0.5] - 21.03.2022

Fixed

  • Fixed several bugs in the currency code

  • Fixed some potential memory leaks

  • Fixed some response strings

[4.0.4] - 04.03.2022

Fixed

  • Fixed the id which shows up when you add a new Expression

  • Fixed some strings which were still referring to "CustomReaction(s)" instead of "Expression(s)"

[4.0.3] - 04.03.2022

Fixed

  • Console should no longer spam numbers when .antispam is enabled

[4.0.2] - 03.03.2022

Fixed

  • Fixed .rero not working due to a bug introduced in 4.0

[4.0.1] - 03.03.2022

Added

  • Added usePrivilegedIntents to creds.yml if you don't have or don't want (?) to use them

  • Added a human-readable, detailed error message if logging in fails due to missing privileged intents

[4.0.0] - 02.03.2022

Added

  • Added .deleteemptyservers command

  • Added .curtr <id> which lets you see full information about one of your own transactions with the specified id

  • Added trovo.live support for stream notifications (.stadd)

  • Added unclaimed waifu decay functionality

    • Added 3 new settings to data/gambling.yml to control it:

      • waifu.decay.percent - How much % to subtract from unclaimed waifu

      • waifu.decay.hourInterval - How often to decay the price

      • waifu.decay.minPrice - Unclaimed waifus with price lower than the one specified here will not be affected by the decay

  • Added currency.transactionsLifetime to data/gambling.yml Any transaction older than the number of days specified will be automatically deleted

  • Added .stock command to check stock prices and charts

  • Re-added .qap / .queueautoplay

Changed

  • CustomReactions module (and customreactions db table) has been renamed to Expressions.

    • This was done to remove confusion about how it relates to discord Reactions (it doesn't, it was created and named before discord reactions existed)

    • Expression command now start with ex/expr and end with the name of the action or setting.

    • For example .exd (.dcr) is expression delete, .exa (.acr)

    • Permissions (.lp) be automatically updated with "ACTUALEXPRESSIONS", "EXPRESSIONS" instead of "ACTUALCUSTOMREACTIONS" and "CUSTOMREACTIONS"

    • Permissions for .ecr (now .exe), .scr (now .exs), .dcr (now .exd), .acr (now .exa), .lcr (now .exl) will be automatically updated

    • If you have custom permissions for other CustomReaction commands

    • Some of the old aliases like .acr .dcr .lcr and a few others have been kept

  • Currency output format improvement (will use guild locale now for some commands)

  • .crypto will now also show CoinMarketCap rank

  • Waifus can now be claimed for much higher prices (int -> long)

  • Several strings and commands related to music have been changed

    • Changed .ms / .movesong to .tm / .trackmove but kept old aliases

    • Changed song -> track throughout music module strings

  • Improved .curtrs (It will now have a lot more useful data in the database, show Tx ids, and be partially localized)

    • [dev] Reason renamed to Note

    • [dev] Added Type, Extra, OtherId fields to the database

  • [dev] CommandStrings will now use methodname as the key, and not the command name (first entry in aliases.yml)

    • In other words aliases.yml and commands.en-US.yml will use the same keys (once again)

  • [dev] Reorganized module and submodule folders

  • [dev] Permissionv2 db table renamed to Permissions

  • [dev] Moved FilterWordsChannelId to a separate table

Fixed

  • Fixed twitch stream notifications (rewrote it to use the new api)

  • Fixed an extra whitespace in usage part of command help if the command has no arguments

  • Possible small fix for .prune ratelimiting

  • .gvc should now properly trigger when a user is already in a gvc and changes his activity

  • .gvc should now properly detect multiple activities

  • Fixed reference to non-existent command in bot.yml

  • Comment indentation in .yml files should now make more sense

  • Fixed .warn punishments not being applied properly when using weighted warnings

  • Fixed embed color when disabling .antialt

Removed

  • Removed .bce - use .config or .config bot specifically for bot config

  • Removed obsolete placeholders: %users% %servers% %userfull% %username% %userdiscrim% %useravatar% %id% %uid% %chname% %cid% %sid% %members% %server_time% %shardid% %time% %mention%

  • Removed some obsolete commands and strings

  • Removed code which migrated 2.x to v3 credentials, settings, etc...

[3.0.13] - 14.01.2022

Fixed

  • Fixed .greetdm causing ratelimits during raids

  • Fixed .gelbooru

[3.0.12] - 06.01.2022

Fixed

  • .smch Fixed

  • .trans command will now work properly with capitilized language names

  • Ban message color with plain text fixed

  • Fixed some grpc coordinator bugs

  • Fixed a string in .xpex

  • Google version of .img will now have safe search enabled

  • Fixed a small bug in .hangman

[3.0.11] - 17.12.2021

Added

  • .remindl and .remindrm commands now supports optional 'server' parameter for Administrators which allows them to delete any reminder created on the server

  • Added slots.currencyFontColor to gambling.yml

  • Added .qexport and .qimport commands which allow you to export and import quotes just like .crsexport

  • Added .showembed <msgid> and .showembed #channel <msgid> which will show you embed json from the specified message

Changed

  • .at and .atl commands reworked

    • Persist restarts

    • Will now only translate non-commands

    • You can switch between .at del and .at without clearing the user language registrations

    • Disabling .at will clear all user language registrations on that channel

    • Users can't register languages if the .at is not enabled

    • Looks much nicer

      • Bot will now reply to user messages with a translation if del is disabled

      • Bot will make an embed with original and translated text with user avatar and name if del is enabled

    • If the bot is unable to delete messages while having del enabled, it will reset back to the no-del behavior for the current session

Fixed

  • .crypto now supports top 5000 coins

[3.0.10] - 01.12.2021

Changed

  • .warn now supports weighted warnings

  • .warnlog will now show current amount and total amount of warnings

Fixed

  • .xprewsreset now has correct permissions

Removed

  • Removed slot.numbers from images.yml as they're no longer used

[3.0.9] - 21.11.2021

Changed

  • .ea will now use an image attachments if you omit imageUrl

Added

  • Added .emojiadd with 3 overloads

    • .ea :customEmoji: which copies another server's emoji

    • .ea newName :customEmoji: which copies emoji under a different name

    • .ea emojiName <imagelink.png> which creates a new emoji from the specified image

  • Patreon Access and Refresh Tokens should now be automatically updated once a month as long as the user has provided the necessary credentials in creds.yml file:

    • Patreon.ClientId

    • Patreon.RefreshToken (will also get updated once a month but needs an initial value)

    • Patreon.ClientSecret

    • Patreon.CampaignId

Fixed

  • Fixed an error that would show up in the console when a club image couldn't be drawn in certain circumstances

[3.0.8] - 03.11.2021

Added

  • Created VotesApi project nad re-worked vote rewards handling

    • Updated votes entries in creds.yml with explanations on how to set up vote links

Fixed

  • Fixed adding currency to users who don't exist in the database

  • Memory used by the bot is now correct (thanks to kotz)

  • Ban/kick will no longer fail due to too long reasons

  • Fixed some fields not preserving inline after string replacements

Changed

  • images.json moved to images.yml

    • Links will use the new cdn url

    • Heads and Tails images will be updated if you haven't changed them already

  • .slot redesigned (and updated entries in images.yml)

  • Reduced required permissions for .qdel (thanks to tbodt)

[3.0.7] - 05.10.2021

Added

  • .streamsclear re-added. It will remove all followed streams on the server.

  • .gifts now have 3 new ✂️ Haircut 🧻 ToiletPaper and 🥀 WiltedRose which reduce waifu's value

    • They are called negative gifts

    • They show up at the end of the .gifts page and are marked with a broken heart

    • They have a separate multiplier (waifu.multi.negative_gift_effect default 0.5, changeable via .config gambling or data/gambling.yml)

    • When gifted, the waifu's price will be reduced by the price * multiplier

    • Negative gifts don't show up in .waifuinfo nor is the record of them kept in the database

Fixed

  • Fixed %users% and %shard.usercount% placeholders not showing correct values

[3.0.6] - 27.09.2021

Added

  • .logignore now supports ignoring users and channels. Use without parameters to see the ignore list

Changed

  • Hangman rewrite

    • Hangman categories are now held in separate .yml files in data/hangman/XYZ.yml where XYZ is the category name

Fixed

  • Fixed an exception which caused repeater queue to break

  • Fixed url field not working in embeds

[3.0.5] - 20.09.2021

Fixed

  • Fixed images not automatically reloading on startup if the keys don't exist

  • Fixed .logserver - it should no longer throw an exception if you had no logsettings previously

[3.0.4] - 16.09.2021

Added

  • Fully translated to Brazilian Portuguese 🎉

  • Added %server.boosters% and %server.boost_level% placeholders

  • Added DmHelpTextKeywords to data/bot.yml

    • Bot now sends dm help text ONLY if the message contains one of the keywords specified

    • If no keywords are specified, bot will reply to every DM (like before)

Fixed

  • Possible fix for .repeat bug

    • Slight adjustment for repeater logic

    • Timer should no longer increase on some repeaters

    • Repeaters should no longer have periods when they're missing from the list

  • Fixed several commands which used error color for success confirmation messages

[3.0.3] - 15.09.2021

Added

  • Added .massban to ban multiple people at once. 30 second cooldown

  • Added .youtubeuploadnotif / .yun as a shortcut for subscribing to a youtube channel's rss feed

  • Added .imageonlychannel / .imageonly to prevent users from posting anything but images in the channel

  • Added .config games hangman.currency_reward and a property with the same name in games.yml

    • If set, users will gain the specified amount of currency for each hangman win

  • Fully translated to Spanish, Russian and Ukrainian 🎉

Changed

  • Ban .warnp will now prune user's messages

Fixed

  • .boostmsg will now properly show boost, and not greet message

[3.0.2] - 12.09.2021

Added

  • .rero now optionally takes a message id to which to attach the reaction roles

  • Fully translated to German 🎉

  • Added .boost, .boostmsg and .boostdel commands which allow you to have customizable messages when someone boosts your server, with auto-deletion support

Changed

  • Updated .greetmsg and .byemsg command help to match the new .boost command help

  • Updated response embed colors in greet commands

    • Success -> green

    • Warning or Disable -> yellow.

Fixed

  • .timely will now correctly use Ok color

  • Fixed .log commands

Removed

  • Removed .novel command as it no longer works

[3.0.1] - 10.09.2021

Fixed

  • Fixed some issues with the embeds not showing the correct data

[3.0.0] - 06.09.2021

Changed

  • Renamed credentials.json to creds.yml (example in creds_example.yml)

    • Most of the credentials from 2.x will be automatically migrated

    • Explanations on how to get the keys are added as the comments

  • Code cleanup

    • Command attributes cleaned up

      • Removed dummy Remarks and Usages attributes as hey were unused for a few patches but stayed in the code to avoid big git diffsmigration code has ran and it can be safely removed

    • There are 2 projects: WizBot and WizBot.Coordinator

      • You can directly run WizBot as the regular bot with one shard

      • Run WizBot.Coordinator if you want more control over your shards and a grpc api for coordinator with which you can start, restart, kill and see status of shards

    • Small performance improvements

    • Db Migrations squashed

    • A lot of cleanup all around

  • Many guides reworked

    • Guides now instruct users to set build output to wizbot/output instead of running from wizbot/src/WizBot

Fixed

  • Fixed many response strings which were formatted or used incorrectly

Removed

  • Removed All database migrations and data (json file) migrations

    • As updating to the latest 2.x version before switching over to v3 is mandated (or fresh v3 install), that means all

[2.46.2] - 14.07.2021

Fixed

  • Fixed .save for local songs

  • Fixed .lq for local songs if the song names are too long

  • Fixed hierarchy check for .warnpunish with role argument

[2.46.1] - 21.06.2021

Fixed

  • Fixed some response strings (thx Ala)

  • Fixed repeaters having 5 global limit, instead of 5 server limit (thx cata)

[2.46.0] - 17.06.2021

Added

  • Added some nsfw commands

Changed

  • .aar reworked. Now supports multiple roles, up to 3.

    • Toggle roles that are added to newly joined users with .aar RoleName

    • Use .aar to list roles which will be added

    • Roles which are deleted are automatically cleaned up from .aar

  • .inrole now also shows user ids

  • Blacklist commands (owner only) .ubl .sbl and .cbl will now list blacklisted items when no argument (or a page number) is provided

  • .cmdcd now works with customreactions too

  • .xprr usage changed. It now takes add/rm parameter to add/remove a role ex. You can only take or remove a single role, adding and removing a role at the same level doesn't work (yet?)

    • example: .xprr 5 add Member or .xprr 1 rm Newbie

[2.45.2] - 14.06.2021

Added

  • Added .duckduckgo / .ddg search

Changed

  • .invlist shows expire time and is slightly prettier

Fixed

  • .antialt will be properly cleaned up when the bot leaves the server

[2.45.1] - 12.06.2021

Added

  • Added many new aliases to custom reaction commands in the format ex + "action" to prepare for the future rename from CustomReactions to Expressions

  • You can now .divorce via username#discrim even if the user no longer exists

Changed

  • DmHelpText should now have %prefix% and %bot.prefix% placeholders available

  • Added squares which show enabled features for each cr in .lcr

  • Changed CustomReactions' IDs to show, and accept base 32 unambigous characters instead of the normal database IDs (this will result in much shorter cr IDs in case you have a lot of them)

  • Improved .lcr helptext to explain what's shown in the output

  • .rolecolor <color> <role> changed to take color, then the role, to make it easier to set color for roles with multiple words without mentioning the role

  • .acmdcds alias chanaged to .cmdcds

  • .8ball will now cache results for a day

  • .chatmute and .voicemute now support timed mutes

Fixed

  • Fixed .config <conf> <prop> exceeding embed field character limit

[2.45.0] - 10.06.2021

Added

  • Added .crsexport and .crsimport

    • Allows for quick export/import of server or global custom reactions

    • Requires admin permissions for server crs, and owner for global crs

    • Explanation of the fields is in the comment at the top of the .crsexport .yml file

  • Added .mquality / .musicquality - Set encoding quality. Has 4 presets - Low, Medium, High, Highest. Default is Highest

  • Added .xprewsreset which resets all currently set xp level up rewards

  • Added .purgeuser @User which will remove the specified from the database completely. Removed settings include: Xp, clubs, waifu, currency, etc...

  • Added .config xp txt.per_image and xpFromImage to xp.yml - Change this config to allow xp gain from posting images. Images must be 128x128 or greater in size

  • Added .take <amount> <role> to complement .award <amount> role

  • Added Fans list to .waifuinfo which shows how many people have their affinity set to you

  • Added .antialt which will punish any user whose account is younger than specified threshold

Changed

  • .warne with no args will now show current state

  • .inrole` will now lists users with no roles if no role is provided

  • Music suttering fixed on some systems

  • .say moved to utility module

  • Re-created GuildRepeaters table and renamed to Repeaters

  • confirmation prompts will now use pending color from bot config, instead of okcolor

  • .mute can now have up to 49 days mute to match .warnp

  • .warnlog now has proper pagination (with reactions) and checking your own warnings past page 1 works correctly now with .warnlog 2

Fixed

  • obsolete_use string fixed

  • Fixed .crreact

[2.44.4] - 06.06.2021

Added

  • Re-added %music.playing% and %music.queued% (#290)

  • Added %music.servers% which shows how many servers have a song queued up to play ℹ️ ^ Only available to .ropl / .adpl feature atm

  • .autodc re-added

  • .qrp, .vol, .smch .autodc will now persist

Changed

  • Using .commands / .cmds without a module will now list modules

  • .qrp / .queuerepeat will now accept one of 3 values

    • none - don't repeat queue

    • track - repeat single track

    • queue (or ommit) - repeat entire queue

  • your old .defvol and .smch settings will be reset

Fixed

  • Fixed .google / .g command

  • Removing last song in the queue will no longer reset queue index

  • Having .rpl disabled will now correctly stop after the last song, closes #292

Removed

  • .sad removed. It's more or less useless. Use .qrp and .autodc now for similar effect

Obsolete

  • .rcs is obsolete, use .qrp s or .qrp song

  • .defvol is obsolete, use .vol

[2.44.3] - 04.06.2021

Changed

  • Minor perf improvement for filter checks

Fixed

  • .qs result urls are now valid

  • Custom reactions with "-" as a response should once again disable that custom reaction completely

  • Fixed .acrm out of range string

  • Fixed .sclist and .aclist not showing correct indexes past page 1

[2.44.2] - 02.06.2021

Added

  • Music related commands reimplemented with custom code, considered alpha state

  • Song and playlist caching (faster song queue after first time)

  • Much faster starting and skipping once the songs are in the queue

  • Higher quality audio (no stuttering too!)

  • Local tracks will now have durations if you have ffprobe installed (comes with ffmpeg)

  • Bot supports joining a different vc without skipping the song if you use .j

    • ⚠️ DO NOT DRAG THE BOT to another vc, as it's not properly supported atm, and you will have to do .play after dragging it)

  • .j makes the bot join your voice channel

  • .p is now alias of play, pause is .pause

  • .qs should work without google api key now for most users as it is using a custom loader

  • Added .clubs alias for .clublb

Changed

  • .ms no longer takes > between arguments (.ms 1 5 now, was .ms 1>5 before)

  • FlowerShop renamed to Shop

Fixed

  • Fixed decay bug giving everyone 1 flower every 24h

  • Fixed feeds which have rss media items without a type

  • Fixed .acrm index not working

  • Fixed and error reply when a waifu item doesn't exist

  • Disabled colored console on windows as they were causing issues for some users

  • Fixed/Updated some strings and several minor bugfixes

Removed

  • Removed admin requirement on .scrm as it didn't make sense

  • Some Music commands are removed because of the complexity they bring in with little value (if you really want them back, you can open an issue and specify your good reason)

Last updated