public function startVote(Player $player, $typeCode, $params)
    {
        if ($this->getCurrentVote() !== null) {
            $this->chatNotification->sendMessage("expansion_votemanager.error.in_progress");
            return;
        }

        if (isset($this->voteMapping[$typeCode])) {
            $typeCode = $this->voteMapping[$typeCode];
        }

        if (!isset($this->votePlugins[$typeCode])) {
            // no vote-plugin found for native vote, so return silently
            return;
        }

        $this->currentVote = $this->votePlugins[$typeCode];
        $this->currentVote->start($player, $params);
        $this->factory->getConnection()->cancelVote();

        $this->dispatcher->dispatch(
            "votemanager.votenew",
            [$player, $this->currentVote->getCode(), $this->currentVote->getCurrentVote()]
        );
    }