From cacdd379e5fba37f05c4bcf957017f99caf19e9f Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Wed, 2 Dec 2009 18:33:07 +1300 Subject: [PATCH] name setting --- OpenRA.Server/Server.cs | 15 ++++++++++++++- OpenRa.Game/UnitOrders.cs | 6 ++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/OpenRA.Server/Server.cs b/OpenRA.Server/Server.cs index e6ac243982..1787d7ec58 100644 --- a/OpenRA.Server/Server.cs +++ b/OpenRA.Server/Server.cs @@ -269,6 +269,18 @@ namespace OpenRA.Server new ServerOrder(0, "StartGame", "").Serialize()); } break; + + case "Chat": + if (so.Data.StartsWith("/name ")) + { + var newName = so.Data.Substring(6); + Console.WriteLine("Player @{0} is now known as {1}", + conn.socket.RemoteEndPoint, newName); + + DispatchOrders(null, 0, + new ServerOrder(conn.PlayerIndex, "SetName", newName).Serialize()); + } + break; } } @@ -279,7 +291,8 @@ namespace OpenRA.Server conns.Remove(c); - /* todo: tell everyone else that `c` has dropped */ + DispatchOrders(c, 0, + new ServerOrder(c.PlayerIndex, "Chat", "Connection Dropped").Serialize()); } public static void Write(this Stream s, byte[] data) { s.Write(data, 0, data.Length); } diff --git a/OpenRa.Game/UnitOrders.cs b/OpenRa.Game/UnitOrders.cs index 4ce12c33f9..58570ff895 100755 --- a/OpenRa.Game/UnitOrders.cs +++ b/OpenRa.Game/UnitOrders.cs @@ -108,6 +108,12 @@ namespace OpenRa.Game Game.chat.AddLine(Pair.New(order.Player.PlayerName, "is now YOU.")); break; } + case "SetName": + { + Game.chat.AddLine(Pair.New(order.Player.PlayerName, "is now known as " + order.TargetString)); + order.Player.PlayerName = order.TargetString; + break; + } case "StartGame": { Game.chat.AddLine(Pair.New("Server:", "The game has started."));