From a594a163f7c094f3fe20d51fca879796b7bc65c5 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Mon, 1 Dec 2025 09:14:09 +0100 Subject: [PATCH] Fix NodeMember for Present since the setter for parent apparently does not work --- CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt | 11 +++++++++++ .../src/de/steamwar/lobby/special/advent/Present.java | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt b/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt index 410fc140..539532af 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/NodeMember.kt @@ -55,6 +55,17 @@ class NodeMember(id: EntityID) : CompositeEntity(id) { getNodeMember(node, member) ?: throw IllegalStateException("NodeMember not created") } + @JvmStatic + fun createNodeMember(node: Int, member: Int, parent: SchematicNode): NodeMember = useDb { + if (!parent.isDir()) throw IllegalStateException("Parent must be a directory") + NodeMemberTable.insertIgnore { + it[this.node] = EntityID(node, SchematicNodeTable) + it[this.userId] = EntityID(member, SteamwarUserTable) + it[NodeMemberTable.parentNode] = parent.getId() + } + getNodeMember(node, member) ?: throw IllegalStateException("NodeMember not created") + } + @JvmStatic fun createNodeMember(node: Int, member: SteamwarUser) = createNodeMember(node, member.id.value) diff --git a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java index d8b2a908..4874800d 100644 --- a/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java +++ b/LobbySystem/src/de/steamwar/lobby/special/advent/Present.java @@ -97,9 +97,10 @@ public class Present { folder = null; } } - NodeMember nodeMember = NodeMember.createNodeMember(schematicId, user.getId()); if (folder != null) { - nodeMember.setParent(Optional.of(folder.getId())); + NodeMember.createNodeMember(schematicId, user.getId(), folder); + } else { + NodeMember.createNodeMember(schematicId, user.getId()); } LobbySystem.getMessage().send("ADVENT_CALENDAR_OPEN", player, node.getName()); player.playSound(location, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);