Well of Suffering item drop control (#1388)

* Added a new DamageSource for the Well of Suffering
Added an event handler for death through Well of Suffering
Added a config option to enable (true) or disable (false) Well of Suffering Mob drops.

* Moved the DamageSource creation to RitualManager
Renamed the new DamageSource to "RITUAL_DAMAGE"
DamageSource "RITUAL_DAMAGE" is now used by RitualForsakenSoul and RitualWellOfSuffering
Added death message string for "RITUAL_DAMAGE" for en_US and de_DE

* Cleanup, removed the ability to damage entities in creative mode (creative mode should be considered as having infinite health, the rituals only damage mobs anyways).

* Update GenericHandler.java
This commit is contained in:
AEon - Tobias 2018-08-26 21:55:23 +02:00 committed by Nick Ignoffo
parent 753958ac9c
commit 7942465edc
7 changed files with 48 additions and 19 deletions

View file

@ -3,37 +3,40 @@ package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.impl.BloodMagicAPI;
import WayofTime.bloodmagic.block.BlockAltar;
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.core.data.Binding;
import WayofTime.bloodmagic.util.Constants;
import WayofTime.bloodmagic.core.data.SoulNetwork;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
import WayofTime.bloodmagic.event.ItemBindEvent;
import WayofTime.bloodmagic.event.SacrificeKnifeUsedEvent;
import WayofTime.bloodmagic.event.TeleposeEvent;
import WayofTime.bloodmagic.iface.IBindable;
import WayofTime.bloodmagic.iface.ISentientTool;
import WayofTime.bloodmagic.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.orb.BloodOrb;
import WayofTime.bloodmagic.orb.IBloodOrb;
import WayofTime.bloodmagic.core.data.SoulNetwork;
import WayofTime.bloodmagic.soul.DemonWillHolder;
import WayofTime.bloodmagic.block.BlockAltar;
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
import WayofTime.bloodmagic.item.ItemAltarMaker;
import WayofTime.bloodmagic.item.ItemExperienceBook;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
import WayofTime.bloodmagic.item.gear.ItemPackSacrifice;
import WayofTime.bloodmagic.livingArmour.LivingArmour;
import WayofTime.bloodmagic.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeBattleHungry;
import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerSelfSacrifice;
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSelfSacrifice;
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
import WayofTime.bloodmagic.network.DemonAuraPacketProcessor;
import WayofTime.bloodmagic.orb.BloodOrb;
import WayofTime.bloodmagic.orb.IBloodOrb;
import WayofTime.bloodmagic.potion.BMPotionUtils;
import WayofTime.bloodmagic.util.ChatUtil;
import WayofTime.bloodmagic.ritual.RitualManager;
import WayofTime.bloodmagic.soul.DemonWillHolder;
import WayofTime.bloodmagic.util.Constants;
import WayofTime.bloodmagic.util.Utils;
import WayofTime.bloodmagic.util.helper.*;
import WayofTime.bloodmagic.util.helper.BindableHelper;
import WayofTime.bloodmagic.util.helper.ItemHelper;
import WayofTime.bloodmagic.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.helper.PlayerHelper;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.enchantment.EnchantmentHelper;
@ -79,7 +82,10 @@ import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
@Mod.EventBusSubscriber(modid = BloodMagic.MODID)
public class GenericHandler {
@ -405,6 +411,15 @@ public class GenericHandler {
}
}
@SubscribeEvent
public static void onRitualDeath(LivingDropsEvent event){
if(!ConfigHandler.values.wellOfSufferingDrops){
if(event.getSource().equals(RitualManager.RITUAL_DAMAGE)) {
event.getDrops().clear();
}
}
}
// Experience Tome
@SubscribeEvent(priority = EventPriority.LOWEST)
public static void onExperiencePickup(PlayerPickupXpEvent event) {