1.5.4 • Published 9 months ago
dotagsi v1.5.4
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.5.4
9 months ago
1.5.3
11 months ago
1.5.2
12 months ago
1.5.0
1 year ago
1.4.3
1 year ago
1.4.2
1 year ago
1.4.1
1 year ago
1.4.0
1 year ago
1.3.8
2 years ago
1.3.6
2 years ago
1.3.5
2 years ago
1.3.3
2 years ago
1.1.5
3 years ago
1.1.4
4 years ago
1.1.3
4 years ago
1.1.2
4 years ago
1.1.1
4 years ago
1.1.0
4 years ago
1.0.8
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.0.0
4 years ago