reformat code in plugins

This commit is contained in:
kremsy 2014-08-13 11:14:29 +02:00
parent 22915bb934
commit 13924f7d8a
10 changed files with 850 additions and 1477 deletions

View File

@ -80,43 +80,25 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
// Chat commands // Chat commands
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('me', $this, 'chat_me', false, 'Can be used to express your feelings/ideas.');
->registerCommandListener('me', $this, 'chat_me', false, 'Can be used to express your feelings/ideas.'); $this->maniaControl->getCommandManager()->registerCommandListener('hi', $this, 'chat_hi', false, 'Writes an hello message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('bb', 'bye'), $this, 'chat_bye', false, 'Writes a goodbye message to the chat.');
->registerCommandListener('hi', $this, 'chat_hi', false, 'Writes an hello message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('thx', $this, 'chat_thx', false, 'Writes a thanks message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('gg', $this, 'chat_gg', false, 'Writes a good game message to the chat.');
->registerCommandListener(array('bb', 'bye'), $this, 'chat_bye', false, 'Writes a goodbye message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('gl', $this, 'chat_gl', false, 'Writes a good luck message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('hf', $this, 'chat_hf', false, 'Writes an have fun message to the chat.');
->registerCommandListener('thx', $this, 'chat_thx', false, 'Writes a thanks message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('glhf', $this, 'chat_glhf', false, 'Writes a good luck, have fun message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('ns', $this, 'chat_ns', false, 'Writes a nice shot message to the chat.');
->registerCommandListener('gg', $this, 'chat_gg', false, 'Writes a good game message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('n1', $this, 'chat_n1', false, 'Writes a nice one message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('lol', $this, 'chat_lol', false, 'Writes a lol message to the chat.');
->registerCommandListener('gl', $this, 'chat_gl', false, 'Writes a good luck message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('lool', $this, 'chat_lool', false, 'Writes a lool message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('brb', $this, 'chat_brb', false, 'Writes a be right back message to the chat.');
->registerCommandListener('hf', $this, 'chat_hf', false, 'Writes an have fun message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener('bgm', $this, 'chat_bgm', false, 'Writes a bad game for me message to the chat.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('afk', $this, 'chat_afk', false, 'Writes an away from keyboard message to the chat.');
->registerCommandListener('glhf', $this, 'chat_glhf', false, 'Writes a good luck, have fun message to the chat.'); $this->maniaControl->getCommandManager()->registerCommandListener(array('bm', 'bootme'), $this, 'chat_bootme', false, 'Gets you away from this server quickly!');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('rq', 'ragequit'), $this, 'chat_ragequit', false, 'Gets you away from this server in rage!');
->registerCommandListener('ns', $this, 'chat_ns', false, 'Writes a nice shot message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('n1', $this, 'chat_n1', false, 'Writes a nice one message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('lol', $this, 'chat_lol', false, 'Writes a lol message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('lool', $this, 'chat_lool', false, 'Writes a lool message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('brb', $this, 'chat_brb', false, 'Writes a be right back message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('bgm', $this, 'chat_bgm', false, 'Writes a bad game for me message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener('afk', $this, 'chat_afk', false, 'Writes an away from keyboard message to the chat.');
$this->maniaControl->getCommandManager()
->registerCommandListener(array('bm', 'bootme'), $this, 'chat_bootme', false, 'Gets you away from this server quickly!');
$this->maniaControl->getCommandManager()
->registerCommandListener(array('rq', 'ragequit'), $this, 'chat_ragequit', false, 'Gets you away from this server in rage!');
//TODO block command listener for muted people //TODO block command listener for muted people
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_AFK_FORCE_SPEC, true);
->initSetting($this, self::SETTING_AFK_FORCE_SPEC, true);
return true; return true;
} }
@ -137,8 +119,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$message = substr($chat[1][2], 4); $message = substr($chat[1][2], 4);
$msg = '$<' . $player->nickname . '$>$s$i$fa0 ' . $message; $msg = '$<' . $player->nickname . '$>$s$i$fa0 ' . $message;
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -155,8 +136,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
} else { } else {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iHello All!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iHello All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -168,8 +148,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
private function getTarget($login) { private function getTarget($login) {
$player = null; $player = null;
foreach ($this->maniaControl->getPlayerManager() foreach ($this->maniaControl->getPlayerManager()->getPlayers() as $player) {
->getPlayers() as $player) {
if ($login == $player || $login == $player->login || $login == $player->pid || $login == $player->nickname) { if ($login == $player || $login == $player->login || $login == $player->pid || $login == $player->nickname) {
return $player->nickname; return $player->nickname;
} }
@ -198,8 +177,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iI have to go... Bye All!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iI have to go... Bye All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -217,8 +195,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iThanks All!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iThanks All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -236,8 +213,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[' . $player->getEscapedNickname() . '] $ff0$iGood Game All!'; $msg = '$ff0[' . $player->getEscapedNickname() . '] $ff0$iGood Game All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -255,8 +231,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iGood Luck All!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iGood Luck All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -274,8 +249,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[' . $player->getEscapedNickname() . '] $ff0$iHave Fun All!'; $msg = '$ff0[' . $player->getEscapedNickname() . '] $ff0$iHave Fun All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -293,8 +267,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iGood Luck and Have Fun All!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iGood Luck and Have Fun All!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -312,8 +285,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iNice Shot!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iNice Shot!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -331,8 +303,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iNice One!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iNice One!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -343,8 +314,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_lol(array $chat, Player $player) { public function chat_lol(array $chat, Player $player) {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iLoL!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iLoL!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -355,8 +325,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_lool(array $chat, Player $player) { public function chat_lool(array $chat, Player $player) {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iLooOOooL!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iLooOOooL!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -367,8 +336,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_brb(array $chat, Player $player) { public function chat_brb(array $chat, Player $player) {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iBe Right Back!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iBe Right Back!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -379,8 +347,7 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_bgm(array $chat, Player $player) { public function chat_bgm(array $chat, Player $player) {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iBad Game for me :('; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iBad Game for me :(';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
} }
/** /**
@ -391,16 +358,13 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_bootme(array $chat, Player $player) { public function chat_bootme(array $chat, Player $player) {
$msg = '$i$ff0 $<' . $player->nickname . '$>$s$39f chooses to boot back to the real world!'; $msg = '$i$ff0 $<' . $player->nickname . '$>$s$39f chooses to boot back to the real world!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, true);
->sendChat($msg, null, true);
$message = '$39F Thanks for Playing, see you around!$z'; $message = '$39F Thanks for Playing, see you around!$z';
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->kick($player->login, $message);
->kick($player->login, $message);
} catch (UnknownPlayerException $exception) { } catch (UnknownPlayerException $exception) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendException($exception, $player);
->sendException($exception, $player);
} }
} }
@ -413,14 +377,11 @@ class ChatMessagePlugin implements CommandListener, Plugin {
public function chat_ragequit(array $chat, Player $player) { public function chat_ragequit(array $chat, Player $player) {
try { try {
$message = '$39F Thanks for Playing, please come back soon!$z '; $message = '$39F Thanks for Playing, please come back soon!$z ';
$this->maniaControl->getClient() $this->maniaControl->getClient()->kick($player->login, $message);
->kick($player->login, $message);
$msg = '$i$ff0 $<' . $player->nickname . '$>$s$f00 said: "@"#!" and ragequitted!'; $msg = '$i$ff0 $<' . $player->nickname . '$>$s$f00 said: "@"#!" and ragequitted!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, true);
->sendChat($msg, null, true);
} catch (UnknownPlayerException $e) { } catch (UnknownPlayerException $e) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Error occurred: ' . $e->getMessage(), $player);
->sendError('Error occurred: ' . $e->getMessage(), $player);
} }
} }
@ -432,11 +393,9 @@ class ChatMessagePlugin implements CommandListener, Plugin {
*/ */
public function chat_afk(array $chat, Player $player) { public function chat_afk(array $chat, Player $player) {
$msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iAway From Keyboard!'; $msg = '$ff0[$<' . $player->nickname . '$>] $ff0$iAway From Keyboard!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($msg, null, false);
->sendChat($msg, null, false);
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_AFK_FORCE_SPEC)
->getSettingValue($this, self::SETTING_AFK_FORCE_SPEC)
) { ) {
return; return;
} }
@ -446,14 +405,11 @@ class ChatMessagePlugin implements CommandListener, Plugin {
try { try {
// Force into spec // Force into spec
$this->maniaControl->getClient() $this->maniaControl->getClient()->forceSpectator($player->login, 3);
->forceSpectator($player->login, 3);
// Free player slot // Free player slot
$this->maniaControl->getClient() $this->maniaControl->getClient()->spectatorReleasePlayerSlot($player->login);
->spectatorReleasePlayerSlot($player->login);
} catch (UnknownPlayerException $exception) { } catch (UnknownPlayerException $exception) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendException($exception, $player);
->sendException($exception, $player);
} catch (PlayerStateException $exception) { } catch (PlayerStateException $exception) {
} }
} }

View File

@ -133,76 +133,48 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
// Commands // Commands
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('vote', $this, 'chat_vote', false, 'Starts a new vote.');
->registerCommandListener('vote', $this, 'chat_vote', false, 'Starts a new vote.');
// Callbacks // Callbacks
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->registerManialinkPageAnswerListener(self::ACTION_POSITIVE_VOTE, $this, 'handlePositiveVote');
->registerManialinkPageAnswerListener(self::ACTION_POSITIVE_VOTE, $this, 'handlePositiveVote'); $this->maniaControl->getManialinkManager()->registerManialinkPageAnswerListener(self::ACTION_NEGATIVE_VOTE, $this, 'handleNegativeVote');
$this->maniaControl->getManialinkManager() $this->maniaControl->getTimerManager()->registerTimerListening($this, 'handle1Second', 1000);
->registerManialinkPageAnswerListener(self::ACTION_NEGATIVE_VOTE, $this, 'handleNegativeVote'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Commands::CB_VOTE_CANCELLED, $this, 'handleVoteCancelled');
$this->maniaControl->getTimerManager()
->registerTimerListening($this, 'handle1Second', 1000);
$this->maniaControl->getCallbackManager()
->registerCallbackListener(Commands::CB_VOTE_CANCELLED, $this, 'handleVoteCancelled');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer'); $this->maniaControl->getCallbackManager()->registerCallbackListener(self::CB_CUSTOM_VOTE_FINISHED, $this, 'handleVoteFinished');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(self::CB_CUSTOM_VOTE_FINISHED, $this, 'handleVoteFinished'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Server::CB_TEAM_MODE_CHANGED, $this, 'constructMenu');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(Server::CB_TEAM_MODE_CHANGED, $this, 'constructMenu');
// Settings // Settings
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_VOTE_ICON_POSX, 156.);
->initSetting($this, self::SETTING_VOTE_ICON_POSX, 156.); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_VOTE_ICON_POSY, -38.6);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_VOTE_ICON_WIDTH, 6);
->initSetting($this, self::SETTING_VOTE_ICON_POSY, -38.6); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_VOTE_ICON_HEIGHT, 6);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_VOTE_ICON_WIDTH, 6);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_VOTE_ICON_HEIGHT, 6);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSX, -80); //160 -15
->initSetting($this, self::SETTING_WIDGET_POSX, -80); //160 -15 $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSY, 80); //-15
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 50); //30
->initSetting($this, self::SETTING_WIDGET_POSY, 80); //-15 $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_HEIGHT, 20); //25
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_WIDTH, 50); //30
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_HEIGHT, 20); //25
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DEFAULT_RATIO, 0.75);
->initSetting($this, self::SETTING_DEFAULT_RATIO, 0.75); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DEFAULT_PLAYER_RATIO, 0.65);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SPECTATOR_ALLOW_VOTE, false);
->initSetting($this, self::SETTING_DEFAULT_PLAYER_RATIO, 0.65); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SPECTATOR_ALLOW_START_VOTE, true);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_VOTE_TIME, 40);
->initSetting($this, self::SETTING_SPECTATOR_ALLOW_VOTE, false);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_SPECTATOR_ALLOW_START_VOTE, true);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_VOTE_TIME, 40);
//Define Votes //Define Votes
$this->defineVote("teambalance", "Vote for Team Balance"); $this->defineVote("teambalance", "Vote for Team Balance");
$this->defineVote("skipmap", "Vote for Skip Map") $this->defineVote("skipmap", "Vote for Skip Map")->setStopCallback(Callbacks::ENDMAP);
->setStopCallback(Callbacks::ENDMAP); $this->defineVote("nextmap", "Vote for Skip Map")->setStopCallback(Callbacks::ENDMAP);
$this->defineVote("nextmap", "Vote for Skip Map") $this->defineVote("skip", "Vote for Skip Map")->setStopCallback(Callbacks::ENDMAP);
->setStopCallback(Callbacks::ENDMAP); $this->defineVote("restartmap", "Vote for Restart Map")->setStopCallback(Callbacks::ENDMAP);
$this->defineVote("skip", "Vote for Skip Map") $this->defineVote("restart", "Vote for Restart Map")->setStopCallback(Callbacks::ENDMAP);
->setStopCallback(Callbacks::ENDMAP);
$this->defineVote("restartmap", "Vote for Restart Map")
->setStopCallback(Callbacks::ENDMAP);
$this->defineVote("restart", "Vote for Restart Map")
->setStopCallback(Callbacks::ENDMAP);
$this->defineVote("pausegame", "Vote for Pause Game"); $this->defineVote("pausegame", "Vote for Pause Game");
$this->defineVote("replay", "Vote to replay current map"); $this->defineVote("replay", "Vote to replay current map");
foreach ($this->voteCommands as $name => $voteCommand) { foreach ($this->voteCommands as $name => $voteCommand) {
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener($name, $this, 'handleChatVote', false, $voteCommand->name);
->registerCommandListener($name, $this, 'handleChatVote', false, $voteCommand->name);
} }
/* Disable Standard Votes */ /* Disable Standard Votes */
@ -212,8 +184,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_TEAM_BALANCE, -1.); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_TEAM_BALANCE, -1.);
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_NEXT_MAP, -1.); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_NEXT_MAP, -1.);
$this->maniaControl->getClient() $this->maniaControl->getClient()->setCallVoteRatios($ratioArray, false);
->setCallVoteRatios($ratioArray, false);
$this->constructMenu(); $this->constructMenu();
return true; return true;
@ -231,8 +202,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
*/ */
public function defineVote($voteIndex, $voteName, $idBased = false, $startText = '', $neededRatio = -1) { public function defineVote($voteIndex, $voteName, $idBased = false, $startText = '', $neededRatio = -1) {
if ($neededRatio < 0) { if ($neededRatio < 0) {
$neededRatio = $this->maniaControl->getSettingManager() $neededRatio = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DEFAULT_RATIO);
->getSettingValue($this, self::SETTING_DEFAULT_RATIO);
} }
$voteCommand = new VoteCommand($voteIndex, $voteName, $idBased, $neededRatio); $voteCommand = new VoteCommand($voteIndex, $voteName, $idBased, $neededRatio);
$voteCommand->startText = $startText; $voteCommand->startText = $startText;
@ -255,8 +225,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
//Check if Pause exists in current GameMode //Check if Pause exists in current GameMode
try { try {
$scriptInfos = $this->maniaControl->getClient() $scriptInfos = $this->maniaControl->getClient()->getModeScriptInfo();
->getModeScriptInfo();
$pauseExists = false; $pauseExists = false;
foreach ($scriptInfos->commandDescs as $param) { foreach ($scriptInfos->commandDescs as $param) {
@ -282,8 +251,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$itemQuad->setAction(self::ACTION_START_VOTE . 'skipmap'); $itemQuad->setAction(self::ACTION_START_VOTE . 'skipmap');
$this->addVoteMenuItem($itemQuad, 15, 'Vote for a Map Skip'); $this->addVoteMenuItem($itemQuad, 15, 'Vote for a Map Skip');
if ($this->maniaControl->getServer() if ($this->maniaControl->getServer()->isTeamMode()
->isTeamMode()
) { ) {
//Menu TeamBalance //Menu TeamBalance
$itemQuad = new Quad_Icons128x32_1(); $itemQuad = new Quad_Icons128x32_1();
@ -316,30 +284,18 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
* @param bool $login * @param bool $login
*/ */
private function showIcon($login = false) { private function showIcon($login = false) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_ICON_POSX);
->getSettingValue($this, self::SETTING_VOTE_ICON_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_ICON_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_ICON_WIDTH);
->getSettingValue($this, self::SETTING_VOTE_ICON_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_ICON_HEIGHT);
$width = $this->maniaControl->getSettingManager() $shootManiaOffset = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultIconOffsetSM();
->getSettingValue($this, self::SETTING_VOTE_ICON_WIDTH); $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
$height = $this->maniaControl->getSettingManager() $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
->getSettingValue($this, self::SETTING_VOTE_ICON_HEIGHT);
$shootManiaOffset = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultIconOffsetSM();
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$itemMarginFactorX = 1.3; $itemMarginFactorX = 1.3;
$itemMarginFactorY = 1.2; $itemMarginFactorY = 1.2;
//If game is shootmania lower the icons position by 20 //If game is shootmania lower the icons position by 20
if ($this->maniaControl->getMapManager() if ($this->maniaControl->getMapManager()->getCurrentMap()->getGame() === 'sm'
->getCurrentMap()
->getGame() === 'sm'
) { ) {
$posY -= $shootManiaOffset; $posY -= $shootManiaOffset;
} }
@ -418,8 +374,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
@ -427,8 +382,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
*/ */
public function unload() { public function unload() {
//Enable Standard Votes //Enable Standard Votes
$defaultRatio = $this->maniaControl->getClient() $defaultRatio = $this->maniaControl->getClient()->getCallVoteRatio();
->getCallVoteRatio();
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_BAN, $defaultRatio); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_BAN, $defaultRatio);
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_KICK, $defaultRatio); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_KICK, $defaultRatio);
@ -436,12 +390,10 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_TEAM_BALANCE, $defaultRatio); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_TEAM_BALANCE, $defaultRatio);
$ratioArray[] = new VoteRatio(VoteRatio::COMMAND_NEXT_MAP, $defaultRatio); $ratioArray[] = new VoteRatio(VoteRatio::COMMAND_NEXT_MAP, $defaultRatio);
$this->maniaControl->getClient() $this->maniaControl->getClient()->setCallVoteRatios($ratioArray, false);
->setCallVoteRatios($ratioArray, false);
$this->destroyVote(); $this->destroyVote();
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_ICON);
->hideManialink(self::MLID_ICON);
} }
/** /**
@ -449,13 +401,11 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
*/ */
private function destroyVote() { private function destroyVote() {
$emptyManialink = new ManiaLink(self::MLID_WIDGET); $emptyManialink = new ManiaLink(self::MLID_WIDGET);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($emptyManialink);
->sendManialink($emptyManialink);
// Remove the Listener for the Stop Callback if a stop callback is defined // Remove the Listener for the Stop Callback if a stop callback is defined
if ($this->currentVote && $this->currentVote->stopCallback) { if ($this->currentVote && $this->currentVote->stopCallback) {
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->unregisterCallbackListening($this->currentVote->stopCallback, $this);
->unregisterCallbackListening($this->currentVote->stopCallback, $this);
} }
$this->currentVote = null; $this->currentVote = null;
@ -494,55 +444,44 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
*/ */
public function startVote(Player $player, $voteIndex, $function = null) { public function startVote(Player $player, $voteIndex, $function = null) {
//Player is muted //Player is muted
if ($this->maniaControl->getPlayerManager() if ($this->maniaControl->getPlayerManager()->getPlayerActions()->isPlayerMuted($player)
->getPlayerActions()
->isPlayerMuted($player)
) { ) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Muted Players are not allowed to start a vote.', $player);
->sendError('Muted Players are not allowed to start a vote.', $player);
return; return;
} }
// Spectators are not allowed to start a vote // Spectators are not allowed to start a vote
if ($player->isSpectator if ($player->isSpectator
&& !$this->maniaControl->getSettingManager() && !$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_START_VOTE)
->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_START_VOTE)
) { ) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Spectators are not allowed to start a vote.', $player);
->sendError('Spectators are not allowed to start a vote.', $player);
return; return;
} }
//Vote does not exist //Vote does not exist
if (!isset($this->voteCommands[$voteIndex])) { if (!isset($this->voteCommands[$voteIndex])) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Undefined vote.', $player);
->sendError('Undefined vote.', $player);
return; return;
} }
//A vote is currently running //A vote is currently running
if (isset($this->currentVote)) { if (isset($this->currentVote)) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('There is currently another vote running.', $player);
->sendError('There is currently another vote running.', $player);
return; return;
} }
$maxTime = $this->maniaControl->getSettingManager() $maxTime = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_TIME);
->getSettingValue($this, self::SETTING_VOTE_TIME);
/** @var VoteCommand $voteCommand */ /** @var VoteCommand $voteCommand */
$voteCommand = $this->voteCommands[$voteIndex]; $voteCommand = $this->voteCommands[$voteIndex];
$this->currentVote = new CurrentVote($voteCommand, $player, time() + $maxTime); $this->currentVote = new CurrentVote($voteCommand, $player, time() + $maxTime);
$this->currentVote->neededRatio = floatval($this->maniaControl->getSettingManager() $this->currentVote->neededRatio = floatval($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DEFAULT_RATIO));
->getSettingValue($this, self::SETTING_DEFAULT_RATIO)); $this->currentVote->neededPlayerRatio = floatval($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DEFAULT_PLAYER_RATIO));
$this->currentVote->neededPlayerRatio = floatval($this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_DEFAULT_PLAYER_RATIO));
$this->currentVote->function = $function; $this->currentVote->function = $function;
if ($voteCommand->getStopCallback()) { if ($voteCommand->getStopCallback()) {
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener($voteCommand->getStopCallback(), $this, 'handleStopCallback');
->registerCallbackListener($voteCommand->getStopCallback(), $this, 'handleStopCallback');
$this->currentVote->stopCallback = $voteCommand->getStopCallback(); $this->currentVote->stopCallback = $voteCommand->getStopCallback();
} }
@ -552,8 +491,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$message = '$fff' . $player->getEscapedNickname() . '$s$f8f started a $fff$<' . $this->currentVote->voteCommand->name . '$>$f8f!'; $message = '$fff' . $player->getEscapedNickname() . '$s$f8f started a $fff$<' . $this->currentVote->voteCommand->name . '$>$f8f!';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendSuccess($message);
->sendSuccess($message);
} }
/** /**
@ -586,54 +524,40 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
switch ($voteName) { switch ($voteName) {
case 'teambalance': case 'teambalance':
$this->maniaControl->getClient() $this->maniaControl->getClient()->autoTeamBalance();
->autoTeamBalance(); $this->maniaControl->getChat()->sendInformation('$f8fVote to $fffbalance the Teams$f8f has been successful!');
$this->maniaControl->getChat()
->sendInformation('$f8fVote to $fffbalance the Teams$f8f has been successful!');
break; break;
case 'skipmap': case 'skipmap':
case 'skip': case 'skip':
case 'nextmap': case 'nextmap':
try { try {
$this->maniaControl->getMapManager() $this->maniaControl->getMapManager()->getMapActions()->skipMap();
->getMapActions()
->skipMap();
} catch (ChangeInProgressException $e) { } catch (ChangeInProgressException $e) {
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation('$f8fVote to $fffskip the Map$f8f has been successful!');
->sendInformation('$f8fVote to $fffskip the Map$f8f has been successful!');
break; break;
case 'restartmap': case 'restartmap':
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->restartMap();
->restartMap();
} catch (ChangeInProgressException $e) { } catch (ChangeInProgressException $e) {
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation('$f8fVote to $fffrestart the Map$f8f has been successful!');
->sendInformation('$f8fVote to $fffrestart the Map$f8f has been successful!');
break; break;
case 'pausegame': case 'pausegame':
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->sendModeScriptCommands(array('Command_ForceWarmUp' => true));
->sendModeScriptCommands(array('Command_ForceWarmUp' => true)); $this->maniaControl->getChat()->sendInformation('$f8fVote to $fffpause the current Game$f8f has been successful!');
$this->maniaControl->getChat()
->sendInformation('$f8fVote to $fffpause the current Game$f8f has been successful!');
} catch (GameModeException $ex) { } catch (GameModeException $ex) {
} }
break; break;
case 'replay': case 'replay':
$this->maniaControl->getMapManager() $this->maniaControl->getMapManager()->getMapQueue()->addFirstMapToMapQueue($this->currentVote->voter, $this->maniaControl->getMapManager()->getCurrentMap());
->getMapQueue() $this->maniaControl->getChat()->sendInformation('$f8fVote to $fffreplay the Map$f8f has been successful!');
->addFirstMapToMapQueue($this->currentVote->voter, $this->maniaControl->getMapManager()
->getCurrentMap());
$this->maniaControl->getChat()
->sendInformation('$f8fVote to $fffreplay the Map$f8f has been successful!');
break; break;
} }
} else { } else {
//FIXME bugreport, no fail message on vote fail sometimes //FIXME bugreport, no fail message on vote fail sometimes
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Vote Failed!');
->sendError('Vote Failed!');
} }
} }
@ -652,8 +576,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$voteIndex = $actionArray[2]; $voteIndex = $actionArray[2];
if (isset($this->voteCommands[$voteIndex])) { if (isset($this->voteCommands[$voteIndex])) {
$login = $callback[1][1]; $login = $callback[1][1];
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
$this->startVote($player, $voteIndex); $this->startVote($player, $voteIndex);
} }
} }
@ -692,8 +615,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
public function handlePositiveVote(array $callback, Player $player) { public function handlePositiveVote(array $callback, Player $player) {
if (!isset($this->currentVote) if (!isset($this->currentVote)
|| $player->isSpectator || $player->isSpectator
&& !$this->maniaControl->getSettingManager() && !$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_VOTE)
->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_VOTE)
) { ) {
return; return;
} }
@ -710,8 +632,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
public function handleNegativeVote(array $callback, Player $player) { public function handleNegativeVote(array $callback, Player $player) {
if (!isset($this->currentVote) if (!isset($this->currentVote)
|| $player->isSpectator || $player->isSpectator
&& !$this->maniaControl->getSettingManager() && !$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_VOTE)
->getSettingValue($this, self::SETTING_SPECTATOR_ALLOW_VOTE)
) { ) {
return; return;
} }
@ -736,8 +657,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$timeUntilExpire = $this->currentVote->expireTime - time(); $timeUntilExpire = $this->currentVote->expireTime - time();
$this->showVoteWidget($timeUntilExpire, $votePercentage); $this->showVoteWidget($timeUntilExpire, $votePercentage);
$playerCount = $this->maniaControl->getPlayerManager() $playerCount = $this->maniaControl->getPlayerManager()->getPlayerCount();
->getPlayerCount();
$playersVoteRatio = 0; $playersVoteRatio = 0;
if ($playerCount > 0 && $voteCount > 0) { if ($playerCount > 0 && $voteCount > 0) {
$playersVoteRatio = floatval($voteCount) / floatval($playerCount); $playersVoteRatio = floatval($voteCount) / floatval($playerCount);
@ -746,8 +666,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
//Check if vote is over //Check if vote is over
if ($timeUntilExpire <= 0 || (($playersVoteRatio >= $this->currentVote->neededPlayerRatio) && (($votePercentage >= $this->currentVote->neededRatio) || ($votePercentage <= 1 - $this->currentVote->neededRatio)))) { if ($timeUntilExpire <= 0 || (($playersVoteRatio >= $this->currentVote->neededPlayerRatio) && (($votePercentage >= $this->currentVote->neededRatio) || ($votePercentage <= 1 - $this->currentVote->neededRatio)))) {
// Trigger callback // Trigger callback
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_CUSTOM_VOTE_FINISHED, $this->currentVote->voteCommand->index, $votePercentage);
->triggerCallback(self::CB_CUSTOM_VOTE_FINISHED, $this->currentVote->voteCommand->index, $votePercentage);
//reset vote //reset vote
$this->destroyVote(); $this->destroyVote();
@ -761,26 +680,15 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
* @param float $votePercentage * @param float $votePercentage
*/ */
private function showVoteWidget($timeUntilExpire, $votePercentage) { private function showVoteWidget($timeUntilExpire, $votePercentage) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSX);
->getSettingValue($this, self::SETTING_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $maxTime = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_VOTE_TIME);
->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
$height = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_WIDGET_HEIGHT);
$maxTime = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_VOTE_TIME);
$quadStyle = $this->maniaControl->getManialinkManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getStyleManager() $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
->getDefaultQuadStyle(); $labelStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultLabelStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$labelStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultLabelStyle();
$maniaLink = new ManiaLink(self::MLID_WIDGET); $maniaLink = new ManiaLink(self::MLID_WIDGET);
@ -892,8 +800,7 @@ class CustomVotesPlugin implements CommandListener, CallbackListener, ManialinkP
$script->addFeature($keyActionNegative); $script->addFeature($keyActionNegative);
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink);
->sendManialink($maniaLink);
} }
} }

View File

@ -80,11 +80,9 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* @see \ManiaControl\Plugins\Plugin::prepare() * @see \ManiaControl\Plugins\Plugin::prepare()
*/ */
public static function prepare(ManiaControl $maniaControl) { public static function prepare(ManiaControl $maniaControl) {
$servers = $maniaControl->getServer() $servers = $maniaControl->getServer()->getAllServers();
->getAllServers();
foreach ($servers as $server) { foreach ($servers as $server) {
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_DEDIMANIA_CODE . $server->login . '$l', '');
->initSetting(get_class(), self::SETTING_DEDIMANIA_CODE . $server->login . '$l', '');
} }
} }
@ -134,61 +132,39 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
} }
// Settings // Settings
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_ENABLE, true);
->initSetting($this, self::SETTING_WIDGET_ENABLE, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_TITLE, 'Dedimania');
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSX, -139);
->initSetting($this, self::SETTING_WIDGET_TITLE, 'Dedimania'); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSY, 7);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 40);
->initSetting($this, self::SETTING_WIDGET_POSX, -139); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_HEIGHT, 4);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_COUNT, 12);
->initSetting($this, self::SETTING_WIDGET_POSY, 7);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_WIDTH, 40);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_LINE_HEIGHT, 4);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_LINE_COUNT, 12);
// Callbacks // Callbacks
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleMapEnd');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleMapEnd'); $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect');
->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer'); $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::CHECKPOINT, $this, 'handleCheckpointCallback');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::LAPFINISH, $this, 'handleLapFinishCallback');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::FINISH, $this, 'handleFinishCallback');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(RecordCallback::CHECKPOINT, $this, 'handleCheckpointCallback');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(RecordCallback::LAPFINISH, $this, 'handleLapFinishCallback');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(RecordCallback::FINISH, $this, 'handleFinishCallback');
$this->maniaControl->getTimerManager() $this->maniaControl->getTimerManager()->registerTimerListening($this, 'updateEverySecond', 1000);
->registerTimerListening($this, 'updateEverySecond', 1000); $this->maniaControl->getTimerManager()->registerTimerListening($this, 'handleEveryMinute', 1000 * 60);
$this->maniaControl->getTimerManager() $this->maniaControl->getTimerManager()->registerTimerListening($this, 'updatePlayerList', 1000 * 60 * 3);
->registerTimerListening($this, 'handleEveryMinute', 1000 * 60);
$this->maniaControl->getTimerManager()
->registerTimerListening($this, 'updatePlayerList', 1000 * 60 * 3);
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('dedirecs', 'dedirecords'), $this, 'showDediRecordsList', false, 'Shows a list of Dedimania records of the current map.');
->registerCommandListener(array('dedirecs', 'dedirecords'), $this, 'showDediRecordsList', false, 'Shows a list of Dedimania records of the current map.');
// Open session // Open session
$serverInfo = $this->maniaControl->getServer() $serverInfo = $this->maniaControl->getServer()->getInfo();
->getInfo();
$packMask = $this->maniaControl->getServer()->titleId; $packMask = $this->maniaControl->getServer()->titleId;
$serverVersion = $this->maniaControl->getClient() $serverVersion = $this->maniaControl->getClient()->getVersion();
->getVersion();
if ($packMask !== 'Trackmania_2@nadeolabs') { if ($packMask !== 'Trackmania_2@nadeolabs') {
$packMask = substr($this->maniaControl->getServer()->titleId, 2); $packMask = substr($this->maniaControl->getServer()->titleId, 2);
} }
$dedimaniaCode = $this->maniaControl->getSettingManager() $dedimaniaCode = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DEDIMANIA_CODE . $serverInfo->login . '$l');
->getSettingValue($this, self::SETTING_DEDIMANIA_CODE . $serverInfo->login . '$l');
if (!$dedimaniaCode) { if (!$dedimaniaCode) {
throw new \Exception("No Dedimania Code Specified, check the settings!"); throw new \Exception("No Dedimania Code Specified, check the settings!");
} }
@ -219,8 +195,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
//$this->maniaControl->fileReader->postDataTest($this->request, self::DEDIMANIA_URL, function ($data, $error) { //$this->maniaControl->fileReader->postDataTest($this->request, self::DEDIMANIA_URL, function ($data, $error) {
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
Logger::log("Try to connect on Dedimania"); Logger::log("Try to connect on Dedimania");
if (!$data || $error) { if (!$data || $error) {
@ -319,8 +294,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$content = $this->encode_request(self::DEDIMANIA_GET_RECORDS, $data); $content = $this->encode_request(self::DEDIMANIA_GET_RECORDS, $data);
//var_dump("get recs"); //var_dump("get recs");
//$this->maniaControl->fileReader->postDataTest($this->request,self::DEDIMANIA_URL, function ($data, $error) { //$this->maniaControl->fileReader->postDataTest($this->request,self::DEDIMANIA_URL, function ($data, $error) {
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
if ($error) { if ($error) {
Logger::logError('Dedimania Error: ' . $error); Logger::logError('Dedimania Error: ' . $error);
} }
@ -338,8 +312,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$responseData = $methodResponse[0]; $responseData = $methodResponse[0];
if (!isset($responseData['Players']) || !isset($responseData['Records'])) { if (!isset($responseData['Players']) || !isset($responseData['Records'])) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('Invalid Dedimania response!', $responseData);
->triggerDebugNotice('Invalid Dedimania response!', $responseData);
return; return;
} }
@ -358,8 +331,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
} }
$this->updateManialink = true; $this->updateManialink = true;
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
}, $content, true); }, $content, true);
return true; return true;
@ -369,22 +341,18 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* Build server info Structure for callbacks * Build server info Structure for callbacks
*/ */
private function getServerInfo() { private function getServerInfo() {
$server = $this->maniaControl->getClient() $server = $this->maniaControl->getClient()->getServerOptions();
->getServerOptions();
if (!$server) { if (!$server) {
return null; return null;
} }
if ($this->maniaControl->getPlayerManager() if ($this->maniaControl->getPlayerManager()->getPlayerCount(false) <= 0
->getPlayerCount(false) <= 0
) { ) {
return null; return null;
} }
$playerCount = $this->maniaControl->getPlayerManager() $playerCount = $this->maniaControl->getPlayerManager()->getPlayerCount();
->getPlayerCount(); $spectatorCount = $this->maniaControl->getPlayerManager()->getSpectatorCount();
$spectatorCount = $this->maniaControl->getPlayerManager()
->getSpectatorCount();
return array('SrvName' => $server->name, 'Comment' => $server->comment, 'Private' => (strlen($server->password) > 0), 'NumPlayers' => $playerCount, 'MaxPlayers' => $server->currentMaxPlayers, 'NumSpecs' => $spectatorCount, 'MaxSpecs' => $server->currentMaxSpectators); return array('SrvName' => $server->name, 'Comment' => $server->comment, 'Private' => (strlen($server->password) > 0), 'NumPlayers' => $playerCount, 'MaxPlayers' => $server->currentMaxPlayers, 'NumSpecs' => $spectatorCount, 'MaxSpecs' => $server->currentMaxSpectators);
} }
@ -393,8 +361,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* Build simple player list for callbacks * Build simple player list for callbacks
*/ */
private function getPlayerList() { private function getPlayerList() {
$players = $this->maniaControl->getPlayerManager() $players = $this->maniaControl->getPlayerManager()->getPlayers();
->getPlayers();
if (empty($players)) { if (empty($players)) {
return null; return null;
@ -412,8 +379,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* @return array * @return array
*/ */
private function getMapInfo() { private function getMapInfo() {
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
if (!$map) { if (!$map) {
return null; return null;
} }
@ -433,8 +399,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* @return String * @return String
*/ */
private function getGameModeString() { private function getGameModeString() {
$gameMode = $this->maniaControl->getServer() $gameMode = $this->maniaControl->getServer()->getGameMode();
->getGameMode();
if ($gameMode === null) { if ($gameMode === null) {
Logger::logError("Couldn't retrieve game mode."); Logger::logError("Couldn't retrieve game mode.");
return null; return null;
@ -442,8 +407,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
switch ($gameMode) { switch ($gameMode) {
case 0: case 0:
{ {
$scriptNameResponse = $this->maniaControl->getClient() $scriptNameResponse = $this->maniaControl->getClient()->getScriptName();
->getScriptName();
$scriptName = str_replace('.Script.txt', '', $scriptNameResponse['CurrentValue']); $scriptName = str_replace('.Script.txt', '', $scriptNameResponse['CurrentValue']);
switch ($scriptName) { switch ($scriptName) {
case 'Rounds': case 'Rounds':
@ -487,12 +451,10 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
var_dump("Dedimania Debug: Update Manialink"); var_dump("Dedimania Debug: Update Manialink");
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
) { ) {
$manialink = $this->buildManialink(); $manialink = $this->buildManialink();
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($manialink);
->sendManialink($manialink);
} }
} }
@ -504,27 +466,15 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
private function buildManialink() { private function buildManialink() {
$records = $this->dedimaniaData->records; $records = $this->dedimaniaData->records;
$title = $this->maniaControl->getSettingManager() $title = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_TITLE);
->getSettingValue($this, self::SETTING_WIDGET_TITLE); $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSX);
$posX = $this->maniaControl->getSettingManager() $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSY);
->getSettingValue($this, self::SETTING_WIDGET_POSX); $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
$posY = $this->maniaControl->getSettingManager() $lines = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINE_COUNT);
->getSettingValue($this, self::SETTING_WIDGET_POSY); $lineHeight = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINE_HEIGHT);
$width = $this->maniaControl->getSettingManager() $labelStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultLabelStyle();
->getSettingValue($this, self::SETTING_WIDGET_WIDTH); $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
$lines = $this->maniaControl->getSettingManager() $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
->getSettingValue($this, self::SETTING_WIDGET_LINE_COUNT);
$lineHeight = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_WIDGET_LINE_HEIGHT);
$labelStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultLabelStyle();
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$manialink = new ManiaLink(self::MLID_DEDIMANIA); $manialink = new ManiaLink(self::MLID_DEDIMANIA);
@ -622,8 +572,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$content = $this->encode_request(self::DEDIMANIA_CHECK_SESSION, array($this->dedimaniaData->sessionId)); $content = $this->encode_request(self::DEDIMANIA_CHECK_SESSION, array($this->dedimaniaData->sessionId));
//var_dump("check session"); //TODO remove //var_dump("check session"); //TODO remove
//$this->maniaControl->fileReader->postDataTest($this->request, self::DEDIMANIA_URL, function ($data, $error) { //$this->maniaControl->fileReader->postDataTest($this->request, self::DEDIMANIA_URL, function ($data, $error) {
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
if ($error) { if ($error) {
Logger::logError("Dedimania Error: " . $error); Logger::logError("Dedimania Error: " . $error);
} }
@ -667,8 +616,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$data = array($this->dedimaniaData->sessionId, $player->login, $player->rawNickname, $player->path, $player->isSpectator); $data = array($this->dedimaniaData->sessionId, $player->login, $player->rawNickname, $player->path, $player->isSpectator);
$content = $this->encode_request(self::DEDIMANIA_PLAYERCONNECT, $data); $content = $this->encode_request(self::DEDIMANIA_PLAYERCONNECT, $data);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) use (&$player) {
->postData(self::DEDIMANIA_URL, function ($data, $error) use (&$player) {
if ($error) { if ($error) {
Logger::logError("Dedimania Error: " . $error); Logger::logError("Dedimania Error: " . $error);
} }
@ -689,18 +637,15 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$this->dedimaniaData->addPlayer($dediPlayer); $this->dedimaniaData->addPlayer($dediPlayer);
// Fetch records if he is the first who joined the server // Fetch records if he is the first who joined the server
if ($this->maniaControl->getPlayerManager() if ($this->maniaControl->getPlayerManager()->getPlayerCount(false) === 1
->getPlayerCount(false) === 1
) { ) {
$this->fetchDedimaniaRecords(true); $this->fetchDedimaniaRecords(true);
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
) { ) {
$manialink = $this->buildManialink(); $manialink = $this->buildManialink();
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($manialink, $player->login);
->sendManialink($manialink, $player->login);
} }
}, $content, true); }, $content, true);
} }
@ -720,8 +665,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$data = array($this->dedimaniaData->sessionId, $player->login, ''); $data = array($this->dedimaniaData->sessionId, $player->login, '');
$content = $this->encode_request(self::DEDIMANIA_PLAYERDISCONNECT, $data); $content = $this->encode_request(self::DEDIMANIA_PLAYERDISCONNECT, $data);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
if ($error) { if ($error) {
Logger::logError("Dedimania Error: " . $error); Logger::logError("Dedimania Error: " . $error);
} }
@ -791,8 +735,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
var_dump("Dedimania Debug: Submitting Times at End-Map", $content); var_dump("Dedimania Debug: Submitting Times at End-Map", $content);
} }
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
if ($error) { if ($error) {
Logger::logError("Dedimania Error: " . $error); Logger::logError("Dedimania Error: " . $error);
} }
@ -842,8 +785,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$data = array($this->dedimaniaData->sessionId, $serverInfo, $votesInfo, $playerList); $data = array($this->dedimaniaData->sessionId, $serverInfo, $votesInfo, $playerList);
$content = $this->encode_request(self::DEDIMANIA_UPDATE_SERVER_PLAYERS, $data); $content = $this->encode_request(self::DEDIMANIA_UPDATE_SERVER_PLAYERS, $data);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::DEDIMANIA_URL, function ($data, $error) {
->postData(self::DEDIMANIA_URL, function ($data, $error) {
if ($error) { if ($error) {
Logger::logError("Dedimania Error: " . $error); Logger::logError("Dedimania Error: " . $error);
} }
@ -864,8 +806,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* Build Votes Info Array for Callbacks * Build Votes Info Array for Callbacks
*/ */
private function getVotesInfo() { private function getVotesInfo() {
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
if (!$map) { if (!$map) {
return null; return null;
} }
@ -919,8 +860,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
return; return;
} }
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
if (!$map) { if (!$map) {
return; return;
} }
@ -940,8 +880,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
break; break;
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_CHANGED, $newRecord);
->triggerCallback(self::CB_DEDIMANIA_CHANGED, $newRecord);
// Announce record // Announce record
if ($oldRecord->nullRecord || $newRecord->rank < $oldRecord->rank) { if ($oldRecord->nullRecord || $newRecord->rank < $oldRecord->rank) {
@ -955,8 +894,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
if (!$oldRecord->nullRecord) { if (!$oldRecord->nullRecord) {
$message .= ' ($<$ff0' . $oldRecord->rank . '.$> $<$fff-' . Formatter::formatTime(($oldRecord->best - $callback->lapTime)) . '$>)'; $message .= ' ($<$ff0' . $oldRecord->rank . '.$> $<$fff-' . Formatter::formatTime(($oldRecord->best - $callback->lapTime)) . '$>)';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message . '!');
->sendInformation($message . '!');
$this->updateManialink = true; $this->updateManialink = true;
} }
@ -1092,8 +1030,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
*/ */
private function updateDedimaniaRecordRanks() { private function updateDedimaniaRecordRanks() {
if ($this->dedimaniaData->getRecordCount() === 0) { if ($this->dedimaniaData->getRecordCount() === 0) {
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
return; return;
} }
@ -1105,8 +1042,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$record->rank = $rank; $record->rank = $rank;
$rank++; $rank++;
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
->triggerCallback(self::CB_DEDIMANIA_UPDATED, $this->dedimaniaData->records);
} }
/** /**
@ -1116,28 +1052,23 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
*/ */
private function setRecordReplays(RecordData &$record) { private function setRecordReplays(RecordData &$record) {
// Set validation replay // Set validation replay
$validationReplay = $this->maniaControl->getServer() $validationReplay = $this->maniaControl->getServer()->getValidationReplay($record->login);
->getValidationReplay($record->login);
if ($validationReplay) { if ($validationReplay) {
$record->vReplay = $validationReplay; $record->vReplay = $validationReplay;
} }
// Set ghost replay // Set ghost replay
if ($record->rank <= 1) { if ($record->rank <= 1) {
$dataDirectory = $this->maniaControl->getServer() $dataDirectory = $this->maniaControl->getServer()->getDirectory()->getGameDataFolder();
->getDirectory()
->getGameDataFolder();
if (!isset($this->dedimaniaData->directoryAccessChecked)) { if (!isset($this->dedimaniaData->directoryAccessChecked)) {
$access = $this->maniaControl->getServer() $access = $this->maniaControl->getServer()->checkAccess($dataDirectory);
->checkAccess($dataDirectory);
if (!$access) { if (!$access) {
trigger_error("No access to the servers data directory. Can't retrieve ghost replays."); trigger_error("No access to the servers data directory. Can't retrieve ghost replays.");
} }
$this->dedimaniaData->directoryAccessChecked = $access; $this->dedimaniaData->directoryAccessChecked = $access;
} }
if ($this->dedimaniaData->directoryAccessChecked) { if ($this->dedimaniaData->directoryAccessChecked) {
$ghostReplay = $this->maniaControl->getServer() $ghostReplay = $this->maniaControl->getServer()->getGhostReplay($record->login);
->getGhostReplay($record->login);
if ($ghostReplay) { if ($ghostReplay) {
$record->top1GReplay = $ghostReplay; $record->top1GReplay = $ghostReplay;
} }
@ -1154,8 +1085,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$actionId = $callback[1][2]; $actionId = $callback[1][2];
$login = $callback[1][1]; $login = $callback[1][1];
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
if ($actionId === self::ACTION_SHOW_DEDIRECORDSLIST) { if ($actionId === self::ACTION_SHOW_DEDIRECORDSLIST) {
$this->showDediRecordsList(array(), $player); $this->showDediRecordsList(array(), $player);
@ -1169,18 +1099,13 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* @param Player $player * @param Player $player
*/ */
public function showDediRecordsList(array $chat, Player $player) { public function showDediRecordsList(array $chat, Player $player) {
$width = $this->maniaControl->getManialinkManager() $width = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsWidth();
->getStyleManager() $height = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsHeight();
->getListWidgetsWidth();
$height = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getListWidgetsHeight();
// get PlayerList // get PlayerList
$records = $this->dedimaniaData->records; $records = $this->dedimaniaData->records;
if (!$records) { if (!$records) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation('There are no Dedimania records on this map!');
->sendInformation('There are no Dedimania records on this map!');
return; return;
} }
@ -1191,9 +1116,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$script->addFeature($paging); $script->addFeature($paging);
// Main frame // Main frame
$frame = $this->maniaControl->getManialinkManager() $frame = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultListFrame($script, $paging);
->getStyleManager()
->getDefaultListFrame($script, $paging);
$maniaLink->add($frame); $maniaLink->add($frame);
// Start offsets // Start offsets
@ -1201,9 +1124,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$posY = $height / 2; $posY = $height / 2;
// Predefine Description Label // Predefine Description Label
$descriptionLabel = $this->maniaControl->getManialinkManager() $descriptionLabel = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultDescriptionLabel();
->getStyleManager()
->getDefaultDescriptionLabel();
$frame->add($descriptionLabel); $frame->add($descriptionLabel);
// Headline // Headline
@ -1211,8 +1132,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$frame->add($headFrame); $frame->add($headFrame);
$headFrame->setY($posY - 5); $headFrame->setY($posY - 5);
$array = array('Rank' => $posX + 5, 'Nickname' => $posX + 18, 'Login' => $posX + 70, 'Time' => $posX + 101); $array = array('Rank' => $posX + 5, 'Nickname' => $posX + 18, 'Login' => $posX + 70, 'Time' => $posX + 101);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($headFrame, $array);
->labelLine($headFrame, $array);
$index = 0; $index = 0;
$posY = $height / 2 - 10; $posY = $height / 2 - 10;
@ -1241,8 +1161,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$listRecord->nickName = $listRecord->login; $listRecord->nickName = $listRecord->login;
} }
$array = array($listRecord->rank => $posX + 5, '$fff' . $listRecord->nickName => $posX + 18, $listRecord->login => $posX + 70, Formatter::formatTime($listRecord->best) => $posX + 101); $array = array($listRecord->rank => $posX + 5, '$fff' . $listRecord->nickName => $posX + 18, $listRecord->login => $posX + 70, Formatter::formatTime($listRecord->best) => $posX + 101);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($recordFrame, $array);
->labelLine($recordFrame, $array);
$recordFrame->setY($posY); $recordFrame->setY($posY);
@ -1251,8 +1170,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
} }
// Render and display xml // Render and display xml
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->displayWidget($maniaLink, $player, 'DediRecordsList');
->displayWidget($maniaLink, $player, 'DediRecordsList');
} }
/** /**

View File

@ -104,44 +104,28 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
// Register for commands // Register for commands
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('donate', $this, 'command_Donate', false, 'Donate some planets to the server.');
->registerCommandListener('donate', $this, 'command_Donate', false, 'Donate some planets to the server.'); $this->maniaControl->getCommandManager()->registerCommandListener('pay', $this, 'command_Pay', true, 'Pays planets from the server to a player.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('getplanets', 'planets'), $this, 'command_GetPlanets', true, 'Checks the planets-balance of the server.');
->registerCommandListener('pay', $this, 'command_Pay', true, 'Pays planets from the server to a player.'); $this->maniaControl->getCommandManager()->registerCommandListener('topdons', $this, 'command_TopDons', false, 'Provides an overview of who donated the most planets.');
$this->maniaControl->getCommandManager()
->registerCommandListener(array('getplanets', 'planets'), $this, 'command_GetPlanets', true, 'Checks the planets-balance of the server.');
$this->maniaControl->getCommandManager()
->registerCommandListener('topdons', $this, 'command_TopDons', false, 'Provides an overview of who donated the most planets.');
// Register for callbacks // Register for callbacks
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
// Define player stats // Define player stats
$this->maniaControl->getStatisticManager() $this->maniaControl->getStatisticManager()->defineStatMetaData(self::STAT_PLAYER_DONATIONS);
->defineStatMetaData(self::STAT_PLAYER_DONATIONS);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATE_WIDGET_ACTIVATED, true);
->initSetting($this, self::SETTING_DONATE_WIDGET_ACTIVATED, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATE_WIDGET_POSX, 156.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATE_WIDGET_POSY, -31.4);
->initSetting($this, self::SETTING_DONATE_WIDGET_POSX, 156.); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATE_WIDGET_WIDTH, 6);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATE_WIDGET_HEIGHT, 6);
->initSetting($this, self::SETTING_DONATE_WIDGET_POSY, -31.4); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_DONATION_VALUES, "20,50,100,500,1000,2000");
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MIN_AMOUNT_SHOWN, 100);
->initSetting($this, self::SETTING_DONATE_WIDGET_WIDTH, 6);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_DONATE_WIDGET_HEIGHT, 6);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_DONATION_VALUES, "20,50,100,500,1000,2000");
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_MIN_AMOUNT_SHOWN, 100);
// Register Stat in Simple StatsList // Register Stat in Simple StatsList
$this->maniaControl->getStatisticManager() $this->maniaControl->getStatisticManager()->getSimpleStatsList()->registerStat(self::STAT_PLAYER_DONATIONS, 90, "DP", 15);
->getSimpleStatsList()
->registerStat(self::STAT_PLAYER_DONATIONS, 90, "DP", 15);
$this->displayWidget(); $this->displayWidget();
return true; return true;
@ -151,8 +135,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
* Display the widget * Display the widget
*/ */
public function displayWidget() { public function displayWidget() {
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_DONATE_WIDGET_ACTIVATED)
) { ) {
$this->displayDonateWidget(); $this->displayDonateWidget();
} }
@ -164,32 +147,19 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
* @param string $login * @param string $login
*/ */
public function displayDonateWidget($login = null) { public function displayDonateWidget($login = null) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_POSX);
->getSettingValue($this, self::SETTING_DONATE_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_DONATE_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $values = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATION_VALUES);
->getSettingValue($this, self::SETTING_DONATE_WIDGET_WIDTH); $shootManiaOffset = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultIconOffsetSM();
$height = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_DONATE_WIDGET_HEIGHT); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$values = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_DONATION_VALUES);
$shootManiaOffset = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultIconOffsetSM();
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$itemMarginFactorX = 1.3; $itemMarginFactorX = 1.3;
$itemMarginFactorY = 1.2; $itemMarginFactorY = 1.2;
//If game is shootmania lower the icons position by 20 //If game is shootmania lower the icons position by 20
if ($this->maniaControl->getMapManager() if ($this->maniaControl->getMapManager()->getCurrentMap()->getGame() === 'sm'
->getCurrentMap()
->getGame() === 'sm'
) { ) {
$posY -= $shootManiaOffset; $posY -= $shootManiaOffset;
} }
@ -268,16 +238,14 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
} }
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
* @see \ManiaControl\Plugins\Plugin::unload() * @see \ManiaControl\Plugins\Plugin::unload()
*/ */
public function unload() { public function unload() {
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_DONATE_WIDGET);
->hideManialink(self::MLID_DONATE_WIDGET);
} }
/** /**
@ -292,8 +260,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
return; return;
} }
$login = $callback[1][1]; $login = $callback[1][1];
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
$actionArray = explode(".", $callback[1][2]); $actionArray = explode(".", $callback[1][2]);
$this->handleDonation($player, intval($actionArray[2])); $this->handleDonation($player, intval($actionArray[2]));
} }
@ -310,28 +277,23 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
if ($amount > 1000000) { if ($amount > 1000000) {
// Prevent too huge donation amounts that would cause xmlrpc parsing errors // Prevent too huge donation amounts that would cause xmlrpc parsing errors
$message = "You can only donate 1.000.000 Planets at a time!"; $message = "You can only donate 1.000.000 Planets at a time!";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError($message, $player);
->sendError($message, $player);
return; return;
} }
if (!$receiverName) { if (!$receiverName) {
$serverName = $this->maniaControl->getClient() $serverName = $this->maniaControl->getClient()->getServerName();
->getServerName();
$message = 'Donate ' . $amount . ' Planets to $<' . $serverName . '$>?'; $message = 'Donate ' . $amount . ' Planets to $<' . $serverName . '$>?';
} else { } else {
$message = 'Donate ' . $amount . ' Planets to $<' . $receiverName . '$>?'; $message = 'Donate ' . $amount . ' Planets to $<' . $receiverName . '$>?';
} }
//Send and Handle the Bill //Send and Handle the Bill
$this->maniaControl->getBillManager() $this->maniaControl->getBillManager()->sendBill(function ($data, $status) use (&$player, $amount, $receiver) {
->sendBill(function ($data, $status) use (&$player, $amount, $receiver) {
switch ($status) { switch ($status) {
case BillManager::DONATED_TO_SERVER: case BillManager::DONATED_TO_SERVER:
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, DonationPlugin::SETTING_ANNOUNCE_SERVER_DONATION, true)
->getSettingValue($this, DonationPlugin::SETTING_ANNOUNCE_SERVER_DONATION, true) && $amount >= $this->maniaControl->getSettingManager()->getSettingValue($this, DonationPlugin::SETTING_MIN_AMOUNT_SHOWN, true)
&& $amount >= $this->maniaControl->getSettingManager()
->getSettingValue($this, DonationPlugin::SETTING_MIN_AMOUNT_SHOWN, true)
) { ) {
$login = null; $login = null;
$message = $player->getEscapedNickname() . ' donated ' . $amount . ' Planets! Thanks.'; $message = $player->getEscapedNickname() . ' donated ' . $amount . ' Planets! Thanks.';
@ -339,25 +301,20 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$login = $player->login; $login = $player->login;
$message = 'Donation successful! Thanks.'; $message = 'Donation successful! Thanks.';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendSuccess($message, $login);
->sendSuccess($message, $login); $this->maniaControl->getStatisticManager()->insertStat(DonationPlugin::STAT_PLAYER_DONATIONS, $player, $this->maniaControl->getServer()->index, $amount);
$this->maniaControl->getStatisticManager()
->insertStat(DonationPlugin::STAT_PLAYER_DONATIONS, $player, $this->maniaControl->getServer()->index, $amount);
break; break;
case BillManager::DONATED_TO_RECEIVER: case BillManager::DONATED_TO_RECEIVER:
$message = "Successfully donated {$amount} to '{$receiver}'!"; $message = "Successfully donated {$amount} to '{$receiver}'!";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendSuccess($message, $player);
->sendSuccess($message, $player);
break; break;
case BillManager::PLAYER_REFUSED_DONATION: case BillManager::PLAYER_REFUSED_DONATION:
$message = 'Transaction cancelled.'; $message = 'Transaction cancelled.';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError($message, $player);
->sendError($message, $player);
break; break;
case BillManager::ERROR_WHILE_TRANSACTION: case BillManager::ERROR_WHILE_TRANSACTION:
$message = $data; $message = $data;
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError($message, $player);
->sendError($message, $player);
break; break;
} }
}, $player, $amount, $message); }, $player, $amount, $message);
@ -370,8 +327,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
*/ */
public function handlePlayerConnect(Player $player) { public function handlePlayerConnect(Player $player) {
// Display Map Widget // Display Map Widget
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_DONATE_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_DONATE_WIDGET_ACTIVATED)
) { ) {
$this->displayDonateWidget($player->login); $this->displayDonateWidget($player->login);
} }
@ -397,13 +353,11 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
} }
if (count($params) >= 3) { if (count($params) >= 3) {
$receiver = $params[2]; $receiver = $params[2];
$receiverPlayer = $this->maniaControl->getPlayerManager() $receiverPlayer = $this->maniaControl->getPlayerManager()->getPlayer($receiver);
->getPlayer($receiver);
$receiverName = ($receiverPlayer ? $receiverPlayer->nickname : $receiver); $receiverName = ($receiverPlayer ? $receiverPlayer->nickname : $receiver);
} else { } else {
$receiver = ''; $receiver = '';
$receiverName = $this->maniaControl->getClient() $receiverName = $this->maniaControl->getClient()->getServerName();
->getServerName();
} }
$this->handleDonation($player, $amount, $receiver, $receiverName); $this->handleDonation($player, $amount, $receiver, $receiverName);
@ -416,8 +370,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
*/ */
private function sendDonateUsageExample(Player $player) { private function sendDonateUsageExample(Player $player) {
$message = "Usage Example: '/donate 100'"; $message = "Usage Example: '/donate 100'";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($message, $player);
->sendChat($message, $player);
} }
/** /**
@ -427,11 +380,9 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
* @param Player $player * @param Player $player
*/ */
public function command_Pay(array $chatCallback, Player $player) { public function command_Pay(array $chatCallback, Player $player) {
if (!$this->maniaControl->getAuthenticationManager() if (!$this->maniaControl->getAuthenticationManager()->checkRight($player, AuthenticationManager::AUTH_LEVEL_SUPERADMIN)
->checkRight($player, AuthenticationManager::AUTH_LEVEL_SUPERADMIN)
) { ) {
$this->maniaControl->getAuthenticationManager() $this->maniaControl->getAuthenticationManager()->sendNotAllowed($player);
->sendNotAllowed($player);
return; return;
} }
$text = $chatCallback[1][2]; $text = $chatCallback[1][2];
@ -450,26 +401,21 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
} else { } else {
$receiver = $player->login; $receiver = $player->login;
} }
$message = 'Payout from $<' . $this->maniaControl->getClient() $message = 'Payout from $<' . $this->maniaControl->getClient()->getServerName() . '$>.';
->getServerName() . '$>.';
$this->maniaControl->getBillManager() $this->maniaControl->getBillManager()->sendPlanets(function ($data, $status) use (&$player, $amount, $receiver) {
->sendPlanets(function ($data, $status) use (&$player, $amount, $receiver) {
switch ($status) { switch ($status) {
case BillManager::PAYED_FROM_SERVER: case BillManager::PAYED_FROM_SERVER:
$message = "Successfully payed out {$amount} to '{$receiver}'!"; $message = "Successfully payed out {$amount} to '{$receiver}'!";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendSuccess($message, $player);
->sendSuccess($message, $player);
break; break;
case BillManager::PLAYER_REFUSED_DONATION: case BillManager::PLAYER_REFUSED_DONATION:
$message = 'Transaction cancelled.'; $message = 'Transaction cancelled.';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError($message, $player);
->sendError($message, $player);
break; break;
case BillManager::ERROR_WHILE_TRANSACTION: case BillManager::ERROR_WHILE_TRANSACTION:
$message = $data; $message = $data;
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError($message, $player);
->sendError($message, $player);
break; break;
} }
}, $receiver, $amount, $message); }, $receiver, $amount, $message);
@ -482,8 +428,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
*/ */
private function sendPayUsageExample(Player $player) { private function sendPayUsageExample(Player $player) {
$message = "Usage Example: '//pay 100 login'"; $message = "Usage Example: '//pay 100 login'";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($message, $player);
->sendChat($message, $player);
} }
/** /**
@ -493,18 +438,14 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
* @param Player $player * @param Player $player
*/ */
public function command_GetPlanets(array $chatCallback, Player $player) { public function command_GetPlanets(array $chatCallback, Player $player) {
if (!$this->maniaControl->getAuthenticationManager() if (!$this->maniaControl->getAuthenticationManager()->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)
->checkRight($player, AuthenticationManager::AUTH_LEVEL_ADMIN)
) { ) {
$this->maniaControl->getAuthenticationManager() $this->maniaControl->getAuthenticationManager()->sendNotAllowed($player);
->sendNotAllowed($player);
return; return;
} }
$planets = $this->maniaControl->getClient() $planets = $this->maniaControl->getClient()->getServerPlanets();
->getServerPlanets();
$message = "This Server has {$planets} Planets!"; $message = "This Server has {$planets} Planets!";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message, $player);
->sendInformation($message, $player);
} }
/** /**
@ -523,15 +464,10 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
* @param Player $player * @param Player $player
*/ */
private function showTopDonsList(Player $player) { private function showTopDonsList(Player $player) {
$stats = $this->maniaControl->getStatisticManager() $stats = $this->maniaControl->getStatisticManager()->getStatsRanking(self::STAT_PLAYER_DONATIONS);
->getStatsRanking(self::STAT_PLAYER_DONATIONS);
$width = $this->maniaControl->getManialinkManager() $width = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsWidth();
->getStyleManager() $height = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsHeight();
->getListWidgetsWidth();
$height = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getListWidgetsHeight();
// create manialink // create manialink
$maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID); $maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID);
@ -540,9 +476,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$script->addFeature($paging); $script->addFeature($paging);
// Main frame // Main frame
$frame = $this->maniaControl->getManialinkManager() $frame = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultListFrame($script, $paging);
->getStyleManager()
->getDefaultListFrame($script, $paging);
$maniaLink->add($frame); $maniaLink->add($frame);
// Start offsets // Start offsets
@ -550,9 +484,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$posY = $height / 2; $posY = $height / 2;
//Predefine description Label //Predefine description Label
$descriptionLabel = $this->maniaControl->getManialinkManager() $descriptionLabel = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultDescriptionLabel();
->getStyleManager()
->getDefaultDescriptionLabel();
$frame->add($descriptionLabel); $frame->add($descriptionLabel);
// Headline // Headline
@ -560,8 +492,7 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$frame->add($headFrame); $frame->add($headFrame);
$headFrame->setY($posY - 5); $headFrame->setY($posY - 5);
$array = array('$oId' => $posX + 5, '$oNickname' => $posX + 18, '$oDonated planets' => $posX + 70); $array = array('$oId' => $posX + 5, '$oNickname' => $posX + 18, '$oDonated planets' => $posX + 70);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($headFrame, $array);
->labelLine($headFrame, $array);
$index = 1; $index = 1;
$posY = $posY - 10; $posY = $posY - 10;
@ -587,11 +518,9 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
$lineQuad->setZ(0.001); $lineQuad->setZ(0.001);
} }
$donatingPlayer = $this->maniaControl->getPlayerManager() $donatingPlayer = $this->maniaControl->getPlayerManager()->getPlayerByIndex($playerIndex);
->getPlayerByIndex($playerIndex);
$array = array($index => $posX + 5, $donatingPlayer->nickname => $posX + 18, $donations => $posX + 70); $array = array($index => $posX + 5, $donatingPlayer->nickname => $posX + 18, $donations => $posX + 70);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($playerFrame, $array);
->labelLine($playerFrame, $array);
$posY -= 4; $posY -= 4;
$index++; $index++;
@ -602,7 +531,6 @@ class DonationPlugin implements CallbackListener, CommandListener, Plugin {
} }
// Render and display xml // Render and display xml
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->displayWidget($maniaLink, $player, 'TopDons');
->displayWidget($maniaLink, $player, 'TopDons');
} }
} }

View File

@ -52,16 +52,11 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
* @see \ManiaControl\Plugins\Plugin::prepare() * @see \ManiaControl\Plugins\Plugin::prepare()
*/ */
public static function prepare(ManiaControl $maniaControl) { public static function prepare(ManiaControl $maniaControl) {
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_POINT_LIMIT_MULTIPLIER, 10);
->initSetting(get_class(), self::SETTING_POINT_LIMIT_MULTIPLIER, 10); $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_POINT_LIMIT_OFFSET, 0);
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_MIN_POINT_LIMIT, 30);
->initSetting(get_class(), self::SETTING_POINT_LIMIT_OFFSET, 0); $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_MAX_POINT_LIMIT, 200);
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting(get_class(), self::SETTING_ACCEPT_OTHER_MODES, false);
->initSetting(get_class(), self::SETTING_MIN_POINT_LIMIT, 30);
$maniaControl->getSettingManager()
->initSetting(get_class(), self::SETTING_MAX_POINT_LIMIT, 200);
$maniaControl->getSettingManager()
->initSetting(get_class(), self::SETTING_ACCEPT_OTHER_MODES, false);
} }
/** /**
@ -105,29 +100,21 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
public function load(ManiaControl $maniaControl) { public function load(ManiaControl $maniaControl) {
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
$allowOthers = $this->maniaControl->getSettingManager() $allowOthers = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ACCEPT_OTHER_MODES);
->getSettingValue($this, self::SETTING_ACCEPT_OTHER_MODES);
if (!$allowOthers && $this->maniaControl->getServer()->titleId !== 'SMStormRoyal@nadeolabs') { if (!$allowOthers && $this->maniaControl->getServer()->titleId !== 'SMStormRoyal@nadeolabs') {
$error = 'This plugin only supports Royal (check Settings)!'; $error = 'This plugin only supports Royal (check Settings)!';
throw new \Exception($error); throw new \Exception($error);
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'updatePointLimit');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'updatePointLimit'); $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'updatePointLimit');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'handlePlayerInfoChangedCallback');
->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'updatePointLimit');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'handlePlayerInfoChangedCallback');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINROUND, $this, 'updatePointLimit');
->registerCallbackListener(Callbacks::BEGINROUND, $this, 'updatePointLimit'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'handleSettingChangedCallback');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'handleSettingChangedCallback');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('setpointlimit', $this, 'commandSetPointlimit', true, 'Setpointlimit XXX or auto');
->registerCommandListener('setpointlimit', $this, 'commandSetPointlimit', true, 'Setpointlimit XXX or auto');
$this->updatePointLimit(); $this->updatePointLimit();
} }
@ -139,17 +126,12 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
if ($this->staticMode) { if ($this->staticMode) {
return; return;
} }
$numberOfPlayers = $this->maniaControl->getPlayerManager() $numberOfPlayers = $this->maniaControl->getPlayerManager()->getPlayerCount();
->getPlayerCount();
$multiplier = $this->maniaControl->getSettingManager() $multiplier = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_POINT_LIMIT_MULTIPLIER);
->getSettingValue($this, self::SETTING_POINT_LIMIT_MULTIPLIER); $offset = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_POINT_LIMIT_OFFSET);
$offset = $this->maniaControl->getSettingManager() $minValue = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_POINT_LIMIT);
->getSettingValue($this, self::SETTING_POINT_LIMIT_OFFSET); $maxValue = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAX_POINT_LIMIT);
$minValue = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_MIN_POINT_LIMIT);
$maxValue = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_MAX_POINT_LIMIT);
$pointLimit = $offset + $numberOfPlayers * $multiplier; $pointLimit = $offset + $numberOfPlayers * $multiplier;
if ($pointLimit < $minValue) { if ($pointLimit < $minValue) {
@ -162,18 +144,15 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
if ($this->lastPointLimit !== $pointLimit) { if ($this->lastPointLimit !== $pointLimit) {
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $pointLimit));
->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $pointLimit));
$message = "Dynamic PointLimit changed to: {$pointLimit}!"; $message = "Dynamic PointLimit changed to: {$pointLimit}!";
if ($this->lastPointLimit !== null) { if ($this->lastPointLimit !== null) {
$message .= " (From {$this->lastPointLimit})"; $message .= " (From {$this->lastPointLimit})";
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message);
->sendInformation($message);
$this->lastPointLimit = $pointLimit; $this->lastPointLimit = $pointLimit;
} catch (GameModeException $exception) { } catch (GameModeException $exception) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendExceptionToAdmins($exception);
->sendExceptionToAdmins($exception);
} }
} }
} }
@ -187,38 +166,31 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
public function commandSetPointlimit(array $chatCallback, Player $player) { public function commandSetPointlimit(array $chatCallback, Player $player) {
$commandParts = explode(' ', $chatCallback[1][2]); $commandParts = explode(' ', $chatCallback[1][2]);
if (count($commandParts) < 2) { if (count($commandParts) < 2) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendUsageInfo('Example: //setpointlimit auto', $player);
->sendUsageInfo('Example: //setpointlimit auto', $player);
return; return;
} }
$value = strtolower($commandParts[1]); $value = strtolower($commandParts[1]);
if ($value === "auto") { if ($value === "auto") {
$this->staticMode = false; $this->staticMode = false;
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation('Enabled Dynamic PointLimit!');
->sendInformation('Enabled Dynamic PointLimit!');
$this->updatePointLimit(); $this->updatePointLimit();
} else { } else {
if (is_numeric($value)) { if (is_numeric($value)) {
$value = (int)$value; $value = (int)$value;
if ($value <= 0) { if ($value <= 0) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('PointLimit needs to be greater than Zero.', $player);
->sendError('PointLimit needs to be greater than Zero.', $player);
return; return;
} }
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $value));
->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $value));
$this->staticMode = true; $this->staticMode = true;
$this->lastPointLimit = $value; $this->lastPointLimit = $value;
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation("PointLimit changed to: {$value} (Fixed)");
->sendInformation("PointLimit changed to: {$value} (Fixed)");
} catch (GameModeException $exception) { } catch (GameModeException $exception) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendException($exception, $player);
->sendException($exception, $player);
} }
} else { } else {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendUsageInfo('Example: //setpointlimit 150', $player);
->sendUsageInfo('Example: //setpointlimit 150', $player);
} }
} }
} }
@ -248,11 +220,9 @@ class DynamicPointLimitPlugin implements CallbackListener, CommandListener, Plug
if ($this->staticMode && !is_null($this->lastPointLimit)) { if ($this->staticMode && !is_null($this->lastPointLimit)) {
// Refresh static point limit in case it has been reset // Refresh static point limit in case it has been reset
try { try {
$this->maniaControl->getClient() $this->maniaControl->getClient()->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $this->lastPointLimit));
->setModeScriptSettings(array(self::SCRIPT_SETTING_MAP_POINTS_LIMIT => $this->lastPointLimit));
$message = "PointLimit fixed at {$this->lastPointLimit}."; $message = "PointLimit fixed at {$this->lastPointLimit}.";
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message);
->sendInformation($message);
} catch (GameModeException $e) { } catch (GameModeException $e) {
$this->lastPointLimit = null; $this->lastPointLimit = null;
} }

View File

@ -81,18 +81,13 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
public static function prepare(ManiaControl $maniaControl) { public static function prepare(ManiaControl $maniaControl) {
$thisClass = get_class(); $thisClass = get_class();
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting($thisClass, self::SETTING_MX_KARMA_ACTIVATED, true);
->initSetting($thisClass, self::SETTING_MX_KARMA_ACTIVATED, true); $maniaControl->getSettingManager()->initSetting($thisClass, self::SETTING_MX_KARMA_IMPORTING, true);
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting($thisClass, self::SETTING_WIDGET_DISPLAY_MX, true);
->initSetting($thisClass, self::SETTING_MX_KARMA_IMPORTING, true); $servers = $maniaControl->getServer()->getAllServers();
$maniaControl->getSettingManager()
->initSetting($thisClass, self::SETTING_WIDGET_DISPLAY_MX, true);
$servers = $maniaControl->getServer()
->getAllServers();
foreach ($servers as $server) { foreach ($servers as $server) {
$settingName = self::buildKarmaSettingName($server->login); $settingName = self::buildKarmaSettingName($server->login);
$maniaControl->getSettingManager() $maniaControl->getSettingManager()->initSetting($thisClass, $settingName, '');
->initSetting($thisClass, $settingName, '');
} }
} }
@ -151,47 +146,29 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$this->initTables(); $this->initTables();
// Settings // Settings
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_AVAILABLE_VOTES, '-2,2');
->initSetting($this, self::SETTING_AVAILABLE_VOTES, '-2,2'); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_ENABLE, true);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_TITLE, 'Map-Karma');
->initSetting($this, self::SETTING_WIDGET_ENABLE, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSX, 160 - 27.5);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSY, 90 - 10 - 6);
->initSetting($this, self::SETTING_WIDGET_TITLE, 'Map-Karma'); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 25.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_HEIGHT, 12.);
->initSetting($this, self::SETTING_WIDGET_POSX, 160 - 27.5); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEWKARMA, true);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_POSY, 90 - 10 - 6);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_WIDTH, 25.);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_HEIGHT, 12.);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_NEWKARMA, true);
// Callbacks // Callbacks
$this->maniaControl->getTimerManager() $this->maniaControl->getTimerManager()->registerTimerListening($this, 'handle1Second', 1000);
->registerTimerListening($this, 'handle1Second', 1000); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'importMxKarmaVotes');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ENDMAP, $this, 'sendMxKarmaVotes');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'importMxKarmaVotes'); $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_PLAYERCHAT, $this, 'handlePlayerChat');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings');
->registerCallbackListener(Callbacks::ENDMAP, $this, 'sendMxKarmaVotes');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(CallbackManager::CB_MP_PLAYERCHAT, $this, 'handlePlayerChat');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings');
// Define player stats // Define player stats
$this->maniaControl->getStatisticManager() $this->maniaControl->getStatisticManager()->defineStatMetaData(self::STAT_PLAYER_MAPVOTES);
->defineStatMetaData(self::STAT_PLAYER_MAPVOTES);
// Register Stat in Simple StatsList // Register Stat in Simple StatsList
$this->maniaControl->getStatisticManager() $this->maniaControl->getStatisticManager()->getSimpleStatsList()->registerStat(self::STAT_PLAYER_MAPVOTES, 100, "VM");
->getSimpleStatsList()
->registerStat(self::STAT_PLAYER_MAPVOTES, 100, "VM");
$this->updateManialink = true; $this->updateManialink = true;
@ -202,14 +179,11 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
//Check if Karma Code got specified, and inform admin that it would be good to specify one //Check if Karma Code got specified, and inform admin that it would be good to specify one
$serverLogin = $this->maniaControl->getServer()->login; $serverLogin = $this->maniaControl->getServer()->login;
$karmaSettingName = self::buildKarmaSettingName($serverLogin); $karmaSettingName = self::buildKarmaSettingName($serverLogin);
$mxKarmaCode = $this->maniaControl->getSettingManager() $mxKarmaCode = $this->maniaControl->getSettingManager()->getSettingValue($this, $karmaSettingName);
->getSettingValue($this, $karmaSettingName);
if (!$mxKarmaCode) { if (!$mxKarmaCode) {
$permission = $this->maniaControl->getSettingManager() $permission = $this->maniaControl->getSettingManager()->getSettingValue($this->maniaControl->getAuthenticationManager(), PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS);
->getSettingValue($this->maniaControl->getAuthenticationManager(), PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS); $this->maniaControl->getChat()->sendErrorToAdmins("Please specify a Mania-Exchange Karma Key in the Karma-Plugin settings!", $permission);
$this->maniaControl->getChat()
->sendErrorToAdmins("Please specify a Mania-Exchange Karma Key in the Karma-Plugin settings!", $permission);
} }
return true; return true;
@ -219,8 +193,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* Create necessary database tables * Create necessary database tables
*/ */
private function initTables() { private function initTables() {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
// Create local table // Create local table
$query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_KARMA . "` ( $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_KARMA . "` (
@ -256,16 +229,14 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* Open a Mx Karma Session * Open a Mx Karma Session
*/ */
private function mxKarmaOpenSession() { private function mxKarmaOpenSession() {
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
) { ) {
return; return;
} }
$serverLogin = $this->maniaControl->getServer()->login; $serverLogin = $this->maniaControl->getServer()->login;
$karmaSettingName = self::buildKarmaSettingName($serverLogin); $karmaSettingName = self::buildKarmaSettingName($serverLogin);
$mxKarmaCode = $this->maniaControl->getSettingManager() $mxKarmaCode = $this->maniaControl->getSettingManager()->getSettingValue($this, $karmaSettingName);
->getSettingValue($this, $karmaSettingName);
if (!$mxKarmaCode) { if (!$mxKarmaCode) {
return; return;
@ -281,18 +252,15 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$this->mxKarma['connectionInProgress'] = true; $this->mxKarma['connectionInProgress'] = true;
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->loadFile($query, function ($json, $error) use ($mxKarmaCode) {
->loadFile($query, function ($json, $error) use ($mxKarmaCode) {
$this->mxKarma['connectionInProgress'] = false; $this->mxKarma['connectionInProgress'] = false;
if ($error) { if ($error) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('mx karma error: ' . $error);
->triggerDebugNotice('mx karma error: ' . $error);
return; return;
} }
$data = json_decode($json); $data = json_decode($json);
if (!$data) { if (!$data) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('auth error', $json, $data);
->triggerDebugNotice('auth error', $json, $data);
return; return;
} }
if ($data->success) { if ($data->success) {
@ -301,8 +269,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
} else { } else {
Logger::logError("Error while authenticating on Mania-Exchange Karma"); Logger::logError("Error while authenticating on Mania-Exchange Karma");
// TODO remove temp trigger // TODO remove temp trigger
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('auth error', $data->data->message);
->triggerDebugNotice('auth error', $data->data->message);
$this->mxKarma['connectionInProgress'] = false; $this->mxKarma['connectionInProgress'] = false;
} }
}, AsynchronousFileReader::CONTENT_TYPE_JSON, 1000); }, AsynchronousFileReader::CONTENT_TYPE_JSON, 1000);
@ -320,18 +287,15 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$query .= '?sessionKey=' . urlencode($this->mxKarma['session']->sessionKey); $query .= '?sessionKey=' . urlencode($this->mxKarma['session']->sessionKey);
$query .= '&activationHash=' . urlencode($hash); $query .= '&activationHash=' . urlencode($hash);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->loadFile($query, function ($json, $error) use ($query) {
->loadFile($query, function ($json, $error) use ($query) {
$this->mxKarma['connectionInProgress'] = false; $this->mxKarma['connectionInProgress'] = false;
if ($error) { if ($error) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('mx karma error', $error);
->triggerDebugNotice('mx karma error', $error);
return; return;
} }
$data = json_decode($json); $data = json_decode($json);
if (!$data) { if (!$data) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('parse error', $json, $data);
->triggerDebugNotice('parse error', $json, $data);
return; return;
} }
if ($data->success && $data->data->activated) { if ($data->success && $data->data->activated) {
@ -341,13 +305,10 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$this->getMxKarmaVotes(); $this->getMxKarmaVotes();
} else { } else {
if ($data->data->message === 'invalid hash') { if ($data->data->message === 'invalid hash') {
$permission = $this->maniaControl->getSettingManager() $permission = $this->maniaControl->getSettingManager()->getSettingValue($this->maniaControl->getAuthenticationManager(), PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS);
->getSettingValue($this->maniaControl->getAuthenticationManager(), PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS); $this->maniaControl->getChat()->sendErrorToAdmins("Invalid Mania-Exchange Karma code in Karma Plugin specified!", $permission);
$this->maniaControl->getChat()
->sendErrorToAdmins("Invalid Mania-Exchange Karma code in Karma Plugin specified!", $permission);
} else { } else {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('auth error', $data->data->message, $query);
->triggerDebugNotice('auth error', $data->data->message, $query);
} }
Logger::logError("Error while activating Mania-Exchange Karma Session: " . $data->data->message); Logger::logError("Error while activating Mania-Exchange Karma Session: " . $data->data->message);
unset($this->mxKarma['session']); unset($this->mxKarma['session']);
@ -370,8 +331,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* Fetch the mxKarmaVotes for the current map * Fetch the mxKarmaVotes for the current map
*/ */
public function getMxKarmaVotes(Player $player = null) { public function getMxKarmaVotes(Player $player = null) {
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
) { ) {
return; return;
} }
@ -383,16 +343,13 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
return; return;
} }
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
$properties = array(); $properties = array();
$gameMode = $this->maniaControl->getServer() $gameMode = $this->maniaControl->getServer()->getGameMode(true);
->getGameMode(true);
if ($gameMode === 'Script') { if ($gameMode === 'Script') {
$scriptName = $this->maniaControl->getClient() $scriptName = $this->maniaControl->getClient()->getScriptName();
->getScriptName();
$properties['gamemode'] = $scriptName['CurrentValue']; $properties['gamemode'] = $scriptName['CurrentValue'];
} else { } else {
$properties['gamemode'] = $gameMode; $properties['gamemode'] = $gameMode;
@ -404,8 +361,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
if (!$player) { if (!$player) {
$properties['getvotesonly'] = false; $properties['getvotesonly'] = false;
$properties['playerlogins'] = array(); $properties['playerlogins'] = array();
foreach ($this->maniaControl->getPlayerManager() foreach ($this->maniaControl->getPlayerManager()->getPlayers() as $loopPlayer) {
->getPlayers() as $loopPlayer) {
$properties['playerlogins'][] = $loopPlayer->login; $properties['playerlogins'][] = $loopPlayer->login;
} }
} else { } else {
@ -414,21 +370,18 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
} }
$content = json_encode($properties); $content = json_encode($properties);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::MX_KARMA_URL . self::MX_KARMA_GET_MAP_RATING . '?sessionKey=' . urlencode($this->mxKarma['session']->sessionKey), function ($json,
->postData(self::MX_KARMA_URL . self::MX_KARMA_GET_MAP_RATING . '?sessionKey=' . urlencode($this->mxKarma['session']->sessionKey), function ($json,
$error) use $error) use
( (
&$player &$player
) { ) {
if ($error) { if ($error) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('mx karma error', $error);
->triggerDebugNotice('mx karma error', $error);
return; return;
} }
$data = json_decode($json); $data = json_decode($json);
if (!$data) { if (!$data) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('parse error', $json, $data);
->triggerDebugNotice('parse error', $json, $data);
return; return;
} }
@ -446,8 +399,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
} }
$this->updateManialink = true; $this->updateManialink = true;
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_KARMA_MXUPDATED, $this->mxKarma);
->triggerCallback(self::CB_KARMA_MXUPDATED, $this->mxKarma);
Logger::logInfo('MX-Karma Votes successfully fetched!'); Logger::logInfo('MX-Karma Votes successfully fetched!');
} else { } else {
// Problem occurred // Problem occurred
@ -455,8 +407,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
if ($data->data->message === 'invalid session') { if ($data->data->message === 'invalid session') {
unset($this->mxKarma['session']); unset($this->mxKarma['session']);
} else { } else {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('fetch error', $data->data->message, self::MX_KARMA_GET_MAP_RATING, $this->mxKarma['session']);
->triggerDebugNotice('fetch error', $data->data->message, self::MX_KARMA_GET_MAP_RATING, $this->mxKarma['session']);
} }
} }
}, $content, false, AsynchronousFileReader::CONTENT_TYPE_JSON); }, $content, false, AsynchronousFileReader::CONTENT_TYPE_JSON);
@ -466,8 +417,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @see \ManiaControl\Plugins\Plugin::unload() * @see \ManiaControl\Plugins\Plugin::unload()
*/ */
public function unload() { public function unload() {
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_KARMA);
->hideManialink(self::MLID_KARMA);
} }
/** /**
@ -478,8 +428,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
if (isset($this->mxKarma['map'])) { if (isset($this->mxKarma['map'])) {
$votes = array(); $votes = array();
foreach ($this->mxKarma['votes'] as $login => $value) { foreach ($this->mxKarma['votes'] as $login => $value) {
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
array_push($votes, array('login' => $login, 'nickname' => $player->rawNickname, 'vote' => $value)); array_push($votes, array('login' => $login, 'nickname' => $player->rawNickname, 'vote' => $value));
} }
$this->postKarmaVotes($this->mxKarma['map'], $votes); $this->postKarmaVotes($this->mxKarma['map'], $votes);
@ -509,8 +458,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
return; return;
} }
$gameMode = $this->maniaControl->getServer() $gameMode = $this->maniaControl->getServer()->getGameMode(true);
->getGameMode(true);
if (empty($votes)) { if (empty($votes)) {
return; return;
@ -518,8 +466,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$properties = array(); $properties = array();
if ($gameMode === 'Script') { if ($gameMode === 'Script') {
$scriptName = $this->maniaControl->getClient() $scriptName = $this->maniaControl->getClient()->getScriptName();
->getScriptName();
$properties['gamemode'] = $scriptName['CurrentValue']; $properties['gamemode'] = $scriptName['CurrentValue'];
} else { } else {
$properties['gamemode'] = $gameMode; $properties['gamemode'] = $gameMode;
@ -540,18 +487,15 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$content = json_encode($properties); $content = json_encode($properties);
$this->maniaControl->getFileReader() $this->maniaControl->getFileReader()->postData(self::MX_KARMA_URL . self::MX_KARMA_SAVE_VOTES . "?sessionKey=" . urlencode($this->mxKarma['session']->sessionKey), function ($json,
->postData(self::MX_KARMA_URL . self::MX_KARMA_SAVE_VOTES . "?sessionKey=" . urlencode($this->mxKarma['session']->sessionKey), function ($json,
$error) { $error) {
if ($error) { if ($error) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('mx karma error', $error);
->triggerDebugNotice('mx karma error', $error);
return; return;
} }
$data = json_decode($json); $data = json_decode($json);
if (!$data) { if (!$data) {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('parse error', $json, $data);
->triggerDebugNotice('parse error', $json, $data);
return; return;
} }
if ($data->success) { if ($data->success) {
@ -562,8 +506,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
if ($data->data->message === "invalid session") { if ($data->data->message === "invalid session") {
unset($this->mxKarma['session']); unset($this->mxKarma['session']);
} else { } else {
$this->maniaControl->getErrorHandler() $this->maniaControl->getErrorHandler()->triggerDebugNotice('saving error', $data->data->message, self::MX_KARMA_SAVE_VOTES, $this->mxKarma['session']);
->triggerDebugNotice('saving error', $data->data->message, self::MX_KARMA_SAVE_VOTES, $this->mxKarma['session']);
} }
} }
}, $content, false, AsynchronousFileReader::CONTENT_TYPE_JSON); }, $content, false, AsynchronousFileReader::CONTENT_TYPE_JSON);
@ -606,8 +549,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
public function handlePlayerChat(array $chatCallback) { public function handlePlayerChat(array $chatCallback) {
$login = $chatCallback[1][1]; $login = $chatCallback[1][1];
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
if (!$player) { if (!$player) {
return; return;
} }
@ -626,12 +568,10 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$vote = $countPositive - $countNegative; $vote = $countPositive - $countNegative;
$success = $this->handleVote($player, $vote); $success = $this->handleVote($player, $vote);
if (!$success) { if (!$success) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Error occurred.', $player->login);
->sendError('Error occurred.', $player->login);
return; return;
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendSuccess('Vote updated!', $player->login);
->sendSuccess('Vote updated!', $player->login);
} }
/** /**
@ -643,8 +583,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
private function handleVote(Player $player, $vote) { private function handleVote(Player $player, $vote) {
// Check vote // Check vote
$votesSetting = $this->maniaControl->getSettingManager() $votesSetting = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_AVAILABLE_VOTES);
->getSettingValue($this, self::SETTING_AVAILABLE_VOTES);
$votes = explode(',', $votesSetting); $votes = explode(',', $votesSetting);
$voteLow = intval($votes[0]); $voteLow = intval($votes[0]);
$voteHigh = $voteLow + 2; $voteHigh = $voteLow + 2;
@ -661,12 +600,10 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$vote /= $voteHigh; $vote /= $voteHigh;
// Save vote // Save vote
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
// Update vote in MX karma array // Update vote in MX karma array
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
&& isset($this->mxKarma['session']) && isset($this->mxKarma['session'])
) { ) {
if (!isset($this->mxKarma['votes'][$player->login])) { if (!isset($this->mxKarma['votes'][$player->login])) {
@ -701,16 +638,14 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$voted = $this->getPlayerVote($player, $map); $voted = $this->getPlayerVote($player, $map);
if (!$voted) { if (!$voted) {
$this->maniaControl->getStatisticManager() $this->maniaControl->getStatisticManager()->incrementStat(self::STAT_PLAYER_MAPVOTES, $player, $this->maniaControl->getServer()->index);
->incrementStat(self::STAT_PLAYER_MAPVOTES, $player, $this->maniaControl->getServer()->index);
} }
$success = $this->savePlayerVote($player, $map, $vote); $success = $this->savePlayerVote($player, $map, $vote);
if (!$success) { if (!$success) {
return false; return false;
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_KARMA_CHANGED);
->triggerCallback(self::CB_KARMA_CHANGED);
$this->updateManialink = true; $this->updateManialink = true;
return true; return true;
} }
@ -723,8 +658,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @return int * @return int
*/ */
public function getPlayerVote(Player $player, Map $map) { public function getPlayerVote(Player $player, Map $map) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT * FROM `" . self::TABLE_KARMA . "` $query = "SELECT * FROM `" . self::TABLE_KARMA . "`
WHERE `playerIndex` = {$player->index} WHERE `playerIndex` = {$player->index}
AND `mapIndex` = {$map->index} AND `mapIndex` = {$map->index}
@ -753,8 +687,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @return bool * @return bool
*/ */
private function savePlayerVote(Player $player, Map $map, $vote) { private function savePlayerVote(Player $player, Map $map, $vote) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "INSERT INTO `" . self::TABLE_KARMA . "` ( $query = "INSERT INTO `" . self::TABLE_KARMA . "` (
`mapIndex`, `mapIndex`,
`playerIndex`, `playerIndex`,
@ -781,8 +714,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @return array * @return array
*/ */
public function getMapPlayerVotes(Map $map) { public function getMapPlayerVotes(Map $map) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT * FROM `" . self::TABLE_KARMA . "` $query = "SELECT * FROM `" . self::TABLE_KARMA . "`
WHERE `mapIndex` = {$map->index} WHERE `mapIndex` = {$map->index}
AND `vote` >= 0;"; AND `vote` >= 0;";
@ -794,8 +726,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$votes = array(); $votes = array();
while ($vote = $result->fetch_object()) { while ($vote = $result->fetch_object()) {
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayerByIndex($vote->playerIndex);
->getPlayerByIndex($vote->playerIndex);
$karma = $vote->vote; $karma = $vote->vote;
$voteArray = array('player' => $player, 'karma' => $karma); $voteArray = array('player' => $player, 'karma' => $karma);
array_push($votes, $voteArray); array_push($votes, $voteArray);
@ -835,8 +766,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$this->handle1Second(time()); $this->handle1Second(time());
} else { } else {
$this->updateManialink = false; $this->updateManialink = false;
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_KARMA);
->hideManialink(self::MLID_KARMA);
} }
break; break;
} }
@ -851,20 +781,17 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
return; return;
} }
$displayMxKarma = $this->maniaControl->getSettingManager() $displayMxKarma = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_DISPLAY_MX);
->getSettingValue($this, self::SETTING_WIDGET_DISPLAY_MX);
// Get players // Get players
$players = $this->updateManialink; $players = $this->updateManialink;
if ($players === true) { if ($players === true) {
$players = $this->maniaControl->getPlayerManager() $players = $this->maniaControl->getPlayerManager()->getPlayers();
->getPlayers();
} }
$this->updateManialink = false; $this->updateManialink = false;
// Get map karma // Get map karma
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
// Display the mx Karma if the setting is chosen and the MX session is available // Display the mx Karma if the setting is chosen and the MX session is available
if ($displayMxKarma && isset($this->mxKarma['session']) && isset($this->mxKarma['voteCount'])) { if ($displayMxKarma && isset($this->mxKarma['session']) && isset($this->mxKarma['voteCount'])) {
@ -876,8 +803,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
$voteCount = $votes['count']; $voteCount = $votes['count'];
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
) { ) {
// Build karma manialink // Build karma manialink
$this->buildManialink(); $this->buildManialink();
@ -912,8 +838,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
// $votesFrame->removeChildren(); // $votesFrame->removeChildren();
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($this->manialink, $login);
->sendManialink($this->manialink, $login);
} }
} }
} }
@ -925,8 +850,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @return float | bool * @return float | bool
*/ */
public function getMapKarma(Map $map) { public function getMapKarma(Map $map) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT AVG(`vote`) AS `karma` FROM `" . self::TABLE_KARMA . "` $query = "SELECT AVG(`vote`) AS `karma` FROM `" . self::TABLE_KARMA . "`
WHERE `mapIndex` = {$map->index} WHERE `mapIndex` = {$map->index}
AND `vote` >= 0;"; AND `vote` >= 0;";
@ -955,8 +879,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @return array * @return array
*/ */
public function getMapVotes(Map $map) { public function getMapVotes(Map $map) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT `vote`, COUNT(`vote`) AS `count` FROM `" . self::TABLE_KARMA . "` $query = "SELECT `vote`, COUNT(`vote`) AS `count` FROM `" . self::TABLE_KARMA . "`
WHERE `mapIndex` = {$map->index} WHERE `mapIndex` = {$map->index}
AND `vote` >= 0 AND `vote` >= 0
@ -987,25 +910,14 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
return; return;
} }
$title = $this->maniaControl->getSettingManager() $title = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_TITLE);
->getSettingValue($this, self::SETTING_WIDGET_TITLE); $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSX);
$posX = $this->maniaControl->getSettingManager() $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSY);
->getSettingValue($this, self::SETTING_WIDGET_POSX); $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
$posY = $this->maniaControl->getSettingManager() $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_HEIGHT);
->getSettingValue($this, self::SETTING_WIDGET_POSY); $labelStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultLabelStyle();
$width = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_WIDGET_WIDTH); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$height = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_WIDGET_HEIGHT);
$labelStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultLabelStyle();
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$manialink = new ManiaLink(self::MLID_KARMA); $manialink = new ManiaLink(self::MLID_KARMA);
@ -1056,14 +968,12 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* @param Map $map * @param Map $map
*/ */
public function importMxKarmaVotes(Map $map) { public function importMxKarmaVotes(Map $map) {
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
) { ) {
return; return;
} }
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_IMPORTING)
->getSettingValue($this, self::SETTING_MX_KARMA_IMPORTING)
) { ) {
return; return;
} }
@ -1075,8 +985,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
return; return;
} }
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT `mapImported` FROM `" . self::MX_IMPORT_TABLE . "` $query = "SELECT `mapImported` FROM `" . self::MX_IMPORT_TABLE . "`
WHERE `mapIndex` = {$map->index};"; WHERE `mapIndex` = {$map->index};";
$result = $mysqli->query($query); $result = $mysqli->query($query);
@ -1130,8 +1039,7 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin {
* Save Mx Karma Votes at MapEnd * Save Mx Karma Votes at MapEnd
*/ */
public function sendMxKarmaVotes(Map $map) { public function sendMxKarmaVotes(Map $map) {
if (!$this->maniaControl->getSettingManager() if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
->getSettingValue($this, self::SETTING_MX_KARMA_ACTIVATED)
) { ) {
return; return;
} }

View File

@ -113,53 +113,32 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$this->initTables(); $this->initTables();
// Settings // Settings
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_TITLE, 'Local Records');
->initSetting($this, self::SETTING_WIDGET_TITLE, 'Local Records'); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSX, -139.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_POSY, 75);
->initSetting($this, self::SETTING_WIDGET_POSX, -139.); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 40.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINESCOUNT, 15);
->initSetting($this, self::SETTING_WIDGET_POSY, 75); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINEHEIGHT, 4.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_ENABLE, true);
->initSetting($this, self::SETTING_WIDGET_WIDTH, 40.); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NOTIFY_ONLY_DRIVER, false);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NOTIFY_BEST_RECORDS, -1);
->initSetting($this, self::SETTING_WIDGET_LINESCOUNT, 15); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_ADJUST_OUTER_BORDER, false);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_LINEHEIGHT, 4.);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_WIDGET_ENABLE, true);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_NOTIFY_ONLY_DRIVER, false);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_NOTIFY_BEST_RECORDS, -1);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_ADJUST_OUTER_BORDER, false);
// Callbacks // Callbacks
$this->maniaControl->getTimerManager() $this->maniaControl->getTimerManager()->registerTimerListening($this, 'handle1Second', 1000);
->registerTimerListening($this, 'handle1Second', 1000);
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::AFTERINIT, $this, 'handleAfterInit');
->registerCallbackListener(Callbacks::AFTERINIT, $this, 'handleAfterInit'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleMapBegin');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'handleSettingChanged');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleMapBegin'); $this->maniaControl->getCallbackManager()->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'handleSettingChanged');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(CallbackManager::CB_MP_PLAYERMANIALINKPAGEANSWER, $this, 'handleManialinkPageAnswer');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::CHECKPOINT, $this, 'handleCheckpointCallback');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::LAPFINISH, $this, 'handleLapFinishCallback');
->registerCallbackListener(RecordCallback::CHECKPOINT, $this, 'handleCheckpointCallback'); $this->maniaControl->getCallbackManager()->registerCallbackListener(RecordCallback::FINISH, $this, 'handleFinishCallback');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(RecordCallback::LAPFINISH, $this, 'handleLapFinishCallback');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(RecordCallback::FINISH, $this, 'handleFinishCallback');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('recs', 'records'), $this, 'showRecordsList', false, 'Shows a list of Local Records on the current map.');
->registerCommandListener(array('recs', 'records'), $this, 'showRecordsList', false, 'Shows a list of Local Records on the current map.'); $this->maniaControl->getCommandManager()->registerCommandListener('delrec', $this, 'deleteRecord', true, 'Removes a record from the database.');
$this->maniaControl->getCommandManager()
->registerCommandListener('delrec', $this, 'deleteRecord', true, 'Removes a record from the database.');
$this->updateManialink = true; $this->updateManialink = true;
@ -170,8 +149,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* Initialize needed database tables * Initialize needed database tables
*/ */
private function initTables() { private function initTables() {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_RECORDS . "` ( $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_RECORDS . "` (
`index` int(11) NOT NULL AUTO_INCREMENT, `index` int(11) NOT NULL AUTO_INCREMENT,
`mapIndex` int(11) NOT NULL, `mapIndex` int(11) NOT NULL,
@ -198,8 +176,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @see \ManiaControl\Plugins\Plugin::unload() * @see \ManiaControl\Plugins\Plugin::unload()
*/ */
public function unload() { public function unload() {
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_RECORDS);
->hideManialink(self::MLID_RECORDS);
} }
/** /**
@ -218,12 +195,10 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
} }
$this->updateManialink = false; $this->updateManialink = false;
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
->getSettingValue($this, self::SETTING_WIDGET_ENABLE)
) { ) {
$manialink = $this->buildManialink(); $manialink = $this->buildManialink();
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($manialink);
->sendManialink($manialink);
} }
} }
@ -233,33 +208,20 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @return string * @return string
*/ */
private function buildManialink() { private function buildManialink() {
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
if (!$map) { if (!$map) {
return null; return null;
} }
$title = $this->maniaControl->getSettingManager() $title = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_TITLE);
->getSettingValue($this, self::SETTING_WIDGET_TITLE); $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSX);
$posX = $this->maniaControl->getSettingManager() $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_POSY);
->getSettingValue($this, self::SETTING_WIDGET_POSX); $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
$posY = $this->maniaControl->getSettingManager() $lines = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINESCOUNT);
->getSettingValue($this, self::SETTING_WIDGET_POSY); $lineHeight = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINEHEIGHT);
$width = $this->maniaControl->getSettingManager() $labelStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultLabelStyle();
->getSettingValue($this, self::SETTING_WIDGET_WIDTH); $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
$lines = $this->maniaControl->getSettingManager() $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
->getSettingValue($this, self::SETTING_WIDGET_LINESCOUNT);
$lineHeight = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_WIDGET_LINEHEIGHT);
$labelStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultLabelStyle();
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$records = $this->getLocalRecords($map); $records = $this->getLocalRecords($map);
if (!is_array($records)) { if (!is_array($records)) {
@ -275,8 +237,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$backgroundQuad = new Quad(); $backgroundQuad = new Quad();
$frame->add($backgroundQuad); $frame->add($backgroundQuad);
$backgroundQuad->setVAlign($backgroundQuad::TOP); $backgroundQuad->setVAlign($backgroundQuad::TOP);
$adjustOuterBorder = $this->maniaControl->getSettingManager() $adjustOuterBorder = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ADJUST_OUTER_BORDER);
->getSettingValue($this, self::SETTING_ADJUST_OUTER_BORDER);
$height = 7. + ($adjustOuterBorder ? count($records) : $lines) * $lineHeight; $height = 7. + ($adjustOuterBorder ? count($records) : $lines) * $lineHeight;
$backgroundQuad->setSize($width * 1.05, $height); $backgroundQuad->setSize($width * 1.05, $height);
$backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setStyles($quadStyle, $quadSubstyle);
@ -347,8 +308,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @return array * @return array
*/ */
public function getLocalRecords(Map $map, $limit = -1) { public function getLocalRecords(Map $map, $limit = -1) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$limit = ($limit > 0 ? 'LIMIT ' . $limit : ''); $limit = ($limit > 0 ? 'LIMIT ' . $limit : '');
$query = "SELECT * FROM ( $query = "SELECT * FROM (
SELECT recs.*, @rank := @rank + 1 as `rank` FROM `" . self::TABLE_RECORDS . "` recs, (SELECT @rank := 0) ra SELECT recs.*, @rank := @rank + 1 as `rank` FROM `" . self::TABLE_RECORDS . "` recs, (SELECT @rank := 0) ra
@ -386,8 +346,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
if ($setting->value) { if ($setting->value) {
$this->updateManialink = true; $this->updateManialink = true;
} else { } else {
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_RECORDS);
->hideManialink(self::MLID_RECORDS);
} }
break; break;
} }
@ -432,8 +391,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
return; return;
} }
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
$checkpointsString = $this->getCheckpoints($callback->player->login); $checkpointsString = $this->getCheckpoints($callback->player->login);
$this->checkpoints[$callback->login] = array(); $this->checkpoints[$callback->login] = array();
@ -449,15 +407,13 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
// Same time // Same time
// TODO: respect notify-settings // TODO: respect notify-settings
$message = '$<$fff' . $callback->player->nickname . '$> equalized his/her $<$ff0' . $oldRecord->rank . '.$> Local Record: $<$fff' . Formatter::formatTime($oldRecord->time) . '$>!'; $message = '$<$fff' . $callback->player->nickname . '$> equalized his/her $<$ff0' . $oldRecord->rank . '.$> Local Record: $<$fff' . Formatter::formatTime($oldRecord->time) . '$>!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation('$3c0' . $message);
->sendInformation('$3c0' . $message);
return; return;
} }
} }
// Save time // Save time
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "INSERT INTO `" . self::TABLE_RECORDS . "` ( $query = "INSERT INTO `" . self::TABLE_RECORDS . "` (
`mapIndex`, `mapIndex`,
`playerIndex`, `playerIndex`,
@ -482,10 +438,8 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$newRecord = $this->getLocalRecord($map, $callback->player); $newRecord = $this->getLocalRecord($map, $callback->player);
$improvedRank = (!$oldRecord || $newRecord->rank < $oldRecord->rank); $improvedRank = (!$oldRecord || $newRecord->rank < $oldRecord->rank);
$notifyOnlyDriver = $this->maniaControl->getSettingManager() $notifyOnlyDriver = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NOTIFY_ONLY_DRIVER);
->getSettingValue($this, self::SETTING_NOTIFY_ONLY_DRIVER); $notifyOnlyBestRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NOTIFY_BEST_RECORDS);
$notifyOnlyBestRecords = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_NOTIFY_BEST_RECORDS);
$message = '$3c0'; $message = '$3c0';
if ($notifyOnlyDriver) { if ($notifyOnlyDriver) {
@ -506,15 +460,12 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
} }
if ($notifyOnlyDriver) { if ($notifyOnlyDriver) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message, $callback->player);
->sendInformation($message, $callback->player);
} else if (!$notifyOnlyBestRecords || $newRecord->rank <= $notifyOnlyBestRecords) { } else if (!$notifyOnlyBestRecords || $newRecord->rank <= $notifyOnlyBestRecords) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendInformation($message);
->sendInformation($message);
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_LOCALRECORDS_CHANGED, $newRecord);
->triggerCallback(self::CB_LOCALRECORDS_CHANGED, $newRecord);
} }
/** /**
@ -546,8 +497,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @return mixed * @return mixed
*/ */
private function getLocalRecord(Map $map, Player $player) { private function getLocalRecord(Map $map, Player $player) {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT records.* FROM ( $query = "SELECT records.* FROM (
SELECT recs.*, @rank := @rank + 1 as `rank` FROM `" . self::TABLE_RECORDS . "` recs, (SELECT @rank := 0) ra SELECT recs.*, @rank := @rank + 1 as `rank` FROM `" . self::TABLE_RECORDS . "` recs, (SELECT @rank := 0) ra
WHERE recs.`mapIndex` = {$map->index} WHERE recs.`mapIndex` = {$map->index}
@ -586,8 +536,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$actionId = $callback[1][2]; $actionId = $callback[1][2];
$login = $callback[1][1]; $login = $callback[1][1];
$player = $this->maniaControl->getPlayerManager() $player = $this->maniaControl->getPlayerManager()->getPlayer($login);
->getPlayer($login);
if ($actionId === self::ACTION_SHOW_RECORDSLIST) { if ($actionId === self::ACTION_SHOW_RECORDSLIST) {
$this->showRecordsList(array(), $player); $this->showRecordsList(array(), $player);
@ -601,16 +550,11 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @param Player $player * @param Player $player
*/ */
public function showRecordsList(array $chat, Player $player) { public function showRecordsList(array $chat, Player $player) {
$width = $this->maniaControl->getManialinkManager() $width = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsWidth();
->getStyleManager() $height = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsHeight();
->getListWidgetsWidth();
$height = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getListWidgetsHeight();
// get PlayerList // get PlayerList
$records = $this->getLocalRecords($this->maniaControl->getMapManager() $records = $this->getLocalRecords($this->maniaControl->getMapManager()->getCurrentMap());
->getCurrentMap());
// create manialink // create manialink
$maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID); $maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID);
@ -619,9 +563,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$script->addFeature($paging); $script->addFeature($paging);
// Main frame // Main frame
$frame = $this->maniaControl->getManialinkManager() $frame = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultListFrame($script, $paging);
->getStyleManager()
->getDefaultListFrame($script, $paging);
$maniaLink->add($frame); $maniaLink->add($frame);
// Start offsets // Start offsets
@ -629,9 +571,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$posY = $height / 2; $posY = $height / 2;
// Predefine Description Label // Predefine Description Label
$descriptionLabel = $this->maniaControl->getManialinkManager() $descriptionLabel = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultDescriptionLabel();
->getStyleManager()
->getDefaultDescriptionLabel();
$frame->add($descriptionLabel); $frame->add($descriptionLabel);
// Headline // Headline
@ -639,8 +579,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$frame->add($headFrame); $frame->add($headFrame);
$headFrame->setY($posY - 5); $headFrame->setY($posY - 5);
$array = array('Rank' => $posX + 5, 'Nickname' => $posX + 18, 'Login' => $posX + 70, 'Time' => $posX + 101); $array = array('Rank' => $posX + 5, 'Nickname' => $posX + 18, 'Login' => $posX + 70, 'Time' => $posX + 101);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($headFrame, $array);
->labelLine($headFrame, $array);
$index = 0; $index = 0;
$posY = $height / 2 - 10; $posY = $height / 2 - 10;
@ -669,8 +608,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
$listRecord->nickname = $listRecord->login; $listRecord->nickname = $listRecord->login;
} }
$array = array($listRecord->rank => $posX + 5, '$fff' . $listRecord->nickname => $posX + 18, $listRecord->login => $posX + 70, Formatter::formatTime($listRecord->time) => $posX + 101); $array = array($listRecord->rank => $posX + 5, '$fff' . $listRecord->nickname => $posX + 18, $listRecord->login => $posX + 70, Formatter::formatTime($listRecord->time) => $posX + 101);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($recordFrame, $array);
->labelLine($recordFrame, $array);
$recordFrame->setY($posY); $recordFrame->setY($posY);
@ -679,8 +617,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
} }
// Render and display xml // Render and display xml
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->displayWidget($maniaLink, $player, 'PlayerList');
->displayWidget($maniaLink, $player, 'PlayerList');
} }
/** /**
@ -690,33 +627,27 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
* @param Player $player * @param Player $player
*/ */
public function deleteRecord(array $chat, Player $player) { public function deleteRecord(array $chat, Player $player) {
if (!$this->maniaControl->getAuthenticationManager() if (!$this->maniaControl->getAuthenticationManager()->checkRight($player, AuthenticationManager::AUTH_LEVEL_MASTERADMIN)
->checkRight($player, AuthenticationManager::AUTH_LEVEL_MASTERADMIN)
) { ) {
$this->maniaControl->getAuthenticationManager() $this->maniaControl->getAuthenticationManager()->sendNotAllowed($player);
->sendNotAllowed($player);
return; return;
} }
$commandParts = explode(' ', $chat[1][2]); $commandParts = explode(' ', $chat[1][2]);
if (count($commandParts) < 2) { if (count($commandParts) < 2) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendUsageInfo('Missing Record ID! (Example: //delrec 3)', $player);
->sendUsageInfo('Missing Record ID! (Example: //delrec 3)', $player);
return; return;
} }
$recordId = (int)$commandParts[1]; $recordId = (int)$commandParts[1];
$currentMap = $this->maniaControl->getMapManager() $currentMap = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
$records = $this->getLocalRecords($currentMap); $records = $this->getLocalRecords($currentMap);
if (count($records) < $recordId) { if (count($records) < $recordId) {
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendError('Cannot remove record $<$fff' . $recordId . '$>!', $player);
->sendError('Cannot remove record $<$fff' . $recordId . '$>!', $player);
return; return;
} }
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "DELETE FROM `" . self::TABLE_RECORDS . "` $query = "DELETE FROM `" . self::TABLE_RECORDS . "`
WHERE `mapIndex` = {$currentMap->index} WHERE `mapIndex` = {$currentMap->index}
AND `playerIndex` = {$player->index};"; AND `playerIndex` = {$player->index};";
@ -726,9 +657,7 @@ class LocalRecordsPlugin implements CallbackListener, CommandListener, TimerList
return; return;
} }
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_LOCALRECORDS_CHANGED, null);
->triggerCallback(self::CB_LOCALRECORDS_CHANGED, null); $this->maniaControl->getChat()->sendInformation('Record no. $<$fff' . $recordId . '$> has been removed!');
$this->maniaControl->getChat()
->sendInformation('Record no. $<$fff' . $recordId . '$> has been removed!');
} }
} }

View File

@ -100,32 +100,22 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
$this->initTables(); $this->initTables();
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING, 100);
->initSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING, 100); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MIN_HITS_POINTS_RANKING, 15);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_MIN_HITS_POINTS_RANKING, 15);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MIN_REQUIRED_RECORDS, 3);
->initSetting($this, self::SETTING_MIN_REQUIRED_RECORDS, 3); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAX_STORED_RECORDS, 50);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_MAX_STORED_RECORDS, 50);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_RANKING_TYPE, $this->getRankingsTypeArray());
->initSetting($this, self::SETTING_RANKING_TYPE, $this->getRankingsTypeArray());
// Callbacks // Callbacks
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleEndMap');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleEndMap');
// Commands // Commands
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener('rank', $this, 'command_showRank', false, 'Shows your current ServerRank.');
->registerCommandListener('rank', $this, 'command_showRank', false, 'Shows your current ServerRank.'); $this->maniaControl->getCommandManager()->registerCommandListener('nextrank', $this, 'command_nextRank', false, 'Shows the person in front of you in the ServerRanking.');
$this->maniaControl->getCommandManager() $this->maniaControl->getCommandManager()->registerCommandListener(array('topranks', 'top100'), $this, 'command_topRanks', false, 'Shows an overview of the best-ranked 100 players.');
->registerCommandListener('nextrank', $this, 'command_nextRank', false, 'Shows the person in front of you in the ServerRanking.');
$this->maniaControl->getCommandManager()
->registerCommandListener(array('topranks', 'top100'), $this, 'command_topRanks', false, 'Shows an overview of the best-ranked 100 players.');
// TODO: only update records count // TODO: only update records count
$this->resetRanks(); $this->resetRanks();
@ -138,12 +128,9 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
* @return array[] * @return array[]
*/ */
private function getRankingsTypeArray() { private function getRankingsTypeArray() {
$script = $this->maniaControl->getClient() $script = $this->maniaControl->getClient()->getScriptName();
->getScriptName();
if ($this->maniaControl->getMapManager() if ($this->maniaControl->getMapManager()->getCurrentMap()->getGame() === 'tm'
->getCurrentMap()
->getGame() === 'tm'
) { ) {
//TODO also add obstacle here as default //TODO also add obstacle here as default
return array(self::RANKING_TYPE_RECORDS, self::RANKING_TYPE_POINTS, self::RANKING_TYPE_RATIOS); return array(self::RANKING_TYPE_RECORDS, self::RANKING_TYPE_POINTS, self::RANKING_TYPE_RATIOS);
@ -158,8 +145,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
* Create necessary database tables * Create necessary database tables
*/ */
private function initTables() { private function initTables() {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_RANK . "` ( $query = "CREATE TABLE IF NOT EXISTS `" . self::TABLE_RANK . "` (
`PlayerIndex` int(11) NOT NULL, `PlayerIndex` int(11) NOT NULL,
`Rank` int(11) NOT NULL, `Rank` int(11) NOT NULL,
@ -177,8 +163,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
* Resets and rebuilds the Ranking * Resets and rebuilds the Ranking
*/ */
private function resetRanks() { private function resetRanks() {
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
// Erase old Average Data // Erase old Average Data
$query = "TRUNCATE TABLE `" . self::TABLE_RANK . "`;"; $query = "TRUNCATE TABLE `" . self::TABLE_RANK . "`;";
@ -187,20 +172,15 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
trigger_error($mysqli->error); trigger_error($mysqli->error);
} }
$type = $this->maniaControl->getSettingManager() $type = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_RANKING_TYPE);
->getSettingValue($this, self::SETTING_RANKING_TYPE);
switch ($type) { switch ($type) {
case self::RANKING_TYPE_RATIOS: case self::RANKING_TYPE_RATIOS:
$minHits = $this->maniaControl->getSettingManager() $minHits = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_HITS_RATIO_RANKING);
->getSettingValue($this, self::SETTING_MIN_HITS_RATIO_RANKING);
$hits = $this->maniaControl->getStatisticManager() $hits = $this->maniaControl->getStatisticManager()->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1, $minHits);
->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1, $minHits); $killDeathRatios = $this->maniaControl->getStatisticManager()->getStatsRanking(StatisticManager::SPECIAL_STAT_KD_RATIO);
$killDeathRatios = $this->maniaControl->getStatisticManager() $accuracies = $this->maniaControl->getStatisticManager()->getStatsRanking(StatisticManager::SPECIAL_STAT_LASER_ACC);
->getStatsRanking(StatisticManager::SPECIAL_STAT_KD_RATIO);
$accuracies = $this->maniaControl->getStatisticManager()
->getStatsRanking(StatisticManager::SPECIAL_STAT_LASER_ACC);
$ranks = array(); $ranks = array();
foreach ($hits as $login => $hitCount) { foreach ($hits as $login => $hitCount) {
@ -214,24 +194,19 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
break; break;
case self::RANKING_TYPE_POINTS: case self::RANKING_TYPE_POINTS:
$minHits = $this->maniaControl->getSettingManager() $minHits = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_HITS_POINTS_RANKING);
->getSettingValue($this, self::SETTING_MIN_HITS_POINTS_RANKING); $ranks = $this->maniaControl->getStatisticManager()->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1, $minHits);
$ranks = $this->maniaControl->getStatisticManager()
->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1, $minHits);
break; break;
case self::RANKING_TYPE_RECORDS: case self::RANKING_TYPE_RECORDS:
// TODO: verify workable status // TODO: verify workable status
/** @var LocalRecordsPlugin $localRecordsPlugin */ /** @var LocalRecordsPlugin $localRecordsPlugin */
$localRecordsPlugin = $this->maniaControl->getPluginManager() $localRecordsPlugin = $this->maniaControl->getPluginManager()->getPlugin(__NAMESPACE__ . '\LocalRecordsPlugin');
->getPlugin(__NAMESPACE__ . '\LocalRecordsPlugin');
if (!$localRecordsPlugin) { if (!$localRecordsPlugin) {
return; return;
} }
$requiredRecords = $this->maniaControl->getSettingManager() $requiredRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_REQUIRED_RECORDS);
->getSettingValue($this, self::SETTING_MIN_REQUIRED_RECORDS); $maxRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAX_STORED_RECORDS);
$maxRecords = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_MAX_STORED_RECORDS);
$query = "SELECT `playerIndex`, COUNT(*) AS `Cnt` $query = "SELECT `playerIndex`, COUNT(*) AS `Cnt`
FROM `" . LocalRecordsPlugin::TABLE_RECORDS . "` FROM `" . LocalRecordsPlugin::TABLE_RECORDS . "`
@ -245,8 +220,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
} }
$result->free_result(); $result->free_result();
$maps = $this->maniaControl->getMapManager() $maps = $this->maniaControl->getMapManager()->getMaps();
->getMaps();
foreach ($maps as $map) { foreach ($maps as $map) {
$records = $localRecordsPlugin->getLocalRecords($map, $maxRecords); $records = $localRecordsPlugin->getLocalRecords($map, $maxRecords);
@ -321,17 +295,14 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
public function showRank(Player $player) { public function showRank(Player $player) {
$rankObj = $this->getRank($player); $rankObj = $this->getRank($player);
$type = $this->maniaControl->getSettingManager() $type = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_RANKING_TYPE);
->getSettingValue($this, self::SETTING_RANKING_TYPE);
$message = ''; $message = '';
if ($rankObj) { if ($rankObj) {
switch ($type) { switch ($type) {
case self::RANKING_TYPE_RATIOS: case self::RANKING_TYPE_RATIOS:
$killDeathRatio = $this->maniaControl->getStatisticManager() $killDeathRatio = $this->maniaControl->getStatisticManager()->getStatisticData(StatisticManager::SPECIAL_STAT_KD_RATIO, $player->index);
->getStatisticData(StatisticManager::SPECIAL_STAT_KD_RATIO, $player->index); $accuracy = $this->maniaControl->getStatisticManager()->getStatisticData(StatisticManager::SPECIAL_STAT_LASER_ACC, $player->index);
$accuracy = $this->maniaControl->getStatisticManager()
->getStatisticData(StatisticManager::SPECIAL_STAT_LASER_ACC, $player->index);
$message = '$0f3Your Server rank is $<$ff3' . $rankObj->rank . '$> / $<$fff' . $this->recordCount . '$> (K/D: $<$fff' . round($killDeathRatio, 2) . '$> Acc: $<$fff' . round($accuracy * 100) . '%$>)'; $message = '$0f3Your Server rank is $<$ff3' . $rankObj->rank . '$> / $<$fff' . $this->recordCount . '$> (K/D: $<$fff' . round($killDeathRatio, 2) . '$> Acc: $<$fff' . round($accuracy * 100) . '%$>)';
break; break;
case self::RANKING_TYPE_POINTS: case self::RANKING_TYPE_POINTS:
@ -343,23 +314,19 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
} else { } else {
switch ($type) { switch ($type) {
case self::RANKING_TYPE_RATIOS: case self::RANKING_TYPE_RATIOS:
$minHits = $this->maniaControl->getSettingManager() $minHits = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_HITS_RATIO_RANKING);
->getSettingValue($this, self::SETTING_MIN_HITS_RATIO_RANKING);
$message = '$0f3 You must make $<$fff' . $minHits . '$> Hits on this server before receiving a rank...'; $message = '$0f3 You must make $<$fff' . $minHits . '$> Hits on this server before receiving a rank...';
break; break;
case self::RANKING_TYPE_POINTS: case self::RANKING_TYPE_POINTS:
$minPoints = $this->maniaControl->getSettingManager() $minPoints = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_HITS_POINTS_RANKING);
->getSettingValue($this, self::SETTING_MIN_HITS_POINTS_RANKING);
$message = '$0f3 You must make $<$fff' . $minPoints . '$> Hits on this server before receiving a rank...'; $message = '$0f3 You must make $<$fff' . $minPoints . '$> Hits on this server before receiving a rank...';
break; break;
case self::RANKING_TYPE_RECORDS: case self::RANKING_TYPE_RECORDS:
$minRecords = $this->maniaControl->getSettingManager() $minRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MIN_REQUIRED_RECORDS);
->getSettingValue($this, self::SETTING_MIN_REQUIRED_RECORDS);
$message = '$0f3 You need $<$fff' . $minRecords . '$> Records on this server before receiving a rank...'; $message = '$0f3 You need $<$fff' . $minRecords . '$> Records on this server before receiving a rank...';
} }
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($message, $player);
->sendChat($message, $player);
} }
/** /**
@ -370,8 +337,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
*/ */
private function getRank(Player $player) { private function getRank(Player $player) {
//TODO setting global from db or local //TODO setting global from db or local
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT * FROM `" . self::TABLE_RANK . "` $query = "SELECT * FROM `" . self::TABLE_RANK . "`
WHERE `PlayerIndex` = {$player->index};"; WHERE `PlayerIndex` = {$player->index};";
@ -404,14 +370,12 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
if ($rankObject->rank > 1) { if ($rankObject->rank > 1) {
$nextRank = $this->getNextRank($player); $nextRank = $this->getNextRank($player);
$nextPlayer = $this->maniaControl->getPlayerManager() $nextPlayer = $this->maniaControl->getPlayerManager()->getPlayerByIndex($nextRank->playerIndex);
->getPlayerByIndex($nextRank->playerIndex);
$message = '$0f3The next better ranked player is $fff' . $nextPlayer->nickname; $message = '$0f3The next better ranked player is $fff' . $nextPlayer->nickname;
} else { } else {
$message = '$0f3No better ranked player :-)'; $message = '$0f3No better ranked player :-)';
} }
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($message, $player);
->sendChat($message, $player);
return true; return true;
} }
@ -429,8 +393,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
} }
$nextRank = $rankObject->rank - 1; $nextRank = $rankObject->rank - 1;
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$query = "SELECT * FROM `" . self::TABLE_RANK . "` $query = "SELECT * FROM `" . self::TABLE_RANK . "`
WHERE `Rank` = {$nextRank};"; WHERE `Rank` = {$nextRank};";
$result = $mysqli->query($query); $result = $mysqli->query($query);
@ -454,8 +417,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
public function handleEndMap() { public function handleEndMap() {
$this->resetRanks(); $this->resetRanks();
foreach ($this->maniaControl->getPlayerManager() foreach ($this->maniaControl->getPlayerManager()->getPlayers() as $player) {
->getPlayers() as $player) {
if ($player->isFakePlayer()) { if ($player->isFakePlayer()) {
continue; continue;
} }
@ -464,8 +426,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
} }
// Trigger callback // Trigger callback
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->triggerCallback(self::CB_RANK_BUILT);
->triggerCallback(self::CB_RANK_BUILT);
} }
/** /**
@ -487,8 +448,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
public function command_nextRank(array $chatCallback, Player $player) { public function command_nextRank(array $chatCallback, Player $player) {
if (!$this->showNextRank($player)) { if (!$this->showNextRank($player)) {
$message = '$0f3You need to have a ServerRank first!'; $message = '$0f3You need to have a ServerRank first!';
$this->maniaControl->getChat() $this->maniaControl->getChat()->sendChat($message, $player);
->sendChat($message, $player);
} }
} }
@ -510,20 +470,15 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
private function showTopRanksList(Player $player) { private function showTopRanksList(Player $player) {
$query = "SELECT * FROM `" . self::TABLE_RANK . "` $query = "SELECT * FROM `" . self::TABLE_RANK . "`
ORDER BY `Rank` ASC LIMIT 0, 100;"; ORDER BY `Rank` ASC LIMIT 0, 100;";
$mysqli = $this->maniaControl->getDatabase() $mysqli = $this->maniaControl->getDatabase()->getMysqli();
->getMysqli();
$result = $mysqli->query($query); $result = $mysqli->query($query);
if ($mysqli->error) { if ($mysqli->error) {
trigger_error($mysqli->error); trigger_error($mysqli->error);
return; return;
} }
$width = $this->maniaControl->getManialinkManager() $width = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsWidth();
->getStyleManager() $height = $this->maniaControl->getManialinkManager()->getStyleManager()->getListWidgetsHeight();
->getListWidgetsWidth();
$height = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getListWidgetsHeight();
// create manialink // create manialink
$maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID); $maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID);
@ -532,9 +487,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
$script->addFeature($paging); $script->addFeature($paging);
// Main frame // Main frame
$frame = $this->maniaControl->getManialinkManager() $frame = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultListFrame($script, $paging);
->getStyleManager()
->getDefaultListFrame($script, $paging);
$maniaLink->add($frame); $maniaLink->add($frame);
// Start offsets // Start offsets
@ -542,9 +495,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
$posY = $height / 2; $posY = $height / 2;
//Predefine description Label //Predefine description Label
$descriptionLabel = $this->maniaControl->getManialinkManager() $descriptionLabel = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultDescriptionLabel();
->getStyleManager()
->getDefaultDescriptionLabel();
$frame->add($descriptionLabel); $frame->add($descriptionLabel);
// Headline // Headline
@ -552,8 +503,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
$frame->add($headFrame); $frame->add($headFrame);
$headFrame->setY($posY - 5); $headFrame->setY($posY - 5);
$array = array('$oRank' => $posX + 5, '$oNickname' => $posX + 18, '$oAverage' => $posX + 70); $array = array('$oRank' => $posX + 5, '$oNickname' => $posX + 18, '$oAverage' => $posX + 70);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($headFrame, $array);
->labelLine($headFrame, $array);
$index = 1; $index = 1;
$posY -= 10; $posY -= 10;
@ -579,19 +529,16 @@ class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener {
$lineQuad->setZ(0.001); $lineQuad->setZ(0.001);
} }
$playerObject = $this->maniaControl->getPlayerManager() $playerObject = $this->maniaControl->getPlayerManager()->getPlayerByIndex($rankedPlayer->PlayerIndex);
->getPlayerByIndex($rankedPlayer->PlayerIndex);
$array = array($rankedPlayer->Rank => $posX + 5, $playerObject->nickname => $posX + 18, (string)round($rankedPlayer->Avg, 2) => $posX + 70); $array = array($rankedPlayer->Rank => $posX + 5, $playerObject->nickname => $posX + 18, (string)round($rankedPlayer->Avg, 2) => $posX + 70);
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->labelLine($playerFrame, $array);
->labelLine($playerFrame, $array);
$posY -= 4; $posY -= 4;
$index++; $index++;
} }
// Render and display xml // Render and display xml
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->displayWidget($maniaLink, $player, 'TopRanks');
->displayWidget($maniaLink, $player, 'TopRanks');
} }
} }

View File

@ -123,68 +123,40 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
// Set CustomUI Setting // Set CustomUI Setting
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->getCustomUIManager()->setChallengeInfoVisible(false);
->getCustomUIManager()
->setChallengeInfoVisible(false);
// Callbacks // Callbacks
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleOnBeginMap');
->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleOnBeginMap'); $this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleOnEndMap');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
->registerCallbackListener(Callbacks::ENDMAP, $this, 'handleOnEndMap'); $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'updateWidgets');
$this->maniaControl->getCallbackManager() $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'updateWidgets');
->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'updateWidgets');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'updateWidgets');
$this->maniaControl->getCallbackManager()
->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings');
// Settings // Settings
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED, true);
->initSetting($this, self::SETTING_MAP_WIDGET_ACTIVATED, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAP_WIDGET_POSX, 160 - 20);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAP_WIDGET_POSY, 90 - 4.5);
->initSetting($this, self::SETTING_MAP_WIDGET_POSX, 160 - 20); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAP_WIDGET_WIDTH, 40);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAP_WIDGET_HEIGHT, 9.);
->initSetting($this, self::SETTING_MAP_WIDGET_POSY, 90 - 4.5);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_MAP_WIDGET_WIDTH, 40);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_MAP_WIDGET_HEIGHT, 9.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED, true);
->initSetting($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SERVERINFO_WIDGET_POSX, -160 + 17.5);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SERVERINFO_WIDGET_POSY, 90 - 4.5);
->initSetting($this, self::SETTING_SERVERINFO_WIDGET_POSX, -160 + 17.5); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SERVERINFO_WIDGET_WIDTH, 35);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SERVERINFO_WIDGET_HEIGHT, 9.);
->initSetting($this, self::SETTING_SERVERINFO_WIDGET_POSY, 90 - 4.5);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_SERVERINFO_WIDGET_WIDTH, 35);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_SERVERINFO_WIDGET_HEIGHT, 9.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEXTMAP_WIDGET_ACTIVATED, true);
->initSetting($this, self::SETTING_NEXTMAP_WIDGET_ACTIVATED, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEXTMAP_WIDGET_POSX, 160 - 20);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEXTMAP_WIDGET_POSY, 90 - 25.5);
->initSetting($this, self::SETTING_NEXTMAP_WIDGET_POSX, 160 - 20); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEXTMAP_WIDGET_WIDTH, 40);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NEXTMAP_WIDGET_HEIGHT, 12.);
->initSetting($this, self::SETTING_NEXTMAP_WIDGET_POSY, 90 - 25.5);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_NEXTMAP_WIDGET_WIDTH, 40);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_NEXTMAP_WIDGET_HEIGHT, 12.);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED, true);
->initSetting($this, self::SETTING_CLOCK_WIDGET_ACTIVATED, true); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_CLOCK_WIDGET_POSX, 160 - 5);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_CLOCK_WIDGET_POSY, 90 - 11);
->initSetting($this, self::SETTING_CLOCK_WIDGET_POSX, 160 - 5); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_CLOCK_WIDGET_WIDTH, 10);
$this->maniaControl->getSettingManager() $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_CLOCK_WIDGET_HEIGHT, 5.5);
->initSetting($this, self::SETTING_CLOCK_WIDGET_POSY, 90 - 11);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_CLOCK_WIDGET_WIDTH, 10);
$this->maniaControl->getSettingManager()
->initSetting($this, self::SETTING_CLOCK_WIDGET_HEIGHT, 5.5);
$this->displayWidgets(); $this->displayWidgets();
@ -196,20 +168,16 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
private function displayWidgets() { private function displayWidgets() {
// Display Map Widget // Display Map Widget
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
) { ) {
$this->maniaControl->getClient() $this->maniaControl->getClient()->triggerModeScriptEvent("Siege_SetProgressionLayerPosition", array("160.", "-67.", "0."));
->triggerModeScriptEvent("Siege_SetProgressionLayerPosition", array("160.", "-67.", "0."));
$this->displayMapWidget(); $this->displayMapWidget();
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)
) { ) {
$this->displayClockWidget(); $this->displayClockWidget();
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
) { ) {
$this->displayServerInfoWidget(); $this->displayServerInfoWidget();
} }
@ -221,20 +189,12 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* @param string $login * @param string $login
*/ */
public function displayMapWidget($login = null) { public function displayMapWidget($login = null) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_POSX);
->getSettingValue($this, self::SETTING_MAP_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_MAP_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_MAP_WIDGET_WIDTH); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$height = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_MAP_WIDGET_HEIGHT);
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$maniaLink = new ManiaLink(self::MLID_MAP_WIDGET); $maniaLink = new ManiaLink(self::MLID_MAP_WIDGET);
$script = new Script(); $script = new Script();
@ -253,8 +213,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setStyles($quadStyle, $quadSubstyle);
$backgroundQuad->addMapInfoFeature(); $backgroundQuad->addMapInfoFeature();
$map = $this->maniaControl->getMapManager() $map = $this->maniaControl->getMapManager()->getCurrentMap();
->getCurrentMap();
$label = new Label_Text(); $label = new Label_Text();
$frame->add($label); $frame->add($label);
@ -276,20 +235,15 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
if (isset($map->mx->pageurl)) { if (isset($map->mx->pageurl)) {
$quad = new Quad(); $quad = new Quad();
$frame->add($quad); $frame->add($quad);
$quad->setImageFocus($this->maniaControl->getManialinkManager() $quad->setImageFocus($this->maniaControl->getManialinkManager()->getIconManager()->getIcon(IconManager::MX_ICON_MOVER));
->getIconManager() $quad->setImage($this->maniaControl->getManialinkManager()->getIconManager()->getIcon(IconManager::MX_ICON));
->getIcon(IconManager::MX_ICON_MOVER));
$quad->setImage($this->maniaControl->getManialinkManager()
->getIconManager()
->getIcon(IconManager::MX_ICON));
$quad->setPosition(-$width / 2 + 4, -1.5, -0.5); $quad->setPosition(-$width / 2 + 4, -1.5, -0.5);
$quad->setSize(4, 4); $quad->setSize(4, 4);
$quad->setUrl($map->mx->pageurl); $quad->setUrl($map->mx->pageurl);
} }
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
@ -298,20 +252,12 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* @param bool $login * @param bool $login
*/ */
public function displayClockWidget($login = false) { public function displayClockWidget($login = false) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_POSX);
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_WIDTH); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$height = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_HEIGHT);
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$maniaLink = new ManiaLink(self::MLID_CLOCK_WIDGET); $maniaLink = new ManiaLink(self::MLID_CLOCK_WIDGET);
@ -336,8 +282,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$label->addClockFeature(false); $label->addClockFeature(false);
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
@ -346,20 +291,12 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* @param string $login * @param string $login
*/ */
public function displayServerInfoWidget($login = null) { public function displayServerInfoWidget($login = null) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_POSX);
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_WIDTH); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$height = $this->maniaControl->getSettingManager()
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_HEIGHT);
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$maniaLink = new ManiaLink(self::MLID_SERVERINFO_WIDGET); $maniaLink = new ManiaLink(self::MLID_SERVERINFO_WIDGET);
@ -375,18 +312,13 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$backgroundQuad->setSize($width, $height); $backgroundQuad->setSize($width, $height);
$backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setStyles($quadStyle, $quadSubstyle);
$serverName = $this->maniaControl->getClient() $serverName = $this->maniaControl->getClient()->getServerName();
->getServerName();
$playerCount = $this->maniaControl->getPlayerManager() $playerCount = $this->maniaControl->getPlayerManager()->getPlayerCount(true);
->getPlayerCount(true); $maxPlayers = $this->maniaControl->getClient()->getMaxPlayers();
$maxPlayers = $this->maniaControl->getClient()
->getMaxPlayers();
$spectatorCount = $this->maniaControl->getPlayerManager() $spectatorCount = $this->maniaControl->getPlayerManager()->getSpectatorCount();
->getSpectatorCount(); $maxSpectators = $this->maniaControl->getClient()->getMaxSpectators();
$maxSpectators = $this->maniaControl->getClient()
->getMaxSpectators();
$label = new Label_Text(); $label = new Label_Text();
$frame->add($label); $frame->add($label);
@ -438,8 +370,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$quad->setManialink('maniacontrol?favorite=' . urlencode($this->maniaControl->getServer()->login)); $quad->setManialink('maniacontrol?favorite=' . urlencode($this->maniaControl->getServer()->login));
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
@ -447,8 +378,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
public function unload() { public function unload() {
//Restore Siege Progression Layer //Restore Siege Progression Layer
$this->maniaControl->getClient() $this->maniaControl->getClient()->triggerModeScriptEvent('Siege_SetProgressionLayerPosition', array("160.", "90.", "0."));
->triggerModeScriptEvent('Siege_SetProgressionLayerPosition', array("160.", "90.", "0."));
$this->closeWidget(self::MLID_CLOCK_WIDGET); $this->closeWidget(self::MLID_CLOCK_WIDGET);
$this->closeWidget(self::MLID_SERVERINFO_WIDGET); $this->closeWidget(self::MLID_SERVERINFO_WIDGET);
@ -462,16 +392,14 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* @param string $widgetId * @param string $widgetId
*/ */
public function closeWidget($widgetId) { public function closeWidget($widgetId) {
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->hideManialink($widgetId);
->hideManialink($widgetId);
} }
/** /**
* Handle Begin Map Callback * Handle Begin Map Callback
*/ */
public function handleOnBeginMap() { public function handleOnBeginMap() {
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
) { ) {
$this->displayMapWidget(); $this->displayMapWidget();
} }
@ -482,8 +410,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* Handle End Map Callback * Handle End Map Callback
*/ */
public function handleOnEndMap() { public function handleOnEndMap() {
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_ACTIVATED)
) { ) {
$this->displayNextMapWidget(); $this->displayNextMapWidget();
} }
@ -495,23 +422,13 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* @param string $login * @param string $login
*/ */
public function displayNextMapWidget($login = null) { public function displayNextMapWidget($login = null) {
$posX = $this->maniaControl->getSettingManager() $posX = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_POSX);
->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_POSX); $posY = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_POSY);
$posY = $this->maniaControl->getSettingManager() $width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_WIDTH);
->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_POSY); $height = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_HEIGHT);
$width = $this->maniaControl->getSettingManager() $quadStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadStyle();
->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_WIDTH); $quadSubstyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultQuadSubstyle();
$height = $this->maniaControl->getSettingManager() $labelStyle = $this->maniaControl->getManialinkManager()->getStyleManager()->getDefaultLabelStyle();
->getSettingValue($this, self::SETTING_NEXTMAP_WIDGET_HEIGHT);
$quadStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultQuadSubstyle();
$labelStyle = $this->maniaControl->getManialinkManager()
->getStyleManager()
->getDefaultLabelStyle();
$maniaLink = new ManiaLink(self::MLID_NEXTMAP_WIDGET); $maniaLink = new ManiaLink(self::MLID_NEXTMAP_WIDGET);
@ -528,9 +445,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setStyles($quadStyle, $quadSubstyle);
// Check if the Next Map is a queued Map // Check if the Next Map is a queued Map
$queuedMap = $this->maniaControl->getMapManager() $queuedMap = $this->maniaControl->getMapManager()->getMapQueue()->getNextMap();
->getMapQueue()
->getNextMap();
/** /**
* @var Player $requester * @var Player $requester
@ -538,8 +453,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
$requester = null; $requester = null;
// if the nextmap is not a queued map, get it from map info // if the nextmap is not a queued map, get it from map info
if (!$queuedMap) { if (!$queuedMap) {
$map = $this->maniaControl->getClient() $map = $this->maniaControl->getClient()->getNextMapInfo();
->getNextMapInfo();
$name = Formatter::stripDirtyCodes($map->name); $name = Formatter::stripDirtyCodes($map->name);
$author = $map->author; $author = $map->author;
} else { } else {
@ -585,8 +499,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
} }
// Send manialink // Send manialink
$this->maniaControl->getManialinkManager() $this->maniaControl->getManialinkManager()->sendManialink($maniaLink, $login);
->sendManialink($maniaLink, $login);
} }
/** /**
@ -596,18 +509,15 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
*/ */
public function handlePlayerConnect(Player $player) { public function handlePlayerConnect(Player $player) {
// Display Map Widget // Display Map Widget
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_MAP_WIDGET_ACTIVATED)
) { ) {
$this->displayMapWidget($player->login); $this->displayMapWidget($player->login);
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_CLOCK_WIDGET_ACTIVATED)
) { ) {
$this->displayClockWidget($player->login); $this->displayClockWidget($player->login);
} }
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
) { ) {
$this->displayServerInfoWidget(); $this->displayServerInfoWidget();
} }
@ -628,8 +538,7 @@ class WidgetPlugin implements CallbackListener, TimerListener, Plugin {
* Update Widget on certain callbacks * Update Widget on certain callbacks
*/ */
public function updateWidgets() { public function updateWidgets() {
if ($this->maniaControl->getSettingManager() if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
->getSettingValue($this, self::SETTING_SERVERINFO_WIDGET_ACTIVATED)
) { ) {
$this->displayServerInfoWidget(); $this->displayServerInfoWidget();
} }

View File

@ -358,8 +358,9 @@ class QueuePlugin implements CallbackListener, ManialinkPageAnswerListener, Time
/** @var Player $playerObj */ /** @var Player $playerObj */
foreach ($this->maniaControl->playerManager->getPlayers() as $playerObj) { foreach ($this->maniaControl->playerManager->getPlayers() as $playerObj) {
if($playerObj->isSpectator) if ($playerObj->isSpectator) {
continue; continue;
}
if (!isset($teams[$playerObj->teamId])) { if (!isset($teams[$playerObj->teamId])) {
$teams[$playerObj->teamId] = 1; $teams[$playerObj->teamId] = 1;