sanitize player names

This commit is contained in:
Matthias Mailänder
2015-05-10 19:52:56 +02:00
parent 78f1e9fb2f
commit 736b169319
6 changed files with 49 additions and 6 deletions

View File

@@ -717,9 +717,10 @@ namespace OpenRA.Mods.Common.Server
{ "name",
s =>
{
Log.Write("server", "Player@{0} is now known as {1}.", conn.Socket.RemoteEndPoint, s);
server.SendMessage("{0} is now known as {1}.".F(client.Name, s));
client.Name = s;
var sanitizedName = OpenRA.Settings.SanitizedPlayerName(s);
Log.Write("server", "Player@{0} is now known as {1}.", conn.Socket.RemoteEndPoint, sanitizedName);
server.SendMessage("{0} is now known as {1}.".F(client.Name, sanitizedName));
client.Name = sanitizedName;
server.SyncLobbyClients();
return true;
}

View File

@@ -281,6 +281,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
if (name.Text == c.Name)
return;
name.Text = Settings.SanitizedPlayerName(name.Text);
orderManager.IssueOrder(Order.Command("name " + name.Text));
Game.Settings.Player.Name = name.Text;
Game.Settings.Save();

View File

@@ -204,9 +204,13 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var ps = Game.Settings.Player;
var nameTextfield = panel.Get<TextFieldWidget>("PLAYERNAME");
nameTextfield.Text = ps.Name;
nameTextfield.Text = Settings.SanitizedPlayerName(ps.Name);
nameTextfield.OnEnterKey = () => { nameTextfield.YieldKeyboardFocus(); return true; };
nameTextfield.OnLoseFocus = () => { ps.Name = nameTextfield.Text; };
nameTextfield.OnLoseFocus = () =>
{
nameTextfield.Text = Settings.SanitizedPlayerName(nameTextfield.Text);
ps.Name = nameTextfield.Text;
};
var colorPreview = panel.Get<ColorPreviewManagerWidget>("COLOR_MANAGER");
colorPreview.Color = ps.Color;