private void roomUserManager_OnUserSays(object sender, UserSaysArgs e, out bool messageHandled) { RoomUser userSaying = e.user; string message = e.message; if ((!isOwnerOnly && canBeTriggered(message)) || (isOwnerOnly && userSaying.IsOwner() && canBeTriggered(message))) { // Send whisper to self ServerMessage servermsg = new ServerMessage(); servermsg.Init(Outgoing.Whisp); servermsg.AppendInt32(userSaying.VirtualID); servermsg.AppendString(message); servermsg.AppendInt32(0); servermsg.AppendInt32(0); servermsg.AppendInt32(-1); userSaying.GetClient().SendMessage(servermsg); handler.RequestStackHandle(item.Coordinate, null, userSaying, Games.Team.none); handler.OnEvent(item.Id); messageHandled = true; } else { messageHandled = false; } }
private void roomUserManager_OnUserSays(object sender, UserSaysArgs e, out bool messageHandled) { RoomUser userSaying = e.user; string message = e.message; if ((!isOwnerOnly && canBeTriggered(message)) || (isOwnerOnly && userSaying.IsOwner() && canBeTriggered(message))) { handler.RequestStackHandle(item.Coordinate, null, userSaying, Games.Team.none); handler.OnEvent(item.Id); messageHandled = true; } else { messageHandled = false; } }
public bool Handle(RoomUser user, Team team, RoomItem item) { if (user != null && !user.IsBot && user.GetClient() != null) { if (user.GetClient().GetHabbo().Rank >= 6) // staff can't be kicked return false; if (user.IsOwner()) // can't kick room owner { user.GetClient().SendillustrationMessage("admin.persistent", "WIRED REACTIE: Gebruiker wegsturen", "Je bent uit de kamer gestuurd door de Wired.<br><br><b>" + message + "</b>\r\r<i>De kamer eigenaar zal niet worden weggestuurd!"); return false; } GenericTriggerWithModes.DoAnimation(this.item); user.GetClient().SendillustrationMessage("admin.persistent", user.GetClient().GetHabbo().CurrentRoom.Name, "Je bent uit de kamer gestuurd door de Wired.<br><br><b>" + message); ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(user.RoomId).GetRoomUserManager().RemoveUserFromRoom(user.GetClient(), true, false); handler.OnEvent(this.item.Id); return true; } return false; }
internal void UserRoomTimeCycles(RoomUser roomUsers) { if (!roomUsers.IsAsleep && (roomUsers.IdleTime >= 600) && !roomUsers.IsBot && !roomUsers.IsPet) { roomUsers.IsAsleep = true; ServerMessage sleepEffectMessage = new ServerMessage(LibraryParser.OutgoingRequest("RoomUserIdleMessageComposer")); sleepEffectMessage.AppendInteger(roomUsers.VirtualId); sleepEffectMessage.AppendBool(true); _userRoom.SendMessage(sleepEffectMessage); } if (!roomUsers.IsOwner() && (roomUsers.IdleTime >= 300) && !roomUsers.IsBot && !roomUsers.IsPet) { try { GameClient ownerAchievementMessage = Yupi.GetGame().GetClientManager().GetClientByUserId((uint) _userRoom.RoomData.OwnerId); if (ownerAchievementMessage != null) Yupi.GetGame() .GetAchievementManager() .ProgressUserAchievement(ownerAchievementMessage, "ACH_RoomDecoHosting", 1, true); } catch (Exception) { // ignored } } }
internal void UserRoomTimeCycles(RoomUser RoomUsers) { if ((!RoomUsers.IsAsleep) && (RoomUsers.IdleTime >= 600) && (!RoomUsers.IsBot) && (!RoomUsers.IsPet)) { RoomUsers.IsAsleep = true; ServerMessage SleepEffectMessage = new ServerMessage(LibraryParser.OutgoingRequest("RoomUserIdleMessageComposer")); SleepEffectMessage.AppendInteger(RoomUsers.VirtualId); SleepEffectMessage.AppendBool(true); UserRoom.SendMessage(SleepEffectMessage); SleepEffectMessage = null; } if ((!RoomUsers.IsOwner()) && (RoomUsers.UserTimeInCurrentRoom >= 300) && (!RoomUsers.IsBot) && (!RoomUsers.IsPet)) { GameClient OwnerAchievementMessage = AzureEmulator.GetGame().GetClientManager().GetClientByUserId((uint)UserRoom.RoomData.OwnerId); AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(OwnerAchievementMessage, "ACH_RoomDecoHosting", 1, false); RoomUsers.UserTimeInCurrentRoom = 0; OwnerAchievementMessage = null; } }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id); if (User == null) { return; } if (Room.RpRoom) { RolePlayer Rp = User.Roleplayer; if (Rp != null && Rp.Dead) { return; } } string Message = StringCharFilter.Escape(Packet.PopString()); if (Message.Length > 100) { Message = Message.Substring(0, 100); } int Colour = Packet.PopInt(); ChatStyle Style = null; if (!ButterflyEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().HasFuse(Style.RequiredRight))) { Colour = 0; } User.Unidle(); if (Session.GetHabbo().Rank < 5U && Room.RoomMuted && !User.IsOwner() && !Session.GetHabbo().CurrentRoom.CheckRights(Session)) { User.SendWhisperChat(ButterflyEnvironment.GetLanguageManager().TryGetValue("room.muted", Session.Langue)); return; } if (Room.GetJanken().PlayerStarted(User)) { if (!Room.GetJanken().PickChoix(User, Message)) { User.SendWhisperChat(ButterflyEnvironment.GetLanguageManager().TryGetValue("janken.choice", Session.Langue)); } return; } if (Room.UserIsMuted(Session.GetHabbo().Id)) { if (!Room.HasMuteExpired(Session.GetHabbo().Id)) { User.GetClient().SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("user.muted", Session.Langue)); return; } else { Room.RemoveMute(Session.GetHabbo().Id); } } TimeSpan timeSpan = DateTime.Now - Session.GetHabbo().spamFloodTime; if (timeSpan.TotalSeconds > (double)Session.GetHabbo().spamProtectionTime&& Session.GetHabbo().spamEnable) { User.FloodCount = 0; Session.GetHabbo().spamEnable = false; } else if (timeSpan.TotalSeconds > 4.0) { User.FloodCount = 0; } if (timeSpan.TotalSeconds < (double)Session.GetHabbo().spamProtectionTime&& Session.GetHabbo().spamEnable) { int i = Session.GetHabbo().spamProtectionTime - timeSpan.Seconds; User.GetClient().SendPacket(new FloodControlComposer(i)); return; } else if (timeSpan.TotalSeconds < 4.0 && User.FloodCount > 5 && !Session.GetHabbo().HasFuse("fuse_mod")) { Session.GetHabbo().spamProtectionTime = (Room.RpRoom) ? 5 : 30; Session.GetHabbo().spamEnable = true; User.GetClient().SendPacket(new FloodControlComposer(Session.GetHabbo().spamProtectionTime - timeSpan.Seconds)); return; } else if (Message.Length > 40 && Message == User.LastMessage && User.LastMessageCount == 1) { User.LastMessageCount = 0; User.LastMessage = ""; Session.GetHabbo().spamProtectionTime = (Room.RpRoom) ? 5 : 30; Session.GetHabbo().spamEnable = true; User.GetClient().SendPacket(new FloodControlComposer(Session.GetHabbo().spamProtectionTime - timeSpan.Seconds)); return; } else { if (Message == User.LastMessage && Message.Length > 40) { User.LastMessageCount++; } User.LastMessage = Message; Session.GetHabbo().spamFloodTime = DateTime.Now; User.FloodCount++; if (Session != null) { if (Message.StartsWith("@red@") || Message.StartsWith("@rouge@")) { User.ChatTextColor = "@red@"; } if (Message.StartsWith("@cyan@")) { User.ChatTextColor = "@cyan@"; } if (Message.StartsWith("@blue@") || Message.StartsWith("@bleu@")) { User.ChatTextColor = "@blue@"; } if (Message.StartsWith("@green@") || Message.StartsWith("@vert@")) { User.ChatTextColor = "@green@"; } if (Message.StartsWith("@purple@") || Message.StartsWith("@violet@")) { User.ChatTextColor = "@purple@"; } if (Message.StartsWith("@black@") || Message.StartsWith("@noir@")) { User.ChatTextColor = ""; } } if (Message.StartsWith(":", StringComparison.CurrentCulture) && ButterflyEnvironment.GetGame().GetChatManager().GetCommands().Parse(Session, User, Room, Message)) { Room.GetChatMessageManager().AddMessage(Session.GetHabbo().Id, Session.GetHabbo().Username, Room.Id, string.Format("{0} a utiliser la commande {1}", Session.GetHabbo().Username, Message)); return; } if (Session != null && !User.IsBot) { if (Session.Antipub(Message, "<TCHAT>", Room.Id)) { return; } ButterflyEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT, 0); Session.GetHabbo().GetChatMessageManager().AddMessage(Session.GetHabbo().Id, Session.GetHabbo().Username, Room.Id, Message); Room.GetChatMessageManager().AddMessage(Session.GetHabbo().Id, Session.GetHabbo().Username, Room.Id, Message); if (User.transfbot) { Colour = 2; } } } if (!Session.GetHabbo().HasFuse("word_filter_override")) { Message = ButterflyEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Message); } if (Room.AllowsShous(User, Message)) { User.SendWhisperChat(Message, false); return; } Room.OnUserSay(User, Message, false); if (User.IsSpectator) { return; } if (!string.IsNullOrEmpty(User.ChatTextColor)) { Message = User.ChatTextColor + " " + Message; } User.OnChat(Message, Colour, false); }
private void roomUserManager_OnUserSays(object sender, UserSaysArgs e, ref bool messageHandled) { RoomUser user = e.user; string message = e.message; if (user != null && (!this.isOwnerOnly && this.canBeTriggered(message) && !string.IsNullOrEmpty(message)) || (this.isOwnerOnly && user.IsOwner() && this.canBeTriggered(message) && !string.IsNullOrEmpty(message))) { //user.SendWhisperChat(message.ToString(), false); this.handler.ExecutePile(this.item.Coordinate, user, null); messageHandled = true; } }