Ejemplo n.º 1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            bool debugMode = false;

            if (System.IO.Directory.Exists(g_RPPDBFolder) == false)
            {
                g_RPPDBFolder = g_RPPDBFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                g_RDDBFolder  = g_RDDBFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                AddonDatabaseService.g_AddonUploadDataFolder        = AddonDatabaseService.g_AddonUploadDataFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                AddonDatabaseService.g_AddonUploadStatsFolder       = AddonDatabaseService.g_AddonUploadStatsFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                RPPDatabaseHandler.g_AddonContributionsBackupFolder = RPPDatabaseHandler.g_AddonContributionsBackupFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);

                RDDatabaseHandler.g_AddonContributionsBackupFolder = RDDatabaseHandler.g_AddonContributionsBackupFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                debugMode = true;
            }
            AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;

            VF_WoWLauncher.ConsoleUtility.CreateConsole();


            //if (debugMode == false)
            {
                Console.WriteLine("Waiting for ContributorDB to load");
                ContributorDB.Initialize(debugMode);
                while (ContributorDB.GetMongoDB() == null)
                {
                    ContributorDB.Initialize(debugMode);
                    System.Threading.Thread.Sleep(100);
                    Console.Write(".");
                }
                Console.WriteLine("ContributorDB loaded!");
            }

            //VF_RealmPlayersDatabase.Deprecated.ContributorHandler.Initialize(g_RPPDBFolder + "Database\\");
            g_RPPDatabaseHandler = new RPPDatabaseHandler(g_RPPDBFolder);
            g_RDDatabaseHandler  = new RDDatabaseHandler(g_RDDBFolder, g_RPPDatabaseHandler, DatabaseHandlerMode.Disabled);
            AddonDatabaseService.HandleUnhandledFiles("VF_RealmPlayers");
            AddonDatabaseService.HandleUnhandledFiles("VF_RaidDamage");
            AddonDatabaseService.HandleUnhandledFiles("VF_RealmPlayersTBC");
            AddonDatabaseService.HandleUnhandledFiles("VF_RaidStatsTBC");
            try
            {
                Application.Run(new MainWindow());
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                g_RDDatabaseHandler.Shutdown();
                g_RPPDatabaseHandler.Shutdown();
            }
        }
Ejemplo n.º 2
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            bool debugMode = false;

            if (System.IO.Directory.Exists(g_RPPDBFolder) == false)
            {
                g_RPPDBFolder = g_RPPDBFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                g_RDDBFolder  = g_RDDBFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                AddonDatabaseService.g_AddonUploadDataFolder        = AddonDatabaseService.g_AddonUploadDataFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                AddonDatabaseService.g_AddonUploadStatsFolder       = AddonDatabaseService.g_AddonUploadStatsFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                RPPDatabaseHandler.g_AddonContributionsBackupFolder = RPPDatabaseHandler.g_AddonContributionsBackupFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);

                RDDatabaseHandler.g_AddonContributionsBackupFolder = RDDatabaseHandler.g_AddonContributionsBackupFolder.Replace(VF_RealmPlayersDatabase.Utility.DefaultServerLocation, VF_RealmPlayersDatabase.Utility.DefaultDebugLocation);
                debugMode = true;
            }
            AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;

            VF_WoWLauncher.ConsoleUtility.CreateConsole();

            /*Some Testing*/
#if false
            WowRealm[] ALL_REALMS = new WowRealm[] {
                WowRealm.Kronos,
                WowRealm.NostalGeek,
                WowRealm.Al_Akir,
                WowRealm.Valkyrie,
                WowRealm.VanillaGaming,
                WowRealm.Nefarian,
                WowRealm.Rebirth,
                WowRealm.Archangel,
                WowRealm.Nostalrius,
                WowRealm.NostalriusPVE,
                WowRealm.Emerald_Dream,
                WowRealm.Warsong,
                WowRealm.WarsongTBC
            };

            SQLDatabaseMigration.Migrate(SQLDatabaseMigration.MigrationChoice.TestOnly, ALL_REALMS);
#endif
            /*Some Testing*/

            //if (debugMode == false)
            {
                Console.WriteLine("Waiting for ContributorDB to load");
                ContributorDB.Initialize(debugMode);
                while (ContributorDB.GetMongoDB() == null)
                {
                    ContributorDB.Initialize(debugMode);
                    System.Threading.Thread.Sleep(100);
                    Console.Write(".");
                }
                Console.WriteLine("ContributorDB loaded!");
            }

            //VF_RealmPlayersDatabase.Deprecated.ContributorHandler.Initialize(g_RPPDBFolder + "Database\\");
            g_RPPDatabaseHandler = new RPPDatabaseHandler(g_RPPDBFolder);
            g_RDDatabaseHandler  = new RDDatabaseHandler(g_RDDBFolder, g_RPPDatabaseHandler);
            AddonDatabaseService.HandleUnhandledFiles("VF_RealmPlayers");
            AddonDatabaseService.HandleUnhandledFiles("VF_RaidDamage");
            AddonDatabaseService.HandleUnhandledFiles("VF_RealmPlayersTBC");
            AddonDatabaseService.HandleUnhandledFiles("VF_RaidStatsTBC");
            try
            {
                Application.Run(new MainWindow());
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                g_RDDatabaseHandler.Shutdown();
                g_RPPDatabaseHandler.Shutdown();
            }
        }
Ejemplo n.º 3
0
        private void ListenerThread()
        {
            VF.NetworkIncommingMessage msg;
            while (m_ListenerThread != null)
            {
                try
                {
                    while ((msg = m_Server.WaitMessage(TimeSpan.FromMilliseconds(1000))) != null)
                    {
                        switch (msg.MessageType)
                        {
                        case VF.NetworkMessageType.RawData:
                        {
                            // incoming message from a client
                            WLN_PacketType packetType = (WLN_PacketType)msg.ReadByte();
                            if (packetType == WLN_PacketType.Request_AddonUpdateInfo)
                            {
                                #region BACKWARDS_COMPATIBILITY_ONLY
                                BackwardsCompatible_Request_AddonUpdateInfo(msg);
                                #endregion BACKWARDS_COMPATIBILITY_ONLY
                            }
                            else if (packetType == WLN_PacketType.Request_AddonUpdateInfoNew)
                            {
                                WLN_RequestPacket_AddonUpdateInfoNew      addonUpdateInfoRequest = msg.ReadClass <WLN_RequestPacket_AddonUpdateInfoNew>();
                                List <WLN_ResponsePacket_AddonUpdateInfo> result = new List <WLN_ResponsePacket_AddonUpdateInfo>();
                                Logger.ConsoleWriteLine("Received Request_AddonUpdateInfoNew from IP=" + msg.SenderIP.ToString() + ", UserID=" + addonUpdateInfoRequest.UserID + ", LauncherVersion=" + addonUpdateInfoRequest.LauncherVersion);

                                Random rand = new Random((int)DateTime.UtcNow.Ticks);
                                foreach (var addon in addonUpdateInfoRequest.Addons)
                                {
                                    WLN_ResponsePacket_AddonUpdateInfo addonUpdateInfo = AddonUpdates.GetAddonUpdate(addonUpdateInfoRequest.UserID, addon);
                                    if (addonUpdateInfo != null)
                                    {
                                        result.Add(addonUpdateInfo);
                                    }
                                }
                                var response = msg.CreateResponseMessage(-1);        //.SenderConnection.SendPacket_VF(WLN_PacketType.Response_AddonUpdateInfo, result);
                                response.WriteByte((byte)WLN_PacketType.Response_AddonUpdateInfo);
                                response.WriteClass(result);
                                m_Server.SendMessage(response);
                            }
                            else if (packetType == WLN_PacketType.Request_AddonUpdateInfoPeek)
                            {
                                WLN_RequestPacket_AddonUpdateInfoPeek  addonUpdateInfoRequest = msg.ReadClass <WLN_RequestPacket_AddonUpdateInfoPeek>();
                                WLN_ResponsePacket_AddonUpdateInfoPeek result = new WLN_ResponsePacket_AddonUpdateInfoPeek();
                                if (AddonUpdates.g_LastAddonUpdateTimeUTC > DateTime.UtcNow.AddMinutes(-addonUpdateInfoRequest.MinutesSinceLastPeek))
                                {
                                    result.AddonUpdatesAvailable.Add("null");
                                }
                                var response = msg.CreateResponseMessage(-1);        //.SenderConnection.SendPacket_VF(WLN_PacketType.Response_AddonUpdateInfo, result);
                                response.WriteByte((byte)WLN_PacketType.Response_AddonUpdateInfoPeek);
                                response.WriteClass(result);
                                m_Server.SendMessage(response);
                            }
                            else if (packetType == WLN_PacketType.Upload_AddonData)
                            {
                                WLN_UploadPacket_AddonData uploadedAddonData = msg.ReadClass <WLN_UploadPacket_AddonData>();
                                Logger.ConsoleWriteLine("Received Upload_AddonData(" + uploadedAddonData.AddonName + ") from " + msg.SenderIP.ToString());
                                AddonDatabaseService.UploadData(msg.SenderIP, uploadedAddonData);
                                var successResponse = new WLN_UploadPacket_SuccessResponse();

                                var response = msg.CreateResponseMessage(-1);        //.SenderConnection.SendPacket_VF(WLN_PacketType.Response_AddonUpdateInfo, result);
                                response.WriteByte((byte)WLN_PacketType.Upload_SuccessResponse);
                                response.WriteClass(successResponse);
                                m_Server.SendMessage(response);
                            }
                            else if (packetType == WLN_PacketType.Request_RegisterNewUserID)
                            {
                                //WLN_Request_RegisterNewUserID registerPacket = msg.ReadClass<WLN_Request_RegisterNewUserID>();
                                //Logger.ConsoleWriteLine("Received Register New UserID Request from: \"" + registerPacket.UserID + "\" using password: \"" + registerPacket.RegisterPassword + "\" registering name: \"" + registerPacket.NewUsername + "\"", ConsoleColor.Yellow);

                                //var responseData = new WLN_Response_RegisterNewUserID();
                                //responseData.UserID = "";

                                //string userID = "";
                                //if (ContributorHandler.GenerateUserID(registerPacket.NewUsername, out userID) == true)
                                //{
                                //    ContributorHandler.AddVIPContributor(userID);
                                //    ContributorHandler.Save(Program.g_RPPDBFolder + "Database\\");
                                //    UpdateContributorsList();
                                //}

                                //var response = msg.CreateResponseMessage(-1);
                                //response.WriteByte((byte)WLN_PacketType.Response_RegisterNewUserID);
                                //response.WriteClass(responseData);
                                //m_Server.SendMessage(response);
                            }
                            else
                            {
                                Logger.ConsoleWriteLine("Some unknown data: type=" + (int)packetType + ", dataSize=" + msg.MessageSize, ConsoleColor.Red);
                            }
                        }
                        break;

                        default:
                            Logger.ConsoleWriteLine("Unknown Message Received" + "MessageType: " + msg.MessageType + " MessageSize: " + msg.MessageSize + " bytes", ConsoleColor.Red);
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogException(ex);
                }
            }
        }