X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=22ab47b7f93cf68778b3401b58b41ad57b0d1bb5;hb=7edffb4478bdeae16b009bced9d6769d0cb50a3b;hp=8cf8834771fbce2a4a949967be5089602c8871a7;hpb=f805b2f9b5f27295038f59decee10c7e43294632;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 8cf8834..22ab47b 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -494,20 +494,38 @@ public class Core implements IdentityListener, UpdateListener { } /** - * Returns whether the given Sone is a new Sone. After this check, the Sone - * is marked as known, i.e. a second call with the same parameters will - * always yield {@code false}. + * Returns whether the Sone with the given ID is a new Sone. After this + * check, the Sone is marked as known, i.e. a second call with the same + * parameters will always yield {@code false}. * - * @param sone - * The sone to check for + * @param soneId + * The ID of the sone to check for * @return {@code true} if the given Sone is new, false otherwise */ - public boolean isNewSone(Sone sone) { + public boolean isNewSone(String soneId) { + return isNewSone(soneId, true); + } + + /** + * Returns whether the Sone with the given ID is a new Sone. The Sone will + * be marked as known if {@code markAsKnown} is {@code true}, otherwise the + * Sone will keep its current “new” state. + * + * @param soneId + * The ID of the sone to check for + * @param markAsKnown + * {@code true} to mark the Sone as known in any case, + * {@code false} to not mark it as known + * @return {@code true} if the given Sone is new, false otherwise + */ + public boolean isNewSone(String soneId, boolean markAsKnown) { synchronized (newSones) { - boolean isNew = !knownSones.contains(sone.getId()) && newSones.remove(sone.getId()); - knownSones.add(sone.getId()); - if (isNew) { - coreListenerManager.fireMarkSoneKnown(sone); + boolean isNew = !knownSones.contains(soneId) && newSones.contains(soneId); + if (markAsKnown) { + Sone sone = getSone(soneId, false); + if (sone != null) { + markSoneKnown(sone); + } } return isNew; }