Skip to content

Commit 50ca5ab

Browse files
committed
Version 0.7.3.1
1 parent 81a57e5 commit 50ca5ab

File tree

5 files changed

+52
-93
lines changed

5 files changed

+52
-93
lines changed

Controls/ServersTreeNodes/DirectoryNode.cs

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ namespace MinecraftServerManager.Controls.ServersTreeNodes
1010
public class DirectoryNode : TreeNode
1111
{
1212
public bool Delete = false;
13-
private DirectoryInfo Directory;
13+
private DirectoryInfo directory;
14+
protected List<string> IgnoredFiles = new List<string>();
1415
protected List<string> names = new List<string>();
1516
protected Timer timer = new Timer();
1617

1718
public DirectoryNode(DirectoryNode parent, DirectoryInfo directoryInfo)
1819
: base(directoryInfo.Name)
1920
{
20-
Directory = directoryInfo;
21+
directory = directoryInfo;
2122

2223
ImageIndex = ServersTreeView.FolderCloseIcon;
2324
SelectedImageIndex = ImageIndex;
@@ -34,7 +35,7 @@ public DirectoryNode(DirectoryNode parent, DirectoryInfo directoryInfo)
3435
public DirectoryNode(ServersTreeView treeView, DirectoryInfo directoryInfo, string name)
3536
: base(name)
3637
{
37-
Directory = directoryInfo;
38+
directory = directoryInfo;
3839

3940
timer.Tick += new EventHandler(timer_tick);
4041
timer.Interval = 100;
@@ -49,7 +50,8 @@ private void timer_tick(object sender, EventArgs e)
4950
{
5051
try
5152
{
52-
Refresh();
53+
if (IsExpanded || Delete)
54+
Refresh();
5355
}
5456
catch (Exception) { }
5557
}
@@ -60,49 +62,49 @@ public virtual void Refresh()
6062
{
6163
try
6264
{
63-
if (Directory.Exists)
64-
new Computer().FileSystem.DeleteDirectory(Directory.FullName, UIOption.AllDialogs, RecycleOption.SendToRecycleBin);
65+
if (directory.Exists)
66+
new Computer().FileSystem.DeleteDirectory(directory.FullName, UIOption.AllDialogs, RecycleOption.SendToRecycleBin);
6567
if (this is ServerNode && ((ServerNode)this).GetServerData().isImported)
6668
File.Delete(((ServerNode)this).GetServerData().GetFile());
6769
Destroy();
6870
}
6971
catch (OperationCanceledException) { }
7072
return;
7173
}
74+
7275
List<string> newNames = new List<string>();
73-
foreach (DirectoryInfo directoryInfo in Directory.GetDirectories())
76+
foreach (DirectoryInfo directoryInfo in directory.GetDirectories())
7477
newNames.Add(directoryInfo.FullName);
75-
foreach (FileInfo fileInfo in Directory.GetFiles())
78+
foreach (FileInfo fileInfo in directory.GetFiles())
79+
{
80+
if (IgnoredFiles.Contains(fileInfo.Name)) continue;
7681
newNames.Add(fileInfo.FullName);
82+
}
83+
7784
bool equals = true;
7885
if (newNames.Count != names.Count)
79-
{
8086
equals = false;
81-
}
8287
else
83-
{
8488
for (int i = 0; i < newNames.Count; i++)
85-
{
8689
if (newNames[i] != names[i])
8790
{
8891
equals = false;
8992
break;
9093
}
91-
}
92-
}
94+
9395
if (!equals)
9496
{
95-
names.Clear();
97+
names = newNames;
9698
Nodes.Clear();
97-
foreach (DirectoryInfo directoryInfo in Directory.GetDirectories())
98-
{
99-
new DirectoryNode(this, directoryInfo);
100-
names.Add(directoryInfo.FullName);
101-
}
102-
foreach (FileInfo fileInfo in Directory.GetFiles())
99+
100+
if (this is ServerNode) new ConsoleNode((ServerNode)this);
101+
102+
foreach (string path in names)
103103
{
104-
new FileNode(this, fileInfo);
105-
names.Add(fileInfo.FullName);
104+
if (Directory.Exists(path))
105+
new DirectoryNode(this, new DirectoryInfo(path));
106+
if (File.Exists(path))
107+
new FileNode(this, new FileInfo(path));
106108
}
107109
}
108110
}
@@ -111,14 +113,14 @@ private void Virtualize()
111113
{
112114
int fileCount = 0;
113115

114-
fileCount = Directory.GetFiles().Length;
115-
if ((fileCount + Directory.GetDirectories().Length) > 0)
116+
fileCount = directory.GetFiles().Length;
117+
if ((fileCount + directory.GetDirectories().Length) > 0)
116118
new FakeChildNode(this);
117119
}
118120

119121
public DirectoryInfo GetDirectory()
120122
{
121-
return Directory;
123+
return directory;
122124
}
123125

124126
public new ServersTreeView TreeView

Controls/ServersTreeNodes/ServerNode.cs

Lines changed: 7 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -16,58 +16,13 @@ public Data.Server GetServerData()
1616
public ServerNode(ServersTreeView treeView, DirectoryInfo directoryInfo, Data.Server _serverData)
1717
: base(treeView, directoryInfo, _serverData.ToString())
1818
{
19-
this.serverData = _serverData;
20-
this.directory = directoryInfo;
21-
this.ImageIndex = ServersTreeView.LocalServerIcon;
22-
this.SelectedImageIndex = this.ImageIndex;
23-
}
24-
25-
public override void Refresh()
26-
{
27-
List<string> newNames = new List<string>();
28-
foreach (DirectoryInfo directoryInfo in directory.GetDirectories())
29-
newNames.Add(directoryInfo.FullName);
30-
foreach (FileInfo fileInfo in directory.GetFiles())
31-
{
32-
if (fileInfo.Name == "eula.txt" || fileInfo.Name == "ServerManagerData.xml" || fileInfo.Name == "server.jar")
33-
continue;
34-
newNames.Add(fileInfo.FullName);
35-
}
36-
bool equals = true;
37-
if (newNames.Count != names.Count)
38-
equals = false;
39-
else
40-
{
41-
for (int i = 0; i < newNames.Count; i++)
42-
{
43-
if (newNames[i] != names[i])
44-
{
45-
equals = false;
46-
break;
47-
}
48-
}
49-
}
50-
if (this.Nodes.Count == 1 && this.Nodes[0] is FakeChildNode)
51-
equals = false;
52-
if (!equals)
53-
{
54-
this.names.Clear();
55-
this.Nodes.Clear();
56-
new ConsoleNode(this);
57-
//new PropertiesNode(this);
58-
foreach (DirectoryInfo directoryInfo in directory.GetDirectories())
59-
{
60-
new DirectoryNode(this, directoryInfo);
61-
this.names.Add(directoryInfo.FullName);
62-
}
63-
foreach (FileInfo fileInfo in directory.GetFiles())
64-
{
65-
if (fileInfo.Name == "eula.txt" || fileInfo.Name == "ServerManagerData.xml" || fileInfo.Name == "server.jar")
66-
continue;
67-
new FileNode(this, fileInfo);
68-
this.names.Add(fileInfo.FullName);
69-
}
70-
}
19+
IgnoredFiles.Add("ServerManagerData.xml");
20+
IgnoredFiles.Add("eula.txt");
21+
IgnoredFiles.Add("server.jar");
22+
serverData = _serverData;
23+
directory = directoryInfo;
24+
ImageIndex = ServersTreeView.LocalServerIcon;
25+
SelectedImageIndex = ImageIndex;
7126
}
7227

7328
}

Controls/ServersTreeView.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -635,9 +635,9 @@ private void removeMenu_Click(object sender, EventArgs e)
635635
DirectoryInfo directory = node.GetDirectory();
636636
string message;
637637
if (SelectedNode is ServerNode)
638-
message = String.Format(Language.GetString("DialogDirectoryRemove"), directory.Name);
639-
else
640638
message = String.Format(Language.GetString("DialogServerRemove"), directory.Name);
639+
else
640+
message = String.Format(Language.GetString("DialogDirectoryRemove"), directory.Name);
641641
DialogResult result = MessageBox.Show(message, Language.GetString("Warning"),
642642
MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
643643
if (result == DialogResult.Yes)

Controls/Tabs/FileEditor.cs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ public FileEditor()
102102
Error.Show("ErrorFileTooBig");
103103
return;
104104
}
105+
106+
if (file.Extension == ".properties")
107+
text.TextChanged += new EventHandler<TextChangedEventArgs>(PropertiesParser);
108+
else if (file.Extension == ".yml")
109+
text.TextChanged += new EventHandler<TextChangedEventArgs>(YamlParser);
110+
else if (file.Extension == ".json")
111+
text.TextChanged += new EventHandler<TextChangedEventArgs>(JsonParser);
112+
else if (file.Extension == ".log")
113+
text.TextChanged += new EventHandler<TextChangedEventArgs>(Log.Parse);
114+
else if (file.Extension == ".sk")
115+
text.TextChanged += new EventHandler<TextChangedEventArgs>(SkriptParser);
116+
105117
try
106118
{
107119
StreamReader sr = new StreamReader(file.FullName);
@@ -115,20 +127,10 @@ public FileEditor()
115127
return;
116128
}
117129

130+
text.TextChanged += new EventHandler<TextChangedEventArgs>(Parser);
131+
118132
text.Visible = true;
119133
saveButton.Visible = true;
120-
121-
if (file.Extension == ".properties")
122-
text.TextChanged += new EventHandler<TextChangedEventArgs>(PropertiesParser);
123-
else if (file.Extension == ".yml")
124-
text.TextChanged += new EventHandler<TextChangedEventArgs>(YamlParser);
125-
else if (file.Extension == ".json")
126-
text.TextChanged += new EventHandler<TextChangedEventArgs>(JsonParser);
127-
else if (file.Extension == ".log")
128-
text.TextChanged += new EventHandler<TextChangedEventArgs>(Log.Parse);
129-
else if (file.Extension == ".sk")
130-
text.TextChanged += new EventHandler<TextChangedEventArgs>(SkriptParser);
131-
text.TextChanged += new EventHandler<TextChangedEventArgs>(Parser);
132134
break;
133135
case FileType.Image:
134136
picturePanel.Visible = true;

Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77

88
[assembly: ComVisible(false)]
99

10-
[assembly: AssemblyVersion("0.7.3")]
10+
[assembly: AssemblyVersion("0.7.3.1")]

0 commit comments

Comments
 (0)