chore: reapply #2027, throw if adding viewer before entity is active

This commit is contained in:
mworzala 2024-03-29 12:43:25 -04:00
parent 5b027599c5
commit 452943df23
No known key found for this signature in database
GPG Key ID: B148F922E64797C7
1 changed files with 2 additions and 2 deletions

View File

@ -28,7 +28,6 @@ import net.minestom.server.instance.block.Block;
import net.minestom.server.instance.block.BlockFace;
import net.minestom.server.instance.block.BlockHandler;
import net.minestom.server.network.packet.server.CachedPacket;
import net.minestom.server.network.packet.server.LazyPacket;
import net.minestom.server.network.packet.server.play.*;
import net.minestom.server.permission.Permission;
import net.minestom.server.permission.PermissionHandler;
@ -441,6 +440,7 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev
@Override
public final boolean addViewer(@NotNull Player player) {
Check.stateCondition(!isActive(), "Entities must be in an instance before adding viewers");
if (!viewEngine.manualAdd(player)) return false;
updateNewViewer(player);
return true;
@ -463,7 +463,7 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev
public void updateNewViewer(@NotNull Player player) {
player.sendPacket(getEntityType().registry().spawnType().getSpawnPacket(this));
if (hasVelocity()) player.sendPacket(getVelocityPacket());
player.sendPacket(new LazyPacket(this::getMetadataPacket));
player.sendPacket(this.getMetadataPacket());
// Passengers
final Set<Entity> passengers = this.passengers;
if (!passengers.isEmpty()) {