X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FSoneAccessor.java;h=97cf32751de0ef0d1c28bb3af9a677b4682adb77;hb=44f2f20011d28bc1420dcfcc8b9ff61183e86e24;hp=bfb289ebf176c9acf372e383367723aaf4483f3e;hpb=f0387ede3f3140032cb4e2b9fff9622c153a4a37;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java index bfb289e..97cf327 100644 --- a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java @@ -29,6 +29,13 @@ import net.pterodactylus.util.template.ReflectionAccessor; *
niceName
*
Will show a combination of first name, middle name, and last name, if * available, otherwise the username of the Sone is returned.
+ *
isFriend
+ *
Will return {@code true} if the sone in question is a friend of the + * currently logged in Sone (as determined by accessing the “currentSone” + * variable of the given {@link DataProvider}).
+ *
isCurrent
+ *
Will return {@code true} if the sone in question is the currently logged + * in Sone.
* * * @author David ‘Bombe’ Roden @@ -42,19 +49,43 @@ public class SoneAccessor extends ReflectionAccessor { public Object get(DataProvider dataProvider, Object object, String member) { Sone sone = (Sone) object; if (member.equals("niceName")) { - Profile profile = sone.getProfile(); - String firstName = profile.getFirstName(); - String middleName = profile.getMiddleName(); - String lastName = profile.getLastName(); - if (firstName == null) { - if (lastName == null) { - return sone.getName(); - } - return lastName; - } - return firstName + ((middleName != null) ? " " + middleName : "") + ((lastName != null) ? " " + lastName : ""); + return getNiceName(sone); + } else if (member.equals("isFriend")) { + Sone currentSone = (Sone) dataProvider.getData("currentSone"); + return currentSone.hasFriend(sone) ? true : null; + } else if (member.equals("isCurrent")) { + Sone currentSone = (Sone) dataProvider.getData("currentSone"); + return currentSone.equals(sone); + } else if (member.equals("blocked")) { + Sone currentSone = (Sone) dataProvider.getData("currentSone"); + return currentSone.isSoneBlocked(sone.getId()); } return super.get(dataProvider, object, member); } + // + // STATIC METHODS + // + + /** + * Returns the nice name of the given Sone. + * + * @param sone + * The Sone to get the nice name for + * @return The nice name of the Sone + */ + public static String getNiceName(Sone sone) { + Profile profile = sone.getProfile(); + String firstName = profile.getFirstName(); + String middleName = profile.getMiddleName(); + String lastName = profile.getLastName(); + if (firstName == null) { + if (lastName == null) { + return sone.getName(); + } + return lastName; + } + return firstName + ((middleName != null) ? " " + middleName : "") + ((lastName != null) ? " " + lastName : ""); + } + }