private List <ChatlogEntry> GetChatlogs(RoomData roomData, double timeEnter, double timeExit) { var chats = new List <ChatlogEntry>(); using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("SELECT `user_id`, `timestamp`, `message` FROM `chatlogs` WHERE `room_id` = " + roomData.Id + " AND `timestamp` > " + timeEnter + " AND `timestamp` < " + timeExit + " ORDER BY `timestamp` DESC LIMIT 100"); var data = dbClient.GetTable(); if (data != null) { foreach (DataRow row in data.Rows) { var habbo = HabboFactory.GetHabboById(Convert.ToInt32(row["user_id"])); if (habbo != null) { chats.Add(new ChatlogEntry(Convert.ToInt32(row["user_id"]), roomData.Id, Convert.ToString(row["message"]), Convert.ToDouble(row["timestamp"]), habbo)); } } } } return(chats); }
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)); }
public void Parse(Player session, ClientPacket packet) { var groupId = packet.PopInt(); var userId = packet.PopInt(); if (!Program.GameContext.GetGroupManager().TryGetGroup(groupId, out var group)) { return; } if (session.GetHabbo().Id != group.CreatorId && !group.IsAdmin(session.GetHabbo().Id) && !session.GetHabbo().GetPermissions().HasRight("fuse_group_accept_any")) { return; } if (!group.HasRequest(userId)) { return; } var habbo = HabboFactory.GetHabboById(userId); if (habbo == null) { session.SendNotification("Oops, an error occurred whilst finding this user."); return; } group.HandleRequest(userId, true); session.SendPacket(new GroupMemberUpdatedComposer(groupId, habbo, 4)); }
public GroupInfoComposer(Group Group, Player Session, bool NewWindow = false) : base(ServerPacketHeader.GroupInfoMessageComposer) { var Origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Group.CreateTime); WriteInteger(Group.Id); WriteBoolean(true); WriteInteger(Group.Type == GroupType.Open ? 0 : Group.Type == GroupType.Locked ? 1 : 2); WriteString(Group.Name); WriteString(Group.Description); WriteString(Group.Badge); WriteInteger(Group.RoomId); WriteString(Group.GetRoom() != null ? Group.GetRoom().Name : "No room found.."); // room name WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? 3 : Group.HasRequest(Session.GetHabbo().Id) ? 2 : Group.IsMember(Session.GetHabbo().Id) ? 1 : 0); WriteInteger(Group.MemberCount); // Members WriteBoolean(false); //?? CHANGED WriteString(Origin.Day + "-" + Origin.Month + "-" + Origin.Year); WriteBoolean(Group.CreatorId == Session.GetHabbo().Id); WriteBoolean(Group.IsAdmin(Session.GetHabbo().Id)); // admin WriteString(HabboFactory.GetUsernameById(Group.CreatorId)); WriteBoolean(NewWindow); // Show group info WriteBoolean(Group.AdminOnlyDeco == 0); // Any user can place furni in home room WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? Group.RequestCount : Group.IsAdmin(Session.GetHabbo().Id) ? Group.RequestCount : Group.IsMember(Session.GetHabbo().Id) ? 0 : 0); // Pending users //base.WriteInteger(0);//what the f**k WriteBoolean(Group != null ? Group.ForumEnabled : true); //HabboTalk. }
public void Parse(Player session, ClientPacket packet) { var userId = packet.PopInt(); packet.PopBoolean(); //IsMe? var targetData = HabboFactory.GetHabboById(userId); if (targetData == null) { session.SendNotification("An error occured whilst finding that user's profile."); return; } var groups = Program.GameContext.GetGroupManager().GetGroupsForUser(targetData.Id); int friendCount; using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `messenger_friendships` WHERE (`user_one_id` = @userid OR `user_two_id` = @userid)"); dbClient.AddParameter("userid", userId); friendCount = dbClient.GetInteger(); } session.SendPacket(new ProfileInformationComposer(targetData, session, groups, friendCount)); }
/// <summary> /// Gets the user data. /// </summary> /// <param name="userId">The user identifier.</param> /// <returns>UserData.</returns> internal static UserData GetUserData(int userId) { DataRow dataRow; uint num; DataRow row; DataTable table; using (var queryReactor = Plus.GetDatabaseManager().GetQueryReactor()) { queryReactor.SetQuery(string.Format("SELECT * FROM users WHERE id = '{0}'", userId)); dataRow = queryReactor.GetRow(); Plus.GetGame().GetClientManager().LogClonesOut(Convert.ToUInt32(userId)); if (dataRow == null) { return(null); } num = Convert.ToUInt32(dataRow["id"]); if (Plus.GetGame().GetClientManager().GetClientByUserId(num) != null) { return(null); } queryReactor.SetQuery(string.Format("SELECT job_id,job_rank FROM rp_stats WHERE id={0}", userId)); queryReactor.GetTable(); queryReactor.SetQuery(string.Format("SELECT * FROM users_stats WHERE id={0} LIMIT 1", num)); row = queryReactor.GetRow(); if (row == null) { } queryReactor.SetQuery("SELECT * FROM users_relationships WHERE user_id=@id"); queryReactor.AddParameter("id", num); table = queryReactor.GetTable(); } var achievements = new Dictionary <string, UserAchievement>(); var talents = new Dictionary <int, UserTalent>(); var favouritedRooms = new List <uint>(); var ignores = new List <uint>(); var tags = new List <string>(); var badges = new List <Badge>(); var inventory = new List <UserItem>(); var effects = new List <AvatarEffect>(); var friends = new Dictionary <uint, MessengerBuddy>(); var requests = new Dictionary <uint, MessengerRequest>(); var rooms = new HashSet <RoomData>(); var pets = new Dictionary <uint, Pet>(); var quests = new Dictionary <uint, int>(); var bots = new Dictionary <uint, RoomBot>(); var group = new HashSet <GroupUser>(); var pollData = new HashSet <uint>(); var dictionary = table.Rows.Cast <DataRow>() .ToDictionary(dataRow2 => (int)dataRow2[0], dataRow2 => new Relationship((int)dataRow2[0], (int)dataRow2[2], Convert.ToInt32(dataRow2[3].ToString()))); var 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)); }
public void Parse(Player session, ClientPacket packet) { if (!session.GetHabbo().InRoom) { return; } var userId = packet.PopInt(); packet.PopInt(); //roomId var time = packet.PopInt(); var room = session.GetHabbo().CurrentRoom; if (room == null) { return; } if (room.WhoCanMute == 0 && !room.CheckRights(session, true) && room.Group == null || room.WhoCanMute == 1 && !room.CheckRights(session) && room.Group == null || room.Group != null && !room.CheckRights(session, false, true)) { return; } var target = room.GetRoomUserManager().GetRoomUserByHabbo(HabboFactory.GetUsernameById(userId)); if (target == null) { return; } if (target.GetClient().GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } if (room.MutedUsers.ContainsKey(userId)) { if (room.MutedUsers[userId] < UnixUtilities.GetNow()) { room.MutedUsers.Remove(userId); } else { return; } } room.MutedUsers.Add(userId, UnixUtilities.GetNow() + time * 60); target.GetClient().SendWhisper("The room owner has muted you for " + time + " minutes!"); Program.GameContext.GetAchievementManager().ProgressAchievement(session, "ACH_SelfModMuteSeen", 1); }
public void Parse(Player session, ClientPacket packet) { var userId = packet.PopInt(); var habbo = HabboFactory.GetHabboById(userId); if (habbo == null) { return; } session.SendPacket(new HabboUserBadgesComposer(habbo)); }
public void Parse(Player session, ClientPacket packet) { if (session == null || session.GetHabbo() == null || !session.GetHabbo().GetPermissions().HasRight("mod_trade_lock")) { return; } var userId = packet.PopInt(); var message = packet.PopString(); var days = packet.PopInt() / 1440.0; packet.PopString(); //unk1 packet.PopString(); //unk2 var length = UnixUtilities.GetNow() + days * 86400; var habbo = HabboFactory.GetHabboById(userId); if (habbo == null) { session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (habbo.GetPermissions().HasRight("mod_trade_lock") && !session.GetHabbo().GetPermissions().HasRight("mod_trade_lock_any")) { session.SendWhisper("Oops, you cannot trade lock another user ranked 5 or higher."); return; } if (days < 1) { days = 1; } if (days > 365) { days = 365; } using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `trading_locked` = '" + length + "', `trading_locks_count` = `trading_locks_count` + '1' WHERE `user_id` = '" + habbo.Id + "' LIMIT 1"); } if (habbo.GetClient() != null) { habbo.TradingLockExpiry = length; habbo.GetClient().SendNotification("You have been trade banned for " + days + " day(s)!\r\rReason:\r\r" + message); } }
public void Execute(Player Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter a username and a valid time in seconds (max 600, anything over will be set back to 600)."); return; } var Habbo = HabboFactory.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_mute_any")) { Session.SendWhisper("Oops, you cannot mute that user."); return; } double Time; if (double.TryParse(Params[2], out Time)) { if (Time > 600 && !Session.GetHabbo().GetPermissions().HasRight("mod_mute_limit_override")) { Time = 600; } using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `time_muted` = '" + Time + "' WHERE `id` = '" + Habbo.Id + "' LIMIT 1"); } if (Habbo.GetClient() != null) { Habbo.TimeMuted = Time; Habbo.GetClient().SendNotification("You have been muted by a moderator for " + Time + " seconds!"); } Session.SendWhisper("You have successfully muted " + Habbo.Username + " for " + Time + " seconds."); } else { Session.SendWhisper("Please enter a valid integer."); } }
public void Parse(Player session, ClientPacket packet) { var habbo = HabboFactory.GetHabboById(packet.PopInt()); if (habbo == null) { return; } var rand = new Random(); habbo.Relationships = habbo.Relationships.OrderBy(x => rand.Next()).ToDictionary(item => item.Key, item => item.Value); session.SendPacket(new GetRelationshipsComposer(habbo)); }
public void Parse(Player session, ClientPacket packet) { if (session == null || session.GetHabbo() == null) { return; } if (!session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } var data = HabboFactory.GetHabboById(packet.PopInt()); if (data == null) { session.SendNotification("Unable to load info for user."); return; } Program.GameContext.GetChatManager().GetLogs().FlushAndSave(); var chatlogs = new List <KeyValuePair <RoomData, List <ChatlogEntry> > >(); using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("SELECT `room_id`,`entry_timestamp`,`exit_timestamp` FROM `user_roomvisits` WHERE `user_id` = '" + data.Id + "' ORDER BY `entry_timestamp` DESC LIMIT 7"); var getLogs = dbClient.GetTable(); if (getLogs != null) { foreach (DataRow row in getLogs.Rows) { if (!RoomFactory.TryGetData(Convert.ToInt32(row["room_id"]), out var roomData)) { continue; } var timestampExit = Convert.ToDouble(row["exit_timestamp"]) <= 0 ? UnixUtilities.GetNow() : Convert.ToDouble(row["exit_timestamp"]); chatlogs.Add(new KeyValuePair <RoomData, List <ChatlogEntry> >(roomData, GetChatlogs(roomData, Convert.ToDouble(row["entry_timestamp"]), timestampExit))); } } session.SendPacket(new ModeratorUserChatlogComposer(data, chatlogs)); } }
public void Parse(Player session, ClientPacket packet) { if (session == null || session.GetHabbo() == null) { return; } if (!session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } packet.PopInt(); //junk var roomId = packet.PopInt(); if (!Program.GameContext.GetRoomManager().TryGetRoom(roomId, out var room)) { return; } Program.GameContext.GetChatManager().GetLogs().FlushAndSave(); var chats = new List <ChatlogEntry>(); using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `chatlogs` WHERE `room_id` = @id ORDER BY `id` DESC LIMIT 100"); dbClient.AddParameter("id", roomId); var data = dbClient.GetTable(); if (data != null) { foreach (DataRow row in data.Rows) { var habbo = HabboFactory.GetHabboById(Convert.ToInt32(row["user_id"])); if (habbo != null) { chats.Add(new ChatlogEntry(Convert.ToInt32(row["user_id"]), roomId, Convert.ToString(row["message"]), Convert.ToDouble(row["timestamp"]), habbo)); } } } } session.SendPacket(new ModeratorRoomChatlogComposer(room, chats)); }
internal static Habbo GetUserDataCache(uint userId) { DataRow dUser; using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT id, username, real_name, rank, motto, account_created, look, gender, diamonds, machine_last, last_online, achievement_points, favoriteGroup, block_newfriends, block_trade, ignoreRoomInvitations, dontfocususers, prefer_old_chat, alertasAtivados, frankJaApareceu, moedas, corAtual, coresJaTenho, coins_purchased FROM users WHERE id = " + userId); dUser = dbClient.getRow(); } if (dUser == null) { return(null); } return(HabboFactory.GenerateHabboCache(dUser)); }
public void Parse(Player session, ClientPacket packet) { var groupId = packet.PopInt(); var userId = packet.PopInt(); if (!Program.GameContext.GetGroupManager().TryGetGroup(groupId, out var group)) { return; } if (session.GetHabbo().Id != group.CreatorId || !group.IsMember(userId)) { return; } var habbo = HabboFactory.GetHabboById(userId); if (habbo == null) { session.SendNotification("Oops, an error occurred whilst finding this user."); return; } group.MakeAdmin(userId); if (Program.GameContext.GetRoomManager().TryGetRoom(group.RoomId, out var room)) { var user = room.GetRoomUserManager().GetRoomUserByHabbo(userId); if (user != null) { if (!user.Statusses.ContainsKey("flatctrl 3")) { user.SetStatus("flatctrl 3"); } user.UpdateNeeded = true; if (user.GetClient() != null) { user.GetClient().SendPacket(new YouAreControllerComposer(3)); } } } session.SendPacket(new GroupMemberUpdatedComposer(groupId, habbo, 1)); }
public bool Execute(params object[] Params) { if (Params == null || Params.Length == 0) { return(false); } var Owner = HabboFactory.GetHabboById(Item.UserID); if (Owner == null || !Owner.GetPermissions().HasRight("room_item_wired_rewards")) { return(false); } var Player = (Habbo)Params[0]; if (Player == null || Player.GetClient() == null) { return(false); } var User = Player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Player.Username); if (User == null) { return(false); } if (string.IsNullOrEmpty(StringData)) { return(false); } if (Player.GetBadgeComponent().HasBadge(StringData)) { Player.GetClient().SendPacket(new WhisperComposer(User.VirtualId, "Oops, it appears you have already recieved this badge!", 0, User.LastBubble)); } else { Player.GetBadgeComponent().GiveBadge(StringData, true, Player.GetClient()); Player.GetClient().SendNotification("You have recieved a badge!"); } return(true); }
public void Parse(Player session, ClientPacket packet) { var ignoredUsers = new List <string>(); foreach (var userId in new List <int>(session.GetHabbo().GetIgnores().IgnoredUserIds())) { var player = HabboFactory.GetHabboById(userId); if (player != null) { if (!ignoredUsers.Contains(player.Username)) { ignoredUsers.Add(player.Username); } } } session.SendPacket(new IgnoredUsersComposer(ignoredUsers)); }
public string GetUsername() { if (IsBot) { return(string.Empty); } if (GetClient() != null) { if (GetClient().GetHabbo() != null) { return(GetClient().GetHabbo().Username); } return(HabboFactory.GetUsernameById(HabboId)); } return(HabboFactory.GetUsernameById(HabboId)); }
public void Parse(Player session, ClientPacket packet) { if (!session.GetHabbo().InRoom) { return; } var room = session.GetHabbo().CurrentRoom; if (room == null) { return; } var username = packet.PopString(); var player = HabboFactory.GetHabboByUsername(username); if (player == null || player.GetPermissions().HasRight("mod_tool")) { return; } if (session.GetHabbo().GetIgnores().TryGet(player.Id)) { return; } if (session.GetHabbo().GetIgnores().TryAdd(player.Id)) { using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `user_ignores` (`user_id`,`ignore_id`) VALUES(@uid,@ignoreId);"); dbClient.AddParameter("uid", session.GetHabbo().Id); dbClient.AddParameter("ignoreId", player.Id); dbClient.RunQuery(); } session.SendPacket(new IgnoreStatusComposer(1, player.Username)); Program.GameContext.GetAchievementManager().ProgressAchievement(session, "ACH_SelfModIgnoreSeen", 1); } }
public void Parse(Player session, ClientPacket packet) { if (!session.GetHabbo().InRoom) { return; } var room = session.GetHabbo().CurrentRoom; if (room == null) { return; } var username = packet.PopString(); var player = HabboFactory.GetHabboByUsername(username); if (player == null) { return; } if (!session.GetHabbo().GetIgnores().TryGet(player.Id)) { return; } if (session.GetHabbo().GetIgnores().TryRemove(player.Id)) { using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `user_ignores` WHERE `user_id` = @uid AND `ignore_id` = @ignoreId"); dbClient.AddParameter("uid", session.GetHabbo().Id); dbClient.AddParameter("ignoreId", player.Id); dbClient.RunQuery(); } session.SendPacket(new IgnoreStatusComposer(3, player.Username)); } }
public void Parse(Player session, ClientPacket packet) { if (session?.GetHabbo() == null || !session.GetHabbo().GetPermissions().HasRight("mod_mute")) { return; } var userId = packet.PopInt(); packet.PopString(); //message double length = packet.PopInt() * 60; packet.PopString(); //unk1 packet.PopString(); //unk2 var habbo = HabboFactory.GetHabboById(userId); if (habbo == null) { session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (habbo.GetPermissions().HasRight("mod_mute") && !session.GetHabbo().GetPermissions().HasRight("mod_mute_any")) { session.SendWhisper("Oops, you cannot mute that user."); return; } using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `time_muted` = '" + length + "' WHERE `id` = '" + habbo.Id + "' LIMIT 1"); } if (habbo.GetClient() != null) { habbo.TimeMuted = length; habbo.GetClient().SendNotification("You have been muted by a moderator for " + length + " seconds!"); } }
public void Execute(Player Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter the username of the user you'd like to IP ban & account ban."); return; } var Habbo = HabboFactory.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } var IPAddress = string.Empty; var Expire = UnixUtilities.GetNow() + 78892200; var Username = Habbo.Username; using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); dbClient.SetQuery("SELECT `ip_last` FROM `users` WHERE `id` = '" + Habbo.Id + "' LIMIT 1"); IPAddress = dbClient.GetString(); } string Reason = null; if (Params.Length >= 3) { Reason = CommandManager.MergeParams(Params, 2); } else { Reason = "No reason specified."; } if (!string.IsNullOrEmpty(IPAddress)) { Program.GameContext.GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, IPAddress, Reason, Expire); } Program.GameContext.GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.Username, Habbo.Username, Reason, Expire); var TargetClient = Program.GameContext.PlayerController.GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Success, you have IP and account banned the user '" + Username + "' for '" + Reason + "'!"); }
public static UserData GetUserData(int UserId) { DataRow dUserInfo = null; DataRow UserInfo = null; DataTable dRelations = null; DataTable dGroups = null; using (IQueryAdapter dbClient = QuasarEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `users` WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", UserId); dUserInfo = dbClient.getRow(); QuasarEnvironment.GetGame().GetClientManager().LogClonesOut(Convert.ToInt32(UserId)); if (dUserInfo == null) { return(null); } if (QuasarEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId) != null) { return(null); } dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); if (UserInfo == null) { dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + UserId + "')"); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); } dbClient.SetQuery("SELECT group_id,rank FROM group_memberships WHERE user_id=@id"); dbClient.AddParameter("id", UserId); dGroups = dbClient.getTable(); dbClient.SetQuery("SELECT `id`,`target`,`type` FROM user_relationships WHERE user_id=@id"); dbClient.AddParameter("id", UserId); dRelations = dbClient.getTable(); } ConcurrentDictionary <string, UserAchievement> Achievements = new ConcurrentDictionary <string, UserAchievement>(); Dictionary <int, UserTalent> talents = new Dictionary <int, UserTalent>(); List <int> FavouritedRooms = new List <int>(); List <int> Ignores = new List <int>(); List <Badge> Badges = new List <Badge>(); Dictionary <int, MessengerBuddy> Friends = new Dictionary <int, MessengerBuddy>(); Dictionary <int, MessengerRequest> FriendRequests = new Dictionary <int, MessengerRequest>(); List <RoomData> Rooms = new List <RoomData>(); Dictionary <int, int> Quests = new Dictionary <int, int>(); Dictionary <string, Subscription> subscriptions = new Dictionary <string, Subscription>(); Dictionary <int, Relationship> Relationships = new Dictionary <int, Relationship>(); foreach (DataRow Row in dRelations.Rows) { if (!Relationships.ContainsKey(Convert.ToInt32(Row["id"]))) { Relationships.Add(Convert.ToInt32(Row["target"]), new Relationship(Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["target"]), Convert.ToInt32(Row["type"].ToString()))); } } Habbo user = HabboFactory.GenerateHabbo(dUserInfo, UserInfo); return(new UserData(UserId, Achievements, FavouritedRooms, Ignores, Badges, Friends, FriendRequests, Rooms, Quests, user, Relationships, talents, subscriptions)); }
public static UserData GetUserData(string SessionTicket, out byte errorCode) { int UserId; DataRow dUserInfo = null; DataTable dAchievements = null; DataTable dFavouriteRooms = null; DataTable dIgnores = null; DataTable dBadges = null; DataTable dEffects = null; DataTable dFriends = null; DataTable dRequests = null; DataTable dRooms = null; DataTable dQuests = null; DataTable dRelations = null; DataTable talentsTable = null; DataRow UserInfo = null; DataTable Subscriptions = null; using (IQueryAdapter dbClient = QuasarEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `users` WHERE `auth_ticket` = @sso LIMIT 1"); dbClient.AddParameter("sso", SessionTicket); dUserInfo = dbClient.getRow(); if (dUserInfo == null) { errorCode = 1; return(null); } UserId = Convert.ToInt32(dUserInfo["id"]); if (QuasarEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId) != null) { errorCode = 2; QuasarEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId).Disconnect(); return(null); } dbClient.SetQuery("SELECT `group`,`level`,`progress` FROM `user_achievements` WHERE `userid` = '" + UserId + "'"); dAchievements = dbClient.getTable(); dbClient.SetQuery("SELECT room_id FROM user_favorites WHERE `user_id` = '" + UserId + "'"); dFavouriteRooms = dbClient.getTable(); dbClient.SetQuery("SELECT ignore_id FROM user_ignores WHERE `user_id` = '" + UserId + "'"); dIgnores = dbClient.getTable(); dbClient.SetQuery("SELECT `badge_id`,`badge_slot` FROM user_badges WHERE `user_id` = '" + UserId + "'"); dBadges = dbClient.getTable(); dbClient.SetQuery("SELECT `effect_id`,`total_duration`,`is_activated`,`activated_stamp` FROM user_effects WHERE `user_id` = '" + UserId + "'"); dEffects = dbClient.getTable(); dbClient.SetQuery( "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online " + "FROM users " + "JOIN messenger_friendships " + "ON users.id = messenger_friendships.user_one_id " + "WHERE messenger_friendships.user_two_id = " + UserId + " " + "UNION ALL " + "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online " + "FROM users " + "JOIN messenger_friendships " + "ON users.id = messenger_friendships.user_two_id " + "WHERE messenger_friendships.user_one_id = " + UserId); dFriends = dbClient.getTable(); dbClient.SetQuery("SELECT messenger_requests.from_id,messenger_requests.to_id,users.username FROM users JOIN messenger_requests ON users.id = messenger_requests.from_id WHERE messenger_requests.to_id = " + UserId); dRequests = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM rooms WHERE `owner` = '" + UserId + "' LIMIT 150"); dRooms = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM users_talents WHERE userid = '" + UserId + "'"); talentsTable = dbClient.getTable(); dbClient.SetQuery("SELECT `quest_id`,`progress` FROM user_quests WHERE `user_id` = '" + UserId + "'"); dQuests = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM `user_relationships` WHERE `user_id` = @id"); dbClient.AddParameter("id", UserId); dRelations = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM user_subscriptions WHERE user_id = '" + UserId + "'"); Subscriptions = dbClient.getTable(); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); if (UserInfo == null) { dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + UserId + "')"); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); } dbClient.runFastQuery("UPDATE users SET online='1' WHERE id=" + UserId + " LIMIT 1"); } ConcurrentDictionary <string, UserAchievement> Achievements = new ConcurrentDictionary <string, UserAchievement>(); foreach (DataRow dRow in dAchievements.Rows) { Achievements.TryAdd(Convert.ToString(dRow["group"]), new UserAchievement(Convert.ToString(dRow["group"]), Convert.ToInt32(dRow["level"]), Convert.ToInt32(dRow["progress"]))); } List <int> favouritedRooms = new List <int>(); foreach (DataRow dRow in dFavouriteRooms.Rows) { favouritedRooms.Add(Convert.ToInt32(dRow["room_id"])); } List <int> ignores = new List <int>(); foreach (DataRow dRow in dIgnores.Rows) { ignores.Add(Convert.ToInt32(dRow["ignore_id"])); } List <Badge> badges = new List <Badge>(); foreach (DataRow dRow in dBadges.Rows) { badges.Add(new Badge(Convert.ToString(dRow["badge_id"]), Convert.ToInt32(dRow["badge_slot"]))); } Dictionary <int, MessengerBuddy> friends = new Dictionary <int, MessengerBuddy>(); foreach (DataRow dRow in dFriends.Rows) { int friendID = Convert.ToInt32(dRow["id"]); string friendName = Convert.ToString(dRow["username"]); string friendLook = Convert.ToString(dRow["look"]); string friendMotto = Convert.ToString(dRow["motto"]); int friendLastOnline = Convert.ToInt32(dRow["last_online"]); bool friendHideOnline = QuasarEnvironment.EnumToBool(dRow["hide_online"].ToString()); bool friendHideRoom = QuasarEnvironment.EnumToBool(dRow["hide_inroom"].ToString()); if (friendID == UserId) { continue; } if (!friends.ContainsKey(friendID)) { friends.Add(friendID, new MessengerBuddy(friendID, friendName, friendLook, friendMotto, friendLastOnline, friendHideOnline, friendHideRoom)); } } Dictionary <int, MessengerRequest> requests = new Dictionary <int, MessengerRequest>(); foreach (DataRow dRow in dRequests.Rows) { int receiverID = Convert.ToInt32(dRow["from_id"]); int senderID = Convert.ToInt32(dRow["to_id"]); string requestUsername = Convert.ToString(dRow["username"]); if (receiverID != UserId) { if (!requests.ContainsKey(receiverID)) { requests.Add(receiverID, new MessengerRequest(UserId, receiverID, requestUsername)); } } else { if (!requests.ContainsKey(senderID)) { requests.Add(senderID, new MessengerRequest(UserId, senderID, requestUsername)); } } } List <RoomData> rooms = new List <RoomData>(); foreach (DataRow dRow in dRooms.Rows) { rooms.Add(QuasarEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToInt32(dRow["id"]), dRow)); } Dictionary <int, int> quests = new Dictionary <int, int>(); foreach (DataRow dRow in dQuests.Rows) { int questId = Convert.ToInt32(dRow["quest_id"]); if (quests.ContainsKey(questId)) { quests.Remove(questId); } quests.Add(questId, Convert.ToInt32(dRow["progress"])); } Dictionary <int, Relationship> Relationships = new Dictionary <int, Relationship>(); foreach (DataRow Row in dRelations.Rows) { if (friends.ContainsKey(Convert.ToInt32(Row[2]))) { Relationships.Add(Convert.ToInt32(Row[2]), new Relationship(Convert.ToInt32(Row[0]), Convert.ToInt32(Row[2]), Convert.ToInt32(Row[3].ToString()))); } } Dictionary <int, UserTalent> talents = new Dictionary <int, UserTalent>(); if (talentsTable != null) { foreach (DataRow row in talentsTable.Rows) { int num2 = (int)row["talent_id"]; int state = (int)row["talent_state"]; talents.Add(num2, new UserTalent(num2, state)); } } Dictionary <string, Subscription> subscriptions = new Dictionary <string, Subscription>(); foreach (DataRow dataRow in Subscriptions.Rows) { string str = (string)dataRow["subscription_id"]; int TimeExpire = (int)dataRow["timestamp_expire"]; subscriptions.Add(str, new Subscription(str, TimeExpire)); } Habbo user = HabboFactory.GenerateHabbo(dUserInfo, UserInfo); dUserInfo = null; dAchievements = null; dFavouriteRooms = null; dIgnores = null; dBadges = null; dEffects = null; dFriends = null; dRequests = null; dRooms = null; dRelations = null; errorCode = 0; return(new UserData(UserId, Achievements, favouritedRooms, ignores, badges, friends, requests, rooms, quests, user, Relationships, talents, subscriptions)); }
internal static UserData GetUserData(int userId) { DataRow dUserInfo; DataRow userInfo; DataTable dRelations; using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery( "SELECT `id`,`username`,`rank`,`motto`,`look`,`gender`,`last_online`,`credits`,`activity_points`,`home_room`,`block_newfriends`,`hide_online`,`hide_inroom`,`vip`,`account_created`,`vip_points`,`machine_id`,`volume`,`chat_preference`, `focus_preference`, `pets_muted`,`bots_muted`,`advertising_report_blocked`,`last_change`,`gotw_points`,`ignore_invites`,`time_muted`,`allow_gifts`,`friend_bar_state`,`disable_forced_effects`,`allow_mimic`,`rank_vip` FROM `users` WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", userId); dUserInfo = dbClient.GetRow(); PlusEnvironment.GetGame().GetClientManager().LogClonesOut(Convert.ToInt32(userId)); if (dUserInfo == null) { return(null); } if (PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(userId) != null) { return(null); } dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1"); userInfo = dbClient.GetRow(); if (userInfo == null) { dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + userId + "')"); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1"); userInfo = dbClient.GetRow(); } dbClient.SetQuery("SELECT group_id,rank FROM group_memberships WHERE user_id=@id"); dbClient.AddParameter("id", userId); dbClient.GetTable(); dbClient.SetQuery("SELECT `id`,`target`,`type` FROM user_relationships WHERE user_id=@id"); dbClient.AddParameter("id", userId); dRelations = dbClient.GetTable(); } var achievements = new ConcurrentDictionary <string, UserAchievement>(); var favouritedRooms = new List <int>(); var badges = new List <Badge>(); var friends = new Dictionary <int, MessengerBuddy>(); var friendRequests = new Dictionary <int, MessengerRequest>(); var rooms = new List <RoomData>(); var quests = new Dictionary <int, int>(); var relationships = new Dictionary <int, Relationship>(); foreach (DataRow row in dRelations.Rows) { if (!relationships.ContainsKey(Convert.ToInt32(row["id"]))) { relationships.Add(Convert.ToInt32(row["target"]), new Relationship(Convert.ToInt32(row["id"]), Convert.ToInt32(row["target"]), Convert.ToInt32(row["type"].ToString()))); } } var user = HabboFactory.GenerateHabbo(dUserInfo, userInfo); return(new UserData(userId, achievements, favouritedRooms, badges, friends, friendRequests, rooms, quests, user, relationships)); }
public static UserData GetUserData(string sessionTicket, out byte errorCode) { int userId; DataRow dUserInfo; DataTable dAchievements; DataTable dFavouriteRooms; DataTable dBadges; DataTable dFriends; DataTable dRequests; DataTable dRooms; DataTable dQuests; DataTable dRelations; DataRow userInfo; using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery( "SELECT `id`,`username`,`rank`,`motto`,`look`,`gender`,`last_online`,`credits`,`activity_points`,`home_room`,`block_newfriends`,`hide_online`,`hide_inroom`,`vip`,`account_created`,`vip_points`,`machine_id`,`volume`,`chat_preference`,`focus_preference`, `pets_muted`,`bots_muted`,`advertising_report_blocked`,`last_change`,`gotw_points`,`ignore_invites`,`time_muted`,`allow_gifts`,`friend_bar_state`,`disable_forced_effects`,`allow_mimic`,`rank_vip` FROM `users` WHERE `auth_ticket` = @sso LIMIT 1"); dbClient.AddParameter("sso", sessionTicket); dUserInfo = dbClient.GetRow(); if (dUserInfo == null) { errorCode = 1; return(null); } userId = Convert.ToInt32(dUserInfo["id"]); if (PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(userId) != null) { errorCode = 2; PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(userId).Disconnect(); return(null); } dbClient.SetQuery("SELECT `group`,`level`,`progress` FROM `user_achievements` WHERE `userid` = '" + userId + "'"); dAchievements = dbClient.GetTable(); dbClient.SetQuery("SELECT room_id FROM user_favorites WHERE `user_id` = '" + userId + "'"); dFavouriteRooms = dbClient.GetTable(); dbClient.SetQuery("SELECT `badge_id`,`badge_slot` FROM user_badges WHERE `user_id` = '" + userId + "'"); dBadges = dbClient.GetTable(); dbClient.SetQuery( "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online " + "FROM users " + "JOIN messenger_friendships " + "ON users.id = messenger_friendships.user_one_id " + "WHERE messenger_friendships.user_two_id = " + userId + " " + "UNION ALL " + "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online " + "FROM users " + "JOIN messenger_friendships " + "ON users.id = messenger_friendships.user_two_id " + "WHERE messenger_friendships.user_one_id = " + userId); dFriends = dbClient.GetTable(); dbClient.SetQuery( "SELECT messenger_requests.from_id,messenger_requests.to_id,users.username FROM users JOIN messenger_requests ON users.id = messenger_requests.from_id WHERE messenger_requests.to_id = " + userId); dRequests = dbClient.GetTable(); dbClient.SetQuery("SELECT * FROM rooms WHERE `owner` = '" + userId + "' LIMIT 150"); dRooms = dbClient.GetTable(); dbClient.SetQuery("SELECT `quest_id`,`progress` FROM user_quests WHERE `user_id` = '" + userId + "'"); dQuests = dbClient.GetTable(); dbClient.SetQuery("SELECT `id`,`user_id`,`target`,`type` FROM `user_relationships` WHERE `user_id` = '" + userId + "'"); dRelations = dbClient.GetTable(); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1"); userInfo = dbClient.GetRow(); if (userInfo == null) { dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + userId + "')"); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + userId + "' LIMIT 1"); userInfo = dbClient.GetRow(); } dbClient.RunQuery("UPDATE `users` SET `online` = '1', `auth_ticket` = '' WHERE `id` = '" + userId + "' LIMIT 1"); } var achievements = new ConcurrentDictionary <string, UserAchievement>(); foreach (DataRow dRow in dAchievements.Rows) { achievements.TryAdd(Convert.ToString(dRow["group"]), new UserAchievement(Convert.ToString(dRow["group"]), Convert.ToInt32(dRow["level"]), Convert.ToInt32(dRow["progress"]))); } var favouritedRooms = (from DataRow dRow in dFavouriteRooms.Rows select Convert.ToInt32(dRow["room_id"])).ToList(); var badges = (from DataRow dRow in dBadges.Rows select new Badge(Convert.ToString(dRow["badge_id"]), Convert.ToInt32(dRow["badge_slot"]))).ToList(); var friends = new Dictionary <int, MessengerBuddy>(); foreach (DataRow dRow in dFriends.Rows) { var friendId = Convert.ToInt32(dRow["id"]); var friendName = Convert.ToString(dRow["username"]); var friendLook = Convert.ToString(dRow["look"]); var friendMotto = Convert.ToString(dRow["motto"]); var friendLastOnline = Convert.ToInt32(dRow["last_online"]); var friendHideOnline = PlusEnvironment.EnumToBool(dRow["hide_online"].ToString()); var friendHideRoom = PlusEnvironment.EnumToBool(dRow["hide_inroom"].ToString()); if (friendId == userId) { continue; } if (!friends.ContainsKey(friendId)) { friends.Add(friendId, new MessengerBuddy(friendId, friendName, friendLook, friendMotto, friendLastOnline, friendHideOnline, friendHideRoom)); } } var requests = new Dictionary <int, MessengerRequest>(); foreach (DataRow dRow in dRequests.Rows) { var receiverId = Convert.ToInt32(dRow["from_id"]); var senderId = Convert.ToInt32(dRow["to_id"]); var requestUsername = Convert.ToString(dRow["username"]); if (receiverId != userId) { if (!requests.ContainsKey(receiverId)) { requests.Add(receiverId, new MessengerRequest(userId, receiverId, requestUsername)); } } else { if (!requests.ContainsKey(senderId)) { requests.Add(senderId, new MessengerRequest(userId, senderId, requestUsername)); } } } var rooms = (from DataRow dRow in dRooms.Rows select PlusEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToInt32(dRow["id"]), dRow)).ToList(); var quests = new Dictionary <int, int>(); foreach (DataRow dRow in dQuests.Rows) { var questId = Convert.ToInt32(dRow["quest_id"]); if (quests.ContainsKey(questId)) { quests.Remove(questId); } quests.Add(questId, Convert.ToInt32(dRow["progress"])); } var relationships = new Dictionary <int, Relationship>(); foreach (DataRow row in dRelations.Rows) { if (friends.ContainsKey(Convert.ToInt32(row[2]))) { relationships.Add(Convert.ToInt32(row[2]), new Relationship(Convert.ToInt32(row[0]), Convert.ToInt32(row[2]), Convert.ToInt32(row[3].ToString()))); } } var user = HabboFactory.GenerateHabbo(dUserInfo, userInfo); errorCode = 0; return(new UserData(userId, achievements, favouritedRooms, badges, friends, requests, rooms, quests, user, relationships)); }
public void Execute(Player Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter the username of the user you'd like to IP ban & account ban."); return; } var Habbo = HabboFactory.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_soft_ban") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } double Expire = 0; var Hours = Params[2]; if (string.IsNullOrEmpty(Hours) || Hours == "perm") { Expire = UnixUtilities.GetNow() + 78892200; } else { Expire = UnixUtilities.GetNow() + Convert.ToDouble(Hours) * 3600; } string Reason = null; if (Params.Length >= 4) { Reason = CommandManager.MergeParams(Params, 3); } else { Reason = "No reason specified."; } var Username = Habbo.Username; using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); } Program.GameContext.GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.Username, Habbo.Username, Reason, Expire); var TargetClient = Program.GameContext.PlayerController.GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Success, you have account banned the user '" + Username + "' for " + Hours + " hour(s) with the reason '" + Reason + "'!"); }
internal static UserData GetUserData(string sessionTicket, string ip, out byte errorCode) { DataTable dataTable = null; DataRow dataRow; uint Userid; DataTable dataTable2; DataTable table; DataRow row; DataTable dataTable3; DataTable dataTable4; DataTable dataTable5; DataRow dataRow2; DataTable dataTable6; DataTable dataTable7; DataTable dataTable8; DataTable dataTable9; DataTable dataTable10; DataTable dataTable11; DataTable dataTable12; DataTable dataTable13; DataTable table2; DataTable dataTable14; DataTable dataTable15; using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.setQuery("SELECT * FROM users WHERE auth_ticket = @sso "); queryreactor.addParameter("sso", sessionTicket); queryreactor.addParameter("ipaddress", ip); dataRow = queryreactor.getRow(); if (dataRow == null) { errorCode = 1; throw new UserDataNotFoundException(string.Format("No user found with ip {0} and sso {1}.", ip, sessionTicket)); } Userid = Convert.ToUInt32(dataRow["id"]); queryreactor.runFastQuery("UPDATE users SET online='1' WHERE id=" + Userid + " LIMIT 1"); if (CyberEnvironment.GetGame().GetClientManager().GetClientByUserID(Userid) != null) { errorCode = 2; CyberEnvironment.GetGame().GetClientManager().GetClientByUserID(Userid).Disconnect(); return(null); } queryreactor.setQuery("SELECT * FROM user_achievement WHERE userid = " + Userid); dataTable2 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM user_talents WHERE userid = " + Userid); table = queryreactor.getTable(); queryreactor.setQuery("SELECT COUNT(*) FROM user_stats WHERE id=" + Userid); if (int.Parse(queryreactor.getString()) == 0) { queryreactor.runFastQuery("INSERT INTO user_stats (id) VALUES (" + Userid + ");"); } queryreactor.setQuery("SELECT * FROM user_stats WHERE id=" + Userid + " LIMIT 1"); row = queryreactor.getRow(); queryreactor.setQuery("SELECT room_id FROM user_favorites WHERE user_id = " + Userid); dataTable3 = queryreactor.getTable(); queryreactor.setQuery("SELECT ignore_id FROM user_ignores WHERE user_id = " + Userid); dataTable4 = queryreactor.getTable(); queryreactor.setQuery("SELECT tag FROM user_tags WHERE user_id = " + Userid); dataTable5 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM user_subscriptions WHERE user_id = " + Userid + " AND timestamp_expire > UNIX_TIMESTAMP() ORDER BY subscription_id DESC LIMIT 1"); dataRow2 = queryreactor.getRow(); queryreactor.setQuery("SELECT * FROM user_badges WHERE user_id = " + Userid); dataTable6 = queryreactor.getTable(); queryreactor.setQuery("SELECT `items`.* , COALESCE(`items_groups`.`group_id`, 0) AS group_id FROM `items` LEFT OUTER JOIN `items_groups` ON `items`.`id` = `items_groups`.`id` WHERE room_id='0' AND user_id=" + Userid + " LIMIT 8000"); dataTable7 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM user_effects WHERE user_id = " + Userid); dataTable8 = queryreactor.getTable(); queryreactor.setQuery("SELECT poll_id FROM user_polldata WHERE user_id = " + Userid + " GROUP BY poll_id;"); dataTable9 = queryreactor.getTable(); queryreactor.setQuery(string.Concat(new object[] { "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.user_one_id WHERE messenger_friendships.user_two_id = ", Userid, " UNION ALL SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.user_two_id WHERE messenger_friendships.user_one_id = ", Userid })); dataTable10 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM user_stats WHERE id=" + Userid + " LIMIT 1"); row = queryreactor.getRow(); queryreactor.setQuery("SELECT messenger_requests.from_id,messenger_requests.to_id,users.username FROM users JOIN messenger_requests ON users.id = messenger_requests.from_id WHERE messenger_requests.to_id = " + Userid); dataTable11 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM rooms WHERE owner = @name LIMIT 150"); queryreactor.addParameter("name", (string)dataRow["username"]); dataTable12 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM bots WHERE user_id = " + Userid + " AND room_id = 0 AND ai_type='pet'"); dataTable13 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM user_quests WHERE user_id = " + Userid); table2 = queryreactor.getTable(); queryreactor.setQuery("SELECT * FROM bots WHERE user_id=" + Userid + " AND room_id=0 AND ai_type='generic'"); dataTable14 = queryreactor.getTable(); queryreactor.setQuery("SELECT group_id,rank FROM group_memberships WHERE user_id=" + Userid); dataTable = queryreactor.getTable(); queryreactor.setQuery(string.Concat(new object[] { "UPDATE user_info SET login_timestamp = '", CyberEnvironment.GetUnixTimestamp(), "' WHERE user_id = ", Userid, " ; " })); queryreactor.addParameter("ip", ip); queryreactor.runQuery(); queryreactor.setQuery("SELECT * FROM user_relationships WHERE user_id=@id"); queryreactor.addParameter("id", Userid); dataTable15 = queryreactor.getTable(); queryreactor.runFastQuery("UPDATE users SET online='1' WHERE id=" + Userid + " LIMIT 1"); } Dictionary <string, UserAchievement> dictionary = new Dictionary <string, UserAchievement>(); foreach (DataRow dataRow3 in dataTable2.Rows) { string text = (string)dataRow3["group"]; int level = (int)dataRow3["level"]; int progress = (int)dataRow3["progress"]; UserAchievement value = new UserAchievement(text, level, progress); dictionary.Add(text, value); } Dictionary <int, UserTalent> dictionary2 = new Dictionary <int, UserTalent>(); foreach (DataRow dataRow4 in table.Rows) { int num2 = (int)dataRow4["talent_id"]; int state = (int)dataRow4["talent_state"]; UserTalent value2 = new UserTalent(num2, state); dictionary2.Add(num2, value2); } List <uint> list = new List <uint>(); foreach (DataRow dataRow5 in dataTable3.Rows) { uint item = Convert.ToUInt32(dataRow5["room_id"]); list.Add(item); } List <uint> list2 = new List <uint>(); foreach (DataRow dataRow6 in dataTable4.Rows) { uint item2 = Convert.ToUInt32(dataRow6["ignore_id"]); list2.Add(item2); } List <string> list3 = new List <string>(); foreach (DataRow dataRow7 in dataTable5.Rows) { string item3 = dataRow7["tag"].ToString().Replace(" ", ""); list3.Add(item3); } Subscription sub = null; if (dataRow2 != null) { sub = new Subscription((int)dataRow2["subscription_id"], (int)dataRow2["timestamp_activated"], (int)dataRow2["timestamp_expire"], (int)dataRow2["timestamp_lastgift"]); } Dictionary <uint, RoomBot> dictionary3 = new Dictionary <uint, RoomBot>(); foreach (DataRow row2 in dataTable14.Rows) { RoomBot roomBot = BotManager.GenerateBotFromRow(row2); dictionary3.Add(roomBot.BotId, roomBot); } List <Badge> list4 = new List <Badge>(); foreach (DataRow dataRow8 in dataTable6.Rows) { string code = (string)dataRow8["badge_id"]; int slot = (int)dataRow8["badge_slot"]; list4.Add(new Badge(code, slot)); } int miniMailCount = 0; try { DataRow Rowi; using (IQueryAdapter dbClient = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { dbClient.setQuery("SELECT Count( IsReaded ) FROM xdrcms_minimail WHERE InBin = 0 AND IsReaded = 0 AND SenderId != " + Userid + " AND OwnerId = " + Userid); Rowi = dbClient.getRow(); } if (Rowi != null) { // We are using aXDR CMS with MiniMail! miniMailCount = int.Parse(Rowi[0].ToString()); } } catch { } List <UserItem> list5 = new List <UserItem>(); foreach (DataRow dataRow9 in dataTable7.Rows) { uint id = Convert.ToUInt32(dataRow9[0]); uint baseItem = Convert.ToUInt32(dataRow9[3]); string extraData; if (!DBNull.Value.Equals(dataRow9[4])) { extraData = (string)dataRow9[4]; } else { extraData = string.Empty; } uint group = Convert.ToUInt32(dataRow9["group_id"]); string songCode = (string)dataRow9["songcode"]; list5.Add(new UserItem(id, baseItem, extraData, group, songCode)); } List <AvatarEffect> list6 = new List <AvatarEffect>(); foreach (DataRow dataRow10 in dataTable8.Rows) { int effectId = (int)dataRow10["effect_id"]; int totalDuration = (int)dataRow10["total_duration"]; bool activated = CyberEnvironment.EnumToBool((string)dataRow10["is_activated"]); double activateTimestamp = (double)dataRow10["activated_stamp"]; list6.Add(new AvatarEffect(effectId, totalDuration, activated, activateTimestamp)); } HashSet <uint> pollSuggested = new HashSet <uint>(); foreach (DataRow Row in dataTable9.Rows) { uint pId = (uint)Row["poll_id"]; pollSuggested.Add(pId); } Dictionary <uint, MessengerBuddy> dictionary4 = new Dictionary <uint, MessengerBuddy>(); string arg_A3D_0 = (string)dataRow["username"]; int num3 = checked (dataTable10.Rows.Count - 700); if (num3 > 0) { using (IQueryAdapter queryreactor2 = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor2.runFastQuery(string.Concat(new object[] { "DELETE FROM messenger_friendships WHERE user_one_id=", Userid, " OR user_two_id=", Userid, " LIMIT ", num3 })); queryreactor2.setQuery(string.Concat(new object[] { "SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.user_one_id WHERE messenger_friendships.user_two_id = ", Userid, " UNION ALL SELECT users.id,users.username,users.motto,users.look,users.last_online,users.hide_inroom,users.hide_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.user_two_id WHERE messenger_friendships.user_one_id = ", Userid })); dataTable10 = queryreactor2.getTable(); } } foreach (DataRow dataRow12 in dataTable10.Rows) { uint num4 = Convert.ToUInt32(dataRow12["id"]); string pUsername = (string)dataRow12["username"]; string pLook = (string)dataRow12["look"]; string pMotto = (string)dataRow12["motto"]; int pLastOnline = Convert.ToInt32(dataRow12["last_online"]); bool pAppearOffline = CyberEnvironment.EnumToBool(dataRow12["hide_online"].ToString()); bool pHideInroom = CyberEnvironment.EnumToBool(dataRow12["hide_inroom"].ToString()); if (num4 != Userid && !dictionary4.ContainsKey(num4)) { dictionary4.Add(num4, new MessengerBuddy(num4, pUsername, pLook, pMotto, pLastOnline, pAppearOffline, pHideInroom)); } } Dictionary <uint, MessengerRequest> dictionary5 = new Dictionary <uint, MessengerRequest>(); foreach (DataRow dataRow13 in dataTable11.Rows) { uint num5 = Convert.ToUInt32(dataRow13["from_id"]); uint num6 = Convert.ToUInt32(dataRow13["to_id"]); string pUsername2 = (string)dataRow13["username"]; if (num5 != Userid) { if (!dictionary5.ContainsKey(num5)) { dictionary5.Add(num5, new MessengerRequest(Userid, num5, pUsername2)); } } else { if (!dictionary5.ContainsKey(num6)) { dictionary5.Add(num6, new MessengerRequest(Userid, num6, pUsername2)); } } } HashSet <RoomData> list8 = new HashSet <RoomData>(); foreach (DataRow dataRow14 in dataTable12.Rows) { uint roomId = Convert.ToUInt32(dataRow14["id"]); list8.Add(CyberEnvironment.GetGame().GetRoomManager().FetchRoomData(roomId, dataRow14)); } Dictionary <uint, Pet> dictionary6 = new Dictionary <uint, Pet>(); foreach (DataRow dataRow15 in dataTable13.Rows) { using (IQueryAdapter queryreactor3 = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor3.setQuery("SELECT * FROM bots_petdata WHERE id=" + dataRow15[0] + " LIMIT 1"); DataRow row3 = queryreactor3.getRow(); if (row3 != null) { Pet pet = Catalog.GeneratePetFromRow(dataRow15, row3); dictionary6.Add(pet.PetId, pet); } } } Dictionary <uint, int> dictionary7 = new Dictionary <uint, int>(); foreach (DataRow dataRow16 in table2.Rows) { uint key = Convert.ToUInt32(dataRow16["quest_id"]); int value3 = (int)dataRow16["progress"]; if (dictionary7.ContainsKey(key)) { dictionary7.Remove(key); } dictionary7.Add(key, value3); } HashSet <GroupUser> list9 = new HashSet <GroupUser>(); foreach (DataRow dataRow17 in dataTable.Rows) { list9.Add(new GroupUser(Userid, (uint)dataRow17[0], (int)Convert.ToInt16(dataRow17[1]))); } Dictionary <int, Relationship> dictionary8 = new Dictionary <int, Relationship>(); foreach (DataRow dataRow18 in dataTable15.Rows) { dictionary8.Add((int)dataRow18[0], new Relationship((int)dataRow18[0], (int)dataRow18[2], Convert.ToInt32(dataRow18[3].ToString()))); } Habbo user = HabboFactory.GenerateHabbo(dataRow, row, list9); dataRow = null; dataTable2 = null; dataTable3 = null; dataTable4 = null; dataTable5 = null; dataRow2 = null; dataTable6 = null; dataTable7 = null; dataTable8 = null; dataTable10 = null; dataTable11 = null; dataTable12 = null; dataTable13 = null; dataTable14 = null; dataTable15 = null; dataTable9 = null; errorCode = 0; return(new UserData(Userid, dictionary, dictionary2, list, list2, list3, sub, list4, list5, list6, dictionary4, dictionary5, list8, dictionary6, dictionary7, user, dictionary3, dictionary8, pollSuggested, miniMailCount)); }
public static UserData GetUserData(int UserId) { DataRow dUserInfo = null; DataRow UserInfo = null; DataTable dRelations = null; DataTable dBadges = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `id`,`username`,`rank`,`motto`,`look`,`gender`,`last_online`,`credits`,`activity_points`,`home_room`,`block_newfriends`,`hide_online`,`hide_inroom`,`account_created`,`vip_points`,`machine_id`,`volume`,`chat_preference`, `focus_preference`, `pets_muted`,`bots_muted`,`advertising_report_blocked`,`last_change`,`event_points`,`ignore_invites`,`time_muted`,`allow_gifts`,`friend_bar_state`,`disable_forced_effects`,`allow_mimic`,`rank_vip`,`colour` FROM `users` WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("id", UserId); dUserInfo = dbClient.getRow(); PlusEnvironment.GetGame().GetClientManager().LogClonesOut(Convert.ToInt32(UserId)); if (dUserInfo == null) { return(null); } if (PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId) != null) { return(null); } dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); if (UserInfo == null) { dbClient.RunQuery("INSERT INTO `user_info` (`user_id`) VALUES ('" + UserId + "')"); dbClient.SetQuery("SELECT * FROM `user_info` WHERE `user_id` = '" + UserId + "' LIMIT 1"); UserInfo = dbClient.getRow(); } dbClient.SetQuery("SELECT `id`,`target`,`type` FROM user_relationships WHERE user_id=@id"); dbClient.AddParameter("id", UserId); dRelations = dbClient.getTable(); dbClient.SetQuery("SELECT `badge_id`,`badge_slot` FROM user_badges WHERE `user_id`=@id"); dbClient.AddParameter("id", UserId); dBadges = dbClient.getTable(); } ConcurrentDictionary <string, UserAchievement> Achievements = new ConcurrentDictionary <string, UserAchievement>(); List <int> FavouritedRooms = new List <int>(); List <int> Ignores = new List <int>(); List <Badge> Badges = new List <Badge>(); foreach (DataRow Row in dBadges.Rows) { Badges.Add(new Badge(Convert.ToString(Row["badge_id"]), Convert.ToInt32(Row["badge_slot"]))); } Dictionary <int, MessengerBuddy> Friends = new Dictionary <int, MessengerBuddy>(); Dictionary <int, MessengerRequest> FriendRequests = new Dictionary <int, MessengerRequest>(); List <RoomData> Rooms = new List <RoomData>(); Dictionary <int, int> Quests = new Dictionary <int, int>(); Dictionary <int, Relationship> Relationships = new Dictionary <int, Relationship>(); foreach (DataRow Row in dRelations.Rows) { if (!Relationships.ContainsKey(Convert.ToInt32(Row["id"]))) { Relationships.Add(Convert.ToInt32(Row["target"]), new Relationship(Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["target"]), Convert.ToInt32(Row["type"].ToString()))); } } Habbo user = HabboFactory.GenerateHabbo(dUserInfo, UserInfo); return(new UserData(UserId, Achievements, FavouritedRooms, Ignores, Badges, Friends, FriendRequests, Rooms, Quests, user, Relationships, null)); }
public void Parse(Player session, ClientPacket packet) { if (session?.GetHabbo() == null) { return; } // Run a quick check to see if we have any existing tickets. if (Program.GameContext.GetModerationManager().UserHasTickets(session.GetHabbo().Id)) { var pendingTicket = Program.GameContext.GetModerationManager().GetTicketBySenderId(session.GetHabbo().Id); if (pendingTicket != null) { session.SendPacket(new CallForHelpPendingCallsComposer(pendingTicket)); return; } } var chats = new List <string>(); var message = StringUtilities.Escape(packet.PopString().Trim()); var category = packet.PopInt(); var reportedUserId = packet.PopInt(); var type = packet.PopInt();// Unsure on what this actually is. var reportedUser = HabboFactory.GetHabboById(reportedUserId); if (reportedUser == null) { // User doesn't exist. return; } var messagecount = packet.PopInt(); for (var i = 0; i < messagecount; i++) { packet.PopInt(); chats.Add(packet.PopString()); } var ticket = new ModerationTicket(1, type, category, UnixUtilities.GetNow(), 1, session.GetHabbo(), reportedUser, message, session.GetHabbo().CurrentRoom, chats); if (!Program.GameContext.GetModerationManager().TryAddTicket(ticket)) { return; } using (var dbClient = Program.DatabaseManager.GetQueryReactor()) { // TODO: Come back to this. /*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 + "', '" + ReportedUserId + "', '0', @message, '0', '', '" + UnixTimestamp.GetNow() + "')"); * dbClient.AddParameter("message", Message); * dbClient.RunQuery();*/ dbClient.RunQuery("UPDATE `user_info` SET `cfhs` = `cfhs` + '1' WHERE `user_id` = '" + session.GetHabbo().Id + "' LIMIT 1"); } Program.GameContext.PlayerController.ModAlert("A new support ticket has been submitted!"); Program.GameContext.PlayerController.SendPacket(new ModeratorSupportTicketComposer(session.GetHabbo().Id, ticket), "mod_tool"); }