GameServiceProvider.php 5.0 KB

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