Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bot doesn't leave connected player list after PlayerDisconnected event (it was working on v4.0.1) #514

Closed
cooltg66 opened this issue Feb 21, 2024 · 1 comment · Fixed by #515

Comments

@cooltg66
Copy link

Describe the bug
Bot doesn't leave connected player list after PlayerDisconnected event (on master (v4.0.4-0.20240221103532-4b53a6146f8c), it was working on v4.0.1)

To Reproduce
Download link to an affected demo: https://pub-de8f82f716174101a8e11da069a07907.r2.dev/demo_with_bots.dem
(https://www.faceit.com/en/cs2/room/1-d3fea1aa-a28c-4c70-8732-9d1f493f4b53)

Code:

package main

import (
	"fmt"
	"log"
	"os"

	dem "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs"
	events "github.com/markus-wa/demoinfocs-golang/v4/pkg/demoinfocs/events"
)

func main() {
	f, err := os.Open("C:\\demo_to_parse\\demo_with_bots.dem")
	if err != nil {
		log.Panic("failed to open demo file: ", err)
	}
	defer f.Close()

	p := dem.NewParser(f)
	defer p.Close()

	p.RegisterEventHandler(func(e events.PlayerDisconnected) {
		fmt.Printf("PlayerDisconnected %d %d %s %d\n", p.GameState().IngameTick(), e.Player.SteamID64, e.Player.Name, e.Player.Team)
		fmt.Println("PARTICIPANTS:")
		for _, player := range p.GameState().Participants().Connected() {
			fmt.Printf("Player %d %d %s %d\n", p.GameState().IngameTick(), player.SteamID64, player.Name, player.Team)
		}
		fmt.Println("")
	})

	p.RegisterEventHandler(func(e events.BotConnect) {

		fmt.Printf("BotConnect %d %d %s %d\n", p.GameState().IngameTick(), e.Player.SteamID64, e.Player.Name, e.Player.Team)
		fmt.Println("PARTICIPANTS:")
		for _, player := range p.GameState().Participants().Connected() {
			fmt.Printf("Player %d %d %s %d\n", p.GameState().IngameTick(), player.SteamID64, player.Name, player.Team)
		}
		fmt.Println("")
	})

	p.RegisterEventHandler(func(e events.PlayerConnect) {

		fmt.Printf("PlayerConnect %d %d %s %d\n", p.GameState().IngameTick(), e.Player.SteamID64, e.Player.Name, e.Player.Team)
		fmt.Println("PARTICIPANTS:")
		for _, player := range p.GameState().Participants().Connected() {
			fmt.Printf("Player %d %d %s %d\n", p.GameState().IngameTick(), player.SteamID64, player.Name, player.Team)
		}
		fmt.Println("")
	})

	// Parse to end
	err = p.ParseToEnd()
	if err != nil {
		log.Panic("failed to parse demo: ", err)
	}
}

Expected behavior
On v4.0.1 sample code prints:

BotConnect 3853 0 Crew 2
PARTICIPANTS:
Player 3853 76561199051685373 ArT_VeetoO 3
Player 3853 76561198837009234 skidib 2
Player 3853 76561198114251326 Fenr1z 3
Player 3853 76561198164447960 wilcobijlen 2
Player 3853 76561198101608281 wAkexD 2
Player 3853 76561199087147553 MrBlueee 3
Player 3853 0 Crew 2
Player 3853 76561199006865240 sem1_____ 3
Player 3853 76561198168492708 bRE4My 3
Player 3853 76561198343710146 JiujiG_ 2

PlayerDisconnected 5655 0 Crew 2
PARTICIPANTS:
Player 5655 76561198101608281 wAkexD 2
Player 5655 76561198114251326 Fenr1z 3
Player 5655 76561198164447960 wilcobijlen 2
Player 5655 76561199087147553 MrBlueee 3
Player 5655 76561199006865240 sem1_____ 3
Player 5655 76561198168492708 bRE4My 3
Player 5655 0 Crew 2
Player 5655 76561199051685373 ArT_VeetoO 3
Player 5655 76561198837009234 skidib 2
Player 5655 76561198343710146 JiujiG_ 2

PlayerConnect 5655 76561198171298202 Deth77 2
PARTICIPANTS:
Player 5655 76561198837009234 skidib 2
Player 5655 76561198114251326 Fenr1z 3
Player 5655 76561198164447960 wilcobijlen 2
Player 5655 76561199006865240 sem1_____ 3
Player 5655 76561199051685373 ArT_VeetoO 3
Player 5655 76561198343710146 JiujiG_ 2
Player 5655 76561198171298202 Deth77 2
Player 5655 76561198101608281 wAkexD 2
Player 5655 76561199087147553 MrBlueee 3
Player 5655 76561198168492708 bRE4My 3

On master (v4.0.4-0.20240221103532-4b53a6146f8c) sample code prints:

BotConnect 3853 0 Crew 0
PARTICIPANTS:
Player 3853 76561198837009234 skidib 2
Player 3853 76561199006865240 sem1_____ 3
Player 3853 76561198164447960 wilcobijlen 2
Player 3853 0 SourceTV 0
Player 3853 76561199051685373 ArT_VeetoO 3
Player 3853 76561198343710146 JiujiG_ 2
Player 3853 76561199087147553 MrBlueee 3
Player 3853 76561198114251326 Fenr1z 3
Player 3853 76561198101608281 wAkexD 2
Player 3853 76561198168492708 bRE4My 3
Player 3853 0 Crew 0

PlayerDisconnected 5655 0 Crew 2
PARTICIPANTS:
Player 5655 76561199051685373 ArT_VeetoO 3
Player 5655 76561199087147553 MrBlueee 3
Player 5655 76561198168492708 bRE4My 3
Player 5655 0 Crew 2
Player 5655 76561198837009234 skidib 2
Player 5655 76561199006865240 sem1_____ 3
Player 5655 76561198164447960 wilcobijlen 2
Player 5655 0 SourceTV 0
Player 5655 76561198101608281 wAkexD 2
Player 5655 76561198343710146 JiujiG_ 2
Player 5655 76561198114251326 Fenr1z 3

PlayerConnect 5655 76561198171298202 Deth77 2
PARTICIPANTS:
Player 5655 76561199087147553 MrBlueee 3
Player 5655 76561198837009234 skidib 2
Player 5655 76561199006865240 sem1_____ 3
Player 5655 76561198164447960 wilcobijlen 2
Player 5655 0 Crew 2
Player 5655 0 SourceTV 0
Player 5655 76561198101608281 wAkexD 2
Player 5655 76561198343710146 JiujiG_ 2
Player 5655 76561198168492708 bRE4My 3
Player 5655 76561198114251326 Fenr1z 3
Player 5655 76561199051685373 ArT_VeetoO 3
Player 5655 76561198171298202 Deth77 2

Library version
master (v4.0.4-0.20240221103532-4b53a6146f8c)

Additional context
This is probably linked to #511

Many thanks :)

@markus-wa
Copy link
Owner

Fixed in v4.0.4 - go get github.com/markus-wa/demoinfocs-golang/[email protected] to receive

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants