GameServiceProvider.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?php
  2. namespace App\Module\Game\Providers;
  3. use App\Module\Game\Commands\CleanExpiredRewardLogsCommand;
  4. use App\Module\Game\Commands\CleanExpiredUserLogsCommand;
  5. use App\Module\Game\Commands\CollectUserLogsCommand;
  6. use App\Module\Game\Commands\CollectUserLogsContinuousCommand;
  7. use App\Module\Game\Commands\ImportRewardGroupsCommand;
  8. use App\Module\Game\Events\RewardGrantedEvent;
  9. // 这些事件类需要在 Farm 模块中定义
  10. // 如果 Farm 模块中尚未定义这些事件类,请先在 Farm 模块中创建它们
  11. use App\Module\Farm\Events\CropGrowthStageChangedEvent;
  12. use App\Module\Farm\Events\CropPlantedEvent;
  13. use App\Module\Farm\Events\DisasterClearedEvent;
  14. use App\Module\Farm\Events\BuffActivatedEvent;
  15. use App\Module\Farm\Events\HouseDowngradedEvent;
  16. use App\Module\Farm\Events\HouseUpgradedEvent;
  17. use App\Module\Farm\Events\LandCreatedEvent;
  18. use App\Module\Farm\Events\LandStatusChangedEvent;
  19. use App\Module\Farm\Events\LandUpgradedEvent;
  20. use App\Module\Fund\Events\FundChangedEvent;
  21. use App\Module\Game\Listeners\BuffActivatedListener;
  22. use App\Module\Game\Listeners\CropGrowthStageChangedListener;
  23. use App\Module\Game\Listeners\CropPlantedListener;
  24. use App\Module\Game\Listeners\DisasterClearedListener;
  25. use App\Module\Game\Listeners\FundChangedListener;
  26. use App\Module\Game\Listeners\HouseDowngradedListener;
  27. use App\Module\Game\Listeners\HouseUpgradedListener;
  28. use App\Module\Game\Listeners\ItemQuantityChangedListener;
  29. use App\Module\Game\Listeners\LandCreatedListener;
  30. use App\Module\Game\Listeners\LandStatusChangedListener;
  31. use App\Module\Game\Listeners\LandUpgradedListener;
  32. use App\Module\Game\Listeners\LogRewardGrantedListener;
  33. use App\Module\Game\Listeners\NotifyRewardGrantedListener;
  34. use App\Module\Game\Listeners\PetCreatedListener;
  35. use App\Module\Game\Listeners\PetSkillUsedListener;
  36. use App\Module\Game\Listeners\PetStatusChangedListener;
  37. use App\Module\Game\Listeners\PetUpdateListener;
  38. use App\Module\GameItems\Events\ItemQuantityChanged;
  39. use App\Module\Pet\Events\PetCreatedEvent;
  40. use App\Module\Pet\Events\PetSkillUsedEvent;
  41. use App\Module\Pet\Events\PetStatusChangedEvent;
  42. use App\Module\Pet\Events\PetUpdateEvent;
  43. use Illuminate\Support\ServiceProvider;
  44. use Illuminate\Support\Facades\Event;
  45. /**
  46. * 游戏模块服务提供者
  47. *
  48. * 负责注册游戏模块的事件监听器、命令和其他服务
  49. */
  50. class GameServiceProvider extends ServiceProvider
  51. {
  52. /**
  53. * 要注册的命令
  54. *
  55. * @var array
  56. */
  57. protected $commands = [
  58. ImportRewardGroupsCommand::class,
  59. CleanExpiredRewardLogsCommand::class,
  60. CleanExpiredUserLogsCommand::class,
  61. CollectUserLogsCommand::class,
  62. CollectUserLogsContinuousCommand::class,
  63. ];
  64. protected $listeners = [
  65. // ...
  66. ];
  67. /**
  68. * 注册服务
  69. */
  70. public function register(): void
  71. {
  72. // 注册命令
  73. $this->commands($this->commands);
  74. }
  75. /**
  76. * 启动服务
  77. */
  78. public function boot(): void
  79. {
  80. // 注册事件监听器
  81. Event::listen(
  82. ItemQuantityChanged::class,
  83. ItemQuantityChangedListener::class
  84. );
  85. // 注册宠物事件监听器
  86. Event::listen(
  87. PetCreatedEvent::class,
  88. PetCreatedListener::class
  89. );
  90. Event::listen(
  91. PetStatusChangedEvent::class,
  92. PetStatusChangedListener::class
  93. );
  94. // 注册宠物更新事件监听器
  95. Event::listen(
  96. PetUpdateEvent::class,
  97. PetUpdateListener::class
  98. );
  99. // 注册宠物技能使用事件监听器
  100. Event::listen(
  101. PetSkillUsedEvent::class,
  102. PetSkillUsedListener::class
  103. );
  104. // 注册奖励组系统事件监听器
  105. Event::listen(
  106. RewardGrantedEvent::class,
  107. LogRewardGrantedListener::class
  108. );
  109. // 注册奖励组系统事件监听器
  110. Event::listen(
  111. RewardGrantedEvent::class,
  112. NotifyRewardGrantedListener::class
  113. );
  114. // 注册土地事件监听器
  115. Event::listen(
  116. LandCreatedEvent::class,
  117. LandCreatedListener::class
  118. );
  119. Event::listen(
  120. LandUpgradedEvent::class,
  121. LandUpgradedListener::class
  122. );
  123. // 注册土地状态变更事件监听器
  124. Event::listen(
  125. LandStatusChangedEvent::class,
  126. LandStatusChangedListener::class
  127. );
  128. // 注册作物种植事件监听器
  129. Event::listen(
  130. CropPlantedEvent::class,
  131. CropPlantedListener::class
  132. );
  133. // 注册作物生长阶段变更事件监听器
  134. Event::listen(
  135. CropGrowthStageChangedEvent::class,
  136. CropGrowthStageChangedListener::class
  137. );
  138. // 注册灾害清理事件监听器
  139. Event::listen(
  140. DisasterClearedEvent::class,
  141. DisasterClearedListener::class
  142. );
  143. // 注册房屋事件监听器
  144. Event::listen(
  145. HouseUpgradedEvent::class,
  146. HouseUpgradedListener::class
  147. );
  148. Event::listen(
  149. HouseDowngradedEvent::class,
  150. HouseDowngradedListener::class
  151. );
  152. // 注册资金事件监听器
  153. Event::listen(
  154. FundChangedEvent::class,
  155. FundChangedListener::class
  156. );
  157. // 注册神像激活事件监听器
  158. Event::listen(
  159. BuffActivatedEvent::class,
  160. BuffActivatedListener::class
  161. );
  162. }
  163. }