package de.tobiyas.racesandclasses.util.traitutil;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.annotations.bypasses.NeedMC1_7;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.annotations.bypasses.NeedMC1_8;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.annotations.bypasses.NeedsOtherPlugins;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.markerinterfaces.Trait;
public class TraitPreChecker {
public static boolean hasNeeds1_6(Class<? extends Trait> traitClass){
return traitClass.isAnnotationPresent(NeedMC1_8.class);
}
public static boolean hasNeeds1_7(Class<? extends Trait> traitClass){
return traitClass.isAnnotationPresent(NeedMC1_7.class);
}
public static boolean hasNeeds1_8(Class<? extends Trait> traitClass){
return traitClass.isAnnotationPresent(NeedMC1_8.class);
}
public static Collection<String> getRequiredPlugins(Class<? extends Trait> traitClass){
Set<String> needed = new HashSet<>();
if(!traitClass.isAnnotationPresent(NeedsOtherPlugins.class)) return needed;
String[] need = traitClass.getAnnotation(NeedsOtherPlugins.class).neededPlugins();
if(need == null || need.length == 0) return needed;
for(String n : need) needed.add(n);
return needed;
}
}