Merge pull request #1795 from lumien231/ExperienceEvent

Added LivingExperienceDropsEvent to change how much experience an entity drops
This commit is contained in:
LexManos committed 2015-06-09 13:23:01 -07:00
commit 7406e3df9f
3 files changed
+67

No files matched your search

@@ -43,6 +43,7 @@ import net.minecraftforge.event.entity.EntityMountEvent;
import net.minecraftforge.event.entity.EntityStruckByLightningEvent;
import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
import net.minecraftforge.event.entity.item.ItemExpireEvent;
import net.minecraftforge.event.entity.living.LivingExperienceDropEvent;
import net.minecraftforge.event.entity.living.LivingHealEvent;
import net.minecraftforge.event.entity.living.LivingPackSizeEvent;
import net.minecraftforge.event.entity.living.LivingSpawnEvent;
@@ -143,6 +144,16 @@ public class ForgeEventFactory
MinecraftForge.EVENT_BUS.post(event);
return event.getResult();
}
public static int getExperienceDrop(EntityLivingBase entity, EntityPlayer attackingPlayer, int originalExperience)
{
LivingExperienceDropEvent event = new LivingExperienceDropEvent(entity, attackingPlayer, originalExperience);
if (MinecraftForge.EVENT_BUS.post(event))
{
return 0;
}
return event.getDroppedExperience();
}
public static List<BiomeGenBase.SpawnListEntry> getPotentialSpawns(WorldServer world, EnumCreatureType type, BlockPos pos, List<BiomeGenBase.SpawnListEntry> oldList)
{
@@ -0,0 +1,47 @@
package net.minecraftforge.event.entity.living;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.fml.common.eventhandler.Cancelable;
/**
* Event for when an entity drops experience on its death, can be used to change
* the amount of experience points dropped or completely prevent dropping of experience
* by canceling the event.
*/
@Cancelable
public class LivingExperienceDropEvent extends LivingEvent
{
final EntityPlayer attackingPlayer;
final int originalExperiencePoints;
int droppedExperiencePoints;
public LivingExperienceDropEvent(EntityLivingBase entity, EntityPlayer attackingPlayer, int originalExperience)
{
super(entity);
this.attackingPlayer = attackingPlayer;
this.originalExperiencePoints = this.droppedExperiencePoints = originalExperience;
}
public int getDroppedExperience()
{
return droppedExperiencePoints;
}
public void setDroppedExperience(int droppedExperience)
{
this.droppedExperiencePoints = droppedExperience;
}
public EntityPlayer getAttackingPlayer()
{
return attackingPlayer;
}
public int getOriginalExperience()
{
return originalExperiencePoints;
}
}