jukebox settings
This commit is contained in:
parent
8752864ad0
commit
da2aa3f17d
@ -15,6 +15,8 @@ class Jukebox implements CallbackListener {
|
|||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
const CB_JUKEBOX_CHANGED = 'Jukebox.JukeBoxChanged';
|
const CB_JUKEBOX_CHANGED = 'Jukebox.JukeBoxChanged';
|
||||||
|
const SETTING_SKIP_MAP_ON_LEAVE = 'Skip Map when the requester leaves';
|
||||||
|
const SETTING_SKIP_JUKED_ADMIN = 'Skip Map when admin leaves';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private properties
|
* Private properties
|
||||||
@ -33,6 +35,9 @@ class Jukebox implements CallbackListener {
|
|||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_BEGINMAP, $this,'beginMap');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_BEGINMAP, $this,'beginMap');
|
||||||
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ENDMAP, $this,'endMap');
|
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ENDMAP, $this,'endMap');
|
||||||
|
|
||||||
|
// Init settings
|
||||||
|
$this->maniaControl->settingManager->initSetting($this, self::SETTING_SKIP_MAP_ON_LEAVE, true);
|
||||||
|
$this->maniaControl->settingManager->initSetting($this, self::SETTING_SKIP_JUKED_ADMIN, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,7 +55,7 @@ class Jukebox implements CallbackListener {
|
|||||||
|
|
||||||
//TODO recently maps not able to add to jukebox setting, and management
|
//TODO recently maps not able to add to jukebox setting, and management
|
||||||
|
|
||||||
//$this->jukedMapsUid[$uid] = array($login, $this->maniaControl->mapManager->getMapByUid($uid));
|
|
||||||
$this->jukedMaps[$uid] = array($login, $this->maniaControl->mapManager->getMapByUid($uid));
|
$this->jukedMaps[$uid] = array($login, $this->maniaControl->mapManager->getMapByUid($uid));
|
||||||
|
|
||||||
//TODO Message
|
//TODO Message
|
||||||
@ -58,7 +63,6 @@ class Jukebox implements CallbackListener {
|
|||||||
// Trigger callback
|
// Trigger callback
|
||||||
$this->maniaControl->callbackManager->triggerCallback(self::CB_JUKEBOX_CHANGED, array('add', $this->jukedMaps[$uid]));
|
$this->maniaControl->callbackManager->triggerCallback(self::CB_JUKEBOX_CHANGED, array('add', $this->jukedMaps[$uid]));
|
||||||
|
|
||||||
$this->printAllMaps();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,11 +82,14 @@ class Jukebox implements CallbackListener {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function endMap(){
|
|
||||||
|
|
||||||
//TODO setting admin no skip
|
/**
|
||||||
//TODO setting skip map if requester left
|
* Called on endmap
|
||||||
|
* @param array $callback
|
||||||
|
*/
|
||||||
|
public function endMap(array $callback){
|
||||||
|
|
||||||
|
if($this->maniaControl->settingManager->getSetting($this, self::SETTING_SKIP_MAP_ON_LEAVE) == TRUE){
|
||||||
//Skip Map if requester has left
|
//Skip Map if requester has left
|
||||||
for($i = 0; $i < count($this->jukedMaps); $i++){
|
for($i = 0; $i < count($this->jukedMaps); $i++){
|
||||||
$jukedMap = reset($this->jukedMaps);
|
$jukedMap = reset($this->jukedMaps);
|
||||||
@ -92,6 +99,11 @@ class Jukebox implements CallbackListener {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($this->maniaControl->settingManager->getSetting($this, self::SETTING_SKIP_JUKED_ADMIN) == FALSE){
|
||||||
|
//TODO check in database if a the juker of the map is admin, and if he is, just break
|
||||||
|
}
|
||||||
|
|
||||||
// Trigger callback
|
// Trigger callback
|
||||||
$this->maniaControl->callbackManager->triggerCallback(self::CB_JUKEBOX_CHANGED, array('skip', $jukedMap[0]));
|
$this->maniaControl->callbackManager->triggerCallback(self::CB_JUKEBOX_CHANGED, array('skip', $jukedMap[0]));
|
||||||
|
|
||||||
@ -100,7 +112,7 @@ class Jukebox implements CallbackListener {
|
|||||||
|
|
||||||
//TODO Message, report skip
|
//TODO Message, report skip
|
||||||
}
|
}
|
||||||
|
}
|
||||||
$nextMap = array_shift($this->jukedMaps);
|
$nextMap = array_shift($this->jukedMaps);
|
||||||
|
|
||||||
//Check if Jukebox is empty
|
//Check if Jukebox is empty
|
||||||
@ -109,8 +121,6 @@ class Jukebox implements CallbackListener {
|
|||||||
|
|
||||||
$nextMap = $nextMap[1];
|
$nextMap = $nextMap[1];
|
||||||
|
|
||||||
//Set pointer back to last map
|
|
||||||
//end($this->jukedMaps);
|
|
||||||
|
|
||||||
$success = $this->maniaControl->client->query('ChooseNextMap', $nextMap->fileName);
|
$success = $this->maniaControl->client->query('ChooseNextMap', $nextMap->fileName);
|
||||||
if (!$success) {
|
if (!$success) {
|
||||||
@ -135,6 +145,9 @@ class Jukebox implements CallbackListener {
|
|||||||
return $jukedMaps;
|
return $jukedMaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dummy Function for testing
|
||||||
|
*/
|
||||||
public function printAllMaps(){
|
public function printAllMaps(){
|
||||||
foreach($this->jukedMaps as $map){
|
foreach($this->jukedMaps as $map){
|
||||||
$map = $map[1];
|
$map = $map[1];
|
||||||
|
Loading…
Reference in New Issue
Block a user