disable losers
This commit is contained in:
parent
32c2b51666
commit
db3cc79398
1 changed files with 116 additions and 116 deletions
|
|
@ -107,132 +107,132 @@ $new_win_matches = $player_matches[-1].new_win_matches
|
|||
$new_loss_matches = $player_matches[-1].new_loss_matches
|
||||
|
||||
# Post verloren matches naar #losers kanaal
|
||||
foreach ($lossid in $new_loss_matches) {
|
||||
$lossmatch = $player_matches.player_matches | Where-Object { $_.id -eq $lossid }
|
||||
if ($null -eq $lossmatch) { continue }
|
||||
if ($lossmatch[0].gameMode -eq 'tdm') { continue }
|
||||
# foreach ($lossid in $new_loss_matches) {
|
||||
# $lossmatch = $player_matches.player_matches | Where-Object { $_.id -eq $lossid }
|
||||
# if ($null -eq $lossmatch) { continue }
|
||||
# if ($lossmatch[0].gameMode -eq 'tdm') { continue }
|
||||
|
||||
# Fetch detailed match stats and telemetry for the loss
|
||||
$loss_match_stats = $null
|
||||
$loss_telemetry = $null
|
||||
try {
|
||||
$loss_match_stats = Invoke-RestMethod -Uri "https://api.pubg.com/shards/steam/matches/$lossid" -Method GET -Headers $headers
|
||||
$loss_telemetry = (invoke-webrequest @($lossmatch.telemetry_url)[0]).content | convertfrom-json | where-object { ($_._T -eq 'LOGPLAYERTAKEDAMAGE') -or ($_._T -eq 'LOGPLAYERKILLV2') }
|
||||
} catch {
|
||||
$errorMessage = $_.Exception.Message
|
||||
Write-Warning ("Failed to fetch API/telemetry data for loss match {0}: {1}" -f $lossid, $errorMessage)
|
||||
}
|
||||
# # Fetch detailed match stats and telemetry for the loss
|
||||
# $loss_match_stats = $null
|
||||
# $loss_telemetry = $null
|
||||
# try {
|
||||
# $loss_match_stats = Invoke-RestMethod -Uri "https://api.pubg.com/shards/steam/matches/$lossid" -Method GET -Headers $headers
|
||||
# $loss_telemetry = (invoke-webrequest @($lossmatch.telemetry_url)[0]).content | convertfrom-json | where-object { ($_._T -eq 'LOGPLAYERTAKEDAMAGE') -or ($_._T -eq 'LOGPLAYERKILLV2') }
|
||||
# } catch {
|
||||
# $errorMessage = $_.Exception.Message
|
||||
# Write-Warning ("Failed to fetch API/telemetry data for loss match {0}: {1}" -f $lossid, $errorMessage)
|
||||
# }
|
||||
|
||||
$loss_stats_table = @()
|
||||
$loss_victims = @() # For team damage
|
||||
# $loss_stats_table = @()
|
||||
# $loss_victims = @() # For team damage
|
||||
|
||||
# Iterate through players found in the locally stored match data for this loss
|
||||
foreach ($player_stat in $lossmatch[0].stats) {
|
||||
$player_name = $player_stat.name
|
||||
# Find the corresponding detailed stats from the API response
|
||||
$detailed_player_stats = $null
|
||||
if ($null -ne $loss_match_stats) {
|
||||
$detailed_player_stats = $loss_match_stats.included | Where-Object {$_.type -eq 'participant'} | ForEach-Object {$_.attributes.stats} | Where-Object { $_.name -eq $player_name }
|
||||
}
|
||||
# # Iterate through players found in the locally stored match data for this loss
|
||||
# foreach ($player_stat in $lossmatch[0].stats) {
|
||||
# $player_name = $player_stat.name
|
||||
# # Find the corresponding detailed stats from the API response
|
||||
# $detailed_player_stats = $null
|
||||
# if ($null -ne $loss_match_stats) {
|
||||
# $detailed_player_stats = $loss_match_stats.included | Where-Object {$_.type -eq 'participant'} | ForEach-Object {$_.attributes.stats} | Where-Object { $_.name -eq $player_name }
|
||||
# }
|
||||
|
||||
if ($null -eq $detailed_player_stats) {
|
||||
Write-Warning "Could not find detailed stats for player $player_name in loss match $lossid. Using basic stats."
|
||||
# Fallback to basic stats if detailed stats are missing
|
||||
$loss_stats_table += [PSCustomObject]@{
|
||||
Name = $player_name
|
||||
'Human dmg' = "N/A"
|
||||
'Human Kills' = "N/A"
|
||||
'Dmg' = "$([math]::Round($player_stat.damageDealt))" # Use basic stat
|
||||
'Kills' = "$($player_stat.kills)" # Use basic stat
|
||||
'alive' = "$([math]::Round(($player_stat.timeSurvived / 60)))" # Use basic stat
|
||||
}
|
||||
continue # Skip telemetry processing if detailed stats failed
|
||||
}
|
||||
# if ($null -eq $detailed_player_stats) {
|
||||
# Write-Warning "Could not find detailed stats for player $player_name in loss match $lossid. Using basic stats."
|
||||
# # Fallback to basic stats if detailed stats are missing
|
||||
# $loss_stats_table += [PSCustomObject]@{
|
||||
# Name = $player_name
|
||||
# 'Human dmg' = "N/A"
|
||||
# 'Human Kills' = "N/A"
|
||||
# 'Dmg' = "$([math]::Round($player_stat.damageDealt))" # Use basic stat
|
||||
# 'Kills' = "$($player_stat.kills)" # Use basic stat
|
||||
# 'alive' = "$([math]::Round(($player_stat.timeSurvived / 60)))" # Use basic stat
|
||||
# }
|
||||
# continue # Skip telemetry processing if detailed stats failed
|
||||
# }
|
||||
|
||||
# Calculate stats (similar to win stats calculation)
|
||||
$human_dmg = "N/A"
|
||||
$human_kills = "N/A"
|
||||
if ($null -ne $loss_telemetry) {
|
||||
try {
|
||||
$human_dmg = [math]::Round(($loss_telemetry | Where-Object { $_._T -eq 'LOGPLAYERTAKEDAMAGE' -and $_.attacker.name -eq $player_name -and $_.victim.accountId -notlike "ai.*" -and $_.victim.teamId -ne $_.attacker.teamId } | Measure-Object -Property damage -Sum).Sum)
|
||||
$human_kills = ($loss_telemetry | Where-Object { $_._T -eq 'LOGPLAYERKILLV2' -and $_.killer.name -eq $player_name -and $_.victim.accountId -notlike "ai.*" }).count
|
||||
} catch {
|
||||
$errorMessage = $_.Exception.Message
|
||||
Write-Warning ("Error processing telemetry stats for {0} in loss {1}: {2}" -f $player_name, $lossid, $errorMessage)
|
||||
}
|
||||
}
|
||||
# # Calculate stats (similar to win stats calculation)
|
||||
# $human_dmg = "N/A"
|
||||
# $human_kills = "N/A"
|
||||
# if ($null -ne $loss_telemetry) {
|
||||
# try {
|
||||
# $human_dmg = [math]::Round(($loss_telemetry | Where-Object { $_._T -eq 'LOGPLAYERTAKEDAMAGE' -and $_.attacker.name -eq $player_name -and $_.victim.accountId -notlike "ai.*" -and $_.victim.teamId -ne $_.attacker.teamId } | Measure-Object -Property damage -Sum).Sum)
|
||||
# $human_kills = ($loss_telemetry | Where-Object { $_._T -eq 'LOGPLAYERKILLV2' -and $_.killer.name -eq $player_name -and $_.victim.accountId -notlike "ai.*" }).count
|
||||
# } catch {
|
||||
# $errorMessage = $_.Exception.Message
|
||||
# Write-Warning ("Error processing telemetry stats for {0} in loss {1}: {2}" -f $player_name, $lossid, $errorMessage)
|
||||
# }
|
||||
# }
|
||||
|
||||
$loss_stats_table += [PSCustomObject]@{
|
||||
Name = $player_name
|
||||
'Human dmg' = "$human_dmg"
|
||||
'Human Kills' = "$human_kills"
|
||||
'Dmg' = "$([math]::Round($detailed_player_stats.damageDealt))"
|
||||
'Kills' = "$($detailed_player_stats.kills)"
|
||||
'alive' = "$([math]::Round(($detailed_player_stats.timeSurvived / 60)))"
|
||||
}
|
||||
# $loss_stats_table += [PSCustomObject]@{
|
||||
# Name = $player_name
|
||||
# 'Human dmg' = "$human_dmg"
|
||||
# 'Human Kills' = "$human_kills"
|
||||
# 'Dmg' = "$([math]::Round($detailed_player_stats.damageDealt))"
|
||||
# 'Kills' = "$($detailed_player_stats.kills)"
|
||||
# 'alive' = "$([math]::Round(($detailed_player_stats.timeSurvived / 60)))"
|
||||
# }
|
||||
|
||||
# Calculate team damage
|
||||
if ($null -ne $loss_telemetry) {
|
||||
try {
|
||||
$teamdmg = $loss_telemetry | Where-Object {
|
||||
$_._T -eq 'LOGPLAYERTAKEDAMAGE' -and
|
||||
$_.victim.teamId -eq $_.attacker.teamId -and
|
||||
$_.victim.accountId -notlike "ai.*" -and
|
||||
$_.victim.name -ne $_.attacker.name -and
|
||||
$_.attacker.name -eq $player_name
|
||||
}
|
||||
if ($teamdmg.count -ge 1) {
|
||||
foreach ($victim_name in ($teamdmg.victim.name | Select-Object -Unique)) {
|
||||
$loss_victims += [PSCustomObject]@{
|
||||
attacker = $player_name
|
||||
victim = $victim_name
|
||||
Damage = "$([math]::Round((($teamdmg | Where-Object { $_.victim.name -eq $victim_name }).damage | Measure-Object -Sum).Sum))"
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
$errorMessage = $_.Exception.Message
|
||||
Write-Warning ("Error processing team damage for {0} in loss {1}: {2}" -f $player_name, $lossid, $errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
# # Calculate team damage
|
||||
# if ($null -ne $loss_telemetry) {
|
||||
# try {
|
||||
# $teamdmg = $loss_telemetry | Where-Object {
|
||||
# $_._T -eq 'LOGPLAYERTAKEDAMAGE' -and
|
||||
# $_.victim.teamId -eq $_.attacker.teamId -and
|
||||
# $_.victim.accountId -notlike "ai.*" -and
|
||||
# $_.victim.name -ne $_.attacker.name -and
|
||||
# $_.attacker.name -eq $player_name
|
||||
# }
|
||||
# if ($teamdmg.count -ge 1) {
|
||||
# foreach ($victim_name in ($teamdmg.victim.name | Select-Object -Unique)) {
|
||||
# $loss_victims += [PSCustomObject]@{
|
||||
# attacker = $player_name
|
||||
# victim = $victim_name
|
||||
# Damage = "$([math]::Round((($teamdmg | Where-Object { $_.victim.name -eq $victim_name }).damage | Measure-Object -Sum).Sum))"
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# } catch {
|
||||
# $errorMessage = $_.Exception.Message
|
||||
# Write-Warning ("Error processing team damage for {0} in loss {1}: {2}" -f $player_name, $lossid, $errorMessage)
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
# Format the stats table
|
||||
$content_lossstats = ""
|
||||
if ($loss_stats_table.Count -gt 0) {
|
||||
$content_lossstats = '```' + ($loss_stats_table | Format-Table -AutoSize | Out-String) + '```'
|
||||
}
|
||||
# # Format the stats table
|
||||
# $content_lossstats = ""
|
||||
# if ($loss_stats_table.Count -gt 0) {
|
||||
# $content_lossstats = '```' + ($loss_stats_table | Format-Table -AutoSize | Out-String) + '```'
|
||||
# }
|
||||
|
||||
# Format team damage table
|
||||
$content_loss_victims = ""
|
||||
if ($loss_victims.Count -gt 0) {
|
||||
$content_loss_victims = ":skull::skull: Team Damage :skull::skull:`n" + '```' + ($loss_victims | Format-Table -AutoSize | Out-String) + '```'
|
||||
}
|
||||
# # Format team damage table
|
||||
# $content_loss_victims = ""
|
||||
# if ($loss_victims.Count -gt 0) {
|
||||
# $content_loss_victims = ":skull::skull: Team Damage :skull::skull:`n" + '```' + ($loss_victims | Format-Table -AutoSize | Out-String) + '```'
|
||||
# }
|
||||
|
||||
# Original message construction variables
|
||||
$losers = $lossmatch[0].stats.name -join ', ' # Join names for display
|
||||
$map = $map_map[$lossmatch[0].mapName]
|
||||
$place = ($lossmatch[0].stats | Select-Object -First 1).winPlace # Get placement from the first player stat
|
||||
$first_player_name = ($lossmatch[0].stats | Select-Object -First 1).name
|
||||
$replay_url = $lossmatch[0].telemetry_url -replace 'https://telemetry-cdn.pubg.com/bluehole-pubg', 'https://chickendinner.gg'
|
||||
$replay_url = $replay_url -replace '-telemetry.json', ''
|
||||
$replay_url = $replay_url + "?follow=$first_player_name" # Follow the first player
|
||||
$match_settings = @"
|
||||
``````
|
||||
match mode $($lossmatch[0].gameMode)
|
||||
match type $($lossmatch[0].matchType)
|
||||
map $($map_map[$lossmatch[0].mapName])
|
||||
id $($lossmatch[0].id)
|
||||
``````
|
||||
"@
|
||||
send-discord-losers -content "We hebben een LOSERT! Geen Kip voor jou! :skull::skull:"
|
||||
send-discord-losers -content ":partying_face::partying_face::partying_face: Helaas, $($losers) :partying_face::partying_face::partying_face:"
|
||||
send-discord-losers -content $match_settings
|
||||
send-discord-losers -content $content_lossstats
|
||||
send-discord-losers -content $content_loss_victims
|
||||
send-discord-losers -content "[2D replay](<$replay_url>)"
|
||||
send-discord-losers -content "Meer match details [DTCH_STATS](<https://dtch.online/matchinfo.php?matchid=$($lossmatch[0].id)>)"
|
||||
}
|
||||
# # Original message construction variables
|
||||
# $losers = $lossmatch[0].stats.name -join ', ' # Join names for display
|
||||
# $map = $map_map[$lossmatch[0].mapName]
|
||||
# $place = ($lossmatch[0].stats | Select-Object -First 1).winPlace # Get placement from the first player stat
|
||||
# $first_player_name = ($lossmatch[0].stats | Select-Object -First 1).name
|
||||
# $replay_url = $lossmatch[0].telemetry_url -replace 'https://telemetry-cdn.pubg.com/bluehole-pubg', 'https://chickendinner.gg'
|
||||
# $replay_url = $replay_url -replace '-telemetry.json', ''
|
||||
# $replay_url = $replay_url + "?follow=$first_player_name" # Follow the first player
|
||||
# $match_settings = @"
|
||||
# ``````
|
||||
# match mode $($lossmatch[0].gameMode)
|
||||
# match type $($lossmatch[0].matchType)
|
||||
# map $($map_map[$lossmatch[0].mapName])
|
||||
# id $($lossmatch[0].id)
|
||||
# ``````
|
||||
# "@
|
||||
# send-discord-losers -content "We hebben een LOSERT! Geen Kip voor jou! :skull::skull:"
|
||||
# send-discord-losers -content ":partying_face::partying_face::partying_face: Helaas, $($losers) :partying_face::partying_face::partying_face:"
|
||||
# send-discord-losers -content $match_settings
|
||||
# send-discord-losers -content $content_lossstats
|
||||
# send-discord-losers -content $content_loss_victims
|
||||
# send-discord-losers -content "[2D replay](<$replay_url>)"
|
||||
# send-discord-losers -content "Meer match details [DTCH_STATS](<https://dtch.online/matchinfo.php?matchid=$($lossmatch[0].id)>)"
|
||||
# }
|
||||
|
||||
|
||||
foreach ($winid in $new_win_matches) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue