|
|
@@ -0,0 +1,56 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Module\Game\Listeners;
|
|
|
+
|
|
|
+use App\Module\Game\Logics\PetTemp;
|
|
|
+use App\Module\Pet\Events\PetSkillUsedEvent;
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 宠物技能使用事件监听器
|
|
|
+ *
|
|
|
+ * 监听宠物技能使用事件,并调用逻辑层处理临时数据存储
|
|
|
+ * 同步处理事件,确保事件处理完成后才返回
|
|
|
+ */
|
|
|
+class PetSkillUsedListener
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * 创建事件监听器
|
|
|
+ *
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理事件
|
|
|
+ *
|
|
|
+ * 接收宠物技能使用事件,并调用逻辑层的方法处理临时数据
|
|
|
+ *
|
|
|
+ * @param PetSkillUsedEvent $event 宠物技能使用事件
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function handle(PetSkillUsedEvent $event): void
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ Log::info('Game模块接收到宠物技能使用事件', [
|
|
|
+ 'user_id' => $event->userId,
|
|
|
+ 'pet_id' => $event->petId,
|
|
|
+ 'skill_id' => $event->skillId,
|
|
|
+ 'params' => $event->params
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // 调用逻辑层处理临时数据
|
|
|
+ PetTemp::handlePetSkillUsed($event);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Log::error('Game模块处理宠物技能使用事件失败', [
|
|
|
+ 'error' => $e->getMessage(),
|
|
|
+ 'user_id' => $event->userId,
|
|
|
+ 'pet_id' => $event->petId,
|
|
|
+ 'skill_id' => $event->skillId,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|