正确判断数据包同步条件

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

View file

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