X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=2ef2d5776a8b3cdfef3c7c20f6dd7e39339e3aea;hb=3e162bec2d62278d32a61aff28fa12de236bb753;hp=5d176ce630eb353ca99b49ec82f96ea1568efdcc;hpb=a4a36be82ab54c924a6c9cf6b01a7fef3f2e9124;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 5d176ce..2ef2d57 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -710,7 +710,9 @@ public class Core implements IdentityListener { */ public void lockSone(Sone sone) { synchronized (lockedSones) { - lockedSones.add(sone); + if (lockedSones.add(sone)) { + coreListenerManager.fireSoneLocked(sone); + } } } @@ -723,7 +725,9 @@ public class Core implements IdentityListener { */ public void unlockSone(Sone sone) { synchronized (lockedSones) { - lockedSones.remove(sone); + if (lockedSones.remove(sone)) { + coreListenerManager.fireSoneUnlocked(sone); + } } } @@ -886,7 +890,7 @@ public class Core implements IdentityListener { for (Post post : storedSone.getPosts()) { posts.remove(post.getId()); if (!sone.getPosts().contains(post)) { - markPostKnown(post); + coreListenerManager.firePostRemoved(post); } } } @@ -906,7 +910,7 @@ public class Core implements IdentityListener { for (Reply reply : storedSone.getReplies()) { replies.remove(reply.getId()); if (!sone.getReplies().contains(reply)) { - markReplyKnown(reply); + coreListenerManager.fireReplyRemoved(reply); } } } @@ -1117,7 +1121,7 @@ public class Core implements IdentityListener { * @param sone * The Sone to save */ - public void saveSone(Sone sone) { + public synchronized void saveSone(Sone sone) { if (!isLocalSone(sone)) { logger.log(Level.FINE, "Tried to save non-local Sone: %s", sone); return; @@ -1187,6 +1191,7 @@ public class Core implements IdentityListener { } configuration.getStringValue(sonePrefix + "/Friends/" + friendCounter + "/ID").setValue(null); + configuration.save(); logger.log(Level.INFO, "Sone %s saved.", sone); } catch (ConfigurationException ce1) { logger.log(Level.WARNING, "Could not save Sone: " + sone, ce1); @@ -1408,7 +1413,7 @@ public class Core implements IdentityListener { /** * Saves the current options. */ - public void saveConfiguration() { + public synchronized void saveConfiguration() { /* store the options first. */ try { configuration.getIntValue("Option/InsertionDelay").setValue(options.getIntegerOption("InsertionDelay").getReal());