Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

forgemachine86

Members
  • Joined

  1. Oh whoops this should have been on the main forum instead of the sub-forum.
  2. I am attempting to get the BeehiveBlockEntity object that the player is looking at. I want to display its properties to the player on the F3 debug screen. I am using a mixin in the DebugScreenOverlay class at the getCustomSystemInformation method. In the following code, beeCount is always 0 and isFull and isEmpty are respectively always false and true. This is even when there are bees inhabiting the hives. Running /data get block <x> <y> <z> shows that the hive is occupied and shows the NBT of the hive and the bees within. But, the code does not log the NBT of any of the bees. What would be the proper way to access the BeehiveBlockEntity from the client and get its properties? Ex: @Mixin(DebugScreenOverlay.class) public class DebugScreenOverlayMixin extends GuiComponent { // Directly reference a slf4j logger private static final Logger LOGGER = LogUtils.getLogger(); /** * Add more information into the right-hand menu of the F3 debug screen * * @param cir The mixin object to return the strings we get * @param i Runtime max memory * @param j Runtime total memory * @param k Runtime free memory * @param l Runtime used memory * @param list The list of strings to render * @param entity The entity under the crosshair, null if none */ @Inject(remap = false, method = "getSystemInformation", at = @At(value = "RETURN", ordinal = 1), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) public void getCustomSystemInformation(CallbackInfoReturnable<List<String>> cir, long i, long j, long k, long l, List<String> list, Entity entity) { Minecraft mc = Minecraft.getInstance(); HitResult hitResult = mc.hitResult; LocalPlayer player = mc.player; DebugScreenOverlay currObj = (DebugScreenOverlay)(Object)this; if (hitResult != null && hitResult.getType() != HitResult.Type.MISS) { if (currObj.block.getType() == HitResult.Type.BLOCK) { BlockPos blockPos = ((BlockHitResult) hitResult).getBlockPos(); BlockState blockState = mc.level.getBlockState(blockPos); BlockEntity blockEntity = player.level.getBlockEntity(blockPos); if (blockState.hasBlockEntity()) { if (blockEntity instanceof BeehiveBlockEntity beehiveBlockEntity) { LOGGER.info(beehiveBlockEntity.serializeNBT().toString()); int pos = list.indexOf(ChatFormatting.UNDERLINE + "Targeted Block: " + blockPos.getX() + ", " + blockPos.getY() + ", " + blockPos.getZ()); list.add(pos + 2, "bee count: " + beehiveBlockEntity.getOccupantCount()); list.add(pos + 3, "is full: " + beehiveBlockEntity.isFull()); list.add(pos + 4, "is empty: " + beehiveBlockEntity.isEmpty()); list.add(pos + 5, "is fire nearby: " + beehiveBlockEntity.isFireNearby()); list.add(pos + 6, "is sedated: " + beehiveBlockEntity.isSedated()); } } } } } }

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.