internal void QueueChatMessage(InvokedChatMessage message) { lock (chatMessageQueue.SyncRoot) { chatMessageQueue.Enqueue(message); } }
public RoomChat(RoomUser Parent, InvokedChatMessage Message) { this.Parent = Parent; this.Message = Message; if (Parent.GetClient() != null && Parent.GetClient().GetHabbo() != null) { this.chatColor = Parent.GetClient().GetHabbo().ChatColor + " "; } }
internal override void OnChat(InvokedChatMessage message) { // Check if there's any wired triggers with the message if (!GetRoom().AllowsShous(this, message.message)) { return; } GetRoom().OnUserSay(this, message.message, message.shout); base.OnChat(message); }
private void WorkChatQueue() { if (chatMessageQueue.Count > 0) { lock (chatMessageQueue.SyncRoot) { while (chatMessageQueue.Count > 0) { InvokedChatMessage message = (InvokedChatMessage)chatMessageQueue.Dequeue(); message.user.OnChat(message); } } } }
internal virtual void OnChat(InvokedChatMessage message) { string Message = message.message; int ChatHeader = Outgoing.Talk; if (message.shout) { ChatHeader = Outgoing.Shout; } string Site = ""; ServerMessage ChatMessage = new ServerMessage(ChatHeader); ChatMessage.AppendInt32(VirtualID); ChatMessage.AppendString(Message); if (!string.IsNullOrEmpty(Site)) { ChatMessage.AppendBoolean(false); ChatMessage.AppendBoolean(true); ChatMessage.AppendString(Site.Replace("http://", string.Empty)); ChatMessage.AppendString(Site); } ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(-1); GetRoom().GetRoomUserManager().TurnHeads(X, Y, VirtualID); foreach (RoomUser user in GetRoom().GetRoomUserManager().GetRoomUsers()) { if (user.GetClient().GetHabbo().MutedUsers.Contains(ID)) { continue; } user.GetClient().SendMessage(ChatMessage); } message.Dispose(); }
internal void OnChat(InvokedChatMessage message) { #region Progress var Message = message.message; // mejoramos el mensaje. if (GetRoom() == null || GetRoom().SayWired(this, Message)) // si la sala es nula o no se muestra (es wired) { return; } RoomChat Chat = new RoomChat(this, message); GetRoom().SendChatMessage(Chat); // GetRoom().GetRoomUserManager().TurnHeads(X, Y, HabboId); if (!IsBot) { GetRoom().OnUserSay(this, Message, message.shout); } message.Dispose(); #endregion }
internal void OnChat(InvokedChatMessage message) { string Message = message.message; if (GetRoom() != null && !GetRoom().AllowsShous(this, Message)) { return; } uint ChatHeader = 24; if (message.shout) { ChatHeader = 26; } string Site = ""; ServerMessage ChatMessage = new ServerMessage(ChatHeader); ChatMessage.AppendInt32(VirtualId); //if (Message.Contains("http://") || Message.Contains("www.")) //{ // string[] Split = Message.Split(' '); // foreach (string Msg in Split) // { // if (Msg.StartsWith("http://") || Msg.StartsWith("www.")) // { // Site = Msg; // } // } // Message = Message.Replace(Site, "{0}"); //} ChatMessage.AppendStringWithBreak(Message); if (!string.IsNullOrEmpty(Site)) { ChatMessage.AppendBoolean(false); ChatMessage.AppendBoolean(true); ChatMessage.AppendStringWithBreak(Site.Replace("http://", string.Empty)); ChatMessage.AppendStringWithBreak(Site); } ChatMessage.AppendInt32(GetSpeechEmotion(Message)); ChatMessage.AppendBoolean(false); GetRoom().GetRoomUserManager().TurnHeads(X, Y, HabboId); GetRoom().SendMessage(ChatMessage); if (!IsBot) { GetRoom().OnUserSay(this, Message, message.shout); LogMessage(Message); } message.Dispose(); }
internal void Chat(GameClient Session, string Message, bool Shout) { if (Session != null) { if (Session.GetHabbo().Rank < 5) { if (GetRoom().RoomMuted) { return; } } } Unidle(); if (!IsBot && GetClient().GetHabbo().Muted) { GetClient().SendNotif("You are muted."); return; } if (Message.StartsWith(":") && Session != null) { string[] parsedCommand = Message.Split(' '); if (ChatCommandRegister.IsChatCommand(parsedCommand[0].ToLower().Substring(1))) { ChatCommandHandler handler = new ChatCommandHandler(Message.Split(' '), Session); if (handler.WasExecuted()) { Logging.LogMessage(string.Format("User {0} issued command {1}", GetUsername(), Message)); if (Session.GetHabbo().Rank > 5) { ButterflyEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Chat command", string.Format("Issued chat command {0}", Message)); } return; } } } uint rank = 1; Message = LanguageLocale.FilterSwearwords(Message); if (!IsBot && Session != null && Session.GetHabbo() != null) { rank = Session.GetHabbo().Rank; } TimeSpan SinceLastMessage = DateTime.Now - FloodTime; if (SinceLastMessage.Seconds > 4) { FloodCount = 0; } if (SinceLastMessage.Seconds < 4 && FloodCount > 5 && !IsBot && rank < 5) { ServerMessage Packet = new ServerMessage(27); Packet.AppendInt32(30); //Blocked for 30sec GetClient().SendMessage(Packet); return; } FloodTime = DateTime.Now; FloodCount++; if (!IsBot) { ButterflyEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.SOCIAL_CHAT); } InvokedChatMessage message = new InvokedChatMessage(this, Message, Shout); GetRoom().QueueChatMessage(message); }
internal override void OnChat(InvokedChatMessage message) { // Check if there's any wired triggers with the message if (!GetRoom().AllowsShous(this, message.message)) return; GetRoom().OnUserSay(this, message.message, message.shout); base.OnChat(message); }
internal virtual void Chat(string Message, bool Shout) { InvokedChatMessage message = new InvokedChatMessage(this, Message, Shout); GetRoom().QueueChatMessage(message); }
internal void Chat(GameClient Session, string Message, bool Shout) { if (Session != null) { if (Session.GetHabbo().Rank < 5) { if (GetRoom().RoomMuted) { return; } } } Unidle(); if (!IsBot && GetClient().GetHabbo().Muted) { GetClient().SendNotif("You are muted."); return; } bool Command = false; // Chat command handler. if (Message.StartsWith(":") && Session != null) { Command = ChatCommandHandle.Parse(Session, Message.Substring(1)); #region Logs CMD activity //// Logs cmd activity. //using (DatabaseClient dbClient = PiciEnvironment.GetDatabase().GetClient()) //{ // Message = Message.Substring(1); // string[] FullCommand = Message.Split(' '); // string Command = FullCommand[0].ToString(); // string Params = ""; // if (FullCommand.Length > 1) // { // int Count = 0; // foreach (string Param in FullCommand) // { // if (Count == 0) // { // Count++; // continue; // } // Params += Count++ + "=" + Param + "&"; // } // if (Count > 2) // { // Params = Params.Substring(0, Params.Length - 1); // } // } // Command = PiciEnvironment.FilterInjectionChars(Command); // Params = PiciEnvironment.FilterInjectionChars(Params); // dbClient.ExecuteQuery("INSERT INTO logs_cmd (user_id, cmd, params, ip_address, timestamp) VALUES ('" + Session.GetHabbo().Id + "', '" + Command + "', '" + Params + "', '" + Session.GetConnection().ipAddress + "', '" + (int)PiciEnvironment.GetUnixTimestamp() + "');"); //} #endregion } // Removes input. if (Command == true) { return; } uint rank = 1; Message = LanguageLocale.FilterSwearwords(Message); if (!IsBot && Session != null && Session.GetHabbo() != null) { rank = Session.GetHabbo().Rank; } TimeSpan SinceLastMessage = DateTime.Now - FloodTime; if (SinceLastMessage.Seconds > 4) { FloodCount = 0; } if (SinceLastMessage.Seconds < 4 && FloodCount > 5 && !IsBot && rank < 5) { ServerMessage Packet = new ServerMessage(27); Packet.AppendInt32(30); //Blocked for 30sec GetClient().SendMessage(Packet); return; } FloodTime = DateTime.Now; FloodCount++; if (!IsBot) { PiciEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.SOCIAL_CHAT); } InvokedChatMessage message = new InvokedChatMessage(this, Message, Shout); GetRoom().QueueChatMessage(message); }