Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
File: Kick.cs Progetto: BjkGkh/R106
        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;
        }
Esempio n. 4
0
        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
                }
            }
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
            }
        }