private void OnPeerConnected(object sender, PeerConnectedEventArgs e) { if (config.debug) { this.Monitor.Log("OnPeerConnected", LogLevel.Debug); } }
/// <summary> /// Sends out the volcano data manager whenever a new player connects. /// </summary> /// <param name="sender">SMAPI.</param> /// <param name="e">Event args.</param> private void OnPlayerConnected(object?sender, PeerConnectedEventArgs e) { if (e.Peer.ScreenID == 0 && Context.IsWorldReady && Context.IsMainPlayer) { VolcanoChestAdjuster.BroadcastData(this.Helper.Multiplayer, new[] { e.Peer.PlayerID }); } }
public void OnPeerConnected(object sender, PeerConnectedEventArgs args) { EventSubscriber.Instance.TrySetEventSubscriptions(); Task requestTask = Task.Run(() => { bool hasPlayerConnected = Game1.getOnlineFarmers().Any(f => f.UniqueMultiplayerID == args.Peer.PlayerID);; int intervalsWaited = 0; while (!hasPlayerConnected && intervalsWaited < 300) { hasPlayerConnected = Game1.getOnlineFarmers().Any(f => f.UniqueMultiplayerID == args.Peer.PlayerID); if (hasPlayerConnected) { break; } Thread.Sleep(100); intervalsWaited++; } if (hasPlayerConnected) { CheckForValidModInstall(args.Peer, Game1.getFarmer(args.Peer.PlayerID).Name); } else { CheckForValidModInstall(args.Peer, args.Peer.PlayerID.ToString()); } }); }
// Effectful // Updates // - this.MultiplayerLastStamina // Calls side effectful methods private void OnPeerConnected(object sender, PeerConnectedEventArgs e) { long playerID = e.Peer.PlayerID; float playerStamina = Game1.getFarmer(playerID).Stamina; this.MultiplayerLastStamina.Add(playerID, playerStamina); this.ResetUpdateStaminaDelta(); }
private void OnPeerConnected(object sender, PeerConnectedEventArgs e) { if (!Context.IsMainPlayer) { // Set Farmer moddata used for this mod EstablishPlayerData(); } }
/// <summary>Host notices a peer.</summary> /// <param name="e">Event data.</param> public static void OnPeerConnected(PeerConnectedEventArgs e) { if (!e.Peer.HasSmapi) { return; } ConfigHelper.SyncWithPeers(); SaveGameHelper.SyncWithPeers(); }
/// <summary> /// Updates entry for Pam's schedule whenever a person joins in multiplayer. /// </summary> /// <param name="e">arguments.</param> internal static void ReSendMultiplayerMessage(PeerConnectedEventArgs e) { if (Context.IsMainPlayer && Context.IsWorldReady && Game1.getCharacterFromName("Pam") is NPC pam && pam.TryGetScheduleEntry(pam.dayScheduleName.Value, out string?rawstring) && Globals.UtilitySchedulingFunctions.TryFindGOTOschedule(pam, SDate.Now(), rawstring, out string redirectedstring)) { PamsSchedule = redirectedstring; Globals.ModMonitor.Log($"Grabbing Pam's rawSchedule for phone: {redirectedstring}"); Globals.Helper.Multiplayer.SendMessage(redirectedstring, SCHEDULEMESSAGE, modIDs: new[] { Globals.Manifest.UniqueID }); } }
private void Multiplayer_PeerConnected(object sender, PeerConnectedEventArgs e) { if (!Game1.IsMasterGame) { return; } playerIds.Add(e.Peer.PlayerID); allGold message = allGold; Helper.Multiplayer.SendMessage <allGold>(message, "PBData", new[] { ModManifest.UniqueID }); }
private void OnClientConnected(object sender, PeerConnectedEventArgs e) { if (Context.IsMainPlayer && e.Peer.Mods.Any(m => m.ID == this.modManifest.UniqueID)) { var store = new QuestStateStoreData { { e.Peer.PlayerID, this.questStateStore.GetPayloadList(e.Peer.PlayerID) } }; var stats = this.statsManager.GetStats(); var message = new InitalMessage(this.questController.GetQuestIds(), store, stats); this.helper.SendMessage( message, "Init", new[] { this.modManifest.UniqueID }, new[] { e.Peer.PlayerID }); this.monitor.Log($"Sent quests initial state to {e.Peer.PlayerID}"); } }
public void OnPeerConnected(object sender, PeerConnectedEventArgs e) { if (!Context.IsMainPlayer) { return; } long id = e.Peer.PlayerID; DataBlock block = GetEntrySafe(id); block.Name = Game1.getFarmerMaybeOffline(id).Name; AddEntries(new List <DataBlock> { block }, false); helper.Multiplayer.SendMessage(entries, peerConnected, playerIDs: new[] { id }); }
private void OnClientConnected(object sender, PeerConnectedEventArgs e) { if (!Context.IsMainPlayer) { return; } if (e.Peer.HasSmapi) { this.monitor.Log($"Peer connected: {e.Peer.PlayerID} on SMAPI {e.Peer.ApiVersion.ToString()} game version {e.Peer.GameVersion} platform {e.Peer.PlayerID}"); } else { this.monitor.Log($"Peer connected: {e.Peer.PlayerID} on pure vanilla SDV"); } var qfModPeer = e.Peer.GetMod(this.modManifest.UniqueID); if (qfModPeer == null) { this.monitor.Log($"Connected remote peer {e.Peer.PlayerID} doesn't run on SMAPI or they haven't installed the Quest Framework.", LogLevel.Warn); this.monitor.Log($"Unable to send QF shake message to: {e.Peer.PlayerID} (mismatch versions or dependencies)", LogLevel.Error); return; } if (qfModPeer.Version.IsOlderThan(this.modManifest.Version)) { this.monitor.Log($"Remote peer {e.Peer.PlayerID} is running on outdated Quest Framework {qfModPeer.Version}", LogLevel.Warn); } else { this.monitor.Log($"Remote peer {e.Peer.PlayerID} is running on Quest Framework {qfModPeer.Version}"); } var store = new QuestStateStoreData { { e.Peer.PlayerID, this.questStateStore.GetPayloadList(e.Peer.PlayerID) } }; var stats = this.statsManager.GetStats(); var message = new InitalMessage(this.questController.GetQuestIds(), store, stats); this.helper.SendMessage( message, "Init", new[] { this.modManifest.UniqueID }, new[] { e.Peer.PlayerID }); this.monitor.Log($"Sent quests initial state to {e.Peer.PlayerID}"); }
private void OnPeerConnected(object?sender, PeerConnectedEventArgs e) { if (GameExt.GetMultiplayerMode() != MultiplayerMode.Server) { return; } if (e.Peer.GetMod(ModManifest.UniqueID) is null) { return; } Helper.Multiplayer.SendMessage( Mails.Select(m => m.Serialize()).ToList(), MailListMessage, new[] { ModManifest.UniqueID }, new[] { e.Peer.PlayerID } ); }
private void OnPlayerConnected(object sender, PeerConnectedEventArgs e) { NetController.SyncSpecificPlayer(e.Peer.PlayerID); }
public static void PeerConnected(object sender, PeerConnectedEventArgs e) { ModEntry.Helper.Multiplayer.SendMessage(new ShuffleDataPacket(ModEntry.ShuffleData), ShuffleDataPacket.ShuffleDataPacketType, new[] { ModEntry.Helper.ModRegistry.ModID }); }
//Runs when someone connects to the game //I only want this to run for the host, and it will send a message out with the current farm config internal static void PeerConnected(object sender, PeerConnectedEventArgs e) { }
private void PeerConnected(object?sender, PeerConnectedEventArgs e) => MultiplayerSharedState.ReSendMultiplayerMessage(e);