aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ShiftOS.Server/Program.cs26
-rw-r--r--ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs2
-rw-r--r--ShiftOS.WinForms/Applications/MUDControlCentre.cs17
3 files changed, 37 insertions, 8 deletions
diff --git a/ShiftOS.Server/Program.cs b/ShiftOS.Server/Program.cs
index c0c27ed..3ad8035 100644
--- a/ShiftOS.Server/Program.cs
+++ b/ShiftOS.Server/Program.cs
@@ -420,14 +420,36 @@ Contents:
}));
}
break;
- case "legion_create":
+ case "legion_createnew":
List<Legion> legions = new List<Legion>();
if (File.Exists("legions.json"))
legions = JsonConvert.DeserializeObject<List<Legion>>(File.ReadAllText("legions.json"));
var l = JsonConvert.DeserializeObject<Legion>(msg.Contents);
+ bool legionExists = false;
- legions.Add(l);
+ foreach (var legion in legions)
+ if (legion.ShortName == l.ShortName)
+ legionExists = true;
+
+ if (legionExists == false)
+ {
+ legions.Add(l);
+ server.DispatchTo(new Guid(msg.GUID), new NetObject("test", new ServerMessage
+ {
+ Name = "legion_create_ok",
+ GUID = "server"
+ }));
+
+ }
+ else
+ {
+ server.DispatchTo(new Guid(msg.GUID), new NetObject("test", new ServerMessage
+ {
+ Name = "legion_alreadyexists",
+ GUID = "server"
+ }));
+ }
File.WriteAllText("legions.json", JsonConvert.SerializeObject(legions, Formatting.Indented));
break;
diff --git a/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs b/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs
index 06c562e..cc97864 100644
--- a/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs
+++ b/ShiftOS.WinForms/Applications/MUDControlCentre.Designer.cs
@@ -305,9 +305,9 @@ namespace ShiftOS.WinForms.Applications
//
// toolStripContainer1.ContentPanel
//
+ this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_create);
this.toolStripContainer1.ContentPanel.Controls.Add(this.job_current);
this.toolStripContainer1.ContentPanel.Controls.Add(this.shop_view);
- this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_create);
this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_view);
this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_join);
this.toolStripContainer1.ContentPanel.Controls.Add(this.you_memos);
diff --git a/ShiftOS.WinForms/Applications/MUDControlCentre.cs b/ShiftOS.WinForms/Applications/MUDControlCentre.cs
index 1756e99..439d5ab 100644
--- a/ShiftOS.WinForms/Applications/MUDControlCentre.cs
+++ b/ShiftOS.WinForms/Applications/MUDControlCentre.cs
@@ -66,6 +66,17 @@ namespace ShiftOS.WinForms.Applications
BannerColor = ConsoleColor.DarkRed
});
}
+ else if(msg.Name == "legion_create_ok")
+ {
+ SaveSystem.CurrentSave.CurrentLegions.Clear();
+ SaveSystem.CurrentSave.CurrentLegions.Add(editingLegion.ShortName);
+ SaveSystem.SaveGame();
+ myLegionToolStripMenuItem_Click(this, EventArgs.Empty);
+ }
+ else if(msg.Name == "legion_alreadyexists")
+ {
+ Infobox.Show("Legion already exists", "A legion with the short name you provided already exists. Please choose another.");
+ }
else if(msg.Name == "legion_users_found")
{
lvusers.Items.Clear();
@@ -421,11 +432,7 @@ Current legions: {legionname}";
private void btncreate_Click(object sender, EventArgs e)
{
- ServerManager.SendMessage("legion_create", JsonConvert.SerializeObject(editingLegion));
- SaveSystem.CurrentSave.CurrentLegions.Clear();
- SaveSystem.CurrentSave.CurrentLegions.Add(editingLegion.ShortName);
- SaveSystem.SaveGame();
- myLegionToolStripMenuItem_Click(sender, e);
+ ServerManager.SendMessage("legion_createnew", JsonConvert.SerializeObject(editingLegion));
}
private void txtnewlegiondescription_TextChanged(object sender, EventArgs e)