Added readmaplist and writemaplist commands
This commit is contained in:
parent
98676257a4
commit
9c4a1c27ea
@ -12,6 +12,7 @@ use ManiaControl\Manialinks\IconManager;
|
||||
use ManiaControl\Manialinks\ManialinkPageAnswerListener;
|
||||
use ManiaControl\Players\Player;
|
||||
use Maniaplanet\DedicatedServer\Xmlrpc\ChangeInProgressException;
|
||||
use Maniaplanet\DedicatedServer\Xmlrpc\FaultException;
|
||||
|
||||
/**
|
||||
* Class offering Commands to manage Maps
|
||||
@ -50,6 +51,8 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb
|
||||
$this->maniaControl->commandManager->registerCommandListener(array('addmap', 'add'), $this, 'command_AddMap', true);
|
||||
$this->maniaControl->commandManager->registerCommandListener(array('removemap', 'removethis', 'erasemap', 'erasethis'), $this, 'command_RemoveMap', true);
|
||||
$this->maniaControl->commandManager->registerCommandListener(array('shufflemaps', 'shuffle'), $this, 'command_ShuffleMaps', true);
|
||||
$this->maniaControl->commandManager->registerCommandListener(array('writemaplist', 'wml'), $this, 'command_WriteMapList', true);
|
||||
$this->maniaControl->commandManager->registerCommandListener(array('readmaplist', 'rml'), $this, 'command_ReadMapList', true);
|
||||
|
||||
// Register for player chat commands
|
||||
$this->maniaControl->commandManager->registerCommandListener('nextmap', $this, 'command_showNextMap');
|
||||
@ -235,6 +238,73 @@ class MapCommands implements CommandListener, ManialinkPageAnswerListener, Callb
|
||||
$this->maniaControl->mapManager->mapQueue->addFirstMapToMapQueue($player, $this->maniaControl->mapManager->getCurrentMap());
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle writemaplist command
|
||||
*
|
||||
* @param array $chat
|
||||
* @param \ManiaControl\Players\Player $player
|
||||
*/
|
||||
public function command_WriteMapList(array $chat, Player $player) {
|
||||
if (!$this->maniaControl->authenticationManager->checkRight($player, 3)) {
|
||||
$this->maniaControl->authenticationManager->sendNotAllowed($player);
|
||||
return;
|
||||
}
|
||||
|
||||
$chatCommand = explode(' ', $chat[1][2]);
|
||||
if(isset($chatCommand[1])) {
|
||||
if(strstr($chatCommand[1], '.txt')) {
|
||||
$maplist = $chatCommand[1];
|
||||
} else {
|
||||
$maplist = $chatCommand.'.txt';
|
||||
}
|
||||
} else {
|
||||
$maplist = 'maplist.txt';
|
||||
}
|
||||
|
||||
$maplist = 'MatchSettings/'.$maplist;
|
||||
$this->maniaControl->client->saveMatchSettings($maplist);
|
||||
|
||||
$message = 'Maplist $<$fff'.$maplist.'$> written.';
|
||||
$this->maniaControl->chat->sendSuccess($message, $player);
|
||||
$this->maniaControl->log($message, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle readmaplist command
|
||||
*
|
||||
* @param array $chat
|
||||
* @param \ManiaControl\Players\Player $player
|
||||
*/
|
||||
public function command_ReadMapList(array $chat, Player $player) {
|
||||
if (!$this->maniaControl->authenticationManager->checkRight($player, 3)) {
|
||||
$this->maniaControl->authenticationManager->sendNotAllowed($player);
|
||||
return;
|
||||
}
|
||||
|
||||
$chatCommand = explode(' ', $chat[1][2]);
|
||||
if(isset($chatCommand[1])) {
|
||||
if(strstr($chatCommand[1], '.txt')) {
|
||||
$maplist = $chatCommand[1];
|
||||
} else {
|
||||
$maplist = $chatCommand[1].'.txt';
|
||||
}
|
||||
} else {
|
||||
$maplist = 'maplist.txt';
|
||||
}
|
||||
|
||||
$maplist = 'MatchSettings/'.$maplist;
|
||||
try {
|
||||
$this->maniaControl->client->loadMatchSettings($maplist);
|
||||
|
||||
$message = 'Maplist $<$fff'.$maplist.'$> loaded.';
|
||||
$this->maniaControl->mapManager->restructureMapList();
|
||||
$this->maniaControl->chat->sendSuccess($message, $player);
|
||||
$this->maniaControl->log($message, true);
|
||||
} catch(FaultException $e) {
|
||||
$this->maniaControl->chat->sendError('Cannot load maplist $<$fff'.$maplist.'$>!', $player);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle /maps command
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user