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(); } } } } }
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(); }
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(); }
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); } } }
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; } } }
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)); }
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(); } } } } }
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); }
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(); } } } } }
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); }
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); }
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(); }
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(); }
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; } }
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); } }
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(); } }
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(); } }
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); }
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(); }
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); }
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()); } }
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); }
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); }
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(); }
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)); }
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); }
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); }
/// <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); }
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); } }
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")); }
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"]); } }
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; }
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); }
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(); } }
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(); }
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(); }
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; } }
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; } }
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); } }
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); } }
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); } } } } }
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); } }
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); } } }
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(); }
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(); }
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()); } }
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);*/ } }
//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)); }
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(); } } }
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(); }
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)); } }