Exemple #1
0
		public virtual bool Message(PlayerMobile user, string text, bool message = true)
		{
			if (!CanMessage(user, text, message))
			{
				return false;
			}

			if (!IsUser(user))
			{
				Join(user, message);
			}

			var msg = new WorldChatMessage(user, text, user.ToMapPoint(), DateTime.Now);

			string formatted = FormatMessage(user, text);

			Users.Keys.Where(u => CanSee(u, msg)).ForEach(u => MessageTo(user, u, formatted));

			if (WorldChat.CMOptions.HistoryBuffer > 0)
			{
				while (HistoryCount >= WorldChat.CMOptions.HistoryBuffer)
				{
					History.Pop();
				}

				History.Add(user, msg);
			}
			else
			{
				History.Clear();
			}

			Users[user] = DateTime.Now + SpamDelay;

			OnMessage(user, msg, message);
			return true;
		}