Jump to content

Recommended Posts

Posted (edited)

Hi, I am directly copying a method from net.minecraft.block.Block to implement it in my ModBlock class that extends Block.

 

When I literally copy and paste the method and add @Override to the method, it says that the method must exist in the extended class eg Block.

 

I'm severely confused as this is a basic in Java???

 

Here is my ModBlock.class

package com.zeher.zeherlib.mod.block;

import net.minecraft.block.Block;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.GameRules;
import net.minecraft.world.World;

public class ModBlock extends Block {

	public ModBlock(Block.Properties properties) {
		super(properties);
	}

@Override
	public static void spawnAsEntity(World worldIn, BlockPos pos, ItemStack stack) {
		if (!worldIn.isRemote && !stack.isEmpty() && worldIn.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)
				&& !worldIn.restoringBlockSnapshots) {
			double d0 = (double) (worldIn.rand.nextFloat() * 0.5F) + 0.25D;
			double d1 = (double) (worldIn.rand.nextFloat() * 0.5F) + 0.25D;
			double d2 = (double) (worldIn.rand.nextFloat() * 0.5F) + 0.25D;
			ItemEntity itementity = new ItemEntity(worldIn, (double) pos.getX() + d0, (double) pos.getY() + d1,
					(double) pos.getZ() + d2, stack);
			itementity.setDefaultPickupDelay();
			worldIn.addEntity(itementity);
		}
	}
}

 

Is this method somehow abstract?

Edited by Zeher_Monkey
Posted

It means you're not actually overriding a method. i.e. the signature (name, parameters, return type) don't match a method in the parent class.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
5 hours ago, Zeher_Monkey said:

I'm severely confused as this is a basic in Java???

You're trying to override a static method, you can't do that, and it doesn't even make sense.

It's sad how much time mods spend saying "x is no longer supported on this forum. Please update to a modern version of Minecraft to receive support".

Posted (edited)

Okay, didn't know that. I'm trying to get a block to drop an item, like diamond ore blocks drop diamonds. In previous versions I would use

 

@Override
	public Item getItemDropped(IBlockState state, Random rand, int fortune) {
		return this.item;
	}

 

But I cant find a suitable replacement in 1.14.4.

 

I have also tried mining my block in survival and the block doesn't drop anything.

 

This is the properties of the Block:

 

Block.Properties.create(Material.IRON).hardnessAndResistance(8).harvestLevel(2).harvestTool(ToolType.PICKAXE).lightValue(15)

 

Edited by Zeher_Monkey
Posted

Nevermind, I have figured it out. I have to use loot_tables.json files for each block i register. Inside

 

resources/data/modid/loot_tables/blocks/block.json

 

And I can choose what it drops and the amount.

Posted
1 hour ago, Zeher_Monkey said:

Okay, didn't know that.

Of course you can't override static methods, as Block.SomeFunc is always going to be part of the Block class

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
6 minutes ago, Draco18s said:

Of course you can't override static methods, as Block.SomeFunc is always going to be part of the Block class

 

Got it. Been programming in Java for 9 years and only just now found that out. Learn something new... haha

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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