Stop using a custom bus subscriber annotation

I'm sorry, past self, but Forge has had one since like 1.10, it's time to
move on. It's for the better.

(cherry picked from commit 9de2354)
This commit is contained in:
Nicholas Ignoffo 2017-10-13 17:12:54 -07:00 committed by Nicholas Ignoffo
parent 66ea131377
commit 8a4117106d
9 changed files with 88 additions and 104 deletions

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.registry.OrbRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.util.helper.LogHelper;
@ -17,7 +16,6 @@ import WayofTime.bloodmagic.proxy.CommonProxy;
import WayofTime.bloodmagic.registry.*;
import WayofTime.bloodmagic.structures.ModDungeons;
import WayofTime.bloodmagic.util.PluginUtil;
import WayofTime.bloodmagic.util.Utils;
import WayofTime.bloodmagic.util.handler.IMCHandler;
import com.google.common.collect.Lists;
import net.minecraft.creativetab.CreativeTabs;
@ -80,7 +78,6 @@ public class BloodMagic {
ModTranquilityHandlers.init();
ModDungeons.init();
Utils.registerHandlers(event.getAsmData().getAll(Handler.class.getCanonicalName()));
proxy.preInit();
}

View file

@ -1,15 +0,0 @@
package WayofTime.bloodmagic.annot;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Classes annotated with this will automatically be registered to the
* {@link net.minecraftforge.common.MinecraftForge#EVENT_BUS}.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Handler {
}

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.util;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.BlockStack;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.altar.EnumAltarComponent;
@ -36,17 +35,12 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.*;
import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.ISpecialArmor;
import net.minecraftforge.common.ISpecialArmor.ArmorProperties;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fluids.IFluidBlock;
import net.minecraftforge.fml.common.discovery.ASMDataTable;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper;
@ -922,19 +916,6 @@ public class Utils {
return largerStack ? stack : ItemStack.EMPTY;
}
public static void registerHandlers(Set<ASMDataTable.ASMData> eventHandlers) {
for (ASMDataTable.ASMData data : eventHandlers) {
try {
Class<?> handlerClass = Class.forName(data.getClassName());
Object handlerImpl = handlerClass.newInstance();
MinecraftForge.EVENT_BUS.register(handlerImpl);
BloodMagic.instance.logger.debug("Registering event handler for class {}", data.getClassName());
} catch (Exception e) {
// No-op
}
}
}
public static boolean hasUUID(ItemStack stack) {
return stack.hasTagCompound() && stack.getTagCompound().hasKey(Constants.NBT.MOST_SIG) && stack.getTagCompound().hasKey(Constants.NBT.LEAST_SIG);
}
@ -956,4 +937,24 @@ public class Utils {
stack.getTagCompound().setLong(Constants.NBT.LEAST_SIG, itemUUID.getLeastSignificantBits());
}
}
public static RayTraceResult rayTrace(EntityPlayer player, boolean useLiquids) {
float pitch = player.rotationPitch;
float yaw = player.rotationYaw;
Vec3d eyePosition = new Vec3d(player.posX, player.posY + (double) player.getEyeHeight(), player.posZ);
float f2 = MathHelper.cos(-yaw * 0.017453292F - (float) Math.PI);
float f3 = MathHelper.sin(-yaw * 0.017453292F - (float) Math.PI);
float f4 = -MathHelper.cos(-pitch * 0.017453292F);
float f5 = MathHelper.sin(-pitch * 0.017453292F);
float f6 = f3 * f4;
float f7 = f2 * f4;
double reachDistance = 5.0D;
if (player instanceof EntityPlayerMP)
reachDistance = ((EntityPlayerMP)player).interactionManager.getBlockReachDistance();
Vec3d reachPosition = eyePosition.addVector((double) f6 * reachDistance, (double) f5 * reachDistance, (double) f7 * reachDistance);
return player.getEntityWorld().rayTraceBlocks(eyePosition, reachPosition, useLiquids, !useLiquids, false);
}
}

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual;
@ -41,6 +40,7 @@ import net.minecraftforge.client.event.sound.PlaySoundEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
@ -50,7 +50,7 @@ import org.lwjgl.opengl.GL11;
import java.util.*;
@Handler
@Mod.EventBusSubscriber
@SideOnly(Side.CLIENT)
public class ClientHandler {
// Quick toggle for error suppression. Set to false if you wish to hide model errors.
@ -76,7 +76,7 @@ public class ClientHandler {
private static boolean mrsHoloDisplay;
@SubscribeEvent
public void onTooltipEvent(ItemTooltipEvent event) {
public static void onTooltipEvent(ItemTooltipEvent event) {
ItemStack stack = event.getItemStack();
if (stack.isEmpty()) {
return;
@ -93,7 +93,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void onSoundEvent(PlaySoundEvent event) {
public static void onSoundEvent(PlaySoundEvent event) {
EntityPlayer player = Minecraft.getMinecraft().player;
if (player != null && player.isPotionActive(RegistrarBloodMagic.DEAFNESS)) {
event.setResultSound(null);
@ -101,7 +101,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void onTextureStitch(TextureStitchEvent.Pre event) {
public static void onTextureStitch(TextureStitchEvent.Pre event) {
final String BLOCKS = "blocks";
ritualStoneBlank = forName(event.getMap(), "RitualStone", BLOCKS);
@ -121,7 +121,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void render(RenderWorldLastEvent event) {
public static void render(RenderWorldLastEvent event) {
EntityPlayerSP player = minecraft.player;
World world = player.getEntityWorld();
@ -146,7 +146,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void onMouseEvent(MouseEvent event) {
public static void onMouseEvent(MouseEvent event) {
EntityPlayerSP player = Minecraft.getMinecraft().player;
if (event.getDwheel() != 0 && player != null && player.isSneaking()) {
@ -164,7 +164,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void onKey(InputEvent event) {
public static void onKey(InputEvent event) {
if (!minecraft.inGameHasFocus)
return;
@ -174,7 +174,7 @@ public class ClientHandler {
}
@SubscribeEvent
public void onHudRender(RenderGameOverlayEvent.Pre event) {
public static void onHudRender(RenderGameOverlayEvent.Pre event) {
for (HUDElement element : hudElements)
if (element.getElementType() == event.getType() && element.shouldRender(minecraft))
element.render(minecraft, event.getResolution(), event.getPartialTicks());
@ -182,7 +182,7 @@ public class ClientHandler {
// Stolen from Chisel
@SubscribeEvent
public void onModelBake(ModelBakeEvent event) {
public static void onModelBake(ModelBakeEvent event) {
if (BloodMagic.IS_DEV && SUPPRESS_ASSET_ERRORS)
return;
@ -218,7 +218,7 @@ public class ClientHandler {
// For some reason, we need some bad textures to be listed in the Crystal and Node models. This will hide that from the end user.
@SubscribeEvent
public void onTextureStitch(TextureStitchEvent.Post event) {
public static void onTextureStitch(TextureStitchEvent.Post event) {
if (BloodMagic.IS_DEV && SUPPRESS_ASSET_ERRORS)
return;
@ -249,7 +249,7 @@ public class ClientHandler {
BloodMagic.instance.logger.debug("Suppressed required texture errors in {}", stopwatch.stop());
}
private void renderRitualStones(EntityPlayerSP player, float partialTicks) {
private static void renderRitualStones(EntityPlayerSP player, float partialTicks) {
World world = player.getEntityWorld();
ItemRitualDiviner ritualDiviner = (ItemRitualDiviner) player.inventory.getCurrentItem().getItem();
EnumFacing direction = ritualDiviner.getDirection(player.inventory.getCurrentItem());

View file

@ -1,7 +1,6 @@
package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.event.AltarCraftedEvent;
import WayofTime.bloodmagic.api.iface.IUpgradeTrainer;
@ -21,17 +20,18 @@ import net.minecraftforge.event.AnvilUpdateEvent;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import java.util.ArrayList;
import java.util.List;
@Handler
@Mod.EventBusSubscriber
public class CraftingHandler {
// Sets the uses of crafted Inscription Tools to 10
@SubscribeEvent
public void onAltarCrafted(AltarCraftedEvent event) {
public static void onAltarCrafted(AltarCraftedEvent event) {
if (event.getOutput() == null) {
return;
}
@ -49,7 +49,7 @@ public class CraftingHandler {
// Handles crafting of: Revealing Upgrade Tome, Elytra Upgrade Tome, Combining Upgrade Tomes, Setting Upgrade for Trainer
@SubscribeEvent
public void onAnvil(AnvilUpdateEvent event) {
public static void onAnvil(AnvilUpdateEvent event) {
// TODO - Azanor come back :(
// if (ConfigHandler.thaumcraftGogglesUpgrade) {
// if (event.getLeft().getItem() == RegistrarBloodMagicItems.LIVING_ARMOUR_HELMET && event.getRight().getItem() == Constants.Compat.THAUMCRAFT_GOGGLES && !event.getRight().isItemDamaged()) {

View file

@ -2,7 +2,6 @@ package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.event.ItemBindEvent;
import WayofTime.bloodmagic.api.event.SacrificeKnifeUsedEvent;
@ -73,6 +72,7 @@ import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
import net.minecraftforge.event.world.ExplosionEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.Event.Result;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@ -85,7 +85,7 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
@Handler
@Mod.EventBusSubscriber
public class GenericHandler {
public static Map<EntityPlayer, Double> bounceMap = new HashMap<EntityPlayer, Double>();
public static Map<EntityPlayer, Integer> filledHandMap = new HashMap<EntityPlayer, Integer>();
@ -93,7 +93,7 @@ public class GenericHandler {
private static Map<EntityAnimal, EntityAIBase> attackTaskMap = new HashMap<EntityAnimal, EntityAIBase>();
@SubscribeEvent
public void onEntityFall(LivingFallEvent event) {
public static void onEntityFall(LivingFallEvent event) {
if (event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntityLiving();
if (player.isPotionActive(RegistrarBloodMagic.BOUNCE) && !player.isSneaking() && event.getDistance() > 2) {
@ -112,7 +112,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void playerTickPost(TickEvent.PlayerTickEvent event) {
public static void playerTickPost(TickEvent.PlayerTickEvent event) {
if (event.phase == TickEvent.Phase.END && bounceMap.containsKey(event.player)) {
event.player.motionY = bounceMap.remove(event.player);
}
@ -130,7 +130,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void onPlayerClick(PlayerInteractEvent event) {
public static void onPlayerClick(PlayerInteractEvent event) {
if (event.isCancelable() && event.getEntityPlayer().isPotionActive(RegistrarBloodMagic.CONSTRICT)) {
EntityPlayer player = event.getEntityPlayer();
int level = player.getActivePotionEffect(RegistrarBloodMagic.CONSTRICT).getAmplifier();
@ -141,7 +141,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void onPlayerDropItem(ItemTossEvent event) {
public static void onPlayerDropItem(ItemTossEvent event) {
EntityItem itemEntity = event.getEntityItem();
if (itemEntity != null) {
ItemStack stack = itemEntity.getItem();
@ -155,7 +155,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void onExplosion(ExplosionEvent.Start event) {
public static void onExplosion(ExplosionEvent.Start event) {
World world = event.getWorld();
Explosion exp = event.getExplosion();
Vec3d position = exp.getPosition();
@ -174,7 +174,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void onEntityHurt(LivingHurtEvent event) {
public static void onEntityHurt(LivingHurtEvent event) {
if (event.getEntity().getEntityWorld().isRemote)
return;
@ -208,7 +208,7 @@ public class GenericHandler {
// Handles sending the client the Demon Will Aura updates
@SubscribeEvent
public void onLivingUpdate(LivingUpdateEvent event) {
public static void onLivingUpdate(LivingUpdateEvent event) {
if (!event.getEntityLiving().getEntityWorld().isRemote) {
EntityLivingBase entity = event.getEntityLiving();
if (entity instanceof EntityPlayer && entity.ticksExisted % 50 == 0) //TODO: Change to an incremental counter
@ -284,7 +284,7 @@ public class GenericHandler {
}
// @SideOnly(Side.SERVER)
public void sendPlayerDemonWillAura(EntityPlayer player) {
public static void sendPlayerDemonWillAura(EntityPlayer player) {
if (player instanceof EntityPlayerMP) {
BlockPos pos = player.getPosition();
DemonWillHolder holder = WorldDemonWillHandler.getWillHolder(player.getEntityWorld().provider.getDimension(), pos.getX() >> 4, pos.getZ() >> 4);
@ -298,7 +298,7 @@ public class GenericHandler {
// Handles destroying altar
@SubscribeEvent
public void harvestEvent(PlayerEvent.HarvestCheck event) {
public static void harvestEvent(PlayerEvent.HarvestCheck event) {
IBlockState state = event.getTargetBlock();
Block block = state.getBlock();
if (block instanceof BlockAltar && event.getEntityPlayer() != null && event.getEntityPlayer() instanceof EntityPlayerMP && !event.getEntityPlayer().getHeldItemMainhand().isEmpty() && event.getEntityPlayer().getHeldItemMainhand().getItem() instanceof ItemAltarMaker) {
@ -309,14 +309,14 @@ public class GenericHandler {
// Handle Teleposer block blacklist
@SubscribeEvent
public void onTelepose(TeleposeEvent event) {
public static void onTelepose(TeleposeEvent event) {
if (BloodMagicAPI.INSTANCE.getBlacklist().getTeleposer().contains(event.initialState) || BloodMagicAPI.INSTANCE.getBlacklist().getTeleposer().contains(event.finalState))
event.setCanceled(true);
}
// Handle Teleposer entity blacklist
@SubscribeEvent
public void onTeleposeEntity(TeleposeEvent.Ent event) {
public static void onTeleposeEntity(TeleposeEvent.Ent event) {
EntityEntry entry = EntityRegistry.getEntry(event.entity.getClass());
if (BloodMagicAPI.INSTANCE.getBlacklist().getTeleposerEntities().contains(entry.getRegistryName()))
event.setCanceled(true);
@ -324,13 +324,13 @@ public class GenericHandler {
// Sets teleport cooldown for Teleposed entities to 5 ticks (1/4 second) instead of 150 (7.5 seconds)
@SubscribeEvent
public void onTeleposeEntityPost(TeleposeEvent.Ent.Post event) {
public static void onTeleposeEntityPost(TeleposeEvent.Ent.Post event) {
event.entity.timeUntilPortal = 5;
}
// Handles binding of IBindable's as well as setting a player's highest orb tier
@SubscribeEvent
public void onInteract(PlayerInteractEvent.RightClickItem event) {
public static void onInteract(PlayerInteractEvent.RightClickItem event) {
if (event.getWorld().isRemote)
return;
@ -372,7 +372,7 @@ public class GenericHandler {
}
@SubscribeEvent
public void selfSacrificeEvent(SacrificeKnifeUsedEvent event) {
public static void selfSacrificeEvent(SacrificeKnifeUsedEvent event) {
EntityPlayer player = event.player;
if (LivingArmour.hasFullSet(player)) {
@ -393,7 +393,7 @@ public class GenericHandler {
// Drop Blood Shards
@SubscribeEvent
public void onLivingDrops(LivingDropsEvent event) {
public static void onLivingDrops(LivingDropsEvent event) {
EntityLivingBase attackedEntity = event.getEntityLiving();
DamageSource source = event.getSource();
Entity entity = source.getTrueSource();
@ -411,7 +411,7 @@ public class GenericHandler {
// Experience Tome
@SubscribeEvent(priority = EventPriority.LOWEST)
public void onExperiencePickup(PlayerPickupXpEvent event) {
public static void onExperiencePickup(PlayerPickupXpEvent event) {
EntityPlayer player = event.getEntityPlayer();
ItemStack itemstack = EnchantmentHelper.getEnchantedItem(Enchantments.MENDING, player);
@ -432,11 +432,11 @@ public class GenericHandler {
}
}
private int xpToDurability(int xp) {
private static int xpToDurability(int xp) {
return xp * 2;
}
private int durabilityToXp(int durability) {
private static int durabilityToXp(int durability) {
return durability / 2;
}
}

View file

@ -1,7 +1,6 @@
package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
@ -35,14 +34,16 @@ import net.minecraftforge.event.entity.living.LivingHealEvent;
import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Handler
@Mod.EventBusSubscriber
public class LivingArmourHandler {
@SubscribeEvent
public void onEntityHealed(LivingHealEvent event) {
public static void onEntityHealed(LivingHealEvent event) {
if (event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntity();
if (LivingArmour.hasFullSet(player)) {
@ -65,7 +66,7 @@ public class LivingArmourHandler {
}
@SubscribeEvent
public void onMiningSpeedCheck(PlayerEvent.BreakSpeed event) {
public static void onMiningSpeedCheck(PlayerEvent.BreakSpeed event) {
EntityPlayer player = event.getEntityPlayer();
if (LivingArmour.hasFullSet(player)) {
ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST);
@ -85,7 +86,7 @@ public class LivingArmourHandler {
// Applies: Storm Trooper
@SubscribeEvent
public void onEntityJoinedWorld(EntityJoinWorldEvent event) {
public static void onEntityJoinedWorld(EntityJoinWorldEvent event) {
Entity owner = null;
if (event.getEntity() instanceof EntityArrow) {
owner = ((EntityArrow) event.getEntity()).shootingEntity;
@ -115,7 +116,7 @@ public class LivingArmourHandler {
}
@SubscribeEvent
public void onPlayerClick(PlayerInteractEvent event) {
public static void onPlayerClick(PlayerInteractEvent event) {
if (event.isCancelable()) {
EntityPlayer player = event.getEntityPlayer();
@ -148,7 +149,7 @@ public class LivingArmourHandler {
// Applies: Grim Reaper
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onEntityDeath(LivingDeathEvent event) {
public static void onEntityDeath(LivingDeathEvent event) {
if (event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntityLiving();
@ -174,7 +175,7 @@ public class LivingArmourHandler {
// Applies: Jump
@SubscribeEvent
public void onJumpEvent(LivingEvent.LivingJumpEvent event) {
public static void onJumpEvent(LivingEvent.LivingJumpEvent event) {
if (event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntityLiving();
@ -198,7 +199,7 @@ public class LivingArmourHandler {
// Applies: Step Assist, Speed Boost
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onEntityUpdate(LivingEvent.LivingUpdateEvent event) {
public static void onEntityUpdate(LivingEvent.LivingUpdateEvent event) {
if (event.getEntityLiving() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntityLiving();
boolean hasAssist = false;
@ -253,7 +254,7 @@ public class LivingArmourHandler {
// Applies: Arrow Shot
// Tracks: Arrow Shot
@SubscribeEvent
public void onArrowFire(ArrowLooseEvent event) {
public static void onArrowFire(ArrowLooseEvent event) {
World world = event.getEntityPlayer().getEntityWorld();
ItemStack stack = event.getBow();
EntityPlayer player = event.getEntityPlayer();

View file

@ -1,7 +1,6 @@
package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
import WayofTime.bloodmagic.item.armour.ItemSentientArmour;
@ -24,17 +23,18 @@ import net.minecraftforge.event.entity.living.LivingHurtEvent;
import net.minecraftforge.event.entity.player.AttackEntityEvent;
import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Handler
@Mod.EventBusSubscriber
public class StatTrackerHandler {
private static float lastPlayerSwingStrength = 0;
// Tracks: Digging, DigSlowdown
@SubscribeEvent
public void blockBreakEvent(BlockEvent.BreakEvent event) {
public static void blockBreakEvent(BlockEvent.BreakEvent event) {
EntityPlayer player = event.getPlayer();
if (player != null) {
if (LivingArmour.hasFullSet(player)) {
@ -53,7 +53,7 @@ public class StatTrackerHandler {
// Tracks: Health Boost
@SubscribeEvent
public void onEntityHealed(LivingHealEvent event) {
public static void onEntityHealed(LivingHealEvent event) {
EntityLivingBase healedEntity = event.getEntityLiving();
if (!(healedEntity instanceof EntityPlayer)) {
return;
@ -74,13 +74,13 @@ public class StatTrackerHandler {
}
@SubscribeEvent
public void onLivingAttack(AttackEntityEvent event) {
public static void onLivingAttack(AttackEntityEvent event) {
lastPlayerSwingStrength = event.getEntityPlayer().getCooledAttackStrength(0);
}
// Tracks: Fall Protect, Arrow Protect, Physical Protect, Grave Digger, Sprint Attack, Critical Strike, Nocturnal Prowess
@SubscribeEvent
public void entityHurt(LivingHurtEvent event) {
public static void entityHurt(LivingHurtEvent event) {
DamageSource source = event.getSource();
Entity sourceEntity = event.getSource().getTrueSource();
EntityLivingBase attackedEntity = event.getEntityLiving();
@ -153,7 +153,7 @@ public class StatTrackerHandler {
// Tracks: Experienced
@SubscribeEvent(priority = EventPriority.LOW)
public void onExperiencePickup(PlayerPickupXpEvent event) {
public static void onExperiencePickup(PlayerPickupXpEvent event) {
EntityPlayer player = event.getEntityPlayer();
if (LivingArmour.hasFullSet(player)) {

View file

@ -1,6 +1,5 @@
package WayofTime.bloodmagic.util.handler.event;
import WayofTime.bloodmagic.annot.Handler;
import WayofTime.bloodmagic.api.soul.*;
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
@ -25,6 +24,7 @@ import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
import net.minecraftforge.event.world.ChunkDataEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
@ -33,14 +33,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
@Handler
@Mod.EventBusSubscriber
public class WillHandler {
private final HashMap<Integer, Integer> serverTicks = new HashMap<Integer, Integer>();
private static final HashMap<Integer, Integer> SERVER_TICKS = new HashMap<Integer, Integer>();
// Adds Will to player
@SubscribeEvent
public void onItemPickup(EntityItemPickupEvent event) {
public static void onItemPickup(EntityItemPickupEvent event) {
ItemStack stack = event.getItem().getItem();
if (stack.getItem() instanceof IDemonWill) {
EntityPlayer player = event.getEntityPlayer();
@ -55,7 +55,7 @@ public class WillHandler {
}
@SubscribeEvent
public void onEntityAttacked(LivingDeathEvent event) {
public static void onEntityAttacked(LivingDeathEvent event) {
if (event.getSource() instanceof EntityDamageSourceIndirect) {
Entity sourceEntity = event.getSource().getImmediateSource();
@ -67,7 +67,7 @@ public class WillHandler {
// Add/Drop Demon Will for Player
@SubscribeEvent
public void onLivingDrops(LivingDropsEvent event) {
public static void onLivingDrops(LivingDropsEvent event) {
EntityLivingBase attackedEntity = event.getEntityLiving();
DamageSource source = event.getSource();
Entity entity = source.getTrueSource();
@ -106,16 +106,16 @@ public class WillHandler {
}
@SubscribeEvent
public void onServerWorldTick(TickEvent.WorldTickEvent event) {
public static void onServerWorldTick(TickEvent.WorldTickEvent event) {
if (event.world.isRemote)
return;
int dim = event.world.provider.getDimension();
if (event.phase == TickEvent.Phase.END) {
if (!this.serverTicks.containsKey(dim))
this.serverTicks.put(dim, 0);
if (!SERVER_TICKS.containsKey(dim))
SERVER_TICKS.put(dim, 0);
int ticks = (this.serverTicks.get(dim));
int ticks = (SERVER_TICKS.get(dim));
if (ticks % 20 == 0) {
CopyOnWriteArrayList<PosXY> dirtyChunks = WorldDemonWillHandler.dirtyChunks.get(dim);
@ -127,13 +127,13 @@ public class WillHandler {
}
}
this.serverTicks.put(dim, ticks + 1);
SERVER_TICKS.put(dim, ticks + 1);
}
}
@SubscribeEvent
public void chunkSave(ChunkDataEvent.Save event) {
public static void chunkSave(ChunkDataEvent.Save event) {
int dim = event.getWorld().provider.getDimension();
ChunkPos loc = event.getChunk().getPos();
@ -150,7 +150,7 @@ public class WillHandler {
}
@SubscribeEvent
public void chunkLoad(ChunkDataEvent.Load event) {
public static void chunkLoad(ChunkDataEvent.Load event) {
int dim = event.getWorld().provider.getDimension();
if (event.getData().getCompoundTag("BloodMagic").hasKey("base")) {
NBTTagCompound nbt = event.getData().getCompoundTag("BloodMagic");