public final void doVote(final String player) {
        // Check Player exists!
        OfflinePlayer thePlayer = Bukkit.getOfflinePlayer(player);
        if (!thePlayer.hasPlayedBefore()) {
            log.info(String.format(plugin.getMessages().getString("player.never.played"), player));
            return;
        }
        // Player in die Heutige Voteliste aufnehmen, verhindert die ausgabe von mehr als einer Zeile beim Broadcast
        plugin.addVote(player);
        VoteHistory vote = new VoteHistory();
        vote.setMinecraftUser(player);
        if (plugin.getPluginConfig().isFixEcon() || plugin.getPluginConfig().isOnlyEcon()) {
            vote.setEconAmmount(plugin.getPluginConfig().getFixEconAmmount());
            vote.setEcon(true);
        }
        if (!plugin.getPluginConfig().isOnlyEcon()) {
            NextVoteRadomItem item = new NextVoteRadomItem(plugin);
            if (item.isEcon()) {
                vote.setEconAmmount(vote.getEconAmmount() + item.getEcoAmount());
                vote.setEcon(true);
            } else {
                vote.setAmmount(item.getAmount());
                vote.setDamage(item.getDamage());
                vote.setItem(true);
                vote.setLocalName(item.getLokalName());
                vote.setName(item.getName());
                vote.setMaterial(item.getMaterial());
            }
        }
        vote.setTime(new Timestamp(System.currentTimeMillis()));
        vote.setPaid(payVote(thePlayer, vote));
        database.save(vote);
        doMessage(thePlayer, vote);
        log.info(String.format(plugin.getMessages().getString("player.voted"), player));
    }