コード例 #1
0
 public static void Destroy()
 {
     Program.DeleteMenu(Program.GetSystemMenu(Program.GetConsoleWindow(), true), Program.SC_CLOSE, Program.MF_BYCOMMAND);
     Logging.WriteLine("Destroying EssentialEmu environment...");
     if (Essential.GetGame() != null)
     {
         Essential.GetGame().ContinueLoading();
         Essential.Internal_Game = null;
     }
     if (Essential.GetSocketsManager() != null)
     {
         Logging.WriteLine("Destroying connection manager.");
         Essential.GetSocketsManager().method_3().method_2();
         //Essential.smethod_14().Destroy();
         Essential.GetSocketsManager().method_0();
         Essential.SocketsManager = null;
     }
     if (Essential.GetDatabase() != null)
     {
         try
         {
             Logging.WriteLine("Destroying database manager.");
             MySqlConnection.ClearAllPools();
             Essential.DatabaseManager = null;
         }
         catch
         {
         }
     }
     Logging.WriteLine("Uninitialized successfully. Closing.");
 }
コード例 #2
0
 public void Deactivate()
 {
     this.Enabled = false;
     using (DatabaseClient @class = Essential.GetDatabase().GetClient())
     {
         @class.ExecuteQuery("UPDATE room_items_moodlight SET enabled = '0' WHERE item_id = '" + this.ItemId + "' LIMIT 1");
     }
 }
コード例 #3
0
 public static int GetColorByHTMLColor(string htmlcolor)
 {
     try
     {
         using (DatabaseClient adapter = Essential.GetDatabase().GetClient())
         {
             return(adapter.ReadInt32("SELECT Id FROM groups_elements WHERE ExtraData1 = '" + htmlcolor + "' AND Type = 'Color3' LIMIT 1"));
         }
     }
     catch
     {
     }
     return(0);
 }
コード例 #4
0
 /*public static string GenerateGuildImage(int guildBase, int guildBaseColor, List<int> states)
  * {
  *  var image = new StringBuilder(String.Format("b{0:00}{1:00}", guildBase, guildBaseColor));
  *  for (var i = 0; i < 3 * 4; i += 3)
  *      image.Append(i >= states.Count ? "s" : String.Format("s{0:00}{1:00}{2}", states[i], states[i + 1], states[i + 2]));
  *  return image.ToString();
  * }*/
 public static string GetHtmlColor(int Color)
 {
     try
     {
         using (DatabaseClient adapter = Essential.GetDatabase().GetClient())
         {
             return(adapter.ReadString("SELECT ExtraData1 FROM groups_elements WHERE id = '" + Color + "' AND Type = 'Color3'"));
         }
     }
     catch
     {
     }
     return("");
 }
コード例 #5
0
        public void UpdatePreset(int int_1, string string_0, int int_2, bool bool_1)
        {
            string text = null;

            if (this.IsValidColor(string_0) && this.IsValidIntensity(int_2))
            {
                switch (int_1)
                {
                case 1:
                {
                    text = "one";
                    goto IL_44;
                }

                case 2:
                {
                    text = "two";
                    goto IL_44;
                }

                case 3:
                {
                    text = "three";
                    goto IL_44;
                }
                }
                /*goto IL_2E;*/
IL_44:
                using (DatabaseClient @class = Essential.GetDatabase().GetClient())
                {
                    @class.AddParamWithValue("color", string_0);
                    @class.ExecuteQuery(string.Concat(new object[]
                    {
                        "UPDATE room_items_moodlight SET preset_",
                        text,
                        " = '@color,",
                        int_2,
                        ",",
                        Essential.BooleanToString(bool_1),
                        "' WHERE item_id = '",
                        this.ItemId,
                        "' LIMIT 1"
                    }));
                }
                this.GetPreset(int_1).ColorCode      = string_0;
                this.GetPreset(int_1).ColorIntensity = int_2;
                this.GetPreset(int_1).BackgroundOnly = bool_1;
            }
        }
コード例 #6
0
 public static GroupsManager AddGuild(int id, string name, int ownerid, string ownername, string description, int roomid, string image, int customcolor1, int customcolor2, int guildbase, int guildbasecolor, List <int> guildstates, string htmlcolor1, string htmlcolor2, string datecreated, Dictionary <int, string> members, List <int> petitions, int type, int rightstype)
 {
     using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
     {
         try
         {
             try
             {
                 id = dbClient.ReadInt32("SELECT ID FROM groups ORDER BY ID DESC LIMIT 1") + 1;
             }
             catch
             {
                 id = 1;
             }
             string str = "";
             foreach (int num in guildstates)
             {
                 str = str + num + ";";
             }
             str = str.Substring(0, str.Length - 1);
             dbClient.AddParamWithValue("id", id);
             dbClient.AddParamWithValue("name", name);
             dbClient.AddParamWithValue("ownerid", ownerid);
             dbClient.AddParamWithValue("description", description);
             dbClient.AddParamWithValue("roomid", roomid);
             dbClient.AddParamWithValue("image", image);
             dbClient.AddParamWithValue("htmlcolor1", htmlcolor1);
             dbClient.AddParamWithValue("htmlcolor2", htmlcolor2);
             dbClient.AddParamWithValue("datecreated", datecreated);
             dbClient.AddParamWithValue("guildstates", str);
             dbClient.AddParamWithValue("guildbase", guildbase);
             dbClient.AddParamWithValue("guildbasecolor", guildbasecolor);
             dbClient.ExecuteQuery("INSERT INTO groups (`id`,`name`,`ownerid`,`desc`,`roomid`,`badge`,`color_one`,`color_two`,`created`,`GuildStates`,`GuildBase`,`GuildBaseColor`) VALUES (@id, @name, @ownerid, @description, @roomid, @image, @htmlcolor1, @htmlcolor2, @datecreated,@guildstates,@guildbase,@guildbasecolor);");
             dbClient.ExecuteQuery("INSERT INTO group_memberships (groupid, userid) VALUES (" + id + "," + ownerid + ")");
         }catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
         GroupsManager newGuild = new GroupsManager(id, dbClient.ReadDataRow("SELECT * FROM groups WHERE id=" + id + " LIMIT 1"), dbClient);
         Groups.GroupsManager.Add(id, newGuild);
         return(newGuild);
     }
 }
コード例 #7
0
        public MoodlightData(uint mItemId)
        {
            this.ItemId = mItemId;
            DataRow Row = null;

            using (DatabaseClient @class = Essential.GetDatabase().GetClient())
            {
                Row = @class.ReadDataRow("SELECT enabled,current_preset,preset_one,preset_two,preset_three FROM room_items_moodlight WHERE item_id = '" + mItemId + "' LIMIT 1");
            }
            if (Row == null)
            {
                throw new ArgumentException();
            }
            this.Enabled       = Essential.StringToBoolean(Row["enabled"].ToString());
            this.CurrentPreset = (int)Row["current_preset"];
            this.Presets       = new List <MoodlightPreset>();
            this.Presets.Add(this.GeneratePreset((string)Row["preset_one"]));
            this.Presets.Add(this.GeneratePreset((string)Row["preset_two"]));
            this.Presets.Add(this.GeneratePreset((string)Row["preset_three"]));
        }
コード例 #8
0
 public static void RemoveGroup(GroupsManager guild)
 {
     using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
     {
         dbClient.ExecuteQuery("DELETE FROM groups WHERE id=" + guild.Id);
         dbClient.ExecuteQuery("DELETE FROM group_memberships WHERE groupid=" + guild.Id);
         dbClient.ExecuteQuery("DELETE FROM group_requests WHERE groupid=" + guild.Id);
         dbClient.ExecuteQuery("UPDATE user_stats SET groupid=0 WHERE groupid=" + guild.Id);
         //dbClient.ExecuteQuery("UPDATE items SET guild_data='0;0;0' WHERE guild_data LIKE '" + guild.Id + ";%'");
         foreach (GameClient gc in Essential.GetGame().GetClientManager().GetClients())
         {
             if (gc != null && gc.GetHabbo() != null && gc.GetHabbo().InGuild(guild.Id))
             {
                 if (gc.GetHabbo().FavouriteGroup == guild.Id)
                 {
                     gc.GetHabbo().FavouriteGroup = 0;
                 }
                 gc.GetHabbo().RefreshGuilds();
             }
         }
         Groups.GroupsManager.Remove(guild.Id);
     }
 }
コード例 #9
0
 internal static void InitGroups()
 {
     BaseBadges   = new List <GroupsPartsData>();
     SymbolBadges = new List <GroupsPartsData>();
     ColorBadges1 = new List <GroupsPartsData>();
     ColorBadges2 = new List <GroupsPartsData>();
     ColorBadges3 = new List <GroupsPartsData>();
     using (DatabaseClient adapter = Essential.GetDatabase().GetClient())
     {
         DataTable table = adapter.ReadDataTable("SELECT * FROM groups_elements");
         foreach (DataRow row in table.Rows)
         {
             GroupsPartsData data;
             if (row["Type"].ToString() == "Base")
             {
                 data = new GroupsPartsData
                 {
                     Id         = (int)row["Id"],
                     ExtraData1 = (string)row["ExtraData1"],
                     ExtraData2 = (string)row["ExtraData2"]
                 };
                 BaseBadges.Add(data);
             }
             else if (row["ExtraData1"].ToString().StartsWith("symbol_"))
             {
                 data = new GroupsPartsData
                 {
                     Id         = (int)row["Id"],
                     ExtraData1 = (string)row["ExtraData1"],
                     ExtraData2 = (string)row["ExtraData2"]
                 };
                 SymbolBadges.Add(data);
             }
             else if (row["Type"].ToString() == "Color1")
             {
                 data = new GroupsPartsData
                 {
                     Id         = (int)row["Id"],
                     ExtraData1 = (string)row["ExtraData1"]
                 };
                 ColorBadges1.Add(data);
             }
             else if (row["Type"].ToString() == "Color2")
             {
                 data = new GroupsPartsData
                 {
                     Id         = (int)row["Id"],
                     ExtraData1 = (string)row["ExtraData1"]
                 };
                 ColorBadges2.Add(data);
             }
             else if (row["Type"].ToString() == "Color3")
             {
                 data = new GroupsPartsData
                 {
                     Id         = (int)row["Id"],
                     ExtraData1 = (string)row["ExtraData1"]
                 };
                 ColorBadges3.Add(data);
             }
         }
     }
 }
コード例 #10
0
        public void Initialize()
        {
            Essential.consoleWriter = new ConsoleWriter(Console.Out);
            Console.SetOut(Essential.consoleWriter);
            try
            {
                Console.WindowWidth  = 130;
                Console.WindowHeight = 36;
            }
            catch { }
            Essential.ServerStarted = DateTime.Now;
            Console.Clear();
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine();
            Console.WriteLine(@"                                          ______                    _   _       _ ");
            Console.WriteLine(@"                                         |  ____|                  | | (_)     | |");
            Console.WriteLine(@"                                         | |__   ___ ___  ___ _ __ | |_ _  __ _| |");
            Console.WriteLine(@"                                         |  __| / __/ __|/ _ \ '_ \| __| |/ _` | |");
            Console.WriteLine(@"                                         | |____\__ \__ \  __/ | | | |_| | (_| | |");
            Console.WriteLine(@"                                         |______|___/___/\___|_| |_|\__|_|\__,_|_|");
            Console.WriteLine();
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("                                         Essential Emulator Build " + Build + " by " + Creator);
            Console.WriteLine();
            Console.WriteLine("                         Credits to: Meth0d (Uber), Sojobo (Phoenix), Juniori (GTE) & Rootkit (Essential)");
            Console.WriteLine();
            Console.ResetColor();
            try
            {
                Essential.Configuration = new ConfigurationData("config.conf");
                DateTime now = DateTime.Now;
                try
                {
                    Essential.SWFDirectory = Essential.GetConfig().data["web.api.furni.hof_furni"];
                }
                catch { }
                if (!Directory.Exists("API"))
                {
                    Directory.CreateDirectory("API");
                }

                DatabaseServer dbServer = new DatabaseServer(Essential.GetConfig().data["db.hostname"], uint.Parse(Essential.GetConfig().data["db.port"]), Essential.GetConfig().data["db.username"], Essential.GetConfig().data["db.password"]);
                Database       database = new Database(Essential.GetConfig().data["db.name"], uint.Parse(Essential.GetConfig().data["db.pool.minsize"]), uint.Parse(Essential.GetConfig().data["db.pool.maxsize"]));
                Essential.DatabaseManager = new DatabaseManager(dbServer, database);
                GroupsPartsData.InitGroups();
                try
                {
                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                    {
                        dbClient.ExecuteQuery("SET @@global.sql_mode= '';");
                        dbClient.ExecuteQuery("UPDATE users SET online = '0'");
                        dbClient.ExecuteQuery("UPDATE rooms SET users_now = '0'");
                    }
                    Essential.Internal_Game.ContinueLoading();
                }
                catch { }

                Essential.Internal_Game = new Game(int.Parse(Essential.GetConfig().data["game.tcp.conlimit"]));

                Essential.PacketManager = new PacketManager();
                Essential.PacketManager.Load();
                Essential.mhandler = new MobileHandler();
                Essential.mhandler.Load();
                Console.WriteLine(Essential.PacketManager.Count + " Packets loaded!");
                Essential.antiAdSystem   = new AntiAd();
                Essential.MusListener    = new MusListener(Essential.GetConfig().data["mus.tcp.bindip"], int.Parse(Essential.GetConfig().data["mus.tcp.port"]), Essential.GetConfig().data["mus.tcp.allowedaddr"].Split(new char[] { ';' }), 20);
                Essential.SocketsManager = new SocketsManager(Essential.GetConfig().data["game.tcp.bindip"], int.Parse(Essential.GetConfig().data["game.tcp.port"]), int.Parse(Essential.GetConfig().data["game.tcp.conlimit"]));
                //ConnectionManage = new ConnectionHandeling(Essential.GetConfig().data["game.tcp.port"], int.Parse(Essential.GetConfig().data["game.tcp.conlimit"]), int.Parse(Essential.GetConfig().data["game.tcp.conlimit"]), true);
                Essential.HeadImagerURL = Essential.GetConfig().data["eventstream.imager.url"];
                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                {
                    dbClient.ExecuteQuery("UPDATE server_status SET bannerdata='" + EssentialEnvironment.globalCrypto.Prime + ":" + EssentialEnvironment.globalCrypto.Generator + "';");
                }
                Essential.SocketsManager.method_3().method_0();
                webSocketServerManager = new WebSocketServerManager(Essential.GetConfig().data["websocket.url"]);
                Console.WriteLine("Server started at " + Essential.GetConfig().data["websocket.url"]);
                webManager = new WebManager();
                TimeSpan timeSpan = DateTime.Now - now;
                Logging.WriteLine(string.Concat(new object[]
                {
                    "Server -> READY! (",
                    timeSpan.Seconds,
                    " s, ",
                    timeSpan.Milliseconds,
                    " ms)"
                }));
                using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                {
                    dbClient.ExecuteQuery("UPDATE server_status SET server_started='" + Convert.ToInt32(GetUnixTimestamp()) + "'");
                }
                Console.Beep();
            }
            catch (KeyNotFoundException KeyNotFoundException)
            {
                Logging.WriteLine("Failed to boot, key not found: " + KeyNotFoundException);
                Logging.WriteLine("Press any key to shut down ...");
                Console.ReadKey(true);
                Essential.Destroy();
            }
            catch (InvalidOperationException ex)
            {
                Logging.WriteLine("Failed to initialize EssentialEmulator: " + ex.Message);
                Logging.WriteLine("Press any key to shut down ...");
                Console.ReadKey(true);
                Essential.Destroy();
            }
        }