Java源码示例:net.minecraft.advancements.Advancement

示例1
public static void grantAdvancement(EntityPlayer player, String advancementName) {
    if (!(player instanceof EntityPlayerMP))
        return;

    AdvancementManager manager = player.world.getMinecraftServer().getAdvancementManager();
    Advancement advancement = manager.getAdvancement(new ResourceLocation(TofuMain.MODID, "tofucraft/" + advancementName));
    if (advancement == null)
        return;

    ((EntityPlayerMP) player).getAdvancements().grantCriterion(advancement, "done");
}
 
示例2
public CraftAdvancement(Advancement handle) {
    this.handle = handle;
}
 
示例3
public Advancement getHandle() {
    return handle;
}
 
示例4
@Override
public Advancement getAdvancementOnPickup(ItemStack stack, EntityPlayer player, EntityItem item) {
	MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
	return server.getAdvancementManager().getAdvancement(new ResourceLocation(Wizardry.MODID, "advancements/advancement_devildust.json"));
}
 
示例5
@Override
public Advancement getAdvancementOnPickup(ItemStack stack, EntityPlayer player, EntityItem item) {
	return ModAdvancements.BOOK;
}
 
示例6
@SubscribeEvent
public static void onEntityUpdate(EntityUpdateEvent event) {
	Entity entityIn = event.getEntity();
	BlockPos pos = entityIn.getPosition();
	World world = entityIn.world;
	IBlockState state = world.getBlockState(pos);
	if (state.getBlock() == ModFluids.MANA.getActualBlock()) {
		// Fizz all entities in the pool
		if (world.isRemote)
			run(world, pos, state.getBlock(), entityIn,
				entity -> true,
				entity -> LibParticles.FIZZING_AMBIENT(world, entityIn.getPositionVector()));

		// Nullify gravity of player
		if (!world.isRemote)
			run(world, pos, state.getBlock(), entityIn,
					entity -> entity instanceof EntityLivingBase,
					entity -> {
						((EntityLivingBase) entityIn).addPotionEffect(new PotionEffect(ModPotions.NULLIFY_GRAVITY, 100, 0, true, false));
						if (RandUtil.nextInt(50) == 0) entity.attackEntityFrom(DamageSourceMana.INSTANCE, 0.1f);
					});

		run(world, pos, state.getBlock(), entityIn,
				entity -> entity instanceof EntityLivingBase,
				entity -> entityIn.motionY += 0.003);


		// Subtract player food
		run(world, pos, state.getBlock(), entityIn,
				entity -> entity instanceof EntityPlayer,
				entity -> {

					if (!world.isRemote) {
						MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
						Advancement advancement = server.getAdvancementManager().getAdvancement(new ResourceLocation(Wizardry.MODID, "advancements/advancement_crunch.json"));
						if (advancement == null) return;
						AdvancementProgress progress = ((EntityPlayerMP) entity).getAdvancements().getProgress(advancement);
						for (String s : progress.getRemaningCriteria()) {
							((EntityPlayerMP) entity).getAdvancements().grantCriterion(advancement, s);
						}
					}
					if (!((EntityPlayer) entity).capabilities.isCreativeMode && RandUtil.nextInt(50) == 0)
						((EntityPlayer) entity).getFoodStats().addExhaustion(1f);
				});
		// Explode explodable items
		run(world, pos, state.getBlock(), entityIn,
				entity -> entity instanceof EntityItem && ((EntityItem) entity).getItem().getItem() instanceof IPotionEffectExplodable,
				entity -> FluidTracker.INSTANCE.addManaCraft(entity.world, entity.getPosition(), new ManaRecipes.ExplodableCrafter()));
	}


	run(world, pos, state.getBlock(), entityIn,
			entity -> entity instanceof EntityItem && ManaRecipes.RECIPES.keySet().stream().anyMatch(item -> item.apply(((EntityItem) entity).getItem())),
			entity -> {
				List<Map.Entry<Ingredient, FluidRecipeLoader.FluidCrafter>> allEntries = ManaRecipes.RECIPES.entries().stream().filter(entry ->
						entry.getValue().getFluid().getBlock() == state.getBlock() &&
								entry.getKey().apply(((EntityItem) entity).getItem())).collect(Collectors.toList());
				allEntries.forEach(crafter -> FluidTracker.INSTANCE.addManaCraft(entity.world, entity.getPosition(), crafter.getValue().build()));
			});
}
 
示例7
Advancement getAdvancementOnPickup(ItemStack stack, EntityPlayer player, EntityItem item);