minecraft-src/com/mojang/realmsclient/gui/RealmsNewsManager.java
2025-07-04 02:00:41 +03:00

48 lines
1.7 KiB
Java

package com.mojang.realmsclient.gui;
import com.mojang.realmsclient.dto.RealmsNews;
import com.mojang.realmsclient.util.RealmsPersistence;
import com.mojang.realmsclient.util.RealmsPersistence.RealmsPersistenceData;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
@Environment(EnvType.CLIENT)
public class RealmsNewsManager {
private final RealmsPersistence newsLocalStorage;
private boolean hasUnreadNews;
private String newsLink;
public RealmsNewsManager(RealmsPersistence newsLocalStorage) {
this.newsLocalStorage = newsLocalStorage;
RealmsPersistenceData realmsPersistenceData = newsLocalStorage.read();
this.hasUnreadNews = realmsPersistenceData.hasUnreadNews;
this.newsLink = realmsPersistenceData.newsLink;
}
public boolean hasUnreadNews() {
return this.hasUnreadNews;
}
public String newsLink() {
return this.newsLink;
}
public void updateUnreadNews(RealmsNews realmsNews) {
RealmsPersistenceData realmsPersistenceData = this.updateNewsStorage(realmsNews);
this.hasUnreadNews = realmsPersistenceData.hasUnreadNews;
this.newsLink = realmsPersistenceData.newsLink;
}
private RealmsPersistenceData updateNewsStorage(RealmsNews realmsNews) {
RealmsPersistenceData realmsPersistenceData = this.newsLocalStorage.read();
if (realmsNews.newsLink != null && !realmsNews.newsLink.equals(realmsPersistenceData.newsLink)) {
RealmsPersistenceData realmsPersistenceData2 = new RealmsPersistenceData();
realmsPersistenceData2.newsLink = realmsNews.newsLink;
realmsPersistenceData2.hasUnreadNews = true;
this.newsLocalStorage.save(realmsPersistenceData2);
return realmsPersistenceData2;
} else {
return realmsPersistenceData;
}
}
}