Table of Contents

Добавление статистики игрока

Статистика отслеживает время, потраченное на выполнение чего-либо, пройденное расстояние или прыжок, а также то, как часто игрок взаимодействовал с блоками или выполнял определенные действия.

Чтобы добавить пользовательскую статистику, создайте идентификатор, который будет использоваться для регистрации и увеличения статистики:

public static final Identifier INTERACT_WITH_COOL_BLOCK = new Identifier("modid", "interact_with_cool_block");

Регистрация

Затем зарегистрируйте статистику, используя идентификатор:

Registry.register(Registry.CUSTOM_STAT, "interact_with_cool_block", INTERACT_WITH_COOL_BLOCK);

Затем добавьте статистику на экран статистики, где вы также можете указать средство форматирования статистики. Он определяет, как номер отображается в списке статистики. Вы можете использовать значение DEFAULT, DIVIDE_BY_TEN, DISTANCE or TIME.

Stats.CUSTOM.getOrCreateStat(INTERACT_WITH_COOL_BLOCK, StatFormatter.DEFAULT);

Использование статистики

Чтобы увеличить статистику, например, когда игрок взаимодействует с блоком, вы можете использовать PlayerEntity::incrementStat:

@Override
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
	player.incrementStat(ModClass.INTERACT_WITH_COOL_BLOCK);
 
	return ActionResult.SUCCESS;
}

Вы также можете использовать PlayerEntity.increaseStat(stat, amount) чтобы увеличить статистику на произвольную величину.

Перевод

Чтобы перевести название, добавьте запись для stat.modid.statid (см. эту статью о том, как перевести статистику.):

{
  "stat.modid.interact_with_cool_block": "Взаимодействие с классным блоком"
}