Don’t get trust values if it’s irrelevant.
[Sone.git] / src / main / java / net / pterodactylus / sone / template / ProfileAccessor.java
index 97be0cd..05857cf 100644 (file)
@@ -60,21 +60,27 @@ public class ProfileAccessor extends ReflectionAccessor {
                                /* not logged in? don’t show custom avatars, then. */
                                return null;
                        }
+                       String avatarId = profile.getAvatar();
+                       if (avatarId != null) {
+                               if (core.getImage(avatarId, false) == null) {
+                                       /* avatar ID but no matching image? show nothing. */
+                                       return null;
+                               }
+                       }
                        Sone remoteSone = profile.getSone();
                        if (core.isLocalSone(remoteSone)) {
                                /* always show your own avatars. */
-                               return profile.getAvatar();
+                               return avatarId;
                        }
                        ShowCustomAvatars showCustomAvatars = currentSone.getOptions().<ShowCustomAvatars> getEnumOption("ShowCustomAvatars").get();
                        if (showCustomAvatars == ShowCustomAvatars.NEVER) {
                                return null;
                        }
-                       String avatarId = profile.getAvatar();
                        if ((showCustomAvatars == ShowCustomAvatars.ALWAYS) || (avatarId == null)) {
                                return avatarId;
                        }
-                       if ((showCustomAvatars == ShowCustomAvatars.FOLLOWED) && currentSone.hasFriend(remoteSone.getId())) {
-                               return avatarId;
+                       if (showCustomAvatars == ShowCustomAvatars.FOLLOWED) {
+                               return currentSone.hasFriend(remoteSone.getId()) ? avatarId : null;
                        }
                        Trust trust = core.getTrust(currentSone, remoteSone);
                        if (trust == null) {
@@ -83,7 +89,7 @@ public class ProfileAccessor extends ReflectionAccessor {
                        if ((showCustomAvatars == ShowCustomAvatars.MANUALLY_TRUSTED) && (trust.getExplicit() != null) && (trust.getExplicit() > 0)) {
                                return avatarId;
                        }
-                       if ((showCustomAvatars == ShowCustomAvatars.TRUSTED) && ((trust.getExplicit() != null) && (trust.getExplicit() > 0)) || ((trust.getImplicit() != null) && (trust.getImplicit() > 0))) {
+                       if ((showCustomAvatars == ShowCustomAvatars.TRUSTED) && (((trust.getExplicit() != null) && (trust.getExplicit() > 0)) || ((trust.getImplicit() != null) && (trust.getImplicit() > 0)))) {
                                return avatarId;
                        }
                        return null;