Skip to content

Commit 367f6a7

Browse files
committed
Snapshot offline skins before random selection
Signed-off-by: applenick <applenick@users.noreply.github.com>
1 parent a1af184 commit 367f6a7

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

core/src/main/java/dev/pgm/community/nick/skin/SkinCache.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import com.google.common.collect.Maps;
88
import dev.pgm.community.Community;
99
import dev.pgm.community.CommunityPermissions;
10-
import java.util.List;
1110
import java.util.Map;
1211
import java.util.Random;
1312
import java.util.UUID;
@@ -28,6 +27,11 @@
2827

2928
public class SkinCache implements Listener {
3029

30+
// Sunny
31+
private static final Skin DEFAULT_SKIN = new Skin(
32+
"ewogICJ0aW1lc3RhbXAiIDogMTY2NjM1NjEyNzE3MiwKICAicHJvZmlsZUlkIiA6ICI1MTY4ZjZlMjIyM2E0Y2FjYjdiN2QyZjYyZWMxZGFhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJkZWZfbm90X2FzaCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9hM2JkMTYwNzlmNzY0Y2Q1NDFlMDcyZTg4OGZlNDM4ODVlNzExZjk4NjU4MzIzZGIwZjlhNjA0NWRhOTFlZTdhIgogICAgfQogIH0KfQ==",
33+
"gUaeJg93CpJwZm3QbT59cX9pKrT+KBEXSYoQFFyyYl3d/sEcPM/n4uRGFSZDJm6hD5qNpOIrD/Tdm9aW9224LXwoOhXTH4QjIy7m7ZH29oXwiUCs0UR/cFGOnUFaCF+8ggWYyf/UhUnTVfyZb/XonejaTI9+/WBQmuCbF7TcgGzvuhYaEb9mWxhEfBeaiHV1iMiEgo4NJVya0MKTaZ10jfqq09JgijbJidims4Y6Ep7ozvbcsDMjGK02/nzdZ6cq7eJ3w5ZanGrhVdvyV05mKfGGU3SaLwMZ4Yj/WtSO3ZC36KT9kMBWyTWjWDyIK+wYDhv9LTQ/XWezsnV0uJQv3ngy0yMZh/O+sQzsb3kGXlSzZQjWkhoCkgASS5P/dSTr4mHAgctnG96NczNJA2caYgone6ytGcet63Z5iGx23t+XYiFxK9xsEbJFSW0qpOOMxn1H/gH3b3lkJfsWt0kcxSNsbWWL5WdPEw6aN5TfAVUDnhtxNbtwXqqNcNDHkrvfWC9UQw5NFf41ytnBJRWVyAitz3u0+u7l0G2vfPtusEUkkiYElXCYT+dURnT41y5sbZ6FLh05J3WWLA4ZTHqpp3mEHbmV3NwbNWadTiXH3MmKBHgNT0Q3ZgENcdnaomTTEvOGsN8PymBYLUIDj3DfSp8yl/dCgy1jBiSPk+A+wgs=");
34+
3135
private final Cache<UUID, Skin> offlineSkins = CacheBuilder.newBuilder()
3236
.maximumSize(500)
3337
.expireAfterWrite(6, TimeUnit.HOURS)
@@ -38,14 +42,11 @@ public class SkinCache implements Listener {
3842

3943
// TODO: NEEDS WORK! Backup skins when 0 are online, prevent duplicates, etc
4044
private Skin getRandomSkin() {
41-
if (offlineSkins.size() == 0) {
42-
// Sunny
43-
return new Skin(
44-
"ewogICJ0aW1lc3RhbXAiIDogMTY2NjM1NjEyNzE3MiwKICAicHJvZmlsZUlkIiA6ICI1MTY4ZjZlMjIyM2E0Y2FjYjdiN2QyZjYyZWMxZGFhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJkZWZfbm90X2FzaCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9hM2JkMTYwNzlmNzY0Y2Q1NDFlMDcyZTg4OGZlNDM4ODVlNzExZjk4NjU4MzIzZGIwZjlhNjA0NWRhOTFlZTdhIgogICAgfQogIH0KfQ==",
45-
"gUaeJg93CpJwZm3QbT59cX9pKrT+KBEXSYoQFFyyYl3d/sEcPM/n4uRGFSZDJm6hD5qNpOIrD/Tdm9aW9224LXwoOhXTH4QjIy7m7ZH29oXwiUCs0UR/cFGOnUFaCF+8ggWYyf/UhUnTVfyZb/XonejaTI9+/WBQmuCbF7TcgGzvuhYaEb9mWxhEfBeaiHV1iMiEgo4NJVya0MKTaZ10jfqq09JgijbJidims4Y6Ep7ozvbcsDMjGK02/nzdZ6cq7eJ3w5ZanGrhVdvyV05mKfGGU3SaLwMZ4Yj/WtSO3ZC36KT9kMBWyTWjWDyIK+wYDhv9LTQ/XWezsnV0uJQv3ngy0yMZh/O+sQzsb3kGXlSzZQjWkhoCkgASS5P/dSTr4mHAgctnG96NczNJA2caYgone6ytGcet63Z5iGx23t+XYiFxK9xsEbJFSW0qpOOMxn1H/gH3b3lkJfsWt0kcxSNsbWWL5WdPEw6aN5TfAVUDnhtxNbtwXqqNcNDHkrvfWC9UQw5NFf41ytnBJRWVyAitz3u0+u7l0G2vfPtusEUkkiYElXCYT+dURnT41y5sbZ6FLh05J3WWLA4ZTHqpp3mEHbmV3NwbNWadTiXH3MmKBHgNT0Q3ZgENcdnaomTTEvOGsN8PymBYLUIDj3DfSp8yl/dCgy1jBiSPk+A+wgs=");
45+
Skin[] skins = offlineSkins.asMap().values().toArray(Skin[]::new);
46+
if (skins.length == 0) {
47+
return DEFAULT_SKIN;
4648
}
47-
List<Skin> skins = offlineSkins.asMap().values().stream().toList();
48-
return skins.get(random.nextInt(skins.size()));
49+
return skins[random.nextInt(skins.length)];
4950
}
5051

5152
private Skin getSkin(Player player) {

0 commit comments

Comments
 (0)