TetraJSEvents.registerStatBar(event => {
  let $GuiStatIndicator = Java.loadClass("se.mickelus.tetra.gui.stats.bar.GuiStatIndicator");
  //必做 1 注册effect对应的bar，2 传入bar显示的参数，3 传入bar的 tooltip 文本
  //选做 5 传入TooltipExtend 文本 5 注册随bar的Indicator，6 Indicator 的各项参数


  let reaching = TetraJS$StatBarHelper.multiply(4.3944449154,
    TetraJS$StatBarHelper.effectLevel("kubejs_reaching"))
  let reaching$1 = TetraJS$StatBarHelper.multiply(100,
    TetraJS$StatBarHelper.effectEfficiency("kubejs_reaching"))
  // 注册effect bar的示例  
  event.registerEffectBar("kubejs_reaching")
    .setMin(0)
    .setMax(100)
    //bar
    .setStatGetter(reaching)
    //文本 
    .addOneDecimalTooltip(reaching)
    //拓展文本    
    .addExtendGetter(reaching$1)

  // // 注册attribute bar的示例
  // event.registerAttributeBar("forge:entity_reach")
  //   .setOffset(1)
  //   .setIgnoreBase(false)
  //   .setMax(100)
  //   .setMultiplier(1)
  //   .setAttributeGetterType("common")
  //   .setLabelGetter("integerLabel")
  // .addStatIndicator(Indicator)

  let NNsimpleRegWorkbenchBar = (event, effect) => {
    let Name = effect.effect_name
    let barMax = effect.effect_length

    // 获取效果等级statGetter
    let LevelGetter = TetraJS$StatBarHelper.effectLevel(Name)
    // 获取效率statGetter
    let EfficiencyGetter = TetraJS$StatBarHelper.effectEfficiency(Name)
    let statBar = event.registerEffectBar(Name)
      // 最大/小值
      .setMax(barMax)
      .setMin(0)
      // bar 默认显示等级
      .setStatGetter(LevelGetter)
      // Tooltip 默认参数为等级和效率
      .addOneDecimalTooltip(LevelGetter)
      .addOneDecimalTooltip(EfficiencyGetter)
      // TooltipExtend 拓展文本    
      .addExtendGetter(LevelGetter)
      .addExtendGetter(EfficiencyGetter)
      // 
      .addStatIndicator(new $GuiStatIndicator(
        // 图标的 x(没用) ， y 偏移 ， 黄字显示的文本 
        0, 0, "tetra.stats.kubejs_effect",
        // GUI的位置( X , Y) ，GUI的地址
        0, 80, "tetra:textures/gui/glyphs_dzzl.png",
        // bar数值变动的参数tetra.stats.durability
        LevelGetter,
        // Indicator的Tooltip的参数
        TetraJS$StatBarHelper.newTooltipGetter("tetra.stats.kubejs_effect.tooltip")
          .addTowDecimalTooltip(LevelGetter)
          .addTowDecimalTooltip(EfficiencyGetter)
          .build()))

    // 添加生效位置
    let groupGuiMatch = (group$1, group$2) => {
      let group = effect.group || []
      // 获取效果等级statGetter
      let LevelGetter = TetraJS$StatBarHelper.effectLevel(Name)
      if (group.includes(group$1)) {
        // 创建Indicator  
        let Indicator = new $GuiStatIndicator(
          // 图标的 x(没用) ， y 偏移 ， 黄字显示的文本 
          0, 6, "tetra.stats.kubejs_effect1",
          // GUI的位置( X , Y) ，GUI的地址
          group$2, 0, "tetra:textures/gui/glyphs_dzzl.png",
          // bar数值变动的参数tetra.stats.durability
          LevelGetter,
          // Indicator的Tooltip的参数
          TetraJS$StatBarHelper.newTooltipGetter("tetra.stats.kubejs_" + group$1 + ".tooltip")
            .build())
        statBar.addStatIndicator(Indicator)
      }
    }
    // 特判
    if (Name == "the_incinerator") {
      let Indicator$1 = new $GuiStatIndicator(
        // 图标的 x(没用) ， y 偏移 ， 黄字显示的文本 
        0, 0, "tetra.stats.soul_form",
        // GUI的位置( X , Y) ，GUI的地址
        8 * 5, 0, "tetra:textures/gui/glyphs_dzzl.png",
        // bar数值变动的参数tetra.stats.durability
        LevelGetter,
        // Indicator的Tooltip的参数
        TetraJS$StatBarHelper.newTooltipGetter("tetra.stats.soul_form.tooltip")
          .build())
      statBar.addStatIndicator(Indicator$1)
    }

    groupGuiMatch("curios", 8 * 0)
    groupGuiMatch("mainhand", 8 * 1)
    groupGuiMatch("offhand", 8 * 2)
    groupGuiMatch("armor", 8 * 3)
    groupGuiMatch("hammer", 8 * 4)

    // let groupMatch = (group$1, group$2) => {
    //   let group = effect.group || []
    //   // 获取效果等级statGetter
    //   let LevelGetter = TetraJS$StatBarHelper.effectLevel(Name)
    //   if (group.includes(group$1)) {
    //     // 创建Indicator  
    //     let Indicator = new $GuiStatIndicator(
    //       // 图标的 x ， y 偏移 ， 黄字显示的文本 ， GUI的相对位置( X , 160 )
    //       0, 6, "tetra.stats.kubejs_" + group$1, group$2, 0, "tetra:textures/gui/glyphs_dzzl.png",
    //       // bar数值变动的参数tetra.stats.durability
    //       LevelGetter,
    //       // Indicator的Tooltip的参数
    //       TetraJS$StatBarHelper.newTooltipGetter("tetra.stats.kubejs_" + group$1 + ".tooltip")
    //         .build())
    //     statBar.addStatIndicator(Indicator)
    //   }
    // }
  }



  let excludeEffects = ["kubejs_reaching", "soul_form"];
  global.all_effect.forEach(effect => {
    //排除一些描述特殊的effect
    if (excludeEffects.includes(effect.effect_name)) return
    NNsimpleRegWorkbenchBar(event, effect)
  })

})


