Jump to content

get coordinates of the block the player looking at


DoctorG_Mystery

Recommended Posts

here:

package drgmystery.darklight.events;

import net.minecraft.item.Item;
import net.minecraft.block.Blocks;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUseContext;
import net.minecraft.util.ActionResult;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class DarklightPlaceTest extends Item{

    }

    @Override
        public ActionResult<ItemStack> useOn(PlayerEntity player, World world, Hand hand, BlockPos Pos){
            if(!world.isClientSide){
                 ;
                double x = player.position().x();
                double y = player.position().y();
                double z = player.position().z(); 
                BlockPos blockPos = new BlockPos(x, y, z);
                world.setBlockAndUpdate(blockPos, Blocks.DIAMOND_BLOCK.defaultBlockState());
            }
            return ActionResult.pass(null);
        }

    @Override
    public ActionResultType useOn(ItemUseContext p_195939_1_) {
        // TODO Auto-generated method stub
        return super.useOn(p_195939_1_);
    }

}

edit: sorry I only read: what has been generated the error?

Edited by DoctorG_Mystery
Link to comment
Share on other sites

errors at this points:

            if(!world.isClientSide){
                double x = player.position().x();
                double y = player.position().y();
                double z = player.position().z(); 
                BlockPos blockPos = new BlockPos(x, y, z);
                world.setBlockAndUpdate(blockPos, Blocks.DIAMOND_BLOCK.defaultBlockState());
            }

Link to comment
Share on other sites

look better so?

        PlayerEntity player = null;
        World world = null;
        Hand hand = null;
        if(!world.isClientSide){
             ;
           double x = player.position().x();
           double y = player.position().y();
           double z = player.position().z(); 
           BlockPos blockPos = new BlockPos(x, y, z);
            world.setBlockAndUpdate(blockPos, Blocks.DIAMOND_BLOCK.defaultBlockState());
        }

Link to comment
Share on other sites

no errors more

        PlayerEntity player;
        World world;
        Hand hand;
        
    @Override
    public ActionResultType useOn(ItemUseContext p_195939_1_) {

        if(!world.isClientSide){
             ;
           double x = player.position().x();
           double y = player.position().y();
           double z = player.position().z(); 
           BlockPos blockPos = new BlockPos(x, y, z);
            world.setBlockAndUpdate(blockPos, Blocks.DIAMOND_BLOCK.defaultBlockState());
        }
        return super.useOn(p_195939_1_);
    }

Link to comment
Share on other sites

I wanted to add that I am doing "learning by doing" and not only understand Forge mobing but also Java as well as the IDE Eclipse, so when I look very stupid (and I feel stupid to myself because I sometimes don't check it what you mean) so sorry for that and thank you for your time for my problem with Probgarmmiren ^^

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • my arrow wont move at all it would stay mid air and show no collision   my Entity class: package net.jeezedboi.epicraft.entity.custom; import net.jeezedboi.epicraft.init.ModItems; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.projectile.AbstractArrowEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.IPacket; import net.minecraft.util.math.EntityRayTraceResult; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.fml.network.NetworkHooks; public class ExplosiveArrowEntity extends AbstractArrowEntity { // default constructor, required to register the entity public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, World world) { super(entityType, world); } public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, double x, double y, double z, World world) { super(entityType, x, y, z, world); } // the constructor used by the ArrowItem public ExplosiveArrowEntity(EntityType<ExplosiveArrowEntity> entityType, LivingEntity shooter, World world) { super(entityType, shooter, world); } // the item stack to give the player when they walk over your arrow stuck in the ground @Override protected ItemStack getArrowStack() { return new ItemStack(ModItems.EXPLOSIVE_ARROW.get()); } @Override protected void onEntityHit(EntityRayTraceResult result) { super.onEntityHit(result); // this, x, y, z, explosionStrength, setsFires, breakMode (NONE, BREAK, DESTROY) this.world.createExplosion(this, this.getPosX(), this.getPosY(), this.getPosZ(), 4.0f, true, Explosion.Mode.BREAK); } // called each tick while in the ground @Override public void tick() { if (this.timeInGround > 60){ this.world.createExplosion(this, this.getPosX(), this.getPosY(), this.getPosZ(), 4.0f, true, Explosion.Mode.BREAK); this.remove(); } } // syncs to the client @Override public IPacket<?> createSpawnPacket() { return NetworkHooks.getEntitySpawningPacket(this); } } my item class :   package net.jeezedboi.epicraft.item.custom; import net.jeezedboi.epicraft.entity.custom.ExplosiveArrowEntity; import net.jeezedboi.epicraft.init.ModEntityTypes; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.projectile.AbstractArrowEntity; import net.minecraft.item.ArrowItem; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class ExplosiveArrowItem extends ArrowItem { public ExplosiveArrowItem(Properties props) { super(props); } @Override public AbstractArrowEntity createArrow(World world, ItemStack ammoStack, LivingEntity shooter) { ExplosiveArrowEntity explosiveArrowEntity = new ExplosiveArrowEntity(ModEntityTypes.EXPLOSIVE_ARROW.get(), shooter, world); return explosiveArrowEntity; } } other stuffs: public static final RegistryObject<Item> EXPLOSIVE_ARROW = ITEMS.register("explosive_arrow", () -> new ExplosiveArrowItem(new Item.Properties().group(ModItemGroup.Epic_Items))); public static final RegistryObject<EntityType<ExplosiveArrowEntity>> EXPLOSIVE_ARROW = ENTITY_TYPES.register("explosive_arrow", () -> EntityType.Builder.create((EntityType.IFactory<ExplosiveArrowEntity>) ExplosiveArrowEntity::new, EntityClassification.MISC) .size(0.5F, 0.5F).build("explosive_arrow")); mappings channel: 'snapshot', version: '20210309-1.16.5'
    • may i ask what it was that fixed it, I'm having the same problem and its frustrating because I'm making an origin.
    • I need to accesses byPath field of net.minecraft.client.renderer.texture.TextureManager. As I found out I need to use accesstransformer.cfg file and make the field public via it. In this file field names look like f_<numbers>. And I was unable to figure out, how to get those. It seems like it is connected to something called mappings (thing left after Minecraft decompile process). How can I get such a name for a class field?
    • The game crashed whilst rendering overlay Error: java.lang.OutOfMemoryError: Java heap space Exit Code: -1   Crash Report:                                              Log: https://pastebin.com/9NMLr5bD       https://pastebin.com/av6Q2jCf Password: gpTq3Gvkc5                     qdF0BeJGYN   Any suggestions what should i do here?
  • Topics

×
×
  • Create New...

Important Information

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