Exemple #1
0
        internal override void Receive()
        {
            if (!Config.IsSinglePlayer)
            {
                lock (TcpClient)
                {
                    base.Receive();
                    var bytes = ReadStream(DataLength);
                    CommandType = (ServerCommandType)BitConverter.ToUInt16(bytes, 0);
                    Param       = BitConverter.ToSingle(bytes, sizeof(ushort));
                }
            }

            switch (CommandType)
            {
            case ServerCommandType.ServerVersion:
                new ServerMsg(Settings.VersionDisplay, ConnectedPlayer).Send();
                break;

            case ServerCommandType.WorldSize:
                string message = !File.Exists(Settings.WorldFilePath) ? string.Format("World file not found @ {0}", Settings.WorldFilePath) : string.Format("World size {0}x{1} ({2} KB)", WorldData.SizeInBlocksX, WorldData.SizeInBlocksZ, new FileInfo(Settings.WorldFilePath).Length / 1024);
                new ServerMsg(message, ConnectedPlayer).Send();
                break;

            case ServerCommandType.MoveSun:
                if (IsAdmin)
                {
                    Debug.Assert(Param >= 0 && Param <= 360, "Invalid degrees to move sun: " + Param);
                    SkyHost.SunAngleRadians = OpenTK.MathHelper.DegreesToRadians(Param);
                    //send a sync to each player immediately
                    foreach (var player in Server.Controller.Players.Values)
                    {
                        new ServerSync(SkyHost.SunAngleRadians, player).Send();
                    }
                    //send confirmation to player that made the change
                    new ServerMsg(string.Format("Moved sun to {0} degrees.", Param), ConnectedPlayer).Send();
                }
                else
                {
                    ConnectedPlayer.SendAdminRequiredMessage();
                }
                break;

            case ServerCommandType.Broadcast:
                if (IsAdmin)
                {
                    ServerMsg.Broadcast("Player sent broadcast message.");                             //theres no way to send the actual message from the client to broadcast yet
                }
                else
                {
                    ConnectedPlayer.SendAdminRequiredMessage();
                }
                break;
            }
        }
Exemple #2
0
 public ServerCommand(ServerCommandType _type, int _timer = 0, string[] _songs = null, string _selectedLevelID = null, int _difficulty = 0, string[] _playerInfos = null, double _selectedSongDuration = 0, double _selectedSongPlayTime = 0)
 {
     commandType           = _type;
     lobbyTimer            = _timer;
     songsToDownload       = _songs;
     selectedLevelID       = _selectedLevelID;
     selectedSongDifficlty = _difficulty;
     playerInfos           = _playerInfos;
     selectedSongDuration  = _selectedSongDuration;
     selectedSongPlayTime  = _selectedSongPlayTime;
 }
 public ServerCommand(ServerCommandType _type, int _timer = 0, string[] _songs = null, string _selectedLevelID = null, int _difficulty = 0, string[] _playerInfos = null, double _selectedSongDuration = 0, double _selectedSongPlayTime = 0)
 {
     version               = Assembly.GetEntryAssembly().GetName().Version.ToString();
     commandType           = _type;
     lobbyTimer            = _timer;
     songsToDownload       = _songs;
     serverState           = ServerMain.serverState;
     selectedLevelID       = _selectedLevelID;
     selectedSongDifficlty = _difficulty;
     playerInfos           = _playerInfos;
     selectedSongDuration  = _selectedSongDuration;
     selectedSongPlayTime  = _selectedSongPlayTime;
 }
Exemple #4
0
 public ServerCommand(ServerCommandType _type, int _timer = 0, string[] _songs = null, int _difficulty = 0, string[] _playerInfos = null, double _selectedSongDuration = 0, double _selectedSongPlayTime = 0, string _kickReason = null)
 {
     version               = Assembly.GetEntryAssembly().GetName().Version.ToString();
     commandType           = _type;
     lobbyTimer            = _timer;
     songsToDownload       = _songs;
     serverState           = ServerMain.serverState;
     selectedLevelID       = (ServerMain.currentSongIndex >= 0 && ServerMain.availableSongs.Count > ServerMain.currentSongIndex) ? ServerMain.availableSongs[ServerMain.currentSongIndex].levelId : "";
     selectedSongDifficlty = _difficulty;
     playerInfos           = _playerInfos;
     selectedSongDuration  = _selectedSongDuration;
     selectedSongPlayTime  = _selectedSongPlayTime;
     kickReason            = _kickReason;
     noFailMode            = Settings.Instance.Server.NoFailMode;
     scoreboardScoreFormat = Settings.Instance.Server.ScoreboardScoreFormat;
 }
 public static ServerCommand CreateServerCommand(ServerCommandType type, object payload) => new ServerCommand(type, JObject.FromObject(payload));
Exemple #6
0
 public ServerCommand(ServerCommandType commandType, float param = 0) : this()
 {
     CommandType = commandType;
     Param       = param;
 }
Exemple #7
0
 public Command(Server server, string type)
 {
     Server           = server;
     this.commandtype = new ServerCommandType(type);
 }
Exemple #8
0
 protected RconCommand(ServerCommandType commandType)
 {
     CommandType = commandType;
 }
Exemple #9
0
		protected RconCommand(ServerCommandType commandType)
		{
			CommandType = commandType;
		}