static void TrollHandler(Player player, Command cmd) { string Name = cmd.Next(); if (Name == null) { player.Message("Player not found. Please specify valid name."); return; } if (!Player.IsValidName(Name)) { return; } Player target = Server.FindPlayerOrPrintMatches(player, Name, true, true); if (target == null) { return; } string options = cmd.Next(); if (options == null) { CdTroll.PrintUsage(player); return; } string Message = cmd.NextAll(); if (Message.Length < 1 && options.ToLower() != "leave") { player.Message("&WError: Please enter a message for {0}.", target.ClassyName); return; } switch (options.ToLower()) { case "pm": if (player.Can(Permission.UseColorCodes) && Message.Contains("%")) { Message = Color.ReplacePercentCodes(Message); } Server.Players.Message("&Pfrom {0}: {1}", target.Name, Message); break; case "ac": Chat.SendAdmin(target, Message); break; case "st": case "staff": Chat.SendStaff(target, Message); break; case "i": case "impersonate": case "msg": case "message": case "m": Server.Message("{0}&S&F: {1}", target.ClassyName, Message); break; case "leave": case "disconnect": case "gtfo": Server.Players.Message("&SPlayer {0}&S left the server.", target.ClassyName); break; default: player.Message("Invalid option. Please choose st, ac, pm, message or leave"); break; } }
private static void TrollHandler(Player player, Command cmd) // Command Handlers should always have these two arguments { string customSetting = Init.Instance.CustomSetting; // Calling the custom setting Logger.Log(LogType.SystemActivity, customSetting); // Save logs string name = cmd.Next(); // Calling the next command argument if (name == null) // name will be null if they did not specify an argument { player.Message("Player not found. Please specify valid name."); // Send the executing player a message return; // Prevent from going onward. } if (!Player.IsValidName(name)) { return; } Player target = Server.FindPlayerOrPrintMatches(player, name, true, true); // Check to see if a player is real if (target == null) { return; } string options = cmd.Next(); if (options == null) { CdTroll.PrintUsage(player); return; } string message = cmd.NextAll(); // Get the next and any following arguments. Good for message commands if (message.Length < 1 && options.ToLower() != "leave") { player.Message("&WError: Please enter a message for {0}.", target.ClassyName); return; } switch (options.ToLower()) { case "pm": if (player.Can(Permission.UseColorCodes) && message.Contains("%")) { message = Color.ReplacePercentCodes(message); } Server.Players.Message("&Pfrom {0}: {1}", MessageType.Chat, target.Name, message); break; case "ac": Chat.SendAdmin(target, message); break; case "st": case "staff": Chat.SendStaff(target, message); break; case "i": case "impersonate": case "msg": case "message": case "m": Server.Message("{0}&S&F: {1}", target.ClassyName, message); break; case "leave": case "disconnect": case "gtfo": Server.Players.Message("&SPlayer {0}&S left the server.", MessageType.Chat, target.ClassyName); break; default: player.Message("Invalid option. Please choose st, ac, pm, message or leave"); break; } }