コード例 #1
0
ファイル: HookManager.cs プロジェクト: Z0kc/TShockMobile
        internal void InvokeServerLeave(int who)
        {
            LeaveEventArgs args = new LeaveEventArgs
            {
                Who = who
            };

            this.ServerLeave.Invoke(args);
        }
コード例 #2
0
ファイル: RegionVision.cs プロジェクト: UB1AFU/Region-Vision
 private void onPlayerLeave(TerrariaApi.Server.LeaveEventArgs e)
 {
     lock (players)
         for (int i = 0; i < players.Count; i++)
         {
             if (players[i].index == e.Who)
             {
                 players.RemoveAt(i);
                 break;
             }
         }
 }
コード例 #3
0
        private void OnLeave(LeaveEventArgs args)
        {
            int id = -1;

            if (indexid.ContainsKey(args.Who))
                id = indexid[args.Who];
            else
                return;

            if (id != -1 && players.ContainsKey(id))
            {
                players[id].Leave();

                players[id].pastGreet = false;
                players[id].hasGreeted = false;

                indexid.Remove(args.Who);
            }
        }
コード例 #4
0
ファイル: main.cs プロジェクト: ancientgods/StaffChat
 public void OnLeave(LeaveEventArgs e)
 {
     Spying[e.Who] = false;
     InStaffChat[e.Who] = false;
 }
コード例 #5
0
		internal void InvokeServerLeave(int who)
		{
			LeaveEventArgs args = new LeaveEventArgs
			{
				Who = who
			};

			this.ServerLeave.Invoke(args);
		}
コード例 #6
0
ファイル: CawAIO.cs プロジェクト: prometor12/CawAIO
 public void OnLeave(LeaveEventArgs args)
 {
     Playerlist[args.Who] = null;
 }
コード例 #7
0
ファイル: C3Mod.cs プロジェクト: Olink/Twitchys-C3Mod
 internal void OnLeave(LeaveEventArgs args)
 {
     lock (C3Mod.C3Players)
     {
         for (int i = 0; i < C3Mod.C3Players.Count; i++)
         {
             if (C3Mod.C3Players[i].Index == args.Who)
             {
                 C3Mod.C3Players.RemoveAt(i);
                 break;
             }
         }
     }
 }
コード例 #8
0
ファイル: TShock.cs プロジェクト: B-BOB/TShock
        /// <summary>OnLeave - Called when a player leaves the server.</summary>
        /// <param name="args">args - The LeaveEventArgs object.</param>
        private void OnLeave(LeaveEventArgs args)
        {
            var tsplr = Players[args.Who];
            Players[args.Who] = null;

            if (tsplr != null && tsplr.ReceivedInfo)
            {
                if (!tsplr.SilentKickInProgress && tsplr.State >= 3)
                    Utils.Broadcast(tsplr.Name + " has left.", Color.Yellow);
                Log.Info("{0} disconnected.", tsplr.Name);

                if (tsplr.IsLoggedIn && !tsplr.IgnoreActionsForClearingTrashCan && Main.ServerSideCharacter && (!tsplr.Dead || tsplr.TPlayer.difficulty != 2))
                {
                    tsplr.PlayerData.CopyCharacter(tsplr);
                    CharacterDB.InsertPlayerData(tsplr);
                }

                if (Config.RememberLeavePos && !tsplr.LoginHarassed)
                {
                    RememberedPos.InsertLeavePos(tsplr.Name, tsplr.IP, (int)(tsplr.X / 16), (int)(tsplr.Y / 16));
                }

                if (tsplr.tempGroupTimer != null)
                {
                    tsplr.tempGroupTimer.Stop();
                }
            }

            // Fire the OnPlayerLogout hook too, if the player was logged in and they have a TSPlayer object.
            if (tsplr != null && tsplr.IsLoggedIn)
            {
                Hooks.PlayerHooks.OnPlayerLogout(tsplr);
            }

            // The last player will leave after this hook is executed.
            if (Utils.ActivePlayers() == 1)
            {
                if (Config.SaveWorldOnLastPlayerExit)
                    SaveManager.Instance.SaveWorld();
                SetConsoleTitle(true);
            }
        }
コード例 #9
0
ファイル: Clans.cs プロジェクト: Stealownz/Clans
        void OnLeave(LeaveEventArgs e)
        {
            string name = Main.player[e.Who].name;

              ClanMember member = ClanManager.getClanMember(name);
              if (member == null)
            return;
              else
            member.Index = -1;

              ClanManager.PendingInvites[e.Who].Timeout = 0;
        }
コード例 #10
0
ファイル: AdminTools.cs プロジェクト: UB1AFU/AdminTools
 private static void OnLeave(LeaveEventArgs plr)
 {
     try
     {
         var player = GetPlayerByIndex(plr.Who);
         if (player != null)
         {
             if (player.UserID != -1)
             {
                 AdminToolsMain.db.QueryReader("UPDATE PlayerData SET Nicknames=@1, IPs=@2, LastSeen=@3 WHERE UserID=@0", player.UserID, JsonConvert.SerializeObject(player.Nicknames, Formatting.None), JsonConvert.SerializeObject(player.IP, Formatting.None), DateTime.Now.Ticks);
             }
             lock (PlayerList)
             {
                 PlayerList.Remove(player);
             }
         }
     }
     catch (Exception ex)
     {
         TShock.Log.ConsoleError(ex.ToString());
     }
 }
コード例 #11
0
        /// <summary>
        /// ServerLeave Event
        /// Automatically executes the "save" command when
        /// the last player has left the server.
        /// </summary>
        /// <param name="args">LeaveEvent Parameters. Has a "who" parameter which corresponds
        /// to the leaving player's index</param>
        private void OnPlayerLeaveServer(LeaveEventArgs args)
        {
            // Get the currrent player count
            int playerCount = TShock.Utils.ActivePlayers();

            // is this the last player and is able to save?
            if (playerCount <= 1 && canSave == true)
            {
                TShock.Utils.SaveWorld();

                lastSaved   = DateTime.Now;
                canSave     = false;
            }
        }
コード例 #12
0
ファイル: Peticion.cs プロジェクト: Grand-Line/PeticionTp
 private void OnLeave(LeaveEventArgs args)
 {
     throw new NotImplementedException();
 }
コード例 #13
0
ファイル: Plugin.cs プロジェクト: Tygra/Unplaceables
 private void OnLeave(LeaveEventArgs args)
 {
     if (storage.ContainsKey(args.Who))
         {
             storage.Remove(args.Who);
         }
 }
コード例 #14
0
ファイル: ChatMod.cs プロジェクト: Enerdy/ChatMod
 private void OnLeave(LeaveEventArgs e)
 {
     if (TShock.Players[e.Who] != null && ChatPlayers[e.Who] != null)
     {
         UpdateList(e.Who, false);
     }
 }
コード例 #15
0
ファイル: Clans.cs プロジェクト: MichaelMan57/Clans
 void OnLeave(LeaveEventArgs e)
 {
     ClanManager.UnLoadMember(TShock.Players[e.Who]);
 }
コード例 #16
0
ファイル: TSGeoIP.cs プロジェクト: poqdavid/TSGeoIP
        ///<summary>
        /// This event happens every time a player leaves the server.
        ///</summary>
        ///<param name="args">Containing event data.</param>
        private void OnLeave(LeaveEventArgs args)
        {
            if (this.myPlayersData.ContainsKey(TShock.Players[args.Who].Index)) {

                this.myPlayersData.Remove(TShock.Players[args.Who].Index);
            }
        }
コード例 #17
0
ファイル: AbsMain.cs プロジェクト: WhiteXZ/AutoBoss
        private void OnLeave(LeaveEventArgs args)
        {
            if (TShock.Utils.ActivePlayers() == 1)
            {
                foreach (var pair in bossList)
                {
                    if (pair.Value > 0 && pair.Value < Main.maxNPCs)
                    {
                        TSPlayer.Server.StrikeNPC(pair.Value, 9999, 1f, 1);
                    }
                }
                bossList.Clear();
                bossCounts.Clear();
                Timers.Stop();

                TShock.Log.ConsoleInfo("[AutoBoss+] Timer Disabled: No players are online");
            }
        }
コード例 #18
0
ファイル: AntiSpam.cs プロジェクト: MarioE/AntiSpam
 void OnLeave(LeaveEventArgs e)
 {
     Spams[e.Who] = 0.0;
     Times[e.Who] = DateTime.Now;
 }
コード例 #19
0
ファイル: InfiniteSigns.cs プロジェクト: MarioE/InfiniteSigns
 void OnLeave(LeaveEventArgs e)
 {
     Infos[e.Who] = new PlayerInfo();
 }
コード例 #20
0
ファイル: InfiniteSigns.cs プロジェクト: Enerdy/InfiniteSigns
 void OnLeave(LeaveEventArgs e)
 {
     Action[e.Who] = SignAction.NONE;
     SignNum[e.Who] = false;
 }
コード例 #21
0
        public void OnLeave(LeaveEventArgs args)
        {
            var plr = TShock.Players[args.Who];
            if (plr == null)
                return;

            if (hasAnnounced.Keys.Contains(args.Who))
                hasAnnounced.Remove(args.Who);

            if (!plr.IsLoggedIn)
                return;

            if (permas.ContainsKey(plr.User.ID))
                permas.Remove(plr.User.ID);
        }
コード例 #22
0
ファイル: EBMain.cs プロジェクト: CAWCAWCAW/ExtendedBans
 public void OnLeave(LeaveEventArgs e)
 {
     lock (EBPlayers)
     {
         for (int i = 0; i < EBPlayers.Count; i++)
         {
             if (EBPlayers[i].Index == e.Who)
             {
                 EBPlayers.RemoveAt(i);
                 break;
             }
         }
     }
 }
コード例 #23
0
ファイル: Main.cs プロジェクト: ja450n/Vault
 public void OnLeave(LeaveEventArgs e)
 {
     try
     {
         if (PlayerList[e.Who] != null)
             PlayerList[e.Who].StopUpdating();
         PlayerList[e.Who] = null;
     }
     catch (Exception ex)
     {
         Log.ConsoleError(ex.ToString());
         if (e.Who >= 0)
             PlayerList[e.Who] = null;
     }
 }
コード例 #24
0
 private static void OnLeave(LeaveEventArgs args)
 {
     //if (ScPlayers[args.Who] != null && ScPlayers[args.Who].Cooldowns.Count > 0)
       //    OfflineCooldowns.Add(TShock.Players[args.Who].Name, ScPlayers[args.Who].Cooldowns);
       ScPlayers[args.Who] = null;
 }
コード例 #25
0
 void OnLeave(LeaveEventArgs args)
 {
     RPlayers[args.Who] = null;
 }
コード例 #26
0
 private void OnLeave(LeaveEventArgs args)
 {
     lock (Players)
     {
         Players.RemoveAll(p => p.Index == args.Who);
     }
 }
コード例 #27
0
ファイル: TShockIRC.cs プロジェクト: bippity/TShockIRC
 void OnLeave(LeaveEventArgs e)
 {
     TSPlayer tsplr = TShock.Players[e.Who];
     if (!IrcClient.IsConnected)
         Connect();
     else if (tsplr != null && tsplr.ReceivedInfo && tsplr.State >= 3 && !tsplr.SilentKickInProgress)
     {
         if (!String.IsNullOrEmpty(Config.ServerLeaveMessageFormat))
             SendMessage(Config.Channel, String.Format(Config.ServerLeaveMessageFormat, tsplr.Name));
         if (!String.IsNullOrEmpty(Config.ServerLeaveAdminMessageFormat))
             SendMessage(Config.AdminChannel, String.Format(Config.ServerLeaveAdminMessageFormat, tsplr.Name, tsplr.IP));
     }
 }
コード例 #28
0
 public void OnLeave(LeaveEventArgs args)
 {
     if (scPlayers[args.Who] != null && scPlayers[args.Who].Cooldowns.Count > 0)
         OfflineCooldowns.Add(TShock.Players[args.Who].Name, scPlayers[args.Who].Cooldowns);
     scPlayers[args.Who] = null;
 }
コード例 #29
0
ファイル: main.cs プロジェクト: CrazyLegsSteph/Freeze
        public void OnLeave(LeaveEventArgs e)
        {
            TSPlayer ts = TShock.Players[e.Who];
            int i = FrozenPlayers.FindIndex(f => f.Index == e.Who);
            if (i >= 0)
            {
                if (!IpNames.ContainsKey(ts.IP))
                    IpNames.Add(ts.IP, ts.Name);

                FrozenPlayers.RemoveAt(i);
            }
        }
コード例 #30
0
ファイル: RegionFlags.cs プロジェクト: Enerdy/Region-Flags
 private void OnLeave(LeaveEventArgs args)
 {
     lock (players)
     {
         players[args.Who] = null;
     }
 }
コード例 #31
0
        private void OnLeave(LeaveEventArgs args)
        {
            var player = Utils.GetPlayers(args.Who);

            Players.RemoveAll(pl => pl.Index == args.Who);
        }
コード例 #32
0
ファイル: BuildMode.cs プロジェクト: PizzaStix423/BuildMode
 void OnLeave(LeaveEventArgs e)
 {
     Build[e.Who] = false;
 }