login screen: Add random override option (#14341)

This commit is contained in:
Henry Darnell
2022-01-04 17:51:31 -06:00
committed by GitHub
parent b0234eb013
commit 2c599768d7
2 changed files with 12 additions and 1 deletions

View File

@@ -44,7 +44,8 @@ public enum LoginScreenOverride
PRIFDDINAS("prifddinas.jpg"), PRIFDDINAS("prifddinas.jpg"),
THEATRE_OF_BLOOD("tob.jpg"), THEATRE_OF_BLOOD("tob.jpg"),
A_KINGDOM_DIVIDED("akd.jpg"), A_KINGDOM_DIVIDED("akd.jpg"),
CUSTOM; CUSTOM,
RANDOM;
@Getter @Getter
private final String fileName; private final String fileName;

View File

@@ -33,6 +33,8 @@ import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.Random;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -287,6 +289,14 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
} }
} }
} }
else if (config.loginScreen() == LoginScreenOverride.RANDOM)
{
LoginScreenOverride[] filtered = Arrays.stream(LoginScreenOverride.values())
.filter(screen -> screen.getFileName() != null)
.toArray(LoginScreenOverride[]::new);
LoginScreenOverride randomScreen = filtered[new Random().nextInt(filtered.length)];
pixels = getFileSpritePixels(randomScreen.getFileName());
}
else else
{ {
pixels = getFileSpritePixels(config.loginScreen().getFileName()); pixels = getFileSpritePixels(config.loginScreen().getFileName());