GameServiceProvider.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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\TestItemTempCommand;
  6. use App\Module\Game\Events\RewardGrantedEvent;
  7. use App\Module\Game\Listeners\ItemQuantityChangedListener;
  8. use App\Module\Game\Listeners\LogRewardGrantedListener;
  9. use App\Module\Game\Listeners\NotifyRewardGrantedListener;
  10. use App\Module\Game\Listeners\PetCreatedListener;
  11. use App\Module\Game\Listeners\PetStatusChangedListener;
  12. use App\Module\Game\Listeners\PetUpdateListener;
  13. use App\Module\GameItems\Events\ItemQuantityChanged;
  14. use App\Module\Pet\Events\PetCreatedEvent;
  15. use App\Module\Pet\Events\PetStatusChangedEvent;
  16. use App\Module\Pet\Events\PetUpdateEvent;
  17. use Illuminate\Support\ServiceProvider;
  18. use Illuminate\Support\Facades\Event;
  19. /**
  20. * 游戏模块服务提供者
  21. *
  22. * 负责注册游戏模块的事件监听器、命令和其他服务
  23. */
  24. class GameServiceProvider extends ServiceProvider
  25. {
  26. /**
  27. * 要注册的命令
  28. *
  29. * @var array
  30. */
  31. protected $commands = [
  32. TestItemTempCommand::class,
  33. ImportRewardGroupsCommand::class,
  34. CleanExpiredRewardLogsCommand::class,
  35. ];
  36. /**
  37. * 注册服务
  38. */
  39. public function register(): void
  40. {
  41. // 注册命令
  42. $this->commands($this->commands);
  43. }
  44. /**
  45. * 启动服务
  46. */
  47. public function boot(): void
  48. {
  49. // 注册事件监听器
  50. Event::listen(
  51. ItemQuantityChanged::class,
  52. ItemQuantityChangedListener::class
  53. );
  54. // 注册宠物事件监听器
  55. Event::listen(
  56. PetCreatedEvent::class,
  57. PetCreatedListener::class
  58. );
  59. Event::listen(
  60. PetStatusChangedEvent::class,
  61. PetStatusChangedListener::class
  62. );
  63. Event::listen(
  64. PetUpdateEvent::class,
  65. PetUpdateListener::class
  66. );
  67. // 注册奖励组系统事件监听器
  68. Event::listen(
  69. RewardGrantedEvent::class,
  70. LogRewardGrantedListener::class
  71. );
  72. Event::listen(
  73. RewardGrantedEvent::class,
  74. NotifyRewardGrantedListener::class
  75. );
  76. }
  77. }