diff --git a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java index 7a981e5..6e8eaa6 100644 --- a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java +++ b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java @@ -250,6 +250,7 @@ public class TextCommands { txt="[server] Sended "+player.getAccount().getDisplayName()+" to zone "+zoneId; Zone old = player.getZone(); zone.addPlayer(player); + player.setZone(zoneId); player.respawn(zone); old.removePlayer(player); } diff --git a/src/main/java/net/pietru/cookie_utils/mixins/ServerSingletonsMixin.java b/src/main/java/net/pietru/cookie_utils/mixins/ServerSingletonsMixin.java new file mode 100644 index 0000000..e0e6a27 --- /dev/null +++ b/src/main/java/net/pietru/cookie_utils/mixins/ServerSingletonsMixin.java @@ -0,0 +1,26 @@ +package net.pietru.cookie_utils.mixins; + +import com.llamalad7.mixinextras.sugar.Local; +import finalforeach.cosmicreach.GameSingletons; +import finalforeach.cosmicreach.accounts.Account; +import finalforeach.cosmicreach.networking.NetworkIdentity; +import finalforeach.cosmicreach.networking.packets.ZonePacket; +import finalforeach.cosmicreach.networking.server.ServerSingletons; +import finalforeach.cosmicreach.world.Zone; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(ServerSingletons.class) +public class ServerSingletonsMixin { + + @Inject(method = "addAccount", at = @At("TAIL")) + private static void event_player_data(CallbackInfo ci, @Local NetworkIdentity id, @Local Account account){ + for (Zone z : GameSingletons.world.getZones()){ + if (!account.getPlayer().getZone().zoneId.equals(z.zoneId)){ + id.send(new ZonePacket(z, false)); + } + } + } +} diff --git a/src/main/java/net/pietru/cookie_utils/utils/prop.java b/src/main/java/net/pietru/cookie_utils/utils/prop.java index efad873..5dc3a4e 100644 --- a/src/main/java/net/pietru/cookie_utils/utils/prop.java +++ b/src/main/java/net/pietru/cookie_utils/utils/prop.java @@ -20,6 +20,8 @@ public class prop { String txt = (String) get_server_property(key,defaultValue); String replace = txt.replace("[",""); String replace1 = replace.replace("]",""); + if (replace1.isEmpty()) + return new ArrayList<>(); return new ArrayList<>(Arrays.asList(replace1.split(","))); } diff --git a/src/main/resources/cookie_utils.mixins.json b/src/main/resources/cookie_utils.mixins.json index 75f75b9..bead52c 100644 --- a/src/main/resources/cookie_utils.mixins.json +++ b/src/main/resources/cookie_utils.mixins.json @@ -12,7 +12,8 @@ "MessagePacketMixin", "MobSpawnerMixin", "PlayerPositionMixin", - "NettyServerMixin" + "NettyServerMixin", + "ServerSingletonsMixin" ], "client": [], "injectors": {