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); } }
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); } } } }
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 { } } } }
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!"); }
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!"); } }
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)); }
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()); } } //} } }