Skip to content

Commit c4c2aba

Browse files
Fix GT Capes not rendering in multiplayer (#4271)
1 parent 50ed84e commit c4c2aba

File tree

6 files changed

+27
-30
lines changed

6 files changed

+27
-30
lines changed

src/generated/resources/assets/gtceu/lang/en_ud.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4742,7 +4742,7 @@
47424742
"item.gtceu.tool.behavior.block_rotation": "sʞɔoןᗺ sǝʇɐʇoᴚɟ§ :ɔıuɐɥɔǝWᄅ§",
47434743
"item.gtceu.tool.behavior.crop_harvesting": "sdoɹƆ sʇsǝʌɹɐHɟ§ :ɹǝʇsǝʌɹɐHɐ§",
47444744
"item.gtceu.tool.behavior.damage_boost": "%s ʇsuıɐbɐ ǝbɐɯɐp ɐɹʇxƎɟ§ :ʇsooᗺ ǝbɐɯɐᗡㄣ§",
4745-
"item.gtceu.tool.behavior.dowse_campfire": "sǝɹıɟdɯɐƆ sǝsʍoᗡɟ§ :ɹǝʇɥbıɟǝɹıℲ§",
4745+
"item.gtceu.tool.behavior.dowse_campfire": "sǝɹıɟdɯɐƆ sǝsʍoᗡɟ§ :ɹǝʇɥbıɟǝɹıℲƖ§",
47464746
"item.gtceu.tool.behavior.grass_path": "sɥʇɐԀ ssɐɹ⅁ sǝʇɐǝɹƆɟ§ :ɹǝdɐɔspuɐꞀǝ§",
47474747
"item.gtceu.tool.behavior.ground_tilling": "punoɹ⅁ sןןı⟘ɟ§ :ɹǝɯɹɐℲǝ§",
47484748
"item.gtceu.tool.behavior.plunger": "spınןℲ suıɐɹᗡɟ§ :ɹǝqɯnןԀ6§",

src/generated/resources/assets/gtceu/lang/en_us.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4744,7 +4744,7 @@
47444744
"item.gtceu.tool.behavior.block_rotation": "§2Mechanic: §fRotates Blocks",
47454745
"item.gtceu.tool.behavior.crop_harvesting": "§aHarvester: §fHarvests Crops",
47464746
"item.gtceu.tool.behavior.damage_boost": "§4Damage Boost: §fExtra damage against %s",
4747-
"item.gtceu.tool.behavior.dowse_campfire": "§Firefighter: §fDowses Campfires",
4747+
"item.gtceu.tool.behavior.dowse_campfire": "§1Firefighter: §fDowses Campfires",
47484748
"item.gtceu.tool.behavior.grass_path": "§eLandscaper: §fCreates Grass Paths",
47494749
"item.gtceu.tool.behavior.ground_tilling": "§eFarmer: §fTills Ground",
47504750
"item.gtceu.tool.behavior.plunger": "§9Plumber: §fDrains Fluids",

src/main/java/com/gregtechceu/gtceu/api/cosmetics/CapeRegistry.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import net.minecraft.resources.ResourceLocation;
1212
import net.minecraft.server.level.ServerLevel;
1313
import net.minecraft.server.level.ServerPlayer;
14-
import net.minecraft.world.entity.player.Player;
1514
import net.minecraft.world.level.saveddata.SavedData;
1615
import net.minecraftforge.common.MinecraftForge;
1716

@@ -275,29 +274,25 @@ public static boolean setActiveCape(UUID player, @Nullable ResourceLocation cape
275274
}
276275

277276
// For loading capes when the player logs in, so that it's synced to the clients.
278-
public static void loadCurrentCapesOnLogin(Player player) {
279-
if (player instanceof ServerPlayer serverPlayer) {
280-
UUID uuid = player.getUUID();
281-
// sync to others
282-
GTNetwork.sendToAll(new SPacketNotifyCapeChange(uuid, CURRENT_CAPES.get(uuid)));
283-
// sync to the one who's logging in
284-
for (ServerPlayer otherPlayer : serverPlayer.getServer().getPlayerList().getPlayers()) {
285-
uuid = otherPlayer.getUUID();
286-
GTNetwork.sendToPlayer(serverPlayer, new SPacketNotifyCapeChange(uuid, CURRENT_CAPES.get(uuid)));
287-
}
277+
public static void loadCurrentCapesOnLogin(ServerPlayer serverPlayer) {
278+
UUID uuid = serverPlayer.getUUID();
279+
// sync to others
280+
GTNetwork.sendToAll(new SPacketNotifyCapeChange(uuid, CURRENT_CAPES.get(uuid)));
281+
// sync to the one who's logging in
282+
for (ServerPlayer otherPlayer : serverPlayer.getServer().getPlayerList().getPlayers()) {
283+
uuid = otherPlayer.getUUID();
284+
GTNetwork.sendToPlayer(serverPlayer, new SPacketNotifyCapeChange(uuid, CURRENT_CAPES.get(uuid)));
288285
}
289286
}
290287

291288
// Runs on login and gives the player all free capes & capes they've already unlocked.
292-
public static void detectNewCapes(Player player) {
293-
if (player instanceof ServerPlayer) {
294-
var playerCapes = UNLOCKED_CAPES.get(player.getUUID());
295-
if (playerCapes == null || !new HashSet<>(playerCapes).containsAll(FREE_CAPES)) {
296-
for (ResourceLocation cape : FREE_CAPES) {
297-
unlockCape(player.getUUID(), cape);
298-
}
299-
save();
289+
public static void detectNewCapes(ServerPlayer serverPlayer) {
290+
var playerCapes = UNLOCKED_CAPES.get(serverPlayer.getUUID());
291+
if (playerCapes == null || !new HashSet<>(playerCapes).containsAll(FREE_CAPES)) {
292+
for (ResourceLocation cape : FREE_CAPES) {
293+
unlockCape(serverPlayer.getUUID(), cape);
300294
}
295+
save();
301296
}
302297
}
303298

src/main/java/com/gregtechceu/gtceu/client/ClientProxy.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.gregtechceu.gtceu.GTCEu;
44
import com.gregtechceu.gtceu.api.GTValues;
5+
import com.gregtechceu.gtceu.api.cosmetics.event.RegisterGTCapesEvent;
56
import com.gregtechceu.gtceu.api.data.worldgen.GTOreDefinition;
67
import com.gregtechceu.gtceu.api.data.worldgen.bedrockfluid.BedrockFluidDefinition;
78
import com.gregtechceu.gtceu.api.data.worldgen.bedrockore.BedrockOreDefinition;
@@ -30,6 +31,7 @@
3031
import com.gregtechceu.gtceu.common.entity.GTBoat;
3132
import com.gregtechceu.gtceu.common.machine.owner.MachineOwner;
3233
import com.gregtechceu.gtceu.config.ConfigHolder;
34+
import com.gregtechceu.gtceu.forge.ForgeCommonEventListener;
3335
import com.gregtechceu.gtceu.integration.map.ClientCacheManager;
3436
import com.gregtechceu.gtceu.integration.map.cache.client.GTClientCache;
3537
import com.gregtechceu.gtceu.integration.map.ftbchunks.FTBChunksPlugin;
@@ -71,6 +73,7 @@ public static void init() {
7173
ClientCacheManager.registerClientCache(GTClientCache.instance, "gtceu");
7274
Layers.registerLayer(OreRenderLayer::new, "ore_veins");
7375
Layers.registerLayer(FluidRenderLayer::new, "bedrock_fluids");
76+
ForgeCommonEventListener.registerCapes(new RegisterGTCapesEvent());
7477
}
7578
initializeDynamicRenders();
7679
}

src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public static void init(RegistrateLangProvider provider) {
192192
provider.add("item.gtceu.tool.behavior.crop_harvesting", "§aHarvester: §fHarvests Crops");
193193
provider.add("item.gtceu.tool.behavior.plunger", "§9Plumber: §fDrains Fluids");
194194
provider.add("item.gtceu.tool.behavior.block_rotation", "§2Mechanic: §fRotates Blocks");
195-
provider.add("item.gtceu.tool.behavior.dowse_campfire", Firefighter: §fDowses Campfires");
195+
provider.add("item.gtceu.tool.behavior.dowse_campfire", 1Firefighter: §fDowses Campfires");
196196
provider.add("item.gtceu.tool.behavior.damage_boost", "§4Damage Boost: §fExtra damage against %s");
197197
provider.add("item.gtceu.tool.behavior.prospecting.ore", "Found ore: %s");
198198
provider.add("item.gtceu.tool.behavior.prospecting.air", "Found an air pocket");

src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -320,15 +320,14 @@ public static void onPlayerJoinServer(PlayerEvent.PlayerLoggedInEvent event) {
320320
if (player instanceof ServerPlayer serverPlayer) {
321321
GTNetwork.sendToPlayer(serverPlayer, new SPacketSendWorldID());
322322

323-
if (!ConfigHolder.INSTANCE.gameplay.environmentalHazards)
324-
return;
325-
326-
ServerLevel level = serverPlayer.serverLevel();
327-
var data = EnvironmentalHazardSavedData.getOrCreate(level);
328-
GTNetwork.sendToPlayer(serverPlayer, new SPacketSyncLevelHazards(data.getHazardZones()));
323+
if (ConfigHolder.INSTANCE.gameplay.environmentalHazards) {
324+
ServerLevel level = serverPlayer.serverLevel();
325+
var data = EnvironmentalHazardSavedData.getOrCreate(level);
326+
GTNetwork.sendToPlayer(serverPlayer, new SPacketSyncLevelHazards(data.getHazardZones()));
327+
}
328+
CapeRegistry.detectNewCapes(serverPlayer);
329+
CapeRegistry.loadCurrentCapesOnLogin(serverPlayer);
329330
}
330-
CapeRegistry.detectNewCapes(player);
331-
CapeRegistry.loadCurrentCapesOnLogin(player);
332331
}
333332

334333
@SubscribeEvent

0 commit comments

Comments
 (0)