package tppitweaks.util;
// FIXME capes? something else?
//public class TPPITickHandler implements ITickHandler
//{
// public static Minecraft mc = FMLClientHandler.instance().getClient();
// private static final String CAPE_URL = "http://assets.tterrag.com/TPPI/TPPIcape.png";
// private Map<String, CapeBufferDownload> downloads = new HashMap<String, CapeBufferDownload>();
//
// private URL usernames;
// private boolean noInternet = false;
//
// private ImmutableList<String> devs;
//
// public static String[] AbstractClientPlayer_downloadImageCape = new String[] { "downloadImageCape", "field_110315_c", "c" };
// public static String[] AbstractClientPlayer_locationCape = new String[] { "locationCape", "field_110313_e", "e" };
// public static String[] AbstractClientPlayer_getDownloadImage = new String[] { "getDownloadImage", "func_110301_a", "a" };
//
// public TPPITickHandler()
// {
// Scanner scan = null;
//
// try
// {
// usernames = new URL("http://assets.tterrag.com/TPPI/capes.txt");
// scan = new Scanner(usernames.openStream());
// }
// catch (Throwable pokemon)
// {
// pokemon.printStackTrace();
// }
//
// if (usernames == null || scan == null)
// {
// TPPITweaks.logger.warning("No internet connection, skipping cape download...");
// noInternet = true;
// }
//
// if (!noInternet)
// {
// List<String> lines = new ArrayList<String>();
// while (scan.hasNextLine())
// {
// lines.add(scan.nextLine());
// }
//
// scan.close();
//
// ImmutableList.Builder<String> builder = new ImmutableList.Builder<String>();
// builder.addAll(lines);
//
// devs = builder.build();
// }
// }
//
// @SuppressWarnings("unchecked")
// @Override
// public void tickStart(EnumSet<TickType> type, Object... tickData)
// {
// if (!noInternet && ConfigurationHandler.allowCapes && mc.theWorld != null && mc.theWorld.getWorldTime() % 20 == 0 && !isPaused())
// {
// for (EntityPlayer entityPlayer : (List<EntityPlayer>) mc.theWorld.playerEntities)
// {
// if (entityPlayer instanceof AbstractClientPlayer)
// {
// AbstractClientPlayer player = (AbstractClientPlayer) entityPlayer;
//
// if (player != null)
// {
// if (devs.contains(StringUtils.stripControlCodes(player.username)))
// {
// CapeBufferDownload download = downloads.get(player.username);
//
// if (download == null)
// {
// download = new CapeBufferDownload(player.username, CAPE_URL);
// downloads.put(player.username, download);
//
// download.start();
// }
// else
// {
// if (!download.downloaded)
// {
// continue;
// }
//
// TPPITweaksUtils.setPrivateValue(player, download.getImage(), AbstractClientPlayer.class, AbstractClientPlayer_downloadImageCape);
// TPPITweaksUtils.setPrivateValue(player, download.getResourceLocation(), AbstractClientPlayer.class, AbstractClientPlayer_locationCape);
// }
// }
// }
// }
// }
// }
// }
//
// @Override
// public void tickEnd(EnumSet<TickType> type, Object... tickData)
// {
// // Do nothing
// }
//
// @Override
// public EnumSet<TickType> ticks()
// {
// return EnumSet.of(TickType.CLIENT);
// }
//
// @Override
// public String getLabel()
// {
// return "tppiTickHandler";
// }
//
// private boolean isPaused()
// {
// if (FMLClientHandler.instance().getClient().isSingleplayer() && !FMLClientHandler.instance().getClient().getIntegratedServer().getPublic())
// {
// GuiScreen screen = FMLClientHandler.instance().getClient().currentScreen;
//
// if (screen != null && screen.doesGuiPauseGame())
// {
// return true;
// }
// }
//
// return false;
// }
//}