ILogicModule.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using DeepCore;
  2. using DeepCore.Log;
  3. using DeepCore.Statistics;
  4. using DeepCrystal.ORM;
  5. using DeepCrystal.RPC;
  6. using System.Threading.Tasks;
  7. namespace DeepMMO.Server.Logic
  8. {
  9. public abstract class ILogicModule : Disposable
  10. {
  11. public static TimeStatisticsRecoder Statistics { get => LogicService.Statistics; }
  12. public LogicService service { get; private set; }
  13. protected Logger log { get; private set; }
  14. public ILogicModule(LogicService service)
  15. {
  16. this.service = service;
  17. this.log = service.log;
  18. }
  19. protected override void Disposing() { }
  20. public virtual Task OnStartAsync() { return Task.CompletedTask; }
  21. public virtual Task OnStartedAsync() { return Task.CompletedTask; }
  22. public virtual Task OnStopAsync() { return Task.CompletedTask; }
  23. public virtual Task OnStopedAsync() { return Task.CompletedTask; }
  24. public virtual void OnSaveData(IObjectTransaction trans) { }
  25. public virtual Task OnClientEnterGameAsync() { return Task.CompletedTask; }
  26. public virtual void OnSessionReconnect() { }
  27. public virtual void OnSessionDisconnect() { }
  28. }
  29. }