public void SendConnectToInstance(ConnectToSerial serial) { var instanceAddress = Global.WorldMgr.GetRealm().GetAddressForClient(System.Net.IPAddress.Parse(GetRemoteAddress())); _instanceConnectKey.AccountId = GetAccountId(); _instanceConnectKey.connectionType = ConnectionType.Instance; _instanceConnectKey.Key = RandomHelper.URand(0, 0x7FFFFFFF); ConnectTo connectTo = new(); connectTo.Key = _instanceConnectKey.Raw; connectTo.Serial = serial; connectTo.Payload.Port = (ushort)WorldConfig.GetIntValue(WorldCfg.PortInstance); connectTo.Con = (byte)ConnectionType.Instance; if (instanceAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { connectTo.Payload.Where.IPv4 = instanceAddress.Address.GetAddressBytes(); connectTo.Payload.Where.Type = ConnectTo.AddressType.IPv4; } else { connectTo.Payload.Where.IPv6 = instanceAddress.Address.GetAddressBytes(); connectTo.Payload.Where.Type = ConnectTo.AddressType.IPv6; } SendPacket(connectTo); }
public void SendConnectToInstance(ConnectToSerial serial) { var instanceAddress = Global.WorldMgr.GetRealm().GetAddressForClient(System.Net.IPAddress.Parse(GetRemoteAddress())); instanceAddress.Port = WorldConfig.GetIntValue(WorldCfg.PortInstance); _instanceConnectKey.AccountId = GetAccountId(); _instanceConnectKey.connectionType = ConnectionType.Instance; _instanceConnectKey.Key = RandomHelper.URand(0, 0x7FFFFFFF); ConnectTo connectTo = new ConnectTo(); connectTo.Key = _instanceConnectKey.Raw; connectTo.Serial = serial; connectTo.Payload.Where = instanceAddress; connectTo.Con = (byte)ConnectionType.Instance; SendPacket(connectTo); }