Steam4j

A client library for Steam's TF2 Backpack/Schema API.

License

License

GroupId

GroupId

uk.co.solong
ArtifactId

ArtifactId

steam4j
Last Version

Last Version

2.0.22
Release Date

Release Date

Type

Type

jar
Description

Description

Steam4j
A client library for Steam's TF2 Backpack/Schema API.
Source Code Management

Source Code Management

https://github.com/danielburrell/steam4j

Download steam4j

How to add to project

<!-- https://jarcasting.com/artifacts/uk.co.solong/steam4j/ -->
<dependency>
    <groupId>uk.co.solong</groupId>
    <artifactId>steam4j</artifactId>
    <version>2.0.22</version>
</dependency>
// https://jarcasting.com/artifacts/uk.co.solong/steam4j/
implementation 'uk.co.solong:steam4j:2.0.22'
// https://jarcasting.com/artifacts/uk.co.solong/steam4j/
implementation ("uk.co.solong:steam4j:2.0.22")
'uk.co.solong:steam4j:jar:2.0.22'
<dependency org="uk.co.solong" name="steam4j" rev="2.0.22">
  <artifact name="steam4j" type="jar" />
</dependency>
@Grapes(
@Grab(group='uk.co.solong', module='steam4j', version='2.0.22')
)
libraryDependencies += "uk.co.solong" % "steam4j" % "2.0.22"
[uk.co.solong/steam4j "2.0.22"]

Dependencies

compile (6)

Group / Artifact Type Version
commons-lang : commons-lang jar
com.fasterxml.jackson.core : jackson-databind jar
org.springframework : spring-web jar
org.springframework.batch : spring-batch-core jar
org.slf4j : slf4j-api jar
uk.co.solong : collections jar 0.0.2

test (2)

Group / Artifact Type Version
junit : junit jar
org.hamcrest : hamcrest-all jar

Project Modules

  • steam4j-mockapi
  • steam4j-tf2client
  • steam4j-auth

steam4j

Steam4j is a Java based 3rd party client library for accessing the Steam API.

##Features

  • Clean, simple data access layer and data objects
  • Access to underlying API data for ultimate control
  • Threadsafe Spring-like template-based data access objects.
  • Built in schema caching based on 'last-modified' headers. Forced refresh available.
  • Ultra fast serialisation via Jackson - 700 nanoseconds per 2000 slot backpack.
  • Simplified access to the most common item attributes.
  • Compatible with services like mockable.io for easy testing.
  • Built in retry logic (switched off by default)
  • Limiter capabilities to comply with Steam's 100,000 calls per day limit (unlimited by default)

##Quickstart

###Maven

<dependency>
    <groupId>uk.co.solong</groupId>
    <artifactId>steam4j</artifactId>
    <version>2.0.17</version>
</dependency>

Collections: (only required to make use of Limiter capabilities)

<dependency>
    <groupId>uk.co.solong</groupId>
    <artifactId>collections</artifactId>
    <version>0.0.2</version>
</dependency>

###Retrieving a backpack

TF2Template dao = new TF2Template("API_KEY_HERE");
TF2Backpack backpack = dao.getPlayerItems(76561197971384027L);
if (Status.SUCCESS.equals(backpack.getStatus())){
    for (TF2Item item: backpack.getItems()) {
        System.out.println(item.getLevel());
        //...
    }
}

###Retrieving the schema

TF2Template dao = new TF2Template("API_KEY_HERE");
TF2Schema schema = dao.getSchema();
if (Status.SUCCESS.equals(schema.getStatus())){
    List<TF2SchemaQuality> qualities = schema.getActiveQualityMap();
}

###Spring JavaConfig Usage

@Configuration
public class SteamDaoConfig {

    @Value("${steam.key}")
    private String key;

    @Bean
    public TF2Template steamDao() {
        boolean autoRetry = true;
        TF2Template steamDao = new TF2Template(key, autoRetry);
        Limiter limiter = new SimpleLimiter(100000,Duration.standardDays(1));
        steamDao.setLimiter(limiter);
        return steamDao;
    }
}

##Performance Highlights

  • Deserialize a full backpack containing 2000 items in under 700 nanoseconds.
  • Over 1420 full size backpacks per second per thread.

##Legal Steam4j and solong.co.uk are unaffiliated with steampowered.com. Any trademarks such as Team Fortress 2, Steam, Valve are copyright of their respective owners.

Versions

Version
2.0.22
2.0.21
2.0.18
2.0.17
2.0.16
2.0.15