diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b21f852f..abeadcce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,38 @@ Experimental changelog. Mostly based on [keepachangelog](https://keepachangelog.com/en/1.0.0/) except date format. a-c-f-r-o +## [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 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 +- `.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 diff --git a/src/Nadeko.Medusa/Attributes/bot_owner_onlyAttribute.cs b/src/Nadeko.Medusa/Attributes/bot_owner_onlyAttribute.cs new file mode 100644 index 000000000..a49727bd1 --- /dev/null +++ b/src/Nadeko.Medusa/Attributes/bot_owner_onlyAttribute.cs @@ -0,0 +1,7 @@ +namespace Nadeko.Snake; + +[AttributeUsage(AttributeTargets.Method)] +public sealed class bot_owner_onlyAttribute : MedusaPermAttribute +{ + +} \ No newline at end of file diff --git a/src/NadekoBot/Common/Medusa/MedusaLoaderService.cs b/src/NadekoBot/Common/Medusa/MedusaLoaderService.cs index f7ee6a98e..4fca69e72 100644 --- a/src/NadekoBot/Common/Medusa/MedusaLoaderService.cs +++ b/src/NadekoBot/Common/Medusa/MedusaLoaderService.cs @@ -434,6 +434,10 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor, else if (bp.ChannelPerm is { } cp) cb.AddPrecondition(new BotPermAttribute(cp)); } + else if (ubp is bot_owner_onlyAttribute) + { + cb.AddPrecondition(new OwnerOnlyAttribute()); + } } cb.WithPriority(cmd.Priority); diff --git a/src/NadekoBot/Services/Currency/CurrencyService.cs b/src/NadekoBot/Services/Currency/CurrencyService.cs index 6266adf09..6b1bd4975 100644 --- a/src/NadekoBot/Services/Currency/CurrencyService.cs +++ b/src/NadekoBot/Services/Currency/CurrencyService.cs @@ -88,6 +88,9 @@ public sealed class CurrencyService : ICurrencyService, INService long amount, TxData txData) { + if (amount == 0) + return true; + var wallet = await GetWalletAsync(userId); var result = await wallet.Take(amount, txData); if(result) diff --git a/src/NadekoBot/Services/Impl/StatsService.cs b/src/NadekoBot/Services/Impl/StatsService.cs index e0224139a..4427fadcd 100644 --- a/src/NadekoBot/Services/Impl/StatsService.cs +++ b/src/NadekoBot/Services/Impl/StatsService.cs @@ -7,7 +7,7 @@ namespace NadekoBot.Services; public sealed class StatsService : IStatsService, IReadyExecutor, INService { - public const string BOT_VERSION = "4.3.10"; + public const string BOT_VERSION = "4.3.11"; public string Author => "Kwoth#2452";