dota2-fork
Version:
A node-steam plugin for Dota 2. Fork with fresh updates
36 lines (30 loc) • 1.77 kB
JavaScript
var Dota2 = require("../index");
/**
* Requests a list of custom game modes for which there are currently lobbies available.
* Requires the GC to be {@link module:Dota2.Dota2Client#event:ready|ready}.
* @alias module:Dota2.Dota2Client#requestJoinableCustomGameModes
* @param {ServerRegion} [server_region=ServerRegion.UNSPECIFIED] - The server region for which you'd like to obtain the joinable custom game modes
*/
Dota2.Dota2Client.prototype.requestJoinableCustomGameModes = function requestJoinableCustomGameModes(server_region) {
// Request list of joinable custom games for a certain region
server_region = server_region || Dota2.ServerRegion.UNSPECIFIED;
this.Logger.debug("Sending joinable custom game modes request");
var payload = new Dota2.schema.CMsgJoinableCustomGameModesRequest({
"server_region": server_region
});
this.sendToGC(Dota2.schema.EDOTAGCMsg.k_EMsgGCJoinableCustomGameModesRequest, payload);
}
// Events
/**
* Emitted in response to a {@link module:Dota2.Dota2Client#requestJoinableCustomGameModes|request for joinable custom game modes}.
* @event module:Dota2.Dota2Client#joinableCustomGameModes
* @param {CMsgJoinableCustomGameModesResponseEntry[]} joinableCustomGameModes - List of joinable custom game modes
*/
// Handlers
var handlers = Dota2.Dota2Client.prototype._handlers;
var onJoinableCustomGameModesResponse = function onJoinableCustomGameModesResponse(message) {
var modes = Dota2.schema.CMsgJoinableCustomGameModesResponse.decode(message);
this.Logger.debug("Received joinable custom game modes");
this.emit("joinableCustomGameModes", modes.game_modes);
};
handlers[Dota2.schema.EDOTAGCMsg.k_EMsgGCJoinableCustomGameModesResponse] = onJoinableCustomGameModesResponse;