@csegames/camelot-unchained
Version:
Camelot Unchained Client Library
1,725 lines (1,533 loc) • 51.4 kB
text/typescript
/* tslint:disable */
/* GENERATED FILE -- DO NOT EDIT */
/**
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
import { request as xhrRequest, RequestResult } from '../utils/request';
export interface RequestConfig {
url: string;
headers?: {[key:string]:string};
}
export interface Status {
id: string;
name: string;
icon: string;
description: string;
}
export interface Health {
current: number;
max: number;
wounds: number;
}
export interface CurrentMax {
current: number;
max: number;
}
export interface GroupMemberState {
type: string;
id: string;
faction: Faction;
name: string;
isAlive: boolean;
position: Vec3f;
status: Status[];
race: Race;
gender: Gender;
health: Health[];
stamina: CurrentMax;
blood: CurrentMax;
displayOrder: number;
warbandID: string;
}
export interface LoginFailed {
Code: FieldCodes;
Message: string;
}
export interface LoginThrottled {
Code: FieldCodes;
Message: string;
}
export interface ProgressionResult {
Result: ProgressionResultCode;
IsSuccess: boolean;
Details: string;
}
export interface QueueStatusMessage {
status: string;
numContributors: number;
maxContributors: number;
blueprints: QueuedBlueprintMessage[];
}
export interface QueuedBlueprintMessage {
name: string;
percentComplete: number;
estTimeRemaining: number;
subName: string;
amtNeeded: number;
}
export interface ProgressionError {
ProgressionResult: ProgressionResult;
Message: string;
ResultCode: ProgressionResultCode;
Code: FieldCodes;
}
export interface SecureTradeError {
SecureTradeResult: ModifySecureTradeResult;
Message: string;
ResultCode: ModifySecureTradeResultCode;
Code: FieldCodes;
}
export interface ModifyVoxJobError {
VoxJobResult: ModifyVoxJobResult;
Message: string;
VoxJobCode: ModifyVoxJobResultCode;
Code: FieldCodes;
}
export interface MoveItemError {
MoveItemResult: MoveItemResult;
Message: string;
MoveItemCode: MoveItemResultCode;
Code: FieldCodes;
}
export interface ModifyItemError {
ModifyItemResult: ModifyItemResult;
Message: string;
ReanameItemCode: ModifyItemResultCode;
Code: FieldCodes;
}
export interface ModifyPlotError {
ModifyPlotResult: ModifyPlotResult;
Message: string;
MoveItemCode: ModifyPlotResultCode;
Code: FieldCodes;
}
export interface GroupActionError {
Actions: IActionError[];
Code: FieldCodes;
Message: string;
}
export interface ModifyItemResult {
Code: ModifyItemResultCode;
Message: string;
}
export interface ModifySecureTradeResult {
Result: ModifySecureTradeResultCode;
IsSuccess: boolean;
Details: string;
SecureTradeID: string;
}
export interface MoveItemRequest {
MoveItemID: string;
StackHash: string;
UnitCount: number;
To: MoveItemRequestLocation;
From: MoveItemRequestLocation;
}
export interface MoveItemRequestLocation {
CharacterID: string;
EntityID: string;
Position: number;
ContainerID: string;
DrawerID: string;
GearSlotIDs: string[];
VoxSlot: SubItemSlot;
BuildingID: string;
WorldPosition: Vec3F;
Rotation: Euler3f;
Location: MoveItemRequestLocationType;
}
export interface MoveItemResult {
MovedItemIDs: string[];
CreatedEntityID: string;
Code: MoveItemResultCode;
Message: string;
}
export interface ModifyVoxJobResult {
Result: ModifyVoxJobResultCode;
IsSuccess: boolean;
Details: string;
MovedItemID: string;
DiscoveredRecipeIDs: string[];
}
export interface IGroupInvite {
Code: string;
Shard: number;
Status: InviteStatus;
TargetsID128: string;
ForGroup: string;
ForGroupType: GroupTypes;
Created: string;
MaxUses: number;
Uses: number;
DurationTicks: number;
}
export interface IActionError {
Code: ActionErrorCode;
Message: string;
}
export interface MessageOfTheDay {
Title: string;
HTMLContent: string;
Duration: number;
Channels: number[];
ChannelsAsLongs: number[];
ID: string;
UtcDisplayStart: string;
UtcDisplayEnd: string;
UtcCreated: string;
}
export interface PatchNote {
Channels: number[];
ChannelsAsLongs: number[];
HTMLContent: string;
Title: string;
PatchNumber: string;
ID: string;
UtcDisplayStart: string;
UtcDisplayEnd: string;
UtcCreated: string;
}
export interface BaseContentModel {
ID: string;
UtcDisplayStart: string;
UtcDisplayEnd: string;
UtcCreated: string;
}
export interface PatcherAlert {
Message: string;
ID: string;
UtcDisplayStart: string;
UtcDisplayEnd: string;
UtcCreated: string;
}
export interface PatcherHero {
HTMLContent: string;
Priority: number;
ID: string;
UtcDisplayStart: string;
UtcDisplayEnd: string;
UtcCreated: string;
}
export interface ModifyPlotResult {
Code: ModifyPlotResultCode;
Message: string;
QueueStatus: QueueStatusMessage;
}
export interface Euler3f {
roll: number;
pitch: number;
yaw: number;
x: number;
y: number;
z: number;
}
export interface Vec2f {
x: number;
y: number;
}
export interface Vec3f {
x: number;
y: number;
z: number;
}
export interface SecureTradeItem {
ItemID: string;
UnitCount: number;
}
export interface ArchetypeInfo {
description: string;
faction: Faction;
id: Archetype;
name: string;
}
export interface Channel {
ID: number;
Name: string;
Description: string;
Permissions: PatchPermissions;
}
export interface SimpleCharacter {
archetype: Archetype;
faction: Faction;
gender: Gender;
id: string;
lastLogin: string;
name: string;
race: Race;
shardID: number;
}
export interface Character {
archetype: Archetype;
attributes: { [key: string]: number; };
traitIDs: string[];
faction: Faction;
gender: Gender;
id: string;
lastLogin: string;
name: string;
race: Race;
shardID: number;
}
export interface ControlGameState {
arthurianScore: number;
controlPoints: ControlPoint[];
gameState: number;
timeLeft: number;
tuathaDeDanannScore: number;
vikingScore: number;
}
export interface ControlPoint {
faction: string;
id: string;
size: string;
x: number;
y: number;
}
export interface FactionInfo {
description: string;
id: number;
name: string;
shortName: string;
}
export interface PatcherAlert {
id: string;
message: string;
utcDateEnd: string;
utcDateStart: string;
}
export interface PatcherHeroContent {
content: string;
id: string;
priority: number;
utcDateEnd: string;
utcDateStart: string;
}
export interface PlayerAttributeOffset {
race: Race;
gender: Gender;
attributeOffsets: { [key: string]: number; };
}
export interface PlayerPresence {
characterID: string;
connectedZoneInstanceIDs: number[];
activeZoneInstanceID: number;
desiredZoneInstanceID: number;
}
export interface PlayerStatAttribute {
baseValue: number;
derivedFrom: string;
description: string;
maxOrMultipler: number;
name: string;
type: PlayerStatType;
units: string;
}
export interface RaceInfo {
name: string;
description: string;
faction: Faction;
id: Race;
}
export interface ServerModel {
accessLevel: AccessType;
channelID: number;
channelPatchPermissions: number;
host: string;
name: string;
playerMaximum: number;
shardID: number;
status: ServerStatus;
apiHost: string;
}
export interface ServerPresence {
address: string;
zoneResourceID: number;
zoneInstanceID: number;
shardID: number;
zoneBoundsMax: Vec2f;
zoneBoundsMin: Vec2f;
restrictToFaction: Faction;
isStartingZone: boolean;
isHidden: boolean;
isMainInstance: boolean;
}
export interface ServerState {
controlGameState: ControlGameState;
playerCounts: PlayerCounts;
spawnPoints: SpawnPoint[];
}
export interface SpawnPoint {
id: string;
faction: Faction;
position: Vec3f;
}
export interface PlayerCounts {
arthurian: number;
maxPlayers: number;
tuatha: number;
viking: number;
}
export interface StartingServer {
Address: string;
ZoneInstanceID: number;
}
export interface ZoneInfo {
ID: string;
Name: string;
Address: string;
Bounds: string;
}
export interface Trait {
id: string;
name: string;
description: string;
icon: string;
points: number;
prerequisites: string[];
}
export interface OptionalAndRequiredTraits {
required: string[];
optional: string[];
}
export interface ExclusiveTraits {
ids: string[];
minRequired: number;
maxAllowed: number;
}
export interface TraitList {
traits: Trait[];
factions: { [key: string]: OptionalAndRequiredTraits; };
races: { [key: string]: OptionalAndRequiredTraits; };
archetypes: { [key: string]: OptionalAndRequiredTraits; };
ranks: string[][];
exclusivity: ExclusiveTraits[];
}
export interface WarbandMember {
additionalPermissions: string[];
archetype: Archetype;
avatar: string;
blood: CurrentMaxValue;
characterID: string;
gender: Gender;
health: CurrentMaxValue[];
joined: string;
name: string;
panic: CurrentMaxValue;
parted: string;
race: Race;
rank: string;
stamina: CurrentMaxValue;
temperature: Temperature;
wounds: number[];
}
export interface ApiErrorResponse {
Code: number;
Message: string;
FieldCodes: IFieldCode[];
}
export interface BadRequestFieldCode {
Code: FieldCodes;
Message: string;
}
export interface UnspecifiedRequestError {
Code: FieldCodes;
Message: string;
}
export interface InvalidModel {
ModelErrors: ModelError[];
Code: FieldCodes;
Message: string;
}
export interface ModelError {
Message: string;
ParamName: string;
TypeName: string;
}
export interface ExecutionErrorFieldCode {
Code: FieldCodes;
Message: string;
}
export interface UnspecifiedExecutionError {
Code: FieldCodes;
Message: string;
}
export interface TimeoutError {
Code: FieldCodes;
Message: string;
}
export interface UnhandledExecutionException {
Exception: string;
Code: FieldCodes;
Message: string;
}
export interface DoesNotExist {
Code: FieldCodes;
Message: string;
}
export interface UserStateConflict {
Code: FieldCodes;
Message: string;
}
export interface InsufficientResource {
Resources: ResourceRequirement[];
Code: FieldCodes;
Message: string;
}
export interface ResourceRequirement {
Name: string;
Required: Object;
Available: Object;
}
export interface IFieldCode {
Code: FieldCodes;
Message: string;
}
export interface NotAllowedFieldCode {
Code: FieldCodes;
Message: string;
}
export interface UnspecifiedNotAllowed {
Code: FieldCodes;
Message: string;
}
export interface RateLimitExceeded {
Retry: number;
Code: FieldCodes;
Message: string;
}
export interface InternalAction {
Code: FieldCodes;
Message: string;
}
export interface ServiceUnavailableFieldCode {
Code: FieldCodes;
Message: string;
}
export interface UnspecifiedServiceUnavailable {
Code: FieldCodes;
Message: string;
}
export interface DatabaseUnavailable {
Code: FieldCodes;
Message: string;
}
export interface GroupServiceUnavailable {
Code: FieldCodes;
Message: string;
}
export interface GameServiceUnavailable {
Code: FieldCodes;
Message: string;
}
export interface PresenceServiceUnavailable {
Code: FieldCodes;
Message: string;
}
export interface UnauthorizedFieldCode {
Code: FieldCodes;
Message: string;
}
export interface UnspecifiedAuthorizationDenied {
Code: FieldCodes;
Message: string;
}
export interface APIKeyAuthorizationFailed {
Code: FieldCodes;
Message: string;
}
export interface LoginTokenAuthorizationFailed {
Code: FieldCodes;
Message: string;
}
export interface RealmRestricted {
Code: FieldCodes;
Message: string;
}
export enum APIPermissions {
None = 0,
Equipment = 1,
Inventory = 2,
StatsAndTraits = 3,
LiveStatus = 4,
Progression = 5,
ManageEquipment = 6,
ManageInventory = 6,
Friends = 10,
Enemies = 11,
ActiveWarband = 12,
Battlegroup = 13,
Warbands = 14,
Order = 15,
Campaigns = 16,
Invites = 17,
LiveWarbandStatus = 18,
LiveBattlegroupStatus = 19,
VoxInventory = 20,
VoxJobs = 21,
ManageVoxJobs = 22,
Plot = 30,
PlotQueue = 31,
ManagePlot = 32,
All = 2147483647,
}
export enum PlayerStatType {
None = 0,
Primary = 1,
Secondary = 2,
Derived = 3,
Hidden = 4,
}
export enum SubItemSlot {
Invalid = 0,
PrimarySubstance = 1,
SecondarySubstance1 = 2,
SecondarySubstance2 = 3,
SecondarySubstance3 = 4,
Alloy = 5,
WeaponBlade = 6,
WeaponHandle = 7,
NonRecipe = 8,
}
export enum Archetype {
BlackKnight = 8,
Fianna = 9,
Mjolnir = 10,
Physician = 11,
Empath = 12,
Stonehealer = 13,
Blackguard = 14,
ForestStalker = 15,
WintersShadow = 16,
}
export enum Faction {
Factionless = 0,
TDD = 1,
Viking = 2,
Arthurian = 3,
COUNT = 4,
}
export enum Gender {
None = 0,
Male = 1,
Female = 2,
}
export enum Race {
Luchorpan = 2,
Valkyrie = 4,
HumanMaleV = 15,
HumanMaleA = 16,
HumanMaleT = 17,
Pict = 18,
}
export enum ProgressionResultCode {
Success = 0,
InProgress = 1,
PlayerNotFound = 2,
DailyLogNotFound = 3,
DBError = 4,
DailyLogNotPublished = 5,
NotNextDayLog = 6,
InItemLoadoutScenario = 7,
InvalidRequest = -1,
}
export enum ModifyItemResultCode {
Invalid = 0,
Success = 1,
NotSupported = 2,
InvalidName = 3,
PermissionDenied = 4,
EntityNotFound = 5,
ItemNotFound = 6,
IncompatiblePermissions = 7,
}
export enum ModifySecureTradeResultCode {
Success = 0,
NoTrade = 1,
IncorrectState = 2,
ItemNotFound = 3,
InventoryNotFound = 4,
DuplicateItemInRequest = 5,
NoPendingInvite = 6,
MissingFaction = 7,
FactionMismatch = 8,
TradeSourceNotAlive = 9,
TradeTargetNotAlive = 10,
NoEntityPosition = 11,
TooFarAway = 12,
EntityMismatch = 13,
CanceledEntityMissing = 14,
DBError = 15,
NotLoggedIn = 16,
EntityToTradeWithNotFound = 17,
CannotTradeWithSelf = 18,
MoveItemError = 19,
EntityCannotTrade = 20,
LockTimeNotPassed = 21,
InvalidRequest = -1,
}
export enum MoveItemRequestLocationType {
Invalid = 0,
Container = 1,
Equipment = 2,
Ground = 3,
Inventory = 4,
Vox = 5,
Trash = 6,
BuildingPlaced = 7,
}
export enum MoveItemResultCode {
Success = 0,
None = 1,
Timeout = 2,
PlayerNotFound = 3,
EntityNotFound = 4,
ItemNotFound = 5,
ItemNotValid = 6,
MixedError = 7,
TooManyItems = 8,
InventoryNotFound = 9,
EquipmentNotFound = 10,
DefinitionNotFound = 11,
SecureTradeNotFound = 12,
InvalidParameter = 13,
SpatialNotFound = 14,
ItemFeatureTurnedOff = 15,
BrokenItem = 16,
ItemRequirementNotMet = 17,
ItemStatRequirementNotMet = 18,
EntityNotValid = 19,
MultiItemMoveNotSupported = 20,
ItemsDoNotStack = 21,
TooFarAway = 22,
PermissionDenied = 23,
ItemInversion = 24,
InvalidVoxSlot = 25,
ItemCannotBeTraded = 26,
RestrictedToScenario = 27,
CannotRemoveFromRunningScenario = 28,
TrashingItemNotAllowed = 29,
OutOfRange = 30,
}
export enum ModifyVoxJobResultCode {
Success = 0,
JobAlreadyExists = 1,
InvalidJob = 2,
NoCurrentJob = 3,
ItemsInVox = 4,
IncorrectJobState = 5,
DBError = 6,
NotSupported = 7,
InvalidRecipe = 8,
TooManyIngredients = 9,
NotEnoughIngredients = 10,
IncorrectIngredient = 11,
InvalidIngredient = 12,
InvalidQuality = 13,
InventoryFull = 14,
NoRepairPoints = 15,
InvalidUnitCount = 16,
ParameterError = 17,
VoxNotFound = 18,
RecipeAlreadyDiscovered = 19,
RecipeNotSet = 20,
ItemSlotNotSupported = 21,
IngredientsExist = 22,
VoxBroken = 23,
IngredientBroken = 24,
PlayerNotFound = 25,
MoveItemError = 26,
InvalidItemName = 27,
InvalidRequest = -1,
}
export enum InviteStatus {
Active = 0,
Revoked = 1,
UsageLimitReached = 2,
Expired = 3,
}
export enum GroupTypes {
Warband = 0,
Battlegroup = 1,
Order = 2,
Campaign = 3,
}
export enum ActionErrorCode {
UnspecifiedError = 0,
ServerException = 1,
NoActionRequired = 2,
GeneralDatabaseError = 3,
PermissionDenied = 4,
CharacterNotFound = 5,
GroupNotFound = 6,
WrongGroupType = 7,
WrongFaction = 8,
NameLength = 9,
NameContainsInvalidCharacters = 10,
NameContainsNaughtyWords = 11,
NameContainsReservedWords = 12,
NameAlreadyInUse = 13,
ActiveWarbandAlreadyExists = 14,
AlreadyAnOrderMember = 15,
MemberLimitReached = 16,
InviteCodeNotFound = 17,
InviteRequirementsNotMet = 18,
InviteExpired = 19,
InviteRevoked = 20,
InviteUsageLimitReached = 21,
RankLimitReached = 22,
InvalidRankLevel = 23,
}
export enum PatchPermissions {
Public = 0,
AllBackers = 1,
InternalTest = 2,
Development = 4,
Alpha = 8,
Beta1 = 16,
Beta2 = 32,
Beta3 = 64,
}
export enum ResourceNodePermissions {
None = 0,
Take = 1,
AutoDiscovered = 2,
All = -1,
}
export enum PermissibleSetKeyType {
Invalid = 0,
Faction = 1,
ScenarioTeam = 2,
ScenarioRole = 3,
}
export enum PermissibleTargetType {
Invalid = 0,
Any = 1,
Faction = 2,
Character = 3,
ScenarioTeam = 4,
Warband = 5,
CharactersWarband = 6,
CharactersFaction = 7,
CharactersOrder = 8,
InNoScenario = 9,
Inverse = 10,
And = 11,
ScenarioRole = 12,
Scenario = 13,
}
export enum VoxJobType {
Invalid = 0,
Block = 1,
Grind = 2,
Make = 3,
Purify = 4,
Refine = 5,
Repair = 6,
Salvage = 7,
Shape = 8,
}
export enum ItemPermissions {
None = 0,
Trade = 1,
Pickup = 2,
Trash = 4,
CraftWithVox = 8,
Control = 16,
AddContents = 32,
RemoveContents = 64,
ViewContents = 128,
Drop = 256,
ModifyDisplay = 512,
All = -1,
}
export enum ModifyPlotResultCode {
Success = 0,
PlotNotFound = 1,
CharacterNotFound = 2,
InvalidParameter = 3,
NoMatchingPermissionSetFound = 4,
PermissionDenied = 5,
CharacterNotOnPlot = 6,
PlotNotCompatibleWithScenario = 7,
PlotNotCompatibleWithFaction = 8,
ScenarioNotFound = 9,
TeamNotForScenario = 10,
}
export enum PlotPermissions {
None = 0,
BuildStructure = 1,
DismantleStructure = 2,
RemoveDroppedBlocks = 4,
ModifyBuildQueue = 8,
Owned = 16,
UseSpawnPoint = 32,
ModifyItems = 64,
NoPlayerOwnerPermissions = 111,
All = -1,
}
export enum AccessType {
Public = 0,
Beta3 = 1,
Beta2 = 2,
Beta1 = 3,
Alpha = 4,
InternalTest = 5,
Employees = 6,
}
export enum SpawnPointPermissions {
None = 0,
Spawn = 1,
All = -1,
}
export enum ServerStatus {
Offline = 0,
Starting = 1,
Online = 2,
}
export enum FieldCodes {
BasicSuccess = 0,
GroupActionSuccess = 1,
ModifyVoxJobSuccess = 2,
MoveItemSuccess = 3,
ProgressionSuccess = 4,
ModifySecureTradeSuccess = 5,
ModifyPlotSuccess = 6,
ModifyItemSuccess = 7,
LoginSuccess = 8,
UnspecifiedAuthorizationDenied = 1000,
APIKeyAuthorizationFailed = 1001,
LoginTokenAuthorizationFailed = 1002,
RealmRestricted = 1003,
LoginFailed = 1004,
LoginThrottled = 1005,
UnspecifiedNotAllowed = 2000,
RateLimitExceeded = 2001,
InternalAction = 2002,
UnspecifiedRequestError = 3000,
UnspecifiedExecutionError = 4000,
UnhandledExecutionException = 4001,
DoesNotExist = 4002,
UserStateConflict = 4003,
InsufficientResource = 4004,
VoxJobError = 4005,
MoveItemError = 4006,
SecureTradeError = 4007,
ProgressionError = 4008,
GroupActionError = 4009,
TimeoutError = 4010,
ModifyItemError = 4011,
UnspecifiedServiceUnavailable = 5000,
DatabaseUnavailable = 5001,
GroupServiceUnavailable = 5002,
GameServiceUnavailable = 5003,
PresenceServiceUnavailable = 5004,
InvalidModel = 30001,
}
export const CharactersAPI = {
GetCharactersV1: function(config: RequestConfig, loginToken: string, ): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/characters/getAll', {
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
GetCharactersOnShardV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/characters/getAllOnShard', {
shardID: shardID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
GetCharacterV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/characters/get', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
DeleteCharacterV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/characters/delete', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CreateCharacterV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, character: Partial<Character>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/characters/create', {
shardID: shardID,
}, character, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const ContentAPI = {
MessageOfTheDayV1: function(config: RequestConfig, channel: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/messageoftheday', {
channel: channel,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
PatcherHeroContentV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/patcherherocontent', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
PatcherAlertsV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/patcheralerts', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const CraftingAPI = {
SetVoxJob: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, job: Partial<VoxJobType>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/setvoxjob', {
shardID: shardID,
characterID: characterID,
job: job,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
ClearVoxJob: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/clearvoxjob', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
SetRecipeID: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, recipeID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/setvoxrecipeid', {
shardID: shardID,
characterID: characterID,
recipeID: recipeID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
SetQuality: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, quality: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/setvoxquality', {
shardID: shardID,
characterID: characterID,
quality: quality,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
SetCustomItemName: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, itemName: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/setvoxcustomitemname', {
shardID: shardID,
characterID: characterID,
itemName: itemName,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
AddIngredient: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, itemInstanceID: Partial<string>, unitCount: Partial<number>, slot: Partial<SubItemSlot>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/addvoxingredient', {
shardID: shardID,
characterID: characterID,
itemInstanceID: itemInstanceID,
unitCount: unitCount,
slot: slot,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RemoveVoxIngredient: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, itemInstanceID: Partial<string>, unitCount: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/removevoxingredient', {
shardID: shardID,
characterID: characterID,
itemInstanceID: itemInstanceID,
unitCount: unitCount,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
StartVoxJob: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/startvoxjob', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CollectFinishedVoxJob: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/collectfinishedvoxjob', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CancelVoxJob: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/cancelvoxjob', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
SetVoxItemCount: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, count: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/crafting/setvoxitemcount', {
shardID: shardID,
characterID: characterID,
count: count,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const GameDataAPI = {
GetFactionInfoV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/factionInfo', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetFactionsV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/factions', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetAttributeInfoV1: function(config: RequestConfig, shard: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/attributeInfo', {
shard: shard,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetArchetypesV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/archetypes', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetRacesV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/races', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetAttributeOffsetsV1: function(config: RequestConfig, shard: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/attributeOffsets', {
shard: shard,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetOrderPermissionsV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/gamedata/orderPermissions', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const GroupsAPI = {
CreateWarbandV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/createWarband', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CreateBattlegroupV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/createBattlegroup', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CreateOrderV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, name: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/createOrder', {
shardID: shardID,
characterID: characterID,
name: name,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
KickV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, targetID: Partial<string>, groupID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/kick', {
shardID: shardID,
characterID: characterID,
targetID: targetID,
groupID: groupID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
InviteV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, groupID: Partial<string | null>, targetID: Partial<string | null>, targetName: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/invite', {
shardID: shardID,
characterID: characterID,
groupID: groupID,
targetID: targetID,
targetName: targetName,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
JoinV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, groupID: Partial<string>, inviteCode: Partial<string | null>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/join', {
shardID: shardID,
characterID: characterID,
groupID: groupID,
inviteCode: inviteCode,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
QuitV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, groupID: Partial<string | null>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/quit', {
shardID: shardID,
characterID: characterID,
groupID: groupID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
AbandonV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, groupID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/abandon', {
shardID: shardID,
characterID: characterID,
groupID: groupID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
DisbandV1: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, groupID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/groups/abandon', {
shardID: shardID,
characterID: characterID,
groupID: groupID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const ItemAPI = {
MoveItems: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, request: Partial<MoveItemRequest>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/items/moveitems', {
shardID: shardID,
characterID: characterID,
request: request,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
BatchMoveItems: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, requests: Partial<MoveItemRequest[]>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/items/batchmoveitems', {
shardID: shardID,
characterID: characterID,
}, requests, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
SetContainerColor: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, itemInstanceID: Partial<string>, itemEntityID: Partial<string>, red: Partial<number>, green: Partial<number>, blue: Partial<number>, alpha: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/items/setcontainercolor', {
shardID: shardID,
characterID: characterID,
itemInstanceID: itemInstanceID,
itemEntityID: itemEntityID,
red: red,
green: green,
blue: blue,
alpha: alpha,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RenameItem: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, itemInstanceID: Partial<string>, itemEntityID: Partial<string>, newName: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/items/renameitem', {
shardID: shardID,
characterID: characterID,
itemInstanceID: itemInstanceID,
itemEntityID: itemEntityID,
newName: newName,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const OrdersAPI = {
}
export const PresenceAPI = {
GetStartingServer: function(config: RequestConfig, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/presence/startingServer/{shardID}/{characterID}', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetServers: function(config: RequestConfig, shardID: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/presence/servers/{shardID}', {
shardID: shardID,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetPlayers: function(config: RequestConfig, shardID: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/presence/players/{shardID}', {
shardID: shardID,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const PlotsAPI = {
ReleasePlot: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/releasePlot', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
TakeOwnership: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/takeOwnership', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
GrantPermissions: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>, newPermissions: Partial<PlotPermissions>, target: Partial<PermissibleTargetType>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/grantPermissions', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
newPermissions: newPermissions,
target: target,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RevokePermissions: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>, revokePermissions: Partial<PlotPermissions>, target: Partial<PermissibleTargetType>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/revokePermissions', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
revokePermissions: revokePermissions,
target: target,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RemoveQueuedBlueprint: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>, indexToRemove: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/removeQueuedBlueprint', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
indexToRemove: indexToRemove,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
ReorderQueue: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>, indexToMove: Partial<number>, destinationIndex: Partial<number>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/reorderQueue', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
indexToMove: indexToMove,
destinationIndex: destinationIndex,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
GetQueueStatus: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, plotEntityID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/plot/getQueueStatus', {
shardID: shardID,
characterID: characterID,
plotEntityID: plotEntityID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const ProgressionAPI = {
CollectCharacterDayProgression: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, logID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/character/collectdayprogression', {
shardID: shardID,
characterID: characterID,
logID: logID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const SecureTradeAPI = {
Invite: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, tradeTargetID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/invite', {
shardID: shardID,
characterID: characterID,
tradeTargetID: tradeTargetID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RevokeInvite: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, inviteTargetID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/revokeinvite', {
shardID: shardID,
characterID: characterID,
inviteTargetID: inviteTargetID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
AcceptInvite: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, inviterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/acceptinvite', {
shardID: shardID,
characterID: characterID,
inviterID: inviterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RejectInvite: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, inviterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/rejectinvite', {
shardID: shardID,
characterID: characterID,
inviterID: inviterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
AbortSecureTrade: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/abort', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
Lock: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/lock', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
Unlock: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/unlock', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
AddItems: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, items: Partial<SecureTradeItem[]>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/additems', {
shardID: shardID,
characterID: characterID,
}, items, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
RemoveItem: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>, items: Partial<SecureTradeItem[]>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/removeItems', {
shardID: shardID,
characterID: characterID,
}, items, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
Confirm: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/confirm', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
CancelTradeConfirmation: function(config: RequestConfig, loginToken: string, shardID: Partial<number>, characterID: Partial<string>): Promise<RequestResult> {
return xhrRequest('post', config.url + 'v1/secureTrade/cancelconfirmation', {
shardID: shardID,
characterID: characterID,
}, null, { headers: Object.assign({}, {
'loginToken': loginToken,
'Accept': 'application/json',
}, config.headers || {}) });
},
}
export const ServersAPI = {
GetServersV1: function(config: RequestConfig, ): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/servers', {
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetServersForChannelV1: function(config: RequestConfig, channelId: Partial<number>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/servers/getForChannel', {
channelId: channelId,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) });
},
GetHostsForServerV1: function(config: RequestConfig, channelId: Partial<number>, name: Partial<string>): Promise<RequestResult> {
return xhrRequest('get', config.url + 'v1/servers/getHosts', {
channelId: channelId,
name: name,
}, null, { headers: Object.assign({}, {
'Accept': 'application/json',
}, config.headers || {}) }