mirror of
https://github.com/project-redbud/FunGame-Desktop.git
synced 2025-04-21 04:29:34 +08:00
预留插件事件接口,添加插件加载方法 (#18)
This commit is contained in:
parent
950ae5e467
commit
ab2f2c6c3d
@ -65,6 +65,7 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
if (user.Id != 0)
|
||||
{
|
||||
// 创建User对象并返回到Main
|
||||
args.Username = user.Username;
|
||||
RunTime.Session.LoginKey = key;
|
||||
RunTime.Main?.UpdateUI(MainInvokeType.SetUser, user);
|
||||
result = true;
|
||||
@ -161,7 +162,8 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
{
|
||||
if (UIForm.GetType() == typeof(Login))
|
||||
{
|
||||
return ((Login)UIForm).OnBeforeLoginEvent(LoginEventArgs) == EventResult.Success;
|
||||
((Login)UIForm).OnBeforeLoginEvent(UIForm, LoginEventArgs);
|
||||
return !LoginEventArgs.Cancel;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -173,13 +175,13 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
if (UIForm.GetType() == typeof(Login))
|
||||
{
|
||||
Login login = (Login)UIForm;
|
||||
if (result) login.OnSucceedLoginEvent(LoginEventArgs);
|
||||
else login.OnFailedLoginEvent(LoginEventArgs);
|
||||
login.OnAfterLoginEvent(LoginEventArgs);
|
||||
if (result) login.OnSucceedLoginEvent(UIForm, LoginEventArgs);
|
||||
else login.OnFailedLoginEvent(UIForm, LoginEventArgs);
|
||||
login.OnAfterLoginEvent(UIForm, LoginEventArgs);
|
||||
}
|
||||
else if (UIForm.GetType() == typeof(Main))
|
||||
{
|
||||
if (result) ((Main)UIForm).OnSucceedLoginEvent(LoginEventArgs);
|
||||
if (result) ((Main)UIForm).OnSucceedLoginEvent(UIForm, LoginEventArgs);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
@ -161,9 +161,9 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<string> CreateRoomAsync(string RoomType, string Password = "")
|
||||
public async Task<Room> CreateRoomAsync(string RoomType, string Password = "")
|
||||
{
|
||||
string roomid = "-1";
|
||||
Room room = General.HallInstance;
|
||||
|
||||
try
|
||||
{
|
||||
@ -173,7 +173,7 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
await CreateRoomRequest.SendRequestAsync();
|
||||
if (CreateRoomRequest.Result == RequestResult.Success)
|
||||
{
|
||||
roomid = CreateRoomRequest.GetResult<string>("roomid") ?? "-1";
|
||||
room = CreateRoomRequest.GetResult<Room>("room") ?? room;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -181,7 +181,7 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
Main.GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
}
|
||||
|
||||
return roomid;
|
||||
return room;
|
||||
}
|
||||
|
||||
public async Task<bool> ChatAsync(string msg)
|
||||
|
@ -26,7 +26,9 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
{
|
||||
password = password.Encrypt(username);
|
||||
RegisterEventArgs RegEventArgs = new(username, password, email);
|
||||
if (Register.OnBeforeRegEvent(RegEventArgs) == EventResult.Fail) return false;
|
||||
Register.OnBeforeRegEvent(Register, RegEventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeRegEvent(Register, RegEventArgs);
|
||||
if (RegEventArgs.Cancel) return false;
|
||||
|
||||
DataRequest request = RunTime.NewLongRunningDataRequest(DataRequestType.Reg_GetRegVerifyCode);
|
||||
request.AddRequestData("username", username);
|
||||
@ -77,15 +79,24 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
}
|
||||
request.Dispose();
|
||||
|
||||
if (result) Register.OnSucceedRegEvent(RegEventArgs);
|
||||
else Register.OnFailedRegEvent(RegEventArgs);
|
||||
Register.OnAfterRegEvent(RegEventArgs);
|
||||
if (result)
|
||||
{
|
||||
Register.OnSucceedRegEvent(Register, RegEventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedRegEvent(Register, RegEventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
Register.OnFailedRegEvent(Register, RegEventArgs);
|
||||
RunTime.PluginLoader?.OnFailedRegEvent(Register, RegEventArgs);
|
||||
}
|
||||
Register.OnAfterRegEvent(Register, RegEventArgs);
|
||||
RunTime.PluginLoader?.OnAfterRegEvent(Register, RegEventArgs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
RunTime.WritelnSystemInfo(e.GetErrorInfo());
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Api.Transmittal;
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||
using Milimoe.FunGame.Core.Library.Common.Network;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
@ -21,16 +23,37 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
LoginController = new(Main);
|
||||
}
|
||||
|
||||
public void LoadPlugins()
|
||||
{
|
||||
try
|
||||
{
|
||||
RunTime.PluginLoader = PluginLoader.LoadPlugins(
|
||||
new Action<string>(WritelnSystemInfo),
|
||||
new Func<DataRequestType, DataRequest>(NewDataRequest),
|
||||
new Func<DataRequestType, DataRequest>(NewLongRunningDataRequest),
|
||||
RunTime.Session, RunTime.Config);
|
||||
foreach (string name in RunTime.PluginLoader.Plugins.Keys)
|
||||
{
|
||||
Main.GetMessage("[ PluginLoader ] Load: " + name);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Main.GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
}
|
||||
}
|
||||
|
||||
public override void WritelnSystemInfo(string msg)
|
||||
{
|
||||
Main?.GetMessage(msg);
|
||||
Main.GetMessage(msg);
|
||||
}
|
||||
|
||||
public override void Error(Exception e)
|
||||
{
|
||||
Main.GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
Main.UpdateUI(MainInvokeType.Disconnected);
|
||||
Main.OnFailedConnectEvent(new ConnectEventArgs(RunTime.Session.Server_IP, RunTime.Session.Server_Port));
|
||||
ConnectEventArgs args = new(RunTime.Session.Server_IP, RunTime.Session.Server_Port, ConnectResult.ConnectFailed);
|
||||
Main.OnFailedConnectEvent(Main, args);
|
||||
Close();
|
||||
}
|
||||
|
||||
@ -122,8 +145,6 @@ namespace Milimoe.FunGame.Desktop.Controller
|
||||
Main.GetMessage(msg);
|
||||
Main.UpdateUI(MainInvokeType.Disconnect);
|
||||
Close();
|
||||
Main.OnSucceedDisconnectEvent(new GeneralEventArgs());
|
||||
Main.OnAfterDisconnectEvent(new GeneralEventArgs());
|
||||
}
|
||||
|
||||
protected override void SocketHandler_HeartBeat(SocketObject ServerMessage)
|
||||
|
@ -1,6 +1,5 @@
|
||||
using Milimoe.FunGame.Core.Interface;
|
||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Desktop.Library.Component;
|
||||
|
||||
namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
@ -12,40 +11,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event ILoginEventHandler.SucceedEventHandler? SucceedLogin;
|
||||
public event ILoginEventHandler.FailedEventHandler? FailedLogin;
|
||||
|
||||
public EventResult OnAfterLoginEvent(LoginEventArgs e)
|
||||
public void OnAfterLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (AfterLogin != null)
|
||||
{
|
||||
return AfterLogin.Invoke(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnBeforeLoginEvent(LoginEventArgs e)
|
||||
public void OnBeforeLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (BeforeLogin != null)
|
||||
{
|
||||
return BeforeLogin.Invoke(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedLoginEvent(LoginEventArgs e)
|
||||
public void OnFailedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (FailedLogin != null)
|
||||
{
|
||||
return FailedLogin.Invoke(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedLoginEvent(LoginEventArgs e)
|
||||
public void OnSucceedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (SucceedLogin != null)
|
||||
{
|
||||
return SucceedLogin.Invoke(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedLogin?.Invoke(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
using Milimoe.FunGame.Core.Interface;
|
||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Desktop.Library.Component;
|
||||
|
||||
namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
@ -13,40 +12,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IConnectEventHandler.SucceedEventHandler? SucceedConnect;
|
||||
public event IConnectEventHandler.FailedEventHandler? FailedConnect;
|
||||
|
||||
public EventResult OnAfterConnectEvent(ConnectEventArgs e)
|
||||
public void OnAfterConnectEvent(object sender, ConnectEventArgs e)
|
||||
{
|
||||
if (AfterConnect != null)
|
||||
{
|
||||
return AfterConnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterConnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnBeforeConnectEvent(ConnectEventArgs e)
|
||||
public void OnBeforeConnectEvent(object sender, ConnectEventArgs e)
|
||||
{
|
||||
if (BeforeConnect != null)
|
||||
{
|
||||
return BeforeConnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeConnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedConnectEvent(ConnectEventArgs e)
|
||||
public void OnSucceedConnectEvent(object sender, ConnectEventArgs e)
|
||||
{
|
||||
if (SucceedConnect != null)
|
||||
{
|
||||
return SucceedConnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedConnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedConnectEvent(ConnectEventArgs e)
|
||||
public void OnFailedConnectEvent(object sender, ConnectEventArgs e)
|
||||
{
|
||||
if (FailedConnect != null)
|
||||
{
|
||||
return FailedConnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedConnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeDisconnect;
|
||||
@ -54,40 +37,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedDisconnect;
|
||||
public event IEventHandler.FailedEventHandler? FailedDisconnect;
|
||||
|
||||
public EventResult OnAfterDisconnectEvent(GeneralEventArgs e)
|
||||
public void OnAfterDisconnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterDisconnect != null)
|
||||
{
|
||||
return AfterDisconnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterDisconnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e)
|
||||
public void OnBeforeDisconnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeDisconnect != null)
|
||||
{
|
||||
return BeforeDisconnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeDisconnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedDisconnectEvent(GeneralEventArgs e)
|
||||
public void OnFailedDisconnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedDisconnect != null)
|
||||
{
|
||||
return FailedDisconnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedDisconnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e)
|
||||
public void OnSucceedDisconnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedDisconnect != null)
|
||||
{
|
||||
return SucceedDisconnect(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedDisconnect?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event ILoginEventHandler.BeforeEventHandler? BeforeLogin;
|
||||
@ -95,40 +62,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event ILoginEventHandler.SucceedEventHandler? SucceedLogin;
|
||||
public event ILoginEventHandler.FailedEventHandler? FailedLogin;
|
||||
|
||||
public EventResult OnBeforeLoginEvent(LoginEventArgs e)
|
||||
public void OnBeforeLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (BeforeLogin != null)
|
||||
{
|
||||
return BeforeLogin(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterLoginEvent(LoginEventArgs e)
|
||||
public void OnAfterLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (AfterLogin != null)
|
||||
{
|
||||
return AfterLogin(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedLoginEvent(LoginEventArgs e)
|
||||
public void OnSucceedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (SucceedLogin != null)
|
||||
{
|
||||
return SucceedLogin(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedLoginEvent(LoginEventArgs e)
|
||||
public void OnFailedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (FailedLogin != null)
|
||||
{
|
||||
return FailedLogin(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedLogin?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeLogout;
|
||||
@ -136,40 +87,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedLogout;
|
||||
public event IEventHandler.FailedEventHandler? FailedLogout;
|
||||
|
||||
public EventResult OnAfterLogoutEvent(GeneralEventArgs e)
|
||||
public void OnAfterLogoutEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterLogout != null)
|
||||
{
|
||||
return AfterLogout(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterLogout?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnBeforeLogoutEvent(GeneralEventArgs e)
|
||||
public void OnBeforeLogoutEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeLogout != null)
|
||||
{
|
||||
return BeforeLogout(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeLogout?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedLogoutEvent(GeneralEventArgs e)
|
||||
public void OnFailedLogoutEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedLogout != null)
|
||||
{
|
||||
return FailedLogout(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedLogout?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedLogoutEvent(GeneralEventArgs e)
|
||||
public void OnSucceedLogoutEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedLogout != null)
|
||||
{
|
||||
return SucceedLogout(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedLogout?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IIntoRoomEventHandler.BeforeEventHandler? BeforeIntoRoom;
|
||||
@ -177,40 +112,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IIntoRoomEventHandler.SucceedEventHandler? SucceedIntoRoom;
|
||||
public event IIntoRoomEventHandler.FailedEventHandler? FailedIntoRoom;
|
||||
|
||||
public EventResult OnBeforeIntoRoomEvent(RoomEventArgs e)
|
||||
public void OnBeforeIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (BeforeIntoRoom != null)
|
||||
{
|
||||
return BeforeIntoRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeIntoRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterIntoRoomEvent(RoomEventArgs e)
|
||||
public void OnAfterIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (AfterIntoRoom != null)
|
||||
{
|
||||
return AfterIntoRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterIntoRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedIntoRoomEvent(RoomEventArgs e)
|
||||
public void OnSucceedIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (SucceedIntoRoom != null)
|
||||
{
|
||||
return SucceedIntoRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedIntoRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedIntoRoomEvent(RoomEventArgs e)
|
||||
public void OnFailedIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (FailedIntoRoom != null)
|
||||
{
|
||||
return FailedIntoRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedIntoRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event ISendTalkEventHandler.BeforeEventHandler? BeforeSendTalk;
|
||||
@ -218,40 +137,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event ISendTalkEventHandler.SucceedEventHandler? SucceedSendTalk;
|
||||
public event ISendTalkEventHandler.FailedEventHandler? FailedSendTalk;
|
||||
|
||||
public EventResult OnBeforeSendTalkEvent(SendTalkEventArgs e)
|
||||
public void OnBeforeSendTalkEvent(object sender, SendTalkEventArgs e)
|
||||
{
|
||||
if (BeforeSendTalk != null)
|
||||
{
|
||||
return BeforeSendTalk(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeSendTalk?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterSendTalkEvent(SendTalkEventArgs e)
|
||||
public void OnAfterSendTalkEvent(object sender, SendTalkEventArgs e)
|
||||
{
|
||||
if (AfterSendTalk != null)
|
||||
{
|
||||
return AfterSendTalk(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterSendTalk?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedSendTalkEvent(SendTalkEventArgs e)
|
||||
public void OnSucceedSendTalkEvent(object sender, SendTalkEventArgs e)
|
||||
{
|
||||
if (SucceedSendTalk != null)
|
||||
{
|
||||
return SucceedSendTalk(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedSendTalk?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedSendTalkEvent(SendTalkEventArgs e)
|
||||
public void OnFailedSendTalkEvent(object sender, SendTalkEventArgs e)
|
||||
{
|
||||
if (FailedSendTalk != null)
|
||||
{
|
||||
return FailedSendTalk(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedSendTalk?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event ICreateRoomEventHandler.BeforeEventHandler? BeforeCreateRoom;
|
||||
@ -259,40 +162,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event ICreateRoomEventHandler.SucceedEventHandler? SucceedCreateRoom;
|
||||
public event ICreateRoomEventHandler.FailedEventHandler? FailedCreateRoom;
|
||||
|
||||
public EventResult OnBeforeCreateRoomEvent(RoomEventArgs e)
|
||||
public void OnBeforeCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (BeforeCreateRoom != null)
|
||||
{
|
||||
return BeforeCreateRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeCreateRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterCreateRoomEvent(RoomEventArgs e)
|
||||
public void OnAfterCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (AfterCreateRoom != null)
|
||||
{
|
||||
return AfterCreateRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterCreateRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedCreateRoomEvent(RoomEventArgs e)
|
||||
public void OnSucceedCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (SucceedCreateRoom != null)
|
||||
{
|
||||
return SucceedCreateRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedCreateRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedCreateRoomEvent(RoomEventArgs e)
|
||||
public void OnFailedCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (FailedCreateRoom != null)
|
||||
{
|
||||
return FailedCreateRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedCreateRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IQuitRoomEventHandler.BeforeEventHandler? BeforeQuitRoom;
|
||||
@ -300,40 +187,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IQuitRoomEventHandler.SucceedEventHandler? SucceedQuitRoom;
|
||||
public event IQuitRoomEventHandler.FailedEventHandler? FailedQuitRoom;
|
||||
|
||||
public EventResult OnBeforeQuitRoomEvent(RoomEventArgs e)
|
||||
public void OnBeforeQuitRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (BeforeQuitRoom != null)
|
||||
{
|
||||
return BeforeQuitRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeQuitRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterQuitRoomEvent(RoomEventArgs e)
|
||||
public void OnAfterQuitRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (AfterQuitRoom != null)
|
||||
{
|
||||
return AfterQuitRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterQuitRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedQuitRoomEvent(RoomEventArgs e)
|
||||
public void OnSucceedQuitRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (SucceedQuitRoom != null)
|
||||
{
|
||||
return SucceedQuitRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedQuitRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedQuitRoomEvent(RoomEventArgs e)
|
||||
public void OnFailedQuitRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
if (FailedQuitRoom != null)
|
||||
{
|
||||
return FailedQuitRoom(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedQuitRoom?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeStartMatch;
|
||||
@ -341,40 +212,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedStartMatch;
|
||||
public event IEventHandler.FailedEventHandler? FailedStartMatch;
|
||||
|
||||
public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e)
|
||||
public void OnBeforeStartMatchEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeStartMatch != null)
|
||||
{
|
||||
return BeforeStartMatch(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeStartMatch?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterStartMatchEvent(GeneralEventArgs e)
|
||||
public void OnAfterStartMatchEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterStartMatch != null)
|
||||
{
|
||||
return AfterStartMatch(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterStartMatch?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e)
|
||||
public void OnSucceedStartMatchEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedStartMatch != null)
|
||||
{
|
||||
return SucceedStartMatch(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedStartMatch?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedStartMatchEvent(GeneralEventArgs e)
|
||||
public void OnFailedStartMatchEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedStartMatch != null)
|
||||
{
|
||||
return FailedStartMatch(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedStartMatch?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeStartGame;
|
||||
@ -382,40 +237,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedStartGame;
|
||||
public event IEventHandler.FailedEventHandler? FailedStartGame;
|
||||
|
||||
public EventResult OnBeforeStartGameEvent(GeneralEventArgs e)
|
||||
public void OnBeforeStartGameEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeStartGame != null)
|
||||
{
|
||||
return BeforeStartGame(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeStartGame?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterStartGameEvent(GeneralEventArgs e)
|
||||
public void OnAfterStartGameEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterStartGame != null)
|
||||
{
|
||||
return AfterStartGame(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterStartGame?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedStartGameEvent(GeneralEventArgs e)
|
||||
public void OnSucceedStartGameEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedStartGame != null)
|
||||
{
|
||||
return SucceedStartGame(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedStartGame?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedStartGameEvent(GeneralEventArgs e)
|
||||
public void OnFailedStartGameEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedStartGame != null)
|
||||
{
|
||||
return FailedStartGame(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedStartGame?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeOpenInventory;
|
||||
@ -423,40 +262,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedOpenInventory;
|
||||
public event IEventHandler.FailedEventHandler? FailedOpenInventory;
|
||||
|
||||
public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e)
|
||||
public void OnBeforeOpenInventoryEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeOpenInventory != null)
|
||||
{
|
||||
return BeforeOpenInventory(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeOpenInventory?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e)
|
||||
public void OnAfterOpenInventoryEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterOpenInventory != null)
|
||||
{
|
||||
return AfterOpenInventory(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterOpenInventory?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e)
|
||||
public void OnSucceedOpenInventoryEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedOpenInventory != null)
|
||||
{
|
||||
return SucceedOpenInventory(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedOpenInventory?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e)
|
||||
public void OnFailedOpenInventoryEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedOpenInventory != null)
|
||||
{
|
||||
return FailedOpenInventory(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedOpenInventory?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public event IEventHandler.BeforeEventHandler? BeforeOpenStore;
|
||||
@ -464,40 +287,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IEventHandler.SucceedEventHandler? SucceedOpenStore;
|
||||
public event IEventHandler.FailedEventHandler? FailedOpenStore;
|
||||
|
||||
public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e)
|
||||
public void OnBeforeOpenStoreEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (BeforeOpenStore != null)
|
||||
{
|
||||
return BeforeOpenStore(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeOpenStore?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e)
|
||||
public void OnAfterOpenStoreEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (AfterOpenStore != null)
|
||||
{
|
||||
return AfterOpenStore(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterOpenStore?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e)
|
||||
public void OnSucceedOpenStoreEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (SucceedOpenStore != null)
|
||||
{
|
||||
return SucceedOpenStore(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedOpenStore?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e)
|
||||
public void OnFailedOpenStoreEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
if (FailedOpenStore != null)
|
||||
{
|
||||
return FailedOpenStore(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedOpenStore?.Invoke(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
using Milimoe.FunGame.Core.Interface;
|
||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Desktop.Library.Component;
|
||||
|
||||
namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
@ -12,40 +11,24 @@ namespace Milimoe.FunGame.Desktop.Library.Base
|
||||
public event IRegEventHandler.SucceedEventHandler? SucceedReg;
|
||||
public event IRegEventHandler.FailedEventHandler? FailedReg;
|
||||
|
||||
public EventResult OnAfterRegEvent(RegisterEventArgs e)
|
||||
public void OnAfterRegEvent(object sender, RegisterEventArgs e)
|
||||
{
|
||||
if (AfterReg != null)
|
||||
{
|
||||
return AfterReg(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
AfterReg?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnBeforeRegEvent(RegisterEventArgs e)
|
||||
public void OnBeforeRegEvent(object sender, RegisterEventArgs e)
|
||||
{
|
||||
if (BeforeReg != null)
|
||||
{
|
||||
return BeforeReg(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
BeforeReg?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnFailedRegEvent(RegisterEventArgs e)
|
||||
public void OnFailedRegEvent(object sender, RegisterEventArgs e)
|
||||
{
|
||||
if (FailedReg != null)
|
||||
{
|
||||
return FailedReg(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
FailedReg?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
public EventResult OnSucceedRegEvent(RegisterEventArgs e)
|
||||
public void OnSucceedRegEvent(object sender, RegisterEventArgs e)
|
||||
{
|
||||
if (SucceedReg != null)
|
||||
{
|
||||
return SucceedReg(this, e);
|
||||
}
|
||||
else return EventResult.NoEventImplement;
|
||||
SucceedReg?.Invoke(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ namespace Milimoe.FunGame.Desktop.Library.Component
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 提供公共方法给Controller发送消息弹窗(这样可以防止跨线程时,弹窗不在最上层)<para/>
|
||||
/// 支持返回点击的按钮,用于判断是否取消输入
|
||||
|
@ -159,7 +159,7 @@ namespace Milimoe.FunGame.Desktop.Library.Component
|
||||
|
||||
public static MessageResult Message(string msg, string title, int autoclose = 0)
|
||||
{
|
||||
object[] objs = { title, msg, autoclose, MessageButtonType.OK, BUTTON_OK};
|
||||
object[] objs = { title, msg, autoclose, MessageButtonType.OK, BUTTON_OK };
|
||||
MessageResult result = new ShowMessage(objs).MessageResult;
|
||||
return result;
|
||||
}
|
||||
@ -212,7 +212,7 @@ namespace Milimoe.FunGame.Desktop.Library.Component
|
||||
string result = new ShowMessage(objs).InputResult;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public static string InputMessageCancel(string msg, string title, out MessageResult cancel)
|
||||
{
|
||||
object[] objs = { title, msg, 0, MessageButtonType.Input };
|
||||
|
@ -1,5 +1,4 @@
|
||||
using Milimoe.FunGame.Core.Api.Transmittal;
|
||||
using Milimoe.FunGame.Core.Library.Common.Plugin;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
|
||||
namespace Milimoe.FunGame.Desktop.Model
|
||||
@ -12,7 +11,7 @@ namespace Milimoe.FunGame.Desktop.Model
|
||||
public static Core.Model.RoomList RoomList { get; } = new();
|
||||
public static Core.Model.Session Session { get; } = new();
|
||||
public static Core.Model.FunGameConfig Config { get; } = new();
|
||||
public static Dictionary<string, BasePlugin> Plugins { get; } = new();
|
||||
public static Core.Api.Utility.PluginLoader? PluginLoader { get; set; } = null;
|
||||
public static Core.Library.Common.Network.Socket? Socket { get; set; } = null;
|
||||
public static Controller.RunTimeController? Controller { get; set; } = null;
|
||||
public static UI.Main? Main { get; set; } = null;
|
||||
|
@ -85,29 +85,30 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
UsernameText.Focus();
|
||||
}
|
||||
|
||||
public EventResult FailedLoginEvent(object sender, LoginEventArgs e)
|
||||
public void FailedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
GoToLogin.Enabled = true;
|
||||
RunTime.Main?.OnFailedLoginEvent(e);
|
||||
return EventResult.Success;
|
||||
RunTime.Main?.OnFailedLoginEvent(sender, e);
|
||||
RunTime.PluginLoader?.OnFailedLoginEvent(sender, e);
|
||||
}
|
||||
|
||||
private EventResult SucceedLoginEvent(object sender, LoginEventArgs e)
|
||||
private void SucceedLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
RunTime.Main?.OnSucceedLoginEvent(e);
|
||||
return EventResult.Success;
|
||||
RunTime.Main?.OnSucceedLoginEvent(sender, e);
|
||||
RunTime.PluginLoader?.OnSucceedLoginEvent(sender, e);
|
||||
}
|
||||
|
||||
private EventResult BeforeLoginEvent(object sender, LoginEventArgs e)
|
||||
private void BeforeLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
if (RunTime.Main?.OnBeforeLoginEvent(e) == EventResult.Fail) return EventResult.Fail;
|
||||
return EventResult.Success;
|
||||
RunTime.Main?.OnBeforeLoginEvent(sender, e);
|
||||
RunTime.PluginLoader?.OnBeforeLoginEvent(sender, e);
|
||||
if (e.Cancel) return;
|
||||
}
|
||||
|
||||
private EventResult AfterLoginEvent(object sender, LoginEventArgs e)
|
||||
private void AfterLoginEvent(object sender, LoginEventArgs e)
|
||||
{
|
||||
RunTime.Main?.OnAfterLoginEvent(e);
|
||||
return EventResult.Success;
|
||||
RunTime.Main?.OnAfterLoginEvent(sender, e);
|
||||
RunTime.PluginLoader?.OnAfterLoginEvent(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
}
|
||||
}
|
||||
// 加载插件
|
||||
LoadPlugins();
|
||||
RunTime.Controller.LoadPlugins();
|
||||
// 自动连接服务器
|
||||
if (Config.FunGame_isAutoConnect) InvokeController_Connect();
|
||||
});
|
||||
@ -82,6 +82,10 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
FailedConnect += FailedConnectEvent;
|
||||
SucceedConnect += SucceedConnectEvent;
|
||||
SucceedLogin += SucceedLoginEvent;
|
||||
SucceedIntoRoom += SucceedIntoRoomEvent;
|
||||
FailedIntoRoom += FailedIntoRoomEvent;
|
||||
SucceedCreateRoom += SucceedCreateRoomEvent;
|
||||
FailedCreateRoom += FailedCreateRoomEvent;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -492,7 +496,7 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重复处理加入房间的方法
|
||||
/// 加入房间的具体处理方法
|
||||
/// </summary>
|
||||
/// <param name="roomid"></param>
|
||||
/// <returns></returns>
|
||||
@ -505,17 +509,20 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
{
|
||||
if (Usercfg.InRoom.Roomid == "-1")
|
||||
{
|
||||
if (ShowMessage(ShowMessageType.YesNo, "已找到房间 -> [ " + roomid + " ]\n是否加入?", "已找到房间") == MessageResult.Yes)
|
||||
if (await MainController.GetRoomPlayerCountAsync(roomid) < 8)
|
||||
{
|
||||
Room r = GetRoom(roomid);
|
||||
if (MainController != null && await MainController.IntoRoomAsync(r))
|
||||
if (ShowMessage(ShowMessageType.YesNo, "已找到房间 -> [ " + roomid + " ]\n是否加入?", "已找到房间") == MessageResult.Yes)
|
||||
{
|
||||
SetRoomid(r);
|
||||
InRoom();
|
||||
return true;
|
||||
Room r = GetRoom(roomid);
|
||||
return await InvokeController_IntoRoom(r);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowMessage(ShowMessageType.Warning, "房间已满,拒绝加入!");
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -719,7 +726,7 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
{
|
||||
TaskUtility.StartAndAwaitTask(async () =>
|
||||
{
|
||||
if (!await MainController.ChatAsync(" [ " + Usercfg.LoginUserName + " ] 说: " + text))
|
||||
if (!await InvokeController_SendTalk(" [ " + Usercfg.LoginUserName + " ] 说: " + text))
|
||||
{
|
||||
WritelnGameInfo("联网消息发送失败。");
|
||||
}
|
||||
@ -748,20 +755,13 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
ShowMessage(ShowMessageType.Warning, "已在房间中,无法创建房间。");
|
||||
return;
|
||||
}
|
||||
string roomid = await InvokeController_CreateRoom(RoomType, Password);
|
||||
if (MainController is not null && roomid != "-1")
|
||||
Room room = await InvokeController_CreateRoom(RoomType, Password);
|
||||
if (MainController is not null && room.Roomid != "-1")
|
||||
{
|
||||
await MainController.UpdateRoomAsync();
|
||||
Room r = GetRoom(roomid);
|
||||
await InvokeController_IntoRoom(r);
|
||||
SetRoomid(r);
|
||||
InRoom();
|
||||
WritelnGameInfo(DateTimeUtility.GetNowShortTime() + " 创建" + RoomType + "房间");
|
||||
WritelnGameInfo(">> 创建" + RoomType + "房间成功!房间号: " + roomid);
|
||||
ShowMessage(ShowMessageType.General, "创建" + RoomType + "房间成功!\n房间号是 -> [ " + roomid + " ]", "创建成功");
|
||||
await InvokeController_IntoRoom(room);
|
||||
return;
|
||||
}
|
||||
ShowMessage(ShowMessageType.General, "创建" + RoomType + "房间失败!", "创建失败");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -835,25 +835,6 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载所有插件
|
||||
/// </summary>
|
||||
private void LoadPlugins()
|
||||
{
|
||||
try
|
||||
{
|
||||
PluginLoader.LoadPlugins(RunTime.Plugins);
|
||||
foreach (KeyValuePair<string, BasePlugin> kv in RunTime.Plugins)
|
||||
{
|
||||
GetMessage("Load: " + kv.Value.Name);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示FunGame信息
|
||||
/// </summary>
|
||||
@ -1112,13 +1093,13 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
bool IsMix = CheckMix.Checked;
|
||||
bool IsTeam = CheckTeam.Checked;
|
||||
bool IsHasPass = CheckHasPass.Checked;
|
||||
if (IsMix && IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_All;
|
||||
else if (IsMix && IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_AllHasPass;
|
||||
else if (IsMix && !IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_Mix;
|
||||
else if (IsMix && !IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_MixHasPass;
|
||||
else if (!IsMix && IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_Team;
|
||||
else if (!IsMix && IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.GameMode_TeamHasPass;
|
||||
else Config.FunGame_GameMode = GameMode.GameMode_All;
|
||||
if (IsMix && IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.All;
|
||||
else if (IsMix && IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.AllHasPass;
|
||||
else if (IsMix && !IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.Mix;
|
||||
else if (IsMix && !IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.MixHasPass;
|
||||
else if (!IsMix && IsTeam && !IsHasPass) Config.FunGame_GameMode = GameMode.Team;
|
||||
else if (!IsMix && IsTeam && IsHasPass) Config.FunGame_GameMode = GameMode.TeamHasPass;
|
||||
else Config.FunGame_GameMode = GameMode.All;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1263,7 +1244,7 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
/// <returns></returns>
|
||||
public EventResult FailedConnectEvent(object sender, GeneralEventArgs e)
|
||||
public void FailedConnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
// 自动重连
|
||||
if (Config.FunGame_isConnected && Config.FunGame_isAutoRetry && CurrentRetryTimes <= MaxRetryTimes)
|
||||
@ -1276,7 +1257,6 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
GetMessage("连接服务器失败,5秒后自动尝试重连。");
|
||||
}
|
||||
else GetMessage("无法连接至服务器,请检查你的网络连接。");
|
||||
return EventResult.Success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1285,7 +1265,7 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
/// <returns></returns>
|
||||
public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e)
|
||||
public void SucceedConnectEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
// 创建MainController
|
||||
MainController = new MainController(this);
|
||||
@ -1294,7 +1274,6 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
// 自动登录
|
||||
RunTime.Controller?.AutoLogin(Config.FunGame_AutoLoginUser, Config.FunGame_AutoLoginPassword, Config.FunGame_AutoLoginKey);
|
||||
}
|
||||
return EventResult.Success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1303,10 +1282,54 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
/// <returns></returns>
|
||||
private EventResult SucceedLoginEvent(object sender, GeneralEventArgs e)
|
||||
private void SucceedLoginEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
TaskUtility.StartAndAwaitTask(SucceedLoginEvent_Handler);
|
||||
return EventResult.Success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 进入房间失败后触发事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void FailedIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
ShowMessage(ShowMessageType.Warning, "加入房间失败!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 成功进入房间后触发事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void SucceedIntoRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
SetRoomid(e.Room);
|
||||
InRoom();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建房间失败后触发事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void FailedCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
ShowMessage(ShowMessageType.General, "创建" + e.RoomTypeString + "房间失败!", "创建失败");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 成功创建房间后触发事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void SucceedCreateRoomEvent(object sender, RoomEventArgs e)
|
||||
{
|
||||
SetRoomid(e.Room);
|
||||
InRoom();
|
||||
WritelnGameInfo(DateTimeUtility.GetNowShortTime() + " 创建" + e.RoomTypeString + "房间");
|
||||
WritelnGameInfo(">> 创建" + e.RoomTypeString + "房间成功!房间号: " + e.RoomID);
|
||||
ShowMessage(ShowMessageType.General, "创建" + e.RoomTypeString + "房间成功!\n房间号是 -> [ " + e.RoomID + " ]", "创建成功");
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -1351,10 +1374,10 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
GameInfo.Clear();
|
||||
break;
|
||||
case Constant.FunGame_CreateMix:
|
||||
TaskUtility.StartAndAwaitTask(() => CreateRoom_Handler(GameMode.GameMode_Mix));
|
||||
TaskUtility.StartAndAwaitTask(() => CreateRoom_Handler(GameMode.Mix));
|
||||
break;
|
||||
case Constant.FunGame_CreateTeam:
|
||||
TaskUtility.StartAndAwaitTask(() => CreateRoom_Handler(GameMode.GameMode_Team));
|
||||
TaskUtility.StartAndAwaitTask(() => CreateRoom_Handler(GameMode.Team));
|
||||
break;
|
||||
case Constant.FunGame_StartGame:
|
||||
break;
|
||||
@ -1454,32 +1477,42 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <returns></returns>
|
||||
private void InvokeController_Connect()
|
||||
{
|
||||
try
|
||||
{
|
||||
ConnectEventArgs EventArgs = new(RunTime.Session.Server_IP, RunTime.Session.Server_Port);
|
||||
ConnectResult result = ConnectResult.CanNotConnect;
|
||||
ConnectEventArgs EventArgs = new(RunTime.Session.Server_IP, RunTime.Session.Server_Port);
|
||||
|
||||
TaskUtility.StartAndAwaitTask(() =>
|
||||
{
|
||||
if (OnBeforeConnectEvent(EventArgs) == EventResult.Fail) return;
|
||||
result = RunTime.Controller?.Connect(RunTime.Session.Server_IP, RunTime.Session.Server_Port) ?? result;
|
||||
EventArgs.ConnectResult = result;
|
||||
}).OnCompleted(() =>
|
||||
{
|
||||
if (result == ConnectResult.Success) OnSucceedConnectEvent(EventArgs);
|
||||
else OnFailedConnectEvent(EventArgs);
|
||||
OnAfterConnectEvent(EventArgs);
|
||||
}).OnError(e =>
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
UpdateUI(MainInvokeType.SetRed);
|
||||
Config.FunGame_isRetrying = false;
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
ConnectResult result = ConnectResult.CanNotConnect;
|
||||
|
||||
TaskUtility.StartAndAwaitTask(() =>
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
}
|
||||
OnBeforeConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeConnectEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return;
|
||||
result = RunTime.Controller?.Connect(RunTime.Session.Server_IP, RunTime.Session.Server_Port) ?? result;
|
||||
EventArgs.ConnectResult = result;
|
||||
}).OnCompleted(() =>
|
||||
{
|
||||
if (result == ConnectResult.Success)
|
||||
{
|
||||
OnSucceedConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedConnectEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedConnectEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterConnectEvent(this, EventArgs);
|
||||
}).OnError(e =>
|
||||
{
|
||||
EventArgs.ConnectResult = ConnectResult.ConnectFailed;
|
||||
GetMessage(e.InnerException?.ToString() ?? e.ToString(), TimeType.None);
|
||||
UpdateUI(MainInvokeType.SetRed);
|
||||
Config.FunGame_isRetrying = false;
|
||||
OnFailedConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedConnectEvent(this, EventArgs);
|
||||
OnAfterConnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterConnectEvent(this, EventArgs);
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1488,13 +1521,18 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <returns></returns>
|
||||
public void InvokeController_Disconnect()
|
||||
{
|
||||
GeneralEventArgs EventArgs = new();
|
||||
|
||||
try
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
TaskUtility.StartAndAwaitTask(async () =>
|
||||
{
|
||||
if (OnBeforeDisconnectEvent(new GeneralEventArgs()) == EventResult.Fail) return;
|
||||
OnBeforeDisconnectEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return;
|
||||
RunTime.PluginLoader?.OnBeforeDisconnectEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return;
|
||||
|
||||
if (Usercfg.LoginUser.Id != 0)
|
||||
{
|
||||
@ -1504,17 +1542,73 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
result = RunTime.Controller?.Disconnect() ?? false;
|
||||
}).OnCompleted(() =>
|
||||
{
|
||||
if (result) OnSucceedDisconnectEvent(new GeneralEventArgs());
|
||||
else OnFailedDisconnectEvent(new GeneralEventArgs());
|
||||
OnAfterDisconnectEvent(new GeneralEventArgs());
|
||||
if (result)
|
||||
{
|
||||
OnSucceedDisconnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedDisconnectEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedDisconnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedDisconnectEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterDisconnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterDisconnectEvent(this, EventArgs);
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedDisconnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedDisconnectEvent(this, EventArgs);
|
||||
OnAfterDisconnectEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterDisconnectEvent(this, EventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送聊天信息
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InvokeController_SendTalk(string msg)
|
||||
{
|
||||
SendTalkEventArgs EventArgs = new(msg);
|
||||
bool result = false;
|
||||
|
||||
try
|
||||
{
|
||||
OnBeforeSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeSendTalkEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return result;
|
||||
|
||||
result = MainController is not null && await MainController.ChatAsync(msg);
|
||||
|
||||
if (result)
|
||||
{
|
||||
OnSucceedSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedSendTalkEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedSendTalkEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterSendTalkEvent(this, EventArgs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedSendTalkEvent(this, EventArgs);
|
||||
OnAfterSendTalkEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterSendTalkEvent(this, EventArgs);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 进入房间
|
||||
/// </summary>
|
||||
@ -1522,53 +1616,88 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InvokeController_IntoRoom(Room room)
|
||||
{
|
||||
RoomEventArgs EventArgs = new(room);
|
||||
bool result = false;
|
||||
|
||||
try
|
||||
{
|
||||
RoomEventArgs EventArgs = new(room);
|
||||
if (OnBeforeIntoRoomEvent(EventArgs) == EventResult.Fail) return result;
|
||||
OnBeforeIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeIntoRoomEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return result;
|
||||
|
||||
result = MainController is not null && await MainController.IntoRoomAsync(room);
|
||||
|
||||
if (result) OnSucceedIntoRoomEvent(EventArgs);
|
||||
else OnFailedIntoRoomEvent(EventArgs);
|
||||
OnAfterIntoRoomEvent(EventArgs);
|
||||
if (room.Roomid != "-1")
|
||||
{
|
||||
if (result)
|
||||
{
|
||||
OnSucceedIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedIntoRoomEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedIntoRoomEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterIntoRoomEvent(this, EventArgs);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedIntoRoomEvent(this, EventArgs);
|
||||
OnAfterIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterIntoRoomEvent(this, EventArgs);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建房间
|
||||
/// </summary>
|
||||
/// <param name="room"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<string> InvokeController_CreateRoom(string RoomType, string Password = "")
|
||||
public async Task<Room> InvokeController_CreateRoom(string RoomType, string Password = "")
|
||||
{
|
||||
string roomid = "-1";
|
||||
RoomEventArgs EventArgs = new(RoomType, Password);
|
||||
Room room = General.HallInstance;
|
||||
|
||||
try
|
||||
{
|
||||
RoomEventArgs EventArgs = new(RoomType, Password);
|
||||
if (OnBeforeCreateRoomEvent(EventArgs) == EventResult.Fail) return roomid;
|
||||
OnBeforeCreateRoomEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return room;
|
||||
RunTime.PluginLoader?.OnBeforeCreateRoomEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return room;
|
||||
|
||||
roomid = MainController is null ? "-1" : await MainController.CreateRoomAsync(RoomType, Password);
|
||||
room = MainController is null ? room : await MainController.CreateRoomAsync(RoomType, Password);
|
||||
|
||||
if (roomid != "-1") OnSucceedCreateRoomEvent(EventArgs);
|
||||
else OnFailedCreateRoomEvent(EventArgs);
|
||||
OnAfterCreateRoomEvent(EventArgs);
|
||||
if (room.Roomid != "-1")
|
||||
{
|
||||
EventArgs = new(room);
|
||||
OnSucceedCreateRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedCreateRoomEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedCreateRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedCreateRoomEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterCreateRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterCreateRoomEvent(this, EventArgs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedCreateRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedCreateRoomEvent(this, EventArgs);
|
||||
OnAfterCreateRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterCreateRoomEvent(this, EventArgs);
|
||||
}
|
||||
|
||||
return roomid;
|
||||
return room;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -1578,22 +1707,37 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InvokeController_QuitRoom(Room room, bool isMaster)
|
||||
{
|
||||
RoomEventArgs EventArgs = new(room);
|
||||
bool result = false;
|
||||
|
||||
try
|
||||
{
|
||||
RoomEventArgs EventArgs = new(room);
|
||||
if (OnBeforeIntoRoomEvent(EventArgs) == EventResult.Fail) return result;
|
||||
OnBeforeIntoRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeIntoRoomEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return result;
|
||||
|
||||
result = MainController is not null && await MainController.QuitRoomAsync(room.Roomid, isMaster);
|
||||
|
||||
if (result) OnSucceedIntoRoomEvent(EventArgs);
|
||||
else OnFailedIntoRoomEvent(EventArgs);
|
||||
OnAfterIntoRoomEvent(EventArgs);
|
||||
if (result)
|
||||
{
|
||||
OnSucceedQuitRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedQuitRoomEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedQuitRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedQuitRoomEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterQuitRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterQuitRoomEvent(this, EventArgs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedQuitRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedQuitRoomEvent(this, EventArgs);
|
||||
OnAfterQuitRoomEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterQuitRoomEvent(this, EventArgs);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -1605,31 +1749,45 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
/// <returns></returns>
|
||||
public async Task<bool> LogOut()
|
||||
{
|
||||
GeneralEventArgs EventArgs = new();
|
||||
bool result = false;
|
||||
|
||||
try
|
||||
{
|
||||
GeneralEventArgs EventArgs = new();
|
||||
if (OnBeforeLogoutEvent(EventArgs) == EventResult.Fail) return result;
|
||||
OnBeforeLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnBeforeLogoutEvent(this, EventArgs);
|
||||
if (EventArgs.Cancel) return result;
|
||||
|
||||
if (Usercfg.LoginUser.Id == 0) return result;
|
||||
|
||||
if (Usercfg.InRoom.Roomid != "-1")
|
||||
{
|
||||
string roomid = Usercfg.InRoom.Roomid;
|
||||
bool isMaster = Usercfg.InRoom.RoomMaster?.Id == Usercfg.LoginUser?.Id;
|
||||
MainController?.QuitRoomAsync(roomid, isMaster);
|
||||
await InvokeController_QuitRoom(Usercfg.InRoom, isMaster);
|
||||
}
|
||||
|
||||
result = MainController is not null && await MainController.LogOutAsync();
|
||||
|
||||
if (result) OnSucceedLogoutEvent(EventArgs);
|
||||
else OnFailedLogoutEvent(EventArgs);
|
||||
OnAfterLogoutEvent(EventArgs);
|
||||
if (result)
|
||||
{
|
||||
OnSucceedLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnSucceedLogoutEvent(this, EventArgs);
|
||||
}
|
||||
else
|
||||
{
|
||||
OnFailedLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedLogoutEvent(this, EventArgs);
|
||||
}
|
||||
OnAfterLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterLogoutEvent(this, EventArgs);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
GetMessage(e.GetErrorInfo(), TimeType.None);
|
||||
OnFailedLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnFailedLogoutEvent(this, EventArgs);
|
||||
OnAfterLogoutEvent(this, EventArgs);
|
||||
RunTime.PluginLoader?.OnAfterLogoutEvent(this, EventArgs);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -1,6 +1,5 @@
|
||||
using Milimoe.FunGame.Core.Api.Utility;
|
||||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
using Milimoe.FunGame.Core.Library.Exception;
|
||||
using Milimoe.FunGame.Desktop.Controller;
|
||||
using Milimoe.FunGame.Desktop.Library;
|
||||
@ -112,19 +111,18 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
Dispose();
|
||||
}
|
||||
|
||||
private EventResult SucceedRegEvent(object sender, GeneralEventArgs e)
|
||||
private void SucceedRegEvent(object sender, GeneralEventArgs e)
|
||||
{
|
||||
string username = ((RegisterEventArgs)e).Username;
|
||||
string password = ((RegisterEventArgs)e).Password;
|
||||
TaskUtility.StartAndAwaitTask(async () => await LoginController.LoginAccountAsync(username, password, encrypt: false));
|
||||
RunTime.Login?.Close();
|
||||
return EventResult.Success;
|
||||
}
|
||||
|
||||
private void RegButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
RegButton.Enabled = false;
|
||||
TaskUtility.StartAndAwaitTask(async() =>
|
||||
TaskUtility.StartAndAwaitTask(async () =>
|
||||
{
|
||||
if (!await Reg_Handler()) RegButton.Enabled = true;
|
||||
else Close();
|
||||
|
Loading…
x
Reference in New Issue
Block a user