No Kit Spam (#892)

* added an extra task to be performed before the kit use blocker is lifted

* type
This commit is contained in:
Fate-JH 2021-07-20 22:23:02 -04:00 committed by GitHub
parent 54b13bb3cf
commit aade69505b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View file

@ -745,9 +745,10 @@ class AvatarActor(
case UpdateUseTime(definition, time) => case UpdateUseTime(definition, time) =>
if (!Avatar.useCooldowns.contains(definition)) { if (!Avatar.useCooldowns.contains(definition)) {
log.warn(s"UpdateUseTime message for item '${definition.Name}' without cooldown") log.warn(s"${avatar.name} is updating a use time for item '${definition.Name}' that has no cooldown")
} }
avatar = avatar.copy(useTimes = avatar.useTimes.updated(definition.Name, time)) avatar = avatar.copy(useTimes = avatar.useTimes.updated(definition.Name, time))
sessionActor ! SessionActor.UseCooldownRenewed(definition, time)
Behaviors.same Behaviors.same
case RefreshPurchaseTimes() => case RefreshPurchaseTimes() =>

View file

@ -68,6 +68,7 @@ import net.psforever.services.{RemoverActor, Service, ServiceManager, Interstell
import net.psforever.types._ import net.psforever.types._
import net.psforever.util.{Config, DefinitionUtil} import net.psforever.util.{Config, DefinitionUtil}
import net.psforever.zones.Zones import net.psforever.zones.Zones
import org.joda.time.LocalDateTime
import org.log4s.MDC import org.log4s.MDC
import scala.collection.mutable import scala.collection.mutable
@ -117,6 +118,8 @@ object SessionActor {
final case class Kick(player: Player, time: Option[Long] = None) extends Command final case class Kick(player: Player, time: Option[Long] = None) extends Command
final case class UseCooldownRenewed(definition: BasicDefinition, time: LocalDateTime) extends Command
/** /**
* The message that progresses some form of user-driven activity with a certain eventual outcome * The message that progresses some form of user-driven activity with a certain eventual outcome
* and potential feedback per cycle. * and potential feedback per cycle.
@ -548,6 +551,13 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
case SetSilenced(silenced) => case SetSilenced(silenced) =>
player.silenced = silenced player.silenced = silenced
case UseCooldownRenewed(definition, _) =>
definition match {
case _: KitDefinition =>
kitToBeUsed = None
case _ => ;
}
case CommonMessages.Progress(rate, finishedAction, stepAction) => case CommonMessages.Progress(rate, finishedAction, stepAction) =>
if (progressBarValue.isEmpty) { if (progressBarValue.isEmpty) {
progressBarValue = Some(-rate) progressBarValue = Some(-rate)
@ -2084,7 +2094,6 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
} }
case AvatarResponse.UseKit(kguid, kObjId) => case AvatarResponse.UseKit(kguid, kObjId) =>
kitToBeUsed = None
sendResponse( sendResponse(
UseItemMessage( UseItemMessage(
tplayer_guid, tplayer_guid,
@ -4562,7 +4571,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
case (Some(kit: Kit), None) => case (Some(kit: Kit), None) =>
kitToBeUsed = Some(item_used_guid) kitToBeUsed = Some(item_used_guid)
player.Actor ! CommonMessages.Use(player, Some(kit)) player.Actor ! CommonMessages.Use(player, Some(kit))
case (Some(_: Kit), Some(_)) | (None, Some(_)) => ; //a kit is already queued to be used; ignore this request case (Some(_: Kit), Some(_)) | (None, Some(_)) =>
//a kit is already queued to be used; ignore this request
sendResponse(ChatMsg(ChatMessageType.UNK_225, false, "", "Please wait ...", None))
case (Some(item), _) => case (Some(item), _) =>
log.error(s"UseItem: ${player.Name} looking for Kit to use, but found $item instead") log.error(s"UseItem: ${player.Name} looking for Kit to use, but found $item instead")
case (None, None) => case (None, None) =>