Skip to content

Commit 82e9417

Browse files
committed
Fix replay players interfering with advancements
1 parent fd80e86 commit 82e9417

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ dependencies {
3838
// I've had some issues with ReplayStudio and slf4j (in dev)
3939
// Simplest workaround that I've found is just to unzip the
4040
// jar and yeet the org.slf4j packages then rezip the jar.
41-
modImplementation("com.github.ReplayMod:ReplayStudio:6cd39b0874") {
41+
include(modImplementation("com.github.ReplayMod:ReplayStudio:6cd39b0874") {
4242
exclude(group = "org.slf4j")
4343
exclude(group = "com.google.guava", module = "guava-jdk5")
4444
exclude(group = "com.google.guava", module = "guava")
4545
exclude(group = "com.google.code.gson", module = "gson")
46-
}
46+
})
4747
include(modImplementation("net.fabricmc:fabric-language-kotlin:${property("fabric_kotlin_version")}")!!)
4848
include(modImplementation("me.lucko:fabric-permissions-api:${property("permissions_version")}")!!)
4949

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package me.senseiwells.replay.mixin.rejoin;
2+
3+
import com.llamalad7.mixinextras.injector.WrapWithCondition;
4+
import me.senseiwells.replay.rejoin.RejoinedReplayPlayer;
5+
import net.minecraft.server.level.ServerPlayer;
6+
import net.minecraft.server.players.PlayerList;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
10+
@Mixin(ServerPlayer.class)
11+
public class ServerPlayerMixin {
12+
@WrapWithCondition(
13+
method = "<init>",
14+
at = @At(
15+
value = "INVOKE",
16+
target = "Lnet/minecraft/server/players/PlayerList;getPlayerAdvancements(Lnet/minecraft/server/level/ServerPlayer;)Lnet/minecraft/server/PlayerAdvancements;"
17+
)
18+
)
19+
private boolean shouldUpdateAdvancements(PlayerList instance, ServerPlayer player) {
20+
return !(player instanceof RejoinedReplayPlayer);
21+
}
22+
}

src/main/resources/serverreplay.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"rejoin.ChunkMapMixin",
1818
"rejoin.ConnectionAccessor",
1919
"rejoin.ServerConfigurationPacketListenerImplAccessor",
20+
"rejoin.ServerPlayerMixin",
2021
"rejoin.TrackedEntityAccessor",
2122
"rejoin.TrackedEntityMixin",
2223
"studio.ZipReplayFileAccessor"

0 commit comments

Comments
 (0)