48 lines
1.7 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|