Skip to content

Releases: markus-wa/demoinfocs-golang

v3.0.0-beta.4

23 Jun 11:19
82e8cba
Compare
Choose a tag to compare
v3.0.0-beta.4 Pre-release
Pre-release

The primary purpose of v3 is to upgrade/replace dependencies, including some which are deprecated and/or dependencies with security vulnerabilities. While the parser itself has no known vulnerabilities and no known code paths to vulnerabilities in dependencies, it's important to keep on top of this nonetheless.
As secondary objectives we want to modernise some of the API and enable usage of generics for the project (go1.18).

Installation

go get github.com/markus-wa/demoinfocs-golang/[email protected]

Migration

change all imports of v2 to v3 - so github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs -> github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs

SED command: sed -i 's#github.com/markus-wa/demoinfocs-golang/v2#github.com/markus-wa/demoinfocs-golang/v3#g' **/*.go

Breaking Changes

  • Removed code marked as deprecated from codebase
  • Increased minimum Go requirement from go1.11 to go1.18
  • Upgraded from the protobuf v1 API to v2 (https://go.dev/blog/protobuf-apiv2)
    • This will affect users that rely on raw net messages (i.e. import github.com/markus-wa/demoinfocs-golang/v2/demoinfocs/msg)
    • Stopped using gogo-protobuf (this has no negative performance impact 🥳)
  • Removed /assets and /pkg/demoinfocs/metadata (was mostly used for examples)
  • Moved internal/constants to pkg/demoinfocs/constants
  • Deps: replaced dustin/go-heatmap with markus-wa/go-heatmap to avoid replace directive (examples only)

Changes

  • Upgraded all dependencies to latest version (including security fixes)

Please let me know if you encounter any issues.
As this is a pre-release / beta, it is not covered by semver guarantees

Fixes since v3.0.0-beta.3

  • Fixed compilation error for debug code (-tags debugdemoinfocs)
  • Fixed some linting issues

v3.0.0-beta.3

22 Jun 22:18
9ebfcca
Compare
Choose a tag to compare
v3.0.0-beta.3 Pre-release
Pre-release

The primary purpose of v3 is to upgrade/replace dependencies, including some which are deprecated and/or dependencies with security vulnerabilities. While the parser itself has no known vulnerabilities and no known code paths to vulnerabilities in dependencies, it's important to keep on top of this nonetheless.
As secondary objectives we want to modernise some of the API and enable usage of generics for the project (go1.18).

Installation

go get github.com/markus-wa/demoinfocs-golang/[email protected]

Migration

change all imports of v2 to v3 - so github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs -> github.com/markus-wa/demoinfocs-golang/v3/pkg/demoinfocs

SED command: sed -i 's#github.com/markus-wa/demoinfocs-golang/v2#github.com/markus-wa/demoinfocs-golang/v3#g' **/*.go

Breaking Changes

  • Removed code marked as deprecated from codebase
  • Increased minimum Go requirement from go1.11 to go1.18
  • Upgraded from the protobuf v1 API to v2 (https://go.dev/blog/protobuf-apiv2)
    • This will affect users that rely on raw net messages (i.e. import github.com/markus-wa/demoinfocs-golang/v2/demoinfocs/msg)
    • Stopped using gogo-protobuf (this has no negative performance impact 🥳)
  • Removed /assets and /pkg/demoinfocs/metadata (was mostly used for examples)
  • Moved internal/constants to pkg/demoinfocs/constants
  • Deps: replaced dustin/go-heatmap with markus-wa/go-heatmap to avoid replace directive (examples only)

Changes

  • Upgraded all dependencies to latest version (including security fixes)

Please let me know if you encounter any issues.
As this is a pre-release / beta, it is not covered by semver guarantees

v2.13.3

04 Jun 17:48
8c133b3
Compare
Choose a tag to compare

Changes

  • Examples heatmap and nade-trajectories are now using https://radar-overviews.csgo.saiko.tech/... to get the correct radar image and offset / coordinate translations for any historic map version of official maps. - see also https://github.com/saiko-tech/csgo-centrifuge

v2.13.2

14 Apr 11:56
3df9b7b
Compare
Choose a tag to compare

Fixes

  • Started raising ParserWarn instead of error on bad net-message decryption key (see #326)

v2.13.1

03 Apr 20:23
17745ca
Compare
Choose a tag to compare

In Support of Ukraine

This release is dedicated to all Ukrainians affected by Putin's war.

Ukrainian Flag

Fixes

  • Fixed MatchInfoDecryptionKey() returning a bad decryption key in certain cases (see #338 & #339)

War in Ukraine

Some of my Ukrainian colleagues in the eSports and Tech scene have been directly affected by the crisis and I hope to be able to raise awareness about their situation.

If you enjoy this project, please consider supporting the Global Giving Ukraine Crisis Relief Fund or charity to help the humanitarian crisis happening in the Ukraine right now (a list of other top rated charities can be found here)

Further, please voice your support for more sanctions against Russia in your country (such as sanctions for Gas & Oil) - it's the most effective way to put pressure on Putin and the Russian regime.

To our Russian Friends:
Please read and share this article: https://www.theatlantic.com/ideas/archive/2022/03/schwarzenegger-russia-ukraine-war-message/627100/

v2.13.0

27 Jan 19:10
d8f5cb9
Compare
Choose a tag to compare

Support for encrypted net-messages 🥳

This means we can now read chat messages from Valve Matchmaking demos! (and more!)

Main PR: #323

New Features

Example

package main

import (
	"io/ioutil"
	"log"
	"os"

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

func checkErr(err error) {
	if err != nil {
		panic(err)
	}
}

func main() {
	infoF, err := os.Open("test/cs-demos/match730_003528806449641685104_1453182610_271.dem.info")
	checkErr(err)

	b, err := ioutil.ReadAll(infoF)
	checkErr(err)

	k, err := dem.MatchInfoDecryptionKey(b)
	checkErr(err)

	f, err := os.Open("test/cs-demos/match730_003528806449641685104_1453182610_271.dem")
	checkErr(err)

	defer f.Close()

	cfg := dem.DefaultParserConfig
	cfg.NetMessageDecryptionKey = k

	p := dem.NewParserWithConfig(f, cfg)

	p.RegisterEventHandler(func(message events.ChatMessage) {
		log.Println(message)
	})

	err = p.ParseToEnd()
	checkErr(err)
}

v2.12.2

26 Jan 12:33
14c6b60
Compare
Choose a tag to compare

Fixes

  • Fixed ParseToEnd() not returning errors that happen during SyncAllQueues()
  • Fixed RankUpdate event failing to get the correct player instance when a player re-connected during the game

v2.12.1

17 Jan 13:32
744066d
Compare
Choose a tag to compare

Fixes

  • Changed EquipmentType.String() human readable name for EqP250 from p250 to P250

v2.12.0

21 Oct 22:05
ce1ecd5
Compare
Choose a tag to compare

New Features

  • Added ParserConfig.IgnoreErrBombsiteIndexNotFound flag to ignore errors about bombsite indexes that can't be found (#315 - see also #314)

v2.11.1

17 Oct 12:29
b2c45b1
Compare
Choose a tag to compare

Fixes

  • fixed BombPlantBegin.Site always being BombsiteA for new demos (#313)