fix many PHP 8.4 compatibility issues

This commit is contained in:
Beu
2025-05-26 22:50:03 +02:00
parent 03a991cd50
commit 7a8d9f2b0b
59 changed files with 137 additions and 98 deletions

View File

@ -15,7 +15,7 @@ abstract class AutoLoader {
* Register the Auto Loader
*/
public static function register() {
spl_autoload_register(array(get_class(), 'autoload'));
spl_autoload_register(array(get_called_class(), 'autoload'));
}
/**

View File

@ -161,7 +161,7 @@ class HelpManager implements CommandListener, CallbackListener, ManialinkPageAns
* @param Player $player
* @return string
*/
private function parseHelpList(array $commands, $isHelpAll = false, Player $player = null) {
private function parseHelpList(array $commands, $isHelpAll = false, ?Player $player = null) {
$showCommands = array();
$registeredMethods = array();
$message = '';

View File

@ -188,7 +188,7 @@ class Configurator implements CallbackListener, CommandListener, ManialinkPageAn
* @param Player $player
* @return \FML\ManiaLink
*/
private function buildManialink($menuIdShown = 0, Player $player = null) {
private function buildManialink($menuIdShown = 0, ?Player $player = null) {
$menuPosX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MENU_POSX);
$menuPosY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MENU_POSY);
$menuWidth = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MENU_WIDTH);

View File

@ -223,7 +223,7 @@ class Database implements TimerListener {
* Check whether the Database Connection is still open
*/
public function checkConnection() {
if (!$this->getMysqli() || !@$this->getMysqli()->ping()) {
if (!$this->getMysqli() || !$this->getMysqli()->query('DO 1')) {
$this->maniaControl->quit('The MySQL Server has gone away!', true);
}
}

View File

@ -75,7 +75,7 @@ class CustomUIManager implements CallbackListener, TimerListener, UsageInformati
*
* @param Player $player
*/
public function updateManialink(Player $player = null) {
public function updateManialink(?Player $player = null) {
$this->maniaControl->getManialinkManager()->sendManialink($this->customUI, $player);
}

View File

@ -227,7 +227,7 @@ class MapManager implements CallbackListener, CommunicationListener, UsageInform
*
* @param ?Setting $setting
*/
public function updateSettings(Setting $setting = null) {
public function updateSettings(?Setting $setting = null) {
if (!isset($setting) || !$setting->belongsToClass($this)) return;
if ($setting->setting === self::SETTING_ENABLE_MX) {
@ -378,7 +378,7 @@ class MapManager implements CallbackListener, CommunicationListener, UsageInform
public function addMapFromMx($mapId, $login, $update = false) {
if (is_numeric($mapId)) {
// Check if map exists
$this->maniaControl->getMapManager()->getMXManager()->fetchMapInfo($mapId, function (MXMapInfo $mapInfo = null) use (
$this->maniaControl->getMapManager()->getMXManager()->fetchMapInfo($mapId, function (?MXMapInfo $mapInfo = null) use (
&$login, &$update
) {
if (!$mapInfo || !isset($mapInfo->uploaded)) {

View File

@ -115,7 +115,7 @@ class MapQueue implements CallbackListener, CommandListener, UsageInformationAbl
*
* @param Player $admin |null
*/
public function clearMapQueue(Player $admin = null) {
public function clearMapQueue(?Player $admin = null) {
if ($admin && !$this->maniaControl->getAuthenticationManager()->checkPermission($admin, self::SETTING_PERMISSION_CLEAR_MAPQUEUE)) {
$this->maniaControl->getAuthenticationManager()->sendNotAllowed($admin);
return;

View File

@ -68,7 +68,7 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
*
* @param Player $player
*/
public function checkPluginsUpdate(Player $player = null) {
public function checkPluginsUpdate(?Player $player = null) {
$message = 'Checking Plugins for newer Versions...';
if ($player) {
$this->maniaControl->getChat()->sendInformation($message, $player);
@ -165,7 +165,7 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
*
* @param Player $player
*/
public function performPluginsUpdate(Player $player = null) {
public function performPluginsUpdate(?Player $player = null) {
$pluginsUpdates = $this->getPluginsUpdates();
if (empty($pluginsUpdates)) {
$message = 'There are no Plugin Updates available!';
@ -241,7 +241,7 @@ class PluginUpdateManager implements CallbackListener, CommandListener, TimerLis
* @param Player $player
* @param bool $update
*/
private function installPlugin(PluginUpdateData $pluginUpdateData, Player $player = null, $update = false) {
private function installPlugin(PluginUpdateData $pluginUpdateData, ?Player $player = null, $update = false) {
if ($player && !$this->maniaControl->getAuthenticationManager()->checkPermission($player, InstallMenu::SETTING_PERMISSION_INSTALL_PLUGINS))
{
$this->maniaControl->getAuthenticationManager()->sendNotAllowed($player);

View File

@ -130,7 +130,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
*
* @param UpdateData $coreUpdateData
*/
public function setCoreUpdateData(UpdateData $coreUpdateData = null) {
public function setCoreUpdateData(?UpdateData $coreUpdateData = null) {
$this->coreUpdateData = $coreUpdateData;
}
@ -189,7 +189,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
*
* @param UpdateData $updateData
*/
public function handleUpdateCheck(UpdateData $updateData = null) {
public function handleUpdateCheck(?UpdateData $updateData = null) {
if (!$this->checkUpdateData($updateData)) {
// No new update available
return;
@ -218,7 +218,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
* @param UpdateData $updateData
* @return bool
*/
public function checkUpdateData(UpdateData $updateData = null) {
public function checkUpdateData(?UpdateData $updateData = null) {
if (!$updateData || !$updateData->url) {
// Data corrupted
return false;
@ -268,7 +268,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
* @param UpdateData $updateData
* @return bool
*/
public function checkUpdateDataBuildVersion(UpdateData $updateData = null) {
public function checkUpdateDataBuildVersion(?UpdateData $updateData = null) {
if (!$updateData) {
// Data corrupted
return false;
@ -310,7 +310,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
* @param Player $player
* @return bool
*/
public function performCoreUpdate(Player $player = null) {
public function performCoreUpdate(?Player $player = null) {
if (!$this->coreUpdateData) {
$message = 'Update failed: No update Data available!';
if ($player) {
@ -490,7 +490,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
return;
}
$this->checkCoreUpdateAsync(function (UpdateData $updateData = null) use (&$player) {
$this->checkCoreUpdateAsync(function (?UpdateData $updateData = null) use (&$player) {
if (!$this->checkUpdateData($updateData)) {
$this->maniaControl->getChat()->sendInformation('No Update available!', $player);
return;
@ -563,7 +563,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener,
* @param null $player
*/
private function checkAndHandleCoreUpdate($player = null) {
$this->checkCoreUpdateAsync(function (UpdateData $updateData = null) use (&$player) {
$this->checkCoreUpdateAsync(function (?UpdateData $updateData = null) use (&$player) {
if (!$updateData) {
if ($player) {
$this->maniaControl->getChat()->sendError('Update is currently not possible!', $player);

View File

@ -107,6 +107,16 @@ class SystemUtil {
Logger::log($message . 'FOUND!');
}
// Check for Xml
$message = 'Checking for installed xml ... ';
if (!extension_loaded('SimpleXML')) {
Logger::log($message . 'NOT FOUND!');
Logger::log(" -- You don't have xml installed! Check: https://www.php.net/manual/en/xml.setup.php");
$success = false;
} else {
Logger::log($message . 'FOUND!');
}
if (!$success) {
// Missing requirements
self::quit();

View File

@ -22,7 +22,7 @@ abstract class WebReader {
* @param callable $function
* @return Response
*/
public static function getUrl($url, callable $function = null) {
public static function getUrl($url, ?callable $function = null) {
$request = static::newRequest($url);
$response = $request->send();
if ($function) {
@ -73,7 +73,7 @@ abstract class WebReader {
* @param callable $function
* @return Response
*/
public static function postUrl($url, $content = null, callable $function = null) {
public static function postUrl($url, $content = null, ?callable $function = null) {
$request = static::newRequest($url);
$request->getOptions()->set(CURLOPT_POST, true); // post method
if ($content) {