public void DeliverItems(Session User1, Session User2) { lock (mSyncRoot) { using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { foreach (Item Item in mUserOneOffers.Values) { User1.InventoryCache.RemoveItem(Item.Id); User2.InventoryCache.Add(Item); Item.MoveToUserInventory(MySqlClient, User2.CharacterId); } foreach (Item Item in mUserTwoOffers.Values) { User2.InventoryCache.RemoveItem(Item.Id); User1.InventoryCache.Add(Item); Item.MoveToUserInventory(MySqlClient, User1.CharacterId); } } User1.SendData(InventoryRefreshComposer.Compose()); User2.SendData(InventoryRefreshComposer.Compose()); mUserOneOffers.Clear(); mUserTwoOffers.Clear(); mTradeStage = TradeStage.Dead; } }
private static bool HandleExchangeRedemption(Session Session, Item Item, RoomInstance Instance, ItemEventType Event, int RequestData) { switch (Event) { case ItemEventType.Interact: int ItemValue = 0; int.TryParse(Item.Flags, out ItemValue); using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { if (ItemValue != 0) { Session.CharacterInfo.UpdateCreditsBalance(MySqlClient, ItemValue); Session.SendData(CreditsBalanceComposer.Compose(Session.CharacterInfo.CreditsBalance)); } Item.RemovePermanently(MySqlClient); } Instance.TakeItem(Item.Id); Instance.RegenerateRelativeHeightmap(); break; } return(true); }
public void Disconnect(DisconnectionType dcType) { InProcessOfDisconnection = true; Player.UpdateCurrentCooldowns(); if (dcType == DisconnectionType.SOCKET_CLOSED) { EstDisconnectionTime = DateTime.Now.AddSeconds(30); return; } using (var mySqlClient = SqlDatabaseManager.GetClient()) { mySqlClient.ExecuteNonQuery($"UPDATE player_accounts SET online = 0 WHERE userID = {Player.Id}"); } foreach (var gameSessions in GameManager.GameSessions.Values) { if (gameSessions != null) { var player = gameSessions.Player; if (player.Storage.GroupInvites.ContainsKey(Player.Id)) { GroupSystem.Revoke(Player, player); } } } PrepareForDisconnect(); Client.Disconnect(); InProcessOfDisconnection = false; var gameSession = this; GameManager.GameSessions.TryRemove(Player.Id, out gameSession); Program.TickManager.RemoveTick(this); }
private void LoadAnnouncements() { try { using (SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient()) { var queryTable = mySqlClient.ExecuteQueryTable("SELECT * FROM server_announcements"); if (queryTable != null) { foreach (DataRow reader in queryTable.Rows) { int id = intConv(reader["ID"]); string text = reader["ANNOUNCEMENT"].ToString(); ////add to Storage Chat.StorageManager.Announcements.Add(id, new Announcement( id, text )); } } } } catch (Exception e) { Debug.WriteLine("Failed loading Chat Mods, " + e.Message); } }
private static void smethod_6(Session session_0, ClientMessage clientMessage_0) { uint num = clientMessage_0.ReadUnsignedInteger(); using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("user1", session_0.CharacterId); client.SetParameter("user2", num); client.SetParameter("confirmed", 1); if (client.ExecuteNonQuery("UPDATE laptop_amigos SET aceptado = @confirmed WHERE id_usuario = @user1 AND id_amigo = @user2 LIMIT 1") > 0) { client.SetParameter("user1", num); client.SetParameter("user2", session_0.CharacterId); client.SetParameter("confirmed", 1); client.ExecuteNonQuery("INSERT INTO laptop_amigos (id_usuario,id_amigo,aceptado) VALUES (@user1,@user2,@confirmed)"); session_0.LaptopFriendCache.AddToCache(num); Session sessionByCharacterId = SessionManager.GetSessionByCharacterId(num); if (sessionByCharacterId != null) { sessionByCharacterId.LaptopFriendCache.AddToCache(session_0.CharacterId); ForceLaptopUpdateForSession(sessionByCharacterId); sessionByCharacterId.SendData(LaptopNewFriendComposer.Compose(session_0.CharacterInfo), false); } session_0.SendData(LaptopAcceptFriendComposer.Compose(num), false); } } }
private static void smethod_22(Session session_0, ClientMessage clientMessage_0) { uint actorId = clientMessage_0.ReadUnsignedInteger(); uint num2 = clientMessage_0.ReadUnsignedInteger(); SpaceInstance instanceBySpaceId = SpaceManager.GetInstanceBySpaceId(session_0.CurrentSpaceId); if (instanceBySpaceId != null) { SpaceActor actor = instanceBySpaceId.GetActor(actorId); SpaceActor actor2 = instanceBySpaceId.GetActor(num2); if ((actor != null) && (actor2 != null) && ChatCommands.block_coco == false) { CharacterInfo referenceObject = (CharacterInfo)actor.ReferenceObject; CharacterInfo info2 = (CharacterInfo)actor2.ReferenceObject; if (!actor2.IsLocked) { using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { referenceObject.UpdateGoldCreditsBalance(client, -200);//Coconut cost 10 referenceObject.UpdateCoconuts(client, true); info2.UpdateCoconuts(client, false); session_0.SendData(CharacterCoinsComposer.RemoveGoldCompose(200), false);//Coconut cost 10 instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor, 5), 0, false); instanceBySpaceId.BroadcastMessage(SpaceUpdateUserStatistics.Compose(actor2, 5), 0, false); actor2.Lock(6, false, true); instanceBySpaceId.BroadcastMessage(SpaceUserSendCoconut.SendAndBlock(actor2.ReferenceId), 0, false); } } } } }
public void InsertChatLog(Character character, int roomId, string log, MessageType logType) { var playerId = 0; if (character != null) { playerId = character.Id; } try { using (var mySqlClient = SqlDatabaseManager.GetClient()) { MySqlCommand cmd = new MySqlCommand( $"INSERT INTO server_chat_logs (PLAYER_ID, ROOM_ID, LOG, LOG_TYPE, LOG_DATE) VALUES ('{playerId}', '{roomId}', @LOG, '{(int) logType}', NOW())", mySqlClient.mConnection); cmd.Parameters.AddWithValue("@LOG", log); cmd.ExecuteNonQuery(); } } catch (Exception e) { Console.WriteLine(e); Console.WriteLine(e.Message); } }
private static void AddToPlaylist(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || !Instance.CheckUserRights(Session, true) || Instance.MusicController == null || Instance.MusicController.PlaylistSize >= Instance.MusicController.PlaylistCapacity) { return; } Item DiskItem = Session.InventoryCache.GetItem(Message.PopWiredUInt32()); if (DiskItem == null || DiskItem.Definition.Behavior != ItemBehavior.MusicDisk) { return; } int NewOrder = Instance.MusicController.AddDisk(DiskItem); if (NewOrder < 0) { return; } Session.InventoryCache.RemoveItem(DiskItem.Id); using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { DiskItem.MoveToSoundManager(MySqlClient, Instance.MusicController.LinkedItemId, NewOrder); } Session.SendData(InventoryItemRemovedComposer.Compose(DiskItem.Id)); Session.SendData(JukeboxPlaylistComposer.Compose(Instance.MusicController.PlaylistCapacity, Instance.MusicController.Playlist.Values.ToList())); }
private static void RemoveFromPlaylist(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || Instance.MusicController == null || !Instance.CheckUserRights(Session, true)) { return; } Item TakenItem = Instance.MusicController.RemoveDisk(Message.PopWiredInt32()); // playlist will skip to the next item automatically if it has to if (TakenItem == null) { return; } Session.InventoryCache.Add(TakenItem); using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { TakenItem.MoveToUserInventory(MySqlClient, Session.CharacterId); } Session.SendData(InventoryItemAddedComposer.Compose(TakenItem)); Session.SendData(JukeboxDisksComposer.Compose(Session)); Session.SendData(JukeboxPlaylistComposer.Compose(Instance.MusicController.PlaylistCapacity, Instance.MusicController.Playlist.Values.ToList())); }
public static int GetAdministratorsCountFromDB() { DataRow row = null; try { using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { row = client.ExecuteQueryRow("SELECT COUNT(*) FROM Administrator;"); } } catch (Exception e) { Logger.WriteLine(e.ToString(), Logger.LOG_LEVEL.WARN); } if (row == null) { return(-1); } int count; if (!Int32.TryParse(row[0].ToString(), out count)) { return(-1); } return(count); }
private static void smethod_6(Session session_0, ClientMessage clientMessage_0) { uint num = clientMessage_0.ReadUnsignedInteger(); using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("user1", session_0.CharacterId); client.SetParameter("user2", num); client.SetParameter("confirmed", 1); string query1 = "UPDATE laptop_amigos SET aceptado = '1' WHERE id_usuario = " + session_0.CharacterId + " AND id_amigo = " + num + " LIMIT 1"; Console.WriteLine(query1); if (client.ExecuteNonQuery(query1) > 0) { client.ExecuteNonQuery("UPDATE laptop_amigos SET aceptado = '1' WHERE id_usuario = " + num + " AND id_amigo = " + session_0.CharacterId + " LIMIT 1"); session_0.LaptopFriendCache.AddToCache(num); Session sessionByCharacterId = SessionManager.GetSessionByCharacterId(num); if (sessionByCharacterId != null) { sessionByCharacterId.LaptopFriendCache.AddToCache(session_0.CharacterId); ForceLaptopUpdateForSession(sessionByCharacterId); sessionByCharacterId.SendData(LaptopNewFriendComposer.Compose(session_0.CharacterInfo)); } session_0.SendData(LaptopAcceptFriendComposer.Compose(num)); } } }
public static int InsertNewAdministratorToDBFromExistingUser(LocalUser user, byte[] password) { int count = 0; try { using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { string sql = "INSERT INTO Administrator (member_id, password_hash) VALUES(@member_id, @password_hash);"; client.SetParameter("@member_id", user.UserID); client.SetParameter("@password_hash", password); count = client.ExecuteNonQuery(sql); } } catch (DbException e) { if (e.Message.Contains("Administrator_FKIndex1")) { return(-4); } else if (e.Message.Contains("unique_member_administrator_ck")) { return(-3); } else { Logger.WriteLine(e.ToString(), Logger.LOG_LEVEL.WARN); } } return(count); }
public static uint GetFirstAdministratorAccount() { DataRow row = null; try { using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { string sql = "SELECT m.id " + "FROM Administrator AS a " + "INNER JOIN Member AS m ON m.id = a.member_id " + "ORDER BY a.id " + "LIMIT 1;"; row = client.ExecuteQueryRow(sql); } } catch (Exception e) { Logger.WriteLine(e.ToString(), Logger.LOG_LEVEL.WARN); } if (row == null) { return(0); } uint id; if (!UInt32.TryParse(row[0].ToString(), out id)) { return(0); } return(id); }
private static void SetFigure(Session Session, ClientMessage Message) { // todo: verify data(!!!!) string NewGender = Message.PopString().ToLower(); string NewFigure = UserInputFilter.FilterString(Message.PopString()); if (NewGender != "m" && NewGender != "f") { NewGender = "m"; } if (NewFigure.Length == 0 || (NewFigure == Session.CharacterInfo.Figure)) { return; } using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { Session.CharacterInfo.UpdateFigure(MySqlClient, NewGender, NewFigure); AchievementManager.ProgressUserAchievement(MySqlClient, Session, "ACH_AvatarLooks", 1); } QuestManager.ProgressUserQuest(Session, QuestType.PROFILE_CHANGE_LOOK); Session.SendInfoUpdate(); }
public static uint GetUidFromName(string Name) { lock (dictionary_0) { foreach (KeyValuePair <uint, string> pair in dictionary_0) { if (pair.Value.ToLower() == Name.ToLower()) { return(pair.Key); } } using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("username", Name); object obj2 = client.ExecuteScalar("SELECT id FROM usuarios WHERE usuario = @username LIMIT 1"); if (obj2 != null) { uint key = (uint)obj2; dictionary_0.Add(key, Name); return(key); } } } return(0); }
public static void ProcessThread(object state) { using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { ReloadCache(MySqlClient); } }
public void Chat(string MessageText, bool Shout = false, bool CanOverrideRoomMute = false) { if (mIsLeavingRoom && mForcedLeave) { return; } Unidle(); if (mInstance.RoomMuted && !CanOverrideRoomMute) { return; } mInstance.BroadcastChatMessage(this, MessageText, Shout, ChatEmotions.GetEmotionForText(MessageText)); if (mType == RoomActorType.UserCharacter) { using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { ModerationLogs.LogChatMessage(MySqlClient, mReferenceId, mInstance.RoomId, "(" + (Shout ? "Shout" : "Say") + ") " + MessageText); IncrecementAntiSpam(MySqlClient); } } }
public void RemoveBadge(string BadgeCode) { lock (mSyncRoot) { foreach (Badge badge in mStaticBadges) { if (badge.Code == BadgeCode) { mIndexCache.Remove(badge.Code); mStaticBadges.Remove(badge); foreach (KeyValuePair <int, Badge> EquipData in mEquippedBadges) { if (EquipData.Value.Code == BadgeCode) { mEquippedBadges.Remove(EquipData.Key); break; } } using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { MySqlClient.SetParameter("userid", mUserId); MySqlClient.SetParameter("badgecode", BadgeCode); MySqlClient.ExecuteNonQuery("DELETE FROM user_badges WHERE user_id = @userid AND badge_code = @badgecode"); } break; } } } }
private static void smethod_23(Session session_0, ClientMessage clientMessage_0) { string str = clientMessage_0.ReadString(); uint num = clientMessage_0.ReadUnsignedInteger(); using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("name", str); if (client.ExecuteQueryRow("SELECT id FROM islas WHERE nombre = @name AND id_parent = '0' LIMIT 1") != null) { session_0.SendData(CreateIslandComposer.TakenNameComposer(), false); } else { client.SetParameter("name", str); client.SetParameter("model", num); client.SetParameter("userid", session_0.CharacterId); client.ExecuteNonQuery("INSERT INTO islas (nombre,modelo_area,id_usuario) VALUES (@name, @model, @userid)"); client.SetParameter("name", str); DataRow row2 = client.ExecuteQueryRow("SELECT id FROM islas WHERE nombre = @name AND id_parent = '0' LIMIT 1"); if (row2 != null) { session_0.SendData(CreateIslandComposer.Compose((uint)row2["id"]), false); } } } }
public static Player GetPlayer(int playerId) { Player player = null; try { using (var mySqlClient = SqlDatabaseManager.GetClient()) { string sql = $"SELECT * FROM player_accounts WHERE userID = {playerId} "; var querySet = mySqlClient.ExecuteQueryRow(sql); var name = Convert.ToString(querySet["shipName"]); var shipId = Convert.ToInt32(querySet["shipID"]); var factionId = Convert.ToInt32(querySet["factionID"]); var rankId = Convert.ToInt32(querySet["rankID"]); var clan = GameManager.GetClan(Convert.ToInt32(querySet["clanID"])); player = new Player(playerId, name, clan, factionId, new Position(0, 0), GameManager.GetSpacemap(0), rankId, shipId); player.Pet.Name = Convert.ToString(querySet["petName"]); } } catch (Exception e) { Out.WriteLine("Failed getting player account [ID: " + playerId + "] " + e); } return(player); }
public Dictionary <int, ChatIssue> LoadChatIssues(Player player) { var issues = new Dictionary <int, ChatIssue>(); try { using (var mySqlClient = SqlDatabaseManager.GetClient()) { var queryTable = mySqlClient.ExecuteQueryTable("SELECT * FROM player_chat_issues WHERE PLAYER_ID=" + player.Id); foreach (DataRow row in queryTable.Rows) { var id = intConv(row["ID"]); var issueType = (ChatIssueTypes)intConv(row["ISSUE_TYPE"]); var issuedTime = DateTime.Parse(row["ISSUED_AT"].ToString()); var reason = row["REASON"].ToString(); var expireTime = DateTime.Parse(row["EXPIRY"].ToString()); var issuedBy = intConv(row["ISSUED_BY"]); var chatIssue = new ChatIssue(id, issueType, issuedBy, issuedTime, expireTime, reason); issues.Add(id, chatIssue); } } } catch (Exception e) { Out.QuickLog("load Issue with chat"); Out.QuickLog(e); } return(issues); }
public static void Settings(Player player) { using (var mySqlClient = SqlDatabaseManager.GetClient()) { mySqlClient.ExecuteNonQuery($"UPDATE player_accounts SET settings = '{JsonConvert.SerializeObject(player.Settings)}' WHERE userID = {player.Id}"); } }
public void LoadModerators() { try { using (SqlDatabaseClient mySqlClient = SqlDatabaseManager.GetClient()) { var queryTable = mySqlClient.ExecuteQueryTable($"SELECT * FROM server_chat_moderators"); foreach (DataRow queryRow in queryTable.Rows) { var id = intConv(queryRow["PLAYER_ID"]); //Informations string name = queryRow["NAME"].ToString(); var lvl = (ModeratorLevelTypes)(intConv(queryRow["LEVEL"])); ////add to Storage var mod = new Moderator( id, name, "", Main.Global.StorageManager.Clans[0], lvl ); Chat.StorageManager.ChatModerators.Add(id, mod); } } } catch (Exception) { } }
public static void Information(Player player) { using (var mySqlClient = SqlDatabaseManager.GetClient()) { mySqlClient.ExecuteNonQuery($"UPDATE player_accounts SET Data = '{JsonConvert.SerializeObject(player.Data)}', level = {player.Level} WHERE userID = {player.Id}"); } }
private static void smethod_9(Session session_0, ClientMessage clientMessage_0) { uint num = clientMessage_0.ReadUnsignedInteger(); string str = InputFilter.FilterString(clientMessage_0.ReadString(), false).Trim(); if ((((num > 0) && (str.Length >= 1)) && (num != session_0.CharacterId)) && session_0.LaptopFriendCache.Friends.Contains(num)) { Session sessionByCharacterId = SessionManager.GetSessionByCharacterId(num); if (sessionByCharacterId == null) { using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("sender", session_0.CharacterId); client.SetParameter("receptor", num); client.SetParameter("text", str); client.SetParameter("time", UnixTimestamp.GetCurrent()); client.SetParameter("color", session_0.CharacterInfo.Staff); client.ExecuteNonQuery("INSERT INTO laptop_mensajes (emisor, receptor, contenido, timestamp, color, leido) VALUES (@sender, @receptor, @text, @time, @color, 0)"); } } else { sessionByCharacterId.SendData(LaptopMessageComposer.Compose(session_0.CharacterId, str, session_0.CharacterInfo.Staff), false); } } }
public static void AddBan(int bannedId, int modId, string reason, int typeId, string untilDate) { using (var mySqlClient = SqlDatabaseManager.GetClient()) { mySqlClient.ExecuteNonQuery($"INSERT INTO server_bans (userId, modId, reason, typeId, until_date) VALUES ({bannedId}, {modId}, '{reason}', {typeId}, '{untilDate}')"); } }
private static void smethod_2(Session session_0, ClientMessage clientMessage_0) { string str = clientMessage_0.ReadString(); string s = clientMessage_0.ReadString(); uint num = clientMessage_0.ReadUnsignedInteger(); string str3 = clientMessage_0.ReadString(); int num2 = clientMessage_0.ReadInteger(); string str4 = clientMessage_0.ReadString(); string str5 = string.Empty; string str6 = string.Empty; SHA1 sha = SHA1.Create(); if ((((str.Length >= 1) && (s.Length >= 4)) && ((num2 >= 0) || (num2 <= 0x41))) && (str4.Length >= 4)) { str5 = Convert.ToBase64String(sha.ComputeHash(Constants.DefaultEncoding.GetBytes(s))); using (SqlDatabaseClient client = SqlDatabaseManager.GetClient()) { client.SetParameter("Username", str); client.SetParameter("Password", str5); client.SetParameter("Avatar", num); client.SetParameter("Colors", str3); client.SetParameter("Age", num2); client.SetParameter("Email", str4); client.SetParameter("CurrentTimestamp", UnixTimestamp.GetCurrent()); client.SetParameter("RemoteAddress", session_0.RemoteAddress); client.SetParameter("Null", 0); str6 = client.ExecuteScalar("INSERT INTO usuarios (`usuario`, `password`, `email`, `edad`, `tiempo_registrado`, `ip_registro`, `ip_actual`, `ultimo_login`, `tipo_avatar`, `colores_avatar`, `timestamp_monedas`) VALUES (@Username, @Password, @Email, @Age, @Null, @RemoteAddress, @RemoteAddress, @CurrentTimestamp, @Avatar, @Colors, @CurrentTimestamp); SELECT LAST_INSERT_ID();").ToString(); client.SetParameter("Id", (str6 == string.Empty) ? ((object)0) : ((object)uint.Parse(str6))); client.ExecuteNonQuery("INSERT INTO rankings (`usuario`) VALUES (@Id)"); } session_0.TryAuthenticate(str, str5, session_0.RemoteAddress, true); } }
public static void LoadUser(Player Player) { try { using (var mySqlClient = SqlDatabaseManager.GetClient()) { var data = mySqlClient.ExecuteQueryTable($"SELECT * FROM player_accounts WHERE userID = {Player.Id} "); foreach (DataRow row in data.Rows) { Player.Level = Convert.ToInt32(row["level"]); Player.Premium = Convert.ToBoolean(row["premium"]); Player.Title = Convert.ToString(row["title"]); Player.Clan = GameManager.GetClan(Convert.ToInt32(row["clanID"])); Player.Ship = GameManager.GetShip(Convert.ToInt32(row["shipID"])); Player.Data = JsonConvert.DeserializeObject <DataBase>(row["Data"].ToString()); Player.Settings = (row["settings"].ToString() == "" ? new PlayerSettings() : JsonConvert.DeserializeObject <PlayerSettings>(row["settings"].ToString())); } string sql = $"SELECT * FROM player_equipment WHERE userId = {Player.Id} "; var querySet = mySqlClient.ExecuteQueryRow(sql); Player.Equipment = JsonConvert.DeserializeObject <EquipmentBase>(querySet["configs"].ToString()); } } catch (Exception e) { Out.WriteLine("Failed getting player account [ID: " + Player.Id + "] " + e); } }
public static RoomInfo GetRoomInfo(uint RoomId, bool IgnoreCache) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(RoomId); if (Instance != null) { return(Instance.Info); } if (!IgnoreCache) { RoomInfo CachedInfo = TryGetInfoFromCache(RoomId); if (CachedInfo != null) { return(CachedInfo); } } using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { MySqlClient.SetParameter("id", RoomId); DataRow Row = MySqlClient.ExecuteQueryRow("SELECT * FROM rooms WHERE id = @id LIMIT 1"); if (Row != null) { return(GenerateRoomInfoFromRow(Row)); } } return(null); }
public static void BuyItem(Player player, string itemType, DataType dataType, int amount) { if (player?.GameSession != null) { using (var mySqlClient = SqlDatabaseManager.GetClient()) { var result = mySqlClient.ExecuteQueryRow($"SELECT data FROM player_accounts WHERE userId = {player.Id}"); player.Data = JsonConvert.DeserializeObject <DataBase>(result["data"].ToString()); } player.SendPacket($"0|LM|ST|{(dataType == DataType.URIDIUM ? "URI" : "CRE")}|-{amount}|{(dataType == DataType.URIDIUM ? player.Data.uridium : player.Data.credits)}"); switch (itemType) { case "drones": player.DroneManager.UpdateDrones(true); break; case "booster": var oldBoosters = player.BoosterManager.Boosters; using (var mySqlClient = SqlDatabaseManager.GetClient()) { var result = mySqlClient.ExecuteQueryRow($"SELECT boosters FROM player_equipment WHERE userId = {player.Id}"); var newBoosters = JsonConvert.DeserializeObject <Dictionary <short, List <BoosterBase> > >(result["boosters"].ToString()); player.BoosterManager.Boosters = newBoosters.Concat(oldBoosters).GroupBy(b => b.Key).ToDictionary(b => b.Key, b => b.First().Value); } player.BoosterManager.Update(); break; } } }