package net.minecraft.crash;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Vector;
import java.util.concurrent.Callable;
class CallableSuspiciousClasses implements Callable
{
final CrashReport field_85086_a;
CallableSuspiciousClasses(CrashReport par1CrashReport)
{
this.field_85086_a = par1CrashReport;
}
public String func_85085_a()
{
StringBuilder var1 = new StringBuilder();
ArrayList var3;
try
{
Field var2 = ClassLoader.class.getDeclaredField("classes");
var2.setAccessible(true);
var3 = new ArrayList((Vector)var2.get(CrashReport.class.getClassLoader()));
}
catch (Exception ex)
{
return "";
}
boolean var4 = true;
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
HashMap var6 = new HashMap();
String var7 = "";
Collections.sort(var3, new ComparatorClassSorter(this));
Iterator var8 = var3.iterator();
while (var8.hasNext())
{
Class var9 = (Class)var8.next();
if (var9 != null)
{
String var10 = var9.getCanonicalName();
if (var10 != null && !var10.startsWith("org.lwjgl.") && !var10.startsWith("paulscode.") && !var10.startsWith("org.bouncycastle.") && !var10.startsWith("argo.") && !var10.startsWith("com.jcraft.") && !var10.equals("util.GLX"))
{
if (var5)
{
if (var10.length() <= 3 || var10.equals("net.minecraft.client.MinecraftApplet") || var10.equals("net.minecraft.client.Minecraft") || var10.equals("net.minecraft.client.ClientBrandRetriever") || var10.equals("net.minecraft.server.MinecraftServer"))
{
continue;
}
}
else if (var10.startsWith("net.minecraft"))
{
continue;
}
Package var11 = var9.getPackage();
String var12 = var11 == null ? "" : var11.getName();
if (var6.containsKey(var12))
{
int var13 = ((Integer)var6.get(var12)).intValue();
var6.put(var12, Integer.valueOf(var13 + 1));
if (var13 == 3)
{
if (!var4)
{
var1.append(", ");
}
var1.append("...");
var4 = false;
continue;
}
if (var13 > 3)
{
continue;
}
}
else
{
var6.put(var12, Integer.valueOf(1));
}
if (var7 != var12 && var7.length() > 0)
{
var1.append("], ");
}
if (!var4 && var7 == var12)
{
var1.append(", ");
}
if (var7 != var12)
{
var1.append("[");
var1.append(var12);
var1.append(".");
}
var1.append(var9.getSimpleName());
var7 = var12;
var4 = false;
}
}
}
if (var4)
{
var1.append("No suspicious classes found.");
}
else
{
var1.append("]");
}
return var1.toString();
}
public Object call()
{
return "FML and Forge are installed";
}
}