using System.Threading.Tasks; using Qmmands; using WingsEmu.Commands.Checks; using WingsEmu.Commands.Entities; using WingsEmu.DTOs.Account; using WingsEmu.Game.Configurations.Miniland; using WingsEmu.Game.Miniland.Minigames; using WingsEmu.Game.Networking; namespace WingsEmu.Plugins.Essentials.GameMaster; [Name("Miniland")] [Description("Module related to Miniland commands.")] [Group("miniland", "minigame")] [RequireAuthority(AuthorityType.SuperGameMaster)] public class MinilandModule : SaltyModuleBase { private readonly MinigameConfiguration _minigameConfiguration; public MinilandModule(MinigameConfiguration minigameConfiguration) => _minigameConfiguration = minigameConfiguration; [Command("refresh-p", "refresh-points", "rp")] [Description("Refresh your daily minigame points.")] public async Task MinigameRefreshPoints([Description("Force refresh")] bool force = false) { Context.Player.EmitEvent(new MinigameRefreshProductionEvent(force)); return new SaltyCommandResult(true); } [Command("points", "mgp")] [Description("Sets your minigame points.")] public async Task MinigamePoints([Description("Minigame Points to set")] short minigamePoints) { if (minigamePoints > _minigameConfiguration.Configuration.MaxmimumMinigamePoints || minigamePoints < 0) { return new SaltyCommandResult(false); } Context.Player.PlayerEntity.MinilandPoint = minigamePoints; return new SaltyCommandResult(true); } [Command("points", "mgp")] [Description("Sets your minigame points.")] public async Task MinigamePoints(IClientSession target, [Description("Minigame Points to set")] short minigamePoints) { if (minigamePoints > _minigameConfiguration.Configuration.MaxmimumMinigamePoints || minigamePoints < 0) { return new SaltyCommandResult(false); } target.PlayerEntity.MinilandPoint = minigamePoints; return new SaltyCommandResult(true); } }