统一PlayerVariable用法

This commit is contained in:
Light_Quanta 2025-06-30 02:48:52 +08:00
parent f1eff29ae3
commit fe8de7156b
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959

View file

@ -38,25 +38,30 @@ public class PlayerVariable implements INBTSerializable<CompoundTag> {
} }
} }
public static PlayerVariable getOrDefault(Entity entity) {
return entity.getData(ModAttachments.PLAYER_VARIABLE);
}
@SubscribeEvent @SubscribeEvent
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) { public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
if (!(event.getEntity() instanceof ServerPlayer player)) return; if (!(event.getEntity() instanceof ServerPlayer player)) return;
PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), player.getData(ModAttachments.PLAYER_VARIABLE).compareAndUpdate())); PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), getOrDefault(player).compareAndUpdate()));
} }
@SubscribeEvent @SubscribeEvent
public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) { public static void onPlayerRespawn(PlayerEvent.PlayerRespawnEvent event) {
if (!(event.getEntity() instanceof ServerPlayer player)) return; if (!(event.getEntity() instanceof ServerPlayer player)) return;
PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), player.getData(ModAttachments.PLAYER_VARIABLE).compareAndUpdate())); PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), getOrDefault(player).compareAndUpdate()));
} }
@SubscribeEvent @SubscribeEvent
public static void onPlayerChangeDimension(PlayerEvent.PlayerChangedDimensionEvent event) { public static void onPlayerChangeDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
if (!(event.getEntity() instanceof ServerPlayer player)) return; if (!(event.getEntity() instanceof ServerPlayer player)) return;
PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), player.getData(ModAttachments.PLAYER_VARIABLE).forceUpdate())); PacketDistributor.sendToPlayer(player, new PlayerVariablesSyncMessage(player.getId(), getOrDefault(player).forceUpdate()));
} }
public PlayerVariable watch() { public PlayerVariable watch() {