@Override public void sendBaubleUpdatePacket(EntityPlayer player, int slot) { if(player instanceof EntityPlayerMP) { PacketHandler.INSTANCE.sendTo(new PacketSync(player, slot, BaublesApi.getBaublesHandler(player).getStackInSlot(slot)), (EntityPlayerMP) player); } }
private boolean shouldPlayerHaveStepup(EntityPlayer player) { ItemStack armor = BaublesApi.getBaublesHandler(player).getStackInSlot(3); return !armor.isEmpty() && armor.getItem() instanceof ItemTravelBelt && ManaItemHandler.requestManaExact(armor, player, COST, false); }
public static boolean hasMonocle(EntityPlayer player) { for(int i = 0; i < 7; i++) { ItemStack stack = BaublesApi.getBaublesHandler(player).getStackInSlot(i); if(!stack.isEmpty()) { Item item = stack.getItem(); if(item instanceof IBurstViewerBauble) return true; if(item instanceof ICosmeticAttachable) { ICosmeticAttachable attach = (ICosmeticAttachable) item; ItemStack cosmetic = attach.getCosmeticItem(stack); if(cosmetic != null && cosmetic.getItem() instanceof IBurstViewerBauble) return true; } } } return false; }
ItemStack firstRing = BaublesApi.getBaublesHandler((EntityPlayer) player).getStackInSlot(1); if(!firstRing.isEmpty() && firstRing.getItem() instanceof ItemWaterRing && firstRing != stack) { return;
@SubscribeEvent public static void onExplosion(ExplosionEvent.Detonate event) { Explosion e = event.getExplosion(); Vec3d vec = e.getPosition(); List<EntityPlayer> players = event.getWorld().getEntitiesWithinAABB(EntityPlayer.class, new AxisAlignedBB(vec.x, vec.y, vec.z, vec.x, vec.y, vec.z).grow(8)); for(EntityPlayer player : players) { ItemStack charm = BaublesApi.getBaublesHandler(player).getStackInSlot(6); if(!charm.isEmpty() && charm.getItem() instanceof ItemGoddessCharm && ManaItemHandler.requestManaExact(charm, player, COST, true)) { event.getAffectedBlocks().clear(); return; } } }
@SubscribeEvent public void onPlayerJump(LivingJumpEvent event) { if(event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); ItemStack belt = BaublesApi.getBaublesHandler(player).getStackInSlot(3); if(!belt.isEmpty() && belt.getItem() instanceof ItemTravelBelt && ManaItemHandler.requestManaExact(belt, player, COST, false)) { player.motionY += ((ItemTravelBelt) belt.getItem()).jump; player.fallDistance = -((ItemTravelBelt) belt.getItem()).fallBuffer; } } }
private boolean shouldPlayerHaveFlight(EntityPlayer player) { ItemStack armor = BaublesApi.getBaublesHandler(player).getStackInSlot(4); if(!armor.isEmpty() && armor.getItem() == this) { int left = ItemNBTHelper.getInt(armor, TAG_TIME_LEFT, MAX_FLY_TIME); boolean flying = ItemNBTHelper.getBoolean(armor, TAG_FLYING, false); return (left > (flying ? 0 : MAX_FLY_TIME / 10) || player.inventory.hasItemStack(new ItemStack(ModItems.flugelEye))) && ManaItemHandler.requestManaExact(armor, player, getCost(armor, left), false); } return false; }
@Override public ItemStack getStackInSlot(int index) { return handler.getStackInSlot(index); }
if(event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); ItemStack tiara = BaublesApi.getBaublesHandler(player).getStackInSlot(4); int left = ItemNBTHelper.getInt(tiara, TAG_TIME_LEFT, MAX_FLY_TIME);
String s = playerStr(player); ItemStack belt = BaublesApi.getBaublesHandler(player).getStackInSlot(3); if(playersWithStepup.contains(s)) { if(shouldPlayerHaveStepup(player)) {
@Override public IMessage onMessage(PacketJump message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().player; player.server.addScheduledTask(() -> { IItemHandler baublesInv = BaublesApi.getBaublesHandler(player); ItemStack amuletStack = baublesInv.getStackInSlot(0); if(!amuletStack.isEmpty() && amuletStack.getItem() instanceof CloudPendantShim) { player.addExhaustion(0.3F); player.fallDistance = 0; ItemStack belt = BaublesApi.getBaublesHandler(player).getStackInSlot(3); if(!belt.isEmpty() && belt.getItem() instanceof ItemTravelBelt) player.fallDistance = -((ItemTravelBelt) belt.getItem()).fallBuffer * ((CloudPendantShim) amuletStack.getItem()).getMaxAllowedJumps(); } }); return null; } }
@SubscribeEvent public void onPlayerDamage(LivingHurtEvent event) { if(event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); ItemStack belt = BaublesApi.getBaublesHandler(player).getStackInSlot(5); if(!belt.isEmpty() && belt.getItem() instanceof ItemHolyCloak && !isInEffect(belt)) { ItemHolyCloak cloak = (ItemHolyCloak) belt.getItem(); int cooldown = getCooldown(belt); // Used to prevent StackOverflows with mobs that deal damage when damaged setInEffect(belt, true); if(cooldown == 0 && cloak.effectOnDamage(event, player, belt)) setCooldown(belt, cloak.getCooldownTime(belt)); setInEffect(belt, false); } } }
EntityLiving target = (EntityLiving) event.getEntityLiving(); EntityPlayer player = (EntityPlayer) event.getSource().getImmediateSource(); ItemStack amulet = BaublesApi.getBaublesHandler(player).getStackInSlot(6);
for(int i = 0; i < baubles.getSlots(); i++) { if(baubles.isItemValidForSlot(i, toEquip, player)) { ItemStack stackInSlot = baubles.getStackInSlot(i); if(stackInSlot.isEmpty() || ((IBauble) stackInSlot.getItem()).canUnequip(stackInSlot, player)) {
/** * Returns if the passed in item is equipped in a bauble slot. Will return the first slot found * @return -1 if not found and slot number if it is found */ public static int isBaubleEquipped(EntityPlayer player, Item bauble) { IBaublesItemHandler handler = getBaublesHandler(player); for (int a=0;a<handler.getSlots();a++) { if (!handler.getStackInSlot(a).isEmpty() && handler.getStackInSlot(a).getItem()==bauble) return a; } return -1; } }
private void syncSlots(EntityPlayer player, Collection<? extends EntityPlayer> receivers) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(player); for (int i = 0; i < baubles.getSlots(); i++) { syncSlot(player, i, baubles.getStackInSlot(i), receivers); } }
public static boolean hasProbeGoggle(EntityPlayer player) { IBaublesItemHandler handler = BaublesApi.getBaublesHandler(player); if (handler == null) { return false; } ItemStack stackInSlot = handler.getStackInSlot(4); if (!stackInSlot.isEmpty() && stackInSlot.getItem() == ModItems.probeGoggles) { return true; } return false; }
@Nullable @Optional.Method(modid = Baubles.MODID) public static TinySlot getBauble(@Nonnull EntityPlayer player) { IBaublesItemHandler handler = BaublesApi.getBaublesHandler(player); for (int slot : getBaubleType().getValidSlots()) { ItemStack stack = handler.getStackInSlot(slot); if (stack.getItem() == Registry.itemNeuralInterface) { return new TinySlot.BaublesSlot(stack, handler, slot); } } return null; }
/** Baubles **/ private ItemStack getHeadgear(EntityPlayer entity) { IBaublesItemHandler baubles = BaublesApi.getBaublesHandler(entity); for (int i = 0; i < baubles.getSlots(); i++) { ItemStack bauble = baubles.getStackInSlot(i); if (bauble.isEmpty() || bauble.getItem() != GaiaItems.ACCESSORY_HEADGEAR) continue; return bauble; } return ItemStack.EMPTY; } }
@Override @Optional.Method(modid = Baubles.MODID) public void onWornTick(ItemStack stack, EntityLivingBase player) { if (!(player instanceof EntityPlayer)) return; IBaublesItemHandler handler = BaublesApi.getBaublesHandler((EntityPlayer) player); for (int slot : NeuralHelpers.getBaubleType().getValidSlots()) { ItemStack slotStack = handler.getStackInSlot(slot); if (slotStack == stack) { onUpdate(stack, new TinySlot.BaublesSlot(stack, handler, slot), player, true); } } }