Properly invalidate cache and load icons in Clan
Properly invalidate cache on plugin shutdown and load clan chat icons on plugin startup. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -70,7 +70,30 @@ public class ClanChatPlugin extends Plugin
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
private LoadingCache<String, ClanMemberRank> clanRanksCache;
|
private final LoadingCache<String, ClanMemberRank> clanRanksCache = CacheBuilder.newBuilder()
|
||||||
|
.maximumSize(100)
|
||||||
|
.expireAfterAccess(1, TimeUnit.MINUTES)
|
||||||
|
.build(new CacheLoader<String, ClanMemberRank>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public ClanMemberRank load(String key) throws Exception
|
||||||
|
{
|
||||||
|
final ClanMember[] clanMembersArr = client.getClanMembers();
|
||||||
|
|
||||||
|
if (clanMembersArr == null || clanMembersArr.length == 0)
|
||||||
|
{
|
||||||
|
return ClanMemberRank.UNRANKED;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Arrays.stream(clanMembersArr)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key)))
|
||||||
|
.map(ClanMember::getRank)
|
||||||
|
.findAny()
|
||||||
|
.orElse(ClanMemberRank.UNRANKED);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
private int modIconsLength;
|
private int modIconsLength;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -79,29 +102,16 @@ public class ClanChatPlugin extends Plugin
|
|||||||
@Override
|
@Override
|
||||||
protected void startUp() throws Exception
|
protected void startUp() throws Exception
|
||||||
{
|
{
|
||||||
clanRanksCache = CacheBuilder.newBuilder()
|
if (modIconsLength == 0 && client.getGameState().compareTo(GameState.LOGIN_SCREEN) >= 0)
|
||||||
.maximumSize(100)
|
{
|
||||||
.expireAfterAccess(1, TimeUnit.MINUTES)
|
loadClanChatIcons();
|
||||||
.build(new CacheLoader<String, ClanMemberRank>()
|
}
|
||||||
{
|
}
|
||||||
@Override
|
|
||||||
public ClanMemberRank load(String key) throws Exception
|
|
||||||
{
|
|
||||||
final ClanMember[] clanMembersArr = client.getClanMembers();
|
|
||||||
|
|
||||||
if (clanMembersArr == null || clanMembersArr.length == 0)
|
@Override
|
||||||
{
|
protected void shutDown()
|
||||||
return ClanMemberRank.UNRANKED;
|
{
|
||||||
}
|
clanRanksCache.invalidateAll();
|
||||||
|
|
||||||
return Arrays.stream(clanMembersArr)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key)))
|
|
||||||
.map(ClanMember::getRank)
|
|
||||||
.findAny()
|
|
||||||
.orElse(ClanMemberRank.UNRANKED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
|
|||||||
Reference in New Issue
Block a user