maniaControl = $maniaControl; $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_PRIMARY_TEXT, "Primary Text"); $this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_SECONDARY_TEXT, "Secondary Text"); $this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings'); $this->generateManialink(); $this->maniaControl->getManialinkManager()->sendManialink($this->manialink); $this->maniaControl->getTimerManager()->registerTimerListening($this, 'handle5Minutes', 300000); } /** * Handle when a player connects * * @param Player $player */ public function handlePlayerConnect(Player $player) { $this->maniaControl->getManialinkManager()->sendManialink($this->manialink, $player->login); } /** * updateSettings * * @param Setting $setting * @return void */ public function updateSettings(Setting $setting = null) { if ($setting !== null && !$setting->belongsToClass($this)) { return; } $this->generateManialink(); $this->maniaControl->getManialinkManager()->sendManialink($this->manialink); } /** * handle5Minutes * * @return void */ public function handle5Minutes() { // update UI if updated by an another $this->generateManialink(); $this->maniaControl->getManialinkManager()->sendManialink($this->manialink); } /** * generateManialink * * @return void */ private function generateManialink() { $manialink = new ManiaLink(self::MLID_SMALLTEXTAD); $frame = new Frame(); $manialink->addChild($frame); $frame->setX(159.); $frame->setY(-60.); $primaryLabel = new Label(); $frame->addChild($primaryLabel); $primaryLabel->setTextSize(3.5); $primaryLabel->setTextFont("GameFontExtraBold"); $primaryLabel->setTextEmboss(true); $primaryLabel->setHorizontalAlign(Control::RIGHT); $primaryLabel->setText($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_PRIMARY_TEXT)); $secondaryLabel = new Label(); $frame->addChild($secondaryLabel); $secondaryLabel->setY(-6.); $secondaryLabel->setTextSize(2.5); $secondaryLabel->setTextFont("GameFontExtraBold"); $secondaryLabel->setTextEmboss(true); $secondaryLabel->setHorizontalAlign(Control::RIGHT); $secondaryLabel->setText($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_SECONDARY_TEXT)); $this->manialink = $manialink; } /** * Unload the plugin and its Resources */ public function unload() { $this->maniaControl->getManialinkManager()->hideManialink(self::MLID_SMALLTEXTAD); } }