$playerFiles = scandir(Server::getInstance()->getDataPath() . "players/";
$onlinePlayers = Server::getInstance()->getOnlinePlayers();
$onlineNames = array_column(
function(Player $player) : array{ return [strtolower($player->getName()), $player->getName()]; },
$playerNames = array_column(
function(string $playerName) : array{ return [strtolower($playerName), $playerName]; },
function(string $playerName) use($onlineNames) : string{ return $onlineNames[strtolower($playerName)] ?? $playerName; },
function(string $fileName) : string{ return substr($fileName, 0, -strlen(\".dat\")); },
array_filter($playerFiles, function(string $fileName) : bool{ return substr($fileName, -strlen(\".dat\")) === \".dat\"; })