更新单例窗口 openform类 优化eventhandlers

This commit is contained in:
Mili 2023-02-20 22:57:58 +08:00
parent 6d5cb91df3
commit 9de90d2891
12 changed files with 411 additions and 346 deletions

View File

@ -63,7 +63,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
}
else
{
SingletonTable[type] = null;
SingletonTable.Remove(type);
return true;
}
}

View File

@ -16,274 +16,274 @@ namespace Milimoe.FunGame.Core.Interface
public interface IConnectEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeConnectEventHandler;
public event AfterEventHandler? AfterConnectEventHandler;
public event SucceedEventHandler? SucceedConnectEventHandler;
public event FailedEventHandler? FailedConnectEventHandler;
public event BeforeEventHandler? BeforeConnectEvent;
public event AfterEventHandler? AfterConnectEvent;
public event SucceedEventHandler? SucceedConnectEvent;
public event FailedEventHandler? FailedConnectEvent;
public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeConnectEvent(GeneralEventArgs e);
public EventResult OnAfterConnectEvent(GeneralEventArgs e);
public EventResult OnSucceedConnectEvent(GeneralEventArgs e);
public EventResult OnFailedConnectEvent(GeneralEventArgs e);
}
public interface IDisconnectEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeDisconnectEventHandler;
public event AfterEventHandler? AfterDisconnectEventHandler;
public event SucceedEventHandler? SucceedDisconnectEventHandler;
public event FailedEventHandler? FailedDisconnectEventHandler;
public event BeforeEventHandler? BeforeDisconnectEvent;
public event AfterEventHandler? AfterDisconnectEvent;
public event SucceedEventHandler? SucceedDisconnectEvent;
public event FailedEventHandler? FailedDisconnectEvent;
public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e);
public EventResult OnAfterDisconnectEvent(GeneralEventArgs e);
public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e);
public EventResult OnFailedDisconnectEvent(GeneralEventArgs e);
}
public interface ILoginEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeLoginEventHandler;
public event AfterEventHandler? AfterLoginEventHandler;
public event SucceedEventHandler? SucceedLoginEventHandler;
public event FailedEventHandler? FailedLoginEventHandler;
public event BeforeEventHandler? BeforeLoginEvent;
public event AfterEventHandler? AfterLoginEvent;
public event SucceedEventHandler? SucceedLoginEvent;
public event FailedEventHandler? FailedLoginEvent;
public EventResult OnBeforeLoginEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterLoginEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedLoginEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedLoginEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeLoginEvent(GeneralEventArgs e);
public EventResult OnAfterLoginEvent(GeneralEventArgs e);
public EventResult OnSucceedLoginEvent(GeneralEventArgs e);
public EventResult OnFailedLoginEvent(GeneralEventArgs e);
}
public interface ILogoutEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeLogoutEventHandler;
public event AfterEventHandler? AfterLogoutEventHandler;
public event SucceedEventHandler? SucceedLogoutEventHandler;
public event FailedEventHandler? FailedLogoutEventHandler;
public event BeforeEventHandler? BeforeLogoutEvent;
public event AfterEventHandler? AfterLogoutEvent;
public event SucceedEventHandler? SucceedLogoutEvent;
public event FailedEventHandler? FailedLogoutEvent;
public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeLogoutEvent(GeneralEventArgs e);
public EventResult OnAfterLogoutEvent(GeneralEventArgs e);
public EventResult OnSucceedLogoutEvent(GeneralEventArgs e);
public EventResult OnFailedLogoutEvent(GeneralEventArgs e);
}
public interface IRegEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeRegEventHandler;
public event AfterEventHandler? AfterRegEventHandler;
public event SucceedEventHandler? SucceedRegEventHandler;
public event FailedEventHandler? FailedRegEventHandler;
public event BeforeEventHandler? BeforeRegEvent;
public event AfterEventHandler? AfterRegEvent;
public event SucceedEventHandler? SucceedRegEvent;
public event FailedEventHandler? FailedRegEvent;
public EventResult OnBeforeRegEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterRegEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedRegEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedRegEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeRegEvent(GeneralEventArgs e);
public EventResult OnAfterRegEvent(GeneralEventArgs e);
public EventResult OnSucceedRegEvent(GeneralEventArgs e);
public EventResult OnFailedRegEvent(GeneralEventArgs e);
}
public interface IIntoRoomEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeIntoRoomEventHandler;
public event AfterEventHandler? AfterIntoRoomEventHandler;
public event SucceedEventHandler? SucceedIntoRoomEventHandler;
public event FailedEventHandler? FailedIntoRoomEventHandler;
public event BeforeEventHandler? BeforeIntoRoomEvent;
public event AfterEventHandler? AfterIntoRoomEvent;
public event SucceedEventHandler? SucceedIntoRoomEvent;
public event FailedEventHandler? FailedIntoRoomEvent;
public EventResult OnBeforeIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeIntoRoomEvent(GeneralEventArgs e);
public EventResult OnAfterIntoRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedIntoRoomEvent(GeneralEventArgs e);
public EventResult OnFailedIntoRoomEvent(GeneralEventArgs e);
}
public interface ISendTalkEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeSendTalkEventHandler;
public event AfterEventHandler? AfterSendTalkEventHandler;
public event SucceedEventHandler? SucceedSendTalkEventHandler;
public event FailedEventHandler? FailedSendTalkEventHandler;
public event BeforeEventHandler? BeforeSendTalkEvent;
public event AfterEventHandler? AfterSendTalkEvent;
public event SucceedEventHandler? SucceedSendTalkEvent;
public event FailedEventHandler? FailedSendTalkEvent;
public EventResult OnBeforeSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeSendTalkEvent(GeneralEventArgs e);
public EventResult OnAfterSendTalkEvent(GeneralEventArgs e);
public EventResult OnSucceedSendTalkEvent(GeneralEventArgs e);
public EventResult OnFailedSendTalkEvent(GeneralEventArgs e);
}
public interface ICreateRoomEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeCreateRoomEventHandler;
public event AfterEventHandler? AfterCreateRoomEventHandler;
public event SucceedEventHandler? SucceedCreateRoomEventHandler;
public event FailedEventHandler? FailedCreateRoomEventHandler;
public event BeforeEventHandler? BeforeCreateRoomEvent;
public event AfterEventHandler? AfterCreateRoomEvent;
public event SucceedEventHandler? SucceedCreateRoomEvent;
public event FailedEventHandler? FailedCreateRoomEvent;
public EventResult OnBeforeCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeCreateRoomEvent(GeneralEventArgs e);
public EventResult OnAfterCreateRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedCreateRoomEvent(GeneralEventArgs e);
public EventResult OnFailedCreateRoomEvent(GeneralEventArgs e);
}
public interface IQuitRoomEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeQuitRoomEventHandler;
public event AfterEventHandler? AfterQuitRoomEventHandler;
public event SucceedEventHandler? SucceedQuitRoomEventHandler;
public event FailedEventHandler? FailedQuitRoomEventHandler;
public event BeforeEventHandler? BeforeQuitRoomEvent;
public event AfterEventHandler? AfterQuitRoomEvent;
public event SucceedEventHandler? SucceedQuitRoomEvent;
public event FailedEventHandler? FailedQuitRoomEvent;
public EventResult OnBeforeQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeQuitRoomEvent(GeneralEventArgs e);
public EventResult OnAfterQuitRoomEvent(GeneralEventArgs e);
public EventResult OnSucceedQuitRoomEvent(GeneralEventArgs e);
public EventResult OnFailedQuitRoomEvent(GeneralEventArgs e);
}
public interface IChangeRoomSettingEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeChangeRoomSettingEventHandler;
public event AfterEventHandler? AfterChangeRoomSettingEventHandler;
public event SucceedEventHandler? SucceedChangeRoomSettingEventHandler;
public event FailedEventHandler? FailedChangeRoomSettingEventHandler;
public event BeforeEventHandler? BeforeChangeRoomSettingEvent;
public event AfterEventHandler? AfterChangeRoomSettingEvent;
public event SucceedEventHandler? SucceedChangeRoomSettingEvent;
public event FailedEventHandler? FailedChangeRoomSettingEvent;
public EventResult OnBeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeRoomSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeRoomSettingEvent(GeneralEventArgs e);
}
public interface IStartMatchEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeStartMatchEventHandler;
public event AfterEventHandler? AfterStartMatchEventHandler;
public event SucceedEventHandler? SucceedStartMatchEventHandler;
public event FailedEventHandler? FailedStartMatchEventHandler;
public event BeforeEventHandler? BeforeStartMatchEvent;
public event AfterEventHandler? AfterStartMatchEvent;
public event SucceedEventHandler? SucceedStartMatchEvent;
public event FailedEventHandler? FailedStartMatchEvent;
public EventResult OnBeforeStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeStartMatchEvent(GeneralEventArgs e);
public EventResult OnAfterStartMatchEvent(GeneralEventArgs e);
public EventResult OnSucceedStartMatchEvent(GeneralEventArgs e);
public EventResult OnFailedStartMatchEvent(GeneralEventArgs e);
}
public interface IStartGameEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeStartGameEventHandler;
public event AfterEventHandler? AfterStartGameEventHandler;
public event SucceedEventHandler? SucceedStartGameEventHandler;
public event FailedEventHandler? FailedStartGameEventHandler;
public event BeforeEventHandler? BeforeStartGameEvent;
public event AfterEventHandler? AfterStartGameEvent;
public event SucceedEventHandler? SucceedStartGameEvent;
public event FailedEventHandler? FailedStartGameEvent;
public EventResult OnBeforeStartGameEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterStartGameEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedStartGameEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedStartGameEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeStartGameEvent(GeneralEventArgs e);
public EventResult OnAfterStartGameEvent(GeneralEventArgs e);
public EventResult OnSucceedStartGameEvent(GeneralEventArgs e);
public EventResult OnFailedStartGameEvent(GeneralEventArgs e);
}
public interface IChangeProfileEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeChangeProfileEventHandler;
public event AfterEventHandler? AfterChangeProfileEventHandler;
public event SucceedEventHandler? SucceedChangeProfileEventHandler;
public event FailedEventHandler? FailedChangeProfileEventHandler;
public event BeforeEventHandler? BeforeChangeProfileEvent;
public event AfterEventHandler? AfterChangeProfileEvent;
public event SucceedEventHandler? SucceedChangeProfileEvent;
public event FailedEventHandler? FailedChangeProfileEvent;
public EventResult OnBeforeChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeChangeProfileEvent(GeneralEventArgs e);
public EventResult OnAfterChangeProfileEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeProfileEvent(GeneralEventArgs e);
public EventResult OnFailedChangeProfileEvent(GeneralEventArgs e);
}
public interface IChangeAccountSettingEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeChangeAccountSettingEventHandler;
public event AfterEventHandler? AfterChangeAccountSettingEventHandler;
public event SucceedEventHandler? SucceedChangeAccountSettingEventHandler;
public event FailedEventHandler? FailedChangeAccountSettingEventHandler;
public event BeforeEventHandler? BeforeChangeAccountSettingEvent;
public event AfterEventHandler? AfterChangeAccountSettingEvent;
public event SucceedEventHandler? SucceedChangeAccountSettingEvent;
public event FailedEventHandler? FailedChangeAccountSettingEvent;
public EventResult OnBeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnAfterChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnSucceedChangeAccountSettingEvent(GeneralEventArgs e);
public EventResult OnFailedChangeAccountSettingEvent(GeneralEventArgs e);
}
public interface IOpenInventoryEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeOpenInventoryEventHandler;
public event AfterEventHandler? AfterOpenInventoryEventHandler;
public event SucceedEventHandler? SucceedOpenInventoryEventHandler;
public event FailedEventHandler? FailedOpenInventoryEventHandler;
public event BeforeEventHandler? BeforeOpenInventoryEvent;
public event AfterEventHandler? AfterOpenInventoryEvent;
public event SucceedEventHandler? SucceedOpenInventoryEvent;
public event FailedEventHandler? FailedOpenInventoryEvent;
public EventResult OnBeforeOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnAfterOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenInventoryEvent(GeneralEventArgs e);
public EventResult OnFailedOpenInventoryEvent(GeneralEventArgs e);
}
public interface ISignInEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeSignInEventHandler;
public event AfterEventHandler? AfterSignInEventHandler;
public event SucceedEventHandler? SucceedSignInEventHandler;
public event FailedEventHandler? FailedSignInEventHandler;
public event BeforeEventHandler? BeforeSignInEvent;
public event AfterEventHandler? AfterSignInEvent;
public event SucceedEventHandler? SucceedSignInEvent;
public event FailedEventHandler? FailedSignInEvent;
public EventResult OnBeforeSignInEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterSignInEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedSignInEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedSignInEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeSignInEvent(GeneralEventArgs e);
public EventResult OnAfterSignInEvent(GeneralEventArgs e);
public EventResult OnSucceedSignInEvent(GeneralEventArgs e);
public EventResult OnFailedSignInEvent(GeneralEventArgs e);
}
public interface IOpenStoreEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeOpenStoreEventHandler;
public event AfterEventHandler? AfterOpenStoreEventHandler;
public event SucceedEventHandler? SucceedOpenStoreEventHandler;
public event FailedEventHandler? FailedOpenStoreEventHandler;
public event BeforeEventHandler? BeforeOpenStoreEvent;
public event AfterEventHandler? AfterOpenStoreEvent;
public event SucceedEventHandler? SucceedOpenStoreEvent;
public event FailedEventHandler? FailedOpenStoreEvent;
public EventResult OnBeforeOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeOpenStoreEvent(GeneralEventArgs e);
public EventResult OnAfterOpenStoreEvent(GeneralEventArgs e);
public EventResult OnSucceedOpenStoreEvent(GeneralEventArgs e);
public EventResult OnFailedOpenStoreEvent(GeneralEventArgs e);
}
public interface IBuyItemEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeBuyItemEventHandler;
public event AfterEventHandler? AfterBuyItemEventHandler;
public event SucceedEventHandler? SucceedBuyItemEventHandler;
public event FailedEventHandler? FailedBuyItemEventHandler;
public event BeforeEventHandler? BeforeBuyItemEvent;
public event AfterEventHandler? AfterBuyItemEvent;
public event SucceedEventHandler? SucceedBuyItemEvent;
public event FailedEventHandler? FailedBuyItemEvent;
public EventResult OnBeforeBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeBuyItemEvent(GeneralEventArgs e);
public EventResult OnAfterBuyItemEvent(GeneralEventArgs e);
public EventResult OnSucceedBuyItemEvent(GeneralEventArgs e);
public EventResult OnFailedBuyItemEvent(GeneralEventArgs e);
}
public interface IShowRankingEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeShowRankingEventHandler;
public event AfterEventHandler? AfterShowRankingEventHandler;
public event SucceedEventHandler? SucceedShowRankingEventHandler;
public event FailedEventHandler? FailedShowRankingEventHandler;
public event BeforeEventHandler? BeforeShowRankingEvent;
public event AfterEventHandler? AfterShowRankingEvent;
public event SucceedEventHandler? SucceedShowRankingEvent;
public event FailedEventHandler? FailedShowRankingEvent;
public EventResult OnBeforeShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeShowRankingEvent(GeneralEventArgs e);
public EventResult OnAfterShowRankingEvent(GeneralEventArgs e);
public EventResult OnSucceedShowRankingEvent(GeneralEventArgs e);
public EventResult OnFailedShowRankingEvent(GeneralEventArgs e);
}
public interface IUseItemEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeUseItemEventHandler;
public event AfterEventHandler? AfterUseItemEventHandler;
public event SucceedEventHandler? SucceedUseItemEventHandler;
public event FailedEventHandler? FailedUseItemEventHandler;
public event BeforeEventHandler? BeforeUseItemEvent;
public event AfterEventHandler? AfterUseItemEvent;
public event SucceedEventHandler? SucceedUseItemEvent;
public event FailedEventHandler? FailedUseItemEvent;
public EventResult OnBeforeUseItemEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterUseItemEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedUseItemEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedUseItemEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeUseItemEvent(GeneralEventArgs e);
public EventResult OnAfterUseItemEvent(GeneralEventArgs e);
public EventResult OnSucceedUseItemEvent(GeneralEventArgs e);
public EventResult OnFailedUseItemEvent(GeneralEventArgs e);
}
public interface IEndGameEventHandler : IEventHandler
{
public event BeforeEventHandler? BeforeEndGameEventHandler;
public event AfterEventHandler? AfterEndGameEventHandler;
public event SucceedEventHandler? SucceedEndGameEventHandler;
public event FailedEventHandler? FailedEndGameEventHandler;
public event BeforeEventHandler? BeforeEndGameEvent;
public event AfterEventHandler? AfterEndGameEvent;
public event SucceedEventHandler? SucceedEndGameEvent;
public event FailedEventHandler? FailedEndGameEvent;
public EventResult OnBeforeEndGameEvent(object sender, GeneralEventArgs e);
public EventResult OnAfterEndGameEvent(object sender, GeneralEventArgs e);
public EventResult OnSucceedEndGameEvent(object sender, GeneralEventArgs e);
public EventResult OnFailedEndGameEvent(object sender, GeneralEventArgs e);
public EventResult OnBeforeEndGameEvent(GeneralEventArgs e);
public EventResult OnAfterEndGameEvent(GeneralEventArgs e);
public EventResult OnSucceedEndGameEvent(GeneralEventArgs e);
public EventResult OnFailedEndGameEvent(GeneralEventArgs e);
}
}

View File

@ -8,169 +8,169 @@ namespace Milimoe.FunGame.Core.Interface
/// </summary>
public interface IConnectEvent
{
public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e);
public EventResult AfterConnectEvent(object sender, GeneralEventArgs e);
public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e);
public EventResult FailedConnectEvent(object sender, GeneralEventArgs e);
public EventResult BeforeConnect(object sender, GeneralEventArgs e);
public EventResult AfterConnect(object sender, GeneralEventArgs e);
public EventResult SucceedConnect(object sender, GeneralEventArgs e);
public EventResult FailedConnect(object sender, GeneralEventArgs e);
}
public interface IDisconnectEvent
{
public EventResult BeforeDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult AfterDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult SucceedDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult FailedDisconnectEvent(object sender, GeneralEventArgs e);
public EventResult BeforeDisconnect(object sender, GeneralEventArgs e);
public EventResult AfterDisconnect(object sender, GeneralEventArgs e);
public EventResult SucceedDisconnect(object sender, GeneralEventArgs e);
public EventResult FailedDisconnect(object sender, GeneralEventArgs e);
}
public interface ILoginEvent
{
public EventResult BeforeLoginEvent(object sender, GeneralEventArgs e);
public EventResult AfterLoginEvent(object sender, GeneralEventArgs e);
public EventResult SucceedLoginEvent(object sender, GeneralEventArgs e);
public EventResult FailedLoginEvent(object sender, GeneralEventArgs e);
public EventResult BeforeLogin(object sender, GeneralEventArgs e);
public EventResult AfterLogin(object sender, GeneralEventArgs e);
public EventResult SucceedLogin(object sender, GeneralEventArgs e);
public EventResult FailedLogin(object sender, GeneralEventArgs e);
}
public interface ILogoutEvent
{
public EventResult BeforeLogoutEvent(object sender, GeneralEventArgs e);
public EventResult AfterLogoutEvent(object sender, GeneralEventArgs e);
public EventResult SucceedLogoutEvent(object sender, GeneralEventArgs e);
public EventResult FailedLogoutEvent(object sender, GeneralEventArgs e);
public EventResult BeforeLogout(object sender, GeneralEventArgs e);
public EventResult AfterLogout(object sender, GeneralEventArgs e);
public EventResult SucceedLogout(object sender, GeneralEventArgs e);
public EventResult FailedLogout(object sender, GeneralEventArgs e);
}
public interface IRegEvent
{
public EventResult BeforeRegEvent(object sender, GeneralEventArgs e);
public EventResult AfterRegEvent(object sender, GeneralEventArgs e);
public EventResult SucceedRegEvent(object sender, GeneralEventArgs e);
public EventResult FailedRegEvent(object sender, GeneralEventArgs e);
public EventResult BeforeReg(object sender, GeneralEventArgs e);
public EventResult AfterReg(object sender, GeneralEventArgs e);
public EventResult SucceedReg(object sender, GeneralEventArgs e);
public EventResult FailedReg(object sender, GeneralEventArgs e);
}
public interface IIntoRoomEvent
{
public EventResult BeforeIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult AfterIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult SucceedIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult FailedIntoRoomEvent(object sender, GeneralEventArgs e);
public EventResult BeforeIntoRoom(object sender, GeneralEventArgs e);
public EventResult AfterIntoRoom(object sender, GeneralEventArgs e);
public EventResult SucceedIntoRoom(object sender, GeneralEventArgs e);
public EventResult FailedIntoRoom(object sender, GeneralEventArgs e);
}
public interface ISendTalkEvent
{
public EventResult BeforeSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult AfterSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult SucceedSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult FailedSendTalkEvent(object sender, GeneralEventArgs e);
public EventResult BeforeSendTalk(object sender, GeneralEventArgs e);
public EventResult AfterSendTalk(object sender, GeneralEventArgs e);
public EventResult SucceedSendTalk(object sender, GeneralEventArgs e);
public EventResult FailedSendTalk(object sender, GeneralEventArgs e);
}
public interface ICreateRoomEvent
{
public EventResult BeforeCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult AfterCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult SucceedCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult FailedCreateRoomEvent(object sender, GeneralEventArgs e);
public EventResult BeforeCreateRoom(object sender, GeneralEventArgs e);
public EventResult AfterCreateRoom(object sender, GeneralEventArgs e);
public EventResult SucceedCreateRoom(object sender, GeneralEventArgs e);
public EventResult FailedCreateRoom(object sender, GeneralEventArgs e);
}
public interface IQuitRoomEvent
{
public EventResult BeforeQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult AfterQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult SucceedQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult FailedQuitRoomEvent(object sender, GeneralEventArgs e);
public EventResult BeforeQuitRoom(object sender, GeneralEventArgs e);
public EventResult AfterQuitRoom(object sender, GeneralEventArgs e);
public EventResult SucceedQuitRoom(object sender, GeneralEventArgs e);
public EventResult FailedQuitRoom(object sender, GeneralEventArgs e);
}
public interface IChangeRoomSettingEvent
{
public EventResult BeforeChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeRoomSettingEvent(object sender, GeneralEventArgs e);
public EventResult BeforeChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult AfterChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult SucceedChangeRoomSetting(object sender, GeneralEventArgs e);
public EventResult FailedChangeRoomSetting(object sender, GeneralEventArgs e);
}
public interface IStartMatchEvent
{
public EventResult BeforeStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult AfterStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult SucceedStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult FailedStartMatchEvent(object sender, GeneralEventArgs e);
public EventResult BeforeStartMatch(object sender, GeneralEventArgs e);
public EventResult AfterStartMatch(object sender, GeneralEventArgs e);
public EventResult SucceedStartMatch(object sender, GeneralEventArgs e);
public EventResult FailedStartMatch(object sender, GeneralEventArgs e);
}
public interface IStartGameEvent
{
public EventResult BeforeStartGameEvent(object sender, GeneralEventArgs e);
public EventResult AfterStartGameEvent(object sender, GeneralEventArgs e);
public EventResult SucceedStartGameEvent(object sender, GeneralEventArgs e);
public EventResult FailedStartGameEvent(object sender, GeneralEventArgs e);
public EventResult BeforeStartGame(object sender, GeneralEventArgs e);
public EventResult AfterStartGame(object sender, GeneralEventArgs e);
public EventResult SucceedStartGame(object sender, GeneralEventArgs e);
public EventResult FailedStartGame(object sender, GeneralEventArgs e);
}
public interface IChangeProfileEvent
{
public EventResult BeforeChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeProfileEvent(object sender, GeneralEventArgs e);
public EventResult BeforeChangeProfile(object sender, GeneralEventArgs e);
public EventResult AfterChangeProfile(object sender, GeneralEventArgs e);
public EventResult SucceedChangeProfile(object sender, GeneralEventArgs e);
public EventResult FailedChangeProfile(object sender, GeneralEventArgs e);
}
public interface IChangeAccountSettingEvent
{
public EventResult BeforeChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult AfterChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult FailedChangeAccountSettingEvent(object sender, GeneralEventArgs e);
public EventResult BeforeChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult AfterChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult SucceedChangeAccountSetting(object sender, GeneralEventArgs e);
public EventResult FailedChangeAccountSetting(object sender, GeneralEventArgs e);
}
public interface IOpenInventoryEvent
{
public EventResult BeforeOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult AfterOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult SucceedOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult FailedOpenInventoryEvent(object sender, GeneralEventArgs e);
public EventResult BeforeOpenInventory(object sender, GeneralEventArgs e);
public EventResult AfterOpenInventory(object sender, GeneralEventArgs e);
public EventResult SucceedOpenInventory(object sender, GeneralEventArgs e);
public EventResult FailedOpenInventory(object sender, GeneralEventArgs e);
}
public interface ISignInEvent
{
public EventResult BeforeSignInEvent(object sender, GeneralEventArgs e);
public EventResult AfterSignInEvent(object sender, GeneralEventArgs e);
public EventResult SucceedSignInEvent(object sender, GeneralEventArgs e);
public EventResult FailedSignInEvent(object sender, GeneralEventArgs e);
public EventResult BeforeSignIn(object sender, GeneralEventArgs e);
public EventResult AfterSignIn(object sender, GeneralEventArgs e);
public EventResult SucceedSignIn(object sender, GeneralEventArgs e);
public EventResult FailedSignIn(object sender, GeneralEventArgs e);
}
public interface IOpenStoreEvent
{
public EventResult BeforeOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult AfterOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult SucceedOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult FailedOpenStoreEvent(object sender, GeneralEventArgs e);
public EventResult BeforeOpenStore(object sender, GeneralEventArgs e);
public EventResult AfterOpenStore(object sender, GeneralEventArgs e);
public EventResult SucceedOpenStore(object sender, GeneralEventArgs e);
public EventResult FailedOpenStore(object sender, GeneralEventArgs e);
}
public interface IBuyItemEvent
{
public EventResult BeforeBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult AfterBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult SucceedBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult FailedBuyItemEvent(object sender, GeneralEventArgs e);
public EventResult BeforeBuyItem(object sender, GeneralEventArgs e);
public EventResult AfterBuyItem(object sender, GeneralEventArgs e);
public EventResult SucceedBuyItem(object sender, GeneralEventArgs e);
public EventResult FailedBuyItem(object sender, GeneralEventArgs e);
}
public interface IShowRankingEvent
{
public EventResult BeforeShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult AfterShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult SucceedShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult FailedShowRankingEvent(object sender, GeneralEventArgs e);
public EventResult BeforeShowRanking(object sender, GeneralEventArgs e);
public EventResult AfterShowRanking(object sender, GeneralEventArgs e);
public EventResult SucceedShowRanking(object sender, GeneralEventArgs e);
public EventResult FailedShowRanking(object sender, GeneralEventArgs e);
}
public interface IUseItemEvent
{
public EventResult BeforeUseItemEvent(object sender, GeneralEventArgs e);
public EventResult AfterUseItemEvent(object sender, GeneralEventArgs e);
public EventResult SucceedUseItemEvent(object sender, GeneralEventArgs e);
public EventResult FailedUseItemEvent(object sender, GeneralEventArgs e);
public EventResult BeforeUseItem(object sender, GeneralEventArgs e);
public EventResult AfterUseItem(object sender, GeneralEventArgs e);
public EventResult SucceedUseItem(object sender, GeneralEventArgs e);
public EventResult FailedUseItem(object sender, GeneralEventArgs e);
}
public interface IEndGameEvent
{
public EventResult BeforeEndGameEvent(object sender, GeneralEventArgs e);
public EventResult AfterEndGameEvent(object sender, GeneralEventArgs e);
public EventResult SucceedEndGameEvent(object sender, GeneralEventArgs e);
public EventResult FailedEndGameEvent(object sender, GeneralEventArgs e);
public EventResult BeforeEndGame(object sender, GeneralEventArgs e);
public EventResult AfterEndGame(object sender, GeneralEventArgs e);
public EventResult SucceedEndGame(object sender, GeneralEventArgs e);
public EventResult FailedEndGame(object sender, GeneralEventArgs e);
}
}

View File

@ -16,6 +16,11 @@ namespace Milimoe.FunGame.Core.Library.Common.Event
this.EventMsg = EventMsg;
this.Parameters = Parameters;
}
public GeneralEventArgs(params object[]? Parameters)
{
this.Parameters = Parameters;
}
}
public class GeneralEvent<T>

View File

@ -8,125 +8,125 @@ namespace Milimoe.FunGame.Desktop.Library.Base
{
public class BaseMain : GeneralForm, IConnectEventHandler, IDisconnectEventHandler, ILogoutEventHandler
{
public event IEventHandler.BeforeEventHandler? BeforeConnectEventHandler;
public event IEventHandler.AfterEventHandler? AfterConnectEventHandler;
public event IEventHandler.SucceedEventHandler? SucceedConnectEventHandler;
public event IEventHandler.FailedEventHandler? FailedConnectEventHandler;
public event IEventHandler.BeforeEventHandler? BeforeConnectEvent;
public event IEventHandler.AfterEventHandler? AfterConnectEvent;
public event IEventHandler.SucceedEventHandler? SucceedConnectEvent;
public event IEventHandler.FailedEventHandler? FailedConnectEvent;
public EventResult OnAfterConnectEvent(object sender, GeneralEventArgs e)
public EventResult OnAfterConnectEvent(GeneralEventArgs e)
{
if (AfterConnectEventHandler != null)
if (AfterConnectEvent != null)
{
return AfterConnectEventHandler(sender, e);
return AfterConnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnBeforeConnectEvent(object sender, GeneralEventArgs e)
public EventResult OnBeforeConnectEvent(GeneralEventArgs e)
{
if (BeforeConnectEventHandler != null)
if (BeforeConnectEvent != null)
{
return BeforeConnectEventHandler(sender, e);
return BeforeConnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnSucceedConnectEvent(object sender, GeneralEventArgs e)
public EventResult OnSucceedConnectEvent(GeneralEventArgs e)
{
if (SucceedConnectEventHandler != null)
if (SucceedConnectEvent != null)
{
return SucceedConnectEventHandler(sender, e);
return SucceedConnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnFailedConnectEvent(object sender, GeneralEventArgs e)
public EventResult OnFailedConnectEvent(GeneralEventArgs e)
{
if (FailedConnectEventHandler != null)
if (FailedConnectEvent != null)
{
return FailedConnectEventHandler(sender, e);
return FailedConnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public event IEventHandler.BeforeEventHandler? BeforeDisconnectEventHandler;
public event IEventHandler.AfterEventHandler? AfterDisconnectEventHandler;
public event IEventHandler.SucceedEventHandler? SucceedDisconnectEventHandler;
public event IEventHandler.FailedEventHandler? FailedDisconnectEventHandler;
public event IEventHandler.BeforeEventHandler? BeforeDisconnectEvent;
public event IEventHandler.AfterEventHandler? AfterDisconnectEvent;
public event IEventHandler.SucceedEventHandler? SucceedDisconnectEvent;
public event IEventHandler.FailedEventHandler? FailedDisconnectEvent;
public EventResult OnAfterDisconnectEvent(object sender, GeneralEventArgs e)
public EventResult OnAfterDisconnectEvent(GeneralEventArgs e)
{
if (AfterDisconnectEventHandler != null)
if (AfterDisconnectEvent != null)
{
return AfterDisconnectEventHandler(sender, e);
return AfterDisconnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnBeforeDisconnectEvent(object sender, GeneralEventArgs e)
public EventResult OnBeforeDisconnectEvent(GeneralEventArgs e)
{
if (BeforeDisconnectEventHandler != null)
if (BeforeDisconnectEvent != null)
{
return BeforeDisconnectEventHandler(sender, e);
return BeforeDisconnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnFailedDisconnectEvent(object sender, GeneralEventArgs e)
public EventResult OnFailedDisconnectEvent(GeneralEventArgs e)
{
if (FailedDisconnectEventHandler != null)
if (FailedDisconnectEvent != null)
{
return FailedDisconnectEventHandler(sender, e);
return FailedDisconnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnSucceedDisconnectEvent(object sender, GeneralEventArgs e)
public EventResult OnSucceedDisconnectEvent(GeneralEventArgs e)
{
if (SucceedDisconnectEventHandler != null)
if (SucceedDisconnectEvent != null)
{
return SucceedDisconnectEventHandler(sender, e);
return SucceedDisconnectEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public event IEventHandler.BeforeEventHandler? BeforeLogoutEventHandler;
public event IEventHandler.AfterEventHandler? AfterLogoutEventHandler;
public event IEventHandler.SucceedEventHandler? SucceedLogoutEventHandler;
public event IEventHandler.FailedEventHandler? FailedLogoutEventHandler;
public event IEventHandler.BeforeEventHandler? BeforeLogoutEvent;
public event IEventHandler.AfterEventHandler? AfterLogoutEvent;
public event IEventHandler.SucceedEventHandler? SucceedLogoutEvent;
public event IEventHandler.FailedEventHandler? FailedLogoutEvent;
public EventResult OnAfterLogoutEvent(object sender, GeneralEventArgs e)
public EventResult OnAfterLogoutEvent(GeneralEventArgs e)
{
if (AfterLogoutEventHandler != null)
if (AfterLogoutEvent != null)
{
return AfterLogoutEventHandler(sender, e);
return AfterLogoutEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnBeforeLogoutEvent(object sender, GeneralEventArgs e)
public EventResult OnBeforeLogoutEvent(GeneralEventArgs e)
{
if (BeforeLogoutEventHandler != null)
if (BeforeLogoutEvent != null)
{
return BeforeLogoutEventHandler(sender, e);
return BeforeLogoutEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnFailedLogoutEvent(object sender, GeneralEventArgs e)
public EventResult OnFailedLogoutEvent(GeneralEventArgs e)
{
if (FailedLogoutEventHandler != null)
if (FailedLogoutEvent != null)
{
return FailedLogoutEventHandler(sender, e);
return FailedLogoutEvent(this, e);
}
else return EventResult.NoEventImplement;
}
public EventResult OnSucceedLogoutEvent(object sender, GeneralEventArgs e)
public EventResult OnSucceedLogoutEvent(GeneralEventArgs e)
{
if (SucceedLogoutEventHandler != null)
if (SucceedLogoutEvent != null)
{
return SucceedLogoutEventHandler(sender, e);
return SucceedLogoutEvent(this, e);
}
else return EventResult.NoEventImplement;
}

View File

@ -45,8 +45,8 @@
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "GeneralForm";
this.Text = "GeneralForm";
this.FormClosed += FormClosedEvent;
this.ResumeLayout(false);
}
#endregion

View File

@ -1,12 +1,5 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Library.Component
{
@ -57,5 +50,46 @@ namespace Milimoe.FunGame.Desktop.Library.Component
Top += e.Location.Y - loc_y;
}
}
/// <summary>
/// 自定义窗体销毁方法
/// </summary>
protected virtual void FormClosedEvent(object? sender, FormClosedEventArgs e)
{
if (GetType() == typeof(ShowMessage))
{
return;
}
Singleton.Remove(this);
if (GetType() == typeof(Main))
{
RunTime.Main = null;
}
else if (GetType() == typeof(Login))
{
RunTime.Login = null;
}
else if (GetType() == typeof(Register))
{
RunTime.Register = null;
}
else if (GetType() == typeof(InventoryUI))
{
RunTime.Inventory = null;
}
else if (GetType() == typeof(StoreUI))
{
RunTime.Store = null;
}
else if (GetType() == typeof(RoomSetting))
{
RunTime.RoomSetting = null;
}
else if (GetType() == typeof(UserCenter))
{
RunTime.UserCenter = null;
}
base.Dispose();
}
}
}

View File

@ -28,9 +28,20 @@ namespace Milimoe.FunGame.Desktop.Library
public const string Close = ".close";
}
/// <summary>
/// 运行时单例
/// 插件接口可以从这里拿Socket和窗体
/// </summary>
public class RunTime
{
public static Core.Library.Common.Network.Socket? Socket { get; set; } = null;
public static UI.Main? Main { get; set; } = null;
public static UI.Login? Login { get; set; } = null;
public static UI.Register? Register { get; set; } = null;
public static UI.StoreUI? Store { get; set; } = null;
public static UI.InventoryUI? Inventory { get; set; } = null;
public static UI.RoomSetting? RoomSetting { get; set; } = null;
public static UI.UserCenter? UserCenter { get; set; } = null;
}
public class Constant

View File

@ -91,7 +91,7 @@ namespace Milimoe.FunGame.Desktop.Model
public ConnectResult Connect()
{
Main.OnBeforeConnectEvent(Main, new GeneralEventArgs());
Main.OnBeforeConnectEvent(new GeneralEventArgs());
if (Constant.Server_Address == "" || Constant.Server_Port <= 0)
{
ShowMessage.ErrorMessage("查找可用的服务器失败!");
@ -133,8 +133,8 @@ namespace Milimoe.FunGame.Desktop.Model
Main.GetMessage("连接服务器成功请登录账号以体验FunGame。");
Main.UpdateUI(MainControllerSet.Connected);
StartReceiving();
Main.OnSucceedConnectEvent(Main, new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs());
Main.OnSucceedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(new GeneralEventArgs());
}
});
return ConnectResult.Success;
@ -163,13 +163,13 @@ namespace Milimoe.FunGame.Desktop.Model
if (Config.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连
});
Main.GetMessage("连接服务器失败5秒后自动尝试重连。");
Main.OnFailedConnectEvent(Main, new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs());
Main.OnFailedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(new GeneralEventArgs());
}
else
{
Main.OnFailedConnectEvent(Main, new GeneralEventArgs());
Main.OnAfterConnectEvent(Main, new GeneralEventArgs());
Main.OnFailedConnectEvent(new GeneralEventArgs());
Main.OnAfterConnectEvent(new GeneralEventArgs());
return ConnectResult.ConnectFailed;
}
}
@ -275,25 +275,25 @@ namespace Milimoe.FunGame.Desktop.Model
switch (type)
{
case SocketMessageType.Connect:
SocketHandle_Connect(objs);
SocketHandler_Connect(objs);
break;
case SocketMessageType.GetNotice:
SocketHandle_GetNotice(objs);
SocketHandler_GetNotice(objs);
break;
case SocketMessageType.Login:
break;
case SocketMessageType.CheckLogin:
SocketHandle_CheckLogin(objs);
SocketHandler_CheckLogin(objs);
break;
case SocketMessageType.Logout:
break;
case SocketMessageType.Disconnect:
SocketHandle_Disconnect(objs);
SocketHandler_Disconnect(objs);
break;
case SocketMessageType.HeartBeat:
@ -317,7 +317,7 @@ namespace Milimoe.FunGame.Desktop.Model
return result;
}
private void SocketHandle_Connect(object[] objs)
private void SocketHandler_Connect(object[] objs)
{
string msg = "";
if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!;
@ -333,12 +333,12 @@ namespace Milimoe.FunGame.Desktop.Model
Main.UpdateUI(MainControllerSet.WaitLoginAndSetYellow);
}
private void SocketHandle_GetNotice(object[] objs)
private void SocketHandler_GetNotice(object[] objs)
{
if (objs.Length > 0) Config.FunGame_Notice = NetworkUtility.ConvertJsonObject<string>(objs[0])!;
}
private void SocketHandle_CheckLogin(object[] objs)
private void SocketHandler_CheckLogin(object[] objs)
{
string msg = "";
// 返回的objs是该Login的User对象的各个属性
@ -347,7 +347,7 @@ namespace Milimoe.FunGame.Desktop.Model
Main.UpdateUI(MainControllerSet.SetUser, new object[] { Factory.New<User>(msg) });
}
private void SocketHandle_Disconnect(object[] objs)
private void SocketHandler_Disconnect(object[] objs)
{
string msg = "";
if (objs.Length > 0) msg = NetworkUtility.ConvertJsonObject<string>(objs[0])!;

View File

@ -1,4 +1,5 @@
using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI
{
@ -16,7 +17,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="e"></param>
private void RegButton_Click(object sender, EventArgs e)
{
new Register().ShowDialog();
OpenForm.SingleForm(Core.Library.Constant.FormType.Register, Core.Library.Constant.OpenFormType.Dialog);
}
}
}

View File

@ -9,6 +9,7 @@ using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI
{
@ -48,6 +49,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// </summary>
public void Init()
{
RunTime.Main = this;
SetButtonEnableIfLogon(false, ClientState.WaitConnect);
SetRoomid("-1"); // 房间号初始化
ShowFunGameInfo(); // 显示FunGame信息
@ -76,10 +78,10 @@ namespace Milimoe.FunGame.Desktop.UI
protected override void BindEvent()
{
base.BindEvent();
AfterConnectEventHandler += AfterConnectEvent;
BeforeConnectEventHandler += BeforeConnectEvent;
FailedConnectEventHandler += FailedConnectEvent;
SucceedConnectEventHandler += SucceedConnectEvent;
AfterConnectEvent += AfterConnect;
BeforeConnectEvent += BeforeConnect;
FailedConnectEvent += FailedConnect;
SucceedConnectEvent += SucceedConnect;
}
#endregion
@ -213,7 +215,7 @@ namespace Milimoe.FunGame.Desktop.UI
default:
// 直接调用UpdateUI(string)为输出该string到控制台。
// 和GetMessage(string)的效果不一样输出格式为HH:mm:ss >> string。
// 相当于调用GetMessage(string)
WritelnSystemInfo(updatetype);
break;
}
@ -948,7 +950,7 @@ namespace Milimoe.FunGame.Desktop.UI
private void Login_Click(object sender, EventArgs e)
{
if (MainController != null && Config.FunGame_isConnected)
new Login().ShowDialog();
OpenForm.SingleForm(FormType.Login, OpenFormType.Dialog);
else
ShowMessage.WarningMessage("请先连接服务器!");
}
@ -1107,7 +1109,7 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="e"></param>
private void Copyright_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// Copyright 2022 mili.cyou
// Copyright 2023 mili.cyou
Process.Start(new ProcessStartInfo("https://mili.cyou/fungame") { UseShellExecute = true });
}
@ -1134,9 +1136,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param>
/// <param name="e"></param>
/// <returns></returns>
public EventResult BeforeConnectEvent(object sender, GeneralEventArgs e)
public EventResult BeforeConnect(object sender, GeneralEventArgs e)
{
UpdateUI("触发【Before Connect】事件");
return EventResult.Success;
}
@ -1146,9 +1147,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param>
/// <param name="e"></param>
/// <returns></returns>
public EventResult AfterConnectEvent(object sender, GeneralEventArgs e)
public EventResult AfterConnect(object sender, GeneralEventArgs e)
{
UpdateUI("触发【After Connect】事件");
return EventResult.Success;
}
@ -1158,9 +1158,8 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param>
/// <param name="e"></param>
/// <returns></returns>
public EventResult FailedConnectEvent(object sender, GeneralEventArgs e)
public EventResult FailedConnect(object sender, GeneralEventArgs e)
{
UpdateUI("触发【Failed Connect】事件");
return EventResult.Success;
}
@ -1170,13 +1169,12 @@ namespace Milimoe.FunGame.Desktop.UI
/// <param name="sender"></param>
/// <param name="e"></param>
/// <returns></returns>
public EventResult SucceedConnectEvent(object sender, GeneralEventArgs e)
public EventResult SucceedConnect(object sender, GeneralEventArgs e)
{
UpdateUI("触发【Succeed Connect】事件");
if (MainController != null && Config.FunGame_isAutoLogin)
{
// 自动登录 [TODO]
}
return EventResult.Success;
}

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Utility
@ -9,39 +10,54 @@ namespace Milimoe.FunGame.Desktop.Utility
public static void SingleForm(FormType type, OpenFormType opentype = OpenFormType.General)
{
Form form = new();
bool IsExist = false;
switch (type)
{
case FormType.Register:
form = new Register();
IsExist = RunTime.Register != null;
RunTime.Register = (Register)form;
break;
case FormType.Login:
form = new Login();
IsExist = RunTime.Login != null;
RunTime.Login = (Login)form;
break;
case FormType.Inventory:
form = new InventoryUI();
IsExist = RunTime.Inventory != null;
RunTime.Inventory = (InventoryUI)form;
break;
case FormType.RoomSetting:
form = new RoomSetting();
IsExist = RunTime.RoomSetting != null;
RunTime.RoomSetting = (RoomSetting)form;
break;
case FormType.Store:
form = new StoreUI();
IsExist = RunTime.Store != null;
RunTime.Store = (StoreUI)form;
break;
case FormType.UserCenter:
form = new UserCenter();
IsExist = RunTime.UserCenter != null;
RunTime.UserCenter = (UserCenter)form;
break;
case FormType.Main:
form = new Main();
IsExist = RunTime.Main != null;
RunTime.Main = (Main)form;
break;
default:
break;
}
if (!Singleton.IsExist(form))
if (Singleton.IsExist(form) || IsExist)
{
NewSingleForm(form, opentype);
throw new Exception("目标窗口可能已处于打开状态。");
}
else
{
throw new Exception("目标窗口可能已处于打开状态。");
NewSingleForm(form, opentype);
}
}