From afad3fb87e167c685be7b8cc2febe173d11dd35b Mon Sep 17 00:00:00 2001 From: EmirHanMamak Date: Sat, 17 Jan 2026 19:28:47 +0300 Subject: [PATCH] feat(network): add shared packet interfaces and auth request packet --- .../_Hub/Scripts/Network/NetworkClient.cs | 13 +++++-- .../Assets/_Hub/Scripts/UI/LoginUI.cs | 32 ++++++++++++++++-- .../Assets/_Network/Shared/Enum.meta | 8 +++++ .../_Network/Shared/{ => Enum}/PacketType.cs | 6 ++-- .../Shared/{ => Enum}/PacketType.cs.meta | 0 .../Assets/_Network/Shared/Interface.meta | 8 +++++ .../_Network/Shared/Interface/INetPacket.cs | 9 +++++ .../Shared/Interface/INetPacket.cs.meta | 3 ++ .../Assets/_Network/Shared/Packets.meta | 8 +++++ .../_Network/Shared/Packets/ClientServer.meta | 8 +++++ .../Packets/ClientServer/NetAuthRequest.cs | 25 ++++++++++++++ .../ClientServer/NetAuthRequest.cs.meta | 3 ++ .../_Network/Shared/Packets/ServerClient.meta | 8 +++++ .../bin/Release/net9.0/Playvoi.Server.dll | Bin 7168 -> 7168 bytes .../bin/Release/net9.0/Playvoi.Server.exe | Bin 145408 -> 145408 bytes .../net9.0/Playvoi.Server.AssemblyInfo.cs | 2 +- .../Playvoi.Server.AssemblyInfoInputs.cache | 2 +- .../obj/Release/net9.0/Playvoi.Server.dll | Bin 7168 -> 7168 bytes .../obj/Release/net9.0/apphost.exe | Bin 145408 -> 145408 bytes .../obj/Release/net9.0/ref/Playvoi.Server.dll | Bin 6144 -> 6144 bytes .../Release/net9.0/refint/Playvoi.Server.dll | Bin 6144 -> 6144 bytes .../obj/rider.project.model.nuget.info | 2 +- 22 files changed, 126 insertions(+), 11 deletions(-) create mode 100644 Playvoi.Client/Assets/_Network/Shared/Enum.meta rename Playvoi.Client/Assets/_Network/Shared/{ => Enum}/PacketType.cs (69%) rename Playvoi.Client/Assets/_Network/Shared/{ => Enum}/PacketType.cs.meta (100%) create mode 100644 Playvoi.Client/Assets/_Network/Shared/Interface.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs create mode 100644 Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/Packets.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs create mode 100644 Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs.meta create mode 100644 Playvoi.Client/Assets/_Network/Shared/Packets/ServerClient.meta diff --git a/Playvoi.Client/Assets/_Hub/Scripts/Network/NetworkClient.cs b/Playvoi.Client/Assets/_Hub/Scripts/Network/NetworkClient.cs index 1776e35..c2e267e 100644 --- a/Playvoi.Client/Assets/_Hub/Scripts/Network/NetworkClient.cs +++ b/Playvoi.Client/Assets/_Hub/Scripts/Network/NetworkClient.cs @@ -19,6 +19,8 @@ namespace _Hub.Scripts.Network private NetPeer _netPeer; private NetDataWriter _netDataWriter; + public static System.Action OnServerConnected; + #endregion private void Awake() @@ -45,6 +47,7 @@ namespace _Hub.Scripts.Network private void Init() { + _netDataWriter = new NetDataWriter(); _netManager = new NetManager(this) { DisconnectTimeout = 100000 @@ -57,16 +60,20 @@ namespace _Hub.Scripts.Network _netManager.Connect("localhost", 9050, ""); } - public void SendServer(string data) + public void SendServer(T packet, DeliveryMethod deliveryMethod = DeliveryMethod.ReliableOrdered) + where T : INetSerializable { - var bytes = Encoding.UTF8.GetBytes(data); - _netPeer.Send(bytes, DeliveryMethod.ReliableOrdered); + if (_netPeer == null) return; + _netDataWriter.Reset(); + packet.Serialize(_netDataWriter); + _netPeer.Send(_netDataWriter, deliveryMethod); } public void OnPeerConnected(NetPeer peer) { Debug.Log("We connect to server at " + peer.Address); _netPeer = peer; + OnServerConnected?.Invoke(); } public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo) diff --git a/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs b/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs index cbbe5e7..c190c3b 100644 --- a/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs +++ b/Playvoi.Client/Assets/_Hub/Scripts/UI/LoginUI.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Text.RegularExpressions; using _Hub.Scripts.Network; using _Network.Auth; +using _Network.Shared.Packets.ClientServer; using UnityEngine; namespace _Hub.Scripts.UI @@ -29,6 +30,16 @@ namespace _Hub.Scripts.UI #region Unity + private void OnEnable() + { + NetworkClient.OnServerConnected += OnServerConnected; + } + + private void OnDisable() + { + NetworkClient.OnServerConnected -= OnServerConnected; + } + private void Start() { AddListeners(); @@ -43,7 +54,8 @@ namespace _Hub.Scripts.UI private void OnLoginClick() { - + StopCoroutine(nameof(LoginRoutine)); + StartCoroutine(nameof(LoginRoutine)); } private IEnumerator LoginRoutine() @@ -57,8 +69,13 @@ namespace _Hub.Scripts.UI yield return null; } - Debug.Log("Connected to server"); - var authRequest = "authRequestObject"; + Debug.Log("Connected to server ehm"); + var authRequest = new NetAuthRequest() + { + Username = _username, + Password = _password + }; + NetworkClient.Instance.SendServer(authRequest); } @@ -118,5 +135,14 @@ namespace _Hub.Scripts.UI } #endregion + + #region Callbacks + + private void OnServerConnected() + { + _isConnected = true; + } + + #endregion } } \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/Enum.meta b/Playvoi.Client/Assets/_Network/Shared/Enum.meta new file mode 100644 index 0000000..e1558ed --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Enum.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fbb8907d6f34c354aa4f0e75c161f93e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Network/Shared/PacketType.cs b/Playvoi.Client/Assets/_Network/Shared/Enum/PacketType.cs similarity index 69% rename from Playvoi.Client/Assets/_Network/Shared/PacketType.cs rename to Playvoi.Client/Assets/_Network/Shared/Enum/PacketType.cs index 66ec7b9..9a8c75f 100644 --- a/Playvoi.Client/Assets/_Network/Shared/PacketType.cs +++ b/Playvoi.Client/Assets/_Network/Shared/Enum/PacketType.cs @@ -3,11 +3,13 @@ public enum PacketType : byte { #region ClientServer - + Invalid = 0, + AuthRequest = 1, #endregion #region ServerClient - + OnAuth = 100, + #endregion } } \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta b/Playvoi.Client/Assets/_Network/Shared/Enum/PacketType.cs.meta similarity index 100% rename from Playvoi.Client/Assets/_Network/Shared/PacketType.cs.meta rename to Playvoi.Client/Assets/_Network/Shared/Enum/PacketType.cs.meta diff --git a/Playvoi.Client/Assets/_Network/Shared/Interface.meta b/Playvoi.Client/Assets/_Network/Shared/Interface.meta new file mode 100644 index 0000000..751f809 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Interface.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee61b43b2afff504abea4055e83605ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs b/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs new file mode 100644 index 0000000..dee7327 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs @@ -0,0 +1,9 @@ +using LiteNetLib.Utils; + +namespace _Network.Shared.Interface +{ + public interface INetPacket : INetSerializable + { + PacketType Type { get; } + } +} \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs.meta b/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs.meta new file mode 100644 index 0000000..b2ec302 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Interface/INetPacket.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ab288e842f62469788a2b0811c294220 +timeCreated: 1768665506 \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/Packets.meta b/Playvoi.Client/Assets/_Network/Shared/Packets.meta new file mode 100644 index 0000000..41430db --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Packets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b754838f9447ee4b9cc708148d658e2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer.meta b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer.meta new file mode 100644 index 0000000..0162819 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89251cdbef042a34c999fc1bb6f5ff08 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs new file mode 100644 index 0000000..d9bb865 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs @@ -0,0 +1,25 @@ +using _Network.Shared.Interface; +using LiteNetLib.Utils; + +namespace _Network.Shared.Packets.ClientServer +{ + public class NetAuthRequest : INetPacket + { + public PacketType Type => PacketType.AuthRequest; + public string Username { get; set; } + public string Password { get; set; } + + public void Serialize(NetDataWriter writer) + { + writer.Put((byte)Type); + writer.Put(Username); + writer.Put(Password); + } + + public void Deserialize(NetDataReader reader) + { + Username = reader.GetString(); + Password = reader.GetString(); + } + } +} \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs.meta b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs.meta new file mode 100644 index 0000000..31f3c3e --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Packets/ClientServer/NetAuthRequest.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 140b105efcb547b9b2569a8397d1b5c3 +timeCreated: 1768665577 \ No newline at end of file diff --git a/Playvoi.Client/Assets/_Network/Shared/Packets/ServerClient.meta b/Playvoi.Client/Assets/_Network/Shared/Packets/ServerClient.meta new file mode 100644 index 0000000..435de75 --- /dev/null +++ b/Playvoi.Client/Assets/_Network/Shared/Packets/ServerClient.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0c882ddf9c547449a598cd104ab03e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/bin/Release/net9.0/Playvoi.Server.dll b/Playvoi.Server/Playvoi.Server/Playvoi.Server/bin/Release/net9.0/Playvoi.Server.dll index 711d3dd2542a6419e4e71c3c19b73c13ff7ad0f1..223e4d1943d616d984b971ff5651252c1373bad8 100644 GIT binary patch delta 248 zcmZp$Xt0>j!4kdX)P{{c3H$;scLI`~zPWjr_G zMn+~P25FYbNoHndCWgl5DM==IM+&~HfG7rdXnfydB zK)_IzLCKT%wEOTNm`OOlB&5wkNSbUQh zj2Mg=Oc_!cQh;1Cjn&)fTBr2 P5hI{FpxVs~#p783j!6M_f1OH)&GGYd=OL}N?iB-0c_!(=m~G&4(MLt_R87DfgJ1`b9BZXg8#VvoFACqEGk z5a?a6c=p=Ud9FKNsl8d=a*J)Ui%^{cRIs%IDhN`&Ip$aA3BLXbd8xu*Ha`+7V)0F6 zNMbN&Fk-M|NMSH!NCdLdfb28|6Clr$!4wG18O#_gfNW!+tTC8Q0*ZoE8!{vVj Nz~Y9R7mCNT008?iNk;$x diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/bin/Release/net9.0/Playvoi.Server.exe b/Playvoi.Server/Playvoi.Server/Playvoi.Server/bin/Release/net9.0/Playvoi.Server.exe index aeec2900bd396a4333f73797ee8c23b55bf9f56b..2beda16d69051be17e79f1e5e635f4295a032397 100644 GIT binary patch delta 97 zcmZqpz|jCiEsR^3TugnF7>pQ<8B7^c8B&0BGD8}J1yIC@!HmI#!2rm!1d1gAc_3)Q hUT!34;&WH1Fna|Sa83n1GV eC~FL+lYpWi)rJhoKsk^OGqAYf_KBuU`Ah)K!4Yl% diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfo.cs b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfo.cs index 0f44da5..c0b2ea2 100644 --- a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfo.cs +++ b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ab729d1a2f9f4195576893a393b5d11c62f69313")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b235ed3cf822640f9cb6664137db4bc06b729f93")] [assembly: System.Reflection.AssemblyProductAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyTitleAttribute("Playvoi.Server")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfoInputs.cache b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfoInputs.cache index e46a33f..0137507 100644 --- a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfoInputs.cache +++ b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.AssemblyInfoInputs.cache @@ -1 +1 @@ -98eff605502050ea012292e318729166e39cf9aa8ce58a266dabc44ef5c20548 +4bbd7f6de641cc43d39e9f91fda78ddd9b82cd18e65412f51bc2c09be924e288 diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.dll b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/Playvoi.Server.dll index 711d3dd2542a6419e4e71c3c19b73c13ff7ad0f1..223e4d1943d616d984b971ff5651252c1373bad8 100644 GIT binary patch delta 248 zcmZp$Xt0>j!4kdX)P{{c3H$;scLI`~zPWjr_G zMn+~P25FYbNoHndCWgl5DM==IM+&~HfG7rdXnfydB zK)_IzLCKT%wEOTNm`OOlB&5wkNSbUQh zj2Mg=Oc_!cQh;1Cjn&)fTBr2 P5hI{FpxVs~#p783j!6M_f1OH)&GGYd=OL}N?iB-0c_!(=m~G&4(MLt_R87DfgJ1`b9BZXg8#VvoFACqEGk z5a?a6c=p=Ud9FKNsl8d=a*J)Ui%^{cRIs%IDhN`&Ip$aA3BLXbd8xu*Ha`+7V)0F6 zNMbN&Fk-M|NMSH!NCdLdfb28|6Clr$!4wG18O#_gfNW!+tTC8Q0*ZoE8!{vVj Nz~Y9R7mCNT008?iNk;$x diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/apphost.exe b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/apphost.exe index aeec2900bd396a4333f73797ee8c23b55bf9f56b..2beda16d69051be17e79f1e5e635f4295a032397 100644 GIT binary patch delta 97 zcmZqpz|jCiEsR^3TugnF7>pQ<8B7^c8B&0BGD8}J1yIC@!HmI#!2rm!1d1gAc_3)Q hUT!34;&WH1Fna|Sa83n1GV eC~FL+lYpWi)rJhoKsk^OGqAYf_KBuU`Ah)K!4Yl% diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/ref/Playvoi.Server.dll b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/ref/Playvoi.Server.dll index f1aa9abb598cd8d4410b043aaebe9f52366ea9b6..fb94aefe335fe13b4d01baa4fa9d729c455e099b 100644 GIT binary patch delta 202 zcmZoLXfT-2!SXKJ_rb=V5@vyQmkw0r?Wu8XUOq#>c_VYzW5`s zsF!49Y?_*4oSbH1WMpPykY<^jWM*b&VrXohl4O#UY+#mTZe*EeY0SXD!N|ZpQBhHsej zqh4Z?xshdxVWLr*WtxehrKzd8nT4fsqOqlMl4**eVX~P~nwh1sp)msk2O|UbL`9L! zEc^j1zKIM;4CV|*43-Qj42BGeKvo)%oyK4S2 diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/refint/Playvoi.Server.dll b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/Release/net9.0/refint/Playvoi.Server.dll index f1aa9abb598cd8d4410b043aaebe9f52366ea9b6..fb94aefe335fe13b4d01baa4fa9d729c455e099b 100644 GIT binary patch delta 202 zcmZoLXfT-2!SXKJ_rb=V5@vyQmkw0r?Wu8XUOq#>c_VYzW5`s zsF!49Y?_*4oSbH1WMpPykY<^jWM*b&VrXohl4O#UY+#mTZe*EeY0SXD!N|ZpQBhHsej zqh4Z?xshdxVWLr*WtxehrKzd8nT4fsqOqlMl4**eVX~P~nwh1sp)msk2O|UbL`9L! zEc^j1zKIM;4CV|*43-Qj42BGeKvo)%oyK4S2 diff --git a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/rider.project.model.nuget.info b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/rider.project.model.nuget.info index a153fd6..12d1865 100644 --- a/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/rider.project.model.nuget.info +++ b/Playvoi.Server/Playvoi.Server/Playvoi.Server/obj/rider.project.model.nuget.info @@ -1 +1 @@ -17686021595132556 \ No newline at end of file +17686021599175449 \ No newline at end of file