diff --git a/src/main/kotlin/de/devin/cbbees/content/bee/server/ServerBeeManager.kt b/src/main/kotlin/de/devin/cbbees/content/bee/server/ServerBeeManager.kt index 5de49cd..9e24f33 100644 --- a/src/main/kotlin/de/devin/cbbees/content/bee/server/ServerBeeManager.kt +++ b/src/main/kotlin/de/devin/cbbees/content/bee/server/ServerBeeManager.kt @@ -269,6 +269,7 @@ object ServerBeeManager { networkId: UUID, spawnPos: Vec3, ): ServerBeeData { + val beeWorld = hive.world as ServerLevel val bee = ServerBeeData( id = UUID.randomUUID(), type = BeeType.TRANSPORT, @@ -281,22 +282,21 @@ object ServerBeeManager { hivePos = hive.pos transportTask = task transportState = TransportBeeState.FLYING_TO_SOURCE + _level = beeWorld } - if (level != null) { - FlightPlanComputer.computeTransportAsync(bee, task, level!!) { plan -> - bee.flightPlan = plan - bee.planStartTick = level!!.gameTime - bee.currentCheckpointIndex = 0 - if (plan.checkpoints.size > 1) { - val travel = FlightPlan.travelTicks( - plan.checkpoints[0].pos, plan.checkpoints[1].pos, plan.speed - ) - bee.currentCheckpointIndex = 1 - bee.nextCheckpointArrivalTick = level!!.gameTime + travel - } - broadcastFlightPlan(bee, plan, clientStartIndex = 0) + FlightPlanComputer.computeTransportAsync(bee, task, beeWorld) { plan -> + bee.flightPlan = plan + bee.planStartTick = beeWorld.gameTime + bee.currentCheckpointIndex = 0 + if (plan.checkpoints.size > 1) { + val travel = FlightPlan.travelTicks( + plan.checkpoints[0].pos, plan.checkpoints[1].pos, plan.speed + ) + bee.currentCheckpointIndex = 1 + bee.nextCheckpointArrivalTick = beeWorld.gameTime + travel } + broadcastFlightPlan(bee, plan, clientStartIndex = 0) } bees[bee.id] = bee