public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var playerId = src.ToPlayer().CSteamId.m_SteamID; if (!ReplyTo.TryGetValue(playerId, out var targetId)) { return(CommandResult.LangError("NOBODY_TO_REPLY")); } var target = UPlayer.From(targetId); if (target == null) { return(CommandResult.LangError("NO_LONGER_ONLINE")); } src.DispatchCommand($"tell \"{target.DisplayName}\" \"{args.Join(0)}\""); return(CommandResult.Success()); }
public override void Execute(ICommandContext context) { var playerId = context.User.Id; if (!ReplyTo.TryGetValue(playerId, out var targetId)) { throw new CommandWrongUsageException(Translations.Get("NOBODY_TO_REPLY")); } var playerManager = context.Container.Resolve <IPlayerManager>(); var commandHandler = context.Container.Resolve <ICommandHandler>(); var target = playerManager.GetOnlinePlayerById(targetId); if (target == null) { throw new CommandWrongUsageException("NO_LONGER_ONLINE"); } commandHandler.HandleCommand(context.User, $"tell \"{target.Id}\" \"{context.Parameters.GetArgumentLine(0)}\"", context.CommandPrefix); }