rendered paste body#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using System.Xml;
using System.Text;
using System.Net;
using System.IO;
using System.Threading;
#endregion
namespace Launcher
{
partial class Form1 : Form
{
string serverXml = "http://www.daocportal.net/serverlistxml.php";
public Form1()
{
InitializeComponent();
LoadServersDelegate loadServers = new LoadServersDelegate(LoadServers);
loadServers.BeginInvoke(serverXml, null, null);
label5.Text = "Welcome to PwnLauncher - the premiere launcher for freeshards.";
if (File.Exists("config.xml"))
{
XmlDocument xml = new XmlDocument();
xml.Load("config.xml");
XmlNodeList configParams = xml.GetElementsByTagName("configuration");
textBox5.Text = configParams[0].ChildNodes[0].InnerText;
if (configParams[0].ChildNodes[1].InnerText == "1")
{
checkBox1.Checked = false;
}
if (configParams[0].ChildNodes[1].InnerText == "20")
{
checkBox1.Checked = true;
}
}
}
private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
{
panel2.Visible = false;
panel3.Visible = false;
panel1.Visible = true;
groupBox1.Text = "Settings";
label5.Text = "Set your DAOC directory and version here.";
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
panel1.Visible = false;
panel3.Visible = false;
panel2.Visible = true;
groupBox1.Text = "About";
label5.Text = "Information about the launcher, and a link to donate!";
}
delegate void ServerUpdateDelegate(ListViewItem serverItem);
public void ServerUpdate(ListViewItem serverItem)
{
if (listView1.InvokeRequired == false)
{
listView1.Items.Add(serverItem);
}
else
{
ServerUpdateDelegate serverUpdate = new ServerUpdateDelegate(ServerUpdate);
BeginInvoke(serverUpdate, new object[] { serverItem });
}
}
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = true;
groupBox1.Text = "Servers";
//LoadServersDelegate loadServers = new LoadServersDelegate(LoadServers);
//loadServers.Invoke(serverXml, null, null);
}
private void serversToolStripMenuItem_Click(object sender, EventArgs e)
{
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = true;
groupBox1.Text = "Servers";
listView1.Items.Clear();
LoadServersDelegate loadServers = new LoadServersDelegate(LoadServers);
loadServers.BeginInvoke(serverXml, null, null);
label5.Text = "List of servers which are currently active.";
}
delegate void LoadServersDelegate(string xmlUrl);
public void LoadServers(string xmlUrl)
{
WebClient webClient = new WebClient();
Byte[] xmlByte = webClient.DownloadData(xmlUrl);
string xmlString = Encoding.Default.GetString(xmlByte);
StreamWriter sr = File.CreateText("server.xml");
sr.WriteLine(xmlString);
sr.Close();
XmlDocument xml = new XmlDocument();
xml.Load("server.xml");
XmlNodeList serverList = xml.GetElementsByTagName("serverlist");
listView1.Items.Clear();
for (int i = 0; i < serverList[0].ChildNodes.Count; i++)
{
ListViewItem newServer = new ListViewItem(new string[] {
serverList[0].ChildNodes[i].Attributes.GetNamedItem("name").Value,
serverList[0].ChildNodes[i].ChildNodes[1].InnerText,
serverList[0].ChildNodes[i].ChildNodes[5].InnerText
}
);
ServerUpdate(newServer);
}
}
private void Settings_Click(object sender, EventArgs e)
{
panel2.Visible = false;
panel3.Visible = false;
panel1.Visible = true;
groupBox1.Text = "Settings";
}
private void button3_Click_1(object sender, EventArgs e)
{
gameDir.ShowDialog();
textBox5.Text = gameDir.SelectedPath;
XmlTextWriter configFile = null;
configFile = new XmlTextWriter("config.xml", null);
try
{
configFile.Formatting = Formatting.Indented;
configFile.Indentation = 6;
configFile.Namespaces = false;
configFile.WriteStartDocument();
configFile.WriteStartElement("", "configuration", "");
configFile.WriteStartElement("", "gamedir", "");
configFile.WriteString(gameDir.SelectedPath);
configFile.WriteEndElement();
configFile.WriteStartElement("", "gameversion", "");
if (checkBox1.Checked) { configFile.WriteString("20"); }
else { configFile.WriteString("1"); }
configFile.WriteEndElement();
configFile.WriteEndElement();
configFile.Flush();
}
catch
{
}
finally
{
if (configFile != null) configFile.Close();
}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = true;
groupBox1.Text = "Servers";
label5.Text = "List of servers which are currently active.";
XmlDocument xml = new XmlDocument();
xml.Load("server.xml");
XmlNodeList serverList = xml.GetElementsByTagName("serverlist");
if (listView1.SelectedItems.Count > 0)
{
for (int i = 0; i < serverList[0].ChildNodes.Count; i++)
{
if (serverList[0].ChildNodes[i].Attributes.GetNamedItem("name").Value.Equals(listView1.SelectedItems[0].Text))
{
richTextBox1.Text = "";
richTextBox1.Text = serverList[0].ChildNodes[i].ChildNodes[0].InnerText + "\n\n";
richTextBox1.Text += serverList[0].ChildNodes[i].ChildNodes[3].InnerText + "\n\n";
richTextBox1.Text += "clients: " + serverList[0].ChildNodes[i].ChildNodes[4].InnerText + " / " + serverList[0].ChildNodes[i].ChildNodes[5].InnerText.ToLower() + " mode";
}
}
}
}
private void button4_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
XmlDocument xml = new XmlDocument();
xml.Load("server.xml");
XmlNodeList serverList = xml.GetElementsByTagName("serverlist");
for (int i = 0; i < serverList[0].ChildNodes.Count; i++)
{
if (serverList[0].ChildNodes[i].Attributes.GetNamedItem("name").Value.Equals(listView1.SelectedItems[0].Text))
{
StringBuilder gameLoc = new StringBuilder();
gameLoc.Append(textBox5.Text);
gameLoc.Replace("\\", "\\\\");
gameLoc.Append("\\\\game.dll");
string properFlag = "1";
if (checkBox1.Checked) properFlag = "20";
//MessageBox.Show(gameLoc.ToString() + " " + serverList[0].ChildNodes[i].ChildNodes[1].InnerText + " " + serverList[0].ChildNodes[i].ChildNodes[2].InnerText + " " + properFlag + " " + textBox3.Text + " " + textBox4.Text);
Process.Start("DOLLoader.exe", gameLoc.ToString() + " " + serverList[0].ChildNodes[i].ChildNodes[1].InnerText + " " + serverList[0].ChildNodes[i].ChildNodes[2].InnerText + " " + properFlag + " " + textBox3.Text + " " + textBox4.Text);
}
}
}
}
private void button9_Click(object sender, EventArgs e)
{
panel2.Visible = false;
panel3.Visible = false;
panel1.Visible = true;
groupBox1.Text = "Settings";
label5.Text = "Set your DAOC directory and version here.";
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
XmlTextWriter configFile = null;
configFile = new XmlTextWriter("config.xml", null);
try
{
configFile.Formatting = Formatting.Indented;
configFile.Indentation = 6;
configFile.Namespaces = false;
configFile.WriteStartDocument();
configFile.WriteStartElement("", "configuration", "");
configFile.WriteStartElement("", "gamedir", "");
configFile.WriteString(textBox5.Text);
configFile.WriteEndElement();
configFile.WriteStartElement("", "gameversion", "");
if (checkBox1.Checked) { configFile.WriteString("20"); }
else { configFile.WriteString("1"); }
configFile.WriteEndElement();
configFile.WriteEndElement();
configFile.Flush();
}
catch
{
}
finally
{
if (configFile != null) configFile.Close();
}
}
}
}