GameItemsServiceProvider.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Module\GameItems\Providers;
  3. use App\Module\GameItems\Events\ItemQuantityChanged;
  4. use Illuminate\Support\Facades\Event;
  5. use Illuminate\Support\ServiceProvider;
  6. /**
  7. * 物品模块服务提供者
  8. *
  9. * 负责注册物品模块的服务、命令、事件监听器等
  10. * 此类是物品模块与Laravel框架集成的核心
  11. */
  12. class GameItemsServiceProvider extends ServiceProvider
  13. {
  14. /**
  15. * 注册服务
  16. *
  17. * 在此方法中注册物品模块的服务容器绑定
  18. * 此方法在应用启动早期被调用,适合注册服务但不适合使用任何服务
  19. *
  20. * @return void
  21. */
  22. public function register()
  23. {
  24. }
  25. /**
  26. * 引导服务
  27. *
  28. * 在所有服务提供者被注册后调用,可以使用已注册的服务
  29. * 负责注册命令、事件监听器等
  30. *
  31. * @return void
  32. */
  33. public function boot()
  34. {
  35. if ($this->app->runningInConsole()) {
  36. $this->commands([
  37. \App\Module\GameItems\Commands\GenerateItemsJsonCommand::class, // 生成物品JSON数据命令
  38. \App\Module\GameItems\Commands\GenerateRecipeJsonCommand::class, // 生成 合成配方 JSON数据命令
  39. \App\Module\GameItems\Commands\GenerateChestJsonCommand::class, // 生成宝箱JSON数据命令
  40. \App\Module\GameItems\Console\Commands\UpdateChestDatabaseCommand::class, // 更新宝箱数据库结构命令
  41. \App\Module\GameItems\Console\Commands\MigrateChestToGroupSystemCommand::class, // 宝箱系统迁移命令
  42. ]);
  43. }
  44. // 注册事件监听器
  45. $this->registerEventListeners();
  46. }
  47. /**
  48. * 注册事件监听器
  49. *
  50. * 注册物品模块的所有事件监听器
  51. * 包括物品获取、消耗、数量变更等事件的监听器
  52. *
  53. * @return void
  54. */
  55. protected function registerEventListeners()
  56. {
  57. // 物品数量变更事件监听器示例
  58. // 取消注释以启用此监听器
  59. // Event::listen(ItemQuantityChanged::class, function (ItemQuantityChanged $event) {
  60. // // 在这里处理物品数量变更事件
  61. // // 可以用于更新任务进度、触发成就、记录日志等
  62. // \Log::info('物品数量变更', [
  63. // 'user_id' => $event->userId,
  64. // 'item_id' => $event->itemId,
  65. // 'old_quantity' => $event->oldQuantity,
  66. // 'new_quantity' => $event->newQuantity,
  67. // 'change_amount' => $event->changeAmount,
  68. // ]);
  69. // });
  70. }
  71. }