Files
DanhengServer-OpenSource/GameServer/Command/Cmd/CommandMission.cs
2024-04-04 22:07:29 +08:00

76 lines
2.2 KiB
C#

using System.Text;
namespace EggLink.DanhengServer.Command.Cmd
{
[CommandInfo("mission", "Manage the missions", "/mission <pass>")]
public class CommandMission : ICommand
{
[CommandMethod("0 pass")]
public void PassRunningMission(CommandArg arg)
{
if (arg.Target == null)
{
arg.SendMsg("Player not found.");
return;
}
var mission = arg.Target!.Player!.MissionManager!;
mission.GetRunningSubMissionIdList().ForEach(mission.FinishSubMission);
arg.SendMsg("Pass all running missions.");
}
[CommandMethod("0 finish")]
public void FinishRunningMission(CommandArg arg)
{
if (arg.Target == null)
{
arg.SendMsg("Player not found.");
return;
}
if (arg.BasicArgs.Count < 1)
{
arg.SendMsg("Please specify the mission id.");
return;
}
if (!int.TryParse(arg.BasicArgs[0], out var missionId))
{
arg.SendMsg("Invalid mission id.");
return;
}
var mission = arg.Target!.Player!.MissionManager!;
//mission.AcceptSubMission(missionId);
mission.FinishSubMission(missionId);
arg.SendMsg("Finish mission.");
}
[CommandMethod("0 running")]
public void ListRunningMission(CommandArg arg)
{
if (arg.Target == null)
{
arg.SendMsg("Player not found.");
return;
}
var mission = arg.Target!.Player!.MissionManager!;
var runningMissions = mission.GetRunningSubMissionIdList();
if (runningMissions.Count == 0)
{
arg.SendMsg("No running missions.");
return;
}
var sb = new StringBuilder();
sb.AppendLine("Running missions:");
foreach (var missionId in runningMissions)
{
sb.AppendLine(missionId.ToString());
}
arg.SendMsg(sb.ToString());
}
}
}