diff --git a/src/main/java/gripe/_90/appliede/me/misc/EMCInterfaceLogic.java b/src/main/java/gripe/_90/appliede/me/misc/EMCInterfaceLogic.java index 4581f1d..1742b78 100644 --- a/src/main/java/gripe/_90/appliede/me/misc/EMCInterfaceLogic.java +++ b/src/main/java/gripe/_90/appliede/me/misc/EMCInterfaceLogic.java @@ -329,10 +329,29 @@ public boolean matches(AEKey what) { } var grid = mainNode.getGrid(); - return grid == null - || grid.getService(KnowledgeService.class).knowsItem(item) + + if (grid == null) { + // client-side, allow everything in order for items to actually display + return true; + } + + var node = mainNode.getNode(); + + if (node == null) { + return false; + } + + var uuid = node.getOwningPlayerProfileId(); + + if (uuid == null) { + return false; + } + + var knowledge = grid.getService(KnowledgeService.class); + return knowledge.knowsItem(item) || (upgrades.isInstalled(AppliedE.LEARNING_CARD.get()) - && IEMCProxy.INSTANCE.hasValue(item.toStack())); + && IEMCProxy.INSTANCE.hasValue(item.toStack()) + && knowledge.getProviderFor(uuid) != null); } } } diff --git a/src/main/java/gripe/_90/appliede/me/service/KnowledgeService.java b/src/main/java/gripe/_90/appliede/me/service/KnowledgeService.java index 4785cc4..3e95976 100644 --- a/src/main/java/gripe/_90/appliede/me/service/KnowledgeService.java +++ b/src/main/java/gripe/_90/appliede/me/service/KnowledgeService.java @@ -108,7 +108,7 @@ Set getProviders() { return providers.values().stream().map(Supplier::get).collect(Collectors.toUnmodifiableSet()); } - Supplier getProviderFor(UUID uuid) { + public Supplier getProviderFor(UUID uuid) { return providers.get(uuid); }