53 KiB
Changelog
Mostly based on keepachangelog except date format. a-c-f-r-o
[5.1.3] - 06.07.2024
Added
- Added
.qurancommand, which will show the provided ayah in english and arabic, including recitation by Alafasy
Changed
- Replying to the bot's message in the channel where chatterbot is enabled will also trigger the ai response, as if you pinged the bot. This only works for chatterbot, but not for nadeko ai command prompts
Fixed
- Fixed
.stickeraddit now properly supports 300x300 image uploads. - Bot should now trim the invalid characters from chatterbot usernames to avoid openai errors
- Fixed prompt triggering chatterbot responses twice
[5.1.2] - 29.06.2024
Fixed
- Fixed
.honeypotnot unbanning and not pruning messages
[5.1.1] - 27.06.2024
Added
- Added
.honeypotcommand, which automatically softbans (ban and immediate unban) any user who posts in that channel.- Useful to auto softban bots who spam every channel upon joining
- Users who run commands or expressions won't be softbanned.
- Users who have ban member permissions are also excluded.
Fixed
- Fixed
.betdrawnot respecting maxbet - Fixed
.xpshoppagination for real this time?
[5.1.0] - 25.06.2024
Added
- Added
.promptcommand, Nadeko Ai Assistant- You can send natural language questions, queries or execute commands. For example "@Nadeko how's the weather in paris" and it will return
.we Parisand run it for you. - In case the bot can't execute a command using your query, It will fall back to your chatter bot, in case you have it enabled in data/games.yml. (Cleverbot or chatgpt)
- (It's far from perfect so please don't ask the bot to do dangerous things like banning or pruning)
- Requires Patreon subscription, after which you'll be able to run it on global @Nadeko bot.
- Selfhosters: If you're selfhosting, you also will need to acquire the api key from https://dashy.nadeko.bot/me after pledging on patreon and put it in nadekoAiToken in creds.yml
- You can send natural language questions, queries or execute commands. For example "@Nadeko how's the weather in paris" and it will return
- Added support for
gpt-4oindata/games.yml
Changed
- Remind will now show a timestamp tag for durations
- Only
Gpt35TurboandGpt4oare valid inputs in games.yml now data/patron.ymlchanged. It now has limits. The entire feature limit system has been reworked. Your previous settings will be reset- A lot of updates to bot strings (thanks Ene)
- Improved cleanup command to delete a lot more data once cleanup is ran, not only guild configs (please don't use this command unless you have your database bakced up and you know 100% what you're doing)
Fixed
- Fixed xp bg buy button not working, and possibly some other buttons too
- Fixed shopbuy %user% placeholders and updated help text
- All .feed overloads should now work"
.xpexcludeshould will now work with forums too. If you exclude a forum you won't be able to gain xp in any of the threads.- Fixed remind not showing correct time (thx cata)
Removed
- Removed PoE related commands
- dev: Removed patron quota data from the database, it will now be stored in redis
[5.0.8] - 21.05.2024
Added
- Added
.setserverbannerand.setservericoncommands (thx cata) - Added overloads section to
.h commandwhich will show you all versions of command usage with param names - You can now check commands for submodules, for example
.cmds SelfAssignedRoleswill show brief help for each of the commands in that submodule - Added dropdown menus for .mdls and .cmds (both module and group versions) which will give you the option to see more detailed help for each specific module, group or command respectively
- Self-Hosters only:
- Added a dangerous cleanup command that you don't have to know about
Changed
- Quotes will now use alphanumerical ids (like expressions)
Fixed
.verbosewill now be respected for expression errors- Using
.pickwill now correctly show the name of the user who picked the currency - Fixed
.hnot working on some commands .langsetand.langsetdshould no longer allow unsupported languages and nonsense to be typed in
[5.0.7] - 15.05.2024
Fixed
.streammessagewill once again be able to mention anyone (as long as the user setting the message has the permission to mention everyone).streammsgallfixed.xplband.xpglbpagination fixed- Fixed page number when the total number of elements is unknown
[5.0.6] - 14.05.2024
Changed
.greetand.byewill now be automatically disabled if the bot losses permissions to post in the specified channel- Removed response replies from
.blackjackand.pickas the original message will always be deleted
Fixed
- Fixed
.blackjackresponse string as it contained no user name - Fixed
.tttand.giftstrings not mentioning the user
[5.0.5] - 11.05.2024
Fixed
%server.members%placeholder fixed.say #channel <message>should now be working properly again.repeat,.greet,.byeand.boostcommand can now once again mention anyone
[5.0.4] - 10.05.2024
Added
- Added
.shopadd commandYou can now sell commands in the shop. The command will execute as if you were the one running it when someone buys it- type
.h .shopaddfor more info
- type
- Added
.stickyrolesUsers leaving the server will have their roles saved to the database and reapplied if they rejoin within 30 days. - Giveaway commands
.ga start <duration> <text>starts the giveway with the specified duration and message (prize). You may have up to 5 giveaways on the server at once.ga end <id>prematurely ends the giveaway and selects a winner.ga cancel <id>cancels the giveaway and doesn't select a winner.ga listlists active giveaways on the current server.ga reroll <id>rerolls the winner on the completed giveaway. This only works for 24 hours after the giveaway has ended, or until the bot restarts.- Users can join the giveaway by adding a 🎉 reaction
- Added Todo Commands
.todo add <name>- adds a new todo.todo delete <id>- deletes a todo item.todo done <id>- completes a todo (marks it with a checkmark).todo list- lists all todos.todo edit <id> <new message>- edits a todo item message.todo show <id>- Shows the text of the specified todo item- In addition to that, there are also Todo archive commands
.todo archive add <name>- adds all current todos (completed and not completed) to the archived list, your current todo list will become cleared.todo archive list- lists all your archived todo lists.todo archive show <id>- shows the todo items from one of your archived lists.todo archive delete <id>- deletes and archived todo list
- Added
.queufairplay/.qfp(music feature) re-added but it works differently- Once you run it, it will reorganize currently queued songs so that they're in a fair order.
- Added
.clubrenamecommand to uh rename your club - For self-hosters:
- Added
.sqlselectcsvwhich will return results in a csv file instead of an embed. - You can set whether nadeko ignores other bots in
bot.yml - You can set shop sale cut in
gambling.yml
- Added
- Added a page parameter to
.feedlist - Added seconds/sec/s to
.convertcommand - Added
.prunecancelto cancel an active prune - Added progress reporting when using
.prune. - Added audit log reason for
.setroleand some other features
Changed
- Users who have manage messages perm in the channel will now be excluded from link and invite filtering (
.sfiand.sfl) .sendcommand should work consistently and correctly now. You can have targets from other shards too. The usage has been changed. refer to.h .sendfor more info.serverinfono longer takes a server name. It only takes an id or no arguments- You can now target a different channel with .repeat
.cmds <module name>,.cmds <group nameand.mdlslooks better- The bot will now send a discord Reply to every command
.queuesearch/.qswill now show the results with respective video thumbnails- A lot of code cleanup (still a lot to be done) and Quality of Life improvements
.inrolewill now show mentions primarily, and use a spoiler to show usernames
Fixed
.feedshould now correctly accept (and show) the message which can be passed as the third parameter.saywill now correctly report errors if the user or the bot don't have sufficent perms to send a message in the targeted channel- Fixed
.invitelistnot paginating correctly .serverinfowill now correctly work for other shards.sendwill now correctly work for other shards.translatecommand will no longer fail if the user capitalizes the language name- Fixed xp card user avatar not showing for some users
Removed
.pollcommands removed as discord added polls.scpland other music soundcloud commands have been removed as soundcloud isn't issuing new api tokens for years now- Removed a lot of useless and nsfw commands
- Removed log voice presence TTS
- Cleanup: Removed a lot of obsolete aliases from aliases.yml
[4.3.22] - 23.04.2024
Added
- Added
.setbannercommand (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
.stockcommand - Fixed
.clubapplyand.clubaccept - Removed some redundant discriminators
[4.3.20] - 20.01.2024
Fixed
- Fixed
.config searches followedStreams.maxCountnot working
[4.3.19] - 20.01.2024
Added
- Added
followedStreams.maxCounttosearches.ymlwhich 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] - 26.12.2023
Added
- Added
.cacheuserscommand (thx Kotz) - Added
.clubrejectwhich lets you reject club applications
Changed
- Updated discord lib, there should be less console errors now
Fixed
- Fixed
icon_urlwhen using.showembed - Fixed
.quoteshownot 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
.revimgand.revavas google removed reverse image search
[4.3.17] - 06.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] - 24.05.2023
Fixed
- Fixed missing events from
.logevents - Fixed
.logthread deleted and thread created events not working properly
[4.3.15] - 21.05.2023
Fixed
- Fixed -w 0 in trivia
- Fixed
.rpsamount field in the response - Fixed
.showembedoutput - Fixed bank award's incorrect output message
[4.3.14] - 02.04.2023
Fixed
- Fixed voice hearbeat issue
.banktakehad ok/error responses flipped. No functional change- PermRole should deny messages in threads todo
- Fixed chucknorris jokes
.logserverwill now
[4.3.13] - 20.02.2023
Fixed
- Fixed
.log userpresence .qwill now useyt-dlpif anything other thanytProvider: Ytdlis set indata/searches.yml- Fixed Title links on some embeds
[4.3.12] - 12.02.2023
Fixed
- Fixed
.betstatsnot working on european locales - Timed
.banwill work on users who are not in the server - Fixed some bugs in the medusa system
[4.3.11] - 21.01.2023
Added
- Added
.doasBot owner only command - Added
.stickeraddcommand
Changed
.waifuinfooptimized- You can now specify an optional custom message in
.feedand.yunwhich 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
.translatenow supports many more languages.translangsprettier output
Fixed
- Added logging for thread events
- Fixed a bug for
.quotedeleteauthorcausing the executing user to delete own messages - Fixed TimeOut punishment not alklowing 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
.deletecurrencywill now also reset banked currency- Fixed DMHelpText reply
.hcommand show now properly show both channel and server user permission requirements- Many fixes and improvements to medusa system
- Fixed trivia --nohint
.joinracewill no longer fail if the user isn't in the database yet
[4.3.10] - 10.11.2022
Added
.filterlist/.flcommand which lists link and invite filtering channels and status- Added support for
%target%placeholder in.aliascommand - 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
.remindcommand instead of relative time, in the formatHH:mm dd.MM.YYYY - OwnerId will be automatically added to
creds.ymlat bot startup if it's missing
Fixed
- Fixed
.cmdcdconsole 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 @targetnot 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
.betstatsshows sum of all bets, payouts and the payout rate in %. Updates once an hour
Changed
.betstatslooks way better (except on Mac).feedadderrors clarified and separated in individual error messages for each issue..clubbanand.clubunbanerrors clarified and separated in individual error messages for each issue..clubapplybetter error messages
Fixed
.timely'Remind' button fixed in DMs.cmdcddatabase bugs fixed- Fixed bugged mysql and postgresql migrations
- Fixed issues with lodaing medusae due to strict versioning
Removed
.slotstatsSuperseded by.betstats
[4.3.8] - 02.10.2022
Added
- Added
.autopublishcommand 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
.pruneoptions--afterand--safeare now proper command options, and will show in .h help.cmdcdcode mostly rewritten, slight QoL improvements.- Clarified
.remindpermission requirements in help text .cmdcdslooks a little better, and is paginated
Fixed
- Fixed trivia bugs
- Fixed
.yunnot 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
.shopreqwhich lets you set role requirement for specific shop items - Added
.shopbuyalias to.buy
Fixed
- Fixed
.convertlistshowing currencies twice (this may not apply to existing users and it may require you to manually remove all currencies from units.json)
Removed
- Removed
Viewerfield 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
.timeoutcommand - 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
.roleinfocommand - Added
.emojiremovecommand - Added
.threadcreateand.threaddeletecommands - Added
.bank seize/.bank awardowner 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
betrolloption to.bettestcommand - Added
.xpshopbuyand.xpshopuseconvenience 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
.slotalignment - Fixed
mysqlandpostgresqlreactionrole migration - Fixed repeat loop with
postgresqldb 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
.bettestcommand 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
.betdrawcommand which lets you guess red/black and/or high/low for a random card- They payouts are very good, but seven always loses
- Added
.lulacommand. Plays the same as.wofbut looks much nicer, and is easily customizable from gambling.yml without any changes to the sourcecode needed. - Added
.repeatskipcommand which makes the next repeat trigger not post anything - Added
.linkonlywhich 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
checkForUpdatesset totruein data/bot.yml- You can also configure it via `.conf bot checkfor
- updates <true/false>`
- Added
.xpshopwhich lets bot owners add xp backgrounds and xp frames for sale by configuringdata/xp.yml- You can also toggle xpshop feature via
.conf xp shop.is_enabled
- You can also toggle xpshop feature via
Changed
-
.tTrivia code cleaned up, added ALL pokemon generations -
.xpaddwill 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,.betdrawand 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 Nadeko.Common into a separate project
- [dev] It will contain classes/utilities which can be shared across different nadeko related projects
-
[dev] Split Nadeko.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
.slotwill 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*ntainsfw command - Xp Freezes may have been fixed
data/images.ymlshould once again support local file paths- Fixed multiword aliases
[4.2.14] - 03.07.2022
Added
- Added
.log userwarned(Logging user warnings) - Claiming
.timelywill now show a button which you can click to set a reminder - Added
%server.icon%placeholder - Added
warnpunishment action for protection commands (it won't work with.warnp)
Changed
.log userbannedwill now have a ban reason- When
.dieis used, bot will try to update it's status toInvisible
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
.cashbank interaction not being ephemeral anymore
[4.2.12] - 30.06.2022
Fixed
- Fixed
.trivia --pokemonshowing incorrect pokemons
[4.2.11] - 29.06.2022
Fixed
- Fixed
.drawcommand
[4.2.10] - 29.06.2022
- Fixed currency generation working only once
[4.2.9] - 25.06.2022
Fixed
- Fixed
creds_example.ymlmisssing from output directory
[4.2.8] - 24.06.2022
Fixed
.timelyshould 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
.xpwill now show default user avatars too
Removed
- Removed
.imagesreloadas 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 increds.ymlin order to make it run consistently as the key is shared
[4.2.3] - 17.06.2022
Fixed
- Fixed
.timelynullref bug and made it nicer - Fixed
.streamrolenot 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.ymlfile 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 yourdata/searches.ymlto use the official google api.searchIdis used for web searchsearchimageIdis used for image searchgoogle: searchId: "" searchImageId: "" - Check
creds_example.ymlfor comments explaining how to obtain them.
Patronage system added
- Added
data/patron.ymlfor 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 nadeko only. But selfhosters can adapt it to their own patreon pages by configuring their patreon credentials in
creds.ymland enabling the system indata/patron.ymlfile.- 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
-
.patronchecks 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
.cmdcdcommandcleverbot:responsewhich can be used to limit how often users can talk to the cleverbot.
Changed
-
CurrencyReward now support adding additional flowers to patrons.
-
.donatecommand completely reworked.- Works only on public bot (OnlyPublicBotAttribute)
- Guides user on how to donate to support the project
- Added interaction explaining selfhosting
-
.googlereimplemented. It now has 2 modes configurable indata/searches.ymlunder thewebSearchengineproperty- If set to
google, official custom search api will be used. You will need to set googleapikey and google.searchId increds.yml - if set to
searxone of the instances specified in thesearxInstances:property will be randomly chosen for each request- instances must have
format=jsonallowed (public ones usually don't allow it) - instances are specified as a fully qualified url, example:
https://my.cool.searx.instance.io
- instances must have
- If set to
-
.imagereimplemented. Same as.google- it uses eithergoogleofficial api (in which case it usesgoogle.searchImageIdfromcreds.yml) orsearx -
.youtubereimplemented. It will use aytProvider:property fromdata/searches.ymlto determine how to retrieve resultsytdataapiwill use the official google api (requiresGoogleApiKeyspecified increds.yml) and YoutubeDataApi enabled in the dev consoleytdlwill useyoutube-dlprogram from the host machine. It must be downloaded and it's location must be added to path env variable.ytdlpwill useyt-dlpprogram from the host machine. Same asyoutube-dl- must be in path env variable.invidiouswill use one of invidious instances specified in theinvidiousInstancesproperty. Very good.
-
.google,.youtubeand.imagemoved to the new Search group
Note: Results of each .youtube query will be cached for 1 hour to improve perfomance
-
Removed 30 second
.pingratelimit on public nadeko -
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
-
.prunewas slightly slowed down to avoid ratelimits -
.wofmoved from it's own group to the default Gambling group -
.feedurls which error for more than 100 times will be automatically removed. -
.veis now enabled by default -
[dev] nadeko 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
.rhno longer needs quotes for multi word roles.deletexpwill now properly delete server xp too- Fixed
.cryptosparklines - [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
.ddgremoved.- [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
.giveDM 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
.stockcommand
[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 eb.nadeko.bot (old one is moved to oldeb.nadeko.bot)
- 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
.stondelcommand 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
.deletexpcommand .givecommand should send DMs again.modulescommand now has a medusa module description
[4.1.2] - 16.04.2022
Fixed
- Fixed an issue with missing
.dllfiles in release versions
[4.1.0] - 16.04.2022
Added
- NadekoBot now supports mysql, postgresql and sqlite
- To change the db nadeko will use, simply change the
db typeincreds.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
- To change the db nadeko will use, simply change the
- 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
.clubrenameto remove it - Most of the clubs with #1 discriminator no longer have it (For example MyClub#1 will now just be MyClub)
- Current discriminators which are greater than 1 are appended to clubnames to avoid duplicates, you can rename your club with
- [dev] A lot of refactoring and slight functionality changes within Nadeko's behavior system and command handler which were required in order to support the medusa system
Removed
- Removed
.clublevelreqcommand 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
idwhich 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
.antispamis enabled
[4.0.2] - 03.03.2022
Fixed
- Fixed
.reronot working due to a bug introduced in 4.0
[4.0.1] - 03.03.2022
Added
- Added
usePrivilegedIntentsto 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
.deleteemptyserverscommand - 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.ymlto 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 3 new settings to
- Added
currency.transactionsLifetimetodata/gambling.ymlAny transaction older than the number of days specified will be automatically deleted - Added
.stockcommand 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.lcrand a few others have been kept
- Currency output format improvement (will use guild locale now for some commands)
.cryptowill 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 / .movesongto.tm / .trackmovebut kept old aliases - Changed
song->trackthroughout music module strings
- Changed
- 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
.pruneratelimiting .gvcshould now properly trigger when a user is already in a gvc and changes his activity.gvcshould 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
.warnpunishments not being applied properly when using weighted warnings - Fixed embed color when disabling
.antialt
Removed
- Removed
.bce- use.configor.config botspecifically 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
.greetdmcausing ratelimits during raids - Fixed
.gelbooru
[3.0.12] - 06.01.2022
Fixed
.smchFixed.transcommand 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
.remindland.remindrmcommands 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
.qexportand.qimportcommands 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
.atand.atlcommands reworked- Persist restarts
- Will now only translate non-commands
- You can switch between
.at deland.atwithout clearing the user language registrations - Disabling
.atwill clear all user language registrations on that channel - Users can't register languages if the
.atis not enabled - Looks much nicer
- Bot will now reply to user messages with a translation if
delis disabled - Bot will make an embed with original and translated text with user avatar and name if
delis enabled
- Bot will now reply to user messages with a translation if
- If the bot is unable to delete messages while having
delenabled, it will reset back to the no-del behavior for the current session
Fixed
.cryptonow supports top 5000 coins
[3.0.10] - 01.12.2021
Changed
.warnnow supports weighted warnings.warnlogwill now show current amount and total amount of warnings
Fixed
.xprewsresetnow has correct permissions
Removed
- Removed slot.numbers from
images.ymlas they're no longer used
[3.0.9] - 21.11.2021
Changed
.eawill now use an image attachments if you omit imageUrl
Added
- Added
.emojiaddwith 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.ClientIdPatreon.RefreshToken(will also get updated once a month but needs an initial value)Patreon.ClientSecretPatreon.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.jsonmoved toimages.yml- Links will use the new cdn url
- Heads and Tails images will be updated if you haven't changed them already
.slotredesigned (and updated entries inimages.yml)- Reduced required permissions for .qdel (thanks to tbodt)
[3.0.7] - 05.10.2021
Added
.streamsclearre-added. It will remove all followed streams on the server..giftsnow 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
.giftspage and are marked with a broken heart - They have a separate multiplier (
waifu.multi.negative_gift_effectdefault 0.5, changeable via.config gamblingordata/gambling.yml) - When gifted, the waifu's price will be reduced by the
price * multiplier - Negative gifts don't show up in
.waifuinfonor 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
DmHelpTextKeywordstodata/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
.repeatbug- 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
.massbanto ban multiple people at once. 30 second cooldown - Added
.youtubeuploadnotif/.yunas a shortcut for subscribing to a youtube channel's rss feed - Added
.imageonlychannel/.imageonlyto prevent users from posting anything but images in the channel - Added
.config games hangman.currency_rewardand 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
.warnpwill now prune user's messages
Fixed
.boostmsgwill now properly show boost, and not greet message
[3.0.2] - 12.09.2021
Added
.reronow optionally takes a message id to which to attach the reaction roles- Fully translated to German 🎉
- Added
.boost,.boostmsgand.boostdelcommands which allow you to have customizable messages when someone boosts your server, with auto-deletion support
Changed
- Updated
.greetmsgand.byemsgcommand help to match the new.boostcommand help - Updated response embed colors in greet commands
- Success -> green
- Warning or Disable -> yellow.
Fixed
.timelywill now correctly useOkcolor- Fixed
.logcommands
Removed
- Removed
.novelcommand 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.jsontocreds.yml(example increds_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: NadekoBot and NadekoBot.Coordinator
- You can directly run NadekoBot as the regular bot with one shard
- Run NadekoBot.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
- Command attributes cleaned up
- Many guides reworked
- Guides now instruct users to set build output to nadekobot/output instead of running from nadekobot/src/NadekoBot
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
.aarreworked. Now supports multiple roles, up to 3.- Toggle roles that are added to newly joined users with
.aar RoleName - Use
.aarto list roles which will be added - Roles which are deleted are automatically cleaned up from
.aar
- Toggle roles that are added to newly joined users with
.inrolenow also shows user ids- Blacklist commands (owner only)
.ubl.sbland.cblwill now list blacklisted items when no argument (or a page number) is provided .cmdcdnow works with customreactions too.xprrusage 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 Memberor.xprr 1 rm Newbie
- example:
[2.45.2] - 14.06.2021
Added
- Added
.duckduckgo / .ddgsearch
Changed
.invlistshows expire time and is slightly prettier
Fixed
.antialtwill 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
.divorcevia 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
.lcrhelptext 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.acmdcdsalias chanaged to.cmdcds.8ballwill now cache results for a day.chatmuteand.voicemutenow support timed mutes
Fixed
- Fixed
.config <conf> <prop>exceeding embed field character limit
[2.45.0] - 10.06.2021
Added
- Added
.crsexportand.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
.xprewsresetwhich resets all currently set xp level up rewards - Added
.purgeuser @Userwhich will remove the specified from the database completely. Removed settings include: Xp, clubs, waifu, currency, etc... - Added
.config xp txt.per_imageand 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
.waifuinfowhich shows how many people have their affinity set to you - Added
.antialtwhich will punish any user whose account is younger than specified threshold
Changed
.warnewith 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
.saymoved to utility module- Re-created GuildRepeaters table and renamed to Repeaters
- confirmation prompts will now use pending color from bot config, instead of okcolor
.mutecan now have up to 49 days mute to match .warnp.warnlognow 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/.adplfeature atm .autodcre-added.qrp,.vol,.smch.autodcwill now persist
Changed
- Using
.commands/.cmdswithout a module will now list modules .qrp/.queuerepeatwill now accept one of 3 valuesnone- don't repeat queuetrack- repeat single trackqueue(or ommit) - repeat entire queue
- your old
.defvoland.smchsettings will be reset
Fixed
- Fixed
.google/.gcommand - Removing last song in the queue will no longer reset queue index
- Having
.rpldisabled will now correctly stop after the last song, closes #292
Removed
.sadremoved. It's more or less useless. Use.qrpand.autodcnow for similar effect
Obsolete
.rcsis obsolete, use.qrp sor.qrp song.defvolis obsolete, use.vol
[2.44.3] - 04.06.2021
Changed
- Minor perf improvement for filter checks
Fixed
.qsresult urls are now valid- Custom reactions with "
-" as a response should once again disable that custom reaction completely - Fixed
.acrmout of range string - Fixed
.sclistand.aclistnot 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
.playafter dragging it)
- ⚠️ DO NOT DRAG THE BOT to another vc, as it's not properly supported atm, and you will have to do
.jmakes the bot join your voice channel.pis now alias of play, pause is.pause.qsshould work without google api key now for most users as it is using a custom loader- Added
.clubsalias for.clublb
Changed
.msno longer takes>between arguments (.ms 1 5now, was.ms 1>5before)- 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
.acrmindex 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
.scrmas 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)