Remove ChatSettings.NickName, use PlayerName always as default

This commit is contained in:
rob-v
2017-05-06 19:14:46 +02:00
committed by Chris Forbes
parent 5b8c313d55
commit 48abb7372b
3 changed files with 13 additions and 24 deletions

View File

@@ -79,6 +79,8 @@ namespace OpenRA.Chat
volatile ChatConnectionStatus connectionStatus = ChatConnectionStatus.Disconnected; volatile ChatConnectionStatus connectionStatus = ChatConnectionStatus.Disconnected;
public ChatConnectionStatus ConnectionStatus { get { return connectionStatus; } } public ChatConnectionStatus ConnectionStatus { get { return connectionStatus; } }
string nickname;
public GlobalChat() public GlobalChat()
{ {
client.Encoding = System.Text.Encoding.UTF8; client.Encoding = System.Text.Encoding.UTF8;
@@ -128,11 +130,13 @@ namespace OpenRA.Chat
}); });
} }
public void Connect() public void Connect(string nickname)
{ {
if (client.IsConnected) if (client.IsConnected || !IsValidNickname(nickname))
return; return;
this.nickname = nickname;
new Thread(() => new Thread(() =>
{ {
try try
@@ -183,12 +187,7 @@ namespace OpenRA.Chat
AddNotification("Connected."); AddNotification("Connected.");
connectionStatus = ChatConnectionStatus.Connected; connectionStatus = ChatConnectionStatus.Connected;
// Guard against settings.yaml modification client.Login(nickname, "in-game IRC client", 0, "OpenRA");
var nick = SanitizedName(Game.Settings.Chat.Nickname);
if (nick != Game.Settings.Chat.Nickname)
Game.RunAfterTick(() => Game.Settings.Chat.Nickname = nick);
client.Login(nick, "in-game IRC client", 0, "OpenRA");
client.RfcJoin("#" + Game.Settings.Chat.Channel); client.RfcJoin("#" + Game.Settings.Chat.Channel);
} }
@@ -339,7 +338,6 @@ namespace OpenRA.Chat
if (Rfc2812.IsValidNickname(nick)) if (Rfc2812.IsValidNickname(nick))
{ {
client.RfcNick(nick); client.RfcNick(nick);
Game.Settings.Chat.Nickname = nick;
return true; return true;
} }
@@ -366,7 +364,7 @@ namespace OpenRA.Chat
AddNotification("Disconnecting from {0}...".F(client.Address)); AddNotification("Disconnecting from {0}...".F(client.Address));
Game.RunAfterTick(() => Game.Settings.Chat.ConnectAutomatically = false); Game.RunAfterTick(() => { Game.Settings.Chat.ConnectAutomatically = false; Game.Settings.Save(); });
} }
public void Dispose() public void Dispose()

View File

@@ -325,7 +325,6 @@ namespace OpenRA
public string Hostname = "irc.openra.net"; public string Hostname = "irc.openra.net";
public int Port = 6667; public int Port = 6667;
public string Channel = "lobby"; public string Channel = "lobby";
public string Nickname = "Newbie";
public string QuitMessage = "Battle control terminated!"; public string QuitMessage = "Battle control terminated!";
public string TimestampFormat = "HH:mm"; public string TimestampFormat = "HH:mm";
public bool ConnectAutomatically = false; public bool ConnectAutomatically = false;

View File

@@ -42,12 +42,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
inputBox.IsDisabled = () => Game.GlobalChat.ConnectionStatus != ChatConnectionStatus.Joined; inputBox.IsDisabled = () => Game.GlobalChat.ConnectionStatus != ChatConnectionStatus.Joined;
inputBox.OnEnterKey = EnterPressed; inputBox.OnEnterKey = EnterPressed;
// Set a random default nick var nickName = Game.GlobalChat.SanitizedName(Game.Settings.Player.Name);
if (Game.Settings.Chat.Nickname == new ChatSettings().Nickname)
Game.Settings.Chat.Nickname += Game.CosmeticRandom.Next(100, 999);
var nicknameBox = widget.Get<TextFieldWidget>("NICKNAME_TEXTFIELD"); var nicknameBox = widget.Get<TextFieldWidget>("NICKNAME_TEXTFIELD");
nicknameBox.Text = Game.GlobalChat.SanitizedName(Game.Settings.Chat.Nickname); nicknameBox.Text = nickName;
nicknameBox.OnTextEdited = () => nicknameBox.OnTextEdited = () =>
{ {
nicknameBox.Text = Game.GlobalChat.SanitizedName(nicknameBox.Text); nicknameBox.Text = Game.GlobalChat.SanitizedName(nicknameBox.Text);
@@ -65,20 +62,15 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var connectButton = connectPanel.Get<ButtonWidget>("CONNECT_BUTTON"); var connectButton = connectPanel.Get<ButtonWidget>("CONNECT_BUTTON");
connectButton.IsDisabled = () => !Game.GlobalChat.IsValidNickname(nicknameBox.Text); connectButton.IsDisabled = () => !Game.GlobalChat.IsValidNickname(nicknameBox.Text);
connectButton.OnClick = () => connectButton.OnClick = () => Game.GlobalChat.Connect(nicknameBox.Text);
{
Game.Settings.Chat.Nickname = nicknameBox.Text;
Game.Settings.Save();
Game.GlobalChat.Connect();
};
var mainPanel = widget.Get("GLOBALCHAT_MAIN_PANEL"); var mainPanel = widget.Get("GLOBALCHAT_MAIN_PANEL");
mainPanel.IsVisible = () => Game.GlobalChat.ConnectionStatus != ChatConnectionStatus.Disconnected; mainPanel.IsVisible = () => Game.GlobalChat.ConnectionStatus != ChatConnectionStatus.Disconnected;
mainPanel.Get<LabelWidget>("CHANNEL_TOPIC").GetText = () => Game.GlobalChat.Topic; mainPanel.Get<LabelWidget>("CHANNEL_TOPIC").GetText = () => Game.GlobalChat.Topic;
if (Game.Settings.Chat.ConnectAutomatically && Game.GlobalChat.IsValidNickname(Game.Settings.Chat.Nickname)) if (Game.Settings.Chat.ConnectAutomatically)
Game.GlobalChat.Connect(); Game.GlobalChat.Connect(nickName);
} }
Widget MakeHistoryWidget(object o) Widget MakeHistoryWidget(object o)