Jump to content

gui8515

Members
  • Posts

    7
  • Joined

  • Last visited

gui8515's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. I'm having difficulty with this because it's the first time I edit with mods
  2. I know this, I will have java in the next module in college, I program a little in php and c #
  3. I do not know how to use this "MCPBot" is a beginner in the world of modification. Would you help me?
  4. Hello, I would like help! I do not know how to program very well, but I'm tending to update the mod Levels, there are some errors that I did not understand how I should fix it. If someone could help me, I would be happy. package com.thexfactor117.levels.events; import java.util.Iterator; import java.util.List; import com.thexfactor117.levels.config.Config; import com.thexfactor117.levels.leveling.Experience; import com.thexfactor117.levels.leveling.Rarity; import com.thexfactor117.levels.leveling.attributes.ArmorAttribute; import com.thexfactor117.levels.leveling.attributes.BowAttribute; import com.thexfactor117.levels.leveling.attributes.ShieldAttribute; import com.thexfactor117.levels.leveling.attributes.WeaponAttribute; import com.thexfactor117.levels.util.NBTHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.init.MobEffects; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemShield; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.launchwrapper.Launch; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumHand; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; /** * * @author TheXFactor117 * */ public class EventAttack { @SubscribeEvent public void onAttack(LivingHurtEvent event) { if (event.getSource().getSourceOfDamage() instanceof EntityPlayer && !(event.getSource().getSourceOfDamage() instanceof FakePlayer)) { EntityPlayer player = (EntityPlayer) event.getSource().getSourceOfDamage(); EntityLivingBase enemy = event.getEntityLiving(); ItemStack stack = player.inventory.getCurrentItem(); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (stack != null && nbt != null && stack.getItem() instanceof ItemSword) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } else if (event.getSource().getSourceOfDamage() instanceof EntityLivingBase && event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); EntityLivingBase enemy = (EntityLivingBase) event.getSource().getSourceOfDamage(); if (enemy != null && player != null) { for (ItemStack stack : player.inventory.armorInventory) { NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (stack != null && nbt != null && stack.getItem() instanceof ItemArmor) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } if (player.inventory.offHandInventory.get(0).getItem() instanceof ItemShield) { ItemStack stack = player.inventory.offHandInventory.get(0); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (stack != null && nbt != null && player.getActiveHand() == EnumHand.OFF_HAND) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } } } else if (event.getSource().getSourceOfDamage() instanceof EntityArrow) { EntityArrow arrow = (EntityArrow) event.getSource().getSourceOfDamage(); if (arrow.shootingEntity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) arrow.shootingEntity; EntityLivingBase enemy = event.getEntityLiving(); ItemStack stack = player.inventory.getCurrentItem(); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (player != null && enemy != null && stack != null && nbt != null && stack.getItem() instanceof ItemBow) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } else if (arrow.shootingEntity instanceof EntityLivingBase) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); EntityLivingBase enemy = (EntityLivingBase) arrow.shootingEntity; if (player != null && enemy != null) { for (ItemStack stack : player.inventory.armorInventory) { NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (stack != null && nbt != null && stack.getItem() instanceof ItemArmor) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } if (player.inventory.offHandInventory.get(0).getItem() instanceof ItemShield) { ItemStack stack = player.inventory.offHandInventory.get(0); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (stack != null && nbt != null && player.getActiveHand() == EnumHand.OFF_HAND) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, false); useAttributes(nbt, event, stack, player, enemy); attemptLevel(nbt, stack, player); } } } } } } /** * Called every time a living entity dies. * @param event */ @SubscribeEvent public void onLivingDeath(LivingDeathEvent event) { if (event.getSource().getSourceOfDamage() instanceof EntityPlayer && !(event.getSource().getSourceOfDamage() instanceof FakePlayer)) { EntityPlayer player = (EntityPlayer) event.getSource().getSourceOfDamage(); EntityLivingBase enemy = event.getEntityLiving(); ItemStack stack = player.inventory.getCurrentItem(); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (player != null && enemy != null && stack != null && nbt != null && stack.getItem() instanceof ItemSword) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, true); attemptLevel(nbt, stack, player); } } else if (event.getSource().getSourceOfDamage() instanceof EntityArrow) { EntityArrow arrow = (EntityArrow) event.getSource().getSourceOfDamage(); if (arrow.shootingEntity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) arrow.shootingEntity; EntityLivingBase enemy = event.getEntityLiving(); ItemStack stack = player.inventory.getCurrentItem(); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (player != null && enemy != null && stack != null && nbt != null && stack.getItem() instanceof ItemBow) { addExperience(nbt, stack, enemy); useRarity(nbt, stack, true); attemptLevel(nbt, stack, player); if (BowAttribute.RECOVER.hasAttribute(nbt)) { enemy.dropItem(Items.ARROW, (int) (Math.random() * 2)); } } } } } /** * Adds experience to the stack's NBT. * @param nbt * @param stack * @param enemy */ private void addExperience(NBTTagCompound nbt, ItemStack stack, EntityLivingBase enemy) { if (Experience.getLevel(nbt) < Config.maxLevel) { // DEV boolean isDev = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); if (isDev) { Experience.setExperience(nbt, Experience.getExperience(nbt) + 200); } // WEAPONS AND BOW if (stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemBow) { int xp = (int) (enemy.getMaxHealth() * 0.2); Experience.setExperience(nbt, Experience.getExperience(nbt) + xp); } // ARMOR AND SHIELD if (stack.getItem() instanceof ItemArmor || stack.getItem() instanceof ItemShield) { int xp = 0; // Default to use Attack Damage if available; uses Health if Attack Damage doesn't exist. if (enemy.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE) != null) { xp = (int) (enemy.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue() * 0.5); } else { xp = (int) (enemy.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getAttributeValue() * 0.5); } Experience.setExperience(nbt, Experience.getExperience(nbt) + xp); } } } /** * Uses rarity bonuses, such as bonus experience or durability bonuses. * @param nbt * @param stack */ private void useRarity(NBTTagCompound nbt, ItemStack stack, boolean death) { Rarity rarity = Rarity.getRarity(nbt); if (rarity != Rarity.DEFAULT) { int var; int var1; int var2; int var3; switch (rarity) { case UNCOMMON: // 6% chance of adding 1-3 experience points; 6% chance of not using durability if ((stack.getItem() instanceof ItemArmor || stack.getItem() instanceof ItemShield) || ((stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemBow) && death)) { var = (int) (Math.random() * 15); var1 = (int) (Math.random() * 3 + 1); if (var == 0) Experience.setExperience(nbt, Experience.getExperience(nbt) + var1); } if (!Config.unlimitedDurability && !death) { var2 = (int) (Math.random() * 15); if (var2 == 0) stack.setItemDamage(stack.getItemDamage() - 1); } break; case RARE: // 10% chance of adding 1-5 experience points; 10% chance of not using durability AND gaining an additional durability point if ((stack.getItem() instanceof ItemArmor || stack.getItem() instanceof ItemShield) || ((stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemBow) && death)) { var = (int) (Math.random() * 10); var1 = (int) (Math.random() * 5 + 1); if (var == 0) Experience.setExperience(nbt, Experience.getExperience(nbt) + var1); } if (!Config.unlimitedDurability && !death) { var2 = (int) (Math.random() * 10); var3 = (int) (Math.random() * 2); if (var2 == 0) stack.setItemDamage(stack.getItemDamage() - (1 + var3)); } break; case LEGENDARY: // 14% chance of adding 3-5 experience points; 14% chance of not using durability AND gaining 1-3 durability points if ((stack.getItem() instanceof ItemArmor || stack.getItem() instanceof ItemShield) || ((stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemBow) && death)) { var = (int) (Math.random() * 7); var1 = (int) (Math.random() * 5 + 3); if (var == 0) Experience.setExperience(nbt, Experience.getExperience(nbt) + var1); } if (!Config.unlimitedDurability && !death) { var2 = (int) (Math.random() * 7); var3 = (int) (Math.random() * 3 + 1); if (var2 == 0) stack.setItemDamage(stack.getItemDamage() - (1 + var3)); } break; case MYTHIC: // 20% chance of adding 3-10 experience points; 20% chance of not using durability AND gaining 1-5 durability points if ((stack.getItem() instanceof ItemArmor || stack.getItem() instanceof ItemShield) || ((stack.getItem() instanceof ItemSword || stack.getItem() instanceof ItemBow) && death)) { var = (int) (Math.random() * 5); var1 = (int) (Math.random() * 8 + 3); if (var == 0) Experience.setExperience(nbt, Experience.getExperience(nbt) + var1); } if (!Config.unlimitedDurability && !death) { var2 = (int) (Math.random() * 5); var3 = (int) (Math.random() * 5 + 1); if (var2 == 0) stack.setItemDamage(stack.getItemDamage() - (1 + var3)); } break; default: break; } } } /** * Uses any attributes the stack currently has. * @param nbt * @param event * @param stack * @param player * @param enemy */ private void useAttributes(NBTTagCompound nbt, LivingHurtEvent event, ItemStack stack, EntityPlayer player, EntityLivingBase enemy) { // WEAPONS if (stack.getItem() instanceof ItemSword) { if (WeaponAttribute.FIRE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.setFire((int) WeaponAttribute.FIRE.getCalculatedValue(nbt, 4, 1.25)); // 25% chance; tiers: (4 second, 5 second, 6 second) if (WeaponAttribute.FROST.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, (int) WeaponAttribute.FROST.getCalculatedValue(nbt, 20, 1.5), 10)); // 25% chance; tiers: (1 second, 1.5 second, 2.25 second) if (WeaponAttribute.POISON.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.POISON, (int) WeaponAttribute.POISON.getCalculatedValue(nbt, 20 * 7, 1.5), WeaponAttribute.POISON.getAttributeTier(nbt))); // 25% chance; tiers: (7 second, 10.5 second, 15.75 second) if (WeaponAttribute.DURABLE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) stack.setItemDamage(stack.getItemDamage() - (int) WeaponAttribute.DURABLE.getCalculatedValue(nbt, 1, 2)); // 25% chance; tiers: (1 point, 2 point, 4 point) if (WeaponAttribute.ABSORB.hasAttribute(nbt) && (int) (Math.random() * 5) == 0) player.setHealth(player.getHealth() + (float) (event.getAmount() * WeaponAttribute.ABSORB.getCalculatedValue(nbt, 0.25, 1.5))); // 14% chance; returns half the damage dealt back as health; tiers: (25%, 37.5%, 56.25%) if (WeaponAttribute.VOID.hasAttribute(nbt) && (int) (Math.random() * WeaponAttribute.VOID.getCalculatedValue(nbt, 15, 0.8)) == 0) enemy.setHealth(0.001F); // tiers: (6% chance, 8% chance, 1125%% chance); sets enemies health to something small, so damage kills enemy in one hit if (WeaponAttribute.CRITICAL.hasAttribute(nbt) && (int) (Math.random() * 5) == 0) { float bonus = (float) (event.getAmount() * WeaponAttribute.CRITICAL.getCalculatedValue(nbt, 0.20, 1.5)); // 20% chance; tiers: (20%, 30%, 45%) event.setAmount(event.getAmount() + bonus); } if (WeaponAttribute.CHAINED.hasAttribute(nbt) && (int) (Math.random() * 10) == 0) { double radius = 10; World world = enemy.getEntityWorld(); List<EntityLivingBase> entityList = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(player.posX - radius, player.posY - radius, player.posZ - radius, player.posX + radius, player.posY + radius, player.posZ + radius)); Iterator<EntityLivingBase> iterator = entityList.iterator(); while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); if (entity instanceof EntityLivingBase && !(entity instanceof EntityPlayer) && !(entity instanceof EntityAnimal)) { entity.attackEntityFrom(DamageSource.causePlayerDamage(player), event.getAmount() / 2); } } } } // ARMOR if (stack.getItem() instanceof ItemArmor) { if (ArmorAttribute.FIRE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.setFire((int) ArmorAttribute.FIRE.getCalculatedValue(nbt, 4, 1.25)); // 25% chance; tiers: (4 second, 5 second, 6 second) if (ArmorAttribute.FROST.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, (int) ArmorAttribute.FROST.getCalculatedValue(nbt, 20, 1.5), 10)); // 25% chance; tiers: (1 second, 1.5 second, 2.25 second) if (ArmorAttribute.POISON.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.POISON, (int) ArmorAttribute.POISON.getCalculatedValue(nbt, 20 * 7, 1.5), ArmorAttribute.POISON.getAttributeTier(nbt))); // 25% chance; tiers: (7 second, 10.5 second, 15.75 second) if (ArmorAttribute.DURABLE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) stack.setItemDamage(stack.getItemDamage() - (int) ArmorAttribute.DURABLE.getCalculatedValue(nbt, 1, 2)); // 25% chance; tiers: (1 point, 2 point, 4 point) if (ArmorAttribute.MAGICAL.hasAttribute(nbt) && event.getSource().isMagicDamage()) event.setAmount((float) (event.getAmount() * ArmorAttribute.MAGICAL.getCalculatedValue(nbt, 0.2, 1.5))); // tiers: (20%, 30%, 45%) } // BOW if (stack.getItem() instanceof ItemBow) { if (BowAttribute.FIRE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.setFire((int) BowAttribute.FIRE.getCalculatedValue(nbt, 4, 1.25)); // 25% chance; tiers: (4 second, 5 second, 6 second) if (BowAttribute.FROST.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, (int) BowAttribute.FROST.getCalculatedValue(nbt, 20, 1.5), 10)); // 25% chance; tiers: (1 second, 1.5 second, 2.25 second) if (BowAttribute.POISON.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.POISON, (int) BowAttribute.POISON.getCalculatedValue(nbt, 20 * 7, 1.5), BowAttribute.POISON.getAttributeTier(nbt))); // 25% chance; tiers: (7 second, 10.5 second, 15.75 second) if (BowAttribute.DURABLE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) stack.setItemDamage(stack.getItemDamage() - (int) BowAttribute.DURABLE.getCalculatedValue(nbt, 1, 2)); // 25% chance; tiers: (1 point, 2 point, 4 point) if (BowAttribute.ABSORB.hasAttribute(nbt) && (int) (Math.random() * 5) == 0) player.setHealth(player.getHealth() + (float) (event.getAmount() * BowAttribute.ABSORB.getCalculatedValue(nbt, 0.25, 1.5))); // 14% chance; returns half the damage dealt back as health; tiers: (25%, 37.5%, 56.25%) if (BowAttribute.VOID.hasAttribute(nbt) && (int) (Math.random() * BowAttribute.VOID.getCalculatedValue(nbt, 15, 0.8)) == 0) enemy.setHealth(0.001F); // tiers: (6% chance, 8% chance, 1125%% chance); sets enemies health to something small, so damage kills enemy in one hit if (BowAttribute.CRITICAL.hasAttribute(nbt) && (int) (Math.random() * 5) == 0) { float bonus = (float) (event.getAmount() * BowAttribute.CRITICAL.getCalculatedValue(nbt, 0.20, 1.5)); // 20% chance; tiers: (20%, 30%, 45%) event.setAmount(event.getAmount() + bonus); } } // SHIELD if (stack.getItem() instanceof ItemShield) { if (ShieldAttribute.FIRE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.setFire((int) ShieldAttribute.FIRE.getCalculatedValue(nbt, 4, 1.25)); // 25% chance; tiers: (4 second, 5 second, 6 second) if (ShieldAttribute.FROST.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, (int) ShieldAttribute.FROST.getCalculatedValue(nbt, 20, 1.5), 10)); // 25% chance; tiers: (1 second, 1.5 second, 2.25 second) if (ShieldAttribute.POISON.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) enemy.addPotionEffect(new PotionEffect(MobEffects.POISON, (int) ShieldAttribute.POISON.getCalculatedValue(nbt, 20 * 7, 1.5), ShieldAttribute.POISON.getAttributeTier(nbt))); // 25% chance; tiers: (7 second, 10.5 second, 15.75 second) if (ShieldAttribute.DURABLE.hasAttribute(nbt) && (int) (Math.random() * 4) == 0) stack.setItemDamage(stack.getItemDamage() - (int) ShieldAttribute.DURABLE.getCalculatedValue(nbt, 1, 2)); // 25% chance; tiers: (1 point, 2 point, 4 point) } } /** * Attempts to level up the current stack. * @param stack * @param player */ private void attemptLevel(NBTTagCompound nbt, ItemStack stack, EntityPlayer player) { Experience.levelUp(player, stack); NBTHelper.saveStackNBT(stack, nbt); } } package com.thexfactor117.levels.events.attributes; import com.thexfactor117.levels.leveling.attributes.BowAttribute; import com.thexfactor117.levels.util.NBTHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.entity.projectile.EntityArrow.PickupStatus; import net.minecraft.entity.projectile.EntityTippedArrow; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; /** * * @author TheXFactor117 * */ public class EventBarrage { @SuppressWarnings("static-access") @SubscribeEvent public void onBowFire(ArrowLooseEvent event) { EntityPlayer player = event.getEntityPlayer(); ItemStack stack = event.getBow(); NBTTagCompound nbt = NBTHelper.loadStackNBT(stack); if (player != null && stack != null && nbt != null && !player.getEntityWorld().isRemote) { if (BowAttribute.BARRAGE.hasAttribute(nbt)) { for (int i = 0; i < (int) BowAttribute.BARRAGE.getCalculatedValue(nbt, 3, 1.5); i++) { EntityArrow entityarrow = new EntityTippedArrow(player.getEntityWorld(), player); entityarrow.setAim(player, player.rotationPitch, player.rotationYaw, 0, ((ItemBow) event.getBow().getItem()).getArrowVelocity(event.getCharge()) * 3, 20F); entityarrow.pickupStatus = PickupStatus.DISALLOWED; player.getEntityWorld().spawnEntity(entityarrow); } } } } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.