using QSB.Messaging; using QSB.TransformSync; namespace QSB.Events { public class PlayerStatesRequestEvent : QSBEvent { public override MessageType Type => MessageType.FullStateRequest; public override void SetupListener() { GlobalMessenger.AddListener(EventNames.QSBPlayerStatesRequest, () => SendEvent(CreateMessage())); } private PlayerMessage CreateMessage() => new PlayerMessage { SenderId = PlayerTransformSync.LocalInstance.netId.Value }; public override void OnServerReceive(PlayerMessage message) { PlayerState.LocalInstance.Send(); foreach (var item in PlayerRegistry.TransformSyncs) { GlobalMessenger.FireEvent(EventNames.QSBSectorChange, item.netId.Value, item.SectorId, item.SectorName); } } } }