Skip to content

Commit dd729a1

Browse files
committed
use mixin shadow instead of access widener
1 parent dd73450 commit dd729a1

4 files changed

Lines changed: 13 additions & 7 deletions

File tree

fabric/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ loom {
3030
val modId: String by project
3131

3232
splitEnvironmentSourceSets()
33-
34-
accessWidenerPath.set(file("src/main/resources/fabric.accesstransformer.cfg"))
3533

3634
mods {
3735
create(modId) {

fabric/src/main/java/fr/rakambda/overpoweredmending/fabric/mixin/ExperienceOrbMixin.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
import net.minecraft.world.entity.ExperienceOrb;
77
import net.minecraft.world.entity.player.Player;
88
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Shadow;
910
import org.spongepowered.asm.mixin.injection.At;
1011
import org.spongepowered.asm.mixin.injection.Inject;
1112
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1213

1314
@Mixin(ExperienceOrb.class)
1415
public class ExperienceOrbMixin{
16+
@Shadow
17+
private int count;
18+
1519
@Inject(method = "playerTouch", at = @At(value = "HEAD"), cancellable = true)
1620
public void onPlayerCollision(Player player, CallbackInfo callbackInfo){
1721
var orb = (ExperienceOrb) (Object) this;
@@ -20,7 +24,7 @@ public void onPlayerCollision(Player player, CallbackInfo callbackInfo){
2024
return;
2125
}
2226

23-
if(OverpoweredMending.getMod().onXpPickedUp(new PlayerWrapper(player), new XpOrbWrapper(orb))){
27+
if(OverpoweredMending.getMod().onXpPickedUp(new PlayerWrapper(player), new XpOrbWrapper(orb, () -> this.count, val -> this.count = val))){
2428
callbackInfo.cancel();
2529
}
2630
}

fabric/src/main/java/fr/rakambda/overpoweredmending/fabric/wrapper/XpOrbWrapper.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@
66
import lombok.ToString;
77
import net.minecraft.world.entity.ExperienceOrb;
88
import org.jspecify.annotations.NonNull;
9+
import java.util.function.Consumer;
10+
import java.util.function.Supplier;
911

1012
@RequiredArgsConstructor
1113
@ToString
1214
public class XpOrbWrapper implements IXpOrb{
1315
@NonNull
1416
@Getter
1517
private final ExperienceOrb raw;
18+
@NonNull
19+
private final Supplier<Integer> countGetter;
20+
@NonNull
21+
private final Consumer<Integer> countSetter;
1622

1723
@Override
1824
public int getExperienceAmount(){
@@ -21,12 +27,12 @@ public int getExperienceAmount(){
2127

2228
@Override
2329
public int getCount(){
24-
return raw.count;
30+
return countGetter.get();
2531
}
2632

2733
@Override
2834
public void setCount(int count){
29-
raw.count = count;
35+
countSetter.accept(count);
3036
}
3137

3238
@Override

fabric/src/main/resources/fabric.accesstransformer.cfg

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)