Jump to content

[1.12] Giving player items / checking for item in world


TheGoldenProof

Recommended Posts

The way I want this to work:

You throw the dragon bone ax on top of a Gigas Cedar Log and right-click the log with an empty hand and it gives you a Gigas Cedar Branch if you are above y = 200.

 

Log method

@Override
	public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
		
		AxisAlignedBB above = new AxisAlignedBB(pos.up());
		boolean hasAxe = false;
		List<EntityItem> entities = worldIn.getEntitiesWithinAABB(EntityItem.class, above);
		
		for(EntityItem ei : entities) {
			if (ei.getItem().getItem().equals(ModItems.DRAGON_BONE_AXE)) {
				hasAxe = true;
			}
		}
		
		if (pos.getY() > 200 && playerIn.inventory.getCurrentItem() == ItemStack.EMPTY && hasAxe) {
			playerIn.addItemStackToInventory(new ItemStack(ModItems.GIGAS_CEDAR_BRANCH, 1));
		}
		return false;
	}

 

Dragon Bone Ax code (unnecessary variables and stuff excluded)

public class ModItems {
	
	public static final List<Item> ITEMS = new ArrayList<Item>();
	
	//Tooltips
	
	//Object Priorities
	public static final int P_DRAGON_BONE_AXE = 10;
	
	//Materials
	public static final ToolMaterial M_DRAGON_BONE = EnumHelper.addToolMaterial("m_dragon_bone", P_DRAGON_BONE_AXE, P_DRAGON_BONE_AXE*60, P_DRAGON_BONE_AXE/4.0f, P_DRAGON_BONE_AXE/3.0f, 10);
	
	//Tools
	public static final ItemAxe DRAGON_BONE_AXE = new ToolAxe("dragon_bone_axe", M_DRAGON_BONE, P_DRAGON_BONE_AXE, SAOM.saoModTab);
	
	//Items
	
}

 

but it doesn't work

Link to comment
Share on other sites

17 minutes ago, TheGoldenProof said:

playerIn.inventory.getCurrentItem() == ItemStack.EMPTY

Don't do this, use ItemStack#isEmpty instead. An item stack may be empty but not equal to ItemStack.EMPTY.

 

17 minutes ago, TheGoldenProof said:

public static final ItemAxe DRAGON_BONE_AXE = new ToolAxe("dragon_bone_axe", M_DRAGON_BONE, P_DRAGON_BONE_AXE, SAOM.saoModTab);

Don't ever use static initializers. Instantinate your stuff directly in the appropriate registry event.

 

Apart from that use the debugger to see which items are actually selected within the AABB specified and whether ut contains your axe item. You might need to extend it a bit. Also consider using java 8's streams instead of loops in cases like this one.

Link to comment
Share on other sites

5 minutes ago, V0idWa1k3r said:

Don't ever use static initializers. Instantinate your stuff directly in the appropriate registry event.

I'm new at modding (you can tell) and so I don't know what registry events are or how to instantiate my objects in them

 

5 minutes ago, V0idWa1k3r said:

Apart from that use the debugger to see which items are actually selected within the AABB specified and whether ut contains your axe item. You might need to extend it a bit. Also consider using java 8's streams instead of loops in cases like this one.

Also somewhat new to java and eclipse. I've never used Eclipse's debugger and I have heard of streams but I don't really know what they are.

 

I'll look into streams and try the debugger but if you could explain how to do the registry thing a little more that would be great

Link to comment
Share on other sites

4 minutes ago, TheGoldenProof said:

so I don't know what registry events are

Yes you do. Registry events are events where you register your things. RegistryEvent.Register<? extends IForgeRegistryEntry>. If you have any items/blocks present in your mod you are using registry events.

 

5 minutes ago, TheGoldenProof said:

how to instantiate my objects in them

Yes you do. You are currently instantinating your objects in static initializers. Just do the same in the registry event instead.

 

6 minutes ago, TheGoldenProof said:

I've never used Eclipse's debugger

Well maybe it is time to start. You can't really solve issues without a debugger and you can't write pretty much anything above a hello world application if you can't solve issues.

 

6 minutes ago, TheGoldenProof said:

I have heard of streams but I don't really know what they are.

They are a java feature. If you don't know java then you need to learn it before making a mod otherwise you are constructing a rocket without any instructions.

Link to comment
Share on other sites

If you know any other Object Oriented Programming already, it won’t be impossible to go straight into modding, and all you really need is a basic java tutorial. It shouldn’t take very long at all to learn java, and that time is definitely not “wasted”

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

Someone's been watching Sword Art Online season 3. ?

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.

Link to comment
Share on other sites

1 minute ago, Cadiboo said:

If you know any other Object Oriented Programming already, it won’t be impossible to go straight into modding, and all you really need is a basic java tutorial. It shouldn’t take very long at all to learn java, and that time is definitely not “wasted

Thanks, I didn't really mean what I said, I was just frustrated. I have a decent understanding of java stuff but I definitely don't know everything, because there is SO much to learn.

 

2 minutes ago, Draco18s said:

Someone's been watching Sword Art Online season 3. ?

In fact I am, however I was impatient and started reading the alicization books (9+) and now I'm on 12

Link to comment
Share on other sites

You can also use println statements to see what is going on during runtime. Just print out the list of entities to the console to check whether your axe is in the list. Perhaps not as fancy as using the debugger, but it often gets the job done. You should still take the time to learn how to use the debugger. There are times when it's super helpful, particularly when you need to see the details of what vanilla code is doing.

 

5 minutes ago, TheGoldenProof said:

Thanks, I didn't really mean what I said, I was just frustrated. I have a decent understanding of java stuff but I definitely don't know everything, because there is SO much to learn.

You can make mods perfectly fine without knowing what Java 8 streams are or how to use them. You do, however, need to know Java basics well.

 

29 minutes ago, V0idWa1k3r said:

Don't ever use static initializers. Instantinate your stuff directly in the appropriate registry event.

I've heard this a few times, but never with any reason given. What's so horrific about using static initializers?

Link to comment
Share on other sites

1 minute ago, Daeruin said:

I've heard this a few times, but never with any reason given. What's so horrific about using static initializers?

Because you can't control when it executes and Forge may not have done all the things it needs to for the Registries, so your item is missing a key bit of information and won't register correctly.

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.

Link to comment
Share on other sites

1 minute ago, Daeruin said:

I've heard this a few times, but never with any reason given. What's so horrific about using static initializers?

What draco18s said as well as

You can’t control the order of when they are instantiated. This poses a problem for items with creative tabs, and creative tabs with item icons, either the item will have a null creative tab, or the creative tab will have a null item, and you can’t control which one it is.

 

Also, you should use @ObjectHolder so people can override your objects

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

On 10/30/2018 at 2:32 PM, V0idWa1k3r said:

registries being reloadable during runtime

^ This would allow mods to be added and removed without restarting the game

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Sakura38 Menghadirkan Situs Link Slot Deposit 1000 Gampang Menang Di Tahun 2024 Anda Memiliki Peluang Lebih Tinggi Untuk Meraih Kemenangan. Jadilah Bagian Dari Kesuksesan Kami Dan Bergabunglah Sekarang Untuk Memenangkan Hadiah-hadiah Fantastis   ▶️▶️ KLIK DISINI DAFTAR SEKARANG ◀️◀️ ▶️▶️ KLIK DISINI LINK ALTERNATIF DAFTAR AKUN 1 ◀️◀️ ▶️▶️ KLIK DISINI LINK ALTERNATIF DAFTAR AKUN 2 ◀️◀️ 💥Rahasia Mudah Dapat Perkalian Besar💥 💸Modal Receh Jamin AUTO JEPE 💸 ⚡Deposit Scan QRIS Proses Hanya 2 Detik !, WD Pasti LAND Kilat⚡ 🎰RTP & Pola GACOR Akurat🎰
    • Jagex held the Winter Summit towards the end of the year, where it revealed its content plans for 2023. Old School RuneScape recently got its Grandmaster Quest which serves as an expansion of Desert Treasure, a quest which is nearly twenty years old. If you were in the game the time Desert Treasure came out, you can imagine how thrilled a lot of players of OSRS gold were when the sequel was revealed. Desert Treasure II will make its way into Old School RuneScape during the summer of 2023. it's expected to introduce new bosses and content. There will be even more social elements that will be added to the Woodcutting game that has been a favorite with gamers. There's a new quest called the Secret of the North, which is a master-level quest is now available in the game and comes with some amazing boss fights that are only for solo players. Additionally, the Bounty Hunters miniature game returning to the game, which is sure to delight PvP players. I am sure there will be more games to come out by 2024 or later. RuneScape will not be going away and there's plenty of new content available to enjoy each year. The gameplay, the content, advancement systems, environments and even the music do not need introduction. I'd lie if I claimed that the game doesn't show its age. However, OSRS remains an enjoyable experience loved by the players and hasn't changed for over two decades. I've had plenty of unpleasant experiences in RuneScape and was cheated to death by "friends" earlier in the days, but we grow and learn. Even though it's a long-running MMORPG The game has a huge player base and there are many loyal players who have played for a long time. I had been away playing for a long time and yet it took me just a few minutes to locate helpful players who came together and assisted me. RuneScape is one of the most friendly communities I've seen across all gaming. my experience as a player was mostly positive, even in 2023. We're all aware of how much of the community devotes itself to skills, and it appears that we aren't seeing the final of the skills system yet. The new skill still to be announced and will be available in the coming months. Additionally, the minigames and side-activities are not left out by the game's developers, and they are constantly adding more features to the game. Over two decades of material is available, and, at the rate that it is going I'm not able to even guess how long the game will flourish. The community is active in its part in providing feedback and requests for more features for the old game. In the age of next-generation gaming, OSRS and RuneScape still retain the interest of a lot of players and keep them returning every day. I would highly suggest RuneScape in addition to Old School RuneScape to new players of 2023. but there's a caveat. The MMORPG genre has changed dramatically throughout the years, and it isn't easy to suggest RuneScape to those who are familiar with contemporary graphics and the extravagant environments that many of MMORPGs and live-services have to offer. However, if graphics aren't important to you and you are looking for a game that is fun, then consider giving it a shot and it's definitely worth the time. If you're a veteran who gave up RuneScape and cheap OSRS gold and is contemplating returning it, I highly recommend that you play the latest game's content. Like I said, RuneScape respects your time and, even if it's been more than a decade since the last time you played, you'll not have any issues jumping in to the action and starting it over and over. The process of preparing for new features took approximately a week. I had the chance to play the brand-new Secrets of the North content even after a lengthy hiatus.
    • Electronic Arts is making some much-needed changes to its soccer annual game EAFC 24 Coins. The addition of cross-play between PC, PS5. Stadia as well as Xbox Series X/S gamers and also players from PS4 as well as Xbox One players, is very thrilling. Cross-play has been demanded in FIFA by players for quite a long time. But as exciting as it may be, EA is actually holding off on providing full support for the technology. Particularly, FC 24 is not offering cross-play in its well-known Pro Clubs game mode. A confirmed statement from EA has stated that FC 24's cross-play feature will not be available for Pro Clubs in the foreseeable time. The reason according to EA is to ensure that "product innovativeness is of high top quality." Furthermore, Pro Clubs, according to EA is a degree of technical complexity that is higher than what developers can handle at the moment. "Technical complexity" is a subtle method of describing the scenario. The Pro Clubs of FIFA permit the use of up to 22 players in an online multiplayer game that includes between 2 and 11 real players in each team. Connecting 22 players on one platform isn't a simple task and adding interplay of the four platforms can make difficult. In the real world, the platforms pose less complicated than 22 players, however EA is just exploring cross-play, and therefore it's plausible when they say that additional time is required. It isn't stopping FIFA fans from feeling dissatisfied and angry about the situation However. Demands for cross-play being made available to FC 24 Pro Clubs are being circulated across the web and FIFA YouTuber JCC encouraging players to join support the cause. JCC along with other well-known players within the FIFA community are complaining that EA of placing the importance of FIFA Ultimate Team above the core experience like Pro Clubs. The company is very grateful that it has responded to the growing discontent within members of the FIFA community, saying it is aware of the criticism. Electronic Arts then points to its FIFA Twitter account to receive future updates on its plans for future games. This isn't a guarantee at all but it's about the closest a game's creator can get to say that something is being developed. FC 24 is all but certain to not have cross-play features for Pro Clubs at launch, or during the game's release. Maybe Pro Club cross-play will end being tested in FC 24 similar to how the basic cross-play was implemented in cheap EAFC 24 Coins. More likely, the feature will be a bit further away to be released by EA Sports FC's launch in 2023 or even later. It's also possible that FIFA fans are right and that EA's priority lies in FUT. It's the responsibility of EA to prove the criticism is not true.
    • SENSA69 💯 Daftar Link Slot Gacor Hari Ini Bisa Judi Slot Online KLIK DISINI >>> DAFTAR DAN LOGIN KLIK DISINI >>>   DAFTAR AKUN GACOR KLIK DISINI >>> DAFTAR AKUN VVIP KLIK DISINI >>>  LINK ALTERNATIF KLIK DISINI >>> AKUN GACOR SCATTER HITAM SENSA69 adalah slot gacor winrate 100% dengan server thailand dan akun pro. Dapatkan akses menuju kemenangan ke puluhan sampai ratusan juta rupiah hanya dalam hitungan menit. 3 web yang kami hadirkan ini adalah yang terbaik dengan histori kemenangan tertinggi di satu Asia Tenggara. Member-member dari web ini selalu kembali karena tim admin dan CS yang profesional serta kemenangan berapapun pasti akan dibayar. RTP slot gacor juga sudah disiapkan agar kalian tidak bingung lagi mau main apa dan di jam berapa. Semua fasilitas seperti deposit dana dan pulsa sudah disiapkan juga untuk kemudahan para slotters. Jadi tunggu apalagi? Raih kemenangan kalian disini sekarang juga!
  • Topics

×
×
  • Create New...

Important Information

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