public override void SendTo() { this.Type = Message.Type.Ready; if (NetworkManager.Instance.BaseClient.write.Start()) { NetworkManager.Instance.BaseClient.write.PacketID(Message.Type.Ready); ProtoBuf.ClientReady clientReadyProto = new ProtoBuf.ClientReady { clientInfo = new List <ProtoBuf.ClientReady.ClientInfo>() }; clientReadyProto.WriteToStream(NetworkManager.Instance.BaseClient.write); NetworkManager.Instance.BaseClient.write.Send(new SendInfo()); } }
/* Callbacks */ public void OnNetworkMessage(Message message) { if (message.type == Message.Type.RequestUserInformation) { Console.WriteLine("[User {0}] Sending user information", this.user_index); if (this.raknet_client.write.Start()) { this.raknet_client.write.PacketID(Message.Type.GiveUserInformation); this.raknet_client.write.UInt8(228); this.raknet_client.write.UInt64(this.steam_id); this.raknet_client.write.UInt32(this.game_version); this.raknet_client.write.String("windows"); this.raknet_client.write.String(this.username); this.raknet_client.write.String("public"); this.raknet_client.write.BytesWithSize(this.steam_token); this.raknet_client.write.Send(new SendInfo()); } } else if (message.type == Message.Type.Approved) { Console.WriteLine("[User {0}] Connection approved", this.user_index); if (this.raknet_client.write.Start()) { this.raknet_client.write.PacketID(Message.Type.Ready); ProtoBuf.ClientReady protobuf_client_ready = new ProtoBuf.ClientReady { clientInfo = new List <ProtoBuf.ClientReady.ClientInfo>() }; protobuf_client_ready.WriteToStream(this.raknet_client.write); this.raknet_client.write.Send(new SendInfo()); } message.connection.decryptIncoming = true; message.connection.encryptOutgoing = true; message.connection.encryptionLevel = 1; this.connection_status = EConnectionStatus.CONNECTED; } else if (message.type == Message.Type.ConsoleCommand) { Console.WriteLine("[User {0}] ConsoleCommand: {1}", this.user_index, message.read.String()); } else if (message.type == Message.Type.ConsoleMessage) { Console.WriteLine("[User {0}] ConsoleMessage: {1}", this.user_index, message.read.String()); } }
private void OnClientReady(Message _message) { _message.connection.decryptIncoming = true; using (ProtoBuf.ClientReady ready = ProtoBuf.ClientReady.Deserialize(_message.read)) { foreach (ProtoBuf.ClientReady.ClientInfo info in ready.clientInfo) { _message.connection.info.Set(info.name, info.value); } BasePlayer player = Extended.Rust.ToPlayer(_message); if (player == null) { player = this.AddType <BasePlayer>(); player.SteamID = _message.connection.userid; player.Position = new Vector3(0, 2, 0); BasePlayer.ListPlayers.Add(player.SteamID, player); } player.Inventory.ContainerBelt.AddItemToContainer(ItemManager.CreateByPartialName("rifle.ak")); player.Network.OnConnected(_message.connection); } }