Jump to content

Recommended Posts

Posted

Im having a bug with the harvest drop event apparently it's this line (line 34) within , can anyone spot what I have done wrong.

Crash Report http://pastebin.com/LJihSaRS

 

Git Hub https://github.com/PandaTeam/HydroBlocks/blob/master/src/hydroblocks/lib/EventHooks.java

                        ItemStack heldItem = player.inventory.getCurrentItem();

 

package hydroblocks.lib;

import java.util.Random;

import hydroblocks.items.Items;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.world.BlockEvent;

/**
* Name and cast of this class are irrelevant
*/

public class EventHooks {

Random random;


        /**
        * The key is the @ForgeSubscribe annotation and the cast of the Event you put in as argument.
        * The method name you pick does not matter. Method signature is public void, always.
        */
        @ForgeSubscribe
        public void onHarvestDrops(BlockEvent.HarvestDropsEvent event)
  
                {
            random = new Random();
                        /*
                        * You can then proceed to read and change the Event's fields where possible
                        */
                        EntityPlayer player = event.harvester;
                        ItemStack heldItem = player.inventory.getCurrentItem();
                        Block block = event.block;        
                        
                        if(heldItem.itemID == Items.ironsledgehammer.itemID)
                        {   
                        	if(block.blockID == Block.oreIron.blockID);
                        	{
                                event.drops.clear();
                                event.drops.add(new ItemStack(Block.blockGold, random.nextInt(2) + 1));
                                event.dropChance = 1.0F;
                        	}
                        }
                        
                                        
                
        }
        
}

 

Posted

Hi

 

Well it seems pretty clear that either player is null or inventory is null.

 

Perhaps event.harvester is sometimes null?

 

Checking the Javadocs:

    /**
     * Fired when a block is about to drop it's harvested items. The {@link #drops} array can be amended, as can the {@link #dropChance}.
     * <strong>Note well:</strong> the {@link #harvester} player field is null in a variety of scenarios. Code expecting null.

and

        public final EntityPlayer harvester; // May be null for non-player harvesting such as explosions or machines

 

 

-TGG

 

Posted

Ok so I know that it is

 

                        EntityPlayer player = event.harvester;
                        ItemStack heldItem = player.inventory.getCurrentItem();

 

section, by removing it the error goes away, however now any block that is destroyed will drop gold blocks.

 

Posted

A few more changes, not ever block is dropping gold, however any block broken with ironsledgehammer still drops gold

public class EventHooks {

        @ForgeSubscribe
        public void onHarvestDrops(BlockEvent.HarvestDropsEvent event)
        {
        	Block block = event.block;
        	
            EntityPlayer player = event.harvester;
            if(player!=null)
            {
                    ItemStack heldItemStack = player.getCurrentEquippedItem();
                    if(heldItemStack != null && player != null)
                    {
                            int heldItem = heldItemStack.itemID;
                    
                                    if(heldItem == Items.ironsledgehammer.itemID)
                                    {
                                    	if(block.blockID == Block.oreIron.blockID);
                                    	{                               	
                                            event.drops.clear();
                                            event.drops.add(new ItemStack(Block.blockGold, 2));
                                            event.dropChance = 1.0F;
                                    	}
                                    }
                    }               
            }
        }
        
}

Posted

Oh for poops sake that sneaky mother trucker

 

Thanks for your help

Final working code

 

package hydroblocks.lib;

import java.util.Random;

import hydroblocks.items.Items;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.world.BlockEvent;



public class EventHooks {

Random random;

        @ForgeSubscribe
        public void onHarvestDrops(BlockEvent.HarvestDropsEvent event)
        {
            random = new Random();
        	Block block = event.block;
        	
            EntityPlayer player = event.harvester;
            if(player!=null)
            {
                    ItemStack heldItemStack = player.getCurrentEquippedItem();
                    if(heldItemStack != null && player != null)
                    {
                            int heldItem = heldItemStack.itemID;
                    
                                    if(heldItem == Items.ironsledgehammer.itemID)
                                    {
                                    	if(block.blockID == Block.oreIron.blockID)
                                    	{                               	
                                            event.drops.clear();
                                            event.drops.add(new ItemStack(Block.blockGold, random.nextInt(2) + 1));
                                            event.dropChance = 1.0F;
                                    	}
                                    }
                    }               
            }
        }
        
}


                        		
                        
                                        
                

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

    • Der Gutscheincode für 100€ Rabatt auf Temu lautet [acx211521] [acx211521] und bietet erhebliche Einsparungen bei einer breiten Produktpalette, darunter Mode, Elektronik und Haushaltswaren. Wenn Sie diesen Code [acx211521] an der Kasse eingeben, können Sie einen großzügigen Rabatt auf Ihre Bestellung erhalten, was Ihr Einkaufserlebnis erschwinglicher macht. Lesen Sie unbedingt die Bedingungen des Codes, um sicherzustellen, dass er für Ihren Einkauf gilt, und maximieren Sie Ihre Einsparungen bei Temu!  Acx211521 ist ein gültiger Temu-Gutscheincode für Deutschland, mit dem Sie 100 € Rabatt und 30 % Rabatt auf Ihre erste Bestellung erhalten. Dieser TEMU-Gutscheincode „acw373230“ für Deutschland mit 40 € Rabatt bietet einen beeindruckenden anfänglichen Rabatt von 100 € und 90 % Rabatt auf den Kauf jedes Artikels für neue und bestehende Kunden. Hier ist eine kurze Antwort zum Finden eines Temu-Gutscheincodes in Deutschland: • Verfügbarer Code: Verwenden Sie acx211521 für einen Rabatt auf Temu in Deutschland. • Offizielle Quellen: Besuchen Sie die Temu-Website oder -App für exklusive Angebote. • Newsletter: Abonnieren Sie Temus E-Mails für die neuesten Codes. • Soziale Medien: Folgen Sie Temu auf sozialen Plattformen für Sonderaktionen. • Empfehlungsprogramme: Laden Sie Freunde ein, Temu beizutreten und Rabattcodes zu erhalten. Geben Sie acx211521 an der Kasse ein, um Ihre Ersparnisse zu genießen.   So können Sie den 100-€-Rabatt-Gutscheincode [ACX211521] [acw373230] von Temu optimal nutzen, egal ob Sie ein neuer oder bestehender Benutzer sind! Temu ist bekannt für seine unschlagbaren Preise, schnelle Lieferung und Rabatte von bis zu 90 %. Um einen Rabatt auf Ihre erste Bestellung bei Temu zu erhalten, verwenden Sie einen der folgenden Empfehlungscodes: • Acx211521 • acw373230 Durch die Anwendung dieser Empfehlungscodes beim Bezahlvorgang können Neukunden besondere Rabatte wie 100 € Rabatt, kostenlosen Versand oder andere exklusive Angebote genießen. Geben Sie den Code einfach ein, wenn Sie beim Bezahlvorgang auf der Temu-Website oder -App dazu aufgefordert werden, um Ihre Ersparnisse freizuschalten. Schauen Sie sich unbedingt die neuesten Aktionen von Temu an, um weitere Angebote zu erhalten! Vorteile der Verwendung des Temu-Gutscheincodes [ACX211521] [acw373230],   • Bis zu 90 % Rabatt auf ausgewählte Artikel durch exklusive neue Angebote von Temu. • Pauschal 60 % Rabatt auf bereits reduzierte Produkte auf der gesamten Website.   • Zusätzliche 30 % Rabatt auf Ihren Gesamteinkauf mit dem Temu-Rabattcode.   Ja, es gibt einen Temu-Gutscheincode für Kunden aus Deutschland! Sie können den exklusiven Code [acx211521] verwenden, um einen großzügigen Rabatt auf Ihre Einkäufe zu erhalten. Dieser Gutschein bietet 100 € Rabatt plus 30 % Rabatt und ist damit eine großartige Gelegenheit, bei einer großen Auswahl an Produkten von Temu deutlich zu sparen. Geben Sie beim Bezahlvorgang einfach [acx211521] [acw373230] ein, um dieses Angebot zu nutzen und Ihr Einkaufserlebnis zu verbessern. Lassen Sie sich diese Ersparnisse nicht entgehen!   Der Gutscheincode für 100 € Rabatt bei Temu lautet [acx211521] und bietet erhebliche Ersparnisse bei einer großen Auswahl an Produkten, darunter Mode, Elektronik und Haushaltswaren. Wenn Sie diesen Code [acx211521] beim Bezahlvorgang eingeben, können Sie einen großzügigen Rabatt auf Ihre Bestellung erhalten und so Ihr Einkaufserlebnis erschwinglicher gestalten. Überprüfen Sie unbedingt die Bedingungen des Codes, um sicherzustellen, dass er für Ihren Einkauf gilt, und maximieren Sie Ihre Ersparnisse bei Temu!   Das 100-€-Gutscheinpaket bei Temu ist ein Werbeangebot, das Benutzern erhebliche Ersparnisse bei ihren Einkäufen bietet. Durch Eingabe des Codes [acx211521] oder [acx211521] in der Temu-App können Benutzer auf eine Sammlung von Rabattgutscheinen zugreifen, die auf verschiedene Artikel in ihrem Warenkorb angewendet werden können.   Dieses Paket enthält normalerweise mehrere Gutscheine mit unterschiedlichen Rabattschwellen, z. B. 15 € Rabatt auf Bestellungen über 40 €, 20 € Rabatt auf Bestellungen über 60 € usw., sodass Benutzer ihre Ersparnisse je nach Gesamtbestellwert maximieren können.   So können Sie den Temu-Gutscheincode für 100 € Rabatt [ACX211521] [acw373230] optimal nutzen, egal ob Sie ein neuer oder bestehender Benutzer sind! Temu ist bekannt für seine unschlagbaren Preise, schnelle Lieferung und Rabatte von bis zu 90 %.   Vorteile der Verwendung des Temu-Gutscheincodes [ACX211521] [acw373230],   • Bis zu 90 % Rabatt auf ausgewählte Artikel durch exklusive neue Temu-Angebote.   • Pauschal 60 % Rabatt auf bereits reduzierte Produkte auf der gesamten Site.   • Zusätzliche 30 % Rabatt auf Ihren Gesamteinkauf mit dem Temu-Rabattcode.   [acx211521] [acw373230], an der Kasse, um dieses Angebot zu nutzen und Ihr Einkaufserlebnis zu verbessern. Lassen Sie sich diese Ersparnisse nicht entgehen!   Am einfachsten ist es, unseren 100 € Rabatt Temu-Gutscheincode ACX211521 „OR“ [acw373230], bei Ihrem ersten Einkauf zu verwenden. Darüber hinaus bietet Temu Neukunden oft verschiedene Möglichkeiten, zusätzliches Geld zu verdienen   ACX211521 „OR“ [acw373230],: Neue Benutzer können bis zu 80 % extra Rabatt erhalten. • ACX211521 „OR“ ACX211521: Erhalten Sie satte 100 € Rabatt auf Ihre erste Bestellung! • ACX211521 „OR“ [acw373230],: Erhalten Sie 20 % Rabatt auf Ihre erste Bestellung; kein Mindestumsatz erforderlich. • ACX211521 „OR“ ACX211521: Erhalten Sie zusätzlich zu bestehenden Rabatten weitere 15 % Rabatt auf Ihre erste Bestellung. • ACX211521 „OR“ [acw373230],: Temu UK Genießen Sie 100 € Rabatt auf Ihren gesamten ersten Einkauf. Mit unserem exklusiven Temu-Gutscheincode 100 € Rabatt wird das Einkaufen bei Temu jetzt noch spannender. Dieses unglaubliche Angebot soll Ihnen erhebliche Einsparungen bei Ihrem nächsten Einkauf ermöglichen, egal ob Sie Neu- oder Bestandskunde sind. Für Kunden in den USA, Kanada und europäischen Ländern bietet der Gutscheincode ACX211521 „OR“ ACX211521 maximale Vorteile.   Mit dem Temu-Gutscheincode {acx211521} erhalten Sie 100 € Rabatt. [acw373230] Dieses exklusive Angebot gilt für Bestandskunden und kann für eine Ermäßigung von 100 € auf Ihren Gesamteinkauf genutzt werden. Geben Sie beim Bezahlvorgang den Gutscheincode {acx211521} ein, um den Rabatt zu erhalten.    
    • I have recently released my first ever Minecraft mod, it adds an overpowered sword with an insane grind to craft. More info on the CurseForge page: https://www.curseforge.com/minecraft/mc-mods/destroyer-of-worlds   I'd love to hear your thoughts.
    • Hi there, I am trying to run a forge server using debian with no mods in it and have been able to follow all the steps to setup the server, I am on java version 17 and run time environment 17, I have accepted the eula etc... but when I run I get this error: https://pastebin.com/h3CTQUsp Any help would be appreciated.
    • Could someone provide an example of how to retrieve the climate parameter values at a given xyz position? I mean the NoiseRouter values you can see on the F3 menu (temperature, vegetation, continentalness, erosion, depth and weirdness). This may be possible through the Climate.Sampler class but I've only been able to get it to return empty values. Otherwise maybe it can be done through one of the ten gazillion noise and density function classes in the levelgen package.
    • Hello, I have a server in 1.20.1 under Ubuntu and I’m experiencing the same problem. I know it’s not a mod because this error happens before I add the mods. Thanks for your help Edit: I tried different versions of Forge (the last two and the recommended one) and the problem takes place in these three versions.
  • Topics

×
×
  • Create New...

Important Information

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