mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Fix capes of a *smaller* size throwing an error (#1998)
This commit is contained in:
parent
e0e435fdc5
commit
f926b83b33
1 changed files with 9 additions and 1 deletions
|
@ -412,7 +412,7 @@ public class SkinProvider {
|
||||||
|
|
||||||
// if the requested image is a cape
|
// if the requested image is a cape
|
||||||
if (provider != null) {
|
if (provider != null) {
|
||||||
if (image.getWidth() > 64) {
|
if (image.getWidth() > 64 || image.getHeight() > 32) {
|
||||||
// Prevent weirdly-scaled capes from being cut off
|
// Prevent weirdly-scaled capes from being cut off
|
||||||
BufferedImage newImage = new BufferedImage(128, 64, BufferedImage.TYPE_INT_ARGB);
|
BufferedImage newImage = new BufferedImage(128, 64, BufferedImage.TYPE_INT_ARGB);
|
||||||
Graphics g = newImage.createGraphics();
|
Graphics g = newImage.createGraphics();
|
||||||
|
@ -420,6 +420,14 @@ public class SkinProvider {
|
||||||
g.dispose();
|
g.dispose();
|
||||||
image.flush();
|
image.flush();
|
||||||
image = scale(newImage, 64, 32);
|
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 {
|
} else {
|
||||||
// Very rarely, skins can be larger than Minecraft's default.
|
// Very rarely, skins can be larger than Minecraft's default.
|
||||||
|
|
Loading…
Reference in a new issue