Compare commits
3 Commits
214a22e5e8
...
6a4ca89adb
Author | SHA1 | Date | |
---|---|---|---|
6a4ca89adb | |||
f1598ac8b5 | |||
fbbc3d03e2 |
@ -3,6 +3,7 @@
|
|||||||
namespace Beu;
|
namespace Beu;
|
||||||
|
|
||||||
use ManiaControl\Commands\CommandListener;
|
use ManiaControl\Commands\CommandListener;
|
||||||
|
use ManiaControl\Logger;
|
||||||
use ManiaControl\Players\Player;
|
use ManiaControl\Players\Player;
|
||||||
use ManiaControl\Players\PlayerManager;
|
use ManiaControl\Players\PlayerManager;
|
||||||
use ManiaControl\Plugins\Plugin;
|
use ManiaControl\Plugins\Plugin;
|
||||||
@ -19,7 +20,7 @@ class GuestlistManager implements CommandListener, Plugin {
|
|||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
const PLUGIN_ID = 154;
|
const PLUGIN_ID = 154;
|
||||||
const PLUGIN_VERSION = 1.1;
|
const PLUGIN_VERSION = 1.2;
|
||||||
const PLUGIN_NAME = 'Guestlist Manager';
|
const PLUGIN_NAME = 'Guestlist Manager';
|
||||||
const PLUGIN_AUTHOR = 'Beu';
|
const PLUGIN_AUTHOR = 'Beu';
|
||||||
|
|
||||||
@ -85,7 +86,10 @@ class GuestlistManager implements CommandListener, Plugin {
|
|||||||
$this->maniaControl->getCommandManager()->registerCommandListener('loadgl', $this, 'doloadgl', true, 'Load the guestlist');
|
$this->maniaControl->getCommandManager()->registerCommandListener('loadgl', $this, 'doloadgl', true, 'Load the guestlist');
|
||||||
$this->maniaControl->getCommandManager()->registerCommandListener('cleangl', $this, 'docleangl', true, 'Clean the guestlist');
|
$this->maniaControl->getCommandManager()->registerCommandListener('cleangl', $this, 'docleangl', true, 'Clean the guestlist');
|
||||||
|
|
||||||
return true;
|
$guestlist = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_GUESTLIST_FILE);
|
||||||
|
if ($guestlist === "" || is_file($this->maniaControl->getServer()->getDirectory()->getUserDataFolder() . DIRECTORY_SEPARATOR . "Config" . DIRECTORY_SEPARATOR . $guestlist)) {
|
||||||
|
$this->maniaControl->getClient()->loadGuestList($guestlist);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -204,10 +208,33 @@ class GuestlistManager implements CommandListener, Plugin {
|
|||||||
* @param \ManiaControl\Players\Player $player
|
* @param \ManiaControl\Players\Player $player
|
||||||
*/
|
*/
|
||||||
public function dosavegl(Array $chat, Player $player) {
|
public function dosavegl(Array $chat, Player $player) {
|
||||||
// impossible to save on a other file, idk why
|
try {
|
||||||
$guestlist = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_GUESTLIST_FILE);
|
$guestlist = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_GUESTLIST_FILE);
|
||||||
$this->maniaControl->getClient()->saveGuestList($guestlist);
|
|
||||||
$this->maniaControl->getChat()->sendSuccess( "Guestlist saved!" , $player);
|
if ($guestlist !== "") {
|
||||||
|
$filepath = $this->maniaControl->getServer()->getDirectory()->getUserDataFolder() . DIRECTORY_SEPARATOR . "Config" . DIRECTORY_SEPARATOR . $guestlist;
|
||||||
|
|
||||||
|
if (!is_file($filepath)) {
|
||||||
|
file_put_contents($filepath, '<?xml version="1.0" encoding="utf-8" ?><guestlist></guestlist>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Workaround when the file was never loaded by the server
|
||||||
|
$currentguestlist = $this->maniaControl->getClient()->getGuestList();
|
||||||
|
$this->maniaControl->getClient()->loadGuestList($guestlist);
|
||||||
|
|
||||||
|
$this->maniaControl->getClient()->cleanGuestList();
|
||||||
|
foreach ($currentguestlist as $player) {
|
||||||
|
$this->maniaControl->getClient()->addGuest($player->login);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->maniaControl->getClient()->saveGuestList($guestlist);
|
||||||
|
|
||||||
|
$this->maniaControl->getChat()->sendSuccess( "Guestlist saved!" , $player);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Logger::logError("Impossible to save guestlist: " . $e->getMessage());
|
||||||
|
$this->maniaControl->getChat()->sendError("Impossible to save guestlist: " . $e->getMessage(), $player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +37,7 @@ use ManiaControl\Callbacks\TimerListener; // for pause
|
|||||||
class MatchManagerCore implements CallbackListener, CommandListener, TimerListener, CommunicationListener, Plugin {
|
class MatchManagerCore implements CallbackListener, CommandListener, TimerListener, CommunicationListener, Plugin {
|
||||||
|
|
||||||
const PLUGIN_ID = 152;
|
const PLUGIN_ID = 152;
|
||||||
const PLUGIN_VERSION = 4.2;
|
const PLUGIN_VERSION = 4.3;
|
||||||
const PLUGIN_NAME = 'MatchManager Core';
|
const PLUGIN_NAME = 'MatchManager Core';
|
||||||
const PLUGIN_AUTHOR = 'Beu';
|
const PLUGIN_AUTHOR = 'Beu';
|
||||||
|
|
||||||
@ -510,13 +510,10 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen
|
|||||||
|
|
||||||
// Update table data
|
// Update table data
|
||||||
$mysqliconfig = $this->maniaControl->getDatabase()->getConfig();
|
$mysqliconfig = $this->maniaControl->getDatabase()->getConfig();
|
||||||
$query = 'IF NOT EXISTS( SELECT NULL
|
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE `table_name` = "' . self::DB_ROUNDSDATA . '"
|
|
||||||
AND `table_schema` = "' . $mysqliconfig->name . '"
|
|
||||||
AND `column_name` = "mappoints") THEN
|
|
||||||
|
|
||||||
ALTER TABLE `' . self::DB_ROUNDSDATA . '`
|
$query = 'SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE `table_schema` = "' . $mysqliconfig->name . '" AND `table_name` = "' . self::DB_ROUNDSDATA . '" AND `column_name` = "mappoints";';
|
||||||
|
if ($mysqli->query($query)->num_rows === 0) {
|
||||||
|
$query = 'ALTER TABLE `' . self::DB_ROUNDSDATA . '`
|
||||||
ADD COLUMN `mappoints` INT(10) NOT NULL AFTER `matchpoints`,
|
ADD COLUMN `mappoints` INT(10) NOT NULL AFTER `matchpoints`,
|
||||||
CHANGE `time` `bestracetime` INT(10) NOT NULL,
|
CHANGE `time` `bestracetime` INT(10) NOT NULL,
|
||||||
ADD COLUMN `bestracecheckpoints` VARCHAR(1000) NOT NULL AFTER `bestracetime`,
|
ADD COLUMN `bestracecheckpoints` VARCHAR(1000) NOT NULL AFTER `bestracetime`,
|
||||||
@ -524,31 +521,31 @@ class MatchManagerCore implements CallbackListener, CommandListener, TimerListen
|
|||||||
ADD COLUMN `bestlapcheckpoints` VARCHAR(1000) NOT NULL AFTER `bestlaptime`,
|
ADD COLUMN `bestlapcheckpoints` VARCHAR(1000) NOT NULL AFTER `bestlaptime`,
|
||||||
ADD COLUMN `prevracetime` INT(10) NOT NULL AFTER `bestlapcheckpoints`,
|
ADD COLUMN `prevracetime` INT(10) NOT NULL AFTER `bestlapcheckpoints`,
|
||||||
ADD COLUMN `prevracecheckpoints` VARCHAR(1000) NOT NULL AFTER `prevracetime`,
|
ADD COLUMN `prevracecheckpoints` VARCHAR(1000) NOT NULL AFTER `prevracetime`,
|
||||||
MODIFY `teamid` INT(3) NOT NULL;
|
MODIFY `teamid` INT(3) NOT NULL;';
|
||||||
ALTER TABLE `' . self::DB_TEAMSDATA . '`
|
$mysqli->query($query);
|
||||||
|
if ($mysqli->error) {
|
||||||
|
trigger_error($mysqli->error, E_USER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = 'ALTER TABLE `' . self::DB_TEAMSDATA . '`
|
||||||
ADD COLUMN `rank` INT(3) NOT NULL,
|
ADD COLUMN `rank` INT(3) NOT NULL,
|
||||||
MODIFY `id` INT(3) NOT NULL,
|
MODIFY `id` INT(3) NOT NULL,
|
||||||
CHANGE `points` `matchpoints` INT(10) NOT NULL,
|
CHANGE `points` `matchpoints` INT(10) NOT NULL,
|
||||||
ADD COLUMN `mappoints` INT(10) NOT NULL AFTER `matchpoints`,
|
ADD COLUMN `mappoints` INT(10) NOT NULL AFTER `matchpoints`,
|
||||||
ADD COLUMN `roundpoints` INT(10) NOT NULL AFTER `mappoints`;
|
ADD COLUMN `roundpoints` INT(10) NOT NULL AFTER `mappoints`;';
|
||||||
END IF;';
|
$mysqli->query($query);
|
||||||
$mysqli->query($query);
|
if ($mysqli->error) {
|
||||||
if ($mysqli->error) {
|
trigger_error($mysqli->error, E_USER_ERROR);
|
||||||
trigger_error($mysqli->error, E_USER_ERROR);
|
}
|
||||||
}
|
}
|
||||||
$query = 'IF NOT EXISTS( SELECT NULL
|
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE `table_name` = "' . self::DB_ROUNDSDATA . '"
|
|
||||||
AND `table_schema` = "' . $mysqliconfig->name . '"
|
|
||||||
AND `column_name` = "login"
|
|
||||||
AND `CHARACTER_MAXIMUM_LENGTH` = 36) THEN
|
|
||||||
|
|
||||||
ALTER TABLE `' . self::DB_ROUNDSDATA . '`
|
$query = 'SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE `table_schema` = "' . $mysqliconfig->name . '" AND `table_name` = "' . self::DB_ROUNDSDATA . '" AND `column_name` = "login" AND `CHARACTER_MAXIMUM_LENGTH` = 36;';
|
||||||
MODIFY `login` VARCHAR(36) NOT NULL;
|
if ($mysqli->query($query)->num_rows === 0) {
|
||||||
END IF;';
|
$query = 'ALTER TABLE `' . self::DB_ROUNDSDATA . '` MODIFY `login` VARCHAR(36) NOT NULL;';
|
||||||
$mysqli->query($query);
|
$mysqli->query($query);
|
||||||
if ($mysqli->error) {
|
if ($mysqli->error) {
|
||||||
trigger_error($mysqli->error, E_USER_ERROR);
|
trigger_error($mysqli->error, E_USER_ERROR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user