Example #1
0
        /// <summary>
        /// Generates a shout message based on paramter session
        /// </summary>
        /// <param name="Session"></param>
        /// <param name="Speech"></param>
        /// <param name="Bubble"></param>
        public static void Shout(GameClient Session, string Speech, int Bubble = 0)
        {
            Room     Room = null;
            RoomUser User = null;

            if (Speech.StartsWith("*"))
            {
                Speech = "" + Char.ToLowerInvariant(Speech[1]) + Speech.Substring(2);
            }

            if (Session == null || Session.GetHabbo() == null || Session.GetRoleplay() == null || Session.GetRoomUser() == null)
            {
                return;
            }

            Room = Session.GetHabbo().CurrentRoom;
            User = Session.GetRoomUser();

            if (User != null)
            {
                if (User.GetClient() != null && User.GetClient().GetHabbo() != null)
                {
                    if (Room != null)
                    {
                        if (!Room.TutorialEnabled)
                        {
                            User.SendNameColourPacket();
                            User.SendMeCommandPacket();

                            foreach (RoomUser roomUser in Room.GetRoomUserManager().GetRoomUsers())
                            {
                                if (roomUser == null || roomUser.IsBot)
                                {
                                    continue;
                                }

                                if (roomUser.GetClient() == null || roomUser.GetClient().GetConnection() == null)
                                {
                                    continue;
                                }

                                if (User.GetClient().GetRoleplay().Invisible)
                                {
                                    if (User.GetClient().GetHabbo().Username != roomUser.GetClient().GetHabbo().Username&& !roomUser.GetClient().GetRoleplay().Invisible)
                                    {
                                        continue;
                                    }
                                }

                                roomUser.GetClient().SendMessage(new ShoutComposer(User.VirtualId, Speech, 0, Bubble));
                            }
                        }
                        else
                        {
                            User.SendNameColourPacket();
                            User.SendMeCommandPacket();

                            Session.SendMessage(new ShoutComposer(User.VirtualId, Speech, 0, Bubble));
                        }
                    }
                }
                User.SendNamePacket();
            }
        }