package smart.updater.searches;
import java.util.HashMap;
import java.util.Map.Entry;
import org.apache.bcel.classfile.Field;
import org.apache.bcel.generic.ClassGen;
import org.apache.bcel.generic.Type;
import smart.updater.RSClass;
import smart.updater.RSClient;
import smart.updater.Search;
public class NPC extends Search{
@Override
public SearchResult run(RSClient data, HashMap<String, ClassGen> classes) {
RSClass character = data.getProperClass("Character");
RSClass player = data.getProperClass("Player");
for(Entry<String, ClassGen> c : classes.entrySet()){
if(c.getValue().getSuperclassName().equals(character.className) &&
!c.getValue().getClassName().equals(player.className)){
RSClass npc = data.addClass("NPC", c.getValue().getClassName());
for(Field f : c.getValue().getFields()){
if(!f.isStatic() && !f.getType().equals(Type.INT))
for(Entry<String, ClassGen> c2 : classes.entrySet()){
if(f.getType().toString().equals(c2.getValue().getClassName())){
npc.addField("NPCDef", f.getName());
data.addClass("NPCDef", f.getType().toString());
return SearchResult.Success;
}
}
}
}
}
return SearchResult.Failure;
}
}