Java tutorial
//////////////////////////////////////////////////////////////////////////////////////////////////// // PlotSquared - A plot manager and world generator for the Bukkit API / // Copyright (c) 2014 IntellectualSites/IntellectualCrafters / // / // This program is free software; you can redistribute it and/or modify / // it under the terms of the GNU General Public License as published by / // the Free Software Foundation; either version 3 of the License, or / // (at your option) any later version. / // / // This program is distributed in the hope that it will be useful, / // but WITHOUT ANY WARRANTY; without even the implied warranty of / // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the / // GNU General Public License for more details. / // / // You should have received a copy of the GNU General Public License / // along with this program; if not, write to the Free Software Foundation, / // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA / // / // You can contact us via: support@intellectualsites.com / //////////////////////////////////////////////////////////////////////////////////////////////////// package com.intellectualcrafters.plot.uuid; import com.google.common.collect.ImmutableList; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.Callable; /** * Name Fetcher Class From Bukkit */ public class NameFetcher implements Callable<Map<UUID, String>> { private static final String PROFILE_URL = "https://sessionserver.mojang.com/session/minecraft/profile/"; private final JSONParser jsonParser = new JSONParser(); private final List<UUID> uuids; public NameFetcher(final List<UUID> uuids) { this.uuids = ImmutableList.copyOf(uuids); } @Override public Map<UUID, String> call() throws Exception { final Map<UUID, String> uuidStringMap = new HashMap<>(); for (final UUID uuid : this.uuids) { if (uuidStringMap.containsKey(uuid)) { continue; } final HttpURLConnection connection = (HttpURLConnection) new URL( PROFILE_URL + uuid.toString().replace("-", "")).openConnection(); final JSONObject response = (JSONObject) this.jsonParser .parse(new InputStreamReader(connection.getInputStream())); final String name = (String) response.get("name"); if (name == null) { continue; } final String cause = (String) response.get("cause"); final String errorMessage = (String) response.get("errorMessage"); if ((cause != null) && (cause.length() > 0)) { throw new IllegalStateException(errorMessage); } uuidStringMap.put(uuid, name); } return uuidStringMap; } }