From b682153ebb9561123519953d623bfb491c690ad8 Mon Sep 17 00:00:00 2001 From: Liam Date: Thu, 11 Apr 2024 03:48:54 +0100 Subject: [PATCH] cleanup isometric skin renderer --- .../java/cc.fascinated/model/player/Skin.java | 12 +- .../cc.fascinated/service/PlayerService.java | 4 +- ...nPartParser.java => SkinPartRenderer.java} | 31 ++++- .../{FlatParser.java => FlatRenderer.java} | 13 +-- .../skin/impl/IsometricHeadParser.java | 102 ----------------- .../skin/impl/IsometricHeadRenderer.java | 106 ++++++++++++++++++ target/maven-archiver/pom.properties | 3 - .../compile/default-compile/createdFiles.lst | 33 +++++- .../compile/default-compile/inputFiles.lst | 63 +++++++---- .../default-testCompile/createdFiles.lst | 5 +- .../default-testCompile/inputFiles.lst | 5 +- 11 files changed, 222 insertions(+), 155 deletions(-) rename src/main/java/cc.fascinated/service/skin/{SkinPartParser.java => SkinPartRenderer.java} (52%) rename src/main/java/cc.fascinated/service/skin/impl/{FlatParser.java => FlatRenderer.java} (82%) delete mode 100644 src/main/java/cc.fascinated/service/skin/impl/IsometricHeadParser.java create mode 100644 src/main/java/cc.fascinated/service/skin/impl/IsometricHeadRenderer.java delete mode 100644 target/maven-archiver/pom.properties diff --git a/src/main/java/cc.fascinated/model/player/Skin.java b/src/main/java/cc.fascinated/model/player/Skin.java index 5211d0b..4826896 100644 --- a/src/main/java/cc.fascinated/model/player/Skin.java +++ b/src/main/java/cc.fascinated/model/player/Skin.java @@ -3,9 +3,9 @@ package cc.fascinated.model.player; import cc.fascinated.common.PlayerUtils; import cc.fascinated.config.Config; import cc.fascinated.exception.impl.BadRequestException; -import cc.fascinated.service.skin.SkinPartParser; -import cc.fascinated.service.skin.impl.FlatParser; -import cc.fascinated.service.skin.impl.IsometricHeadParser; +import cc.fascinated.service.skin.SkinPartRenderer; +import cc.fascinated.service.skin.impl.FlatRenderer; +import cc.fascinated.service.skin.impl.IsometricHeadRenderer; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.gson.JsonObject; @@ -95,13 +95,13 @@ public class Skin { /** * Head parts */ - HEAD(new FlatParser(8, 8, 8)), - HEAD_ISOMETRIC(new IsometricHeadParser()); + HEAD(new FlatRenderer(8, 8, 8)), + HEAD_ISOMETRIC(new IsometricHeadRenderer()); /** * The skin part parser for the part. */ - private final SkinPartParser skinPartParser; + private final SkinPartRenderer skinPartParser; /** * Gets the name of the part. diff --git a/src/main/java/cc.fascinated/service/PlayerService.java b/src/main/java/cc.fascinated/service/PlayerService.java index e0407a5..1d7b376 100644 --- a/src/main/java/cc.fascinated/service/PlayerService.java +++ b/src/main/java/cc.fascinated/service/PlayerService.java @@ -133,7 +133,9 @@ public class PlayerService { return cache.get(); } - byte[] skinPartBytes = part.getSkinPartParser().getPart(player.getSkin(), part.getName(), renderOverlay, size); + long before = System.currentTimeMillis(); + byte[] skinPartBytes = part.getSkinPartParser().renderPart(player.getSkin(), part.getName(), renderOverlay, size); + log.info("Took {}ms to render skin part: {} for player: {}", System.currentTimeMillis() - before, part.getName(), player.getUniqueId()); CachedPlayerSkinPart skinPart = new CachedPlayerSkinPart( key, skinPartBytes diff --git a/src/main/java/cc.fascinated/service/skin/SkinPartParser.java b/src/main/java/cc.fascinated/service/skin/SkinPartRenderer.java similarity index 52% rename from src/main/java/cc.fascinated/service/skin/SkinPartParser.java rename to src/main/java/cc.fascinated/service/skin/SkinPartRenderer.java index 9ea16b9..72b5dfe 100644 --- a/src/main/java/cc.fascinated/service/skin/SkinPartParser.java +++ b/src/main/java/cc.fascinated/service/skin/SkinPartRenderer.java @@ -1,18 +1,19 @@ package cc.fascinated.service.skin; import cc.fascinated.common.ImageUtils; +import cc.fascinated.exception.impl.BadRequestException; import cc.fascinated.model.player.Skin; import lombok.AllArgsConstructor; import lombok.Getter; -import lombok.SneakyThrows; +import lombok.extern.log4j.Log4j2; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@AllArgsConstructor @Getter -public abstract class SkinPartParser { +@AllArgsConstructor @Getter @Log4j2 +public abstract class SkinPartRenderer { /** * Gets the skin part image. @@ -36,7 +37,27 @@ public abstract class SkinPartParser { } /** - * Get the skin part image. + * Gets the bytes of an image. + * + * @param image the image + * @param skin the skin + * @param partName the part name + * @return the bytes + */ + public byte[] getBytes(BufferedImage image, Skin skin, String partName) throws BadRequestException { + try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { + ImageIO.write(image, "png", outputStream); + // Cleanup + outputStream.flush(); + log.info("Successfully got {} part bytes for {}", partName, skin.getUrl()); + return outputStream.toByteArray(); + } catch (Exception ex) { + throw new BadRequestException("Failed to get " + partName + " part bytes for " + skin.getUrl()); + } + } + + /** + * Renders a skin part. * * @param skin the skin * @param partName the skin part name @@ -44,5 +65,5 @@ public abstract class SkinPartParser { * @param size the output size * @return the skin part image */ - public abstract byte[] getPart(Skin skin, String partName, boolean renderOverlay, int size); + public abstract byte[] renderPart(Skin skin, String partName, boolean renderOverlay, int size) throws BadRequestException; } diff --git a/src/main/java/cc.fascinated/service/skin/impl/FlatParser.java b/src/main/java/cc.fascinated/service/skin/impl/FlatRenderer.java similarity index 82% rename from src/main/java/cc.fascinated/service/skin/impl/FlatParser.java rename to src/main/java/cc.fascinated/service/skin/impl/FlatRenderer.java index d5aad07..7affb41 100644 --- a/src/main/java/cc.fascinated/service/skin/impl/FlatParser.java +++ b/src/main/java/cc.fascinated/service/skin/impl/FlatRenderer.java @@ -1,8 +1,7 @@ package cc.fascinated.service.skin.impl; -import cc.fascinated.common.ImageUtils; import cc.fascinated.model.player.Skin; -import cc.fascinated.service.skin.SkinPartParser; +import cc.fascinated.service.skin.SkinPartRenderer; import lombok.Getter; import lombok.extern.log4j.Log4j2; @@ -13,7 +12,7 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; @Getter @Log4j2 -public class FlatParser extends SkinPartParser { +public class FlatRenderer extends SkinPartRenderer { /** * The x and y position of the part. @@ -26,20 +25,20 @@ public class FlatParser extends SkinPartParser { private final int widthAndHeight; /** - * Constructs a new {@link FlatParser}. + * Constructs a new {@link FlatRenderer}. * * @param x the x position of the part * @param y the y position of the part * @param widthAndHeight the width and height of the part */ - public FlatParser(int x, int y, int widthAndHeight) { + public FlatRenderer(int x, int y, int widthAndHeight) { this.x = x; this.y = y; this.widthAndHeight = widthAndHeight; } @Override - public byte[] getPart(Skin skin, String partName, boolean renderOverlay, int size) { + public byte[] renderPart(Skin skin, String partName, boolean renderOverlay, int size) { double scale = (double) size / this.widthAndHeight; log.info("Getting {} part bytes for {} with size {} and scale {}", partName, skin.getUrl(), size, scale); @@ -60,7 +59,7 @@ public class FlatParser extends SkinPartParser { } } catch (Exception ex) { log.error("Failed to get {} part bytes for {}", partName, skin.getUrl(), ex); - return null; + throw new RuntimeException("Failed to get " + partName + " part for " + skin.getUrl()); } } } diff --git a/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadParser.java b/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadParser.java deleted file mode 100644 index 15542f2..0000000 --- a/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadParser.java +++ /dev/null @@ -1,102 +0,0 @@ -package cc.fascinated.service.skin.impl; - -import cc.fascinated.common.ImageUtils; -import cc.fascinated.model.player.Skin; -import cc.fascinated.service.skin.SkinPartParser; -import lombok.Getter; -import lombok.extern.log4j.Log4j2; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.geom.AffineTransform; -import java.awt.image.BufferedImage; -import java.io.ByteArrayOutputStream; - -@Getter @Log4j2 -public class IsometricHeadParser extends SkinPartParser { - - private static final double SKEW_A = 26d / 45d; // 0.57777777 - private static final double SKEW_B = SKEW_A * 2d; // 1.15555555 - - @Override - public byte[] getPart(Skin skin, String partName, boolean renderOverlay, int size) { - double scale = (size / 8d) / 2.5; - log.info("Getting {} part bytes for {} with size {} and scale {}", partName, skin.getUrl(), size, scale); - - try { - final BufferedImage outputImage = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB); - - // Get all the required head parts - final BufferedImage headTop = ImageUtils.resize(this.getSkinPart(skin, 8, 0, 8, 8, 1), scale); - final BufferedImage headFront = ImageUtils.resize(this.getSkinPart(skin, 8, 8, 8, 8, 1), scale); - final BufferedImage headRight = ImageUtils.resize(this.getSkinPart(skin, 0, 8, 8, 8, 1), scale); - - if (renderOverlay) { - // Draw the overlay on top of the gathered skin parts - - // Top overlay - Graphics2D g = headTop.createGraphics(); - g.drawImage(this.getSkinPart(skin, 40, 0, 8, 8, 1), 0, 0, null); - g.dispose(); - - // Front overlay - g = headFront.createGraphics(); - g.drawImage(this.getSkinPart(skin, 16, 8, 8, 8, 1), 0, 0, null); - g.dispose(); - - // Right side overlay - g = headRight.createGraphics(); - g.drawImage(this.getSkinPart(skin, 32, 8, 8, 8, 1), 0, 0, null); - g.dispose(); - } - - // Declare pos - double x; - double y; - double z; - - // Declare offsets - final double z_offset = scale * 3.5d; - final double x_offset = scale * 2d; - - // Create graphics - final Graphics2D outGraphics = outputImage.createGraphics(); - - // head top - x = x_offset; - y = -0.5; - z = z_offset; - outGraphics.setTransform(new AffineTransform(1d, -SKEW_A, 1, SKEW_A, 0, 0)); - outGraphics.drawImage(headTop, (int) (y - z), (int) (x + z), headTop.getWidth(), headTop.getHeight() + 1, null); - - // head front - x = x_offset + 8 * scale; - y = 0; - z = z_offset - 0.5; - outGraphics.setTransform(new AffineTransform(1d, -SKEW_A, 0d, SKEW_B, 0d, SKEW_A)); - outGraphics.drawImage(headFront, (int) (y + x), (int) (x + z), headFront.getWidth(), headFront.getHeight(), null); - - // head right - x = x_offset; - y = 0; - z = z_offset; - outGraphics.setTransform(new AffineTransform(1d, SKEW_A, 0d, SKEW_B, 0d, 0d)); - outGraphics.drawImage(headRight, (int) (x + y + 1), (int) (z - y - 0.5), headRight.getWidth(), headRight.getHeight() + 1, null); - - // Cleanup and return - outGraphics.dispose(); - - try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { - ImageIO.write(outputImage, "png", outputStream); - // Cleanup - outputStream.flush(); - outGraphics.dispose(); - log.info("Successfully got {} part bytes for {}", partName, skin.getUrl()); - return outputStream.toByteArray(); - } - } catch (Exception ex) { - log.error("Failed to get {} part bytes for {}", partName, skin.getUrl(), ex); - return null; - } - } -} diff --git a/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadRenderer.java b/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadRenderer.java new file mode 100644 index 0000000..1ed3511 --- /dev/null +++ b/src/main/java/cc.fascinated/service/skin/impl/IsometricHeadRenderer.java @@ -0,0 +1,106 @@ +package cc.fascinated.service.skin.impl; + +import cc.fascinated.common.ImageUtils; +import cc.fascinated.model.player.Skin; +import cc.fascinated.service.skin.SkinPartRenderer; +import lombok.Getter; +import lombok.extern.log4j.Log4j2; + +import java.awt.*; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; + +@Getter @Log4j2 +public class IsometricHeadRenderer extends SkinPartRenderer { + + private static final double SKEW_A = 26d / 45d; // 0.57777777 + private static final double SKEW_B = SKEW_A * 2d; // 1.15555555 + + /** + * The head transforms + */ + private static final AffineTransform HEAD_TRANSFORM = new AffineTransform(1d, -SKEW_A, 1, SKEW_A, 0, 0); + private static final AffineTransform FRONT_TRANSFORM = new AffineTransform(1d, -SKEW_A, 0d, SKEW_B, 0d, SKEW_A); + private static final AffineTransform RIGHT_TRANSFORM = new AffineTransform(1d, SKEW_A, 0d, SKEW_B, 0d, 0d); + + @Override + public byte[] renderPart(Skin skin, String partName, boolean renderOverlay, int size) { + double scale = (size / 8d) / 2.5; + log.info("Getting {} part bytes for {} with size {} and scale {}", partName, skin.getUrl(), size, scale); + + double x, y, z; // The x, y, and z positions + double zOffset = scale * 3.5d; + double xOffset = scale * 2d; + try { + BufferedImage outputImage = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics = outputImage.createGraphics(); + + // Get all the required head parts + BufferedImage headTop = ImageUtils.resize(this.getSkinPart(skin, 8, 0, 8, 8, 1), scale); + BufferedImage headFront = ImageUtils.resize(this.getSkinPart(skin, 8, 8, 8, 8, 1), scale); + BufferedImage headRight = ImageUtils.resize(this.getSkinPart(skin, 0, 8, 8, 8, 1), scale); + + if (renderOverlay) { + Graphics2D headGraphics = headTop.createGraphics(); + applyOverlay(headGraphics,this.getSkinPart(skin, 40, 0, 8, 8, 1)); + + headGraphics = headFront.createGraphics(); + applyOverlay(headGraphics, this.getSkinPart(skin, 16, 8, 8, 8, 1)); + + headGraphics = headRight.createGraphics(); + applyOverlay(headGraphics, this.getSkinPart(skin, 32, 8, 8, 8, 1)); + } + + // Draw the head + x = xOffset; + y = -0.5; + z = zOffset; + // The head is offset by 1 pixel for whatever reason + drawPart(graphics, headTop, HEAD_TRANSFORM,y - z, x + z, headTop.getWidth(), headTop.getHeight() + 1); + + // Draw the front of the head + x = xOffset + 8 * scale; + y = 0; + z = zOffset - 0.5; + drawPart(graphics, headFront, FRONT_TRANSFORM, y + x, x + z, headFront.getWidth(), headFront.getHeight()); + + // Draw the right side of the head + x = xOffset; + y = 0; + z = zOffset; + drawPart(graphics, headRight, RIGHT_TRANSFORM, x + y + 1, z - y - 0.5, headRight.getWidth(), headRight.getHeight()); + + return super.getBytes(outputImage, skin, partName); + } catch (Exception ex) { + log.error("Failed to get {} part bytes for {}", partName, skin.getUrl(), ex); + throw new RuntimeException("Failed to get " + partName + " part for " + skin.getUrl()); + } + } + + /** + * Applies an overlay (skin layer) to the head part. + * + * @param graphics the graphics + * @param part the part + */ + private void applyOverlay(Graphics2D graphics, BufferedImage part) { + graphics.drawImage(part, 0, 0, null); + graphics.dispose(); + } + + /** + * Draws a part of the head. + * + * @param graphics the graphics + * @param part the part + * @param transform the transform + * @param x the x position + * @param y the y position + * @param width the width + * @param height the height + */ + private void drawPart(Graphics2D graphics, BufferedImage part, AffineTransform transform, double x, double y, int width, int height) { + graphics.setTransform(transform); + graphics.drawImage(part, (int) x, (int) y, width, height, null); + } +} \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties deleted file mode 100644 index 7bf4386..0000000 --- a/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=Minecraft-Utilities -groupId=cc.fascinated -version=1.0.0 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index fea4c8e..be50ca5 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,28 +1,38 @@ +cc\fascinated\model\dns\DNSRecord.class cc\fascinated\service\pinger\impl\JavaMinecraftServerPinger.class cc\fascinated\service\pinger\MinecraftServerPinger.class cc\fascinated\config\OpenAPIConfiguration.class -cc\fascinated\model\server\JavaMinecraftServer$Players.class +cc\fascinated\model\server\BedrockMinecraftServer$Edition.class cc\fascinated\model\player\Cape.class -cc\fascinated\service\MojangAPIService.class +cc\fascinated\model\dns\DNSRecord$Type.class +cc\fascinated\model\server\BedrockMinecraftServer.class cc\fascinated\controller\PlayerController.class +cc\fascinated\model\server\JavaMinecraftServer$ForgeModInfo$ForgeMod.class cc\fascinated\common\JavaMinecraftVersion.class -cc\fascinated\model\mojang\JavaServerStatusToken.class +cc\fascinated\model\server\JavaMinecraftServer$ForgeModInfo.class cc\fascinated\model\player\Skin$Parts.class +cc\fascinated\common\packet\MinecraftBedrockPacket.class +cc\fascinated\service\MojangService.class cc\fascinated\log\TransactionLogger.class +cc\fascinated\model\cache\CachedPlayerSkinPart.class cc\fascinated\common\WebRequest.class cc\fascinated\exception\impl\ResourceNotFoundException.class +cc\fascinated\service\pinger\impl\BedrockMinecraftServerPinger.class cc\fascinated\model\server\MinecraftServer$Platform.class cc\fascinated\model\mojang\MojangUsernameToUuid.class cc\fascinated\model\player\Skin$Model.class cc\fascinated\model\response\ErrorResponse.class +cc\fascinated\repository\PlayerSkinPartCacheRepository.class cc\fascinated\exception\ExceptionControllerAdvice.class cc\fascinated\controller\HomeController.class cc\fascinated\model\server\MinecraftServer.class cc\fascinated\exception\impl\RateLimitException.class cc\fascinated\model\server\JavaMinecraftServer$Version.class +cc\fascinated\common\ExpiringSet.class cc\fascinated\model\server\MinecraftServer$MOTD.class cc\fascinated\common\packet\MinecraftJavaPacket.class cc\fascinated\repository\MinecraftServerCacheRepository.class +cc\fascinated\model\token\JavaServerStatusToken.class cc\fascinated\common\IPUtils.class cc\fascinated\exception\impl\BadRequestException.class cc\fascinated\common\UUIDUtils.class @@ -32,22 +42,39 @@ cc\fascinated\model\cache\CachedPlayer.class cc\fascinated\common\packet\impl\java\JavaPacketStatusInStart.class cc\fascinated\common\PlayerUtils.class cc\fascinated\Main.class +cc\fascinated\model\server\MinecraftServer$Players$Sample.class +cc\fascinated\service\skin\impl\IsometricHeadRenderer.class +cc\fascinated\service\MojangService$1.class cc\fascinated\common\Tuple.class +cc\fascinated\model\server\JavaMinecraftServer$ForgeData$Channel.class +cc\fascinated\model\server\JavaMinecraftServer$ForgeData.class +cc\fascinated\model\dns\impl\ARecord.class cc\fascinated\controller\ServerController.class cc\fascinated\model\server\JavaMinecraftServer$Favicon.class cc\fascinated\common\ServerUtils.class cc\fascinated\model\cache\CachedMinecraftServer.class cc\fascinated\repository\PlayerNameCacheRepository.class +cc\fascinated\Main$1.class cc\fascinated\common\ColorUtils.class cc\fascinated\config\RedisConfig.class cc\fascinated\model\mojang\MojangProfile.class cc\fascinated\model\server\JavaMinecraftServer.class +cc\fascinated\common\ImageUtils.class +cc\fascinated\service\skin\SkinPartRenderer.class cc\fascinated\exception\impl\MojangAPIRateLimitException.class +cc\fascinated\model\server\JavaMinecraftServer$ForgeData$Mod.class +cc\fascinated\common\packet\impl\bedrock\BedrockPacketUnconnectedPing.class +cc\fascinated\common\packet\impl\bedrock\BedrockPacketUnconnectedPong.class +cc\fascinated\model\server\MinecraftServer$Players.class +cc\fascinated\model\dns\impl\SRVRecord.class cc\fascinated\model\player\Skin.class cc\fascinated\model\player\Player.class +cc\fascinated\model\server\BedrockMinecraftServer$Version.class +cc\fascinated\service\skin\impl\FlatRenderer.class cc\fascinated\common\DNSUtils.class cc\fascinated\service\PlayerService.class cc\fascinated\config\Config.class +cc\fascinated\model\server\BedrockMinecraftServer$GameMode.class cc\fascinated\service\ServerService.class cc\fascinated\common\EnumUtils.class cc\fascinated\model\cache\CachedPlayerName.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 3afc209..ede2703 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,46 +1,61 @@ -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\PlayerUtils.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\pinger\impl\JavaMinecraftServerPinger.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\repository\PlayerSkinPartCacheRepository.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\MinecraftBedrockPacket.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\cache\CachedPlayer.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\MinecraftJavaPacket.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\MojangAPIService.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\controller\PlayerController.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\player\Player.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\log\TransactionLogger.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\ServerUtils.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\WebRequest.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\token\JavaServerStatusToken.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\repository\PlayerNameCacheRepository.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\mojang\MojangUsernameToUuid.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\ServerService.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\ImageUtils.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\config\RedisConfig.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\dns\DNSRecord.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\JavaMinecraftVersion.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\server\MinecraftServer.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\skin\impl\IsometricHeadRenderer.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\impl\java\JavaPacketStatusInStart.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\server\BedrockMinecraftServer.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\player\Cape.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\Tuple.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\cache\CachedPlayerSkinPart.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\impl\bedrock\BedrockPacketUnconnectedPing.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\ResourceNotFoundException.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\config\OpenAPIConfiguration.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\cache\CachedPlayerName.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\pinger\MinecraftServerPinger.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\config\Config.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\RateLimitException.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\response\ErrorResponse.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\Main.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\DNSUtils.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\impl\bedrock\BedrockPacketUnconnectedPong.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\PlayerService.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\IPUtils.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\UUIDUtils.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\dns\impl\ARecord.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\PlayerUtils.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\pinger\impl\JavaMinecraftServerPinger.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\MinecraftJavaPacket.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\MojangService.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\ServerUtils.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\WebRequest.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\dns\impl\SRVRecord.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\repository\PlayerCacheRepository.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\mojang\MojangProfile.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\repository\MinecraftServerCacheRepository.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\JavaMinecraftVersion.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\BadRequestException.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\server\MinecraftServer.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\impl\java\JavaPacketStatusInStart.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\server\JavaMinecraftServer.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\player\Cape.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\Tuple.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\ResourceNotFoundException.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\skin\impl\FlatRenderer.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\ExpiringSet.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\skin\SkinPartRenderer.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\ColorUtils.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\config\OpenAPIConfiguration.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\mojang\JavaServerStatusToken.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\packet\impl\java\JavaPacketHandshakingInSetProtocol.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\controller\HomeController.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\pinger\impl\BedrockMinecraftServerPinger.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\ExceptionControllerAdvice.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\cache\CachedPlayerName.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\pinger\MinecraftServerPinger.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\EnumUtils.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\config\Config.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\MojangAPIRateLimitException.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\exception\impl\RateLimitException.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\response\ErrorResponse.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\controller\ServerController.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\Main.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\DNSUtils.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\service\PlayerService.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\IPUtils.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\cache\CachedMinecraftServer.java C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\model\player\Skin.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\main\java\cc.fascinated\common\UUIDUtils.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst index e7cdb26..c2c951f 100644 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -1,2 +1,3 @@ -cc\fascinated\PlayerControllerTests.class -cc\fascinated\TestRedisConfig.class +cc\fascinated\tests\PlayerControllerTests.class +cc\fascinated\tests\ServerControllerTests.class +cc\fascinated\config\TestRedisConfig.class diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index d1bf3cb..623bb6e 100644 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1,2 +1,3 @@ -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\test\java\cc\fascinated\TestRedisConfig.java -C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\test\java\cc\fascinated\PlayerControllerTests.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\test\java\cc\fascinated\tests\PlayerControllerTests.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\test\java\cc\fascinated\config\TestRedisConfig.java +C:\Users\Liam\Desktop\Projects\Minecraft-Helper\src\test\java\cc\fascinated\tests\ServerControllerTests.java