Aura.Channel.World.Party.DisconnectedMember C# (CSharp) Метод

DisconnectedMember() публичный Метод

Deals with removing disconnected players from the party.
public DisconnectedMember ( Creature creature ) : void
creature Aura.Channel.World.Entities.Creature
Результат void
		public void DisconnectedMember(Creature creature)
		{
			lock (_sync)
			{
				_members.Remove(creature);
				_occupiedSlots.Remove(creature.PartyPosition);
			}

			// Handle quest
			if (this.Quest != null)
			{
				// Unset if leader left or not enough members remain,
				// or remove quest from member's manager.
				if (creature == this.Leader || this.MemberCount < ChannelServer.Instance.Conf.World.PartyQuestMinSize)
					this.UnsetPartyQuest();
				else
					creature.Quests.Remove(this.Quest);
			}

			if (this.MemberCount > 0)
			{
				// Choose new leader if the old one disconnected
				if (this.Leader == creature)
				{
					this.AutoChooseNextLeader();
					this.Close();

					Send.PartyChangeLeader(this);
				}

				if (this.IsOpen)
					Send.PartyMemberWantedRefresh(this);

				Send.PartyLeaveUpdate(creature, this);
			}

			if (this.MemberCount == 0)
				ChannelServer.Instance.Events.MinutesTimeTick -= this.OnMinutesTimeTick;
		}