From 626a17b1e8710bcafe8cc80c9d2f6bb7b8924a07 Mon Sep 17 00:00:00 2001 From: Mili Date: Tue, 18 Oct 2022 23:33:21 +0800 Subject: [PATCH] Add Events template --- FunGame.Core/Entity/Event/ConnectEvent.cs | 57 +++++++++++++++++++ FunGame.Core/Entity/Event/DisconnectEvent.cs | 57 +++++++++++++++++++ FunGame.Core/Entity/Event/GeneralEventArgs.cs | 6 ++ 3 files changed, 120 insertions(+) create mode 100644 FunGame.Core/Entity/Event/ConnectEvent.cs create mode 100644 FunGame.Core/Entity/Event/DisconnectEvent.cs diff --git a/FunGame.Core/Entity/Event/ConnectEvent.cs b/FunGame.Core/Entity/Event/ConnectEvent.cs new file mode 100644 index 0000000..a9eaa66 --- /dev/null +++ b/FunGame.Core/Entity/Event/ConnectEvent.cs @@ -0,0 +1,57 @@ +using Milimoe.FunGame.Core.Interface; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Milimoe.FunGame.Core.Entity.Event +{ + public class ConnectEvent : IConnectEvent + { + public event IEvent.BeforeEvent? BeforeConnectEvent; + public event IEvent.AfterEvent? AfterConnectEvent; + public event IEvent.SucceedEvent? SucceedConnectEvent; + public event IEvent.FailedEvent? FailedConnectEvent; + + public virtual Enum.EventResult OnBeforeConnectEvent(GeneralEventArgs e) + { + if (BeforeConnectEvent != null) + { + return BeforeConnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnAfterConnectEvent(GeneralEventArgs e) + { + if (AfterConnectEvent != null) + { + return AfterConnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnSucceedConnectEvent(GeneralEventArgs e) + { + if (SucceedConnectEvent != null) + { + return SucceedConnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnFailedConnectEvent(GeneralEventArgs e) + { + if (FailedConnectEvent != null) + { + return FailedConnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + } +} diff --git a/FunGame.Core/Entity/Event/DisconnectEvent.cs b/FunGame.Core/Entity/Event/DisconnectEvent.cs new file mode 100644 index 0000000..ae4bc24 --- /dev/null +++ b/FunGame.Core/Entity/Event/DisconnectEvent.cs @@ -0,0 +1,57 @@ +using Milimoe.FunGame.Core.Interface; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Milimoe.FunGame.Core.Entity.Event +{ + public class DisconnectEvent : IDisconnectEvent + { + public event IEvent.BeforeEvent? BeforeDisconnectEvent; + public event IEvent.AfterEvent? AfterDisconnectEvent; + public event IEvent.SucceedEvent? SucceedDisconnectEvent; + public event IEvent.FailedEvent? FailedDisconnectEvent; + + public virtual Enum.EventResult OnBeforeDisconnectEvent(GeneralEventArgs e) + { + if (BeforeDisconnectEvent != null) + { + return BeforeDisconnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnAfterDisconnectEvent(GeneralEventArgs e) + { + if (AfterDisconnectEvent != null) + { + return AfterDisconnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnSucceedDisconnectEvent(GeneralEventArgs e) + { + if (SucceedDisconnectEvent != null) + { + return SucceedDisconnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + + public virtual Enum.EventResult OnFailedDisconnectEvent(GeneralEventArgs e) + { + if (FailedDisconnectEvent != null) + { + return FailedDisconnectEvent(this, e); + } + + return Enum.EventResult.Fail; + } + } +} diff --git a/FunGame.Core/Entity/Event/GeneralEventArgs.cs b/FunGame.Core/Entity/Event/GeneralEventArgs.cs index 23fbbbd..ff6d18e 100644 --- a/FunGame.Core/Entity/Event/GeneralEventArgs.cs +++ b/FunGame.Core/Entity/Event/GeneralEventArgs.cs @@ -10,6 +10,12 @@ namespace Milimoe.FunGame.Core.Entity.Event { public string EventMsg { get; set; } = ""; public object[]? Parameters { get; set; } = null; + + public GeneralEventArgs(string EventMsg, object[]? Parameters = null) + { + this.EventMsg = EventMsg; + this.Parameters = Parameters; + } } public class GeneralEvent