1 |
2 |
Digital_Utopia-2894 |
using System; |
2 |
|
Digital_Utopia-2894 |
using System.Collections.Generic; |
3 |
|
Digital_Utopia-2894 |
using System.ComponentModel; |
4 |
|
Digital_Utopia-2894 |
using System.Data; |
5 |
|
Digital_Utopia-2894 |
using System.Drawing; |
6 |
|
Digital_Utopia-2894 |
using System.Text; |
7 |
|
Digital_Utopia-2894 |
using System.Windows.Forms; |
8 |
|
Digital_Utopia-2894 |
using System.Diagnostics; |
9 |
|
Digital_Utopia-2894 |
using System.IO; |
10 |
|
Digital_Utopia-2894 |
using System.Xml; |
11 |
|
Digital_Utopia-2894 |
using System.Configuration; |
12 |
|
Digital_Utopia-2894 |
using System.Collections.Specialized; |
13 |
|
Digital_Utopia-2894 |
using System.Globalization; |
14 |
|
Digital_Utopia-2894 |
|
15 |
|
Digital_Utopia-2894 |
|
16 |
|
Digital_Utopia-2894 |
namespace WindowsFormsApplication1 |
17 |
|
Digital_Utopia-2894 |
{ |
18 |
|
Digital_Utopia-2894 |
public partial class Form1 : Form |
19 |
|
Digital_Utopia-2894 |
{ |
20 |
|
Digital_Utopia-2894 |
private string sfp; |
21 |
|
Digital_Utopia-2894 |
private string[] args = Environment.GetCommandLineArgs(); |
22 |
|
Digital_Utopia-2894 |
private IniFile ini; |
23 |
|
Digital_Utopia-2894 |
public Form1() |
24 |
|
Digital_Utopia-2894 |
{ |
25 |
|
Digital_Utopia-2894 |
InitializeComponent(); |
26 |
|
Digital_Utopia-2894 |
|
27 |
|
Digital_Utopia-2894 |
ini = new IniFile("lpm.ini"); |
28 |
|
Digital_Utopia-2894 |
string df = ini.IniReadValue("Main", "DefaultFolder"); |
29 |
|
Digital_Utopia-2894 |
string au = ini.IniReadValue("Main", "Author"); |
30 |
|
Digital_Utopia-2894 |
Debug.WriteLine(df); |
31 |
|
Digital_Utopia-2894 |
if (df!=null && df!="") |
32 |
|
Digital_Utopia-2894 |
{ |
33 |
|
Digital_Utopia-2894 |
|
34 |
|
Digital_Utopia-2894 |
textBox1.Text = df; |
35 |
|
Digital_Utopia-2894 |
folderBrowserDialog1.SelectedPath = (df); |
36 |
|
Digital_Utopia-2894 |
} |
37 |
|
Digital_Utopia-2894 |
else |
38 |
|
Digital_Utopia-2894 |
{ |
39 |
|
Digital_Utopia-2894 |
folderBrowserDialog1.SelectedPath = (Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\The Lord of the Rings Online\\Plugins\\"); |
40 |
|
Digital_Utopia-2894 |
} |
41 |
|
Digital_Utopia-2894 |
if (au != "") |
42 |
|
Digital_Utopia-2894 |
{ |
43 |
|
Digital_Utopia-2894 |
textBox4.Text = au; |
44 |
|
Digital_Utopia-2894 |
} |
45 |
|
Digital_Utopia-2894 |
|
46 |
|
Digital_Utopia-2894 |
} |
47 |
|
Digital_Utopia-2894 |
|
48 |
|
Digital_Utopia-2894 |
private void checkBox1_CheckedChanged(object sender, EventArgs e) |
49 |
|
Digital_Utopia-2894 |
{ |
50 |
|
Digital_Utopia-2894 |
if (checkBox1.Checked == false) |
51 |
|
Digital_Utopia-2894 |
{ |
52 |
|
Digital_Utopia-2894 |
textBox7.Enabled = false; |
53 |
|
Digital_Utopia-2894 |
} |
54 |
|
Digital_Utopia-2894 |
else |
55 |
|
Digital_Utopia-2894 |
{ |
56 |
|
Digital_Utopia-2894 |
textBox7.Enabled = true; |
57 |
|
Digital_Utopia-2894 |
} |
58 |
|
Digital_Utopia-2894 |
} |
59 |
|
Digital_Utopia-2894 |
|
60 |
|
Digital_Utopia-2894 |
private void button1_Click(object sender, EventArgs e) |
61 |
|
Digital_Utopia-2894 |
{ |
62 |
|
Digital_Utopia-2894 |
DialogResult result = folderBrowserDialog1.ShowDialog(); // Show the dialog and get result. |
63 |
|
Digital_Utopia-2894 |
if (result == DialogResult.OK) |
64 |
|
Digital_Utopia-2894 |
{ |
65 |
|
Digital_Utopia-2894 |
textBox1.Text = folderBrowserDialog1.SelectedPath; |
66 |
|
Digital_Utopia-2894 |
this.sfp = folderBrowserDialog1.SelectedPath; |
67 |
|
Digital_Utopia-2894 |
} |
68 |
|
Digital_Utopia-2894 |
|
69 |
|
Digital_Utopia-2894 |
} |
70 |
|
Digital_Utopia-2894 |
|
71 |
|
Digital_Utopia-2894 |
private void textBox2_TextChanged(object sender, EventArgs e) |
72 |
|
Digital_Utopia-2894 |
{ |
73 |
|
Digital_Utopia-2894 |
textBox3.Text = textBox2.Text; |
74 |
|
Digital_Utopia-2894 |
textBox7.Text = textBox2.Text; |
75 |
|
Digital_Utopia-2894 |
|
76 |
|
Digital_Utopia-2894 |
} |
77 |
|
Digital_Utopia-2894 |
|
78 |
|
Digital_Utopia-2894 |
private void HandleKeyPress( object sender, KeyPressEventArgs e ) |
79 |
|
Digital_Utopia-2894 |
{ |
80 |
|
Digital_Utopia-2894 |
if ( ( char.IsWhiteSpace( e.KeyChar ) ) ) |
81 |
|
Digital_Utopia-2894 |
e.Handled = true; |
82 |
|
Digital_Utopia-2894 |
} |
83 |
|
Digital_Utopia-2894 |
|
84 |
|
Digital_Utopia-2894 |
public void doPlugin(string path, string folder, string name, string author, string version, string ep, bool doapt, string apt, bool doinit, bool doRes, bool doOpen) |
85 |
|
Digital_Utopia-2894 |
{ |
86 |
|
Digital_Utopia-2894 |
string totalpath = path + "\\"+ folder; |
87 |
|
Digital_Utopia-2894 |
if (!Directory.Exists(totalpath)) |
88 |
|
Digital_Utopia-2894 |
{ |
89 |
|
Digital_Utopia-2894 |
Directory.CreateDirectory(totalpath); |
90 |
|
Digital_Utopia-2894 |
} |
91 |
|
Digital_Utopia-2894 |
|
92 |
|
Digital_Utopia-2894 |
ini.IniWriteValue("Main", "DefaultFolder", path); |
93 |
|
Digital_Utopia-2894 |
ini.IniWriteValue("Main", "Author", author); |
94 |
|
Digital_Utopia-2894 |
|
95 |
|
Digital_Utopia-2894 |
|
96 |
|
Digital_Utopia-2894 |
|
97 |
|
Digital_Utopia-2894 |
|
98 |
|
Digital_Utopia-2894 |
|
99 |
|
Digital_Utopia-2894 |
//do plugin file |
100 |
|
Digital_Utopia-2894 |
XmlDocument plugdoc = new XmlDocument(); |
101 |
|
Digital_Utopia-2894 |
string[] pArray = path.Split('\\'); |
102 |
|
Digital_Utopia-2894 |
XmlNode plugNode = plugdoc.CreateNode(XmlNodeType.XmlDeclaration, "",""); |
103 |
|
Digital_Utopia-2894 |
plugdoc.AppendChild(plugNode); |
104 |
|
Digital_Utopia-2894 |
XmlElement plugElem = plugdoc.CreateElement("", "Plugin", ""); |
105 |
|
Digital_Utopia-2894 |
XmlElement infoElem = plugdoc.CreateElement("", "Information", ""); |
106 |
|
Digital_Utopia-2894 |
plugElem.AppendChild(infoElem); |
107 |
|
Digital_Utopia-2894 |
XmlElement nameElem = plugdoc.CreateElement("", "Name", ""); |
108 |
|
Digital_Utopia-2894 |
XmlText txtVal = plugdoc.CreateTextNode(name); |
109 |
|
Digital_Utopia-2894 |
nameElem.AppendChild(txtVal); |
110 |
|
Digital_Utopia-2894 |
infoElem.AppendChild(nameElem); |
111 |
|
Digital_Utopia-2894 |
XmlElement authorElem = plugdoc.CreateElement("", "Author", ""); |
112 |
|
Digital_Utopia-2894 |
txtVal = plugdoc.CreateTextNode(author); |
113 |
|
Digital_Utopia-2894 |
authorElem.AppendChild(txtVal); |
114 |
|
Digital_Utopia-2894 |
infoElem.AppendChild(authorElem); |
115 |
|
Digital_Utopia-2894 |
XmlElement verElem = plugdoc.CreateElement("", "Version", ""); |
116 |
|
Digital_Utopia-2894 |
txtVal = plugdoc.CreateTextNode(version); |
117 |
|
Digital_Utopia-2894 |
verElem.AppendChild(txtVal); |
118 |
|
Digital_Utopia-2894 |
infoElem.AppendChild(verElem); |
119 |
|
Digital_Utopia-2894 |
XmlElement packageElem = plugdoc.CreateElement("", "Package", ""); |
120 |
|
Digital_Utopia-2894 |
txtVal = plugdoc.CreateTextNode(pArray[pArray.Length-1]+"."+folder+"."+ep); |
121 |
|
Digital_Utopia-2894 |
packageElem.AppendChild(txtVal); |
122 |
|
Digital_Utopia-2894 |
plugElem.AppendChild(packageElem); |
123 |
|
Digital_Utopia-2894 |
if (doapt == true) |
124 |
|
Digital_Utopia-2894 |
{ |
125 |
|
Digital_Utopia-2894 |
XmlElement configElem = plugdoc.CreateElement("", "Configuration", ""); |
126 |
|
Digital_Utopia-2894 |
configElem.SetAttribute("Apartment", apt); |
127 |
|
Digital_Utopia-2894 |
|
128 |
|
Digital_Utopia-2894 |
plugElem.AppendChild(configElem); |
129 |
|
Digital_Utopia-2894 |
} |
130 |
|
Digital_Utopia-2894 |
|
131 |
|
Digital_Utopia-2894 |
plugdoc.AppendChild(plugElem); |
132 |
|
Digital_Utopia-2894 |
plugdoc.Save(path + "\\"+ name + ".plugin"); |
133 |
|
Digital_Utopia-2894 |
//do ep file |
134 |
|
Digital_Utopia-2894 |
|
135 |
|
Digital_Utopia-2894 |
TextWriter tw = new StreamWriter(totalpath + "\\"+ep + ".lua"); |
136 |
|
Digital_Utopia-2894 |
tw.WriteLine("import \"Turbine\";"); |
137 |
|
Digital_Utopia-2894 |
tw.WriteLine("import \"Turbine.UI\";"); |
138 |
|
Digital_Utopia-2894 |
tw.WriteLine("import \"Turbine.UI.Lotro\";"); |
139 |
|
Digital_Utopia-2894 |
tw.WriteLine("import \"Turbine.UI.Gameplay\";"); |
140 |
|
Digital_Utopia-2894 |
tw.WriteLine(""); |
141 |
|
Digital_Utopia-2894 |
tw.WriteLine("--Plugin Starts Here"); |
142 |
|
Digital_Utopia-2894 |
tw.Close(); |
143 |
|
Digital_Utopia-2894 |
|
144 |
|
Digital_Utopia-2894 |
//if init |
145 |
|
Digital_Utopia-2894 |
|
146 |
|
Digital_Utopia-2894 |
if (doinit == true) |
147 |
|
Digital_Utopia-2894 |
{ |
148 |
|
Digital_Utopia-2894 |
tw = new StreamWriter(totalpath + "\\__init__.lua"); |
149 |
|
Digital_Utopia-2894 |
tw.Close(); |
150 |
|
Digital_Utopia-2894 |
} |
151 |
|
Digital_Utopia-2894 |
|
152 |
|
Digital_Utopia-2894 |
if (doRes == true) |
153 |
|
Digital_Utopia-2894 |
{ |
154 |
|
Digital_Utopia-2894 |
Directory.CreateDirectory(totalpath+"\\Resources"); |
155 |
|
Digital_Utopia-2894 |
} |
156 |
|
Digital_Utopia-2894 |
|
157 |
|
Digital_Utopia-2894 |
if (doOpen == true) |
158 |
|
Digital_Utopia-2894 |
{ |
159 |
|
Digital_Utopia-2894 |
if (doinit == true) |
160 |
|
Digital_Utopia-2894 |
{ |
161 |
|
Digital_Utopia-2894 |
Process.Start(totalpath + "\\__init__.lua"); |
162 |
|
Digital_Utopia-2894 |
} |
163 |
|
Digital_Utopia-2894 |
|
164 |
|
Digital_Utopia-2894 |
Process.Start(totalpath + "\\" + ep + ".lua"); |
165 |
|
Digital_Utopia-2894 |
|
166 |
|
Digital_Utopia-2894 |
} |
167 |
|
Digital_Utopia-2894 |
Environment.Exit(0); |
168 |
|
Digital_Utopia-2894 |
} |
169 |
|
Digital_Utopia-2894 |
|
170 |
|
Digital_Utopia-2894 |
private void button2_Click(object sender, EventArgs e) |
171 |
|
Digital_Utopia-2894 |
{ |
172 |
|
Digital_Utopia-2894 |
//verify that all necessary values are filled in: |
173 |
|
Digital_Utopia-2894 |
string errorString=""; |
174 |
|
Digital_Utopia-2894 |
string titleString=""; |
175 |
|
Digital_Utopia-2894 |
int doError = 0; |
176 |
|
Digital_Utopia-2894 |
string ver = textBox2.Text; |
177 |
|
Digital_Utopia-2894 |
|
178 |
|
Digital_Utopia-2894 |
if (textBox1.Text == "") |
179 |
|
Digital_Utopia-2894 |
{ |
180 |
|
Digital_Utopia-2894 |
titleString = "No Base Path Given"; |
181 |
|
Digital_Utopia-2894 |
errorString = "You must select a base path (eg: Documents/The Lord of the Rings Online/plugins/(Author Folder)."; |
182 |
|
Digital_Utopia-2894 |
doError = 1; |
183 |
|
Digital_Utopia-2894 |
} |
184 |
|
Digital_Utopia-2894 |
|
185 |
|
Digital_Utopia-2894 |
if (textBox2.Text == "") |
186 |
|
Digital_Utopia-2894 |
{ |
187 |
|
Digital_Utopia-2894 |
titleString = "No Plugin Folder Given"; |
188 |
|
Digital_Utopia-2894 |
errorString = "You must tell me where you want to put this plugin."; |
189 |
|
Digital_Utopia-2894 |
doError = 1; |
190 |
|
Digital_Utopia-2894 |
} |
191 |
|
Digital_Utopia-2894 |
if (string.Equals("InYourAss",textBox2.Text,StringComparison.CurrentCultureIgnoreCase)) |
192 |
|
Digital_Utopia-2894 |
{ |
193 |
|
Digital_Utopia-2894 |
titleString = "Totally Didn't See That One Coming."; |
194 |
|
Digital_Utopia-2894 |
errorString = "Well, aren't you the funny one? Very well, I'll put this "+textBox2.Text+"."; |
195 |
|
Digital_Utopia-2894 |
doError = 2; |
196 |
|
Digital_Utopia-2894 |
} |
197 |
|
Digital_Utopia-2894 |
if (textBox3.Text == "") |
198 |
|
Digital_Utopia-2894 |
{ |
199 |
|
Digital_Utopia-2894 |
titleString = "No Plugin Name Given"; |
200 |
|
Digital_Utopia-2894 |
errorString = "Although I would be happy to name your plugin for you, it's probably better that I cannot. Please provide your own plugin name."; |
201 |
|
Digital_Utopia-2894 |
doError = 1; |
202 |
|
Digital_Utopia-2894 |
} |
203 |
|
Digital_Utopia-2894 |
|
204 |
|
Digital_Utopia-2894 |
if (textBox4.Text == "") |
205 |
|
Digital_Utopia-2894 |
{ |
206 |
|
Digital_Utopia-2894 |
titleString = "No Author Name Given"; |
207 |
|
Digital_Utopia-2894 |
errorString = "I realize you may be modest, but you need to provide an author name"; |
208 |
|
Digital_Utopia-2894 |
doError = 1; |
209 |
|
Digital_Utopia-2894 |
} |
210 |
|
Digital_Utopia-2894 |
|
211 |
|
Digital_Utopia-2894 |
if (textBox5.Text == "") |
212 |
|
Digital_Utopia-2894 |
{ |
213 |
|
Digital_Utopia-2894 |
textBox5.Text = "1.0"; |
214 |
|
Digital_Utopia-2894 |
} |
215 |
|
Digital_Utopia-2894 |
if (textBox6.Text == "") |
216 |
|
Digital_Utopia-2894 |
{ |
217 |
|
Digital_Utopia-2894 |
textBox6.Text = "Main"; |
218 |
|
Digital_Utopia-2894 |
} |
219 |
|
Digital_Utopia-2894 |
if (checkBox1.Checked == true && textBox7.Text == "") |
220 |
|
Digital_Utopia-2894 |
{ |
221 |
|
Digital_Utopia-2894 |
titleString = "No Apartment Given"; |
222 |
|
Digital_Utopia-2894 |
errorString = "If you didn't want to provide an apartment, why did you check the box?"; |
223 |
|
Digital_Utopia-2894 |
doError = 1; |
224 |
|
Digital_Utopia-2894 |
} |
225 |
|
Digital_Utopia-2894 |
|
226 |
|
Digital_Utopia-2894 |
if (doError == 0) |
227 |
|
Digital_Utopia-2894 |
{ |
228 |
|
Digital_Utopia-2894 |
doPlugin(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, checkBox1.Checked, textBox7.Text, checkBox2.Checked,checkBox3.Checked,checkBox4.Checked); |
229 |
|
Digital_Utopia-2894 |
} |
230 |
|
Digital_Utopia-2894 |
else if (doError == 1) |
231 |
|
Digital_Utopia-2894 |
{ |
232 |
|
Digital_Utopia-2894 |
MessageBox.Show(errorString, titleString, MessageBoxButtons.OK, MessageBoxIcon.Error); |
233 |
|
Digital_Utopia-2894 |
} |
234 |
|
Digital_Utopia-2894 |
else |
235 |
|
Digital_Utopia-2894 |
{ |
236 |
|
Digital_Utopia-2894 |
MessageBox.Show(errorString, titleString, MessageBoxButtons.OK, MessageBoxIcon.Information); |
237 |
|
Digital_Utopia-2894 |
//user is being a smartass, lets do it. |
238 |
|
Digital_Utopia-2894 |
doPlugin(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, checkBox1.Checked, textBox7.Text, checkBox2.Checked, checkBox3.Checked, checkBox4.Checked); |
239 |
|
Digital_Utopia-2894 |
} |
240 |
|
Digital_Utopia-2894 |
} |
241 |
|
Digital_Utopia-2894 |
|
242 |
|
Digital_Utopia-2894 |
|
243 |
|
Digital_Utopia-2894 |
|
244 |
|
Digital_Utopia-2894 |
|
245 |
|
Digital_Utopia-2894 |
|
246 |
|
Digital_Utopia-2894 |
} |
247 |
|
Digital_Utopia-2894 |
|
248 |
|
Digital_Utopia-2894 |
|
249 |
|
Digital_Utopia-2894 |
|
250 |
|
Digital_Utopia-2894 |
} |