Compare commits

...

3 Commits

Author SHA1 Message Date
50042e96ad chore: update packages 2024-07-06 12:50:51 +02:00
c1353de565 feat: start server if stopped on join 2024-07-06 10:24:45 +02:00
640cc80758 feat: wait for server to be accessible on open 2024-07-06 09:06:00 +02:00
2 changed files with 23 additions and 4 deletions

View File

@ -14,8 +14,8 @@
<ItemGroup>
<PackageReference Include="DotNetEnv" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.5">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

View File

@ -676,6 +676,15 @@ namespace Minecraft_Realms_Emulator.Modes.Realms.Controllers
_context.SaveChanges();
var connection = _context.Connections.FirstOrDefault(c => c.World.Id == wId);
var query = new MinecraftServerQuery().Query(connection.Address);
while (query == null)
{
await Task.Delay(1000);
query = new MinecraftServerQuery().Query(connection.Address);
}
return Ok(true);
}
@ -894,9 +903,19 @@ namespace Minecraft_Realms_Emulator.Modes.Realms.Controllers
}
[HttpGet("v1/{wId}/join/pc")]
public ActionResult<Connection> Join(int wId)
public async Task<ActionResult<Connection>> Join(int wId)
{
var connection = _context.Connections.FirstOrDefault(x => x.World.Id == wId);
var connection = _context.Connections.Include(c => c.World).FirstOrDefault(x => x.World.Id == wId);
var query = new MinecraftServerQuery().Query(connection.Address);
if (query == null) new DockerHelper(connection.World).StartServer();
while (query == null)
{
await Task.Delay(1000);
query = new MinecraftServerQuery().Query(connection.Address);
}
return Ok(connection);
}