我正在开发具有自定义玩家统计数据的 Minecraft Fabric mod。 以下是我创建自定义玩家统计数据的方式:
public class ModStats {
public static final Identifier MINING_STAT = new Identifier(ExampleMod.MOD_ID, "mining_stat");
public static void registerModStats() {
Registry.register(Registries.CUSTOM_STAT, "mining_stat", MINING_STAT);
Stats.CUSTOM.getOrCreateStat(MINING_STAT, StatFormatter.DEFAULT);
}
}
registerModStats()
在 Mod 主类中被调用。
我使用MiningToolItemMixin
增加统计数据:
@Mixin(MiningToolItem.class)
public class MiningToolItemMixin {
@Inject(at = @At("TAIL"), method = "postMine")
private void postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner,
CallbackInfoReturnable<Boolean> info) {
if (miner instanceof PlayerEntity player) {
player.incrementStat(ModStats.MINING_STAT);
}
System.out.println("MiningToolItemMixin");
}
}
一切正常但我怎样才能在代码的其他部分获得统计值?
我厌倦了通过
PlayerEntitiy
对象获取统计数据,但只有增加统计数据和检索统计数据的方法。