From 1ae445319a94b30ca724a038e279ea00c40a34f2 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Tue, 25 Nov 2025 22:04:44 +0100 Subject: [PATCH] Improve Present.click --- .../lobby/special/advent/Present.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java index 69d83468..d8b2a908 100644 --- a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java +++ b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java @@ -84,8 +84,24 @@ public class Present { if (day != this.day) return; if (!locations.contains(Point.toPoint(location))) return; if (NodeMember.getNodeMember(schematicId, user.getId()) != null) return; - NodeMember.createNodeMember(schematicId, user.getId()); - LobbySystem.getMessage().send("ADVENT_CALENDAR_OPEN", player, SchematicNode.getSchematicNode(schematicId).getName()); + SchematicNode node = SchematicNode.byId(schematicId); + SchematicNode folder = node.getParentNode(); + if (folder != null) { + String name = folder.getName(); + String item = folder.getItem(); + folder = SchematicNode.getSchematicNode(user.getId(), name, (Integer) null); + if (folder == null) { + folder = SchematicNode.createSchematicDirectory(user.getId(), name, null); + folder.setItem(item); + } else if (!folder.isDir()) { + folder = null; + } + } + NodeMember nodeMember = NodeMember.createNodeMember(schematicId, user.getId()); + if (folder != null) { + nodeMember.setParent(Optional.of(folder.getId())); + } + LobbySystem.getMessage().send("ADVENT_CALENDAR_OPEN", player, node.getName()); player.playSound(location, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1); }