BattleBit-Community-Server-API/CommandHandler.cs

54 lines
1.7 KiB
C#
Raw Normal View History

2023-08-17 14:54:58 -04:00
using BattleBitAPI.Common;
2023-08-17 14:10:21 -04:00
using CommunityServerAPI.Enums;
namespace CommunityServerAPI;
public class CommandHandler
{
2023-08-17 14:54:58 -04:00
public async Task handleCommand(MyPlayer player, Command cmd)
2023-08-17 14:10:21 -04:00
{
switch (cmd.Action)
{
case ActionType.Kill:
{
2023-08-17 14:54:58 -04:00
var splits = cmd.Message.Split(" ");
if (splits.Length < 2)
{
player.Message("Usage: /kill <name>|<steamid>");
break;
}
var target = cmd.Message.Split(" ")[1..].Aggregate((a, b) => a + " " + b);
var targetPlayer = player.GameServer.AllPlayers.ToList().FirstOrDefault(p => p.Name.ToLower().Contains(target.ToLower()) || p.SteamID.ToString().Contains(target));
if (targetPlayer == null)
2023-08-17 14:10:21 -04:00
{
player.Message("Player not found!");
2023-08-17 14:54:58 -04:00
break;
2023-08-17 14:10:21 -04:00
}
2023-08-17 14:54:58 -04:00
targetPlayer.Kill();
player.Message("Killed player!");
2023-08-17 14:10:21 -04:00
break;
}
case ActionType.Start:
{
2023-08-17 14:54:58 -04:00
if (player.GameServer.RoundSettings.State != GameState.WaitingForPlayers)
{
player.Message("Round already started!");
break;
}
2023-08-17 14:10:21 -04:00
player.Message("Starting game!");
2023-08-17 14:54:58 -04:00
player.GameServer.ForceStartGame();
player.GameServer.RoundSettings.SecondsLeft = 3;
2023-08-17 14:10:21 -04:00
break;
}
default:
{
player.Message("Unknown command!");
break;
}
}
}
}