Exemplo n.º 1
0
 internal void SendToStaffs(ServerMessage Message5_0, ServerMessage Message5_1)
 {
     byte[] byte_  = Message5_0.GetBytes();
     byte[] byte_2 = Message5_1.GetBytes();
     for (int i = 0; i < this.Clients.Length; i++)
     {
         GameClient @class = this.Clients[i];
         if (@class != null)
         {
             try
             {
                 if (@class.GetHabbo().HasFuse("receive_sa"))
                 {
                     if (@class.GetHabbo().InRoom)
                     {
                         @class.GetConnection().SendData(byte_);
                     }
                     else
                     {
                         @class.GetConnection().SendData(byte_2);
                     }
                 }
             }
             catch
             {
             }
         }
     }
 }
		public void Handle(GameClient Session, ClientMessage Event)
		{
            if (Session != null && Session.GetConnection() != null)
            {
                byte[] end = Essential.GetGame().GetNavigator().SerializeNavigator(Session, int.Parse(Event.PopFixedString()));
                Session.GetConnection().SendData(end);
            }
		}
Exemplo n.º 3
0
        internal void BroadcastMessage(ServerMessage message)
        {
            byte[] bytes = message.GetBytes();

            for (int i = 0; i < this.Clients.Length; i++)
            {
                GameClient client = this.Clients[i];
                if (client != null)
                {
                    try
                    {
                        client.GetConnection().SendData(bytes);
                    }
                    catch { }
                }
            }
        }
		public void method_1(GameClient Session)
		{
			foreach (ModerationBan current in this.Bans)
			{
				if (!current.Expired)
				{
                    if (Session != null && Session.GetHabbo() != null && current.Type == ModerationBanType.IP && Session.GetConnection().String_0 == current.Variable)
					{
						throw new ModerationBanException(current.ReasonMessage);
					}
					if (Session != null && Session.GetHabbo() != null && (current.Type == ModerationBanType.USERNAME && Session.GetHabbo().Username.ToLower() == current.Variable.ToLower()))
					{
						throw new ModerationBanException(current.ReasonMessage);
					}
				}
			}
		}
Exemplo n.º 5
0
 internal void SendToStaffs(GameClient class16_1, ServerMessage Message5_0, bool IsAntiAd = true)
 {
     byte[] byte_ = Message5_0.GetBytes();
     for (int i = 0; i < this.Clients.Length; i++)
     {
         GameClient @class = this.Clients[i];
         if (@class != null && (@class != class16_1 || IsAntiAd))
         {
             try
             {
                 if (@class.GetHabbo().HasFuse("receive_sa"))
                 {
                     @class.GetConnection().SendData(byte_);
                 }
             }
             catch
             {
             }
         }
     }
 }
Exemplo n.º 6
0
        internal void CloseAll()
        {
            StringBuilder stringBuilder = new StringBuilder();

            bool flag = false;

            using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
            {
                for (int i = 0; i < Clients.Length; i++)
                {
                    GameClient client = Clients[i];

                    if (client != null && client.GetHabbo() != null)
                    {
                        try
                        {
                            client.GetHabbo().GetInventoryComponent().SavePets(dbClient, true);
                            stringBuilder.Append(client.GetHabbo().UpdateQuery);
                            flag = true;
                        }
                        catch { }
                    }
                }

                if (flag)
                {
                    try
                    {
                        dbClient.ExecuteQuery(stringBuilder.ToString());
                    }
                    catch (Exception ex)
                    {
                        Logging.HandleException(ex.ToString());
                    }
                }
            }

            Console.WriteLine("Done saving users inventory!");
            Console.WriteLine("Closing server connections...");

            try
            {
                for (int i = 0; i < this.Clients.Length; i++)
                {
                    GameClient class2 = this.Clients[i];
                    if (class2 != null && class2.GetConnection() != null)
                    {
                        try
                        {
                            class2.GetConnection().Close();
                        }
                        catch
                        {
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logging.HandleException(ex.ToString());
            }

            Array.Clear(this.Clients, 0, this.Clients.Length);

            Console.WriteLine("Connections closed!");
        }
Exemplo n.º 7
0
        private void PingTask()
        {
            int num = int.Parse(Essential.GetConfig().data["client.ping.interval"]);

            if (num <= 100)
            {
                throw new ArgumentException("Invalid configuration value for ping interval! Must be above 100 miliseconds.");
            }

            while (true)
            {
                try
                {
                    ServerMessage     Message = new ServerMessage(Outgoing.Ping); // Updated
                    List <GameClient> list    = new List <GameClient>();
                    List <GameClient> list2   = new List <GameClient>();
                    for (int i = 0; i < this.Clients.Length; i++)
                    {
                        GameClient @class = this.Clients[i];
                        if (@class != null)
                        {
                            if (@class.bool_0)
                            {
                                @class.bool_0 = false;
                                list2.Add(@class);
                            }
                            else
                            {
                                list.Add(@class);
                            }
                        }
                    }
                    foreach (GameClient @class in list)
                    {
                        /*try
                         * {
                         *  @class.Disconnect("PING");
                         * }
                         * catch
                         * {
                         * }*/
                    }
                    byte[] byte_ = Message.GetBytes();
                    foreach (GameClient @class in list2)
                    {
                        try
                        {
                            @class.GetConnection().SendData(byte_);
                        }
                        catch
                        {
                            //@class.Disconnect("PING ERROR");
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logging.LogThreadException(ex.ToString(), "Connection checker task");
                }
                Thread.Sleep(num);
            }
        }
		public void BanUser(GameClient Session, string string_0, double length, string reason, bool banIp)
		{
			if (!Session.GetHabbo().IsJuniori)
			{
				ModerationBanType enum4_ = ModerationBanType.USERNAME;
				string text = Session.GetHabbo().Username;
				string object_ = "user";

				double timestamp = Essential.GetUnixTimestamp() + length;

				if (banIp)
				{
					enum4_ = ModerationBanType.IP;

					if (!ServerConfiguration.IPLastBan)
                        text = Session.GetConnection().String_0;
					else
					{
						using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
						{
							text = dbClient.ReadString("SELECT ip_last FROM users WHERE Id = " + Session.GetHabbo().Id + " LIMIT 1;");
						}
					}
					object_ = "ip";
				}

				this.Bans.Add(new ModerationBan(enum4_, text, reason, timestamp));

				using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
				{
					dbClient.AddParamWithValue("rawvar", object_);
					dbClient.AddParamWithValue("var", text);
					dbClient.AddParamWithValue("reason", reason);
					dbClient.AddParamWithValue("mod", string_0);

					dbClient.ExecuteQuery(string.Concat(new object[]
					{
						"INSERT INTO bans (bantype,value,reason,expire,added_by,added_date,appeal_state) VALUES (@rawvar,@var,@reason,'",
						timestamp,
						"',@mod,'",
						DateTime.Now.ToLongDateString(),
						"', '1')"
					}));
                    dbClient.ExecuteQuery(string.Concat(new object[]
					{
						"INSERT INTO banlog (bantype,value,reason,expire,added_by,added_date,appeal_state) VALUES (@rawvar,@var,@reason,'",
						timestamp,
						"',@mod,'",
						DateTime.Now.ToLongDateString(),
						"', '1')"
					}));
                    
				}

				if (banIp)
				{
					DataTable dataTable = null;

					using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
					{
						dbClient.AddParamWithValue("var", text);
						dataTable = dbClient.ReadDataTable("SELECT Id FROM users WHERE ip_last = @var");
					}

                    if (dataTable != null)
                    {
                        IEnumerator enumerator = dataTable.Rows.GetEnumerator();
                        try
                        {
                            while (enumerator.MoveNext())
                            {
                                DataRow dataRow = (DataRow)enumerator.Current;
                                using (DatabaseClient @class = Essential.GetDatabase().GetClient())
                                {
                                    @class.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + (uint)dataRow["Id"] + "' LIMIT 1");
                                }
                            }
                        }
                        finally
                        {
                            IDisposable disposable = enumerator as IDisposable;
                            if (disposable != null)
                            {
                                disposable.Dispose();
                            }
                        }
                    }
				}

				using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
				{
					dbClient.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + Session.GetHabbo().Id + "' LIMIT 1");
				}
				
				Session.NotifyBan(reason);
				Session.Disconnect("Banned!");
			}
		}
Exemplo n.º 9
0
        public static void ShowPoll(GameClient Session, int PollId, string PollDetails)
        {
            Thread.Sleep(10000);

            if (Session.GetConnection() != null)
            {
                if (Session.GetHabbo().InRoom)
                {
                    Room Room = Session.GetHabbo().CurrentRoom;
                    if (Room == null)
                    {
                        return;
                    }
                    ServerMessage NewPoll = new ServerMessage(Outgoing.NewPoll); // Updated
                    NewPoll.AppendInt32(PollId);
                    NewPoll.AppendStringWithBreak(PollDetails);
                    Session.SendMessage(NewPoll);
                }
            }
        }
		public void Handle(GameClient Session, ClientMessage Event)
		{
			Session.GetConnection().SendData(Essential.GetGame().GetNavigator().SerializeNavigator(Session, -2));
		}
Exemplo n.º 11
0
		public void method_16(GameClient Session, uint uint_0, string string_0, bool bool_0)
		{
			GameClient @class = Essential.GetGame().GetClientManager().GetClient(uint_0);
			if (@class != null && @class.GetHabbo().Id != Session.GetHabbo().Id)
			{
				if (bool_0 && @class.GetHabbo().Rank >= Session.GetHabbo().Rank)
				{
					Session.SendNotification(EssentialEnvironment.GetExternalText("mod_error_permission_caution"));
					//bool_0 = false;
                    return;
                }
				@class.SendNotification(string_0, 0);
				//if (bool_0)
				//{
					using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
					{
                        try
                        {
                            class2.AddParamWithValue("description", string_0);
                            class2.AddParamWithValue("timestamp", (int)Essential.GetUnixTimestamp());
                            class2.ExecuteQuery("INSERT INTO hp_verwarnungen (user_id,title,beschreibung,timestamp,endtimestamp_verwarnung,mod_id,mod_ip) VALUES (" + uint_0 + ",'Mod-Tool',@description,@timestamp,'0'," + Session.GetHabbo().Id + ",'" + Session.GetConnection().LocalEndPoint.ToString().Split(':')[0] + "')");
                            class2.ExecuteQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = '" + uint_0 + "' LIMIT 1");
                        }catch(Exception ex)
                        {
                            Console.WriteLine(ex.ToString());
                        }
                    }
				//}
			}
		}