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

52 lines
No EOL
1.8 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System.Threading.Tasks;
using Qmmands;
using WingsEmu.Commands.Checks;
using WingsEmu.Commands.Entities;
using WingsEmu.DTOs.Account;
using WingsEmu.Game.Characters;
using WingsEmu.Game.Items;
using WingsEmu.Game.Networking;
namespace WingsEmu.Plugins.Essentials.GameMaster;
[Name("SpecialistModule")]
[Description("Module related to specialist commands.")]
[RequireAuthority(AuthorityType.GameMaster)]
[Group("sp", "specialist")]
public class SpecialistModule : SaltyModuleBase
{
[Command("perf", "perfection")]
[RequireAuthority(AuthorityType.GameAdmin)]
public async Task<SaltyCommandResult> PerfectSpecialist(IClientSession session, byte atk, byte def, byte elem, byte hpmp, byte fireRes, byte waterRes, byte lightRes, byte darkRes)
{
IPlayerEntity targetEntity = session.PlayerEntity;
if (targetEntity.Specialist == null)
{
return new SaltyCommandResult(false, "SP not equipped");
}
GameItemInstance specialist = targetEntity.Specialist;
specialist.SpDamage = atk;
specialist.SpDefence = def;
specialist.SpElement = elem;
specialist.SpHP = hpmp;
specialist.SpFire = fireRes;
specialist.SpWater = waterRes;
specialist.SpLight = lightRes;
specialist.SpDark = darkRes;
targetEntity.SpecialistComponent.RefreshSlStats();
return new SaltyCommandResult(true, "SP perfection updated");
}
[Command("perf", "perfection")]
public async Task<SaltyCommandResult> PerfectSpecialist(byte atk, byte def, byte elem, byte hpmp, byte fireRes, byte waterRes, byte lightRes, byte darkRes) =>
await PerfectSpecialist(Context.Player, atk, def, elem, hpmp, fireRes, waterRes, lightRes, darkRes);
}