Skip to content

Commit 429d1e3

Browse files
committed
fix ftbteams uuid issue
1 parent 00c9754 commit 429d1e3

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.teammoeg.frostedheart.mixin.ftb;
2+
3+
import dev.ftb.mods.ftbteams.FTBTeams;
4+
import dev.ftb.mods.ftbteams.api.client.KnownClientPlayer;
5+
import dev.ftb.mods.ftbteams.data.ClientTeam;
6+
import dev.ftb.mods.ftbteams.data.ClientTeamManagerImpl;
7+
import net.minecraft.client.Minecraft;
8+
import org.spongepowered.asm.mixin.Final;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Shadow;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Inject;
13+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14+
15+
import java.nio.charset.StandardCharsets;
16+
import java.util.Map;
17+
import java.util.UUID;
18+
@Mixin(ClientTeamManagerImpl.class)
19+
public abstract class MixinCTManager {
20+
@Shadow private ClientTeam selfTeam;
21+
@Shadow private KnownClientPlayer selfKnownPlayer;
22+
@Shadow @Final
23+
private Map<UUID, ClientTeam> teamMap;
24+
@Shadow @Final
25+
private Map<UUID, KnownClientPlayer> knownPlayers;
26+
27+
@Inject(method = "initSelfDetails", at = @At("HEAD"), cancellable = true, remap = false)
28+
private void onInitSelfDetails(UUID selfTeamID, CallbackInfo ci) {
29+
this.selfTeam = this.teamMap.get(selfTeamID);
30+
UUID userId = Minecraft.getInstance().getUser().getGameProfile().getId();
31+
this.selfKnownPlayer = this.knownPlayers.get(userId);
32+
33+
if (this.selfKnownPlayer == null) {
34+
String username = Minecraft.getInstance().getUser().getGameProfile().getName();
35+
UUID offlineId = UUID.nameUUIDFromBytes(
36+
("OfflinePlayer:" + username).getBytes(StandardCharsets.UTF_8)
37+
);
38+
this.selfKnownPlayer = this.knownPlayers.get(offlineId);
39+
}
40+
if (this.selfKnownPlayer == null) {
41+
FTBTeams.LOGGER.error(
42+
"Local player id {} was not found in the known players list [{}]!",
43+
userId,
44+
String.join(",", this.knownPlayers.keySet().stream()
45+
.map(UUID::toString).toList())
46+
);
47+
}
48+
ci.cancel();
49+
}
50+
}

src/main/resources/frostedheart.mixins.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"forge.FluidHandlerItemStackSimpleMixin",
2828
"forge.FMLHandshakeAntiCheatMixin",
2929
"forge.ServerLifecycleHooksMixin",
30+
"ftb.MixinCTManager",
3031
"immersiveengineering.IERegistrationMixin",
3132
"immersiveengineering.OwnerableStateMixin",
3233
"minecraft.accessors.NewChatGuiAccessor",
@@ -63,6 +64,7 @@
6364
"minecraft.temperature.MooshroomMixin",
6465
"minecraft.temperature.MushroomBlockMixin",
6566
"minecraft.temperature.PigMixin",
67+
"minecraft.temperature.PlayerListMixin",
6668
"minecraft.temperature.PolarBearMeleeAttackGoalMixin",
6769
"minecraft.temperature.PolarBearMixin",
6870
"minecraft.temperature.ServerLevelMixin_PlaceExtraSnow",
@@ -72,7 +74,6 @@
7274
"minecraft.temperature.SheepMixin",
7375
"minecraft.temperature.SnowLayerBlockMixin_Melt",
7476
"minecraft.temperature.WolfMixin",
75-
"minecraft.temperature.PlayerListMixin",
7677
"minecraft.trade.AssignProfessionFromJobSite_DisableVanillaProfession",
7778
"minecraft.trade.ResetProfession_DisableVanillaProfession",
7879
"minecraft.trade.VillagerMixin",

0 commit comments

Comments
 (0)