fix(plugin): check for valid data
This commit is contained in:
parent
58eec899b4
commit
0147a3bafd
|
@ -48,6 +48,7 @@ public class Plugin : IDalamudPlugin {
|
|||
var players = this.ObjectTable
|
||||
.Where(obj => obj.ObjectKind == ObjectKind.Player && obj is PlayerCharacter)
|
||||
.Cast<PlayerCharacter>()
|
||||
.Where(player => player.IsValid() && player.Level > 0)
|
||||
.Select(player => {
|
||||
var pos = player.Position;
|
||||
return new PlayerInfo(
|
||||
|
@ -68,20 +69,21 @@ public class Plugin : IDalamudPlugin {
|
|||
.ToList();
|
||||
|
||||
if (players.Count == 0 || this.ClientState.LocalPlayer is not { } player) {
|
||||
Log.Verbose("no players to upload");
|
||||
return;
|
||||
}
|
||||
|
||||
// shuffle so first player isn't always local player
|
||||
players.Shuffle();
|
||||
|
||||
var update = new Update(territory, player.CurrentWorld.Id, players);
|
||||
var json = JsonConvert.SerializeObject(update, new JsonSerializerSettings {
|
||||
ContractResolver = new DefaultContractResolver {
|
||||
NamingStrategy = new SnakeCaseNamingStrategy(),
|
||||
},
|
||||
});
|
||||
|
||||
Task.Run(async () => {
|
||||
// shuffle so first player isn't always local player
|
||||
players.Shuffle();
|
||||
|
||||
var update = new Update(territory, player.CurrentWorld.Id, players);
|
||||
var json = JsonConvert.SerializeObject(update, new JsonSerializerSettings {
|
||||
ContractResolver = new DefaultContractResolver {
|
||||
NamingStrategy = new SnakeCaseNamingStrategy(),
|
||||
},
|
||||
});
|
||||
|
||||
using var mem = new MemoryStream();
|
||||
await using (var gz = new GZipStream(mem, CompressionLevel.Optimal)) {
|
||||
await gz.WriteAsync(Encoding.UTF8.GetBytes(json));
|
||||
|
|
Loading…
Reference in New Issue