public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
 {
     if (player.Status == SessionStatus.InGame)
     {
         player.JoinLobby();
     }
 }
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (args.Length < 1)
            {
                return;
            }

            if (int.TryParse(args[0], out var number))
            {
                var players = IoCManager.Resolve <IPlayerManager>();
                var index   = new PlayerIndex(number);

                if (players.ValidSessionId(index))
                {
                    var network    = IoCManager.Resolve <IServerNetManager>();
                    var targetPlyr = players.GetSessionById(index);

                    var reason = "Kicked by console.";
                    if (args.Length >= 2)
                    {
                        reason = reason + args[1];
                    }

                    network.DisconnectChannel(targetPlyr.ConnectedClient, reason);
                }
            }
        }
Esempio n. 3
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var sb = new StringBuilder();

            var players = IoCManager.Resolve <IPlayerManager>().GetAllPlayers();

            sb.AppendLine("Current Players:");
            sb.AppendLine($"{"Index",1}{"Player Name",20}{"IP Address",16}{"Status",12}{"Playing Time",14}{"Ping",9}");

            foreach (IPlayerSession p in players)
            {
                if (p == null)
                {
                    continue;
                }

                sb.Append($"  {p.Index,3}");
                sb.Append($"  {p.Name,20}");
                sb.AppendLine(string.Format("  {0,16}{1,12}{2,14}{3,9}",
                                            p.ConnectedClient.RemoteAddress,
                                            p.Status.ToString(),
                                            (DateTime.Now - p.ConnectedTime).ToString(@"hh\:mm\:ss"),
                                            p.ConnectedClient.Ping + "ms"));
            }

            host.SendConsoleReply(player.ConnectedClient, sb.ToString());
        }
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (player.Status != SessionStatus.InGame || player.AttachedEntity == null)
            {
                return;
            }

            if (args.Length < 2 || !float.TryParse(args[0], out var posX) || !float.TryParse(args[1], out var posY))
            {
                return;
            }

            var mapMgr = IoCManager.Resolve <IMapManager>();

            var position  = new Vector2(posX, posY);
            var entity    = player.AttachedEntity;
            var transform = entity.GetComponent <IServerTransformComponent>();

            transform.DetachParent();

            IMapGrid grid;

            if (args.Length == 3 && int.TryParse(args[2], out var mapId) && mapMgr.TryGetMap(new MapId(mapId), out var map))
            {
                grid = map.FindGridAt(position);
            }
            else
            {
                grid = transform.LocalPosition.Map.FindGridAt(position);
            }

            transform.LocalPosition = new GridLocalCoordinates(position, grid);

            host.SendConsoleReply(player.ConnectedClient, $"Teleported {player} to {grid.MapID}:{posX},{posY}.");
        }
 public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
 {
     foreach (var targetPlayer in IoCManager.Resolve <IPlayerManager>().GetAllPlayers())
     {
         targetPlayer.AddPostProcessingEffect(PostProcessingEffectType.Acid, 60);
         host.SendConsoleReply(player.ConnectedClient, "Okay then.");
     }
 }
Esempio n. 6
0
 public void Execute(IClientConsoleHost host, IClient client, params string[] args)
 {
     foreach (IPlayerSession playerfordrugs in IoCManager.Resolve <IPlayerManager>().GetAllPlayers())
     {
         playerfordrugs.AddPostProcessingEffect(PostProcessingEffectType.Acid, 60);
         host.SendConsoleReply("Okay then.", client.NetConnection);
     }
 }
Esempio n. 7
0
        public EscapeMenu(IClientConsoleHost consoleHost)
        {
            _consoleHost = consoleHost;

            IoCManager.InjectDependencies(this);

            PerformLayout();
        }
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var baseServer = IoCManager.Resolve <IBaseServer>();

            if (baseServer.RunLevel == ServerRunLevel.PostGame)
            {
                baseServer.RunLevel = ServerRunLevel.MapChange;
            }
        }
Esempio n. 9
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (player.AttachedEntity == null)
            {
                return;
            }

            var pos = player.AttachedEntity.GetComponent <ITransformComponent>().LocalPosition;

            host.SendConsoleReply(player.ConnectedClient, $"MapID:{pos.MapID} GridID:{pos.GridID} X:{pos.X:N2} Y:{pos.Y:N2}");
        }
Esempio n. 10
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var builder = new StringBuilder("Available commands:\n");

            foreach (var command in host.AvailableCommands.Values)
            {
                builder.AppendFormat("{0}: {1}\n", command.Command, command.Description);
            }
            var message = builder.ToString().Trim(' ', '\n');

            host.SendConsoleReply(player.ConnectedClient, message);
        }
Esempio n. 11
0
        public EscapeMenu(IClientConsoleHost consoleHost)
        {
            _consoleHost = consoleHost;

            RobustXamlLoader.Load(this);

            _optionsMenu = new OptionsMenu();

            OptionsButton.OnPressed    += OnOptionsButtonClicked;
            QuitButton.OnPressed       += OnQuitButtonClicked;
            DisconnectButton.OnPressed += OnDisconnectButtonClicked;
        }
        public EscapeMenu(IClientConsoleHost consoleHost)
        {
            _consoleHost = consoleHost;

            RobustXamlLoader.Load(this);

            _optionsMenu = new OptionsMenu();

            OptionsButton.OnPressed    += OnOptionsButtonClicked;
            QuitButton.OnPressed       += OnQuitButtonClicked;
            RulesButton.OnPressed      += _ => new RulesAndInfoWindow().Open();
            DisconnectButton.OnPressed += OnDisconnectButtonClicked;
            WikiButton.OnPressed       += OnWikiButtonClicked;
        }
Esempio n. 13
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var network = (NetManager)IoCManager.Resolve <INetManager>();

            var callbacks = network.CallbackAudit;

            foreach (var kvCallback in callbacks)
            {
                var msgType = kvCallback.Key;
                var call    = kvCallback.Value;

                var str = $"Type: {msgType.Name} Call:{call.Target}";

                host.SendConsoleReply(player.ConnectedClient, str);
            }
        }
Esempio n. 14
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (player.Status != SessionStatus.InGame || !player.AttachedEntityUid.HasValue)
            {
                return;
            }

            var sessions = IoCManager.Resolve <IPlayerManager>();
            var ents     = IoCManager.Resolve <IEntityManager>();
            var chat     = IoCManager.Resolve <IChatManager>();

            var pos     = ents.GetEntity(player.AttachedEntityUid.Value).GetComponent <ITransformComponent>().LocalPosition;
            var clients = sessions.GetPlayersInRange(pos, WhisperRange).Select(p => p.ConnectedClient);

            chat.DispatchMessage(clients.ToList(), ChatChannel.Local, args[0], player.Index);
        }
Esempio n. 15
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (player.Status != SessionStatus.InGame || !player.AttachedEntityUid.HasValue)
            {
                return;
            }

            if (args.Length < 1)
            {
                return;
            }

            var sessions = IoCManager.Resolve <IPlayerManager>();
            var ents     = IoCManager.Resolve <IEntityManager>();
            var chat     = IoCManager.Resolve <IChatManager>();

            var message = args[0];

            string text;

            if (message[0] == RadioChar)
            {
                // all they sent was the channel
                if (args.Length < 2)
                {
                    return;
                }

                var channel  = args[0];
                var listArgs = args.ToList();
                listArgs.RemoveAt(0);
                text = string.Concat(listArgs);

                //TODO: Parse channel and broadcast over radio.
            }
            else
            {
                text = string.Concat(args);
            }

            var pos     = ents.GetEntity(player.AttachedEntityUid.Value).GetComponent <ITransformComponent>().LocalPosition;
            var clients = sessions.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient);

            chat.DispatchMessage(clients.ToList(), ChatChannel.Local, text, player.Index);
        }
Esempio n. 16
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var random = new System.Random();

            foreach (var targetPlayer in IoCManager.Resolve <IPlayerManager>().GetAllPlayers())
            {
                if (targetPlayer.AttachedEntity == null ||
                    !targetPlayer.AttachedEntity.TryGetComponent <SpriteComponent>(out var comp))
                {
                    continue;
                }

                var r   = (float)random.NextDouble();
                var g   = (float)random.NextDouble();
                var b   = (float)random.NextDouble();
                var col = new Color(r, g, b);
                comp.Color = col;
            }
        }
Esempio n. 17
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (args.Length < 1)
            {
                return;
            }

            var mapId = new MapId(int.Parse(args[0]));

            var mapMgr = IoCManager.Resolve <IMapManager>();

            if (!mapMgr.MapExists(mapId))
            {
                mapMgr.CreateMap(mapId);
                host.SendConsoleReply(player.ConnectedClient, $"Map with ID {mapId} created.");
                return;
            }

            host.SendConsoleReply(player.ConnectedClient, $"Map with ID {mapId} already exists!");
        }
Esempio n. 18
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            if (player.Status != SessionStatus.InGame || !player.AttachedEntityUid.HasValue)
            {
                return;
            }

            var sessions = IoCManager.Resolve <IPlayerManager>();
            var ents     = IoCManager.Resolve <IEntityManager>();
            var chat     = IoCManager.Resolve <IChatManager>();

            if (chat.ExpandEmote(args[0], player, out var self, out var other))
            {
                //TODO: Dispatch in PVS range instead
                var pos     = ents.GetEntity(player.AttachedEntityUid.Value).GetComponent <ITransformComponent>().LocalPosition;
                var clients = sessions.GetPlayersInRange(pos, VoiceRange).Where(p => p != player).Select(p => p.ConnectedClient);

                chat.DispatchMessage(player.ConnectedClient, ChatChannel.Emote, self, player.Index);
                chat.DispatchMessage(clients.ToList(), ChatChannel.Emote, other, player.Index);
            }
Esempio n. 19
0
 public DebugConsoleLogHandler(IClientConsoleHost console)
 {
     Console = console;
 }
Esempio n. 20
0
        public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
        {
            var ent = IoCManager.Resolve <IServerEntityManager>();

            ent.ForceSpawnEntityAt(args[0], player.AttachedEntity.GetComponent <IServerTransformComponent>().LocalPosition);
        }
Esempio n. 21
0
 public void Execute(IClientConsoleHost host, IPlayerSession player, params string[] args)
 {
     //TODO: Check permissions here.
     IoCManager.Resolve <IBaseServer>().Restart();
 }