@EventHandler
  public void onPlayerJoin(PlayerJoinEvent event) {
    TregminePlayer player = plugin.getPlayer(event.getPlayer());
    if (player == null) {
      event.getPlayer().kickPlayer("Something went wrong");
      Tregmine.LOGGER.info(event.getPlayer().getName() + " was not found " + "in players map.");
      return;
    }

    if (!player.hasFlag(TregminePlayer.Flags.HIDDEN_LOCATION)) {
      if (player.getCountry() != null) {
        plugin
            .getServer()
            .broadcastMessage(
                ChatColor.DARK_AQUA
                    + "Welcome "
                    + player.getChatName()
                    + ChatColor.DARK_AQUA
                    + " from "
                    + player.getCountry()
                    + "!");
      } else {
        plugin
            .getServer()
            .broadcastMessage(ChatColor.DARK_AQUA + "Welcome " + player.getChatName());
      }
    }

    String aliasList = null;
    try (IContext ctx = plugin.createContext()) {
      ILogDAO logDAO = ctx.getLogDAO();
      Set<String> aliases = logDAO.getAliases(player);

      StringBuilder buffer = new StringBuilder();
      String delim = "";
      for (String name : aliases) {
        buffer.append(delim);
        buffer.append(name);
        delim = ", ";
      }

      aliasList = buffer.toString();

      if (aliases.size() > 1) {
        Tregmine.LOGGER.info("Aliases: " + aliasList);

        for (TregminePlayer current : plugin.getOnlinePlayers()) {
          if (!current.getRank().canSeeAliases()) {
            continue;
          }
          if (player.hasFlag(TregminePlayer.Flags.HIDDEN_LOCATION)) {
            continue;
          }
          current.sendMessage(ChatColor.YELLOW + "This player have also used names: " + aliasList);
        }
      }
    } catch (DAOException e) {
      throw new RuntimeException(e);
    }
  }
 @Override
 public void queryGameState(Tregmine tregmine) {
   Server server = tregmine.getServer();
   version = server.getName() + " " + server.getVersion();
 }