From f21286137092a54297922f0e43732a3fe994661e Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Tue, 21 Jan 2025 20:41:55 +0000 Subject: [PATCH] Mark command computers as onlyOpCanSetNbt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This isn't required in vanilla, as the command computer is a GameMasterBlock, and so isn't placeable in the first place. *However*, this is a problem with Create contraptions — with those it's possible to "place" a command computer complete with NBT. We override onlyOpCanSetNbt to prevent this [^1]. [^1]: https://github.com/Creators-of-Create/Create/blob/7a7993deb89e432f8a4cce8a8d5f35f85f57bfed/src/main/java/com/simibubi/create/foundation/utility/NBTProcessors.java#L179 --- .../shared/computer/blocks/AbstractComputerBlockEntity.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/projects/common/src/main/java/dan200/computercraft/shared/computer/blocks/AbstractComputerBlockEntity.java b/projects/common/src/main/java/dan200/computercraft/shared/computer/blocks/AbstractComputerBlockEntity.java index aaceb04ee..472180b33 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/computer/blocks/AbstractComputerBlockEntity.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/computer/blocks/AbstractComputerBlockEntity.java @@ -417,4 +417,9 @@ public Component getCustomName() { public Component getDisplayName() { return Nameable.super.getDisplayName(); } + + @Override + public boolean onlyOpCanSetNbt() { + return getFamily() == ComputerFamily.COMMAND; + } }