Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package test;
- import java.io.IOException;
- import java.text.NumberFormat;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Random;
- import net.minecraft.enchantment.Enchantment;
- import net.minecraft.enchantment.EnchantmentHelper;
- import net.minecraft.init.Bootstrap;
- import net.minecraft.init.Enchantments;
- import net.minecraft.init.Items;
- import net.minecraft.item.ItemStack;
- import net.minecraft.nbt.NBTTagList;
- public class TestMain {
- public static void main(String[] args) throws IOException {
- Bootstrap.register();
- final ItemStack HELMET = new ItemStack(Items.DIAMOND_HELMET);
- Random rand = new Random();
- final float clampedAdditionalDifficulty = 1;
- NumberFormat numberFormat = NumberFormat.getNumberInstance();
- Map<List<Enchantment>, Integer> counts = new HashMap<>();
- for (int i = 0; i < 1_000_000_000; i++) {
- if (i % 10000 == 0)
- System.out.println(numberFormat.format(i));
- ItemStack helmet = HELMET.copy();
- helmet = EnchantmentHelper.addRandomEnchantment(rand, helmet, (int) (5 + clampedAdditionalDifficulty * rand.nextInt(18)), false);
- if (rand.nextFloat() < 0.5f * clampedAdditionalDifficulty) {
- helmet = EnchantmentHelper.addRandomEnchantment(rand, helmet, (int) (5 + clampedAdditionalDifficulty * rand.nextInt(18)), false);
- }
- List<Enchantment> enchantments = new ArrayList<>();
- NBTTagList list = helmet.getTagCompound().getTagList("ench", 10);
- for (int j = 0; j < list.tagCount(); j++) {
- Enchantment ench = Enchantment.getEnchantmentByID(list.getCompoundTagAt(j).getShort("id"));
- int level = list.getCompoundTagAt(j).getShort("lvl");
- if ((ench == Enchantments.PROTECTION || ench == Enchantments.FIRE_PROTECTION) && level == 3) {
- enchantments.add(ench);
- } else if ((ench == Enchantments.BLAST_PROTECTION || ench == Enchantments.PROJECTILE_PROTECTION) && level == 4) {
- enchantments.add(ench);
- }
- }
- enchantments.sort(Comparator.comparing(Enchantment::getEnchantmentID));
- counts.put(enchantments, counts.getOrDefault(enchantments, 0) + 1);
- }
- counts.forEach((enchantments, count) -> {
- System.out.println("==============");
- enchantments.forEach(ench -> System.out.println(Enchantment.REGISTRY.getNameForObject(ench)));
- System.out.println(numberFormat.format(count));
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement