Match Advancement Packet Behavior Towards Java (#4684)

* Send advancement packet regardless of current tab

* Send advancement close packet when single-advancement form closed
This commit is contained in:
gecko10000 2024-05-22 02:26:32 -07:00 committed by GitHub
parent 96bfda2ed3
commit 6f4c29c834
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -91,11 +91,9 @@ public class AdvancementsCache {
builder.validResultHandler((response) -> {
String id = rootAdvancementIds.get(response.clickedButtonId());
if (!id.equals("")) {
if (!id.equals(currentAdvancementCategoryId)) {
// Send a packet indicating that we are opening this particular advancement window
ServerboundSeenAdvancementsPacket packet = new ServerboundSeenAdvancementsPacket(id);
session.sendDownstreamGamePacket(packet);
}
// Send a packet indicating that we are opening this particular advancement window
ServerboundSeenAdvancementsPacket packet = new ServerboundSeenAdvancementsPacket(id);
session.sendDownstreamGamePacket(packet);
currentAdvancementCategoryId = id;
buildAndShowListForm();
}
@ -188,6 +186,10 @@ public class AdvancementsCache {
.content(content)
.button(GeyserLocale.getPlayerLocaleString("gui.back", language))
.validResultHandler((response) -> buildAndShowListForm())
.closedResultHandler(() -> {
// Indicate that we have closed the current advancement tab
session.sendDownstreamGamePacket(new ServerboundSeenAdvancementsPacket());
})
);
}