diff --git a/src/main/scala/net/psforever/actors/session/AvatarActor.scala b/src/main/scala/net/psforever/actors/session/AvatarActor.scala index 5fa778df..c28bd9c7 100644 --- a/src/main/scala/net/psforever/actors/session/AvatarActor.scala +++ b/src/main/scala/net/psforever/actors/session/AvatarActor.scala @@ -59,9 +59,10 @@ import net.psforever.types.{ import net.psforever.util.Database._ import net.psforever.persistence import net.psforever.util.DefinitionUtil -import org.joda.time.{LocalDateTime, Period} +import org.joda.time.{LocalDateTime, Seconds} import net.psforever.services.ServiceManager import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage} + import scala.collection.mutable import scala.concurrent.{ExecutionContextExecutor, Future, Promise} import scala.util.{Failure, Success} @@ -733,7 +734,8 @@ class AvatarActor( case RefreshPurchaseTimes() => avatar.purchaseTimes.foreach { case (name, purchaseTime) => - val secondsSincePurchase = new Period(purchaseTime, LocalDateTime.now()).toStandardSeconds.getSeconds + val secondsSincePurchase = Seconds.secondsBetween(purchaseTime, LocalDateTime.now()).getSeconds + Avatar.purchaseCooldowns.find(_._1.Name == name) match { case Some((obj, cooldown)) if cooldown.toSeconds - secondsSincePurchase > 0 => val faction: String = avatar.faction.toString.toLowerCase @@ -1096,7 +1098,7 @@ class AvatarActor( val converter: CharacterSelectConverter = new CharacterSelectConverter avatars.filter(!_.deleted) foreach { a => - val secondsSinceLastLogin = new Period(a.lastLogin, LocalDateTime.now()).toStandardSeconds.getSeconds + val secondsSinceLastLogin = Seconds.secondsBetween(a.lastLogin, LocalDateTime.now()).getSeconds val avatar = a.toAvatar val player = new Player(avatar) diff --git a/src/main/scala/net/psforever/actors/session/SessionActor.scala b/src/main/scala/net/psforever/actors/session/SessionActor.scala index 692c4d4d..07b17793 100644 --- a/src/main/scala/net/psforever/actors/session/SessionActor.scala +++ b/src/main/scala/net/psforever/actors/session/SessionActor.scala @@ -4612,7 +4612,7 @@ class SessionActor extends Actor with MDCContextAware { ChatMessageType.UNK_225, false, "", - s"@TimeUntilNextUse^${cooldown.toStandardSeconds.getSeconds}", + s"@TimeUntilNextUse^${cooldown.getStandardSeconds}", None ) ) diff --git a/src/main/scala/net/psforever/objects/avatar/Avatar.scala b/src/main/scala/net/psforever/objects/avatar/Avatar.scala index df0de0e2..63033453 100644 --- a/src/main/scala/net/psforever/objects/avatar/Avatar.scala +++ b/src/main/scala/net/psforever/objects/avatar/Avatar.scala @@ -5,9 +5,10 @@ import net.psforever.objects.equipment.{EquipmentSize, EquipmentSlot} import net.psforever.objects.loadouts.{Loadout, SquadLoadout} import net.psforever.objects.{GlobalDefinitions, LockerContainer, LockerEquipment, OffhandEquipmentSlot} import net.psforever.types._ -import org.joda.time.{LocalDateTime, Period} +import org.joda.time.{Duration, LocalDateTime, Seconds} + import scala.collection.immutable.Seq -import scala.concurrent.duration.{FiniteDuration, _} +import scala.concurrent.duration._ object Avatar { val purchaseCooldowns: Map[BasicDefinition, FiniteDuration] = Map( @@ -105,13 +106,14 @@ case class Avatar( times: Map[String, LocalDateTime], cooldowns: Map[BasicDefinition, FiniteDuration], definition: BasicDefinition - ): Option[Period] = { + ): Option[Duration] = { times.get(definition.Name) match { case Some(purchaseTime) => - val secondsSincePurchase = new Period(purchaseTime, LocalDateTime.now()).toStandardSeconds.getSeconds + val secondsSincePurchase = Seconds.secondsBetween(purchaseTime, LocalDateTime.now()) + val duration = secondsSincePurchase.toStandardDuration cooldowns.get(definition) match { - case Some(cooldown) if (cooldown.toSeconds - secondsSincePurchase) > 0 => - Some(Period.seconds(cooldown.toSeconds.toInt - secondsSincePurchase)) + case Some(cooldown) if (cooldown.toSeconds - secondsSincePurchase.getSeconds) > 0 => + Some(duration) case _ => None } case None => @@ -120,12 +122,12 @@ case class Avatar( } /** Returns the remaining purchase cooldown or None if an object is not on cooldown */ - def purchaseCooldown(definition: BasicDefinition): Option[Period] = { + def purchaseCooldown(definition: BasicDefinition): Option[Duration] = { cooldown(purchaseTimes, Avatar.purchaseCooldowns, definition) } /** Returns the remaining use cooldown or None if an object is not on cooldown */ - def useCooldown(definition: BasicDefinition): Option[Period] = { + def useCooldown(definition: BasicDefinition): Option[Duration] = { cooldown(useTimes, Avatar.useCooldowns, definition) }