Lines
100.00%
9 / 9
Methods
100.00%
1 / 1
Classes
100.00%
1 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| recognize | 100.00% | 9 / 9 | 100.00% | 1 / 1 | 4 | ||
| 45 | final readonly class Events | |
| 46 | { | |
| 47 | /** @var non-empty-list<class-string<Event>> */ | |
| 48 | public const array ALL = [ | |
| 49 | ActionTooSoonEvent::class, | |
| 50 | AttackRejectedEvent::class, | |
| 51 | ClassChangedEvent::class, | |
| 52 | MonsterRespawnedEvent::class, | |
| 53 | MonsterRewardedEvent::class, | |
| 54 | MonstersDiedEvent::class, | |
| 55 | MonstersHealthChangedEvent::class, | |
| 56 | LeveledUpEvent::class, | |
| 57 | PlayersHealthChangedEvent::class, | |
| 58 | PlayersManaChangedEvent::class, | |
| 59 | PlayersStateChangedEvent::class, | |
| 60 | PlayerDiedEvent::class, | |
| 61 | ResurrectedEvent::class, | |
| 62 | SkillsLoadedEvent::class, | |
| 63 | ConnectionEstablishedEvent::class, | |
| 64 | PlayerInventoryLoadedEvent::class, | |
| 65 | ItemEquippedEvent::class, | |
| 66 | ItemUnequippedEvent::class, | |
| 67 | ItemUnwornEvent::class, | |
| 68 | ItemWornEvent::class, | |
| 69 | LoginFailedEvent::class, | |
| 70 | LoginSucceededEvent::class, | |
| 71 | AlreadyInMapEvent::class, | |
| 72 | MapLockedEvent::class, | |
| 73 | MapMemberOnlyEvent::class, | |
| 74 | MapNotAvailableEvent::class, | |
| 75 | MapRequiresQuestEvent::class, | |
| 76 | MovedToMapEvent::class, | |
| 77 | RoomJoinedEvent::class, | |
| 78 | PlayerEnteredEvent::class, | |
| 79 | PlayerLeftEvent::class, | |
| 80 | PlayerUpdatedEvent::class, | |
| 81 | PlayerAwayUpdatedEvent::class, | |
| 82 | PlayerVitalsUpdatedEvent::class, | |
| 83 | QuestLoadedEvent::class, | |
| 84 | ShopLoadedEvent::class, | |
| 85 | ]; | |
| 86 | ||
| 87 | /** @return list<Event|MalformedEventException> */ | |
| 88 | public static function recognize(Message $message): array | |
| 89 | { | |
| 90 | $recognized = []; | |
| 91 | ||
| 92 | foreach (self::ALL as $event) { | |
| 93 | try { | |
| 94 | /** @mago-expect analysis:possibly-static-access-on-interface */ | |
| 95 | $heard = $event::from($message); | |
| 96 | } catch (MalformedEventException $malformed) { | |
| 97 | $recognized[] = $malformed; | |
| 98 | ||
| 99 | continue; | |
| 100 | } | |
| 101 | ||
| 102 | if ($heard->isSome()) { | |
| 103 | $recognized[] = $heard->unwrap(); | |
| 104 | } | |
| 105 | } | |
| 106 | ||
| 107 | return $recognized; | |
| 108 | } | |
| 109 | } |