diff --git a/app/Http/Controllers/Dungeon/DungeonExploreController.php b/app/Http/Controllers/Dungeon/DungeonExploreController.php index 4cb7b307c..3dab94083 100644 --- a/app/Http/Controllers/Dungeon/DungeonExploreController.php +++ b/app/Http/Controllers/Dungeon/DungeonExploreController.php @@ -27,10 +27,16 @@ public function get(Request $request, CombatLogEventServiceInterface $combatLogE ]); } - public function viewDungeon(Request $request, CombatLogEventServiceInterface $combatLogEventService, Dungeon $dungeon): RedirectResponse + public function viewDungeon(Request $request, Dungeon $dungeon): RedirectResponse { $dungeon->load(['currentMappingVersion']); + if (!$dungeon->active || $dungeon->currentMappingVersion === null) { + return redirect()->route('dungeon.explore.list'); + } + + $dungeon->load(['currentMappingVersion']); + /** @var Floor $defaultFloor */ $defaultFloor = Floor::where('dungeon_id', $dungeon->id) ->defaultOrFacade($dungeon->currentMappingVersion) @@ -50,10 +56,15 @@ public function viewDungeonFloor( Dungeon $dungeon, string $floorIndex = '1'): View|RedirectResponse { + $dungeon->load(['currentMappingVersion']); + + if (!$dungeon->active || $dungeon->currentMappingVersion === null) { + return redirect()->route('dungeon.explore.list'); + } + if (!is_numeric($floorIndex)) { $floorIndex = '1'; } - $dungeon->load(['currentMappingVersion']); /** @var Floor $floor */ $floor = Floor::where('dungeon_id', $dungeon->id) @@ -87,7 +98,9 @@ public function viewDungeonFloor( $mostRecentSeason = $dungeon->getActiveSeason($seasonService); - $heatmapActive = Feature::active(Heatmap::class) && $dungeon->gameVersion->has_seasons; + $heatmapActive = Feature::active(Heatmap::class) && + $dungeon->gameVersion->has_seasons && + $dungeon->challenge_mode_id !== null; $dungeon->trackPageView();