Ejemplo n.º 1
0
 private void OnPeerConnected(object sender, PeerConnectedEventArgs e)
 {
     if (config.debug)
     {
         this.Monitor.Log("OnPeerConnected", LogLevel.Debug);
     }
 }
Ejemplo n.º 2
0
 /// <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());
                }
            });
        }
Ejemplo n.º 4
0
        // 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();
        }
Ejemplo n.º 5
0
 private void OnPeerConnected(object sender, PeerConnectedEventArgs e)
 {
     if (!Context.IsMainPlayer)
     {
         // Set Farmer moddata used for this mod
         EstablishPlayerData();
     }
 }
Ejemplo n.º 6
0
        /// <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();
        }
Ejemplo n.º 7
0
 /// <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 });
     }
 }
Ejemplo n.º 8
0
        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 });
        }
Ejemplo n.º 9
0
        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}");
            }
        }
Ejemplo n.º 10
0
        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 });
        }
Ejemplo n.º 11
0
        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 }
                );
        }
Ejemplo n.º 13
0
 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 });
 }
Ejemplo n.º 15
0
 //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)
 {
 }
Ejemplo n.º 16
0
 private void PeerConnected(object?sender, PeerConnectedEventArgs e)
 => MultiplayerSharedState.ReSendMultiplayerMessage(e);