using System; using System.Windows.Forms; using Sfs2X.Core; using Sfs2X.Requests; public partial class LobbyForm : Form { ////// コンストラクタ /// public LobbyForm() { InitializeComponent(); } ////// ロードイベント /// /// /// private void LobbyForm_Load(object sender, EventArgs e) { Program.smartFox.AddEventListener(SFSEvent.CONNECTION, OnConnection); Program.smartFox.AddEventListener(SFSEvent.CONNECTION_LOST, OnConnectionLost); Program.smartFox.AddEventListener(SFSEvent.LOGIN, OnLogin); Program.smartFox.AddEventListener(SFSEvent.LOGIN_ERROR, OnLoginError); Program.smartFox.AddEventListener(SFSEvent.LOGOUT, OnLogout); } ////// イベントタイマー /// /// /// private void EventTimer_Tick(object sender, EventArgs e) { Program.smartFox.ProcessEvents(); } ////// コネクションイベント /// /// public void OnConnection(BaseEvent evt) { bool success = (bool)evt.Params["success"]; if (success) { Log("SmartFoxServer との接続に成功しました。"); LoginButton.Enabled = true; } else { Log("SmartFoxServer との接続に失敗しました。"); Log("MSG: " + evt.Params["errorMessage"]); LoginButton.Enabled = false; } } ////// コネクションロストイベント /// /// public void OnConnectionLost(BaseEvent evt) { Log("SmartFoxServer から切断されました。"); Log("MSG: " + evt.Params["reason"]); LoginButton.Enabled = false; } ////// ログイン成功イベント /// /// public void OnLogin(BaseEvent evt) { Log("ログインしました。"); // ジョイン処理 Program.ReadRoomListAndJoin(); // 画面切り替え Program.ShowForm(new RoomForm()); } ////// ログイン失敗イベント /// /// public void OnLoginError(BaseEvent evt) { Log("MSG: " + evt.Params["errorMessage"]); } ////// ログアウトイベント /// /// void OnLogout(BaseEvent evt) { Log("ログアウトしました。"); } ////// SFSデバッグメッセージ /// /// public void OnDebugMessage(BaseEvent evt) { Log("DEBUG: " + evt.Params["message"]); } ////// ログメッセージ処理 /// /// private void Log(string log) { LogListBox.Items.Add(log); } ////// ログイン処理 /// /// /// private void LoginButton_Click(object sender, EventArgs e) { // ログイン要求を送信 LoginRequest request = new LoginRequest(UsernameTextBox.Text, PasswordTextBox.Text, ZoneTextBox.Text); Program.smartFox.Send(request); } }