Skip to content

Commit dd73450

Browse files
committed
Fix merged orbs being counted only once
1 parent d1e5147 commit dd73450

15 files changed

Lines changed: 30 additions & 133 deletions

File tree

common/src/main/java/fr/rakambda/overpoweredmending/common/OverpoweredMendingCommon.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,17 @@ public boolean onXpPickedUp(@NonNull IPlayer player, @NonNull IXpOrb xpOrb){
5151
while(!item.isEmpty() && xpAmount > 0){
5252
var realRepair = Math.min(xpAmount * DURABILITY_PER_XP, item.getDamageValue());
5353
xpAmount -= realRepair / DURABILITY_PER_XP;
54-
xpOrb.setExperienceAmount(xpAmount);
5554
item.setDamageValue(item.getDamageValue() - realRepair);
5655
item = getDamagedEnchantedItem(player);
5756
}
5857
if(xpAmount > 0){
5958
player.addExperience(xpAmount);
6059
}
61-
xpOrb.discard();
60+
61+
xpOrb.setCount(xpOrb.getCount() - 1);
62+
if(xpOrb.getCount() <= 0){
63+
xpOrb.discard();
64+
}
6265
return true;
6366
}
6467

common/src/main/java/fr/rakambda/overpoweredmending/common/wrapper/IFriendlyByteBuf.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package fr.rakambda.overpoweredmending.common.wrapper;
22

33
public interface IFriendlyByteBuf extends IWrapper{
4-
void writeDouble(double value);
5-
64
void writeInteger(int value);
75

86
void writeBoolean(boolean value);
97

10-
double readDouble();
11-
128
int readInteger();
139

1410
boolean readBoolean();

common/src/main/java/fr/rakambda/overpoweredmending/common/wrapper/ILevel.java

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package fr.rakambda.overpoweredmending.common.wrapper;
22

3-
import org.jspecify.annotations.NonNull;
4-
53
public interface IXpOrb extends IWrapper{
64
int getExperienceAmount();
75

8-
void setExperienceAmount(int amount);
6+
int getCount();
97

10-
void discard();
8+
void setCount(int count);
119

12-
@NonNull
13-
ILevel getLevel();
10+
void discard();
1411
}

fabric/build.gradle.kts

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

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

3436
mods {
3537
create(modId) {

fabric/src/main/java/fr/rakambda/overpoweredmending/fabric/common/FriendlyByteBufWrapper.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ public class FriendlyByteBufWrapper implements IFriendlyByteBuf{
1414
@Getter
1515
private final FriendlyByteBuf raw;
1616

17-
@Override
18-
public void writeDouble(double value){
19-
raw.writeDouble(value);
20-
}
21-
2217
@Override
2318
public void writeInteger(int value){
2419
raw.writeInt(value);
@@ -29,11 +24,6 @@ public void writeBoolean(boolean value){
2924
raw.writeBoolean(value);
3025
}
3126

32-
@Override
33-
public double readDouble(){
34-
return raw.readDouble();
35-
}
36-
3727
@Override
3828
public int readInteger(){
3929
return raw.readInt();

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

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

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

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package fr.rakambda.overpoweredmending.fabric.wrapper;
22

3-
import fr.rakambda.overpoweredmending.common.wrapper.ILevel;
43
import fr.rakambda.overpoweredmending.common.wrapper.IXpOrb;
54
import lombok.Getter;
65
import lombok.RequiredArgsConstructor;
@@ -21,17 +20,17 @@ public int getExperienceAmount(){
2120
}
2221

2322
@Override
24-
public void setExperienceAmount(int amount){
23+
public int getCount(){
24+
return raw.count;
2525
}
2626

2727
@Override
28-
public void discard(){
29-
raw.discard();
28+
public void setCount(int count){
29+
raw.count = count;
3030
}
3131

3232
@Override
33-
@NonNull
34-
public ILevel getLevel(){
35-
return new LevelWrapper(raw.level());
33+
public void discard(){
34+
raw.discard();
3635
}
3736
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
classTweaker v1 official
2+
accessible field net/minecraft/world/entity/ExperienceOrb count I

forge/src/main/java/fr/rakambda/overpoweredmending/forge/common/wrapper/FriendlyByteBufWrapper.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,6 @@ public class FriendlyByteBufWrapper implements IFriendlyByteBuf{
1414
@Getter
1515
private final FriendlyByteBuf raw;
1616

17-
@Override
18-
public void writeDouble(double value){
19-
raw.writeDouble(value);
20-
}
21-
2217
@Override
2318
public void writeInteger(int value){
2419
raw.writeInt(value);
@@ -29,11 +24,6 @@ public void writeBoolean(boolean value){
2924
raw.writeBoolean(value);
3025
}
3126

32-
@Override
33-
public double readDouble(){
34-
return raw.readDouble();
35-
}
36-
3727
@Override
3828
public int readInteger(){
3929
return raw.readInt();

0 commit comments

Comments
 (0)