From 8c51cf8537fb78807240cd123ce9c2a2693332ef Mon Sep 17 00:00:00 2001 From: Kwoth Date: Sat, 6 Aug 2022 13:26:41 +0200 Subject: [PATCH] Added .xpshopbuy and .xpshopuse convenience commands --- src/NadekoBot/Modules/Xp/Xp.cs | 65 +++++++++++++++--- src/NadekoBot/Modules/Xp/XpConfig.cs | 10 ++- src/NadekoBot/Modules/Xp/XpConfigService.cs | 4 +- src/NadekoBot/Modules/Xp/XpService.cs | 16 +++-- src/NadekoBot/data/aliases.yml | 4 ++ src/NadekoBot/data/images/frame_silver.png | Bin 46029 -> 13319 bytes .../data/strings/commands/commands.en-US.yml | 10 +++ .../strings/responses/responses.en-US.json | 9 ++- src/NadekoBot/data/xp.yml | 9 ++- 9 files changed, 102 insertions(+), 25 deletions(-) diff --git a/src/NadekoBot/Modules/Xp/Xp.cs b/src/NadekoBot/Modules/Xp/Xp.cs index 7b3a001b5..618cca551 100644 --- a/src/NadekoBot/Modules/Xp/Xp.cs +++ b/src/NadekoBot/Modules/Xp/Xp.cs @@ -334,14 +334,15 @@ public partial class Xp : NadekoModule public enum XpShopInputType { - F = 0, - Frs = 0, - Fs = 0, - Frames = 0, + Backgrounds = 1, B = 1, Bg = 1, Bgs = 1, - Backgrounds = 1 + Frames = 0, + F = 0, + Fr = 0, + Frs = 0, + Fs = 0, } [Cmd] @@ -352,9 +353,12 @@ public partial class Xp : NadekoModule await ReplyErrorLocalizedAsync(strs.xp_shop_disabled); return; } - - await SendConfirmAsync(GetText(strs.available_commands), $@"`{prefix}xpshop bgs` -`{prefix}xpshop frames`"); + + await SendConfirmAsync(GetText(strs.available_commands), + $@"`{prefix}xpshop bgs` +`{prefix}xpshop frames` + +*{GetText(strs.xpshop_website)}*"); } [Cmd] @@ -394,15 +398,18 @@ public partial class Xp : NadekoModule .WithOkColor() .WithTitle(item.Name) .AddField(GetText(strs.price), Gambling.Gambling.N(item.Price, culture), true) - // .AddField(GetText(strs.buy), $"{prefix}xpbuy {key}", true) .WithImageUrl(string.IsNullOrWhiteSpace(item.Preview) ? item.Url : item.Preview); if (!string.IsNullOrWhiteSpace(item.Desc)) - eb.WithDescription(item.Desc); + eb.AddField(GetText(strs.desc), item.Desc); - var tier = _service.GetXpShopTierRequirement(); + if (key == "default") + eb.WithDescription(GetText(strs.xpshop_website)); + + + var tier = _service.GetXpShopTierRequirement(type); if (tier != PatronTier.None) { eb.WithFooter(GetText(strs.xp_shop_buy_required_tier(tier.ToString()))); @@ -456,6 +463,42 @@ public partial class Xp : NadekoModule 1, addPaginatedFooter: false); } + + [Cmd] + public async Task XpShopBuy(XpShopInputType type, string key) + { + var result = await _service.BuyShopItemAsync(ctx.User.Id, (XpShopItemType)type, key); + + if (result != BuyResult.Success) + { + var _ = result switch + { + BuyResult.InsufficientFunds => await ReplyErrorLocalizedAsync(strs.not_enough(_gss.Data.Currency.Sign)), + BuyResult.AlreadyOwned => await ReplyErrorLocalizedAsync(strs.xpshop_already_owned), + BuyResult.UnknownItem => await ReplyErrorLocalizedAsync(strs.xpshop_item_not_found), + BuyResult.InsufficientPatronTier => await ReplyErrorLocalizedAsync(strs.patron_insuff_tier), + _ => throw new ArgumentOutOfRangeException() + }; + return; + } + + await ReplyConfirmLocalizedAsync(strs.xpshop_buy_success(type.ToString().ToLowerInvariant(), + key.ToLowerInvariant())); + } + + [Cmd] + public async Task XpShopUse(XpShopInputType type, string key) + { + var result = await _service.UseShopItemAsync(ctx.User.Id, (XpShopItemType)type, key); + + if (!result) + { + await ReplyConfirmLocalizedAsync(strs.xp_shop_item_cant_use); + return; + } + + await ctx.OkAsync(); + } private async Task OnShopUse(SocketMessageComponent smc, (string? key, XpShopItemType type)? maybeState) { diff --git a/src/NadekoBot/Modules/Xp/XpConfig.cs b/src/NadekoBot/Modules/Xp/XpConfig.cs index b9a1ba2a1..7f4dd7223 100644 --- a/src/NadekoBot/Modules/Xp/XpConfig.cs +++ b/src/NadekoBot/Modules/Xp/XpConfig.cs @@ -10,7 +10,7 @@ namespace NadekoBot.Modules.Xp; public sealed partial class XpConfig : ICloneable { [Comment(@"DO NOT CHANGE")] - public int Version { get; set; } = 4; + public int Version { get; set; } = 5; [Comment(@"How much XP will the users receive per message")] public int XpPerMessage { get; set; } = 3; @@ -37,9 +37,13 @@ True -> Users can access the xp shop using .xpshop command False -> Users can't access the xp shop")] public bool IsEnabled { get; set; } = false; - [Comment(@"Which patron tier do users need in order to use the .xpshop command + [Comment(@"Which patron tier do users need in order to use the .xpshop bgs command Leave at 'None' if patron system is disabled or you don't want any restrictions")] - public PatronTier TierRequirement { get; set; } = PatronTier.None; + public PatronTier BgsTierRequirement { get; set; } = PatronTier.None; + + [Comment(@"Which patron tier do users need in order to use the .xpshop frames command +Leave at 'None' if patron system is disabled or you don't want any restrictions")] + public PatronTier FramesTierRequirement { get; set; } = PatronTier.None; [Comment(@"Frames available for sale. Keys are unique IDs. Do not change keys as they are not publicly visible. Only change properties (name, price, id) diff --git a/src/NadekoBot/Modules/Xp/XpConfigService.cs b/src/NadekoBot/Modules/Xp/XpConfigService.cs index c420b4ccb..b17b30fe0 100644 --- a/src/NadekoBot/Modules/Xp/XpConfigService.cs +++ b/src/NadekoBot/Modules/Xp/XpConfigService.cs @@ -52,11 +52,11 @@ public sealed class XpConfigService : ConfigServiceBase }); } - if (data.Version < 4) + if (data.Version < 5) { ModifyConfig(c => { - c.Version = 4; + c.Version = 5; }); } } diff --git a/src/NadekoBot/Modules/Xp/XpService.cs b/src/NadekoBot/Modules/Xp/XpService.cs index 4fa126a62..c644f4b92 100644 --- a/src/NadekoBot/Modules/Xp/XpService.cs +++ b/src/NadekoBot/Modules/Xp/XpService.cs @@ -1351,11 +1351,15 @@ public class XpService : INService, IReadyExecutor, IExecNoCommand if (!conf.Shop.IsEnabled) return BuyResult.UnknownItem; - if (conf.Shop.TierRequirement != PatronTier.None && !_creds.IsOwner(userId)) + var req = type == XpShopItemType.Background + ? conf.Shop.BgsTierRequirement + : conf.Shop.FramesTierRequirement; + + if (req != PatronTier.None && !_creds.IsOwner(userId)) { var patron = await _ps.GetPatronAsync(userId); - if ((int)patron.Tier < (int)conf.Shop.TierRequirement) + if ((int)patron.Tier < (int)req) return BuyResult.InsufficientPatronTier; } @@ -1482,8 +1486,12 @@ public class XpService : INService, IReadyExecutor, IExecNoCommand return false; } - public PatronTier GetXpShopTierRequirement() - => _xpConfig.Data.Shop.TierRequirement; + public PatronTier GetXpShopTierRequirement(Xp.XpShopInputType type) + => type switch + { + Xp.XpShopInputType.F => _xpConfig.Data.Shop.FramesTierRequirement, + _ => _xpConfig.Data.Shop.BgsTierRequirement, + }; public bool IsShopEnabled() => _xpConfig.Data.Shop.IsEnabled; diff --git a/src/NadekoBot/data/aliases.yml b/src/NadekoBot/data/aliases.yml index 3df0ef602..8c2d94561 100644 --- a/src/NadekoBot/data/aliases.yml +++ b/src/NadekoBot/data/aliases.yml @@ -1064,6 +1064,10 @@ xpadd: - xpadd xpshop: - xpshop +xpshopbuy: + - xpshopbuy +xpshopuse: + - xpshopuse clubcreate: - clubcreate clubtransfer: diff --git a/src/NadekoBot/data/images/frame_silver.png b/src/NadekoBot/data/images/frame_silver.png index 25fc31f65eb7ff345ecde8b8b14f2fed09cb5ac5..4dcda7562f57785c3ded15e513ba66387a00d87a 100644 GIT binary patch literal 13319 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 literal 46029 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 diff --git a/src/NadekoBot/data/strings/commands/commands.en-US.yml b/src/NadekoBot/data/strings/commands/commands.en-US.yml index 61d253615..86e5298ec 100644 --- a/src/NadekoBot/data/strings/commands/commands.en-US.yml +++ b/src/NadekoBot/data/strings/commands/commands.en-US.yml @@ -2128,6 +2128,16 @@ xpshop: - "bgs" - "frames" - "bgs 3" +xpshopbuy: + desc: "Buy an item from the xp shop by specifying the type and the key of the item." + args: + - "bg open_sea" + - "fr gold" +xpshopuse: + desc: "Use a previously purchased item from the xp shop by specifying the type and the key of the item." + args: + - "bg synth" + - "fr default" bible: desc: "Shows bible verse. You need to supply book name and chapter:verse" args: diff --git a/src/NadekoBot/data/strings/responses/responses.en-US.json b/src/NadekoBot/data/strings/responses/responses.en-US.json index e7b0a78f0..3e306c022 100644 --- a/src/NadekoBot/data/strings/responses/responses.en-US.json +++ b/src/NadekoBot/data/strings/responses/responses.en-US.json @@ -1003,7 +1003,7 @@ "feature_limit_reached_you": "You've reached the limit of {0} for the {1} feature. You may be able to increase this limit by upgrading your patron tier.", "feature_limit_reached_owner": "Server owner has reached the limit of {0} for the {1} feature. Server owner may be able to upgrade this limit by upgrading patron tier.", "feature_limit_reached_either": "The limit of {0} for the {1} feature has been reached. Either you or the server owner may able to upgrade this limit by upgrading the patron tier.", - "xp_shop_buy_required_tier": "Buying items from the shop requires Patron Tier {0} or higher.", + "xp_shop_buy_required_tier": "Buying items from this shop requires Patron Tier {0} or higher.", "available_commands": "Available Commands", "tier": "Tier", "pledge": "Pledge", @@ -1017,5 +1017,10 @@ "patron_not_enabled": "Patron system is disabled.", "results_in": "{0} results in {1}s", "patron_msg_sent": "Done sending messages to patrons at and above tier {1}. {1} successfully sent and {2} failed.", - "xpadd_users": "Added {0} server XP to {1} users." + "xpadd_users": "Added {0} server XP to {1} users.", + "xpshop_buy_success": "Successfully purchased `{0}/{1}`", + "patron_insuff_tier": "Your Patron Tier insufficient to perform this action.", + "xpshop_already_owned": "You already own this item.", + "xpshop_item_not_found": "An item with that key doesn't exist.", + "xpshop_website": "You can see the list of all Xp Shop items here: " } diff --git a/src/NadekoBot/data/xp.yml b/src/NadekoBot/data/xp.yml index 0c9a16c8c..cdd5ef6b1 100644 --- a/src/NadekoBot/data/xp.yml +++ b/src/NadekoBot/data/xp.yml @@ -1,5 +1,5 @@ # DO NOT CHANGE -version: 4 +version: 5 # How much XP will the users receive per message xpPerMessage: 3 # How often can the users receive XP in minutes @@ -16,9 +16,12 @@ shop: # True -> Users can access the xp shop using .xpshop command # False -> Users can't access the xp shop isEnabled: false - # Which patron tier do users need in order to use the .xpshop command + # Which patron tier do users need in order to use the .xpshop bgs command # Leave at 'None' if patron system is disabled or you don't want any restrictions - tierRequirement: None + bgsTierRequirement: None + # Which patron tier do users need in order to use the .xpshop frames command + # Leave at 'None' if patron system is disabled or you don't want any restrictions + framesTierRequirement: None # Frames available for sale. Keys are unique IDs. # Do not change keys as they are not publicly visible. Only change properties (name, price, id) # Removing a key which previously existed means that all previous purchases will also be unusable.