You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Minecraft Fabric模组中自定义玩家统计数据的值?

获取Fabric模组自定义玩家统计值的方法

你已经完成了自定义统计的注册和增量逻辑:

自定义统计注册代码

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);
    }
}

统计增量的Mixin实现

@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");
    }
}

要获取该自定义统计的值,只需通过PlayerEntity的getStatHandler()方法拿到统计处理器,再调用getStat()传入你的自定义统计标识符即可:

// 假设已获取PlayerEntity实例player
StatHandler statHandler = player.getStatHandler();
int miningCount = statHandler.getStat(ModStats.MINING_STAT);

也可以简化为一行代码:

int miningCount = player.getStatHandler().getStat(ModStats.MINING_STAT);

如果需要读取离线玩家的统计数据,可通过PlayerManager加载玩家数据后,同样使用StatHandler获取对应值。


内容的提问来源于stack exchange,提问作者Philipp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:42:23