1.3.8 • Published 7 months ago
dotagsi v1.3.8
Dota 2 GSI Digest
How does it work?
The GSI object takes raw request from Dota 2 GSI's system, parses this to more comfortable form and calls listeners on certain events. You need to configure GSI file and receiving end yourself.
Installing
For Node and React
npm install dotagsi
Example #1
import express from 'express';
import { DOTA2GSI } from 'dotagsi';
const app = express();
const GSI = new DOTA2GSI();
app.use(express.urlencoded({extended:true}));
app.use(express.raw({limit:'10Mb', type: 'application/json' }));
app.post('/', (req, res) => {
const text = req.body.toString().replace(/"(player|owner)":([ ]*)([0-9]+)/gm, '"$1": "$3"').replace(/(player|owner):([ ]*)([0-9]+)/gm, '"$1": "$3"');
const data = JSON.parse(text);
GSI.digest(data);
res.sendStatus(200);
});
GSI.on('data', dota2 => {
dota2.draft.radiant[0].class;
});
app.listen(3000);
Methods
Method | Description | Example | Returned objects |
---|---|---|---|
digest(GSIData) | Gets raw GSI data from Dota 2 and does magic | GSI.digest(req.body) | Dota 2 Parsed |
on('event', callback) | Sets listener for given event (check them below) | GSI.on('data', data => console.log(data)); |
Beside that, DOTA2GSI implements standard Event Emitter interfaces.
Events
Event | Name | Callback |
---|---|---|
Data incoming | data | (data: CSGO Parsed) => {} |
Objects
Faction
dire
or radiant
Item Type
slot
or stash
or teleport
or neutral
Wearable Type
wearable
or style
Dota 2 Parsed
Property | Type |
---|---|
provider | Provider |
map | Map |
player | Player or null |
players | Array of Players |
buildings | Array of Buldings |
draft | Draft |
roshan | Roshan |
outposts | Outposts |
events | Array of Events |
neutral_items | NeutralItems or null |
Team Extension
Property | Type |
---|---|
id | string |
name | string |
country | string or null |
logo | string or null |
map_score | number |
Player Extension
Property | Type |
---|---|
id | string |
name | string |
steramid | string |
realName | string or null |
country | string or null |
avatar | string or null |
Building
Property | Type |
---|---|
health | number |
max_health | number |
faction | Faction |
attack | melee or range or null |
type | tower or rax or fort |
side | good or bad |
position | top or mid or bot or null |
number | number or null |
Provider
Property | Type |
---|---|
name | Dota 2 |
appid | 570 |
version | number |
timestamp | number |
Map
Property | Type |
---|---|
matchid | string |
name | string |
game_time | number |
clock_time | number |
daytime | boolean |
nightstalker_night | boolean |
game_state | string |
paused | boolean |
win_team | string |
customgamename | string |
roshan_state | string |
roshan_state_end_seconds | number |
radiant_win_chance | number |
radiant | Team |
dire | Team |
Roshan
Property | Type |
---|---|
alive | boolean |
health | number |
max_health | number |
phase_time_remaining | number |
spawn_phase | number |
xpos | number |
ypos | number |
yaw | number |
items_drop | Map or Item Names |
Outposts
Property | Type |
---|---|
outsideNorth | Faction or null |
jungleNorth | Faction or null |
jungleSouth | Faction or null |
outsideSouth | Faction or null |
Event
Property | Type |
---|---|
event_type | string |
game_time | number |
various other values, depending on event_type | unknown |
Neutral Items
Property | Type |
---|---|
team2 | Team Neutral Items Tiers |
team3 | Team Neutral Items Tiers |
tier0 | Neutral Items Tier Summary |
tier1 | Neutral Items Tier Summary |
tier2 | Neutral Items Tier Summary |
tier3 | Neutral Items Tier Summary |
tier4 | Neutral Items Tier Summary |
Neutral Items Tier Summary
Property | Type |
---|---|
tier | number |
max_count | number |
drop_after_time | number |
Team Neutral Items Tiers
Property | Type |
---|---|
items_found | number |
tier0 | Neutral Items In Tier |
tier1 | Neutral Items In Tier |
tier2 | Neutral Items In Tier |
tier3 | Neutral Items In Tier |
tier4 | Neutral Items In Tier |
Team Neutral Items in Tier
Property | Type |
---|---|
item0 | Single Neutral Item |
item1 | Single Neutral Item |
item2 | Single Neutral Item |
item3 | Single Neutral Item |
item4 | Single Neutral Item |
completion_time | number or null |
Single Neutral Item
Property | Type |
---|---|
name | string |
tier | number |
state | 'stash' | 'unknown' | 'equipped' |
player_id | number or null |
Team
Property | Type |
---|---|
ward_purchase_cooldown | number |
name | string |
map_score | number |
extra | Custom object |
id | string or null |
country | string or null |
logo | string or null |
Player
Property | Type |
---|---|
steamid | string |
name | string |
realName | string or null |
country | string or null |
avatar | string or null |
extra | Custom object |
hero | Hero or null |
courier | Courier or null |
abilities | Array of Abilities |
items | Array of Items |
wearables | Array of Wearables |
kill_list | Array of KillEntries |
activity | string |
kills | number |
deaths | number |
assists | number |
last_hits | number |
denies | number |
kill_streak | number |
commands_issued | number |
team_name | string |
gold | number |
gold_reliable | number |
gold_unreliable | number |
gold_from_hero_kills | number |
gold_from_creep_kills | number |
gold_from_income | number |
gold_from_shared | number |
gpm | number |
xpm | number |
net_worth | number |
hero_damage | number |
wards_purchased | number |
wards_placed | number |
wards_destroyed | number |
runes_activated | number |
camps_stacked | number |
support_gold_spent | number |
consumable_gold_spent | number |
item_gold_spent | number |
gold_lost_to_death | number |
gold_spent_on_buybacks | number |
Hero
Property | Type |
---|---|
id | number |
xpos? | number |
ypos? | number |
level? | number |
name? | string |
xp? | number |
alive? | boolean |
respawn_seconds? | number |
buyback_cost? | number |
buyback_cooldown? | number |
health? | number |
max_health? | number |
health_percent? | number |
mana? | number |
max_mana? | number |
mana_percent? | number |
silenced? | boolean |
stunned? | boolean |
disarmed? | boolean |
magicimmune? | boolean |
hexed? | boolean |
muted? | boolean |
mana? | boolean |
break? | boolean |
aghanims_scepter | boolean |
aghanims_shard? | boolean |
smoked? | boolean |
has_debuff? | boolean |
selected_unit? | boolean |
talent_1? | boolean |
talent_2? | boolean |
talent_3? | boolean |
talent_4? | boolean |
talent_5? | boolean |
talent_6? | boolean |
talent_7? | boolean |
talent_8? | boolean |
Courier
Property | Type |
---|---|
health | number |
max_health | number |
alive | boolean |
boost | boolean |
flying_upgrade | boolean |
shield | boolean |
respawn_time_remaining | number |
xpos | number |
ypos | number |
yaw | number |
items | Array of Courier Item |
lost_items | Array of Courier Item |
owner | number |
team? | Faction |
Courier Item
Property | Type |
---|---|
owner | number |
name | string |
Ability
Property | Type |
---|---|
id | number |
name | string |
level | number |
can_cast | boolean |
passive | boolean |
ability_active | boolean |
ultimate | boolean |
cooldown | number |
charges? | number |
max_charges? | number |
charge_cooldown? | number |
Item
Property | Type |
---|---|
id | number |
name | string |
type | Item Type |
can_cast? | boolean |
passive? | boolean |
item_level? | number |
purchaser? | number |
cooldown? | number |
charges? | number |
Draft
Property | Type |
---|---|
activeteam | number |
pick | boolean |
activeteam_time_remaining | number |
radiant | Team Draft |
dire | Team Draft |
Team Draft
Property | Type |
---|---|
home_team | boolean |
bonus_time | number |
picks | Array of Draft Entries |
Draft Entry
Property | Type |
---|---|
type | pick or ban |
player_id | number |
class | string |
order | number |
Wearable
Property | Type |
---|---|
id | number |
type | Wearable Type |
value | number |
1.3.8
7 months ago
1.3.6
11 months ago
1.3.5
11 months ago
1.3.3
12 months ago
1.1.5
1 year ago
1.1.4
3 years ago
1.1.3
3 years ago
1.1.2
3 years ago
1.1.1
3 years ago
1.1.0
3 years ago
1.0.8
3 years ago
1.0.2
3 years ago
1.0.1
3 years ago
1.0.7
3 years ago
1.0.6
3 years ago
1.0.5
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.0
3 years ago