GameServiceProvider.php 4.7 KB

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