private void Form1_Load(object sender, EventArgs e) { ConsoleTab console = new ConsoleTab(); this.tabControl1.TabPages.Add(console); ConsoleTab.WriteLine("BlueVex 2 Diablo 2 Proxy By Pleh"); OverviewTab overview = new OverviewTab(); this.tabControl1.TabPages.Add(overview); try { LoadDiabloTabs(); } catch (Exception err) { MessageBox.Show("Make sure your settings are set." + "\r\n\n" + "Advanced:" + "\r\n\n" + err.ToString(), "BlueVex2", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (BlueVex2.Properties.Settings.Default.UseBV2Proxy) { StartProxies(); PlugInManager.FindAvailablePlugIns(); List <Plugin> plugs = PlugInManager.AvailablePlugins; foreach (Plugin plug in plugs) { ConsoleTab.WriteLine("Loading plugin: " + plug.TypeName); } } }
void bnetProxy_ClientConnected(object sender, EventArgs args) { foreach (Plugin plugin in PlugInManager.AvailablePlugins) { ConsoleTab.WriteLine("Loading " + plugin.TypeName); IPlugin loadedPlugin = plugin.CreateInstance(); loadedPlugin.Initialize(((BnetProxy)sender).Proxy); this.BeginInvoke(new InitUIDelegate(InitUI), loadedPlugin); } }
private void StartProxies() { ConsoleTab.WriteLine("Starting Proxies..."); ProxyServer bnetProxy = new ProxyServer(6112, ProxyType.Bnet); bnetProxy.ClientConnected += new ProxyServer.ClientConnectedHandler(bnetProxy_ClientConnected); bnetProxy.AttachDiabloWindow += new ProxyServer.AttachDiabloWindowHandler(bnetProxy_AttachDiabloWindow); ProxyServer realmProxy = new ProxyServer(6113, ProxyType.Realm); // bnet 6112 ProxyServer gameProxy = new ProxyServer(4000, ProxyType.Game); ConsoleTab.WriteLine("Proxies running!"); }
void bnetProxy_AttachDiabloWindow(Proxy proxy, string keyOwner) { foreach (IDiabloWindow diabloWindow in DiabloWindow.DiabloWindows) { if (diabloWindow.KeyOwner.ToUpper() == keyOwner.ToUpper()) { proxy.DiabloWindow = diabloWindow; return; } } ConsoleTab.WriteLine("Could not find window for " + keyOwner); }
public static void LoginToBattleNet(string defaultAccount, int delay, DiabloWindow diabloWindow) { if (!string.IsNullOrEmpty(defaultAccount)) { string username = string.Empty; string password = string.Empty; string charslot = string.Empty; string master = string.Empty; foreach (string accountString in BlueVex2.Properties.Settings.Default.Accounts) { if (accountString.StartsWith(defaultAccount + ",")) { string[] parts = accountString.Split(','); username = parts[0]; password = parts[1]; charslot = parts[2]; master = parts[3]; } } if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return; } Thread.Sleep((int)delay); ConsoleTab.WriteLine("Logging into Battle Net as " + username); // Click to load menu Thread.Sleep(2000); DiabloInteraction.ClickButton(DiabloInteraction.Diablo2Button.BattleNet, diabloWindow); // Click BattleNet button Thread.Sleep(500); DiabloInteraction.ClickButton(DiabloInteraction.Diablo2Button.BattleNet, diabloWindow); // Tab Thread.Sleep(2000); diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Tab)); diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Tab)); //Username Thread.Sleep(500); DiabloInteraction.WriteString(username, diabloWindow); //Tab Thread.Sleep(500); diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Tab)); diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Tab)); //Password Thread.Sleep(500); DiabloInteraction.WriteString(password, diabloWindow); // Enter Thread.Sleep(500); diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Enter)); diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Enter)); // Double Click Character Slot Thread.Sleep(5000); switch (charslot) { case "1": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot1, diabloWindow); break; case "2": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot2, diabloWindow); break; case "3": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot3, diabloWindow); break; case "4": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot4, diabloWindow); break; case "5": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot5, diabloWindow); break; case "6": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot6, diabloWindow); break; case "7": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot7, diabloWindow); break; case "8": DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot8, diabloWindow); break; default: DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot1, diabloWindow); break; } } }