From 7c69198bd6af7c6f7962ccad2de541ed9b88bcf3 Mon Sep 17 00:00:00 2001 From: Toastie Date: Sat, 2 Nov 2024 01:44:16 +1300 Subject: [PATCH] .ncs will now show an error if setting a pixel fails --- .../Modules/Games/NCanvas/NCanvasCommands.cs | 19 +++++++++++++++++-- .../strings/responses/responses.en-US.json | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/EllieBot/Modules/Games/NCanvas/NCanvasCommands.cs b/src/EllieBot/Modules/Games/NCanvas/NCanvasCommands.cs index f441e11..6d37a5e 100644 --- a/src/EllieBot/Modules/Games/NCanvas/NCanvasCommands.cs +++ b/src/EllieBot/Modules/Games/NCanvas/NCanvasCommands.cs @@ -5,7 +5,6 @@ using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.Drawing.Processing; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; -using System.Text.RegularExpressions; using Image = SixLabors.ImageSharp.Image; namespace EllieBot.Modules.Games; @@ -172,7 +171,23 @@ public partial class Games return; } - await _service.SetPixel(position, clr.PackedValue, text, ctx.User.Id, pixel.Price); + var result = await _service.SetPixel(position, clr.PackedValue, text, ctx.User.Id, pixel.Price); + + if (result == SetPixelResult.NotEnoughMoney) + { + await Response().Error(strs.not_enough(_gcs.Data.Currency.Sign)).SendAsync(); + return; + } + else if (result == SetPixelResult.InsufficientPayment) + { + await Response().Error(strs.nc_insuff_payment).SendAsync(); + return; + } + else if (result == SetPixelResult.InvalidInput) + { + await Response().Error(strs.invalid_input).SendAsync(); + return; + } using var img = await GetZoomImage(position); await using var stream = await img.ToStreamAsync(); diff --git a/src/EllieBot/data/strings/responses/responses.en-US.json b/src/EllieBot/data/strings/responses/responses.en-US.json index eb46ed3..4135642 100644 --- a/src/EllieBot/data/strings/responses/responses.en-US.json +++ b/src/EllieBot/data/strings/responses/responses.en-US.json @@ -1109,6 +1109,7 @@ "invalid_color": "Color you've specified is invalid.", "nc_pixel_set_confirm": "Are you sure you want to set pixel {0}? It will cost you {1}", "nc_hint": "Use `{0}nczoom x y` command to zoom in. Image is {1}x{2} pixels.", + "nc_insuff_payment": "Invalid payment.", "invalid_img_size": "Image must to be {0}x{1} pixels.", "no_attach_found": "No attachment found. Please send the image along with this command." }