Skip to content

Commit

Permalink
Fix value not being set. Close #99
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredlll08 committed Jun 15, 2022
1 parent a2ee4cf commit 6bd63ca
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@
@Mixin(ExperienceOrb.class)
public interface ExperienceOrbAccess {

@Accessor
int getAge();
@Accessor("age")
int clumps$getAge();

@Accessor
void setAge(int age);

@Accessor
void setCount(int count);
@Accessor("age")
void clumps$setAge(int age);

@Accessor("count")
void clumps$setCount(int count);

}
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@ public void playerTouch(Player player, CallbackInfo ci) {
if(ClumpsCommon.pickupXPEvent.test(player, (ExperienceOrb) (Entity) this)) {
return;
}
System.out.println(clumps$clumpedMap.entrySet()
.stream()
.map(entry -> entry.getKey() * entry.getValue())
.reduce(Integer::sum)
.orElse(1));
player.takeXpDelay = 0;
player.take(this, 1);

Expand All @@ -98,11 +103,11 @@ public void playerTouch(Player player, CallbackInfo ci) {
public void merge(ExperienceOrb secondaryOrb, CallbackInfo ci) {

Map<Integer, Integer> otherMap = ((IClumpedOrb) secondaryOrb).clumps$getClumpedMap();
clumps$clumpedMap = Stream.of(clumps$getClumpedMap(), otherMap)
clumps$setClumpedMap(Stream.of(clumps$getClumpedMap(), otherMap)
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum));
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum)));
this.count = clumps$getClumpedMap().values().stream().reduce(Integer::sum).orElse(1);
this.age = Math.min(this.age, ((ExperienceOrbAccess) secondaryOrb).getAge());
this.age = Math.min(this.age, ((ExperienceOrbAccess) secondaryOrb).clumps$getAge());
secondaryOrb.discard();
ci.cancel();
}
Expand All @@ -117,12 +122,12 @@ private static void tryMergeToExisting(ServerLevel serverLevel, Vec3 vec3, int v
if(!list.isEmpty()) {
ExperienceOrb experienceOrb = list.get(0);
Map<Integer, Integer> clumpedMap = ((IClumpedOrb) experienceOrb).clumps$getClumpedMap();
clumpedMap = Stream.of(clumpedMap, Collections.singletonMap(value, 1))
((IClumpedOrb) experienceOrb).clumps$setClumpedMap(Stream.of(clumpedMap, Collections.singletonMap(value, 1))
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum));
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum)));
((IClumpedOrb) experienceOrb).clumps$setClumpedMap(clumpedMap);
((ExperienceOrbAccess) experienceOrb).setCount(clumpedMap.values().stream().reduce(Integer::sum).orElse(1));
((ExperienceOrbAccess) experienceOrb).setAge(0);
((ExperienceOrbAccess) experienceOrb).clumps$setCount(clumpedMap.values().stream().reduce(Integer::sum).orElse(1));
((ExperienceOrbAccess) experienceOrb).clumps$setAge(0);
cir.setReturnValue(true);
} else {
cir.setReturnValue(false);
Expand Down Expand Up @@ -169,6 +174,11 @@ public void readAdditionalSaveData(CompoundTag compoundTag, CallbackInfo ci) {
public void clumps$setClumpedMap(Map<Integer, Integer> map) {

clumps$clumpedMap = map;
value = clumps$clumpedMap.entrySet()
.stream()
.map(entry -> entry.getKey() * entry.getValue())
.reduce(Integer::sum)
.orElse(1);
}

}

0 comments on commit 6bd63ca

Please sign in to comment.