Fix capes of a *smaller* size throwing an error
@@ -412,7 +412,7 @@ public class SkinProvider {
// if the requested image is a cape
if (provider != null) {
- if (image.getWidth() > 64) {
+ if (image.getWidth() > 64 || image.getHeight() > 32) {
// Prevent weirdly-scaled capes from being cut off
BufferedImage newImage = new BufferedImage(128, 64, BufferedImage.TYPE_INT_ARGB);
Graphics g = newImage.createGraphics();
@@ -420,6 +420,14 @@ public class SkinProvider {
g.dispose();
image.flush();
image = scale(newImage, 64, 32);
+ } else if (image.getWidth() < 64 || image.getHeight() < 32) {
+ // Bedrock doesn't like smaller-sized capes, either.
+ BufferedImage newImage = new BufferedImage(64, 32, BufferedImage.TYPE_INT_ARGB);
+ Graphics g = newImage.createGraphics();
+ g.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null);
+ g.dispose();
+ image.flush();
+ image = newImage;
}
} else {
// Very rarely, skins can be larger than Minecraft's default.
