public <T> void playEffect(Location loc, Effect effect, T data) { if (data != null) { Validate.isTrue( data.getClass().equals(effect.getData()), "Wrong kind of data for this effect!"); } else { Validate.isTrue(effect.getData() == null, "Wrong kind of data for this effect!"); } int datavalue = data == null ? 0 : CraftEffect.getDataValue(effect, data); playEffect(loc, effect, datavalue); }