jiricapek/clarity


Comically fast Java Dota 2 replay parser.

Download


Step 1. Add the JitPack repository to your build file

Add it in your root settings.gradle at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url 'https://jitpack.io' }
		}
	}

Add it in your settings.gradle.kts at the end of repositories:

	dependencyResolutionManagement {
		repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
		repositories {
			mavenCentral()
			maven { url = uri("https://jitpack.io") }
		}
	}

Add to pom.xml

	<repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>

Add it in your build.sbt at the end of resolvers:

 
    resolvers += "jitpack" at "https://jitpack.io"
        
    

Add it in your project.clj at the end of repositories:

 
    :repositories [["jitpack" "https://jitpack.io"]]
        
    

Step 2. Add the dependency

	dependencies {
		implementation 'com.github.jiricapek:clarity:2.1.10'
	}
	dependencies {
		implementation("com.github.jiricapek:clarity:2.1.10")
	}
	<dependency>
	    <groupId>com.github.jiricapek</groupId>
	    <artifactId>clarity</artifactId>
	    <version>2.1.10</version>
	</dependency>

                            
    libraryDependencies += "com.github.jiricapek" % "clarity" % "2.1.10"
        
        

                            
    :dependencies [[com.github.jiricapek/clarity "2.1.10"]]
        
        

Readme


Clarity 2

Clarity is a parser for Dota 2 replay files written in Java.

Replay Data

clarity produces the following data you might be interested in from a replay. Choose from:

  • combat log: a detailed log of events that happened in the game
  • entities: in-game things like heroes, players, and creeps
  • modifiers: auras and effects on in-game entities
  • temporary entities: fire-and-forget things the game server tells the client about*
  • user messages: many different things, including spectator clicks, global chat messages, overhead events (like last-hit gold, and much more), particle systems, etc.*
  • game events: lower-level messages like Dota TV control (directed camera commands, for example), etc.*
  • voice data: commentary in pro matches*
  • sounds: sounds that occur in the game*
  • overview: end-of-game summary, including players, game winner, match id, duration, and often picks/bans

* unprocessed: data is provided as original protobuf message object

Requirements

  • Java 7 or newer
  • Maven

Usage

Fetch the current stable version (2.1) from Maven Central with

<dependency>
	<groupId>com.skadistats</groupId>
	<artifactId>clarity</artifactId>
	<version>2.1</version>
</dependency>

Clarity 2.2 is work in progress and only available as a snapshot, so you got to add a pointer to the repository to your pom.xml (see the pom.xml of clarity-examples, which already does that)

To add the snapshot repository, add the following:

<repositories>
	<repository>
		<id>sonatype.oss.snapshots</id>
		<name>Sonatype OSS Snapshot Repository</name>
		<url>http://oss.sonatype.org/content/repositories/snapshots</url>
		<releases>
			<enabled>false</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
	</repository>
</repositories>

and then fetch the dependency with:

<dependency>
	<groupId>com.skadistats</groupId>
	<artifactId>clarity</artifactId>
	<version>2.2-SNAPSHOT</version>
</dependency>

Example Code

For example code, please see the the separate project clarity-examples.

License

See LICENSE in the project root.