Skip to content

Commit 70e9d88

Browse files
committed
fix weird AT error
valid AT entry for `SetComponentsFunction::<init>` but in prod it's still private...
1 parent e78b80a commit 70e9d88

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/main/java/com/almostreliable/lootjs/core/entry/ItemLootEntry.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.almostreliable.lootjs.core.entry;
22

33
import com.almostreliable.lootjs.core.filters.ItemFilter;
4+
import com.almostreliable.lootjs.mixin.SetComponentsFunctionAccessor;
45
import com.almostreliable.lootjs.util.DebugInfo;
56
import com.almostreliable.lootjs.util.Utils;
67
import net.minecraft.core.component.DataComponentPatch;
@@ -15,7 +16,6 @@
1516
import net.minecraft.world.level.storage.loot.entries.LootPoolEntryType;
1617
import net.minecraft.world.level.storage.loot.entries.LootPoolSingletonContainer;
1718
import net.minecraft.world.level.storage.loot.functions.LootItemFunction;
18-
import net.minecraft.world.level.storage.loot.functions.SetComponentsFunction;
1919
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
2020
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
2121
import net.minecraft.world.level.storage.loot.providers.number.NumberProvider;
@@ -46,7 +46,8 @@ public ItemLootEntry(ItemStack itemStack) {
4646
builder.set(Utils.cast(component.type()), component.value());
4747
}
4848

49-
getFunctions().addFunction(new SetComponentsFunction(new ArrayList<>(), builder.build()));
49+
var function = SetComponentsFunctionAccessor.lootjs$create(new ArrayList<>(), builder.build());
50+
getFunctions().addFunction(function);
5051
}
5152
}
5253

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.almostreliable.lootjs.mixin;
2+
3+
import net.minecraft.core.component.DataComponentPatch;
4+
import net.minecraft.world.level.storage.loot.functions.SetComponentsFunction;
5+
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.gen.Invoker;
8+
import org.spongepowered.asm.mixin.throwables.MixinException;
9+
10+
import java.util.List;
11+
12+
@Mixin(SetComponentsFunction.class)
13+
public interface SetComponentsFunctionAccessor {
14+
15+
@Invoker("<init>")
16+
static SetComponentsFunction lootjs$create(List<LootItemCondition> condition, DataComponentPatch components) {
17+
throw new MixinException("Invoker not found");
18+
}
19+
}

src/main/resources/lootjs.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"LootPoolMixin",
1818
"LootTableMixin",
1919
"ReloadableServerRegistriesMixin",
20+
"SetComponentsFunctionAccessor",
2021
"SkeletonMixin",
2122
"WitherBossMixin",
2223
"ZombieMixin",

0 commit comments

Comments
 (0)