コード例 #1
0
        internal static void Save()
        {
            if (!enabled)
            {
                return;
            }

            lock (loggedMessages.SyncRoot)
            {
                int totalMessages = loggedMessages.Count;

                if (loggedMessages.Count > 0)
                {
                    DatabaseManager dbManager = new DatabaseManager(300, 5, 1, DatabaseType.MySQL);
                    //To-do: Init dbManager from configuration file

                    using (IQueryAdapter dbClient = dbManager.getQueryreactor())
                    {
                        while (loggedMessages.Count > 0)
                        {
                            Message message = (Message)loggedMessages.Dequeue();

                            dbClient.setQuery("INSERT INTO system_packetlog (connectionid, timestamp, data) VALUES @connectionid @timestamp, @data");
                            dbClient.addParameter("connectionid", message.ConnectionID);
                            dbClient.addParameter("timestamp", message.GetTimestamp);
                            dbClient.addParameter("data", message.GetData);

                            dbClient.runQuery();
                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: WiredUtillity.cs プロジェクト: BjkGkh/Custom-R2
 internal static void SaveTrigger(IQueryAdapter dbClient, int itemID, int triggetItemID)
 {
     dbClient.setQuery("INSERT INTO trigger_in_place (original_trigger,triggers_item) VALUES (@my_id,@trigger_item)");
     dbClient.addParameter("my_id", itemID);
     dbClient.addParameter("trigger_item", triggetItemID);
     dbClient.runQuery();
 }
コード例 #3
0
        internal void AddOrExtendSubscription(GameClient Session, string SubscriptionId, int DurationSeconds, uint Cost, int MonthProgress)
        {
            SubscriptionId = SubscriptionId.ToLower();

            var clientByUserId = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(UserID);

            if (clubSubscriptions.ContainsKey(SubscriptionId))
            {
                Club Club = clubSubscriptions[SubscriptionId];

                if (Club.IsValid)
                {
                    Club.ExtendSubscription(DurationSeconds);
                }

                else
                {
                    Club.SetEndTime(OtanixEnvironment.GetUnixTimestamp() + DurationSeconds);
                }

                using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.runFastQuery("UPDATE user_subscriptions SET timestamp_expire = timestamp_expire + " + DurationSeconds + " WHERE user_id = " + UserID + " AND subscription_id = '" + Club.SubscriptionId + "'");
                }
                OtanixEnvironment.GetGame().GetAchievementManager().TryProgressHabboClubAchievements(clientByUserId, MonthProgress);
            }

            else
            {
                int TimestampActivated = OtanixEnvironment.GetUnixTimestamp();
                int TimestampExpire    = OtanixEnvironment.GetUnixTimestamp() + DurationSeconds;

                using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("INSERT INTO user_subscriptions (subscription_id, user_id, timestamp_activated, timestamp_expire) VALUES (@subscription_id, @user_id, @timestamp_activated, @timestamp_expire)");
                    dbClient.addParameter("user_id", UserID);
                    dbClient.addParameter("subscription_id", SubscriptionId);
                    dbClient.addParameter("timestamp_activated", TimestampActivated);
                    dbClient.addParameter("timestamp_expire", TimestampExpire);
                    dbClient.runQuery();

                    dbClient.runFastQuery("UPDATE users SET spent_credits = spent_credits + " + Cost + " WHERE id = " + Session.GetHabbo().Id);
                }

                clubSubscriptions.Add(SubscriptionId, new Club(SubscriptionId, TimestampActivated, TimestampExpire, false));

                Session.GetHabbo().SpentCredits += Cost;

                var fuse = new ServerMessage(Outgoing.Fuserights);
                fuse.AppendInt32(Session.GetHabbo().GetClubManager().UserHasSubscription("club_habbo") ? 2 : 1); // normal|hc|vip
                fuse.AppendUInt(Session.GetHabbo().Rank);
                fuse.AppendBoolean(Session.GetHabbo().HasFuse("fuse_ambassador"));                               // embajador ?
                // fuserights.AppendInt32(0); // New Identity (1 == 1 min and Alert!)
                Session.SendMessage(fuse);

                OtanixEnvironment.GetGame().GetAchievementManager().TryProgressHabboClubAchievements(clientByUserId, MonthProgress);
            }
            Session.GetHabbo().UpdateHabboClubStatus();
            Session.GetMessageHandler().ClubCenterData();
        }
コード例 #4
0
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            WiredUtillity.SaveTriggerItem(dbClient, (int)itemID, "integer", string.Empty, delay.ToString(), false);

            if (dbClient.dbType == Pici.Storage.Database.DatabaseType.MSSQL)
            {
                dbClient.runFastQuery("DELETE FROM trigger_rotation WHERE item_id = " + itemID);
                dbClient.setQuery("INSERT INTO trigger_rotation(item_id,rotation_status,movement_status) VALUES (@id,@rot_id,@mov_id)");
            }
            else
            {
                dbClient.setQuery("REPLACE INTO trigger_rotation SET item_id = @id, rotation_status = @rot_id,  movement_status = @mov_id");
            }
            dbClient.addParameter("id", (int)itemID);
            dbClient.addParameter("rot_id", (int)this.rotation);
            dbClient.addParameter("mov_id", (int)this.movement);
            dbClient.runQuery();

            lock (items)
            {
                dbClient.runFastQuery("DELETE FROM trigger_in_place WHERE original_trigger = '" + this.itemID + "'");
                foreach (RoomItem i in items)
                {
                    WiredUtillity.SaveTrigger(dbClient, (int)itemID, (int)i.Id);
                }
            }
        }
コード例 #5
0
 public void OnPlace(GameClient Session, RoomItem Item)
 {
     checked
     {
         Item.GetRoom().GetRoomItemHandler().HopperCount++;
         using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
         {
             queryreactor.setQuery("INSERT INTO items_hopper (hopper_id, room_id) VALUES (@hopperid, @roomid);");
             queryreactor.addParameter("hopperid", Item.Id);
             queryreactor.addParameter("roomid", Item.RoomId);
             queryreactor.runQuery();
         }
         if (Item.InteractingUser != 0u)
         {
             RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser);
             if (roomUserByHabbo != null)
             {
                 roomUserByHabbo.ClearMovement(true);
                 roomUserByHabbo.AllowOverride = false;
                 roomUserByHabbo.CanWalk       = true;
             }
             Item.InteractingUser = 0u;
         }
     }
 }
コード例 #6
0
ファイル: WiredUtillity.cs プロジェクト: TheNaked/Firewind
 internal static void SaveTrigger(IQueryAdapter dbClient, int itemID, int triggetItemID)
 {
     dbClient.setQuery("INSERT INTO trigger_in_place (original_trigger,triggers_item) VALUES (@my_id,@trigger_item)");
     dbClient.addParameter("my_id", itemID);
     dbClient.addParameter("trigger_item", triggetItemID);
     dbClient.runQuery();
 }
コード例 #7
0
        internal static UserData GetUserData(int UserId)
        {
            DataRow   dataRow;
            uint      num;
            DataRow   row;
            DataTable table;

            using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                queryreactor.setQuery("SELECT users.* FROM users WHERE users.id = @id");
                queryreactor.addParameter("id", UserId);
                dataRow = queryreactor.getRow();
                CyberEnvironment.GetGame().GetClientManager().LogClonesOut(Convert.ToUInt32(UserId));
                if (dataRow == null)
                {
                    UserData result = null;
                    return(result);
                }
                num = Convert.ToUInt32(dataRow["id"]);
                if (CyberEnvironment.GetGame().GetClientManager().GetClientByUserID(num) != null)
                {
                    UserData result = null;
                    return(result);
                }
                queryreactor.setQuery("SELECT group_id,rank FROM group_memberships WHERE user_id=" + UserId);
                queryreactor.getTable();
                queryreactor.setQuery("SELECT * FROM user_stats WHERE id=" + num + " LIMIT 1");
                row = queryreactor.getRow();
                queryreactor.setQuery("SELECT * FROM user_relationships WHERE user_id=@id");
                queryreactor.addParameter("id", num);
                table = queryreactor.getTable();
            }
            Dictionary <string, UserAchievement> achievements = new Dictionary <string, UserAchievement>();
            Dictionary <int, UserTalent>         talents      = new Dictionary <int, UserTalent>();
            List <uint>         favouritedRooms          = new List <uint>();
            List <uint>         ignores                  = new List <uint>();
            List <string>       tags                     = new List <string>();
            List <Badge>        badges                   = new List <Badge>();
            List <UserItem>     inventory                = new List <UserItem>();
            List <AvatarEffect> effects                  = new List <AvatarEffect>();
            Dictionary <uint, MessengerBuddy>   friends  = new Dictionary <uint, MessengerBuddy>();
            Dictionary <uint, MessengerRequest> requests = new Dictionary <uint, MessengerRequest>();
            HashSet <RoomData>             rooms         = new HashSet <RoomData>();
            Dictionary <uint, Pet>         pets          = new Dictionary <uint, Pet>();
            Dictionary <uint, int>         quests        = new Dictionary <uint, int>();
            Dictionary <uint, RoomBot>     bots          = new Dictionary <uint, RoomBot>();
            HashSet <GroupUser>            group         = new HashSet <GroupUser>();
            HashSet <uint>                 pollData      = new HashSet <uint>();
            Dictionary <int, Relationship> dictionary    = new Dictionary <int, Relationship>();

            foreach (DataRow dataRow2 in table.Rows)
            {
                dictionary.Add((int)dataRow2[0], new Relationship((int)dataRow2[0], (int)dataRow2[2], Convert.ToInt32(dataRow2[3].ToString())));
            }
            Habbo user = HabboFactory.GenerateHabbo(dataRow, row, group);

            dataRow = null;

            return(new UserData(num, achievements, talents, favouritedRooms, ignores, tags, null, badges, inventory, effects, friends, requests, rooms, pets, quests, user, bots, dictionary, pollData, 0));
        }
コード例 #8
0
        internal static void Save()
        {
            if (!enabled)
            {
                return;
            }

            lock (loggedMessages.SyncRoot)
            {
                int totalMessages = loggedMessages.Count;

                if (loggedMessages.Count > 0)
                {
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        while (loggedMessages.Count > 0)
                        {
                            Message message = (Message)loggedMessages.Dequeue();

                            dbClient.setQuery("INSERT INTO system_packetlog (connectionid, timestamp, data) VALUES @connectionid @timestamp, @data");
                            dbClient.addParameter("connectionid", message.ConnectionID);
                            dbClient.addParameter("timestamp", message.GetTimestamp);
                            dbClient.addParameter("data", message.GetData);

                            dbClient.runQuery();
                        }
                    }
                }
            }
        }
コード例 #9
0
ファイル: ModerationTool.cs プロジェクト: TheNaked/Firewind
        internal void SendNewTicket(GameClient Session, int Category, uint ReportedUser, String Message)
        {
            if (Session.GetHabbo().CurrentRoomId <= 0)
            {
                return;
            }

            RoomData Data = FirewindEnvironment.GetGame().GetRoomManager().GenerateNullableRoomData(Session.GetHabbo().CurrentRoomId);

            uint TicketId = 0;

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("INSERT INTO moderation_tickets (score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp) VALUES (1,'" + Category + "','open','" + Session.GetHabbo().Id + "','" + ReportedUser + "','0',@message,'" + Data.Id + "',@name,'" + FirewindEnvironment.GetUnixTimestamp() + "')");
                dbClient.addParameter("message", Message);
                dbClient.addParameter("name", Data.Name);
                TicketId = (uint)dbClient.insertQuery();

                dbClient.runFastQuery("UPDATE user_info SET cfhs = cfhs + 1 WHERE user_id = " + Session.GetHabbo().Id + "");

                //dbClient.setQuery("SELECT id FROM moderation_tickets WHERE sender_id = " + Session.GetHabbo().Id + " ORDER BY id DESC LIMIT 1");
                //TicketId = (uint)dbClient.getRow()[0];
            }

            SupportTicket Ticket = new SupportTicket(TicketId, 1, Category, Session.GetHabbo().Id, ReportedUser, Message, Data.Id, Data.Name, FirewindEnvironment.GetUnixTimestamp());

            Tickets.Add(Ticket);

            SendTicketToModerators(Ticket);
        }
コード例 #10
0
 internal static void Save()
 {
     if (!MessageLoggerManager.enabled)
     {
         return;
     }
     lock (MessageLoggerManager.loggedMessages.SyncRoot)
     {
         int arg_28_0 = MessageLoggerManager.loggedMessages.Count;
         if (MessageLoggerManager.loggedMessages.Count > 0)
         {
             DatabaseManager databaseManager = new DatabaseManager(1u, 1u);
             using (IQueryAdapter queryreactor = databaseManager.getQueryreactor())
             {
                 while (MessageLoggerManager.loggedMessages.Count > 0)
                 {
                     Message message = (Message)MessageLoggerManager.loggedMessages.Dequeue();
                     queryreactor.setQuery("INSERT INTO system_packetlog (connectionid, timestamp, data) VALUES @connectionid @timestamp, @data");
                     queryreactor.addParameter("connectionid", message.ConnectionID);
                     queryreactor.addParameter("timestamp", message.GetTimestamp);
                     queryreactor.addParameter("data", message.GetData);
                     queryreactor.runQuery();
                 }
             }
         }
     }
 }
コード例 #11
0
ファイル: Navigator.cs プロジェクト: TheNaked/Firewind
        internal ServerMessage SerializeSearchResults(string SearchQuery)
        {
            bool      OwnerOnly = SearchQuery.StartsWith("owner:");
            DataTable Data      = new DataTable();

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (SearchQuery.Length > 0)
                {
                    if (OwnerOnly) // search for owner
                    {
                        dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = @query " +
                                          "UNION ALL " +
                                          "SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE caption = @query " +
                                          "ORDER BY active_users DESC LIMIT 50");
                    }

                    dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = @query " +
                                      "UNION ALL " +
                                      "SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE caption = @query " +
                                      "ORDER BY active_users DESC LIMIT 50");
                    if (OwnerOnly)
                    {
                        dbClient.addParameter("query", SearchQuery.Substring(SearchQuery.IndexOf(':') + 1));
                    }
                    else
                    {
                        dbClient.addParameter("query", SearchQuery);
                    }
                    Data = dbClient.getTable();
                }
            }

            List <RoomData> Results = new List <RoomData>();

            if (Data != null)
            {
                foreach (DataRow Row in Data.Rows)
                {
                    RoomData RData = FirewindEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToUInt32(Row["id"]), Row);
                    Results.Add(RData);
                }
            }

            ServerMessage Message = new ServerMessage(Outgoing.NavigatorPacket);

            Message.AppendInt32(8);
            Message.AppendString(SearchQuery);
            Message.AppendInt32(Results.Count);

            int i = 0;

            foreach (RoomData Room in Results)
            {
                Room.Serialize(Message, false);
            }
            Message.AppendBoolean(false);
            return(Message);
        }
コード例 #12
0
        internal void SendNewTicket(GameClient Session, int Category, uint ReportedUser, string Message, int type, List <string> Messages)
        {
            UInt32 Id = 0;

            if (Session.GetHabbo().CurrentRoomId <= 0)
            {
                using (IQueryAdapter DBClient = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                {
                    DBClient.setQuery(string.Concat(new object[]
                    {
                        "INSERT INTO moderation_tickets (score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp) VALUES (1,'",
                        Category,
                        "','open','",
                        Session.GetHabbo().Id,
                        "','",
                        ReportedUser,
                        "','0',@message,'0','','",
                        CyberEnvironment.GetUnixTimestamp(),
                        "')"
                    }));
                    DBClient.addParameter("message", Message);
                    Id = (uint)DBClient.insertQuery();
                    DBClient.runFastQuery("UPDATE user_info SET cfhs = cfhs + 1 WHERE user_id = " + Session.GetHabbo().Id);
                }

                SupportTicket Ticket = new SupportTicket(Id, 1, type, Session.GetHabbo().Id, ReportedUser, Message, 0u, "", (double)CyberEnvironment.GetUnixTimestamp(), Messages);
                this.Tickets.Add(Ticket);
                ModerationTool.SendTicketToModerators(Ticket);
                return;
            }

            RoomData Data = CyberEnvironment.GetGame().GetRoomManager().GenerateNullableRoomData(Session.GetHabbo().CurrentRoomId);

            using (IQueryAdapter DBClient = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                DBClient.setQuery(string.Concat(new object[]
                {
                    "INSERT INTO moderation_tickets (score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp) VALUES (1,'",
                    Category,
                    "','open','",
                    Session.GetHabbo().Id,
                    "','",
                    ReportedUser,
                    "','0',@message,'",
                    Data.Id,
                    "',@name,'",
                    CyberEnvironment.GetUnixTimestamp(),
                    "')"
                }));
                DBClient.addParameter("message", Message);
                DBClient.addParameter("name", Data.Name);
                Id = (uint)DBClient.insertQuery();
                DBClient.runFastQuery("UPDATE user_info SET cfhs = cfhs + 1 WHERE user_id = " + Session.GetHabbo().Id);
            }
            SupportTicket Ticket2 = new SupportTicket(Id, 1, type, Session.GetHabbo().Id, ReportedUser, Message, 0u, "", (double)CyberEnvironment.GetUnixTimestamp(), Messages);

            this.Tickets.Add(Ticket2);
            ModerationTool.SendTicketToModerators(Ticket2);
        }
コード例 #13
0
ファイル: OfflineMessage.cs プロジェクト: BjkGkh/Mercury
		internal static void SaveMessage(IQueryAdapter dbClient, uint ToId, uint FromId, string Message)
		{
			dbClient.setQuery("INSERT INTO messenger_offline_messages (to_id, from_id, message, timestamp) VALUES (@tid, @fid, @msg, UNIX_TIMESTAMP())");
			dbClient.addParameter("tid", ToId);
			dbClient.addParameter("fid", FromId);
			dbClient.addParameter("msg", Message);
			dbClient.runQuery();
		}
コード例 #14
0
ファイル: LessThanTimer.cs プロジェクト: TheNaked/Firewind
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");

            dbClient.addParameter("id", (int)this.item.Id);
            dbClient.addParameter("trigger_data", timeout);
            dbClient.runQuery();
        }
コード例 #15
0
ファイル: MoreThanTimer.cs プロジェクト: TheNaked/Firewind
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");

            dbClient.addParameter("id", (int)this.item.Id);
            dbClient.addParameter("trigger_data", timeout);
            dbClient.runQuery();
        }
コード例 #16
0
 internal static void SaveMessage(IQueryAdapter dbClient, uint ToId, uint FromId, string Message)
 {
     dbClient.setQuery("INSERT INTO messenger_offline_messages (to_id, from_id, message, timestamp) VALUES (@tid, @fid, @msg, UNIX_TIMESTAMP())");
     dbClient.addParameter("tid", ToId);
     dbClient.addParameter("fid", FromId);
     dbClient.addParameter("msg", Message);
     dbClient.runQuery();
 }
コード例 #17
0
        internal void DeliverBalloonRandomItem(RoomUser User, Room Room, RoomItem Item)
        {
            if (!Piñatas.ContainsKey(Item.GetBaseItem().ItemId))
            {
                return;
            }

            PiñataItem piñata;

            Piñatas.TryGetValue(Item.GetBaseItem().ItemId, out piñata);
            if (piñata == null)
            {
                return;
            }

            // backup de las variables:
            int X = Item.GetX, Y = Item.GetY;

            // Borramos la piñata.
            Item.ExtraData = "1";
            Item.UpdateState();
            Room.GetRoomItemHandler().RemoveFurniture(User.GetClient(), Item);

            uint itemID = EmuSettings.FIRST_BALLOON_PRESENT_ID + (uint)(new Random().Next(0, (int)(EmuSettings.LAST_BALLOON_PRESENT_ID - EmuSettings.FIRST_BALLOON_PRESENT_ID)));

            uint randomId = piñata.rewards[new Random().Next(0, piñata.rewards.Count - 1)];
            Item rareItem = OtanixEnvironment.GetGame().GetItemManager().GetItem(randomId);

            if (rareItem == null)
            {
                return;
            }

            Item.BaseItem  = itemID;
            Item.ExtraData = Item.OwnerId + ";0;" + Furnidata.GetPublicNameByItemName(rareItem.Name);
            Item.SetState(X, Y);

            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("UPDATE items SET base_id = '" + itemID + "' WHERE item_id = " + Item.Id);

                dbClient.setQuery("UPDATE items_extradata SET data = @extradata WHERE item_id = " + Item.Id);
                dbClient.addParameter("extradata", rareItem.Name);
                dbClient.runQuery();

                dbClient.setQuery("INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES (" + Item.Id + "," + randomId + "," + 1 + ",@extra_data)");
                dbClient.addParameter("extra_data", "");
                dbClient.runQuery();
            }

            if (!Room.GetRoomItemHandler().SetFloorItem(User.GetClient(), Item, Item.GetX, Item.GetY, Item.Rot, true, false, true, false, true))
            {
                User.GetClient().SendNotif("Ha ocurrido un error al crear la piñata!");
                return;
            }
        }
コード例 #18
0
        internal void CreateGroup(string Name, string Desc, uint RoomId, string Badge, GameClient Session, int Colour1, int Colour2, out Guild Group)
        {
            using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                queryreactor.setQuery(string.Concat(new object[]
                {
                    "INSERT INTO groups (`name`, `desc`,`badge`,`owner_id`,`created`,`room_id`,`colour1`,`colour2`) VALUES(@name, @desc, @badge, ",
                    Session.GetHabbo().Id,
                    ", UNIX_TIMESTAMP(), ",
                    RoomId,
                    ",'",
                    Colour1,
                    "','",
                    Colour2,
                    "')"
                }));
                queryreactor.addParameter("name", Name);
                queryreactor.addParameter("desc", Desc);
                queryreactor.addParameter("badge", Badge);
                uint num = checked ((uint)queryreactor.insertQuery());
                queryreactor.runFastQuery(string.Concat(new object[]
                {
                    "UPDATE rooms SET group_id=",
                    num,
                    " WHERE id=",
                    RoomId,
                    " LIMIT 1"
                }));
                Dictionary <uint, GroupUser> dictionary = new Dictionary <uint, GroupUser>();
                dictionary.Add(Session.GetHabbo().Id, new GroupUser(Session.GetHabbo().Id, num, 2));
                this.Groups.Add(num, new Guild(num, Name, Desc, RoomId, Badge, CyberEnvironment.GetUnixTimestamp(), Session.GetHabbo().Id, Colour1, Colour2, dictionary, new List <uint>(), new Dictionary <uint, GroupUser>(), 0u, 1u, false, Name, Desc, 0, 0.0, 0, "", 0));

                queryreactor.runFastQuery(string.Concat(new object[]
                {
                    "INSERT INTO group_memberships (group_id, user_id, rank) VALUES (",
                    num,
                    ", ",
                    Session.GetHabbo().Id,
                    ", '2')"
                }));
                Group = this.GetGroup(num);
                GroupUser User = new GroupUser(Session.GetHabbo().Id, num, 2);
                Session.GetHabbo().UserGroups.Add(User);
                Group.Admins.Add(Session.GetHabbo().Id, User);
                queryreactor.runFastQuery(string.Concat(new object[]
                {
                    "UPDATE user_stats SET favourite_group=",
                    num,
                    " WHERE id= ",
                    Session.GetHabbo().Id,
                    " LIMIT 1"
                }));
                queryreactor.runFastQuery("DELETE FROM room_rights WHERE room_id=" + RoomId);
            }
        }
コード例 #19
0
 internal void Save(uint RoomId)
 {
     using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
     {
         queryreactor.setQuery("REPLACE INTO chatlogs (user_id, room_id, timestamp, message) VALUES (@user, @room, @time, @message)");
         queryreactor.addParameter("user", this.UserId);
         queryreactor.addParameter("room", RoomId);
         queryreactor.addParameter("time", this.Timestamp);
         queryreactor.addParameter("message", this.Message);
         queryreactor.runQuery();
     }
 }
コード例 #20
0
ファイル: ModerationTool.cs プロジェクト: TheNaked/Firewind
 internal void LogStaffEntry(string modName, string target, string type, string description)
 {
     using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
     {
         dbClient.setQuery("INSERT INTO staff_logs (staffuser,target,action_type,description) VALUES (@username,@target,@type,@desc)");
         dbClient.addParameter("username", modName);
         dbClient.addParameter("target", target);
         dbClient.addParameter("type", type);
         dbClient.addParameter("desc", description);
         dbClient.runQuery();
     }
 }
コード例 #21
0
        internal ServerMessage SerializeSearchResults(string SearchQuery)
        {
            DataTable dataTable = new DataTable();

            using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                if (SearchQuery.Length > 0)
                {
                    if (SearchQuery.ToLower().StartsWith("owner:"))
                    {
                        queryreactor.setQuery("SELECT * FROM rooms WHERE owner = @query AND roomtype = 'private' ORDER BY users_now DESC LIMIT 50");
                        queryreactor.addParameter("query", SearchQuery.Remove(0, 6));
                    }
                    else if (SearchQuery.ToLower().StartsWith("roomname:"))
                    {
                        queryreactor.setQuery("SELECT * FROM rooms WHERE caption LIKE @query AND roomtype = 'private' ORDER BY users_now DESC LIMIT 50");
                        queryreactor.addParameter("query", SearchQuery.Remove(0, 9));
                    }
                    else if (SearchQuery.ToLower().StartsWith("tag:"))
                    {
                        queryreactor.setQuery("SELECT * FROM rooms WHERE tags LIKE @query AND roomtype = 'private' ORDER BY users_now DESC LIMIT 50");
                        queryreactor.addParameter("query", "%" + SearchQuery.Remove(0, 4) + "%");
                    }
                    else
                    {
                        queryreactor.setQuery("SELECT * FROM rooms WHERE caption LIKE @query OR owner LIKE @query AND roomtype = 'private' ORDER BY users_now DESC LIMIT 50");
                        queryreactor.addParameter("query", "%" + SearchQuery + "%");
                    }
                    dataTable = queryreactor.getTable();
                }
            }
            List <RoomData> list = new List <RoomData>();

            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    RoomData item = CyberEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToUInt32(dataRow["id"]), dataRow);
                    list.Add(item);
                }
            }
            ServerMessage serverMessage = new ServerMessage(Outgoing.NavigatorListingsMessageComposer);

            serverMessage.AppendInt32(8);
            serverMessage.AppendString(SearchQuery);
            serverMessage.AppendInt32(list.Count);
            foreach (RoomData current in list)
            {
                current.Serialize(serverMessage, false);
            }
            serverMessage.AppendBoolean(false);
            return(serverMessage);
        }
コード例 #22
0
ファイル: WiredUtillity.cs プロジェクト: BjkGkh/Custom-R2
        internal static void SaveTriggerItem(IQueryAdapter dbClient, int triggerID, string triggerInput, string triggerData2, string triggerData, bool allUsertriggerable)
        {
            dbClient.runFastQuery("DELETE FROM trigger_item WHERE trigger_id = " + triggerID);
            dbClient.setQuery("INSERT INTO trigger_item (trigger_id,trigger_input,trigger_data,trigger_data_2,all_user_triggerable) VALUES (@id,@triggerinput,@trigger_data,@trigger_data_2,@triggerable)");

            dbClient.addParameter("id", triggerID);
            dbClient.addParameter("triggerinput", triggerInput);
            dbClient.addParameter("trigger_data", triggerData);
            dbClient.addParameter("trigger_data_2", triggerData2);
            dbClient.addParameter("triggerable", allUsertriggerable ? 1 : 0);

            dbClient.runQuery();
        }
コード例 #23
0
ファイル: WiredUtillity.cs プロジェクト: TheNaked/Firewind
        internal static void SaveTriggerItem(IQueryAdapter dbClient, int triggerID, string triggerInput, string triggerData2, string triggerData, bool allUsertriggerable)
        {
            dbClient.runFastQuery("DELETE FROM trigger_item WHERE trigger_id = " + triggerID);
            dbClient.setQuery("INSERT INTO trigger_item (trigger_id,trigger_input,trigger_data,trigger_data_2,all_user_triggerable) VALUES (@id,@triggerinput,@trigger_data,@trigger_data_2,@triggerable)");

            dbClient.addParameter("id", triggerID);
            dbClient.addParameter("triggerinput", triggerInput);
            dbClient.addParameter("trigger_data", triggerData);
            dbClient.addParameter("trigger_data_2", triggerData2);
            dbClient.addParameter("triggerable", allUsertriggerable ? 1 : 0);

            dbClient.runQuery();
        }
コード例 #24
0
        internal RoomData CreateRoom(GameClient Session, string Name, string Model)
        {
            Name = PiciEnvironment.FilterInjectionChars(Name);

            if (!roomModels.ContainsKey(Model))
            {
                Session.SendNotif(LanguageLocale.GetValue("room.modelmissing"));
                return(null);
            }

            Console.WriteLine("ClubOnly: " + ((RoomModel)roomModels[Model]).ClubOnly + "");

            if (((RoomModel)roomModels[Model]).ClubOnly == 1 && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_vip"))
            {
                Session.SendNotif(LanguageLocale.GetValue("room.missingclub"));
                return(null);
            }

            if (Name.Length < 3)
            {
                Session.SendNotif(LanguageLocale.GetValue("room.namelengthshort"));
                return(null);
            }

            UInt32 RoomId = 0;

            using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (dbClient.dbType == DatabaseType.MSSQL)//description,public_ccts,tags,password
                {
                    dbClient.setQuery("INSERT INTO rooms (roomtype,caption,owner,model_name,description,public_ccts,tags,password) OUTPUT INSERTED.* VALUES ('private',@caption,@username,@model,'','','','')");
                }
                else
                {
                    dbClient.setQuery("INSERT INTO rooms (roomtype,caption,owner,model_name) VALUES ('private',@caption,@username,@model)");
                }
                dbClient.addParameter("caption", Name);
                dbClient.addParameter("model", Model);
                dbClient.addParameter("username", Session.GetHabbo().Username);

                RoomId = (UInt32)dbClient.insertQuery();
            }

            RoomData newRoomData = GenerateRoomData(RoomId);

            Session.GetHabbo().UsersRooms.Add(newRoomData);

            return(newRoomData);
        }
コード例 #25
0
ファイル: HabboMessenger.cs プロジェクト: Habbotard/Firewind
        internal bool RequestExists(int requestID)
        {
            if (requests.ContainsKey(requestID))
            {
                return(true);
            }

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT sender FROM messenger_friendships WHERE sender = @myID AND receiver = @friendID");
                dbClient.addParameter("myID", (int)this.UserId);
                dbClient.addParameter("friendID", (int)requestID);
                return(dbClient.findsResult());
            }
        }
コード例 #26
0
        public Group CreateGroup(GameClient creator, string name, string description, int roomID, int color1, int color2, List <Tuple <int, int, int> > badgeData)
        {
            // We call this method after doing all checks.
            int groupID;
            //string badgeCode = Group.GenerateBadgeImage(badgeData);
            string createTime = DateTime.Now.ToString("d-M-yyyy");

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                // Insert the group
                dbClient.setQuery("INSERT INTO groups(name,description,badge_data,users_id,rooms_id,color1,color2,date_created) VALUES(@name,@desc,@badge,@ownerid,@roomid,@color1,@color2,@date)");
                dbClient.addParameter("name", name);
                dbClient.addParameter("desc", description);
                dbClient.addParameter("ownerid", creator.GetHabbo().Id);
                dbClient.addParameter("roomid", roomID);
                dbClient.addParameter("color1", color1);
                dbClient.addParameter("color2", color2);
                dbClient.addParameter("badge", Group.ConvertBadgeForDatabase(badgeData));
                dbClient.addParameter("date", createTime);
                groupID = (int)dbClient.insertQuery();

                // Create membership for owner
                dbClient.setQuery("INSERT INTO group_memberships VALUES(@id,@groupid,3,1)");
                dbClient.addParameter("id", creator.GetHabbo().Id);
                dbClient.addParameter("groupid", groupID);
                dbClient.runQuery();

                // Update room
                dbClient.runFastQuery("UPDATE rooms SET groups_id = " + groupID + " WHERE id = " + roomID);
            }

            Group group = new Group()
            {
                ID          = groupID,
                Name        = name,
                Description = description,
                RoomID      = roomID,
                ColorID1    = color1,
                ColorID2    = color2,
                BadgeData   = badgeData,
                DateCreated = createTime
            };

            group.Members.Add(creator.GetHabbo().Id);
            string s = group.BadgeCode;

            return(group);
        }
コード例 #27
0
        internal static Habbo getHabboForName(string UserName)
        {
            Habbo result;

            try
            {
                using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                {
                    queryreactor.setQuery("SELECT id FROM users WHERE username = @user");
                    queryreactor.addParameter("user", UserName);
                    int integer = queryreactor.getInteger();
                    if (integer > 0)
                    {
                        result = CyberEnvironment.getHabboForId(checked ((uint)integer));
                        return(result);
                    }
                }
                result = null;
            }
            catch
            {
                result = null;
            }
            return(result);
        }
コード例 #28
0
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            if (dbClient.dbType == Database_Manager.Database.DatabaseType.MSSQL)
            {
                dbClient.runFastQuery("DELETE FROM trigger_item WHERE trigger_id = " + item.Id);
                dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");
            }
            else
            {
                dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");
            }

            dbClient.addParameter("id", (int)this.item.Id);
            dbClient.addParameter("trigger_data", timeout);
            dbClient.runQuery();
        }
コード例 #29
0
 internal void GiveBadge(string Badge, bool InDatabase, GameClient Session, bool WiredReward = false)
 {
     if (WiredReward)
     {
         Session.SendMessage(this.SerializeBadgeReward(!this.HasBadge(Badge)));
     }
     if (this.HasBadge(Badge))
     {
         return;
     }
     if (InDatabase)
     {
         using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
         {
             queryreactor.setQuery(string.Concat(new object[]
             {
                 "INSERT INTO user_badges (user_id,badge_id,badge_slot) VALUES (",
                 this.UserId,
                 ",@badge,",
                 0,
                 ")"
             }));
             queryreactor.addParameter("badge", Badge);
             queryreactor.runQuery();
         }
     }
     this.Badges.Add(Badge, new Badge(Badge, 0));
     Session.SendMessage(this.SerializeBadge(Badge));
     Session.SendMessage(this.Update(Badge));
 }
コード例 #30
0
ファイル: Catalog.cs プロジェクト: Habbotard/Firewind
        internal static Pet CreatePet(int UserId, string Name, int Type, string Race, string Color)
        {
            Pet pet = new Pet(404, UserId, 0, Name, (uint)Type, Race, Color, 0, 100, 100, 0, FirewindEnvironment.GetUnixTimestamp(), 0, 0, 0.0, false);

            pet.DBState = DatabaseUpdateState.NeedsUpdate;

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("INSERT INTO user_pets (user_id,name,type,race,color,expirience,energy,createstamp) VALUES (" + pet.OwnerId + ",@" + pet.PetId + "name," + pet.Type + ",@" + pet.PetId + "race,@" + pet.PetId + "color,0,100,'" + pet.CreationStamp + "')");
                dbClient.addParameter(pet.PetId + "name", pet.Name);
                dbClient.addParameter(pet.PetId + "race", pet.Race);
                dbClient.addParameter(pet.PetId + "color", pet.Color);
                pet.PetId = (uint)dbClient.insertQuery();
            }
            return(pet);
        }
コード例 #31
0
        internal static List <SearchResult> GetSearchResult(string query)
        {
            List <SearchResult> results = new List <SearchResult>();

            DataTable dTable;

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT id,username,motto,look,last_online FROM users WHERE username LIKE @query LIMIT 50");
                dbClient.addParameter("query", query + "%");
                dTable = dbClient.getTable();
            }

            int    userID;
            string username;
            string motto;
            string look;
            string last_online;

            foreach (DataRow dRow in dTable.Rows)
            {
                userID      = Convert.ToInt32(dRow[0]);
                username    = (string)dRow[1];
                motto       = (string)dRow[2];
                look        = (string)dRow[3];
                last_online = (string)dRow[4];

                SearchResult result = new SearchResult(userID, username, motto, look, last_online);
                results.Add(result);
            }

            return(results);
        }
コード例 #32
0
        /// <summary>
        /// Obtiene el Id de usuario mediante el nombre de usuario.
        /// </summary>
        /// <param name="username">Nombre de usuario.</param>
        /// <returns></returns>
        internal static uint getIdByUsername(string username)
        {
            if (idByUsername.ContainsKey(username))
            {
                return(idByUsername[username]);
            }

            uint       userId = 0;
            GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUsername(username);

            if (client != null && client.GetHabbo() != null)
            {
                userId = client.GetHabbo().Id;
            }
            else
            {
                using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("SELECT id FROM users WHERE username = @usrname");
                    dbClient.addParameter("usrname", username);
                    userId = Convert.ToUInt32(dbClient.getInteger());
                }
            }

            if (userId > 0)
            {
                if (!idByUsername.ContainsKey(username))
                {
                    idByUsername.Add(username, userId);
                }
            }

            return(userId);
        }
コード例 #33
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
            dbClient.addParameter("id", (int)this.itemID);
            DataRow dRow = dbClient.getRow();

            if (dRow != null)
            {
                this.delay = Convert.ToInt32(dRow[0].ToString());
            }
            else
            {
                this.delay = 20;
            }

            dbClient.setQuery("SELECT triggers_item FROM trigger_in_place WHERE original_trigger = " + this.itemID);
            DataTable dTable = dbClient.getTable();
            RoomItem  targetItem;

            foreach (DataRow dRows in dTable.Rows)
            {
                targetItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(dRows[0]));
                if (targetItem == null || this.items.Contains(targetItem))
                {
                    continue;
                }
                this.items.Add(targetItem);
            }
        }
コード例 #34
0
        internal static RoomBot GenerateBotFromRow(DataRow Row)
        {
            uint num = Convert.ToUInt32(Row["id"]);

            if (Row == null)
            {
                return(null);
            }
            List <RandomSpeech> list = new List <RandomSpeech>();
            DataTable           table;

            using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                queryreactor.setQuery("SELECT text, shout FROM bots_speech WHERE bot_id = @id;");
                queryreactor.addParameter("id", num);
                table = queryreactor.getTable();
            }
            foreach (DataRow dataRow in table.Rows)
            {
                list.Add(new RandomSpeech((string)dataRow["text"], CyberEnvironment.EnumToBool(dataRow["shout"].ToString())));
            }
            List <BotResponse> list2 = new List <BotResponse>();

            return(new RoomBot(num, Convert.ToUInt32(Row["user_id"]), Convert.ToUInt32(Row["room_id"]), AIType.Generic, "freeroam", (string)Row["name"], (string)Row["motto"], (string)Row["look"], int.Parse(Row["x"].ToString()), int.Parse(Row["y"].ToString()), (double)int.Parse(Row["z"].ToString()), 4, 0, 0, 0, 0, ref list, ref list2, (string)Row["gender"], (int)Row["dance"], Row["is_bartender"].ToString() == "1"));
        }
コード例 #35
0
ファイル: Group.cs プロジェクト: Kristopher-RZ/Firewind
        public Group(DataRow Data, IQueryAdapter dbClient)
        {
            this.ID = Convert.ToInt32(Data["id"]);
            this.Name = Data["name"].ToString();
            this.Description = Data["description"].ToString();
            this.DateCreated = Data["date_created"].ToString();
            this.OwnerID = Convert.ToInt32(Data["users_id"]);
            this.RoomID = Convert.ToInt32(Data["rooms_id"]);
            this.ColorID1 = Convert.ToInt32(Data["color1"]);
            this.ColorID2 = Convert.ToInt32(Data["color2"]);
            this.Type = Convert.ToInt32(Data["type"]);
            this.RightsType = Convert.ToInt32(Data["rights_type"]);

            // Parse badge data
            string[] rawData = Data["badge_data"].ToString().Split((char)1);
            List<Tuple<int, int, int>> badgeData = new List<Tuple<int,int,int>>();
            for (int i = 0; i < rawData.Length; i++)
            {
                int value1 = int.Parse(rawData[i++]);
                int value2 = int.Parse(rawData[i++]);
                int value3 = int.Parse(rawData[i]);
                badgeData.Add(new Tuple<int, int, int>(value1, value2, value3));
            }

            this.BadgeData = badgeData;
            this.Members = new List<int>();

            // Load members
            dbClient.setQuery("SELECT * FROM group_memberships WHERE groups_id = @id");
            dbClient.addParameter("id", ID);
            foreach (DataRow row in dbClient.getTable().Rows)
            {
                this.Members.Add((int)row["users_id"]);
            }
        }
コード例 #36
0
ファイル: Timer.cs プロジェクト: habb0/PiciEmulator
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.item.Id);
     DataRow dRow = dbClient.getRow();
     if (dRow != null)
         this.requiredCycles = Convert.ToInt32(dRow[0].ToString());
     else
         this.requiredCycles = 20;
 }
コード例 #37
0
ファイル: EntersRoom.cs プロジェクト: habb0/Bfly
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.item.Id);
     DataRow dRow = dbClient.getRow();
     if (dRow != null)
         this.userName = dRow[0].ToString();
     else
         this.userName = string.Empty;
     this.isOneUser = !string.IsNullOrEmpty(this.userName);
 }
コード例 #38
0
ファイル: WiredSaverHandler.cs プロジェクト: BjkGkh/R106
 public static void RemoveFromDatabase(IWiredTrigger wiredItem, IQueryAdapter dbClient)
 {
     RoomItem item = wiredItem.GetOriginalWiredItem();
     InteractionType type = item.GetBaseItem().InteractionType;
     if(WiredLoaderObject.HasSettings(type))
     {
         dbClient.setQuery("DELETE FROM wired_data WHERE wired_id = @id");
         dbClient.addParameter("id", item.Id);
         dbClient.runQuery();
     }
     if (WiredLoaderObject.HasOriginalItemLocations(type))
     {
         dbClient.setQuery("DELETE FROM wired_original_item_locations WHERE wired_id = @id");   
         dbClient.addParameter("id", item.Id);
         dbClient.runQuery();
     }
     if (WiredLoaderObject.NeedsFurnitures(type))
     {
         dbClient.setQuery("DELETE FROM wired_to_item WHERE wired_id = @id");
         dbClient.addParameter("id", item.Id);
         dbClient.runQuery();
     }
 }
コード例 #39
0
ファイル: QueryChunk.cs プロジェクト: BjkGkh/Mercury
		internal void Execute(IQueryAdapter dbClient)
		{
			if (this.queryCount == 0)
			{
				return;
			}
			this.queries = this.queries.Remove(checked(this.queries.Length - 1), 1);
			dbClient.setQuery(this.queries.ToString());
			foreach (KeyValuePair<string, object> current in this.parameters)
			{
				dbClient.addParameter(current.Key, current.Value);
			}
			dbClient.runQuery();
		}
コード例 #40
0
ファイル: QueryChunk.cs プロジェクト: BjkGkh/R106
        internal void Execute(IQueryAdapter dbClient)
        {
            if (queryCount == 0)
                return;

            queries = queries.Remove(queries.Length - 1, 1);
            dbClient.setQuery(queries.ToString());

            foreach (KeyValuePair<string, object> parameter in parameters)
            {
                dbClient.addParameter(parameter.Key, parameter.Value);
            }

            dbClient.runQuery();
        }
コード例 #41
0
ファイル: UserSays.cs プロジェクト: TheNaked/Firewind
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data,  all_user_triggerable FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.item.Id);
     DataRow dRow = dbClient.getRow();
     if (dRow != null)
     {
         this.triggerMessage = dRow[0].ToString();
         this.isOwnerOnly = dRow[1].ToString() == "1";
     }
     else
     {
         this.triggerMessage = string.Empty;
         this.isOwnerOnly = false;
     }
 }
コード例 #42
0
ファイル: GiveScore.cs プロジェクト: BjkGkh/Custom-R2
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data, trigger_data_2 FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.itemID);
     DataRow dRow = dbClient.getRow();
     if (dRow != null)
     {
         this.maxCountPerGame = Convert.ToInt32(dRow[0].ToString());
         this.scoreToGive = Convert.ToInt32(dRow[1].ToString());
     }
     else
     {
         maxCountPerGame = 0;
         scoreToGive = 0;
     }
 }
コード例 #43
0
ファイル: SateChanged.cs プロジェクト: habb0/Bfly
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
            dbClient.addParameter("id", (int)this.item.Id);
            this.delay = dbClient.getInteger();

            dbClient.setQuery("SELECT triggers_item FROM trigger_in_place WHERE original_trigger = " + this.item.Id);
            DataTable dTable = dbClient.getTable();
            RoomItem targetItem;
            foreach (DataRow dRows in dTable.Rows)
            {
                targetItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(dRows[0]));
                if (targetItem == null || this.items.Contains(targetItem))
                    continue;
                targetItem.itemTriggerEventHandler += delegateFunction;
                this.items.Add(targetItem);
            }
        }
コード例 #44
0
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
            dbClient.addParameter("id", (int)this.item.Id);
            DataRow dRow = dbClient.getRow();
            if (dRow != null)
                this.requiredCycles = Convert.ToInt32(dRow[0].ToString());
            else
                this.requiredCycles = 0;

            dbClient.setQuery("SELECT triggers_item FROM trigger_in_place WHERE original_trigger = " + this.item.Id);
            DataTable dTable = dbClient.getTable();
            RoomItem targetItem;
            foreach (DataRow dRows in dTable.Rows)
            {
                targetItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(dRows[0]));
                if (targetItem == null || this.items.Contains(targetItem))
                    continue;
                targetItem.OnUserWalksOnFurni += targetItem_OnUserWalksOnFurni;
                this.items.Add(targetItem);
            }
        }
コード例 #45
0
ファイル: PositionReset.cs プロジェクト: BjkGkh/07052014
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            WiredUtillity.SaveTriggerItem(dbClient, (int)itemID, "integer", string.Empty, "0", false);
            lock (items)
            {
                dbClient.runFastQuery("DELETE FROM trigger_in_place WHERE original_trigger = '" + this.itemID + "'");
                State.Clear();
                Pos.Clear();
                Rot.Clear();
                foreach (RoomItem i in items)
                {
                    if (i != null)
                    {
                        if (WiredUtillity.TypeIsWired(i.GetBaseItem().InteractionType))
                            MatchState = 0;
                        dbClient.setQuery("INSERT INTO trigger_in_place (original_trigger,triggers_item, extradata) VALUES (@my_id,@trigger_item,@extra)");
                        dbClient.addParameter("my_id", itemID);
                        dbClient.addParameter("trigger_item", i.Id);
                        dbClient.addParameter("extra", MatchState + "-" + i.ExtraData + ";" + MatchRot + "-" + i.Rot + ";" + MatchPos + "-" + i.GetX + "," + i.GetY);
                        dbClient.runQuery();

                        if (MatchPos == 1)
                        {
                            Pos.Add(i, new Point(i.GetX, i.GetY));
                        }
                        if (MatchRot == 1)
                        {
                            Rot.Add(i, i.Rot);
                        }
                        if (MatchState == 1)
                        {
                            State.Add(i, i.ExtraData);
                        }
                    }
                }
            }
        }
コード例 #46
0
ファイル: MoveRotate.cs プロジェクト: habb0/Bfly
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
            dbClient.addParameter("id", (int)this.itemID);
            this.delay = dbClient.getInteger();

            dbClient.setQuery("SELECT rotation_status, movement_status FROM trigger_rotation WHERE item_id = @id");
            dbClient.addParameter("id", (int)this.itemID);
            DataRow dRow = dbClient.getRow();
            if (dRow != null)
            {
                this.rotation = (RotationState)Convert.ToInt32(dRow[0]);
                this.movement = (MovementState)Convert.ToInt32(dRow[1]);
            }
            else
            {
                rotation = RotationState.none;
                movement = MovementState.none;
            }

            dbClient.setQuery("SELECT triggers_item FROM trigger_in_place WHERE original_trigger = " + this.itemID);
            DataTable dTable = dbClient.getTable();
            RoomItem targetItem;
            foreach (DataRow dRows in dTable.Rows)
            {
                targetItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(dRows[0]));
                if (targetItem == null || this.items.Contains(targetItem))
                {
                    continue;
                }

                this.items.Add(targetItem);
            }
        }
コード例 #47
0
ファイル: MoveRotate.cs プロジェクト: habb0/Bfly
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            WiredUtillity.SaveTriggerItem(dbClient, (int)itemID, "integer", string.Empty, delay.ToString(), false);

            if (dbClient.dbType == Database_Manager.Database.DatabaseType.MSSQL)
            {
                dbClient.runFastQuery("DELETE FROM trigger_rotation WHERE item_id = " + itemID);
                dbClient.setQuery("INSERT INTO trigger_rotation(item_id,rotation_status,movement_status) VALUES (@id,@rot_id,@mov_id)");
            }
            else
                dbClient.setQuery("REPLACE INTO trigger_rotation SET item_id = @id, rotation_status = @rot_id,  movement_status = @mov_id");
            dbClient.addParameter("id", (int)itemID);
            dbClient.addParameter("rot_id", (int)this.rotation);
            dbClient.addParameter("mov_id", (int)this.movement);
            dbClient.runQuery();

            lock (items)
            {
                dbClient.runFastQuery("DELETE FROM trigger_in_place WHERE original_trigger = '" + this.itemID + "'");
                foreach (RoomItem i in items)
                {
                    WiredUtillity.SaveTrigger(dbClient, (int)itemID, (int)i.Id);
                }
            }
        }
コード例 #48
0
ファイル: Repeater.cs プロジェクト: TheNaked/Firewind
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.item.Id);
     this.cyclesRequired = dbClient.getInteger();
 }
コード例 #49
0
ファイル: ShowMessage.cs プロジェクト: BjkGkh/Custom-R2
 public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
 {
     dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
     dbClient.addParameter("id", (int)this.itemID);
     this.message = dbClient.getString();
 }
コード例 #50
0
ファイル: GroupManager.cs プロジェクト: TheNaked/Firewind
        internal void LoadGroups(IQueryAdapter dbClient)
        {
            dbClient.setQuery("SELECT * FROM groups");
            DataTable GroupTable = dbClient.getTable();

            foreach (DataRow Group in GroupTable.Rows)
            {
                dbClient.setQuery("SELECT * FROM `group_memberships` WHERE `id` = @id");
                dbClient.addParameter("id", (int)Group["id"]);

                Group group = new Group(Group, dbClient.getTable());

            }
        }
コード例 #51
0
ファイル: PositionReset.cs プロジェクト: BjkGkh/07052014
        public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
        {
            dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id ");
            dbClient.addParameter("id", (int)this.itemID);
            DataRow dRow = dbClient.getRow();
            if (dRow != null)
            {
                this.delay = Convert.ToInt32(dRow[0].ToString());
            }
            else
            {
                delay = 20;
            }

            dbClient.setQuery("SELECT triggers_item,extradata FROM trigger_in_place WHERE original_trigger = " + this.itemID);
            DataTable dTable = dbClient.getTable();
            if (dTable == null)
                return;
            //RoomItem targetItem;
            foreach (DataRow dRows in dTable.Rows)
            {
                /*targetItem = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(dRows[0]));
                if (targetItem == null || this.items.Contains(targetItem))
                    continue;

                string[] Op = dRows[1].ToString().Split(';');
                if (Op[0].Split('-')[0].ToString() == "1")
                {
                    MatchState = 1;
                    State.Add(targetItem, Op[0].Split('-')[1].ToString());
                }
                if (Op[1].Split('-')[0].ToString() == "1")
                {
                    MatchRot = 1;
                    Rot.Add(targetItem, int.Parse(Op[1].Split('-')[1]));
                }
                if (Op[2].Split('-')[0].ToString() == "1")
                {
                    MatchPos = 1;
                    Pos.Add(targetItem, new Point(int.Parse(Op[2].Split('-')[1].Split(',')[0]), int.Parse(Op[2].Split('-')[1].Split(',')[1])));
                }

                this.items.Add(targetItem);*/
            }
        }
コード例 #52
0
ファイル: Habbo.cs プロジェクト: TheNaked/Firewind
        //internal HabboData GetUserData
        //{
        //    get
        //    {
        //        return mUserData;
        //    }
        //}
        internal void UpdateRooms(IQueryAdapter dbClient)
        {
            UsersRooms.Clear();
            dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = @name ORDER BY id ASC");
            dbClient.addParameter("name", Username);
            DataTable dbTable = dbClient.getTable();

            foreach (DataRow Row in dbTable.Rows)
                UsersRooms.Add(FirewindEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToUInt32(Row["id"]), Row));
        }
コード例 #53
0
ファイル: WiredSaverHandler.cs プロジェクト: BjkGkh/R106
        public static void UpdateInDatabase(IWiredTrigger wiredItem, IQueryAdapter dbClient)
        {
            RemoveFromDatabase(wiredItem, dbClient);

            RoomItem item = wiredItem.GetOriginalWiredItem();
            InteractionType type = item.GetBaseItem().InteractionType;

            if (WiredLoaderObject.HasSettings(type))
            {
                string[] data = (wiredItem as IWiredSettingsTrigger).GetSettings();
                dbClient.setQuery("INSERT INTO `wired_data` (`wired_id`, `data_one`, `data_two`, `data_three`, `data_four`) VALUES (@id, @data1, @data2, @data3, @data4) ");
                dbClient.addParameter("id", item.Id);
                dbClient.addParameter("data1", data.Length >= 1 ? data[0] : "");
                dbClient.addParameter("data2", data.Length >= 2 ? data[1] : "");
                dbClient.addParameter("data3", data.Length >= 3 ? data[2] : "");
                dbClient.addParameter("data4", data.Length >= 4 ? data[3] : "");
                dbClient.runQuery();
            }
            if (WiredLoaderObject.HasOriginalItemLocations(type))
            {
                Dictionary<uint, OriginalItemLocation> originalLoc = (wiredItem as IWiredOriginalItemTrigger).GetOriginalItemLocation();

                foreach (OriginalItemLocation itemLoc in originalLoc.Values)
                {
                    dbClient.setQuery("INSERT INTO `wired_original_item_locations` (`wired_id`,`item_id`, `original_x`, `original_y`, `rotation`, `extradata`, `height`) VALUES (@wid, @id, @orx, @ory, @orrot, @data, @height)");
                    dbClient.addParameter("wid", item.Id);
                    dbClient.addParameter("id", itemLoc.itemID);
                    dbClient.addParameter("orx", itemLoc.X);
                    dbClient.addParameter("ory", itemLoc.Y);
                    dbClient.addParameter("orrot", itemLoc.Rot);
                    dbClient.addParameter("data", itemLoc.ExtraData);
                    dbClient.addParameter("height", itemLoc.Height);

                    dbClient.runQuery();
                }
            }
            if (WiredLoaderObject.NeedsFurnitures(type))
            {
                List<RoomItem> items = (wiredItem as IWiredFurniTrigger).getAffectedItemList();
                foreach (RoomItem rItem in items)
                {
                    dbClient.setQuery("INSERT INTO `wired_to_item` (`wired_id`, `trigger_item`) VALUES (@id, @triggeritem)");
                    dbClient.addParameter("id", item.Id);
                    dbClient.addParameter("triggeritem", rItem.Id);
                    dbClient.runQuery();
                }
            }

        }
コード例 #54
0
ファイル: MoreThanTimer.cs プロジェクト: habb0/PiciEmulator
        public void SaveToDatabase(IQueryAdapter dbClient)
        {
            if (dbClient.dbType == Pici.Storage.Database.DatabaseType.MSSQL)
            {
                dbClient.runFastQuery("DELETE FROM trigger_item WHERE trigger_id = " + item.Id);
                dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");
            }
            else
                dbClient.setQuery("REPLACE INTO trigger_item SET trigger_id = @id, trigger_input = 'integer',  trigger_data = @trigger_data , all_user_triggerable = 0");

            dbClient.addParameter("id", (int)this.item.Id);
            dbClient.addParameter("trigger_data", timeout);
            dbClient.runQuery();
        }
コード例 #55
0
ファイル: Habbo.cs プロジェクト: kessiler/habboServer
		internal void UpdateRooms(IQueryAdapter dbClient)
		{
			this.UsersRooms.Clear();
			dbClient.setQuery("SELECT * FROM rooms WHERE owner = @name ORDER BY id ASC LIMIT 50");
			dbClient.addParameter("name", this.Username);
			DataTable table = dbClient.getTable();
			foreach (DataRow dataRow in table.Rows)
			{
				this.UsersRooms.Add(CyberEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToUInt32(dataRow["id"]), dataRow));
			}
		}