mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-20 10:34:44 +00:00
Bug fixes
* /certadd retains zero-cost certs * Fix squad chat * Fix tells showing wrong name * Add workaround for premature resecure messages
This commit is contained in:
parent
eeae2073ac
commit
cc38ee3f3f
|
|
@ -62,7 +62,6 @@ import net.psforever.util.DefinitionUtil
|
|||
import org.joda.time.{LocalDateTime, Period}
|
||||
import net.psforever.services.ServiceManager
|
||||
import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||
import net.psforever.objects.Deployables
|
||||
import scala.collection.mutable
|
||||
import scala.concurrent.{ExecutionContextExecutor, Future, Promise}
|
||||
import scala.util.{Failure, Success}
|
||||
|
|
@ -711,7 +710,9 @@ class AvatarActor(
|
|||
|
||||
case UpdatePurchaseTime(definition, time) =>
|
||||
if (!Avatar.purchaseCooldowns.contains(definition)) {
|
||||
log.warn(s"UpdatePurchaseTime message for item '${definition.Name}' without cooldown")
|
||||
// TODO only send for items with cooldowns
|
||||
//log.warn(s"UpdatePurchaseTime message for item '${definition.Name}' without cooldown")
|
||||
return Behaviors.same
|
||||
}
|
||||
// TODO save to db
|
||||
avatar = avatar.copy(purchaseTimes = avatar.purchaseTimes.updated(definition.Name, time))
|
||||
|
|
|
|||
|
|
@ -770,6 +770,7 @@ class ChatActor(
|
|||
case CMT_TOGGLE_SHADES => Cosmetic.Sunglasses
|
||||
case CMT_TOGGLE_EARPIECE => Cosmetic.Earpiece
|
||||
}
|
||||
|
||||
val on = contents match {
|
||||
case "on" => true
|
||||
case "off" => false
|
||||
|
|
@ -811,7 +812,7 @@ class ChatActor(
|
|||
if (session.avatar.certifications.size < Certification.values.size) {
|
||||
avatarActor ! AvatarActor.SetCertifications(Certification.values.toSet)
|
||||
} else {
|
||||
avatarActor ! AvatarActor.SetCertifications(Set())
|
||||
avatarActor ! AvatarActor.SetCertifications(Certification.values.filter(_.cost == 0).toSet)
|
||||
}
|
||||
sessionActor ! SessionActor.SendResponse(
|
||||
message.copy(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
package net.psforever.objects
|
||||
|
||||
import akka.actor.ActorRef
|
||||
import net.psforever.objects.avatar.{Avatar, Certification}
|
||||
import net.psforever.objects.avatar.Avatar
|
||||
|
||||
import scala.concurrent.duration._
|
||||
import net.psforever.objects.ce.{Deployable, DeployedItem}
|
||||
|
|
|
|||
|
|
@ -49,8 +49,11 @@ case object Cosmetic extends IntEnum[Cosmetic] {
|
|||
*/
|
||||
def valuesToAttributeValue(values: Set[Cosmetic]): Long = {
|
||||
values.foldLeft(1) {
|
||||
case (sum, NoHelmet) => sum - NoHelmet.value
|
||||
case (sum, entry) => sum + entry.value
|
||||
case (sum, NoHelmet) => sum - 1
|
||||
case (sum, BrimmedCap) => sum + 2
|
||||
case (sum, Sunglasses) => sum + 4
|
||||
case (sum, Earpiece) => sum + 8
|
||||
case (sum, Beret) => sum + 16
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ class ChatService(context: ActorContext[ChatService.Command]) extends AbstractBe
|
|||
)
|
||||
subs.find(_.session.player.Name == message.recipient) match {
|
||||
case Some(JoinChannel(receiver, _, _)) =>
|
||||
receiver ! MessageResponse(session, message, channel)
|
||||
receiver ! MessageResponse(session, message.copy(recipient = session.player.Name), channel)
|
||||
case None =>
|
||||
sender ! MessageResponse(
|
||||
session,
|
||||
|
|
@ -146,17 +146,23 @@ class ChatService(context: ActorContext[ChatService.Command]) extends AbstractBe
|
|||
|
||||
}
|
||||
|
||||
case CMT_SQUAD =>
|
||||
subs.foreach(_.actor ! MessageResponse(session, message, channel))
|
||||
|
||||
case CMT_NOTE =>
|
||||
subs.filter(_.session.player.Name == message.recipient).foreach {
|
||||
case JoinChannel(actor, _, _) =>
|
||||
actor ! MessageResponse(session, message.copy(recipient = session.player.Name), channel)
|
||||
}
|
||||
subs
|
||||
.filter(_.session.player.Name == message.recipient)
|
||||
.foreach(
|
||||
_.actor ! MessageResponse(session, message.copy(recipient = session.player.Name), channel)
|
||||
)
|
||||
|
||||
// faction commands
|
||||
case CMT_OPEN | CMT_PLATOON | CMT_COMMAND =>
|
||||
subs.filter(_.session.player.Faction == session.player.Faction).foreach {
|
||||
case JoinChannel(actor, _, _) => actor ! MessageResponse(session, message, channel)
|
||||
}
|
||||
subs
|
||||
.filter(_.session.player.Faction == session.player.Faction)
|
||||
.foreach(
|
||||
_.actor ! MessageResponse(session, message, channel)
|
||||
)
|
||||
|
||||
case CMT_GMBROADCAST_NC =>
|
||||
subs.filter(_.session.player.Faction == PlanetSideEmpire.NC).foreach {
|
||||
|
|
|
|||
|
|
@ -253,6 +253,10 @@ class LocalService(zone: Zone) extends Actor {
|
|||
log.info("Base hack completed, but base was out of NTU.")
|
||||
}
|
||||
|
||||
// FIXME shitty workaround so we don't get a "resecured by owner" message
|
||||
// SetFaction must be processed before we can keep going
|
||||
Thread.sleep(1000)
|
||||
|
||||
// Reset CC back to normal operation
|
||||
self ! LocalServiceMessage(
|
||||
zone.id,
|
||||
|
|
|
|||
Loading…
Reference in a new issue