Upstream has released updates that appear to apply and compile correctly. [Purpur Changes] PurpurMC/Purpur@3fc255d: Updated Upstream (Paper) PurpurMC/Purpur@93f3948: bump Gradle wrapper version to 8.10.2 PurpurMC/Purpur@1a67c42: drop the patch that removes the mojang profiler for now PurpurMC/Purpur@803bf62: Final 1.21.1 Upstream (Paper) PurpurMC/Purpur@af96590: Merge branch 'ver/1.21.1' into ver/1.21.3 PurpurMC/Purpur@c6802b0: Updated Upstream (Paper) [Paper Changes] PaperMC/Paper@99b1bf9: Use new ClientboundPlayerRotationPacket for setting player rotation PaperMC/Paper@40211a0: Update Gradle wrapper to 8.10.2 PaperMC/Paper@49eae0d: remove some leftovers PaperMC/Paper@d576cfc: cleanup bugfix patch PaperMC/Paper@1196ab5: Avoid issues with certain tasks not processing during sleep (#11526) PaperMC/Paper@fe2f3d4: Fix portal exit resulting in bad teleport transition PaperMC/Paper@9f1fa0b: Fix item gravity on inactive items, remove dumb active skipping PaperMC/Paper@1a1d0cf: Use target pitch in teleport (generally the same thing) PaperMC/Paper@8ba3073: fix "is_freezing" damage type tag PaperMC/Paper@1523212: don't resend effects when PlayerItemConsumeEvent is cancelled PaperMC/Paper@1330880: Add Friction API to minecarts PaperMC/Paper@580a610: Allow using old ender pearl behavior & apply ender pearl exploit patch (#11524) PaperMC/Paper@40a960d: Rebuild patches PaperMC/Paper@dfedf79: Correctly cancel consumption of consumable PaperMC/Paper@147b796: get previous redstone level from the right state for experimental wires PaperMC/Paper@ad9c58e: Only expose velocity relative tp flags to API (#11532) PaperMC/Paper@f273e6e: Set updatingMinecraft to false PaperMC/Paper@c5c1250: [ci skip] Remove leftover todo file (#11540) PaperMC/Paper@7ee4835: Correctly clear explosion density cache(#11541) PaperMC/Paper@52a0590: Updated Upstream (Bukkit/CraftBukkit) (#11543) PaperMC/Paper@5c0930d: Fix fix recipe iterator patch PaperMC/Paper@1de0130: re-add a dispense fix patch PaperMC/Paper@16d7d73: bunch more general fixes PaperMC/Paper@a5d7426: Correctly support RecipeChoice.empty (#11550) PaperMC/Paper@85c870e: Correct update cursor (#11554) PaperMC/Paper@d19be64: Fix NPE with spark when CraftServer is not init yet (#11558) PaperMC/Paper@92131ad: Decrease dead entity teleport warning (#11559)
78 lines
4.2 KiB
Diff
78 lines
4.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: AlphaKR93 <dev@alpha93.kr>
|
|
Date: Mon, 6 May 2024 13:40:48 +0900
|
|
Subject: [PATCH] Use Plazma logo instead if server favicon doesn't exist
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index eaa5695197e753ab4ae477592304381091b28082..7a039a1fa5a512dd8d2a70a7fad330d2d83a02fe 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -1622,29 +1622,32 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
}
|
|
|
|
private Optional<ServerStatus.Favicon> loadStatusIcon() {
|
|
- Optional<Path> optional = Optional.of(this.getFile("server-icon.png")).filter((path) -> {
|
|
- return Files.isRegularFile(path, new LinkOption[0]);
|
|
- }).or(() -> {
|
|
- return this.storageSource.getIconFile().filter((path) -> {
|
|
- return Files.isRegularFile(path, new LinkOption[0]);
|
|
- });
|
|
- });
|
|
-
|
|
- return optional.flatMap((path) -> {
|
|
- try {
|
|
- BufferedImage bufferedimage = ImageIO.read(path.toFile());
|
|
-
|
|
- Preconditions.checkState(bufferedimage.getWidth() == 64, "Must be 64 pixels wide");
|
|
- Preconditions.checkState(bufferedimage.getHeight() == 64, "Must be 64 pixels high");
|
|
- ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
|
|
-
|
|
- ImageIO.write(bufferedimage, "PNG", bytearrayoutputstream);
|
|
- return Optional.of(new ServerStatus.Favicon(bytearrayoutputstream.toByteArray()));
|
|
- } catch (Exception exception) {
|
|
- MinecraftServer.LOGGER.error("Couldn't load server icon", exception);
|
|
- return Optional.empty();
|
|
- }
|
|
- });
|
|
+ // Plazma start - Use Plazma logo instead if server favicon doesn't exist
|
|
+ @Nullable File file = Optional.of(this.getFile("server-icon.png").toAbsolutePath()).filter(Files::isRegularFile)
|
|
+ .or(() -> this.storageSource.getIconFile().filter(Files::isRegularFile)).map(Path::toFile).orElse(null);
|
|
+ try (
|
|
+ java.io.InputStream stream = (file != null)
|
|
+ ? new java.io.FileInputStream(file)
|
|
+ : (
|
|
+ org.plazmamc.plazma.Options.VANILLA_ICO
|
|
+ ? null
|
|
+ : MinecraftServer.class.getResourceAsStream("logo.png")
|
|
+ )
|
|
+ ) {
|
|
+ if (stream == null) return Optional.empty();
|
|
+ if (file == null && !org.plazmamc.plazma.Options.VANILLA_ICO)
|
|
+ LOGGER.info("No server icon found, using the logo instead.");
|
|
+ BufferedImage bufferedimage = ImageIO.read(stream);
|
|
+ Preconditions.checkState(bufferedimage.getWidth() == 64, "Must be 64 pixels wide");
|
|
+ Preconditions.checkState(bufferedimage.getHeight() == 64, "Must be 64 pixels high");
|
|
+ ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
|
|
+ ImageIO.write(bufferedimage, "PNG", bytearrayoutputstream);
|
|
+ return Optional.of(new ServerStatus.Favicon(bytearrayoutputstream.toByteArray()));
|
|
+ } catch (Exception exception) {
|
|
+ MinecraftServer.LOGGER.error("Couldn't load server icon", exception);
|
|
+ return Optional.empty();
|
|
+ }
|
|
+ // Plazma end - Use Plazma logo instead if server favicon doesn't exist
|
|
}
|
|
|
|
public Optional<Path> getWorldScreenshotFile() {
|
|
diff --git a/src/main/java/org/plazmamc/plazma/Options.java b/src/main/java/org/plazmamc/plazma/Options.java
|
|
index a8711b8a66b443d40cad8dfec31cca357e0877b4..4b3ae18ef8cd09a2d9c9eaee2bf402d0dd7ee1cd 100644
|
|
--- a/src/main/java/org/plazmamc/plazma/Options.java
|
|
+++ b/src/main/java/org/plazmamc/plazma/Options.java
|
|
@@ -11,5 +11,6 @@ public interface Options {
|
|
boolean AGGRESSIVE = getBoolean("Plazma.aggressiveOptimize") && !NO_OPTIMIZE;
|
|
boolean VANILLAIZE = getBoolean("Plazma.vanillaize") && !AGGRESSIVE;
|
|
boolean USE_VANILLA = getBoolean("Plazma.useVanillaConfiguration") && !AGGRESSIVE && NO_OPTIMIZE;
|
|
+ boolean VANILLA_ICO = getBoolean("Plazma.useVanillaFavicon");
|
|
|
|
}
|