using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DuckEmulator.HabboHotel.Inside.NET; using DuckEmulator.HabboHotel.Outside.Clients; using DuckEmulator.HabboHotel.Outside.Messages.Types; namespace DuckEmulator.GUI.Actions.Broadcast { enum Target { Everyone = 0, Moderators = 1, Administrators = 2, Managers = 3, StaffTeam = 4, User = 5 } partial class Hotelmessage : Form { private Target Target = Target.Everyone; internal Hotelmessage() { InitializeComponent(); Targetgrouplist.SelectedIndex = 0; if (!DuckEmulator.DuckEnvironment.Started) SendButton.Enabled = false; } private void button2_Click(object sender, EventArgs e) { this.MessageBox.Text += "\r\n"; } private void Targetgrouplist_SelectedIndexChanged(object sender, EventArgs e) { Target T = Target.Everyone; switch (Targetgrouplist.SelectedIndex) { case 0: T = Broadcast.Target.Everyone; break; case 1: T = Broadcast.Target.Moderators; break; case 2: T = Broadcast.Target.Administrators; break; case 3: T = Broadcast.Target.Managers; break; case 4: T = Broadcast.Target.StaffTeam; break; case 5: T = Broadcast.Target.User; break; } SetTarget(T); if (T == Broadcast.Target.User) { UsernameBox.Enabled = true; UsernameLabel.Enabled = true; } else { UsernameBox.Enabled = false; UsernameLabel.Enabled = false; } } private void SetTarget(Target Target) { this.Target = Target; } private void SendButton_Click(object sender, EventArgs e) { switch (Target) { case Broadcast.Target.Everyone: DuckEnvironment.SocketListener.GetFactory().GenerateClients.ForEach(SendAlert); break; case Broadcast.Target.Administrators: GetClientsByRank(3).ForEach(SendAlert); break; case Broadcast.Target.Managers: GetClientsByRank(4).ForEach(SendAlert); break; case Broadcast.Target.Moderators: GetClientsByRank(2).ForEach(SendAlert); break; case Broadcast.Target.StaffTeam: GetClientsByRank(2).ForEach(SendAlert); break; case Broadcast.Target.User: SendAlert(GetClientByName(UsernameBox.Text)); break; } } private List GetClientsByRank(int Rank) { var List = new List(); foreach (Client Client in DuckEnvironment.SocketListener.GetFactory().GenerateClients) { if (Client.GetHabbo() == null) continue; if (Client.GetHabbo().Rank >= Rank) List.Add(Client); } return List.ToList(); } private Client GetClientByName(string Name) { foreach (Client Client in DuckEnvironment.SocketListener.GetFactory().GenerateClients) { if (Client.GetHabbo() == null) continue; if (Client.GetHabbo().Username.ToLower() == Name.ToLower()) return Client; } return null; } internal void SendAlert(Client Client) { if (Client == null) return; if (Client.GetConnection() == null) return; Client.SendHA(MessageBox.Text); } } }