server-master/srcs/_plugins/WingsEmu.Plugins.Essentials/Administrator/AdministratorBazaarModule.cs
2026-02-10 18:21:30 +01:00

57 lines
No EOL
1.9 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System.Collections.Generic;
using System.Threading.Tasks;
using Qmmands;
using WingsAPI.Communication.Bazaar;
using WingsEmu.Commands.Checks;
using WingsEmu.Commands.Entities;
using WingsEmu.DTOs.Account;
namespace WingsEmu.Plugins.Essentials.Administrator;
[Name("Admin-BazaarModule")]
[Description("Module related to Administrator commands for Bazaar.")]
[Group("bazaar")]
[RequireAuthority(AuthorityType.GameAdmin)]
public class AdministratorBazaarModule : SaltyModuleBase
{
private readonly IBazaarService _bazaarService;
public AdministratorBazaarModule(IBazaarService bazaarService) => _bazaarService = bazaarService;
[Command("unlist-vnum", "unlist", "remove-vnum", "remove")]
public async Task<SaltyCommandResult> UnlistItemsFromBazaar([Remainder] string toUnlist)
{
string[] rawVnums = toUnlist.Split(' ');
var vnums = new List<int>();
foreach (string vnum in rawVnums)
{
if (!int.TryParse(vnum, out int parsedVnum))
{
return new SaltyCommandResult(false, $"Incorrect value: {vnum} is not an integer");
}
vnums.Add(parsedVnum);
}
UnlistItemFromBazaarResponse tmp = await _bazaarService.UnlistItemsFromBazaarWithVnumAsync(new UnlistItemFromBazaarRequest
{
Vnum = vnums
});
return new SaltyCommandResult(true, $"{tmp.UnlistedItems} items unlisted");
}
[Command("unlist-char", "remove-char")]
public async Task<SaltyCommandResult> UnlistItemsFromBazaarByCharacterId(int characterId)
{
UnlistItemFromBazaarResponse tmp = await _bazaarService.UnlistCharacterItemsFromBazaarAsync(new UnlistCharacterItemsFromBazaarRequest
{
Id = characterId
});
return new SaltyCommandResult(true, $"{tmp.UnlistedItems} items unlisted");
}
}