Skip to content

Commit da843d2

Browse files
committed
[Savestate] Fix player not being updated
1 parent 1ce07c9 commit da843d2

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

src/main/java/com/minecrafttas/tasmod/savestates/handlers/SavestatePlayerHandler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import com.minecrafttas.tasmod.savestates.gui.GuiSavestateSavingScreen;
3333
import com.minecrafttas.tasmod.util.LoggerMarkers;
3434

35+
import net.fabricmc.api.EnvType;
36+
import net.fabricmc.api.Environment;
3537
import net.minecraft.client.Minecraft;
3638
import net.minecraft.client.entity.EntityPlayerSP;
3739
import net.minecraft.entity.Entity;
@@ -143,6 +145,8 @@ public void loadAndSendMotionToPlayer() {
143145
player.clearActivePotions();
144146

145147
player.readFromNBT(nbttagcompound);
148+
player.setWorld(this.server.getWorld(player.dimension));
149+
player.interactionManager.setWorld((WorldServer) player.world);
146150

147151
LOGGER.debug(LoggerMarkers.Savestate, "Sending motion to {}", player.getName());
148152

@@ -254,6 +258,7 @@ public void onServerPacket(PacketID id, ByteBuffer buf, String username) throws
254258
}
255259
}
256260

261+
@Environment(EnvType.CLIENT)
257262
@Override
258263
public void onClientPacket(PacketID id, ByteBuffer buf, String username) throws PacketNotImplementedException, WrongSideException, Exception {
259264
TASmodPackets packet = (TASmodPackets) id;

src/main/java/com/minecrafttas/tasmod/savestates/handlers/SavestateWorldHandler.java

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

33
import static com.minecrafttas.tasmod.TASmod.LOGGER;
44

5-
import java.util.ArrayList;
65
import java.util.List;
76

87
import com.minecrafttas.tasmod.mixin.savestates.AccessorPlayerChunkMap;
@@ -13,7 +12,6 @@
1312
import com.minecrafttas.tasmod.util.LoggerMarkers;
1413

1514
import net.minecraft.client.Minecraft;
16-
import net.minecraft.entity.EntityTracker;
1715
import net.minecraft.entity.player.EntityPlayer;
1816
import net.minecraft.entity.player.EntityPlayerMP;
1917
import net.minecraft.server.MinecraftServer;
@@ -160,6 +158,9 @@ private void addPlayerToChunkMap(WorldServer world, EntityPlayerMP player) {
160158
playerChunkMap.addPlayer(player);
161159
}
162160
world.getChunkProvider().provideChunk(playerChunkPosX, playerChunkPosY);
161+
162+
world.addWeatherEffect(player);
163+
world.spawnEntity(player);
163164
}
164165

165166
/**
@@ -210,11 +211,6 @@ public void sendChunksToClient() {
210211
}
211212

212213
public void loadAllWorlds(String string, String string2) {
213-
List<EntityTracker> trackers = new ArrayList<>();
214-
for (WorldServer world : server.worlds) {
215-
trackers.add(world.entityTracker);
216-
}
217-
218214
server.convertMapIfNeeded(string);
219215
server.worlds = new WorldServer[3];
220216
server.timeOfLastDimensionTick = new long[server.worlds.length][100];
@@ -239,10 +235,8 @@ public void loadAllWorlds(String string, String string2) {
239235

240236
if (i == 0) {
241237
server.worlds[i] = (WorldServer) new WorldServer(server, iSaveHandler, worldInfo, j, server.profiler).init();
242-
server.worlds[i].entityTracker = trackers.get(i);
243238
} else {
244239
server.worlds[i] = (WorldServer) new WorldServerMulti(server, iSaveHandler, j, server.worlds[0], server.profiler).init();
245-
server.worlds[i].entityTracker = trackers.get(i);
246240
}
247241

248242
server.worlds[i].addEventListener(new ServerWorldEventHandler(server, server.worlds[i]));

src/main/resources/tasmod.accesswidener

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,4 @@ accessible field net/minecraft/world/World worldInfo Lnet/minecraft/world/storag
1111

1212
accessible method net/minecraft/world/storage/SaveHandler setSessionLock ()V
1313

14-
accessible field net/minecraft/client/settings/KeyBinding CATEGORY_ORDER Ljava/util/Map;
15-
16-
accessible field net/minecraft/world/WorldServer entityTracker Lnet/minecraft/entity/EntityTracker;
17-
mutable field net/minecraft/world/WorldServer entityTracker Lnet/minecraft/entity/EntityTracker;
14+
accessible field net/minecraft/client/settings/KeyBinding CATEGORY_ORDER Ljava/util/Map;

0 commit comments

Comments
 (0)