From cebdb050278f4d66cea62b4954cfda9f9dd2c6f0 Mon Sep 17 00:00:00 2001 From: kremsy Date: Thu, 9 Mar 2017 21:02:03 +0100 Subject: [PATCH] fixes for mysql 5.7 support --- core/Configurator/ScriptSettings.php | 27 ++++++++++++++++++++++----- core/ManiaControl.php | 2 +- core/Players/PlayerManager.php | 27 +++++++++++++++++++++++++-- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/core/Configurator/ScriptSettings.php b/core/Configurator/ScriptSettings.php index 78f82818..6dbd0115 100644 --- a/core/Configurator/ScriptSettings.php +++ b/core/Configurator/ScriptSettings.php @@ -81,8 +81,8 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_SCRIPT_SETTINGS . "` ( `index` int(11) NOT NULL AUTO_INCREMENT, `serverIndex` int(11) NOT NULL, - `settingName` varchar(100) NOT NULL, - `settingValue` varchar(500) NOT NULL, + `settingName` varchar(100) NOT NULL DEFAULT '', + `settingValue` varchar(500) NOT NULL DEFAULT '', PRIMARY KEY (`index`), UNIQUE KEY `setting` (`serverIndex`, `settingName`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Script Settings' AUTO_INCREMENT=1;"; @@ -97,12 +97,29 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio trigger_error($statement->error, E_USER_ERROR); return false; } + + //TODO remove later again (added in v0.165) + //For Mysql 5.7 add Default Values + $alterQuery = "ALTER TABLE `" . self::TABLE_SCRIPT_SETTINGS . "` CHANGE settingName settingName varchar(100) DEFAULT ''"; + $result = $mysqli->query($alterQuery); + if (!$result) { + trigger_error($mysqli->error); + return false; + } + + $alterQuery = "ALTER TABLE `" . self::TABLE_SCRIPT_SETTINGS . "` CHANGE settingValue settingValue varchar(500) DEFAULT ''"; + $result = $mysqli->query($alterQuery); + if (!$result) { + trigger_error($mysqli->error); + return false; + } + $statement->close(); return true; } /** - * @see \ManiaControl\Configurators\ConfiguratorMenu::getTitle() + * @see \ManiaControl\Configurator\ConfiguratorMenu::getTitle() */ public static function getTitle() { return 'Script Settings'; @@ -163,7 +180,7 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio } /** - * @see \ManiaControl\Configurators\ConfiguratorMenu::getMenu() + * @see \ManiaControl\Configurator\ConfiguratorMenu::getMenu() */ public function getMenu($width, $height, Script $script, Player $player) { $paging = new Paging(); @@ -286,7 +303,7 @@ class ScriptSettings implements ConfiguratorMenu, CallbackListener, Communicatio } /** - * @see \ManiaControl\Configurators\ConfiguratorMenu::saveConfigData() + * @see \ManiaControl\Configurator\ConfiguratorMenu::saveConfigData() */ public function saveConfigData(array $configData, Player $player) { if (!$this->maniaControl->getAuthenticationManager()->checkPermission($player, self::SETTING_PERMISSION_CHANGE_SCRIPT_SETTINGS)) { diff --git a/core/ManiaControl.php b/core/ManiaControl.php index c6c27968..3a718f0f 100644 --- a/core/ManiaControl.php +++ b/core/ManiaControl.php @@ -47,7 +47,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener, /* * Constants */ - const VERSION = '0.164'; + const VERSION = '0.165'; const API_VERSION = '2013-04-16'; const MIN_DEDIVERSION = '2014-04-02_18_00'; const SCRIPT_TIMEOUT = 10; diff --git a/core/Players/PlayerManager.php b/core/Players/PlayerManager.php index 39cf8cdc..82277dde 100644 --- a/core/Players/PlayerManager.php +++ b/core/Players/PlayerManager.php @@ -144,6 +144,30 @@ class PlayerManager implements CallbackListener, TimerListener, CommunicationLis $playerTableStatement->close(); return false; } + + //TODO remove later again (added in v0.165) + //For Mysql 5.7 add Default Values + $alterQuery = "ALTER TABLE `" . self::TABLE_PLAYERS . "` CHANGE nickname nickname varchar(150) DEFAULT ''"; + $result = $mysqli->query($alterQuery); + if (!$result) { + trigger_error($mysqli->error); + return false; + } + + $alterQuery = "ALTER TABLE `" . self::TABLE_PLAYERS . "` CHANGE path path varchar(100) DEFAULT ''"; + $result = $mysqli->query($alterQuery); + if (!$result) { + trigger_error($mysqli->error); + return false; + } + + $alterQuery = "ALTER TABLE `" . self::TABLE_PLAYERS . "` CHANGE authLevel authLevel int(11) DEFAULT 0"; + $result = $mysqli->query($alterQuery); + if (!$result) { + trigger_error($mysqli->error); + return false; + } + $playerTableStatement->close(); return true; } @@ -444,8 +468,7 @@ class PlayerManager implements CallbackListener, TimerListener, CommunicationLis //Check if Player finished joining the game if ($player->hasJoinedGame && !$prevJoinState) { - if (!$player->isSpectator && $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_JOIN_LEAVE_MESSAGES) && !$player->isFakePlayer() - ) { + if (!$player->isSpectator && $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_JOIN_LEAVE_MESSAGES) && !$player->isFakePlayer()) { $string = array(0 => '$0f0Player', 1 => '$0f0Moderator', 2 => '$0f0Admin', 3 => '$0f0SuperAdmin', 4 => '$0f0MasterAdmin'); $chatMessage = '$0f0' . $string[$player->authLevel] . ' $<$fff' . $player->nickname . '$> Nation: $<$fff' . $player->getCountry() . '$> joined!'; $this->maniaControl->getChat()->sendChat($chatMessage);