正确判断数据包同步条件

This commit is contained in:
Light_Quanta 2025-06-01 01:17:51 +08:00
parent 6ca9f4d478
commit fefe015274
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 20 additions and 12 deletions

View file

@ -55,7 +55,7 @@ public class VehicleDataTool {
public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) { if (event.getEntity() instanceof ServerPlayer player) {
var server = player.getServer(); var server = player.getServer();
if (server != null && server.isSingleplayer()) { if (server != null && server.isSingleplayerOwner(player.getGameProfile())) {
return; return;
} }
@ -70,12 +70,16 @@ public class VehicleDataTool {
@SubscribeEvent @SubscribeEvent
public static void onDataPackSync(OnDatapackSyncEvent event) { public static void onDataPackSync(OnDatapackSyncEvent event) {
initJsonData(event.getPlayerList().getServer().getResourceManager()); var server = event.getPlayerList().getServer();
initJsonData(server.getResourceManager());
if (event.getPlayerList().getServer().isSingleplayer()) { var message = VehiclesDataMessage.create();
return; for (var player : event.getRelevantPlayers().toList()) {
if (server.isSingleplayerOwner(player.getGameProfile())) {
continue;
} }
event.getRelevantPlayers().forEach(player -> PacketDistributor.sendToPlayer(player, VehiclesDataMessage.create())); PacketDistributor.sendToPlayer(player, message);
}
} }
} }

View file

@ -64,7 +64,7 @@ public class GunsTool {
public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) { if (event.getEntity() instanceof ServerPlayer player) {
var server = player.getServer(); var server = player.getServer();
if (server != null && server.isSingleplayer()) { if (server != null && server.isSingleplayerOwner(player.getGameProfile())) {
return; return;
} }
@ -79,13 +79,17 @@ public class GunsTool {
@SubscribeEvent @SubscribeEvent
public static void onDataPackSync(OnDatapackSyncEvent event) { public static void onDataPackSync(OnDatapackSyncEvent event) {
initJsonData(event.getPlayerList().getServer().getResourceManager()); var server = event.getPlayerList().getServer();
initJsonData(server.getResourceManager());
if (event.getPlayerList().getServer().isSingleplayer()) { var message = GunsDataMessage.create();
return; for (var player : event.getRelevantPlayers().toList()) {
if (server.isSingleplayerOwner(player.getGameProfile())) {
continue;
} }
event.getRelevantPlayers().forEach(player -> PacketDistributor.sendToPlayer(player, GunsDataMessage.create())); PacketDistributor.sendToPlayer(player, message);
}
} }
public static void setGunIntTag(final CompoundTag tag, String name, int num) { public static void setGunIntTag(final CompoundTag tag, String name, int num) {