This solves the warnings but it's probably better to <see desc>

Probably better to implement an annotation that cancels warnings for fields in classes that aren't Iris', such as bukkit packages. The implementation would be something like
@SuppressNoDesc
ItemStack items;
-> if !field.isAnnotationPresent(SND.class) { // error }
This commit is contained in:
CocoTheOwner 2021-08-06 12:38:50 +02:00
parent 28b6ed500b
commit a2af965bad

View File

@ -28,6 +28,9 @@ import com.volmit.iris.util.data.B;
import com.volmit.iris.util.json.JSONArray;
import com.volmit.iris.util.json.JSONObject;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.material.MaterialData;
import org.bukkit.potion.PotionEffectType;
import java.awt.*;
@ -529,7 +532,7 @@ public class SchemaBuilder {
}
private String getType(Class<?> c) {
if (c.equals(int.class) || c.equals(Integer.class) || c.equals(long.class)) {
if (c.equals(int.class) || c.equals(Integer.class) || c.equals(long.class) || c.equals(byte.class)) {
return "integer";
}
@ -549,7 +552,7 @@ public class SchemaBuilder {
return "array";
}
if (c.equals(KMap.class)) {
if (c.equals(KMap.class) || c.equals(ItemStack.class) || c.equals(ItemMeta.class) || c.equals(MaterialData.class)) {
return "object";
}
@ -580,11 +583,6 @@ public class SchemaBuilder {
return r.getDeclaredAnnotation(Desc.class).value();
}
// suppress warnings on bukkit classes
if (r.getDeclaringClass().getName().startsWith("org.bukkit.")){
return "Bukkit package classes and enums have no descriptions";
}
if (!r.isPrimitive() && !r.equals(KList.class) && !r.equals(KMap.class) && r.getCanonicalName().startsWith("com.volmit.")) {
warnings.addIfMissing("Missing @Desc on " + r.getSimpleName() + " in " + r.getDeclaringClass().getCanonicalName());
}