Skip to content

Commit

Permalink
Merge pull request #8 from generalwrex/networkController-#2
Browse files Browse the repository at this point in the history
Added spawns to the console and in game to let server owners and othe…
  • Loading branch information
generalwrex committed Mar 3, 2017
2 parents c156379 + 3256905 commit 5262533
Show file tree
Hide file tree
Showing 6 changed files with 218 additions and 27 deletions.
54 changes: 43 additions & 11 deletions HellionExtendedServer/Controllers/NetworkController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,42 +22,74 @@ public NetworkController(ZeroGravity.Network.NetworkController networkController
networkController.EventSystem.AddListener(typeof(TextChatMessage), new EventSystem.NetworkDataDelegate(this.TextChatMessageListener));
Console.WriteLine("Chat Message Listener Added.");

networkController.EventSystem.AddListener(typeof(PlayerSpawnRequest), new EventSystem.NetworkDataDelegate(this.PlayerSpawnRequestListener));
Console.WriteLine("Player Spawns Listener Added.");

m_network = networkController;
Console.WriteLine("Network Controller Loaded!");


}

private void TextChatMessageListener(NetworkData data)
private void PlayerSpawnRequestListener(NetworkData data)
{
try
{
TextChatMessage textChatMessage = data as TextChatMessage;
Player player1 = Server.Instance.GetPlayer(textChatMessage.Sender);
textChatMessage.GUID = player1.FakeGuid;
textChatMessage.Name = player1.Name;
PlayerSpawnRequest playerSpawnRequest = data as PlayerSpawnRequest;

Console.WriteLine(textChatMessage.Name + ": " + textChatMessage.MessageText);
if (playerSpawnRequest == null)
return;

Player ply;
if (m_network.clientList.ContainsKey(playerSpawnRequest.Sender))
ply = m_network.clientList[playerSpawnRequest.Sender].Player;
else
return;

Console.WriteLine(ply.Name + " spawned ("+ ply.SteamId +") ");
MessageAllClients(ply.Name + " has spawned!", false);

}
catch (Exception ex)
{
Console.WriteLine("[ERROR] Hellion Extended Server[Chat]:" + ex.InnerException.ToString());
Console.WriteLine("[ERROR] Hellion Extended Server[SpawnRequest]:" + ex.InnerException.ToString());

}


}

private void TextChatMessageListener(NetworkData data)
{
try
{
TextChatMessage textChatMessage = data as TextChatMessage;

Console.WriteLine("(" +textChatMessage.Sender+ ")" + textChatMessage.Name + ": " + textChatMessage.MessageText);

}
catch (Exception ex)
{
Console.WriteLine("[ERROR] Hellion Extended Server[Chat]:" + ex.InnerException.ToString());

}
}

public void MessageAllClients(string msg)
public void MessageAllClients(string msg, bool sendAsServer = true)
{
if (String.IsNullOrEmpty(msg))
return;

byte[] guid = Guid.NewGuid().ToByteArray();

TextChatMessage textChatMessage = new TextChatMessage();

textChatMessage.GUID = BitConverter.ToInt64(guid, 0);
textChatMessage.Name = "Server";
textChatMessage.Name = (sendAsServer ? "Server :" : "");
textChatMessage.MessageText = msg;
m_network.SendToAllClients((NetworkData)textChatMessage, textChatMessage.Sender);
Console.WriteLine("Server: " + msg);
Console.WriteLine(textChatMessage.Name + ": " + msg);
}


}
}
135 changes: 133 additions & 2 deletions HellionExtendedServer/Form1.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions HellionExtendedServer/Form1.resx
Original file line number Diff line number Diff line change
Expand Up @@ -117,4 +117,10 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tabPage2.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
37 changes: 27 additions & 10 deletions HellionExtendedServer/Managers/ServerInstance.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Diagnostics;

Expand Down Expand Up @@ -42,27 +43,43 @@ public ServerInstance()

}

private bool isSaving = false;
public void Save()
{

if (!Server.IsRunning)
return;

if (isSaving)
{
Console.WriteLine("Save is already in progress!");
return;
}

try
{
Stopwatch saveTime = new Stopwatch();
saveTime.Start();
Console.WriteLine("Saving Universe...");
Persistence.Save();
saveTime.Stop();

Console.WriteLine("Universe Saved in "+ saveTime.Elapsed.Milliseconds+"ms to "
+ String.Format(Persistence.PersistanceFileName,
DateTime.UtcNow.ToString("yyyy-MM-dd-HH-mm-ss")));
new TaskFactory().StartNew(() => {
isSaving = true;
Stopwatch saveTime = new Stopwatch();
saveTime.Start();
Console.WriteLine("Saving Universe...");
Persistence.Save();
saveTime.Stop();
Console.WriteLine("Universe Saved in " + saveTime.Elapsed.Milliseconds + "ms to "
+ String.Format(Persistence.PersistanceFileName,
DateTime.UtcNow.ToString("yyyy-MM-dd-HH-mm-ss")));
isSaving = false;
});


}
catch (Exception ex)
{
Console.WriteLine("Hellion Extended Server [SAVE ERROR] " + ex.ToString());

isSaving = false;
}
}

Expand Down
11 changes: 8 additions & 3 deletions HellionExtendedServer/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ static void Main(string[] args)

Thread uiThread = new Thread(LoadGUI);
uiThread.SetApartmentState(ApartmentState.STA);
//uiThread.Start(); //form disabled for now
//uiThread.Start();

Console.Title = String.Format("HELLION EXTENDED SERVER V{0}) - Game Patch Version: {1} ", Version, "0.1.4");

Expand Down Expand Up @@ -124,12 +124,17 @@ public void ReadConsoleCommands()
[STAThread]
static void LoadGUI()
{
Console.WriteLine("Loading GUI (WIP)");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (m_form == null || m_form.IsDisposed)
m_form = new Form1();
{
m_form = new Form1();
}
else if (m_form.Visible)
return;
return;

Application.Run(m_form);
}

private enum CtrlType
Expand Down
2 changes: 1 addition & 1 deletion HellionExtendedServer/ServerWrappers/Hellion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public Thread StartServer(Object args)
}


Console.WriteLine("Hellion Extended Server: Waiting for server to start. This may take at least 10 seconds.");
Console.WriteLine("Hellion Extended Server: Waiting for server to start. This may take at least 10 seconds or longer depending on the size of the current save.");

try
{
Expand Down

0 comments on commit 5262533

Please sign in to comment.