Ejemplo n.º 1
0
        public override bool Execute(GameClient session, string[] pms)
        {
            Room room = session.GetHabbo().CurrentRoom;

            using (IQueryAdapter commitableQueryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                commitableQueryReactor.RunFastQuery(
                    $"UPDATE rooms_data SET roomtype = 'public' WHERE id = {room.RoomId}");

            uint roomId = session.GetHabbo().CurrentRoom.RoomId;
            List<RoomUser> users = new List<RoomUser>(session.GetHabbo().CurrentRoom.GetRoomUserManager().UserList.Values);

            Yupi.GetGame().GetRoomManager().UnloadRoom(session.GetHabbo().CurrentRoom, "Unload command");

            Yupi.GetGame().GetRoomManager().LoadRoom(roomId);

            ServerMessage roomFwd = new ServerMessage(LibraryParser.OutgoingRequest("RoomForwardMessageComposer"));
            roomFwd.AppendInteger(roomId);

            byte[] data = roomFwd.GetReversedBytes();

            foreach (RoomUser user in users.Where(user => user != null && user.GetClient() != null))
                user.GetClient().SendMessage(data);

            return true;
        }
Ejemplo n.º 2
0
Archivo: Unload.cs Proyecto: sgf/Yupi
        public override bool Execute(GameClient session, string[] pms)
        {
            uint roomId = session.GetHabbo().CurrentRoom.RoomId;
            List<RoomUser> users = new List<RoomUser>(session.GetHabbo().CurrentRoom.GetRoomUserManager().UserList.Values);

            Yupi.GetGame().GetRoomManager().UnloadRoom(session.GetHabbo().CurrentRoom, "Unload command");

            if (!_reEnter)
                return true;
            Yupi.GetGame().GetRoomManager().LoadRoom(roomId);

            ServerMessage roomFwd = new ServerMessage(LibraryParser.OutgoingRequest("RoomForwardMessageComposer"));
            roomFwd.AppendInteger(roomId);

            byte[] data = roomFwd.GetReversedBytes();

            foreach (RoomUser user in users.Where(user => user != null && user.GetClient() != null))
                user.GetClient().SendMessage(data);
            return true;
        }
Ejemplo n.º 3
0
        public override bool Execute(GameClient session, string[] pms)
        {
            Room room = session.GetHabbo().CurrentRoom;

            RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(pms[0]);
            if (user == null)
            {
                session.SendWhisper(Yupi.GetLanguage().GetVar("user_not_found"));
                return true;
            }

            string gender = user.GetClient().GetHabbo().Gender;
            string look = user.GetClient().GetHabbo().Look;
            session.GetHabbo().Gender = gender;
            session.GetHabbo().Look = look;
            using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                adapter.SetQuery(
                    "UPDATE users SET gender = @gender, look = @look WHERE id = " + session.GetHabbo().Id);
                adapter.AddParameter("gender", gender);
                adapter.AddParameter("look", look);
                adapter.RunQuery();
            }

            RoomUser myUser = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().UserName);
            if (myUser == null) return true;

            ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
            message.AppendInteger(myUser.VirtualId);
            message.AppendString(session.GetHabbo().Look);
            message.AppendString(session.GetHabbo().Gender.ToLower());
            message.AppendString(session.GetHabbo().Motto);
            message.AppendInteger(session.GetHabbo().AchievementPoints);
            room.SendMessage(message.GetReversedBytes());

            return true;
        }
Ejemplo n.º 4
0
 /// <summary>
 ///     Queues the broadcase message.
 /// </summary>
 /// <param name="message">The message.</param>
 internal void QueueBroadcaseMessage(ServerMessage message)
 {
     _broadcastQueue.Enqueue(message.GetReversedBytes());
 }
Ejemplo n.º 5
0
        /// <summary>
        ///     Mods the alert.
        /// </summary>
        /// <param name="message">The message.</param>
        internal void ModAlert(ServerMessage message)
        {
            byte[] bytes = message.GetReversedBytes();

            foreach (
                GameClient current in
                    Clients.Values.Where(current => current?.GetHabbo() != null)
                        .Where(
                            current =>
                                current.GetHabbo().Rank == 4u || current.GetHabbo().Rank == 5u ||
                                current.GetHabbo().Rank == 6u))
                current.GetConnection().SendData(bytes);
        }
Ejemplo n.º 6
0
        /// <summary>
        ///     Sends the message.
        /// </summary>
        /// <param name="message">The message.</param>
        internal void SendMessage(ServerMessage message)
        {
            if (message == null)
                return;

            if (GetConnection() == null)
                return;

            byte[] bytes = message.GetReversedBytes();

            GetConnection().SendData(bytes);
        }
Ejemplo n.º 7
0
        /// <summary>
        ///     Gets the bytes notif.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="title">The title.</param>
        /// <param name="picture">The picture.</param>
        /// <returns>System.Byte[].</returns>
        public static byte[] GetBytesNotif(string message, string title = "Aviso", string picture = "")
        {
            using (
                ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SuperNotificationMessageComposer"))
                )
            {
                serverMessage.AppendString(picture);
                serverMessage.AppendInteger(4);
                serverMessage.AppendString("title");
                serverMessage.AppendString(title);
                serverMessage.AppendString("message");
                serverMessage.AppendString(message);
                serverMessage.AppendString("linkUrl");
                serverMessage.AppendString("event:");
                serverMessage.AppendString("linkTitle");
                serverMessage.AppendString("ok");

                return serverMessage.GetReversedBytes();
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 ///     Appends the response.
 /// </summary>
 /// <param name="message">The message.</param>
 internal void AppendResponse(ServerMessage message)
 {
     AppendBytes(message.GetReversedBytes());
 }
Ejemplo n.º 9
0
        /// <summary>
        ///     Sends the message to users with rights.
        /// </summary>
        /// <param name="message">The message.</param>
        internal void SendMessageToUsersWithRights(ServerMessage message)
        {
            byte[] messagebytes = message.GetReversedBytes();

            try
            {
                foreach (RoomUser unit in _roomUserManager.UserList.Values)
                {
                    RoomUser user = unit;
                    if (user == null)
                        continue;

                    if (user.IsBot)
                        continue;

                    GameClient usersClient = user.GetClient();
                    if (usersClient == null || usersClient.GetConnection() == null)
                        continue;

                    if (!CheckRights(usersClient))
                        continue;

                    usersClient.GetConnection().SendData(messagebytes);
                }
            }
            catch (Exception e)
            {
                ServerLogManager.LogException(e, "Yupi.Game.Rooms.Room.SendMessageToUsersWithRights");
            }
        }
Ejemplo n.º 10
0
 /// <summary>
 ///     Sends the message.
 /// </summary>
 /// <param name="message">The message.</param>
 internal void SendMessage(ServerMessage message)
 {
     if (message != null)
         SendMessage(message.GetReversedBytes());
 }
Ejemplo n.º 11
0
        /// <summary>
        ///     Broadcasts the chat message.
        /// </summary>
        /// <param name="chatMsg">The chat MSG.</param>
        /// <param name="roomUser">The room user.</param>
        /// <param name="p">The p.</param>
        internal void BroadcastChatMessage(ServerMessage chatMsg, RoomUser roomUser, uint p)
        {
            try
            {
                byte[] packetData = chatMsg.GetReversedBytes();

                foreach (RoomUser user in _roomUserManager.UserList.Values)
                {
                    if (user.IsBot || user.IsPet)
                        continue;

                    GameClient usersClient = user.GetClient();
                    if (usersClient == null || roomUser == null || usersClient.GetHabbo() == null)
                        continue;

                    try
                    {
                        if (user.OnCampingTent || !roomUser.OnCampingTent)
                        {
                            if (!usersClient.GetHabbo().MutedUsers.Contains(p))
                                usersClient.SendMessage(packetData);
                        }
                    }
                    catch (Exception e)
                    {
                        ServerLogManager.LogException(e, "Yupi.Game.Rooms.Room.SendMessageToUsersWithRights");
                    }
                }
            }
            catch (Exception e)
            {
                ServerLogManager.LogException(e, "Yupi.Game.Rooms.Room.SendMessageToUsersWithRights");
            }
        }
Ejemplo n.º 12
0
 /// <summary>
 ///     Appends the response.
 /// </summary>
 /// <param name="message">The message.</param>
 internal void AppendResponse(ServerMessage message)
 {
     AppendBytes(message.GetReversedBytes());
 }