@SideOnly(Side.CLIENT) @Override public void setAll(List<ItemStack> l) { baubles.setEventBlock(true); super.setAll(l); }
@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); } }
@Override public void markDirty() { handler.setChanged(slot, true); } }
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)) { baubles.setStackInSlot(i, ItemStack.EMPTY); baubles.setStackInSlot(i, toEquip); ((IBauble) toEquip.getItem()).onEquipped(toEquip, player);
@Override public void setInventorySlotContents(int index, ItemStack stack) { handler.setStackInSlot(index, stack); }
@Override public void deserializeNBT (NBTTagCompound nbt) { this.container.deserializeNBT(nbt); } }
@Override protected void onContentsChanged(int slot) { setChanged(slot,true); }
@Override public boolean isChanged(int slot) { if (changed==null) { changed = new boolean[this.getSlots()]; } return changed[slot]; }
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); }
@Override public ItemStack getStackInSlot(int index) { return handler.getStackInSlot(index); }
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; }
@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; }
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; } } }
String s = playerStr(player); ItemStack belt = BaublesApi.getBaublesHandler(player).getStackInSlot(3); if(playersWithStepup.contains(s)) { if(shouldPlayerHaveStepup(player)) {
@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); } } }
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);
@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; } }
EntityLiving target = (EntityLiving) event.getEntityLiving(); EntityPlayer player = (EntityPlayer) event.getSource().getImmediateSource(); ItemStack amulet = BaublesApi.getBaublesHandler(player).getStackInSlot(6);