コード例 #1
0
ファイル: MainService.cs プロジェクト: TheaP/c-raft
 private void RunServer()
 {
     IsStopping = false;
     while (!IsStopping)
     {
         (Server = new Server()).Run();
     }
 }
コード例 #2
0
ファイル: Player.cs プロジェクト: Smjert/c-raft
 public Player(Server server, int sessionId)
     : base(server, sessionId)
 {
     EnsureServer(server);
     Inventory = null;
     DisplayName = Username;
     SessionID = sessionId;
     InitializePosition();
     PermHandler = new PermissionHandler(server);
 }
コード例 #3
0
ファイル: Logger.cs プロジェクト: RevolutionSmythe/c-raft
 internal Logger(Server server, string file)
 {
     Server = server;
     try
     {
         WriteLog = new StreamWriter(file, true);
         WriteLog.AutoFlush = true;
     }
     catch
     {
         WriteLog = null;
     }
 }
コード例 #4
0
ファイル: Client.cs プロジェクト: RevolutionSmythe/c-raft
 /// <summary>
 /// Instantiates a new Client object.
 /// </summary>
 /// <param name="server">The Server to associate with the entity.</param>
 /// <param name="sessionId">The entity ID for the client.</param>
 /// <param name="tcp">The TCP client to be used for communication.</param>
 internal Client(Server server, int sessionId, TcpClient tcp)
     : base(server, sessionId)
 {
     EnsureServer(server);
     SessionID = sessionId;
     Tcp = tcp;
     PacketHandler = new PacketHandler(Server, tcp);
     Inventory = null;
     DisplayName = Username;
     InitializePosition();
     InitializeRecv();
     PermHandler = new PermissionHandler(server);
 }
コード例 #5
0
ファイル: Server.cs プロジェクト: IdentErr/c-raft
        public static Packet GetSpawnPacket(Server server, EntityBase entity)
        {
            Packet packet = null;
            if (entity is Player)
            {
                Player p = ((Player)entity);

                packet = new NamedEntitySpawnPacket
                {
                    EntityId = p.EntityId,
                    X = p.Position.X,
                    Y = p.Position.Y,
                    Z = p.Position.Z,
                    Yaw = p.PackedYaw,
                    Pitch = p.PackedPitch,
                    PlayerName = p.Client.Username + p.EntityId,
                    CurrentItem = 0
                };
            }
            else if (entity is ItemEntity)
            {
                ItemEntity item = (ItemEntity)entity;
                packet = new SpawnItemPacket
                {
                    X = item.Position.X,
                    Y = item.Position.Y,
                    Z = item.Position.Z,
                    Yaw = item.PackedYaw,
                    Pitch = item.PackedPitch,
                    EntityId = item.EntityId,
                    ItemId = item.ItemId,
                    Count = item.Count,
                    Durability = item.Durability,
                    Roll = 0
                };
            }
            else if (entity is Mob)
            {
                Mob mob = (Mob)entity;
                server.Logger.Log(Logger.LogLevel.Debug, ("ClientSpawn: Sending Mob " + mob.Type + " (" + mob.Position.X + ", " + mob.Position.Y + ", " + mob.Position.Z + ")"));
                packet = new MobSpawnPacket
                {
                    X = mob.Position.X,
                    Y = mob.Position.Y,
                    Z = mob.Position.Z,
                    Yaw = mob.PackedYaw,
                    Pitch = mob.PackedPitch,
                    EntityId = mob.EntityId,
                    Type = mob.Type,
                    Data = mob.Data
                };
            }

            return packet;
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: dredge20/c-raft
 private static void StartServer()
 {
     (Server = new Server()).Run();
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: dredge20/c-raft
 private static void Exit()
 {
     Server.Stop();
     Server = null;
 }
コード例 #8
0
ファイル: Program.cs プロジェクト: Eipok/c-raft
 public static void Exit()
 {
     Server.Stop();
     Server = null;
 }