Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 6
0
        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);
                        }
                    }
                }
            }
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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()));
        }
Esempio n. 9
0
        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()));
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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));
                }
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
 }
Esempio n. 16
0
 public static void ProcessThread(object state)
 {
     using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
     {
         ReloadCache(MySqlClient);
     }
 }
Esempio n. 17
0
        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);
                }
            }
        }
Esempio n. 18
0
        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;
                    }
                }
            }
        }
Esempio n. 19
0
        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);
                    }
                }
            }
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
 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}");
     }
 }
Esempio n. 23
0
        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)
            {
            }
        }
Esempio n. 24
0
 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}");
     }
 }
Esempio n. 25
0
        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);
                }
            }
        }
Esempio n. 26
0
 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}')");
     }
 }
Esempio n. 27
0
        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);
            }
        }
Esempio n. 28
0
        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);
            }
        }
Esempio n. 29
0
        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;
            }
        }
    }