From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: DoctaEnkoda Date: Mon, 3 May 2021 01:33:14 +0200 Subject: [PATCH] Allows to display progress messages by player instead to everyone on the server. diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java index 8bfd20ff9a3c96fa9ff5cc618ca7e858e62943a0..97479cacc2a3f7850df8647f78d7dbb5710ae27b 100644 --- a/src/main/java/net/minecraft/advancements/Advancement.java +++ b/src/main/java/net/minecraft/advancements/Advancement.java @@ -125,6 +125,7 @@ public class Advancement { return this.requirements; } + public IChatBaseComponent getChatComponent() { return j(); } // Purpur - OBFHELPER public IChatBaseComponent j() { return this.chatComponent; } diff --git a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java index f096ecf8d77b085e6c2ef4c3b64f0b65409bb287..bfa86826b93a2eee7f22203ca09250e15f12d217 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementFrameType.java +++ b/src/main/java/net/minecraft/advancements/AdvancementFrameType.java @@ -31,6 +31,7 @@ public enum AdvancementFrameType { this.g = new ChatMessage("advancements.toast." + s); } + public String getName() { return a(); } // Purpur - OBFHELPER public String a() { return this.d; } diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java index 59d781b5e61c5d2c004bc92300d8d42e81821308..b81a0e1c3ff3d749b6bbd9efdbc7823d1c631b8e 100644 --- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java +++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java @@ -59,7 +59,7 @@ public class AdvancementDataPlayer { private static final TypeToken> c = new TypeToken>() { }; private final DataFixer d; - private final PlayerList e; + private final PlayerList e; public PlayerList getPlayerList() { return e; } // Purpur - OBFHELPER private final File f; public final Map data = Maps.newLinkedHashMap(); private final Set h = Sets.newLinkedHashSet(); @@ -317,7 +317,14 @@ public class AdvancementDataPlayer { this.player.world.getServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerAdvancementDoneEvent(this.player.getBukkitEntity(), advancement.bukkit)); // CraftBukkit advancement.d().a(this.player); if (advancement.c() != null && advancement.c().i() && this.player.world.getGameRules().getBoolean(GameRules.ANNOUNCE_ADVANCEMENTS)) { - this.e.sendMessage(new ChatMessage("chat.type.advancement." + advancement.c().e().a(), new Object[]{this.player.getScoreboardDisplayName(), advancement.j()}), ChatMessageType.SYSTEM, SystemUtils.b); + // Purpur Start - AdvancementMessage By Player + ChatMessage advancementMessage = new ChatMessage("chat.type.advancement." + advancement.getDisplay().getFrameType().getName(), this.player.getScoreboardDisplayName(), advancement.getChatComponent()); + if (net.pl3x.purpur.PurpurConfig.advancementOnlyBroadcastToAffectedPlayer) { + this.player.sendMessage(advancementMessage, SystemUtils.getNullUUID()); + } else { + getPlayerList().sendMessage(advancementMessage, ChatMessageType.SYSTEM, SystemUtils.getNullUUID()); + } + // Purpur End } } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index 56424e45c04e7165c0671f74cdcd0147d1069af7..7e8654e4df61527f33d4fce2afdb14e29b90a4c2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -287,4 +287,9 @@ public class PurpurConfig { private static void tpsCatchup() { tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup); } + + public static boolean advancementOnlyBroadcastToAffectedPlayer = false; + private static void advancementSettings() { + advancementOnlyBroadcastToAffectedPlayer = getBoolean("settings.advancement.only-broadcast-to-affected-player", advancementOnlyBroadcastToAffectedPlayer ); + } }