using SharpChat.Events; using SharpChat.Packet; using System.Linq; namespace SharpChat.Commands { public class AFKCommand : IChatCommand { private const string DEFAULT = "AFK"; private const int MAX_LENGTH = 5; public bool IsMatch(string name) { return name == "afk"; } public IChatMessage Dispatch(IChatCommandContext context) { string statusText = context.Args.ElementAtOrDefault(1); if(string.IsNullOrWhiteSpace(statusText)) statusText = DEFAULT; else { statusText = statusText.Trim(); if(statusText.Length > MAX_LENGTH) statusText = statusText[..MAX_LENGTH].Trim(); } context.User.Status = ChatUserStatus.Away; context.User.StatusMessage = statusText; context.Channel.Send(new UserUpdatePacket(context.User)); return null; } } }