コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }