Add ModMissingProblem and ModMissingSolution

This commit is contained in:
2026-04-30 21:32:15 +00:00
parent 4be6ebac10
commit 1d09358e7b
3 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
<?php
namespace IndifferentKetchup\Codex\Analysis\ProjectZomboid;
use IndifferentKetchup\Codex\Analysis\InsightInterface;
use IndifferentKetchup\Codex\Analysis\PatternInsightInterface;
use IndifferentKetchup\Codex\Analysis\Problem;
use IndifferentKetchup\Codex\Pattern\ProjectZomboid\DebugServerPattern;
class ModMissingProblem extends Problem implements PatternInsightInterface
{
private string $modName = '';
public static function getPatterns(): array
{
return [DebugServerPattern::MOD_MISSING];
}
public function setMatches(array $matches, mixed $patternKey): void
{
$this->modName = $matches['mod'];
$this->addSolution((new ModMissingSolution())->setModName($this->modName));
}
public function getModName(): string
{
return $this->modName;
}
public function getMessage(): string
{
return sprintf('Required mod "%s" not found.', $this->modName);
}
public function isEqual(InsightInterface $insight): bool
{
return $insight instanceof self && $insight->getModName() === $this->modName;
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace IndifferentKetchup\Codex\Analysis\ProjectZomboid;
use IndifferentKetchup\Codex\Analysis\Solution;
class ModMissingSolution extends Solution
{
private string $modName = '';
public function setModName(string $modName): static
{
$this->modName = $modName;
return $this;
}
public function getMessage(): string
{
return sprintf(
'Subscribe to mod "%s" or remove its ID from the Mods= line in serverconfig.ini.',
$this->modName
);
}
}