From ba490051cd5997516e2e7993ec87106ec905058c Mon Sep 17 00:00:00 2001 From: Mazo Date: Mon, 12 Apr 2021 22:55:29 +0100 Subject: [PATCH] Fix potential exception in CaptureFlagConverter --- .../definition/converter/CaptureFlagConverter.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/scala/net/psforever/objects/definition/converter/CaptureFlagConverter.scala b/src/main/scala/net/psforever/objects/definition/converter/CaptureFlagConverter.scala index c4955545..e943a168 100644 --- a/src/main/scala/net/psforever/objects/definition/converter/CaptureFlagConverter.scala +++ b/src/main/scala/net/psforever/objects/definition/converter/CaptureFlagConverter.scala @@ -1,15 +1,21 @@ package net.psforever.objects.definition.converter +import net.psforever.objects.serverobject.hackable.Hackable import net.psforever.objects.serverobject.llu.CaptureFlag import net.psforever.objects.serverobject.structures.Building import net.psforever.packet.game.objectcreate.{CaptureFlagData, PlacementData} +import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3} import java.util.concurrent.TimeUnit import scala.util.{Success, Try} class CaptureFlagConverter extends ObjectCreateConverter[CaptureFlag]() { override def ConstructorData(obj : CaptureFlag) : Try[CaptureFlagData] = { - val hackInfo = obj.Owner.asInstanceOf[Building].CaptureTerminal.get.HackedBy.get + val hackInfo = obj.Owner.asInstanceOf[Building].CaptureTerminal.get.HackedBy match { + case Some(hackInfo) => hackInfo + case _ => Hackable.HackInfo("", PlanetSideGUID(0), PlanetSideEmpire.NEUTRAL, Vector3.Zero, 0L, 0L) + } + val millisecondsRemaining = TimeUnit.MILLISECONDS.convert(math.max(0, hackInfo.hackStartTime + hackInfo.hackDuration - System.nanoTime), TimeUnit.NANOSECONDS) Success(